@myrtex-org/form 1.0.21 → 1.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"myrtex-org-form.mjs","sources":["../../../projects/myrtex-form/src/lib/modules/shared-form/store/shared-form.effects.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/store/shared-form.reducer.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/store/shared-form.state.ts","../../../projects/myrtex-form/src/lib/modules/object-form/constants.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/store/shared-form.selector.ts","../../../projects/myrtex-form/src/lib/modules/object-form/store/object-form.actions.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/template-status.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/component-size.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/date-format.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/date-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/inn-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/input-state.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/component-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/value-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/condition-operator-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/logical-operator-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/dependence-action-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/template-components-group-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/object-form/helpers/check-dependence-rule.helper.ts","../../../projects/myrtex-form/src/lib/modules/object-form/helpers/get-menu-model.ts","../../../projects/myrtex-form/src/lib/modules/object-form/helpers/get-percent-for-section.helper.ts","../../../projects/myrtex-form/src/lib/modules/object-form/helpers/get-updated-values.ts","../../../projects/myrtex-form/src/lib/modules/object-form/helpers/get-value-model.helper.ts","../../../projects/myrtex-form/src/lib/modules/object-form/store/object-form.selector.ts","../../../projects/myrtex-form/src/lib/modules/object-form/store/object-form.state.ts","../../../projects/myrtex-form/src/lib/modules/object-form/store/object-form.reducers.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/services/concurrency-store.service.ts","../../../projects/myrtex-form/src/lib/modules/object-form/services/object-form.service.ts","../../../projects/myrtex-form/src/lib/modules/object-form/store/object-form.effects.ts","../../../projects/myrtex-form/src/lib/modules/object-form/object-form.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/object-form.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/factories/component-factory/component-factory.directive.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/base/base-element/base-element.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/base/base-field/base-field.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/text/input-text.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/text/input-text.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/textarea/input-textarea.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/textarea/input-textarea.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/link/input-link.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/link/input-link.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/switch/input-switch.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/switch/input-switch.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/number/input-number.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/number/input-number.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/select/input-select.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/select/input-select.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/date/input-date.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/date/input-date.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/inn/input-inn.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/inn/input-inn.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/file/input-file.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/file/input-file.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/phone/input-phone.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/phone/input-phone.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/checkbox-group/input-checkbox-group.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/checkbox-group/input-checkbox-group.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/radio-group/input-radio-group.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/radio-group/input-radio-group.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/components/input-table-modal/form-dispenser-modal/form-dispenser-modal.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/components/input-table-modal/form-dispenser-modal/form-dispenser-modal.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/components/input-table-modal/input-table-modal.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/components/input-table-modal/input-table-modal.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/helpers/get-row-model.helper.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/input-table.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/input-table.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/title/content-title.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/title/content-title.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/text/content-text.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/text/content-text.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/tooltip/content-tooltip.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/tooltip/content-tooltip.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/file/content-file.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/file/content-file.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/divider/content-divider.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/divider/content-divider.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/factories/component-factory/enums/component.enum.ts","../../../projects/myrtex-form/src/lib/modules/object-form/factories/component-factory/models/component.model.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/form-dispenser/form-dispenser.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/form-dispenser/form-dispenser.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/object-form-content/object-form-content.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/object-form-content/object-form-content.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/object-form-routing.module.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/interceptors/concurrency.interceptor.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/constants/index.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/shared-form.module.ts","../../../projects/myrtex-form/src/lib/modules/object-form/object-form.module.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/helpers/common.helpers.ts","../../../projects/myrtex-form/src/public-api.ts","../../../projects/myrtex-form/src/myrtex-org-form.ts"],"sourcesContent":["export const EFFECTS = [];\r\n","import { ActionReducerMap } from '@ngrx/store';\r\nimport { routerReducer } from '@ngrx/router-store';\r\nimport { ROUTER_STATE_NAME } from '@myrtex-org/ui-composite';\r\n\r\nimport { SharedFormState } from './shared-form.state';\r\n\r\nexport const sharedFormReducer: ActionReducerMap<SharedFormState, any> = {\r\n [ROUTER_STATE_NAME]: routerReducer\r\n};\r\n","import { RouterReducerState } from '@ngrx/router-store';\r\nimport { ROUTER_STATE_NAME } from '@myrtex-org/ui-composite';\r\n\r\nexport interface SharedFormState {\r\n [ROUTER_STATE_NAME]?: RouterReducerState;\r\n}\r\n\r\nexport const initialSharedFormState: SharedFormState = {\r\n};\r\n","export const STATE_NAME = 'object-form'\r\n\r\nexport const OBJECT_ID_NAME = 'objectId'\r\nexport const SECTION_SYS_NAME_NAME = 'sectionSysName'\r\nexport const TEMPLATE_SYS_NAME_NAME = 'templateSysName'\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectQueryParam, selectRouteParam, selectRouter } from '@myrtex-org/ui-composite';\r\nimport { Params } from '@angular/router';\r\nimport { SECTION_SYS_NAME_NAME, TEMPLATE_SYS_NAME_NAME } from '../../object-form/constants';\r\n\r\nexport const selectRouteNestedParams = createSelector(selectRouter, (router) => {\r\n let currentRoute = router?.state?.root;\r\n\r\n let params: Params = {};\r\n\r\n while (currentRoute?.firstChild) {\r\n currentRoute = currentRoute.firstChild;\r\n params = {\r\n ...params,\r\n ...currentRoute.params,\r\n };\r\n }\r\n\r\n return params;\r\n});\r\n\r\nexport const selectRouteNestedParam = (param: string) => createSelector(selectRouteNestedParams,\r\n (params) => {\r\n return params && params[param];\r\n });\r\n\r\nexport const selectTemplateSysName = createSelector(\r\n selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME),\r\n (rparam: string | undefined) => {\r\n return rparam || null;\r\n }\r\n);\r\n\r\nexport const selectIdFromQuery = createSelector(\r\n selectQueryParam('id'),\r\n (rparam: string | number | undefined) => {\r\n return rparam || null;\r\n }\r\n);\r\n\r\nexport const selectSectionSysName = createSelector(\r\n selectRouteParam(SECTION_SYS_NAME_NAME),\r\n (rparam: string | undefined) => {\r\n return rparam || null;\r\n }\r\n);\r\n\r\n\r\n","import { createAction, props } from '@ngrx/store';\r\nimport { TemplateModel } from '../models';\r\nimport { SectionValueModel, UpdateValueResult, ValueModel } from '../models';\r\nimport { FileModel } from '../../shared-form/models';\r\n\r\nexport enum EApplicationActions {\r\n UpdateApiUrl = '[Object Form] Update Api Url',\r\n\r\n LoadTemplatePending = '[Object Form] Load Template Pending',\r\n LoadTemplateSuccess = '[Object Form] Load Template Success',\r\n LoadTemplateError = '[Object Form] Load Template Error',\r\n\r\n LoadObjectPending = '[Object Form] Load Object Pending',\r\n LoadObjectSuccess = '[Object Form] Load Object Success',\r\n LoadObjectError = '[Object Form] Load Object Error',\r\n\r\n SaveObjectPending = '[Object Form] Save Object Pending',\r\n SaveObjectSuccess = '[Object Form] Save Object Success',\r\n SaveObjectError = '[Object Form] Save Object Error',\r\n\r\n CopyObjectPending = '[Object Form] Copy Object Pending',\r\n CopyObjectSuccess = '[Object Form] Copy Object Success',\r\n CopyObjectError = '[Object Form] Copy Object Error',\r\n\r\n UpdateValues = '[Object Form] Update Application Values',\r\n AccessUpdateValues = '[Object Form] Access Update Application Values',\r\n SaveValuesPending = '[Object Form] Save Application Values Pending',\r\n SaveValuesSuccess = '[Object Form] Save Application Values Success',\r\n SaveValuesError = '[Object Form] Save Application Values Error',\r\n\r\n UpdateSelectedSectionSysName = '[Object Form] Update Selected Section SysName',\r\n\r\n LoadSectionFilesPending = '[Object Form] Load Section Files Pending',\r\n LoadSectionFilesSuccess = '[Object Form] Load Section Files Success',\r\n LoadSectionFilesError = '[Object Form] Load Section Files Error',\r\n\r\n ToggleCheckRequired = '[Object Form] Toggle Check Required',\r\n UpdateCheckRequired = '[Application] Update Check Required',\r\n\r\n LoadPreviewTemplatePending = '[Object Form] Load Preview Template Pending',\r\n LoadPreviewTemplateSuccess = '[Object Form] Load Preview Template Success',\r\n LoadPreviewTemplateError = '[Object Form] Load Preview Template Error',\r\n\r\n CheckAllDependencyRules = '[Object Form] Check All Dependency Rule',\r\n\r\n PrintDocument = '[Object Form] Print Document'\r\n}\r\n\r\nexport const updateApiUrl = createAction(\r\n EApplicationActions.UpdateApiUrl,\r\n props<{ apiPrefix: string, apiUrl: string }>()\r\n);\r\n\r\nexport const loadTemplatePending = createAction(\r\n EApplicationActions.LoadTemplatePending\r\n);\r\nexport const loadTemplateSuccess = createAction(\r\n EApplicationActions.LoadTemplateSuccess,\r\n props<{ templateSysName: string }>()\r\n);\r\nexport const loadTemplateError = createAction(\r\n EApplicationActions.LoadTemplateError\r\n);\r\n\r\nexport const loadObjectPending = createAction(\r\n EApplicationActions.LoadObjectPending,\r\n props<{ templateSysName: string }>()\r\n);\r\nexport const loadObjectSuccess = createAction(\r\n EApplicationActions.LoadObjectSuccess,\r\n props<{\r\n templateSettings: TemplateModel,\r\n sectionValues: SectionValueModel[],\r\n applicationId: string,\r\n isDraft: boolean\r\n }>()\r\n);\r\nexport const loadObjectError = createAction(\r\n EApplicationActions.LoadObjectError\r\n);\r\nexport const saveObjectPending = createAction(\r\n EApplicationActions.SaveObjectPending\r\n);\r\nexport const saveObjectSuccess = createAction(\r\n EApplicationActions.SaveObjectSuccess\r\n);\r\nexport const saveObjectError = createAction(\r\n EApplicationActions.SaveObjectError\r\n);\r\n\r\nexport const copyObjectPending = createAction(\r\n EApplicationActions.CopyObjectPending,\r\n props<{ sourceId: string, targetTemplateSysName: string }>()\r\n);\r\nexport const copyObjectSuccess = createAction(\r\n EApplicationActions.CopyObjectSuccess\r\n);\r\nexport const copyObjectError = createAction(\r\n EApplicationActions.CopyObjectError\r\n);\r\n\r\nexport const updateValues = createAction(\r\n EApplicationActions.UpdateValues,\r\n props<{ value: ValueModel | ValueModel[] }>()\r\n);\r\n\r\nexport const accessUpdateValues = createAction(\r\n EApplicationActions.AccessUpdateValues\r\n);\r\n\r\nexport const saveValuesPending = createAction(\r\n EApplicationActions.SaveValuesPending\r\n);\r\nexport const saveValuesSuccess = createAction(\r\n EApplicationActions.SaveValuesSuccess,\r\n props<{ result: UpdateValueResult, objectId: string }>()\r\n);\r\nexport const saveValuesError = createAction(\r\n EApplicationActions.SaveValuesError\r\n);\r\n\r\nexport const updateSelectedSectionSysName = createAction(\r\n EApplicationActions.UpdateSelectedSectionSysName,\r\n props<{ sectionSysName: string }>()\r\n);\r\n\r\nexport const loadSectionFilesPending = createAction(\r\n EApplicationActions.LoadSectionFilesPending\r\n);\r\nexport const loadSectionFilesSuccess = createAction(\r\n EApplicationActions.LoadSectionFilesSuccess,\r\n props<{ sectionFiles: FileModel[] }>()\r\n);\r\nexport const loadSectionFilesError = createAction(\r\n EApplicationActions.LoadSectionFilesError\r\n);\r\n\r\nexport const toggleCheckRequired = createAction(\r\n EApplicationActions.ToggleCheckRequired\r\n);\r\nexport const updateCheckRequired = createAction(\r\n EApplicationActions.UpdateCheckRequired,\r\n props<{ isCheckRequired: boolean }>()\r\n);\r\n\r\nexport const loadPreviewTemplatePending = createAction(\r\n EApplicationActions.LoadPreviewTemplatePending,\r\n props<{ templateSysName: string }>()\r\n);\r\n\r\nexport const loadPreviewTemplateSuccess = createAction(\r\n EApplicationActions.LoadPreviewTemplateSuccess,\r\n props<{ templateSettings: TemplateModel, templateSysName: string }>()\r\n);\r\n\r\nexport const loadPreviewTemplateError = createAction(\r\n EApplicationActions.LoadPreviewTemplateError\r\n);\r\n\r\nexport const checkAllDependencyRules = createAction(\r\n EApplicationActions.CheckAllDependencyRules\r\n);\r\n\r\nexport const printDocument = createAction(\r\n EApplicationActions.PrintDocument\r\n);\r\n","export enum TemplateStatus{\r\n draft = 0,\r\n active = 1,\r\n archived = 2\r\n}\r\n\r\nconst templateStatusCaption: Record<TemplateStatus, string> = {\r\n [TemplateStatus.draft]: 'черновик',\r\n [TemplateStatus.active]: 'активен',\r\n [TemplateStatus.archived]: 'архив',\r\n};\r\n\r\nexport const getTemplateStatusText = (status: TemplateStatus): string => {\r\n return templateStatusCaption[status];\r\n}\r\n","export enum ComponentSizeEnum {\r\n Large = 'large',\r\n Medium = 'medium',\r\n Small = 'small',\r\n}\r\n","export enum DateFormatEnum {\r\n Day = 'дд.мм.гггг',\r\n Month = 'мм.гггг',\r\n Year = 'гггг'\r\n}\r\n\r\nexport const DateFormatLabelEnum: Record<DateFormatEnum, string> = {\r\n [DateFormatEnum.Day]: 'дд.мм.гггг',\r\n [DateFormatEnum.Month]: 'мм.гггг',\r\n [DateFormatEnum.Year]: 'гггг',\r\n};\r\n","export enum DateTypeEnum {\r\n Date = 'date',\r\n DateTime = 'date-time',\r\n}\r\n\r\nexport const DateTypeLabelEnum: Record<DateTypeEnum, string> = {\r\n [DateTypeEnum.Date]: 'Дата',\r\n [DateTypeEnum.DateTime]: 'Дата и время',\r\n};\r\n","export enum InnTypeEnum {\r\n Personal = 'personal',\r\n Legal = 'legal',\r\n ForeignLegal = 'foreign-legal'\r\n}\r\n\r\nexport const InnTypeLabelEnum: Record<InnTypeEnum, string> = {\r\n [InnTypeEnum.Personal]: 'ФЛ/ИП',\r\n [InnTypeEnum.Legal]: 'ЮЛ',\r\n [InnTypeEnum.ForeignLegal]: 'Иностранное ЮЛ',\r\n};\r\n","export enum InputState {\r\n Edit = 'edit',\r\n Auto = 'auto',\r\n Formula = 'formula'\r\n}\r\n\r\nexport enum CustomInputStateEnum {\r\n Edit = 0,\r\n Auto = 1,\r\n Formula = 2\r\n}\r\n\r\nexport const CustomInputStateEnumLabel: Record<CustomInputStateEnum, string> = {\r\n [CustomInputStateEnum.Edit]: InputState.Edit,\r\n [CustomInputStateEnum.Auto]: InputState.Auto,\r\n [CustomInputStateEnum.Formula]: InputState.Formula,\r\n};\r\n","export enum ComponentType {\r\n Section = 'section',\r\n Group = 'group',\r\n\r\n InputText = 'inputText',\r\n InputTextarea = 'inputTextarea',\r\n InputSwitch = 'inputSwitch',\r\n InputLink = 'inputLink',\r\n InputSelect = 'inputSelect',\r\n InputNumber = 'inputNumber',\r\n InputDate = 'inputDate',\r\n InputINN = 'inputINN',\r\n InputFile = 'inputFile',\r\n InputPhone = 'inputPhone',\r\n InputCheckboxGroup = 'inputCheckboxGroup',\r\n InputRadioGroup = 'inputRadioGroup',\r\n InputTable = 'inputTable',\r\n\r\n ContentTitle = 'title',\r\n ContentText = 'text',\r\n ContentTooltip = 'tooltip',\r\n ContentFile = 'file',\r\n ContentDivider = 'divider',\r\n}\r\n\r\nexport const ComponentShortType: Record<ComponentType, string> = {\r\n [ComponentType.Section]: 's',\r\n [ComponentType.Group]: 'g',\r\n\r\n [ComponentType.InputText]: 'itt',\r\n [ComponentType.InputTextarea]: 'ita',\r\n [ComponentType.InputSwitch]: 'isw',\r\n [ComponentType.InputLink]: 'il',\r\n [ComponentType.InputSelect]: 'ist',\r\n [ComponentType.InputNumber]: 'in',\r\n [ComponentType.InputDate]: 'id',\r\n [ComponentType.InputINN]: 'inn',\r\n [ComponentType.InputFile]: 'if',\r\n [ComponentType.InputPhone]: 'ip',\r\n [ComponentType.InputCheckboxGroup]: 'icg',\r\n [ComponentType.InputRadioGroup]: 'irg',\r\n [ComponentType.InputTable]: 'itb',\r\n\r\n [ComponentType.ContentTitle]: 'ct',\r\n [ComponentType.ContentText]: 'ctt',\r\n [ComponentType.ContentTooltip]: 'ctp',\r\n [ComponentType.ContentFile]: 'cf',\r\n [ComponentType.ContentDivider]: 'cd',\r\n};\r\n","export enum ValueType {\r\n Undefined = \"undefined\",\r\n Short = \"short\",\r\n Int = \"int\",\r\n Long = \"long\",\r\n Float = \"float\",\r\n Double = \"double\",\r\n Decimal = \"decimal\",\r\n String = \"string\",\r\n Guid = \"guid\",\r\n DateTime = \"dateTime\",\r\n Boolean = \"boolean\",\r\n IntArray = \"int[]\",\r\n StringArray = \"string[]\",\r\n GuidArray = \"guid[]\"\r\n}","\r\nexport enum ConditionOperatorType {\r\n undefined = 'undefined',\r\n filled = 'filled'\r\n}\r\n\r\nexport const getConditionOperatorsList = () => {\r\n return [{\r\n value: ConditionOperatorType.filled,\r\n text: conditionOperatorTypeLabel[ConditionOperatorType.filled]\r\n }]\r\n};\r\n\r\nexport const conditionOperatorTypeLabel: Record<string, string> = {\r\n [ConditionOperatorType.filled]: 'заполнено'\r\n};\r\n","export enum LogicalOperatorType {\r\n undefined = 'undefined',\r\n or = 'or',\r\n and = 'and'\r\n}\r\n","export enum DependenceActionType {\r\n undefined = 'undefined',\r\n show = 'show'\r\n}\r\n\r\nexport const getDependenceActionsList = () => {\r\n return [{\r\n value: DependenceActionType.show,\r\n text: 'показать'\r\n }]\r\n}","export enum TemplateComponentsGroupTypeEnum {\r\n Components = 1,\r\n Content = 2,\r\n}\r\n\r\nexport const TemplateComponentsGroupTypeLabels: Record<TemplateComponentsGroupTypeEnum, string> = {\r\n [TemplateComponentsGroupTypeEnum.Components]: 'Поля',\r\n [TemplateComponentsGroupTypeEnum.Content]: 'Контент',\r\n};\r\n","import { LogicalOperatorType, DependenceActionType, ConditionOperatorType } from \"../../shared-form/enums\";\r\nimport {\r\n ComponentValueModel,\r\n DependenceCondidtionModel,\r\n DependenceConditionGroupModel,\r\n FieldDependenceModel,\r\n FieldDependencyCheckResultModel,\r\n SectionValueModel,\r\n ValueModel\r\n} from '../models';\r\nimport { getUpdatedValues, getValuesRecursive } from '../helpers';\r\n\r\nexport const getDependenceRulesResults =\r\n (currentResults: FieldDependencyCheckResultModel[],\r\n allValues: SectionValueModel[],\r\n changedValue: ValueModel | ValueModel[],\r\n rules?: FieldDependenceModel[]\r\n ) : FieldDependencyCheckResultModel[] => {\r\n\r\n if (!rules) {\r\n return currentResults;\r\n }\r\n\r\n const actualValues = allValues.map(sectionVal => {\r\n return getUpdatedValues(sectionVal, Array.isArray(changedValue) ? changedValue : [changedValue])\r\n });\r\n\r\n const rulesResults = rules\r\n .filter(x => containsConditionValue(x.conditions, changedValue))\r\n .map(rule => {\r\n return checkDependenceRule(rule, actualValues);\r\n }).flat();\r\n\r\n const shallowCopy = currentResults.map(result => {\r\n const idx = rulesResults.findIndex(x=>x.sysName === result.sysName);\r\n if(idx !== -1){\r\n const newResult = rulesResults[idx];\r\n rulesResults.splice(idx, 1);\r\n return newResult;\r\n }\r\n return { ...result };\r\n });\r\n if (!!rulesResults.length) {\r\n shallowCopy.push(...rulesResults);\r\n }\r\n\r\n return shallowCopy;\r\n }\r\n\r\nexport const checkDependenceRule = (rule: FieldDependenceModel, values: SectionValueModel[]): FieldDependencyCheckResultModel[] => {\r\n const result: FieldDependencyCheckResultModel[] = [];\r\n\r\n const conditionResult = checkConditionResult({\r\n conditions: rule.conditions,\r\n type: LogicalOperatorType.and,\r\n groups: []\r\n }, values);\r\n\r\n rule.acceptors.forEach(x=>{\r\n result.push({\r\n sysName: x.s,\r\n actionType: rule.actionType,\r\n conditionResult\r\n });\r\n });\r\n\r\n return result;\r\n}\r\n\r\nexport const getValuesToClean = (results: FieldDependencyCheckResultModel[]) : string[] => {\r\n const result: string[] = [];\r\n results.forEach(res => {\r\n switch (res.actionType) {\r\n case DependenceActionType.show:\r\n if(!res.conditionResult) {\r\n result.push(res.sysName);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n return result;\r\n}\r\n\r\nconst checkConditionResult = (group: DependenceConditionGroupModel, values: SectionValueModel[]): boolean => {\r\n let result = group.type === LogicalOperatorType.and;\r\n const appendResult = (newResult: boolean): void => {\r\n if (group.type === LogicalOperatorType.and) {\r\n result = result && newResult;\r\n } else if (group.type === LogicalOperatorType.or) {\r\n result = result || newResult;\r\n }\r\n }\r\n group.conditions.forEach(x =>{\r\n appendResult(calculateCondition(x, getValuesRecursive(x.field!.s, values)));\r\n });\r\n\r\n group.groups?.forEach(g => {\r\n appendResult(checkConditionResult(g, values));\r\n });\r\n return result;\r\n}\r\n\r\n\r\nconst calculateCondition = (condition: DependenceCondidtionModel, value: ComponentValueModel | null): boolean => {\r\n switch (condition.operator) {\r\n case ConditionOperatorType.filled:\r\n return !!value?.value;\r\n\r\n default:\r\n break;\r\n }\r\n return false;\r\n}\r\n\r\n// TODO переделать на группу\r\nconst containsConditionValue = (conditions: DependenceCondidtionModel[], value: ValueModel | ValueModel[]): boolean => {\r\n const val = Array.isArray(value) ? value : [value];\r\n return conditions.some(s => val.some(v => v.sysName === s.field?.s));\r\n}\r\n","import { MenuAdminItem, MenuAdminModel } from '@myrtex-org/templates';\r\nimport { TemplateModel, SectionValueModel } from '../models';\r\nimport { SectionModel } from '../models/elemets';\r\nimport { getPercentForSection } from '../helpers';\r\n\r\n\r\nexport const getMenuModel = (\r\n apiPrefix: string,\r\n settings: TemplateModel | null,\r\n sectionValues: SectionValueModel[],\r\n applicationId: string\r\n): MenuAdminModel => {\r\n return {\r\n items: settings?.sections.map((section: SectionModel): MenuAdminItem => {\r\n return {\r\n title: section.options.title || '',\r\n routerLink: `/${apiPrefix}/${applicationId}/${section.sysName}`,\r\n type: 'default',\r\n params: {\r\n percent: getPercentForSection(section, sectionValues)\r\n }\r\n }\r\n }) || []\r\n }\r\n}\r\n\r\nexport const getPreviewMenuModel = (\r\n apiPrefix: string,\r\n settings: TemplateModel | null,\r\n templateSysName: string\r\n): MenuAdminModel => {\r\n return {\r\n items: settings?.sections.map((section: SectionModel): MenuAdminItem => {\r\n return {\r\n title: section.options.title || '',\r\n routerLink: `/${apiPrefix}/preview/${templateSysName}/${section.sysName}`,\r\n type: 'default',\r\n }\r\n }) || []\r\n }\r\n}\r\n","import { SectionModel } from '../models/elemets';\r\nimport { SectionValueModel } from '../models';\r\n\r\nexport const getPercentForSection = (section: SectionModel, sectionValues: SectionValueModel[]): number => {\r\n return sectionValues.find(s => s.sysName === section.sysName)?.percent || 0\r\n}\r\n","import { ComponentType } from '../../shared-form/enums';\r\nimport { ComponentValueModel, GroupValueModel, SectionValueModel, ValueModel } from '../models';\r\n\r\nexport const getUpdatedValues = (section: SectionValueModel, values: ValueModel[], valuesToReset: string[] = []): SectionValueModel => {\r\n return section.values ? { ...section, values: recursiveChangeValue(section.values, values, valuesToReset) } : section;\r\n}\r\n\r\nexport const recursiveChangeValue = (sectionValues: ValueModel[], values: ValueModel[], valuesToReset: string[]): ValueModel[] => {\r\n return sectionValues.map((v: ValueModel) => {\r\n const findValue = values.find(val => val.sysName === v.sysName);\r\n const valMustBeReseted = valuesToReset.some(x => x === v.sysName);\r\n\r\n if (findValue) {\r\n if(valMustBeReseted) {\r\n (<ComponentValueModel>findValue).value = null;\r\n }\r\n return findValue;\r\n } else {\r\n if (v.type === ComponentType.Group) {\r\n return { ...v, values: recursiveChangeValue((v as GroupValueModel).values || [], values, valuesToReset) };\r\n } else {\r\n return { ...v, value: valMustBeReseted ? null : (<ComponentValueModel>v)?.value };\r\n }\r\n }\r\n });\r\n}\r\n","import { ComponentModelBase } from '../../shared-form/models';\r\nimport { ComponentType } from '../../shared-form/enums';\r\nimport { ComponentValueModel, ValueModel } from '../models';\r\nimport { InputDateModel } from '../models/elemets/inputs';\r\n\r\nexport const defaultValueModel = (c: ComponentModelBase, defaultValue: any = '') => {\r\n return {sysName: c.sysName, type: c.type, valueType: c.valueType, value: defaultValue}\r\n}\r\n\r\nexport const getValueModel = (settings: ComponentModelBase, values: ValueModel[]) => {\r\n switch (settings.type) {\r\n case ComponentType.InputDate:\r\n const settingsCopy = settings as InputDateModel\r\n\r\n if (settingsCopy.options.range) {\r\n const modelStart = getValuesRecursive(settings.sysName + '_start', values)\r\n const modelEnd = getValuesRecursive(settings.sysName + '_end', values)\r\n\r\n return [modelStart, modelEnd]\r\n } else {\r\n return getValuesRecursive(settings.sysName, values)\r\n }\r\n default:\r\n return getValuesRecursive(settings.sysName, values)\r\n }\r\n}\r\n\r\nexport const getValuesRecursive = (sysName: string, values: ValueModel[]): ComponentValueModel | null => {\r\n const condition: any = values.find(m => m.sysName === sysName) || null\r\n\r\n if (!!condition) {\r\n return condition;\r\n }\r\n\r\n if (values.length) {\r\n for (let idx = 0; idx < values.length; idx++) {\r\n const model = values[idx];\r\n\r\n if ('values' in model) {\r\n const value = getValuesRecursive(sysName, model.values || []);\r\n\r\n if (!!value) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { ObjectFormState } from '../store';\r\nimport { OBJECT_ID_NAME, STATE_NAME } from '../constants';\r\nimport { ComponentModelBase } from '../../shared-form/models';\r\nimport { sharedSelectors } from '../../shared-form/store';\r\nimport { getValueModel } from '../helpers';\r\n\r\nconst objectFeature = createFeatureSelector<ObjectFormState>(STATE_NAME);\r\n\r\nexport const selectApiPrefix = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.apiPrefix\r\n);\r\n\r\nexport const selectApiUrl = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.apiUrl\r\n);\r\n\r\nexport const selectIsLoading = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.isLoading\r\n);\r\n\r\nexport const selectIsObjectSaveLoading = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.isObjectSaveLoading\r\n);\r\n\r\nexport const selectIsEdited = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.isEdited\r\n);\r\n\r\nexport const selectIsCheckRequired = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.isCheckRequired\r\n);\r\n\r\nexport const selectMenuModel = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.menuModel\r\n);\r\n\r\nexport const selectSectionSettings = createSelector(\r\n objectFeature,\r\n sharedSelectors.selectRouteNestedParam('sectionSysName'),\r\n (state: ObjectFormState, sectionSysName: string) => {\r\n return state?.settings?.sections.find(s => s.sysName === sectionSysName) || null\r\n }\r\n);\r\n\r\nexport const selectSectionValues = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.sectionValues\r\n);\r\n\r\nexport const selectObjectId = createSelector(\r\n sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME),\r\n (applicationId: string) => applicationId\r\n);\r\n\r\nexport const selectSectionFiles = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.sectionFiles\r\n);\r\n\r\nexport const selectTemplateSysName = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state?.settings?.sysName\r\n);\r\n\r\nexport const selectValueModel = (settings: ComponentModelBase) => createSelector(\r\n objectFeature,\r\n (state) => getValueModel(settings, state.sectionValues)\r\n);\r\n\r\nexport const selectDependencyRulesResults = createSelector(\r\n objectFeature,\r\n state => state.dependencyRuleCheckResults\r\n)\r\n","import { FileModel } from '../../shared-form/models';\r\nimport { MenuAdminModel } from '@myrtex-org/templates';\r\nimport { TemplateModel } from '../models';\r\nimport { FieldDependencyCheckResultModel, SectionValueModel } from '../models';\r\n\r\nexport interface ObjectFormState {\r\n isLoading: boolean;\r\n isEdited: boolean;\r\n isCheckRequired: boolean;\r\n isObjectSaveLoading: boolean;\r\n settings: TemplateModel | null;\r\n selectedSectionSysName: string | null;\r\n sectionValues: SectionValueModel[];\r\n menuModel: MenuAdminModel;\r\n sectionFiles: FileModel[];\r\n dependencyRuleCheckResults: FieldDependencyCheckResultModel[];\r\n apiPrefix: string;\r\n apiUrl: string;\r\n}\r\n\r\nexport const initialObjectFormState: ObjectFormState = {\r\n isLoading: false,\r\n isEdited: false,\r\n isCheckRequired: false,\r\n isObjectSaveLoading: false,\r\n settings: null,\r\n selectedSectionSysName: null,\r\n sectionValues: [],\r\n menuModel: {\r\n items: []\r\n },\r\n sectionFiles: [],\r\n dependencyRuleCheckResults: [],\r\n apiPrefix: '',\r\n apiUrl: ''\r\n};\r\n","import { Action, createReducer, on } from '@ngrx/store';\r\nimport { ObjectFormState, objectFormActions } from '../store';\r\nimport { initialObjectFormState } from './object-form.state'\r\nimport * as fromHelpers from '../helpers';\r\nimport { FieldDependenceModel, SectionValueModel } from '../models';\r\n\r\nconst objectReducerCreator = createReducer(\r\n initialObjectFormState,\r\n on(objectFormActions.updateApiUrl, (state, {apiPrefix, apiUrl}) => {\r\n return {...state, apiPrefix, apiUrl};\r\n }),\r\n on(objectFormActions.loadObjectPending, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(\r\n objectFormActions.loadObjectSuccess,\r\n (state, {templateSettings, sectionValues, applicationId, isDraft}) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n settings: templateSettings,\r\n sectionValues: sectionValues,\r\n isEdited: isDraft,\r\n menuModel: fromHelpers.getMenuModel(state.apiPrefix, templateSettings, sectionValues, applicationId)\r\n };\r\n }\r\n ),\r\n on(objectFormActions.loadObjectError, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(objectFormActions.updateValues, (state, {value}) => {\r\n const dependenceRulesResults = fromHelpers.getDependenceRulesResults(\r\n state.dependencyRuleCheckResults,\r\n state.sectionValues,\r\n value,\r\n state.settings?.dependenceRules.rules\r\n );\r\n\r\n const selectedSectionValues = state.sectionValues.map((sectionValue: SectionValueModel) => {\r\n // пришлось отказаться от условия проверки выбранной секции,\r\n // т.к. зависимые поля могут находиться в других секциях, а их необходимо обнулять.\r\n return fromHelpers.getUpdatedValues(\r\n sectionValue,\r\n Array.isArray(value) ? value : [value],\r\n fromHelpers.getValuesToClean(dependenceRulesResults)\r\n );\r\n });\r\n\r\n return {\r\n ...state,\r\n sectionValues: selectedSectionValues,\r\n isEdited: true,\r\n dependencyRuleCheckResults: dependenceRulesResults\r\n };\r\n }),\r\n on(objectFormActions.saveValuesSuccess, (state, {result, objectId}) => {\r\n const updatedSectionValues = state.sectionValues.map((sectionValue: SectionValueModel) => {\r\n const section = {\r\n ...sectionValue,\r\n percent: result.fillness.find(x => x.name === sectionValue.sysName)?.percent || 0\r\n };\r\n return fromHelpers.getUpdatedValues(section, result.values);\r\n });\r\n\r\n return {\r\n ...state,\r\n sectionValues: updatedSectionValues,\r\n isEdited: true,\r\n menuModel: fromHelpers.getMenuModel(state.apiPrefix, state.settings, updatedSectionValues, objectId)\r\n };\r\n }),\r\n on(objectFormActions.saveValuesError, (state) => {\r\n return {...state};\r\n }),\r\n\r\n on(objectFormActions.saveObjectPending, (state) => {\r\n return {...state, isApplicationSaveLoading: true};\r\n }),\r\n on(objectFormActions.saveObjectSuccess, (state) => {\r\n return {...state, isApplicationSaveLoading: false, isEdited: false};\r\n }),\r\n on(objectFormActions.saveObjectError, (state) => {\r\n return {...state, isApplicationSaveLoading: false};\r\n }),\r\n on(objectFormActions.updateSelectedSectionSysName, (state, {sectionSysName}) => {\r\n return {...state, selectedSectionSysName: sectionSysName};\r\n }),\r\n on(objectFormActions.loadSectionFilesPending, (state) => {\r\n return {...state, sectionFiles: []};\r\n }),\r\n on(objectFormActions.loadSectionFilesSuccess, (state, {sectionFiles}) => {\r\n return {...state, sectionFiles: sectionFiles};\r\n }),\r\n on(objectFormActions.toggleCheckRequired, (state) => {\r\n return {...state, isCheckRequired: !state.isCheckRequired};\r\n }),\r\n on(objectFormActions.updateCheckRequired, (state, {isCheckRequired}) => {\r\n return {...state, isCheckRequired: isCheckRequired};\r\n }),\r\n on(objectFormActions.loadPreviewTemplatePending, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(\r\n objectFormActions.loadPreviewTemplateSuccess,\r\n (state, {templateSettings, templateSysName}) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n settings: templateSettings,\r\n menuModel: fromHelpers.getPreviewMenuModel(state.apiPrefix, templateSettings, templateSysName)\r\n };\r\n }\r\n ),\r\n on(objectFormActions.loadPreviewTemplateError, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(objectFormActions.checkAllDependencyRules, (state) => {\r\n\r\n const dependenceResults = state.settings?.dependenceRules.rules\r\n .map((rule: FieldDependenceModel) => (fromHelpers.checkDependenceRule(rule, state.sectionValues)))\r\n .flat() || [];\r\n\r\n return {...state, dependencyRuleCheckResults: dependenceResults};\r\n })\r\n);\r\n\r\nexport function objectReducer(state: ObjectFormState | undefined, action: Action) {\r\n return objectReducerCreator(state, action);\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders, HttpResponseBase } from '@angular/common/http';\r\nimport { ConcurrencyInfo } from '../models';\r\n\r\nconst tokenKey = 'Csy-Token';\r\nconst eTag = \"ETag\";\r\nconst ifMatch = \"If-Match\";\r\n\r\n@Injectable()\r\nexport class ConcurrencyStoreService {\r\n private _store: { [key: string]: ConcurrencyInfo } = {};\r\n\r\n get(key: string): ConcurrencyInfo | null {\r\n const info = this._store[key] as ConcurrencyInfo;\r\n if (!info) {\r\n return null;\r\n }\r\n return info;\r\n }\r\n\r\n set(key: string, info: ConcurrencyInfo): void {\r\n this._store[key] = info;\r\n }\r\n\r\n getHeaders(key: string): {\r\n headers: HttpHeaders | { [header: string]: string | string[] },\r\n observe: 'response'\r\n } {\r\n\r\n let headers = new HttpHeaders();\r\n if (key) {\r\n const info = this.get(key);\r\n if (info?.token) {\r\n headers = headers.append(tokenKey, info.token);\r\n }\r\n if (info?.eTag) {\r\n headers = headers.append(ifMatch, info.eTag);\r\n }\r\n }\r\n return { headers: headers, observe: 'response' };\r\n }\r\n\r\n appendHeaders(key: string, headers: HttpHeaders): HttpHeaders {\r\n if (key) {\r\n const info = this.get(key);\r\n if (info?.token) {\r\n headers = headers.set(tokenKey, info.token);\r\n }\r\n if (info?.eTag) {\r\n headers = headers.set(ifMatch, info.eTag);\r\n }\r\n }\r\n return headers;\r\n }\r\n\r\n fromHeaders(key: string, response: HttpResponseBase): void {\r\n if (key) {\r\n const info : ConcurrencyInfo = {\r\n token: response.headers.get(tokenKey),\r\n eTag: response.headers.get(eTag)\r\n };\r\n if (info.token || info.eTag) {\r\n this.set(key, info);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { FileModel } from '../../shared-form/models';\r\nimport { ConcurrencyStoreService } from '../../shared-form/services';\r\nimport { ObjectValuesDto, SectionValueModel, UpdateValueResult, TemplateModel } from '../models';\r\n\r\n@Injectable()\r\nexport class ObjectFormService {\r\n private _http: HttpClient = inject(HttpClient)\r\n private _concurrencyService: ConcurrencyStoreService = inject(ConcurrencyStoreService)\r\n\r\n private _apiUrl: string = ''\r\n\r\n private _concurrencyKey: string = 'application-values';\r\n\r\n public get apiUrl(): string {\r\n return this._apiUrl;\r\n }\r\n\r\n public updateApiUrl(apiUrl: string): void {\r\n this._apiUrl = apiUrl\r\n }\r\n\r\n public getTemplate(objectId: string): Observable<{ templateSysName: string }> {\r\n return this._http.get<{ templateSysName: string }>(`${this.apiUrl}/${objectId}/params`);\r\n }\r\n\r\n public getSectionValues( applicationId: string): Observable<ObjectValuesDto> {\r\n return this._http\r\n .get<ObjectValuesDto>(`${this.apiUrl}/${applicationId}`, this.getHeaders())\r\n .pipe(map(this.mapResult.bind(this)));\r\n }\r\n\r\n public getTemplateSettings(templateSysName: string): Observable<TemplateModel> {\r\n return this._http.get<TemplateModel>(`${this.apiUrl}/template/settings/${templateSysName}`);\r\n }\r\n\r\n public updateApplicationValues(applicationId: string, sectionValues: SectionValueModel[]): Observable<UpdateValueResult> {\r\n return this._http\r\n .put<UpdateValueResult>(`${this.apiUrl}/${applicationId}`, {sectionValues}, this.getHeaders())\r\n .pipe(map(this.mapResult.bind(this)));\r\n }\r\n\r\n public saveApplication(applicationId: string): Observable<void> {\r\n return this._http\r\n .post<void>(`${this.apiUrl}/${applicationId}/save`, null, this.getHeaders())\r\n .pipe(map(this.mapResult.bind(this)));\r\n }\r\n\r\n public copyApplication(copyCommand: { sourceId: string, targetTemplateSysName: string }): Observable<{ id: string }> {\r\n return this._http.post<{ id: string }>(`${this.apiUrl}/copy`, copyCommand);\r\n }\r\n\r\n public getSectionFiles(applicationId: string, sectionSysName: string): Observable<FileModel[]> {\r\n return this._http\r\n .get<FileModel[]>(`${this.apiUrl}/${applicationId}/${sectionSysName}/files`, this.getHeaders())\r\n .pipe(map(this.mapResult.bind(this)));\r\n }\r\n\r\n private getHeaders(): {\r\n headers: HttpHeaders | { [header: string]: string | string[] },\r\n observe: 'response'\r\n } {\r\n return this._concurrencyService.getHeaders(this._concurrencyKey);\r\n }\r\n\r\n private mapResult<T>(resp: HttpResponse<T>) {\r\n this._concurrencyService.fromHeaders(this._concurrencyKey, resp);\r\n return resp.body!;\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { catchError, debounceTime, distinctUntilChanged, map, switchMap, tap, withLatestFrom } from 'rxjs/operators';\r\nimport { Store } from '@ngrx/store';\r\nimport { Router } from '@angular/router';\r\nimport { forkJoin, Observable, of } from 'rxjs';\r\nimport { ObjectFormService } from '../services';\r\nimport { objectFormActions, objectFormSelectors, EApplicationActions } from '../store';\r\nimport { TemplateModel } from '../models';\r\nimport { ObjectValuesDto, ValueModel } from '../models';\r\nimport { AutoSaveStore, ToasterService, ToasterType } from '@myrtex-org/ui';\r\nimport { ComponentModelBase, FileModel } from '../../shared-form/models';\r\nimport { sharedSelectors } from '../../shared-form/store';\r\nimport { OBJECT_ID_NAME, SECTION_SYS_NAME_NAME, TEMPLATE_SYS_NAME_NAME } from '../constants';\r\nimport { selectApiPrefix, selectApiUrl } from './object-form.selector';\r\n\r\n@Injectable()\r\nexport class ObjectFormEffects {\r\n private _autoSaveStore = inject(AutoSaveStore);\r\n\r\n constructor(\r\n private _actions$: Actions,\r\n private _store: Store,\r\n private _router: Router,\r\n private _applicationService: ObjectFormService,\r\n private _toasterService: ToasterService\r\n ) {\r\n }\r\n\r\n updateApiUrl$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.UpdateApiUrl),\r\n map((props: { apiPrefix: string, apiUrl: string }) => ({apiPrefix: props.apiPrefix, apiUrl: props.apiUrl})),\r\n distinctUntilChanged(),\r\n tap(({apiPrefix, apiUrl}) => {\r\n if (apiUrl) {\r\n this._applicationService.updateApiUrl(apiUrl)\r\n }\r\n\r\n this._store.dispatch(objectFormActions.loadTemplatePending());\r\n })\r\n ), {dispatch: false});\r\n\r\n loadTemplatePending$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.LoadTemplatePending),\r\n withLatestFrom(\r\n this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)),\r\n this._store.select(sharedSelectors.selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME)),\r\n ),\r\n switchMap(([_, objectId, templateSysName]) => {\r\n if (objectId) {\r\n return this._applicationService.getTemplate(objectId).pipe(\r\n switchMap(({templateSysName}) => ([\r\n objectFormActions.loadTemplateSuccess({templateSysName}),\r\n objectFormActions.loadObjectPending({templateSysName})\r\n ])),\r\n catchError(() => {\r\n return of(objectFormActions.loadTemplateError());\r\n })\r\n );\r\n } else {\r\n return of(objectFormActions.loadPreviewTemplatePending({templateSysName}));\r\n }\r\n }))\r\n );\r\n\r\n loadPreviewTemplatePending = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.LoadPreviewTemplatePending),\r\n map((props: { templateSysName: string }) => props.templateSysName),\r\n withLatestFrom(\r\n this._store.select(objectFormSelectors.selectApiPrefix),\r\n this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME)),\r\n ),\r\n switchMap(([templateSysName, apiPrefix, sectionSysName]) => {\r\n return this._applicationService.getTemplateSettings(templateSysName).pipe(\r\n map((templateSettings) => {\r\n const activeSection = templateSettings.sections.find(\r\n (s: ComponentModelBase) => s.sysName === sectionSysName\r\n );\r\n\r\n if (!activeSection && templateSettings.sections.length) {\r\n this._router.navigate([\r\n `/${apiPrefix}/preview/${templateSysName}/${templateSettings.sections[0].sysName}`\r\n ]);\r\n }\r\n\r\n return objectFormActions.loadPreviewTemplateSuccess({templateSettings, templateSysName});\r\n }),\r\n catchError((error) => {\r\n return of(objectFormActions.loadPreviewTemplateError());\r\n })\r\n );\r\n }))\r\n );\r\n\r\n loadApplicationPending$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.LoadObjectPending),\r\n map((props: { templateSysName: string }) => props.templateSysName),\r\n withLatestFrom(\r\n this._store.select(objectFormSelectors.selectApiPrefix),\r\n this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)),\r\n this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME)),\r\n ),\r\n switchMap(([templateSysName, apiPrefix, objectId, sectionSysName]) => {\r\n const requests: [Observable<TemplateModel>, Observable<ObjectValuesDto>] = [\r\n this._applicationService.getTemplateSettings(templateSysName),\r\n this._applicationService.getSectionValues(objectId)\r\n ];\r\n\r\n return forkJoin(requests).pipe(\r\n switchMap(([templateSettings, valueDto]) => {\r\n const activeSection = templateSettings.sections.find(\r\n (s: ComponentModelBase) => s.sysName === sectionSysName\r\n );\r\n\r\n if (!activeSection && templateSettings.sections.length) {\r\n this._router.navigate([`/${apiPrefix}/${objectId}/${templateSettings.sections[0].sysName}`]);\r\n }\r\n\r\n return [\r\n objectFormActions.loadObjectSuccess({\r\n templateSettings: templateSettings,\r\n sectionValues: valueDto.value.sectionValues,\r\n applicationId: objectId,\r\n isDraft: valueDto.isDraft\r\n }),\r\n objectFormActions.checkAllDependencyRules()\r\n ];\r\n }),\r\n catchError(() => {\r\n return of(objectFormActions.loadObjectError());\r\n })\r\n );\r\n }))\r\n );\r\n\r\n checkCanUpdateValues$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.UpdateValues),\r\n map((props: { value: ValueModel | ValueModel[] }) => props.value),\r\n distinctUntilChanged(),\r\n withLatestFrom(\r\n this._store.select(sharedSelectors.selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME)),\r\n ),\r\n tap(([_, templateSysName]) => {\r\n if (templateSysName) {\r\n return;\r\n }\r\n\r\n this._store.dispatch(objectFormActions.accessUpdateValues());\r\n })\r\n ), {dispatch: false});\r\n\r\n saveValuesDebounced$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.AccessUpdateValues),\r\n distinctUntilChanged(),\r\n debounceTime(1500),\r\n tap(() => {\r\n this._autoSaveStore.start();\r\n this._store.dispatch(objectFormActions.saveValuesPending());\r\n })\r\n ), {dispatch: false});\r\n\r\n updateApplicationValues$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.SaveValuesPending),\r\n withLatestFrom(\r\n this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)),\r\n this._store.select(objectFormSelectors.selectSectionValues),\r\n ),\r\n switchMap(([_, objectId, sectionValues]) => {\r\n return this._applicationService.updateApplicationValues(objectId, sectionValues).pipe(\r\n map((result) => {\r\n this._autoSaveStore.success();\r\n return objectFormActions.saveValuesSuccess({result, objectId});\r\n }),\r\n catchError((error) => {\r\n this._autoSaveStore.error();\r\n return of(objectFormActions.saveValuesError());\r\n })\r\n );\r\n }))\r\n );\r\n\r\n saveApplicationPending$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.SaveObjectPending),\r\n withLatestFrom(\r\n this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME))\r\n ),\r\n switchMap(([_, objectId]) => {\r\n return this._applicationService.saveApplication(objectId).pipe(\r\n map(() => {\r\n this._toasterService.show({\r\n title: 'Сохранено успешно',\r\n type: ToasterType.Positive\r\n });\r\n\r\n return objectFormActions.saveObjectSuccess();\r\n }),\r\n catchError(() => {\r\n this._toasterService.show({\r\n title: 'Возникли ошибки при сохранении, повторите',\r\n type: ToasterType.Negative\r\n });\r\n\r\n return of(objectFormActions.saveObjectError());\r\n })\r\n );\r\n }))\r\n );\r\n\r\n copyApplicationPending$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.CopyObjectPending),\r\n map((action: { sourceId: string, targetTemplateSysName: string }) => action),\r\n withLatestFrom(\r\n this._store.select(objectFormSelectors.selectApiPrefix),\r\n ),\r\n switchMap(([action, apiPrefix]) => {\r\n return this._applicationService.copyApplication(action).pipe(\r\n map((result) => {\r\n this._toasterService.show({\r\n title: 'Копировнаие прошло успешно',\r\n type: ToasterType.Positive\r\n });\r\n\r\n window.open(`/${apiPrefix}` + result.id, '_blank');\r\n\r\n return objectFormActions.copyObjectSuccess();\r\n }),\r\n catchError(() => {\r\n this._toasterService.show({\r\n title: 'Возникли ошибки при копировании заявки, повторите',\r\n type: ToasterType.Negative\r\n });\r\n\r\n return of(objectFormActions.copyObjectError());\r\n })\r\n );\r\n })), {dispatch: false});\r\n\r\n loadSectionFilesPending$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.LoadSectionFilesPending),\r\n withLatestFrom(\r\n this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)),\r\n this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME)),\r\n ),\r\n switchMap(([_, objectId, sectionSysName]) => {\r\n return this._applicationService.getSectionFiles(objectId, sectionSysName).pipe(\r\n map((sectionFiles: FileModel[]) => {\r\n return objectFormActions.loadSectionFilesSuccess({sectionFiles: sectionFiles});\r\n }),\r\n catchError(() => {\r\n return of(objectFormActions.loadSectionFilesError());\r\n })\r\n );\r\n }))\r\n );\r\n\r\n printDocument$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.PrintDocument),\r\n withLatestFrom(\r\n this._store.select(objectFormSelectors.selectApiUrl),\r\n this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)),\r\n ),\r\n tap(([_, apiUrl, objectId]) => {\r\n console.log('печать документа ' + objectId);\r\n\r\n window.open(`${apiUrl}/${objectId}/print`, '_blank');\r\n })\r\n ), {dispatch: false});\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { withLatestFrom } from 'rxjs/operators';\r\nimport { MenuAdminItem, MenuAdminModel } from '@myrtex-org/templates';\r\nimport { sharedSelectors } from '../shared-form/store';\r\nimport { objectFormActions, objectFormSelectors } from './store';\r\nimport { SECTION_SYS_NAME_NAME, TEMPLATE_SYS_NAME_NAME } from './constants';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n\r\n@Component({\r\n selector: 'app-object-form',\r\n templateUrl: './object-form.component.html',\r\n styleUrls: ['./object-form.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ObjectFormComponent implements OnInit, OnDestroy {\r\n private _store: Store = inject(Store);\r\n private _route: ActivatedRoute = inject(ActivatedRoute)\r\n\r\n private _subscriptions$: Subscription[] = [];\r\n\r\n isLoading$: Observable<boolean> = this._store.select(objectFormSelectors.selectIsLoading);\r\n menuModel$: Observable<MenuAdminModel> = this._store.select(objectFormSelectors.selectMenuModel);\r\n\r\n ngOnInit(): void {\r\n this._subscriptions$.push(\r\n this._route.data.subscribe(data => {\r\n const apiPrefix = data['apiPrefix'];\r\n const apiUrl = data['apiUrl'];\r\n\r\n this._store.dispatch(objectFormActions.updateApiUrl({apiPrefix, apiUrl}));\r\n }),\r\n\r\n this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME)).pipe(\r\n withLatestFrom(\r\n this._store.select(sharedSelectors.selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME)),\r\n )\r\n ).subscribe(([sectionSysName, templateSysName]) => {\r\n this._store.dispatch(objectFormActions.updateSelectedSectionSysName({sectionSysName}));\r\n\r\n if (sectionSysName && !templateSysName) {\r\n this._store.dispatch(objectFormActions.loadSectionFilesPending());\r\n }\r\n }),\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions$.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n showProgress(item: MenuAdminItem): boolean {\r\n return !!(item?.params?.['percent'] || item?.params?.['percent'] === 0);\r\n }\r\n\r\n getDashArray(item: MenuAdminItem): number {\r\n return 57 / 100 * item?.params?.['percent'] + 60;\r\n }\r\n}\r\n","@if (!(isLoading$ | async)) {\r\n <div class=\"object-form__sidebar\">\r\n @if ((menuModel$ | async)?.items?.length) {\r\n <mrx-menu-admin [model]=\"(menuModel$ | async) || {}\">\r\n <ng-template #viewLinkTemplate let-menuItem=\"menuItem\">\r\n <div class=\"object-form__sidebar__link\">\r\n @if (showProgress(menuItem)) {\r\n <div class=\"progress-bar\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle class=\"progress-bar__circle\" cx=\"12\" cy=\"12\" r=\"9\" stroke-width=\"2\" stroke=\"#DBDFE5\"/>\r\n\r\n <circle\r\n class=\"progress-bar__filler\"\r\n [class.progress-bar__filler_full]=\"menuItem.params?.['percent'] === 100\"\r\n cx=\"12\" cy=\"12\" r=\"9\"\r\n stroke-width=\"2\"\r\n [attr.stroke-dasharray]=\"getDashArray(menuItem)\"\r\n stroke-dashoffset=\"60\"\r\n />\r\n </svg>\r\n\r\n @if (menuItem.params?.['percent'] === 100) {\r\n <div class=\"mrx-icon icon-check icon-font-16 icon-color-green progress-bar__icon text-bold\"></div>\r\n }\r\n </div>\r\n }\r\n\r\n <span>{{ menuItem.title }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n </mrx-menu-admin>\r\n }\r\n </div>\r\n\r\n <div class=\"object-form__content\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n} @else {\r\n <div class=\"d-flex justify-content-center align-items-center h-100 w-100\">\r\n <mrx-loader [size]=\"'large'\" [color]=\"'brand'\"></mrx-loader>\r\n </div>\r\n}\r\n","import {\r\n ComponentRef,\r\n Directive, EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n Type,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { ComponentType } from '../../../shared-form/enums';\r\nimport { ComponentModelBase } from '../../../shared-form/models';\r\nimport { ComponentsMapType } from './enums/component.enum';\r\nimport { AbstractComponent } from './models/component.model';\r\nimport { ComponentValueModel, ValueModel } from '../../models';\r\n\r\n@Directive({\r\n selector: '[appComponentFactory]',\r\n standalone: true\r\n})\r\nexport class ComponentFactoryDirective implements OnChanges {\r\n @Input() type?: ComponentType;\r\n @Input() data?: ComponentModelBase;\r\n @Input() values: ValueModel[] = [];\r\n @Input() valueMode?: 'auto' | 'manual';\r\n @Input() map!: ComponentsMapType;\r\n\r\n @Output() public changed = new EventEmitter<ComponentValueModel | ComponentValueModel[]>();\r\n\r\n dynamicComponent?: ComponentRef<AbstractComponent>;\r\n\r\n constructor(private viewContainer: ViewContainerRef,) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if ('type' in changes && this.type && changes['type'].previousValue !== changes['type'].currentValue) {\r\n this.initWidget(this.type);\r\n }\r\n if ('data' in changes && this.data) {\r\n this.applyData(this.data);\r\n }\r\n\r\n if ('valueMode' in changes && this.data && this.valueMode) {\r\n this.applyValueMode(this.valueMode);\r\n }\r\n\r\n if ('values' in changes && this.data) {\r\n this.applyValues(this.values);\r\n }\r\n }\r\n\r\n initWidget(type: ComponentType) {\r\n const componentType: Type<AbstractComponent> = this.map[type];\r\n\r\n if (!componentType) {\r\n return;\r\n }\r\n\r\n if (this.dynamicComponent) {\r\n this.viewContainer.clear();\r\n this.dynamicComponent = undefined;\r\n }\r\n\r\n this.dynamicComponent = this.viewContainer.createComponent(componentType);\r\n\r\n if (this.data) {\r\n this.dynamicComponent.instance.data = this.data;\r\n }\r\n\r\n if (this.dynamicComponent.instance.changed) {\r\n this.dynamicComponent.instance.changed.subscribe((res: | ComponentValueModel | ComponentValueModel[]) => {\r\n this.changed.emit(res);\r\n });\r\n }\r\n }\r\n\r\n applyData(data: ComponentModelBase) {\r\n if (this.dynamicComponent) {\r\n this.dynamicComponent.instance.data = data;\r\n }\r\n }\r\n\r\n applyValues(values: ValueModel[]) {\r\n if (this.dynamicComponent) {\r\n this.dynamicComponent.instance.values = values;\r\n }\r\n }\r\n\r\n applyValueMode(valueMode: 'auto' | 'manual') {\r\n if (this.dynamicComponent) {\r\n this.dynamicComponent.instance.valueMode = valueMode;\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, inject, Injectable, Input, OnInit } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { ComponentModelBase } from '../../../../../shared-form/models';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { Observable } from 'rxjs';\r\nimport { ComponentValueModel, SectionValueModel } from '../../../../models';\r\nimport { defaultValueModel, getValueModel } from '../../../../helpers';\r\nimport { objectFormSelectors } from '../../../../store';\r\n\r\n@Injectable()\r\nexport abstract class BaseElementComponent<TModel extends ComponentModelBase> implements OnInit {\r\n private _store: Store = inject(Store)\r\n private _detector: ChangeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n public applicationId$: Observable<string> = this._store.select(objectFormSelectors.selectObjectId);\r\n\r\n public settings!: TModel;\r\n public model!: ComponentValueModel;\r\n\r\n @Input() values: SectionValueModel[] = []\r\n\r\n @Input() set data(settings: ComponentModelBase) {\r\n this.settings = settings as TModel;\r\n this.model = defaultValueModel(this.settings);\r\n this._detector.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n this._initModel()\r\n }\r\n\r\n private _initModel() {\r\n this.model = cloneDeep(getValueModel(this.settings, this.values) as ComponentValueModel) || defaultValueModel(this.settings)\r\n }\r\n}\r\n","import { ChangeDetectorRef, EventEmitter, inject, Injectable, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { ValueType } from '../../../../../shared-form/enums';\r\nimport { ComponentModelBase } from '../../../../../shared-form/models';\r\nimport { AutoSaveStore, Field } from '@myrtex-org/ui';\r\nimport { ComponentValueModel, ValueModel } from '../../../../models';\r\nimport { defaultValueModel, getValueModel } from '../../../../helpers';\r\nimport { objectFormActions, objectFormSelectors } from '../../../../store';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport abstract class BaseFieldComponent<TModel extends ComponentModelBase, TOutputEvent extends {\r\n id: string,\r\n value: any\r\n}> implements OnInit, OnDestroy {\r\n protected _store: Store = inject(Store);\r\n protected _detector: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n protected _subscriptions$: Subscription[] = [];\r\n private _changeSubject$: Subject<ComponentValueModel | ComponentValueModel[]> = new Subject<ComponentValueModel | ComponentValueModel[]>();\r\n\r\n private _autoSaveStore = inject(AutoSaveStore);\r\n private _isCheckRequired: boolean = false;\r\n\r\n public model!: ComponentValueModel;\r\n public settings!: TModel;\r\n public manualValues: ValueModel[] = [];\r\n\r\n @Input() set values(value: ValueModel[]) {\r\n if (this.valueMode === 'manual') {\r\n this.manualValues = value;\r\n }\r\n }\r\n\r\n @Input() valueMode: 'auto' | 'manual' = 'auto';\r\n\r\n @Input() set data(settings: ComponentModelBase) {\r\n this.settings = settings as TModel;\r\n\r\n this._customInit();\r\n\r\n this._detector.detectChanges();\r\n }\r\n\r\n @Output() public changed = new EventEmitter<ComponentValueModel | ComponentValueModel[]>();\r\n\r\n ngOnInit(): void {\r\n this._initModel();\r\n\r\n this._changeSubject$\r\n .pipe(debounceTime(500))\r\n .subscribe(model => {\r\n if (this._customValidate(this.model)) {\r\n this.changed.emit(this._transformOutputValue());\r\n }\r\n });\r\n\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectIsCheckRequired)\r\n .subscribe(result => {\r\n this._isCheckRequired = result;\r\n this._detector.detectChanges();\r\n }));\r\n\r\n if (this.valueMode === 'auto') {\r\n this._initSubscriptionForValue();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions$.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n get autosaveFields(): Field[] {\r\n return this._autoSaveStore.fields();\r\n }\r\n\r\n get getInvalid(): boolean {\r\n if (this._isCheckRequired) {\r\n return this.settings.options.required && !this._requiredValidate(this.model.valueType);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n get getInvalidMessage(): string {\r\n if (this._isCheckRequired) {\r\n return 'Поле обязательно для заполнения';\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n private _requiredValidate(type: ValueType) {\r\n switch (type) {\r\n case (ValueType.String):\r\n case (ValueType.DateTime):\r\n return !!this.model.value?.trim();\r\n case (ValueType.Decimal):\r\n return !!this.model.value;\r\n case (ValueType.Boolean):\r\n return !!this.model.value;\r\n case (ValueType.StringArray):\r\n case (ValueType.GuidArray):\r\n return !!this.model.value?.length;\r\n default:\r\n return true;\r\n }\r\n }\r\n\r\n protected _initSubscriptionForValue() {\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectValueModel(this.settings))\r\n .subscribe((result: ComponentValueModel | null | (ComponentValueModel | null)[]) => {\r\n if (result) {\r\n if (!Array.isArray(result)) {\r\n this.model.value = result.value;\r\n\r\n this._customInit();\r\n }\r\n }\r\n }));\r\n }\r\n\r\n protected _updateValue() {\r\n this._changeSubject$.next(this._transformOutputValue());\r\n }\r\n\r\n protected _transformOutputValue(): ComponentValueModel | ComponentValueModel[] {\r\n return cloneDeep(this.model);\r\n }\r\n\r\n protected _customModelModify(event: TOutputEvent) {\r\n }\r\n\r\n protected _customInit() {\r\n this.model = this.model || defaultValueModel(this.settings);\r\n }\r\n\r\n protected _customValidate(model: ComponentValueModel) {\r\n return true;\r\n }\r\n\r\n protected _initModel() {\r\n if (this.valueMode === 'manual') {\r\n this.model = cloneDeep(getValueModel(this.settings, this.manualValues) as ComponentValueModel) || defaultValueModel(this.settings);\r\n } else {\r\n this.model = defaultValueModel(this.settings);\r\n }\r\n }\r\n\r\n dispatchModify(event: TOutputEvent) {\r\n this._autoSaveStore.addId(event.id);\r\n\r\n this._customModelModify(event);\r\n\r\n setTimeout(() => this._updateValue());\r\n\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputTextModel } from '../../../../models/elemets/inputs';\r\nimport { InputTextValueWithId } from '@myrtex-org/ui';\r\nimport { ComponentValueModel } from '../../../../models';\r\n\r\n@Component({\r\n selector: 'app-input-text',\r\n templateUrl: './input-text.component.html',\r\n styleUrls: ['./input-text.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputTextComponent extends BaseFieldComponent<InputTextModel, InputTextValueWithId> implements OnInit, OnDestroy {\r\n type = ComponentType.InputText;\r\n\r\n public validateValue = ''\r\n\r\n public onChangeInput() {\r\n this.validateValue = this.model.value\r\n }\r\n\r\n override _customValidate(model: ComponentValueModel) {\r\n this.validateValue = model.value\r\n\r\n this._detector.markForCheck()\r\n\r\n return !(this.settings.options.minLength && model.value && this.settings.options.minLength > model.value.length);\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-text-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-text\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [readonly]=\"false\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [mask]=\"settings.options.mask || ''\"\r\n [showMaskTyped]=\"true\"\r\n [minlength]=\"settings.options.minLength || 0\"\r\n [maxlength]=\"settings.options.maxLength || 0\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n (change)=\"onChangeInput()\"\r\n ></mrx-input-text>\r\n\r\n @if (settings.options.minLength) {\r\n <mrx-hint-error-message\r\n message=\"Минимальное количетсво символов — {{ settings.options.minLength }}\"\r\n [value]=\"validateValue\"\r\n [minLength]=\"settings.options.minLength\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputTextareaModel } from '../../../../models/elemets/inputs';\r\nimport { InputEditorValueWithId, InputTextareaValueWithId } from '@myrtex-org/ui';\r\nimport { defaultValueModel } from '../../../../helpers';\r\nimport { ComponentValueModel } from '../../../../models';\r\n\r\n@Component({\r\n selector: 'app-input-textarea',\r\n templateUrl: './input-textarea.component.html',\r\n styleUrls: ['./input-textarea.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputTextareaComponent\r\n extends BaseFieldComponent<InputTextareaModel, InputEditorValueWithId | InputTextareaValueWithId>\r\n implements OnInit\r\n{\r\n type = ComponentType.InputTextarea;\r\n\r\n public validateValue = ''\r\n\r\n public config: any = {\r\n buttons: []\r\n };\r\n\r\n override _customInit() {\r\n this.model = this.model || defaultValueModel(this.settings);\r\n\r\n this.config = {\r\n buttons: [\r\n ...this.settings?.options.textType ? ['paragraph'] : [],\r\n ...this.settings?.options.textFamily ? ['font'] : [],\r\n ...this.settings?.options.textSize ? ['fontsize'] : [],\r\n ...this.settings?.options.textColor ? ['brush'] : [],\r\n ...this.settings?.options.textStyle ? ['bold', 'italic', 'underline', 'strikethrough'] : [],\r\n ...this.settings?.options.textAlign ? [{name: 'left', list: ['left', 'right', 'center', 'justify']}] : [],\r\n ...this.settings?.options.textHeight ? ['lineHeight'] : [],\r\n ...this.settings?.options.textMargin ? ['indent', 'outdent'] : [],\r\n ...this.settings?.options.textList ? ['ol', 'ul'] : [],\r\n ...this.settings?.options.textLink ? ['link'] : [],\r\n // ...this.model.options.textQuote ? ['blockquote'] : [],\r\n ...this.settings?.options.textImage ? ['image'] : [],\r\n ...this.settings?.options.textTable ? ['table'] : [],\r\n ...this.settings?.options.textVideo ? ['video'] : [],\r\n ...this.settings?.options.textSource ? ['source'] : [],\r\n ]\r\n };\r\n }\r\n\r\n public onChangeInput() {\r\n this.validateValue = this.model.value\r\n }\r\n\r\n override _customValidate(model: ComponentValueModel) {\r\n this.validateValue = model.value\r\n\r\n this._detector.markForCheck()\r\n\r\n return !(this.settings.options.minLength && model.value && this.settings.options.minLength > model.value.length);\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-textarea-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n @if (!settings.options.editor) {\r\n <mrx-input-textarea\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [rows]=\"2\"\r\n [autosize]=\"true\"\r\n [readonly]=\"false\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [mask]=\"settings.options.mask || ''\"\r\n [minlength]=\"settings.options.minLength || 0\"\r\n [maxlength]=\"settings.options.maxLength || 0\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n\r\n ></mrx-input-textarea>\r\n } @else {\r\n <mrx-editor\r\n [(ngModel)]=\"model.value\"\r\n [readonly]=\"false\"\r\n [fields]=\"autosaveFields\"\r\n [toolbar]=\"config\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n (change)=\"onChangeInput()\"\r\n ></mrx-editor>\r\n }\r\n\r\n @if (settings.options.minLength) {\r\n <mrx-hint-error-message\r\n message=\"Минимальное количетсво символов — {{ settings.options.minLength }}\"\r\n [value]=\"validateValue\"\r\n [minLength]=\"settings.options.minLength\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputLinkModel } from '../../../../models/elemets/inputs';\r\nimport { InputTextValueWithId } from '@myrtex-org/ui';\r\n\r\n@Component({\r\n selector: 'app-input-link',\r\n templateUrl: './input-link.component.html',\r\n styleUrls: ['./input-link.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputLinkComponent extends BaseFieldComponent<InputLinkModel, InputTextValueWithId> implements OnInit {\r\n type = ComponentType.InputLink;\r\n}\r\n","@if (settings) {\r\n <div class=\"input-link-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-text\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [readonly]=\"false\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [showMaskTyped]=\"true\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n ></mrx-input-text>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputSwitchModel } from '../../../../models/elemets/inputs';\r\nimport { SwitchValueWithId } from '@myrtex-org/ui';\r\n\r\n@Component({\r\n selector: 'app-input-switch',\r\n templateUrl: './input-switch.component.html',\r\n styleUrls: ['./input-switch.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputSwitchComponent extends BaseFieldComponent<InputSwitchModel, SwitchValueWithId> implements OnInit {\r\n type = ComponentType.InputText;\r\n}\r\n","@if (settings) {\r\n <div class=\"input-switch-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n @switch (settings.options.switchType) {\r\n @case (0) {\r\n <mrx-switch\r\n [(ngModel)]=\"model.value\"\r\n [size]=\"'large'\"\r\n [label]=\"settings.options.switchText\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n ></mrx-switch>\r\n }\r\n @case (1) {\r\n <mrx-checkbox\r\n [(ngModel)]=\"model.value\"\r\n [invalid]=\"getInvalid\"\r\n [label]=\"settings.options.switchText\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n ></mrx-checkbox>\r\n }\r\n }\r\n\r\n @if (getInvalid) {\r\n <mrx-error-message>{{ getInvalidMessage }}</mrx-error-message>\r\n }\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType, InputState } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputNumberModel } from '../../../../models/elemets/inputs';\r\nimport { InputNumberValueWithId } from '@myrtex-org/ui';\r\nimport { ComponentValueModel } from '../../../../models';\r\n\r\n@Component({\r\n selector: 'app-input-number',\r\n templateUrl: './input-number.component.html',\r\n styleUrls: ['./input-number.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputNumberComponent extends BaseFieldComponent<InputNumberModel, InputNumberValueWithId> implements OnInit {\r\n type = ComponentType.InputNumber;\r\n\r\n public validateValue = 0\r\n\r\n public get isReadonly(): boolean {\r\n return this.settings.options.inputState === InputState.Formula;\r\n }\r\n\r\n public onChangeInput() {\r\n this.validateValue = this.model.value\r\n }\r\n\r\n override _customValidate(model: ComponentValueModel) {\r\n this.validateValue = model.value\r\n\r\n this._detector.markForCheck()\r\n\r\n return !(\r\n this.settings.options.minValue && model.value && this.settings.options.minValue > model.value ||\r\n this.settings.options.maxValue && model.value && this.settings.options.maxValue < model.value\r\n );\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-number-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-number\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [readonly]=\"isReadonly\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n (change)=\"onChangeInput()\"\r\n ></mrx-input-number>\r\n\r\n @if (settings.options.minValue) {\r\n <mrx-hint-error-message\r\n message=\"Минимальное значение — {{ settings.options.minValue }}\"\r\n [value]=\"validateValue\"\r\n [minValue]=\"settings.options.minValue\"\r\n ></mrx-hint-error-message>\r\n }\r\n @if (settings.options.maxValue) {\r\n <mrx-hint-error-message\r\n message=\"Максимальное значение — {{ settings.options.maxValue }}\"\r\n [value]=\"validateValue\"\r\n [maxValue]=\"settings.options.maxValue\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { SelectListItem } from '../../../../../shared-form/models';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputSelectModel } from '../../../../models/elemets/inputs';\r\nimport { InputSelectValueTypes, InputSelectValueWithId } from '@myrtex-org/ui';\r\nimport { defaultValueModel } from '../../../../helpers';\r\n\r\n@Component({\r\n selector: 'app-input-select',\r\n templateUrl: './input-select.component.html',\r\n styleUrls: ['./input-select.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputSelectComponent\r\n extends BaseFieldComponent<InputSelectModel, InputSelectValueWithId>\r\n implements OnInit {\r\n type = ComponentType.InputSelect;\r\n\r\n public value!: SelectListItem<string> | SelectListItem<string>[] | null;\r\n\r\n public updateValue(event: InputSelectValueWithId) {\r\n if (!this.settings.options.multiply) {\r\n this.model.value = event.value ? [event.value] : null;\r\n } else {\r\n this.model.value = event.value;\r\n }\r\n\r\n this.dispatchModify(event);\r\n }\r\n\r\n override _customInit() {\r\n this.model = this.model || defaultValueModel(this.settings);\r\n\r\n if (!this.settings.options.multiply) {\r\n this.value = this.model.value?.[0] || null;\r\n } else {\r\n this.value = this.model.value || null;\r\n }\r\n }\r\n\r\n override _customModelModify(event: InputSelectValueWithId) {\r\n this.model.displayValue = this._getDisplayValue(event.value);\r\n }\r\n\r\n private _getDisplayValue(selectedValue: InputSelectValueTypes): string {\r\n if (!this.settings.options.items) {\r\n return '';\r\n }\r\n\r\n if (!Array.isArray(selectedValue)) {\r\n return this.settings.options.items\r\n .filter(x => x.value === selectedValue)\r\n .map(x => x.text).join(', ');\r\n }\r\n\r\n const result: string[] = [];\r\n\r\n selectedValue.forEach(val => {\r\n const selectedItem = this.settings.options.items\r\n .find(x => x.value === val);\r\n\r\n if (selectedItem) {\r\n result.push(selectedItem.text);\r\n }\r\n });\r\n\r\n return result.join(', ');\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-select-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-select\r\n [(ngModel)]=\"value\"\r\n [fields]=\"autosaveFields\"\r\n [items]=\"settings.options.items\"\r\n [readonly]=\"false\"\r\n [searchable]=\"false\"\r\n bindValue=\"value\"\r\n bindLabel=\"text\"\r\n [multiple]=\"settings.options.multiply\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-select>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType, DateTypeEnum } from '../../../../../shared-form/enums';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputDateModel } from '../../../../models/elemets/inputs';\r\nimport { ComponentValueModel } from '../../../../models';\r\nimport { objectFormSelectors } from '../../../../store';\r\nimport { defaultValueModel } from '../../../../helpers';\r\nimport { InputDateTimeValueWithId } from '@myrtex-org/ui';\r\n\r\n@Component({\r\n selector: 'app-input-date',\r\n templateUrl: './input-date.component.html',\r\n styleUrls: ['./input-date.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputDateComponent extends BaseFieldComponent<InputDateModel, InputDateTimeValueWithId> implements OnInit {\r\n type = ComponentType.InputDate;\r\n\r\n private _isInit = false;\r\n\r\n public dateModel: string | string[] | null = '';\r\n\r\n public modelStart!: ComponentValueModel;\r\n public modelEnd!: ComponentValueModel;\r\n\r\n public get value(): string | string[] {\r\n if (this.settings.options.range) {\r\n return [this.modelStart.value, this.modelEnd.value];\r\n } else {\r\n return this.model.value;\r\n }\r\n }\r\n\r\n public get getViewTypeTimepicker(): boolean {\r\n return this.settings.options.viewType === DateTypeEnum.DateTime;\r\n }\r\n\r\n public updateValue(event: InputDateTimeValueWithId) {\r\n if (this._isInit) {\r\n if (this.settings.options.range) {\r\n if (event.value?.length === 0) {\r\n this.dateModel = [];\r\n this.modelStart.value = null;\r\n this.modelEnd.value = null;\r\n this.model.value = [null, null];\r\n }\r\n if (event.value?.length === 2) {\r\n this.dateModel = [event.value[0], event.value[1]];\r\n this.modelStart['value'] = event.value[0];\r\n this.modelEnd['value'] = event.value[1];\r\n this.model.value = [this.modelStart.value, this.modelEnd.value];\r\n }\r\n } else {\r\n this.dateModel = event.value;\r\n this.model.value = event.value;\r\n }\r\n\r\n this.dispatchModify(event);\r\n }\r\n }\r\n\r\n override _transformOutputValue() {\r\n if (this.settings.options.range) {\r\n return [cloneDeep(this.modelStart), cloneDeep(this.modelEnd)];\r\n } else {\r\n return cloneDeep(this.model);\r\n }\r\n }\r\n\r\n override _initSubscriptionForValue() {\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectValueModel(this.settings))\r\n .subscribe((result: ComponentValueModel | null | (ComponentValueModel | null)[]) => {\r\n if (result) {\r\n if (Array.isArray(result)) {\r\n this.modelStart = cloneDeep(result[0]) || defaultValueModel(this.settings);\r\n this.modelEnd = cloneDeep(result[1]) || defaultValueModel(this.settings);\r\n } else {\r\n this.model = cloneDeep(result || defaultValueModel(this.settings));\r\n }\r\n\r\n this._customInit();\r\n }\r\n }));\r\n }\r\n\r\n override _customInit() {\r\n if (!this.model) {\r\n this.model = defaultValueModel(this.settings);\r\n }\r\n\r\n if (this.settings.options.range) {\r\n if (!this.modelStart?.value || !this.modelEnd?.value) {\r\n this.dateModel = [];\r\n } else {\r\n this.dateModel = [this.modelStart.value, this.modelEnd.value];\r\n }\r\n } else {\r\n this.dateModel = this.model.value;\r\n }\r\n\r\n setTimeout(() => {\r\n this._isInit = true;\r\n }, 500);\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-date-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"settings.options.placeholder || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType, InnTypeEnum } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputINNModel } from '../../../../models/elemets/inputs';\r\nimport { InputTextValueWithId } from '@myrtex-org/ui';\r\n\r\n@Component({\r\n selector: 'app-input-inn',\r\n templateUrl: './input-inn.component.html',\r\n styleUrls: ['./input-inn.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputInnComponent extends BaseFieldComponent<InputINNModel, InputTextValueWithId> implements OnInit {\r\n type = ComponentType.InputINN;\r\n\r\n public get getMask(): string {\r\n switch (this.settings.options.viewType) {\r\n case InnTypeEnum.Personal:\r\n return '000000000000';\r\n case InnTypeEnum.Legal:\r\n return '0000000000';\r\n case InnTypeEnum.ForeignLegal:\r\n return '000000';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n public get getMaskPrefix(): string {\r\n return this.settings.options.viewType === InnTypeEnum.ForeignLegal ? '9909' : '';\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-inn-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-text\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [readonly]=\"false\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [mask]=\"getMask\"\r\n [maskPrefix]=\"getMaskPrefix\"\r\n [maskDropSpecialCharacters]=\"false\"\r\n [showMaskTyped]=\"true\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n ></mrx-input-text>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { FileModel } from '../../../../../shared-form/models';\r\nimport { Store } from '@ngrx/store';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { Observable, Subject, Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { ComponentValueModel } from '../../../../models';\r\nimport { objectFormActions, objectFormSelectors } from '../../../../store';\r\nimport { InputFileModel } from '@myrtex-org/ui';\r\nimport { InputFileModel as InputFileBaseModel } from '../../../../models/elemets/inputs';\r\nimport { ObjectFormService } from '../../../../services';\r\n\r\n@Component({\r\n selector: 'app-input-file',\r\n templateUrl: './input-file.component.html',\r\n styleUrls: ['./input-file.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputFileComponent extends BaseFieldComponent<InputFileBaseModel, {\r\n id: string,\r\n value: InputFileModel[]\r\n}> implements OnInit, OnDestroy {\r\n type = ComponentType.InputFile;\r\n\r\n override _store: Store = inject(Store);\r\n override _detector: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n private _objectFormService: ObjectFormService = inject(ObjectFormService)\r\n\r\n private _changeFileSubject$: Subject<ComponentValueModel> = new Subject<ComponentValueModel>();\r\n private _fileSubscriptions$: Subscription[] = [];\r\n\r\n private _isFileCheckRequired: boolean = false;\r\n\r\n public applicationId$: Observable<string> = this._store.select(objectFormSelectors.selectObjectId);\r\n\r\n public files: any[] = [];\r\n\r\n override ngOnInit(): void {\r\n this._initModel();\r\n\r\n this._changeFileSubject$.pipe(\r\n debounceTime(700),\r\n ).subscribe(model => {\r\n this._store.dispatch(objectFormActions.updateValues({value: cloneDeep(this.model)}));\r\n });\r\n\r\n this._fileSubscriptions$.push(this._store.select(objectFormSelectors.selectIsCheckRequired)\r\n .subscribe(result => {\r\n this._isFileCheckRequired = result;\r\n this._detector.detectChanges();\r\n }));\r\n\r\n if (this.valueMode === 'auto') {\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectValueModel(this.settings))\r\n .subscribe((result: ComponentValueModel | null | (ComponentValueModel | null)[]) => {\r\n if (result && !Array.isArray(result)) {\r\n this.model.value = result.value;\r\n\r\n this._customInit();\r\n }\r\n }));\r\n }\r\n\r\n this._fileSubscriptions$.push(\r\n this._store.select(objectFormSelectors.selectSectionFiles)\r\n .subscribe((sectionFiles: FileModel[]) => {\r\n if (sectionFiles.length) {\r\n this._initFiles(sectionFiles);\r\n }\r\n }),\r\n );\r\n }\r\n\r\n public get apiUrl(): string {\r\n return this._objectFormService.apiUrl\r\n }\r\n\r\n override get getInvalid(): boolean {\r\n if (this._isFileCheckRequired) {\r\n return this.settings.options.required && !this.model.value?.length;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._fileSubscriptions$.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n public filesChanged(files: InputFileModel[]) {\r\n this.files = files;\r\n this.model.value = this.files.map(f => f.id);\r\n this.dispatchModify();\r\n }\r\n\r\n public deleteFile(file: InputFileModel): void {\r\n this.files = this.files.filter((f: InputFileModel) => f.id !== file.id);\r\n this.model.value = this.files.map(f => f.id);\r\n this.dispatchModify();\r\n }\r\n\r\n override dispatchModify() {\r\n this._changeFileSubject$.next(this.model);\r\n }\r\n\r\n private _initFiles(sectionFiles: FileModel[]) {\r\n this.files = sectionFiles.filter(f => this.model.value.includes(f.id)).map(f => (\r\n {uuid: f.id, name: f.name, size: f.length}\r\n ));\r\n\r\n this._detector.detectChanges();\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-file-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-file\r\n [files]=\"files\"\r\n [allowedExtensions]=\"settings.options.allowedExtensions\"\r\n [maxFiles]=\"settings.options.maxFiles\"\r\n [maxSize]=\"settings.options.maxSize\"\r\n [uploadEndPoint]=\"apiUrl + '/' + (applicationId$ | async) + '/upload-temp-file'\"\r\n [deleteConfirm]=\"deleteFile.bind(this)\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"'Поле обязательно для заполнения'\"\r\n (filesChanged)=\"filesChanged($event)\"\r\n ></mrx-input-file>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputPhoneModel } from '../../../../models/elemets/inputs';\r\nimport { CountriesISO } from '@myrtex-org/ui';\r\nimport { defaultValueModel } from '../../../../helpers';\r\n\r\n@Component({\r\n selector: 'app-input-phone',\r\n templateUrl: './input-phone.component.html',\r\n styleUrls: ['./input-phone.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n//TODO InputTelValueWithId добавить в компонент\r\nexport class InputPhoneComponent extends BaseFieldComponent<InputPhoneModel, any> implements OnInit {\r\n type = ComponentType.InputPhone;\r\n\r\n public onlyCountries: CountriesISO[] = []\r\n\r\n public updateValue(event: any) {\r\n //TODO InputTelValueWithId добавить в компонент\r\n if (event.value.isNumberValid) {\r\n this.model.value = event.value.unFormattedNumber\r\n this.dispatchModify({id: event.id, value: event.value.unFormattedNumber})\r\n }\r\n }\r\n\r\n override _customInit() {\r\n this.model = this.model || defaultValueModel(this.settings);\r\n\r\n this.onlyCountries = this.settings.options.countries.map(country => {\r\n return country.value as CountriesISO\r\n })\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-phone-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-tel\r\n [ngModel]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [onlyCountries]=\"onlyCountries\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n [readonly]=\"false\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-tel>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputCheckboxGroupModel } from '../../../../models/elemets/inputs';\r\nimport { CheckboxGroupItem } from '@myrtex-org/ui';\r\nimport { defaultValueModel } from '../../../../helpers';\r\n\r\n@Component({\r\n selector: 'app-input-checkbox-group',\r\n templateUrl: './input-checkbox-group.component.html',\r\n styleUrls: ['./input-checkbox-group.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputCheckboxGroupComponent\r\n extends BaseFieldComponent<InputCheckboxGroupModel, { id: string, value: CheckboxGroupItem[] }>\r\n implements OnInit {\r\n type = ComponentType.InputCheckboxGroup;\r\n\r\n public list: CheckboxGroupItem[] = [];\r\n public value: CheckboxGroupItem[] = [];\r\n\r\n public updateValue(event: { id: string, value: CheckboxGroupItem[] }) {\r\n this.model.value = event.value.map(i => String(i.id));\r\n this.dispatchModify(event);\r\n }\r\n\r\n override _customInit() {\r\n this.model = this.model || defaultValueModel(this.settings, []);\r\n\r\n this.list = this.settings.options.items.map(item => (\r\n {id: item.value, text: item.text}\r\n ));\r\n\r\n this.value = this.model.value?.map((i: string): CheckboxGroupItem => ({id: i, text: ''})) || [];\r\n\r\n this._detector.detectChanges();\r\n }\r\n\r\n override _customModelModify(event: { id: string, value: CheckboxGroupItem[] }) {\r\n this.model.displayValue = this._getDisplayValue(event.value);\r\n }\r\n\r\n private _getDisplayValue(selectedValue: CheckboxGroupItem[]): string {\r\n if (!this.settings.options.items) {\r\n return '';\r\n }\r\n\r\n const result: string[] = [];\r\n\r\n selectedValue.forEach(val => {\r\n const selectedItem = this.settings.options.items\r\n .find(x => x.value === val.id);\r\n\r\n if (selectedItem) {\r\n result.push(selectedItem.text);\r\n }\r\n });\r\n\r\n return result.join(', ');\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"checkbox-group-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-checkbox-group\r\n [(ngModel)]=\"value\"\r\n [items]=\"list\"\r\n [fields]=\"autosaveFields\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-checkbox-group>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputRadioGroupModel } from '../../../../models/elemets/inputs';\r\nimport { RadioGroupItem, RadioGroupValueWithId } from '@myrtex-org/ui';\r\nimport { defaultValueModel } from '../../../../helpers';\r\n\r\n@Component({\r\n selector: 'app-input-radio-group',\r\n templateUrl: './input-radio-group.component.html',\r\n styleUrls: ['./input-radio-group.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputRadioGroupComponent\r\n extends BaseFieldComponent<InputRadioGroupModel, RadioGroupValueWithId>\r\n implements OnInit {\r\n type = ComponentType.InputRadioGroup;\r\n\r\n public list: RadioGroupItem[] = [];\r\n public value!: RadioGroupItem;\r\n\r\n public updateValue(event: RadioGroupValueWithId) {\r\n if (event.value) {\r\n this.model.value = String(event.value.id);\r\n } else {\r\n this.model.value = '';\r\n }\r\n this.dispatchModify(event);\r\n }\r\n\r\n override _customInit() {\r\n this.model = this.model || defaultValueModel(this.settings);\r\n\r\n this.list = this.settings.options.items.map(item => (\r\n {id: item.value, text: item.text, parentId: 'none', value: false, type: 'single', items: []}\r\n ));\r\n\r\n if (!!this.model.value) {\r\n this.value = this.list.find(i => String(i.id) === this.model.value) || this.list[0];\r\n }\r\n }\r\n\r\n override _customModelModify(event: RadioGroupValueWithId) {\r\n this.model.displayValue = this._getDisplayValue(event.value);\r\n }\r\n\r\n private _getDisplayValue(selectedValue: RadioGroupItem | null): string {\r\n if (!this.settings.options.items) {\r\n return '';\r\n }\r\n\r\n return this.settings.options.items\r\n .filter(x => x.value === selectedValue?.id)\r\n .map(x => x.text).join(', ');\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-radio-group-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-radio-group\r\n [(ngModel)]=\"value\"\r\n [fields]=\"autosaveFields\"\r\n [items]=\"list\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-radio-group>\r\n </div>\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter, inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { DependenceActionType } from '../../../../../../../../shared-form/enums';\r\nimport { ComponentValueModel, FieldDependencyCheckResultModel, ValueModel } from '../../../../../../../models';\r\nimport { ComponentFactoryDirective, contentComponentsMap } from '../../../../../../../factories/component-factory';\r\nimport { SectionModel } from '../../../../../../../models/elemets';\r\nimport { objectFormSelectors } from '../../../../../../../store';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LabelModule } from '@myrtex-org/ui';\r\n\r\n@Component({\r\n selector: 'app-form-dispenser-modal',\r\n templateUrl: './form-dispenser-modal.component.html',\r\n styleUrls: ['./form-dispenser-modal.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n LabelModule,\r\n ComponentFactoryDirective\r\n ]\r\n})\r\nexport class FormDispenserModal implements OnInit, OnDestroy {\r\n protected _store: Store = inject(Store);\r\n protected _detector: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n private _subscriptions$: Subscription[] = [];\r\n private _fieldDependencyRulesCheckResults: FieldDependencyCheckResultModel[] = [];\r\n\r\n public mapper = contentComponentsMap;\r\n\r\n @Input() public sectionSettings!: SectionModel | null;\r\n @Input() public values: ValueModel[] = [];\r\n @Input() public valueMode: 'auto' | 'manual' = 'auto';\r\n\r\n @Output() changed: EventEmitter<ComponentValueModel | ComponentValueModel[]> = new EventEmitter<ComponentValueModel | ComponentValueModel[]>();\r\n\r\n ngOnInit(): void {\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectDependencyRulesResults)\r\n .subscribe(results => {\r\n this._fieldDependencyRulesCheckResults = results;\r\n this._detector.detectChanges();\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions$.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n public componentValueChanged(event: ComponentValueModel | ComponentValueModel[]) {\r\n this.changed.emit(event);\r\n }\r\n\r\n public isComponentVisible(sysName: string): boolean {\r\n const result = this._fieldDependencyRulesCheckResults.find(x => x.sysName === sysName);\r\n\r\n if (!result) {\r\n return true;\r\n }\r\n\r\n let visible = true;\r\n\r\n switch (result.actionType) {\r\n case DependenceActionType.show:\r\n visible = result.conditionResult;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n return visible;\r\n }\r\n}\r\n","@if (sectionSettings?.components?.length) {\r\n <div class=\"row application-form__content\">\r\n @for (component of sectionSettings?.components; track component.id) {\r\n @switch (component.type) {\r\n @case ('group') {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragGroup\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n @default {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragInput\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n\r\n\r\n<ng-template #dragGroup let-component='component'>\r\n <div class=\"col col-{{component.options.width}}\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n @if (component.options.label) {\r\n <mrx-label>{{ component.options.label }}</mrx-label>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"application-form__group p-2\">\r\n @if (component.components.length) {\r\n <div class=\"row\">\r\n @for (component of component.components; track component.id) {\r\n @switch (component.type) {\r\n @case ('group') {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragGroup\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n @default {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragInput\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n }\r\n }\r\n </div>\r\n } @else {\r\n <p class=\"p-2\">Элементы группы отсутствуют</p>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dragInput let-component='component'>\r\n @if (isComponentVisible(component.sysName)) {\r\n <div class=\"col col-{{component.options.width}}\">\r\n <div class=\"application-form__input\">\r\n <ng-template\r\n appComponentFactory\r\n [type]=\"component.type\"\r\n [data]=\"component\"\r\n [map]=\"mapper\"\r\n [values]=\"values\"\r\n [valueMode]=\"valueMode\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\r\nimport { cloneDeep, isArray } from 'lodash-es';\r\nimport { ButtonModule, MODAL_DATA, ModalModule, ModalRef, ModalServiceComponent } from '@myrtex-org/ui';\r\nimport { InputTableModel } from '../../../../../../models/elemets/inputs';\r\nimport { ComponentValueModel, TableRowModel } from '../../../../../../models';\r\nimport { FormDispenserModal } from './form-dispenser-modal/form-dispenser-modal.component';\r\nimport { provideNgxMask } from 'ngx-mask';\r\n\r\nexport interface InputTableModalParams {\r\n title: string;\r\n okText: string;\r\n settings: InputTableModel;\r\n rowModel: TableRowModel;\r\n}\r\n\r\nexport interface InputTableModalResult {\r\n result: boolean;\r\n rowModel: TableRowModel;\r\n}\r\n\r\n@Component({\r\n selector: 'app-input-table-modal',\r\n templateUrl: './input-table-modal.component.html',\r\n styleUrls: ['./input-table-modal.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [\r\n ModalModule,\r\n ButtonModule,\r\n FormDispenserModal,\r\n\r\n ],\r\n providers: [\r\n provideNgxMask()\r\n ]\r\n})\r\nexport class InputTableModalComponent extends ModalServiceComponent<InputTableModalParams, InputTableModalResult> {\r\n public title!: string;\r\n public okText!: string;\r\n public settings!: InputTableModel;\r\n public rowModel!: TableRowModel;\r\n\r\n constructor(\r\n private dialogRef: ModalRef<InputTableModalResult>,\r\n @Inject(MODAL_DATA) data: InputTableModalParams,\r\n ) {\r\n super();\r\n\r\n this.title = data.title;\r\n this.okText = data.okText\r\n this.settings = data.settings;\r\n this.rowModel = data.rowModel;\r\n\r\n this.result = {result: false, rowModel: this.rowModel};\r\n }\r\n\r\n public componentValueChanged(valueModel: ComponentValueModel | ComponentValueModel[]) {\r\n if (isArray(valueModel)) {\r\n valueModel.forEach(model => {\r\n this._transformValues(model);\r\n });\r\n } else {\r\n this._transformValues(valueModel);\r\n }\r\n }\r\n\r\n public ok() {\r\n this.result = {result: true, rowModel: this.rowModel};\r\n this.dialogRef.close(this.result);\r\n }\r\n\r\n public close() {\r\n this.result = {result: false, rowModel: this.rowModel};\r\n this.dialogRef.close(this.result);\r\n }\r\n\r\n private _transformValues(value: ComponentValueModel) {\r\n const cloneRowModel = cloneDeep(this.rowModel);\r\n const findValue: ComponentValueModel | undefined = cloneRowModel.data.find((c: ComponentValueModel) => c.sysName === value.sysName);\r\n\r\n if (findValue) {\r\n findValue.value = value.value;\r\n }\r\n\r\n this.rowModel = cloneRowModel;\r\n }\r\n}\r\n","<mrx-modal\r\n [title]=\"title\"\r\n size=\"large\"\r\n (close)=\"close()\"\r\n (ok)=\"ok()\"\r\n>\r\n <app-form-dispenser-modal\r\n [sectionSettings]=\"settings\"\r\n [values]=\"rowModel.data\"\r\n [valueMode]=\"'manual'\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></app-form-dispenser-modal>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"close()\"\r\n >Отмена\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"ok()\"\r\n >{{ okText }}\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n","import { ComponentModelBase } from '../../../../../../shared-form/models';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { ComponentType } from '../../../../../../shared-form/enums';\r\nimport { ComponentValueModel, TableRowModel } from '../../../../../models';\r\nimport { defaultValueModel } from '../../../../../helpers';\r\n\r\nexport const getRowModel = (model: ComponentModelBase): TableRowModel => {\r\n const getValuesFromModel = (model: ComponentModelBase): ComponentValueModel[] => {\r\n let values: ComponentValueModel[] = [];\r\n\r\n model.components.forEach((c: ComponentModelBase) => {\r\n if (c.type === ComponentType.Group) {\r\n values = values.concat(getValuesFromModel(c));\r\n } else {\r\n values = values.concat(defaultValueModel(c));\r\n }\r\n });\r\n\r\n return values;\r\n };\r\n\r\n return {id: uuidv4(), data: getValuesFromModel(model)};\r\n};\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter, inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { ComponentType, DateTypeEnum } from '../../../../../shared-form/enums';\r\nimport { Store } from '@ngrx/store';\r\nimport { ComponentModelBase } from '../../../../../shared-form/models';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { ComponentValueModel, SectionValueModel, TableRowModel, TableValueModel } from '../../../../models';\r\nimport { InputDateModel, InputNumberModel, InputTableModel } from '../../../../models/elemets/inputs';\r\nimport { objectFormActions, objectFormSelectors } from '../../../../store';\r\nimport { ModalService } from '@myrtex-org/ui';\r\nimport { InputTableModalComponent } from './components';\r\nimport { getRowModel } from './helpers/get-row-model.helper';\r\nimport { ColumnModel } from './models/column.model';\r\n\r\n@Component({\r\n selector: 'app-input-table',\r\n templateUrl: './input-table.component.html',\r\n styleUrls: ['./input-table.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputTableComponent implements OnInit, OnDestroy {\r\n type = ComponentType.InputTable;\r\n\r\n private _store: Store = inject(Store);\r\n private _detector: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n private _modalService: ModalService = inject(ModalService);\r\n\r\n private _changeSubject$: Subject<TableValueModel> = new Subject<TableValueModel>();\r\n private _subscriptions$: Subscription[] = [];\r\n\r\n private _isCheckRequired: boolean = false;\r\n\r\n public model!: TableValueModel;\r\n public settings!: InputTableModel;\r\n public dataSource: { [key: string]: any }[] = [];\r\n public columns: ColumnModel[] = [];\r\n\r\n @Input() values: SectionValueModel[] = [];\r\n\r\n @Input() set data(settings: ComponentModelBase) {\r\n this.settings = settings as InputTableModel;\r\n\r\n this.model = {sysName: settings.sysName, type: settings.type, data: [], totals: []};\r\n\r\n this._detector.detectChanges();\r\n\r\n this._initColumns(this.settings.components);\r\n }\r\n\r\n @ViewChild('dataGrid', {static: false}) dataGrid!: DxDataGridComponent;\r\n @ViewChild('editTemplate', {static: false}) editTemplate!: any;\r\n\r\n @Output() public changed: EventEmitter<ComponentValueModel | ComponentValueModel[]> = new EventEmitter<ComponentValueModel | ComponentValueModel[]>();\r\n\r\n ngOnInit(): void {\r\n this._initModel();\r\n\r\n this._changeSubject$.pipe(\r\n debounceTime(700),\r\n ).subscribe(model => {\r\n this._store.dispatch(objectFormActions.updateValues({value: model}));\r\n });\r\n\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectIsCheckRequired).subscribe(result => {\r\n this._isCheckRequired = result;\r\n this._detector.detectChanges();\r\n }));\r\n\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectValueModel(this.settings))\r\n .subscribe((result: ComponentValueModel | null | (ComponentValueModel | null)[]) => {\r\n const cloneResult = cloneDeep(result as TableValueModel | null);\r\n\r\n if (cloneResult && !Array.isArray(cloneResult) && this.model.data !== cloneResult.data) {\r\n this.model = cloneResult;\r\n this._initDataSource(this.model.data);\r\n }\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._changeSubject$.unsubscribe();\r\n this._subscriptions$.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n public createRow() {\r\n this._modalService.open(InputTableModalComponent, {\r\n title: 'Создание строки',\r\n okText: 'Создать',\r\n settings: this.settings,\r\n rowModel: getRowModel(this.settings)\r\n }).afterClosed().subscribe(resolve => {\r\n if (resolve.result) {\r\n this.model.data = [...this.model.data, resolve.rowModel];\r\n\r\n this._initDataSource(this.model.data);\r\n\r\n this._changeSubject$.next(this.model);\r\n }\r\n });\r\n }\r\n\r\n public deleteRow(event: any) {\r\n const findRow = this.model.data.find(item => item.id === event.row.data.id);\r\n\r\n if (findRow) {\r\n this.model.data = this.model.data.filter(item => item.id !== event.row.data.id);\r\n\r\n this._initDataSource(this.model.data);\r\n\r\n this._changeSubject$.next(this.model);\r\n }\r\n }\r\n\r\n public editRow(event: any) {\r\n const findRow: TableRowModel | undefined = this.model.data.find(item => item.id === event.row.data.id);\r\n\r\n if (findRow) {\r\n this._modalService.open(InputTableModalComponent, {\r\n title: 'Редактирование строки',\r\n okText: 'Сохранить',\r\n settings: this.settings,\r\n rowModel: findRow\r\n }).afterClosed().subscribe(resolve => {\r\n if (resolve.result) {\r\n const cloneModel = cloneDeep(this.model);\r\n const findRow = cloneModel.data.find(row => row.id === resolve.rowModel.id);\r\n\r\n if (findRow) {\r\n findRow.data = resolve.rowModel.data;\r\n\r\n this._changeSubject$.next(cloneModel);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n public getFormat(component: ComponentModelBase) {\r\n switch (component.type) {\r\n case ComponentType.InputDate:\r\n switch ((component as InputDateModel).options.viewType) {\r\n case DateTypeEnum.DateTime:\r\n return 'dd.MM.yyyy hh:mm';\r\n default:\r\n return 'dd.MM.yyyy';\r\n }\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n public getDataType(component: ComponentModelBase) {\r\n switch (component.type) {\r\n case ComponentType.InputDate:\r\n return 'date';\r\n default:\r\n return undefined;\r\n }\r\n }\r\n\r\n public showTotal(component: ComponentModelBase): boolean {\r\n if (component.type === ComponentType.InputNumber) {\r\n const element: InputNumberModel = component as InputNumberModel;\r\n\r\n return element.options.inTotals;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isTotalColumn(component: ComponentModelBase): boolean {\r\n return (component as InputNumberModel).options['inTotals'];\r\n }\r\n\r\n private _initModel() {\r\n this.model = {\r\n sysName: this.settings.sysName,\r\n type: this.settings.type,\r\n data: [],\r\n totals: []\r\n };\r\n }\r\n\r\n private _initDataSource(data: TableRowModel[]) {\r\n this.dataSource = data.map((item: TableRowModel) => {\r\n const newDataItem: any = {};\r\n\r\n for (let i in item.data) {\r\n newDataItem[item.data[i].sysName] = item.data[i].value;\r\n }\r\n\r\n newDataItem.id = item.id;\r\n\r\n return newDataItem;\r\n });\r\n\r\n this._detector.detectChanges();\r\n\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private _initColumns(components: ComponentModelBase[]) {\r\n this.columns = components.map(c => this._transformColumn(structuredClone(c)));\r\n\r\n this.columns.push({\r\n caption: '',\r\n type: 'buttons',\r\n width: 80,\r\n cssClass: 'custom-cell-controls',\r\n buttons: [\r\n {\r\n template: 'editButtonTemplate',\r\n hint: 'Редактировать',\r\n },\r\n {\r\n template: 'deleteButtonTemplate',\r\n hint: 'Удалить',\r\n },\r\n ],\r\n });\r\n\r\n this.dataGrid.instance.repaint();\r\n\r\n this._detector.detectChanges();\r\n }\r\n\r\n private _transformColumn(component: ComponentModelBase): ColumnModel {\r\n const column: ColumnModel = {\r\n caption: component.options.label || '',\r\n columns: component.components.map(c => this._transformColumn(structuredClone(c))),\r\n dataField: component.sysName,\r\n dataType: this.getDataType(component),\r\n format: this.getFormat(component),\r\n }\r\n\r\n if (this.settings.options.groups.length) {\r\n const findIdx = this.settings.options.groups.findIndex(x => x === component.sysName);\r\n\r\n if (findIdx !== -1) {\r\n column.groupIndex = findIdx\r\n }\r\n }\r\n\r\n return column\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-table-content w-100\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n noDataText=\"Нет данных\"\r\n style=\"width: 100%\"\r\n >\r\n <dxo-toolbar>\r\n <dxi-item location=\"after\">\r\n <div *dxTemplate class=\"add-row\">\r\n <mrx-button\r\n [size]=\"'medium'\"\r\n [type]=\"'tertiary'\"\r\n [customClasses]=\"'px-3'\"\r\n (mrxClick)=\"createRow()\"\r\n >Добавить\r\n </mrx-button>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n <div *dxTemplate=\"let buttonData of 'editButtonTemplate'\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(buttonData)\"></span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let buttonData of 'deleteButtonTemplate'\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(buttonData)\"></span>\r\n </div>\r\n\r\n @if (dataSource.length) {\r\n <dxo-summary>\r\n @for (component of settings.components; track component.id; let first = $first) {\r\n @if (!first) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n } @else {\r\n @if (isTotalColumn(component)) {\r\n <dxi-total-item [column]=\"component.sysName\" [displayFormat]=\"'{0}'\"></dxi-total-item>\r\n } @else {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [cssClass]=\"'text-bold'\"\r\n [displayFormat]=\"'ИТОГО'\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n </dxo-summary>\r\n }\r\n </dx-data-grid>\r\n\r\n <ng-template #editTemplate let-cellInfo=\"cellInfo\">\r\n <div class=\"d-flex align-items-center justify-content-center\" style=\"gap: 4px\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(cellInfo)\"></span>\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(cellInfo)\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n}\r\n\r\n\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseElementComponent } from '../../base';\r\nimport { ContentTitleModel } from '../../../../models/elemets/inputs';\r\n\r\n@Component({\r\n selector: 'app-content-title',\r\n templateUrl: './content-title.component.html',\r\n styleUrls: ['./content-title.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContentTitleComponent extends BaseElementComponent<ContentTitleModel> {\r\n type = ComponentType.ContentTitle;\r\n\r\n public get getSizeClass(): string {\r\n return this.settings.options.size === 'large' ? '-large' : this.settings.options.size === 'medium' ? '-medium' : '-small';\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"content-title-content\">\r\n <h4\r\n class=\"content-title-content__title\"\r\n [class]=\"getSizeClass\"\r\n [class.mb-2]=\"settings.options.text && (settings.options.size === 'large' || settings.options.size === 'medium')\"\r\n [class.mb-1]=\"settings.options.text && (settings.options.size === 'small')\"\r\n >\r\n {{ settings.options.title }}\r\n </h4>\r\n\r\n <p class=\"content-title-content__text\" [innerHTML]=\"settings.options.text\"></p>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseElementComponent } from '../../base';\r\nimport { ContentTextModel } from '../../../../models/elemets/inputs';\r\n\r\n@Component({\r\n selector: 'app-content-input-table-modal',\r\n templateUrl: './content-text.component.html',\r\n styleUrls: ['./content-text.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContentTextComponent extends BaseElementComponent<ContentTextModel> {\r\n type = ComponentType.ContentText;\r\n}\r\n","@if (settings) {\r\n <div class=\"content-text-content\">\r\n <p class=\"content-text-content__text\" [innerHTML]=\"settings.options.text\"></p>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseElementComponent } from '../../base';\r\nimport { ContentTooltipModel } from '../../../../models/elemets/inputs';\r\n\r\n@Component({\r\n selector: 'app-content-tooltip',\r\n templateUrl: './content-tooltip.component.html',\r\n styleUrls: ['./content-tooltip.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContentTooltipComponent extends BaseElementComponent<ContentTooltipModel> {\r\n type = ComponentType.ContentTooltip;\r\n}\r\n","@if (settings) {\r\n <div class=\"content-tooltip-content\">\r\n <mrx-alert\r\n [title]=\"settings.options.title\"\r\n [message]=\"settings.options.text\"\r\n [color]=\"settings.options.color\"\r\n ></mrx-alert>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { formatBytes } from '@myrtex-org/ui-composite';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseElementComponent } from '../../base';\r\nimport { ContentFileModel } from '../../../../models/elemets/inputs';\r\n\r\n@Component({\r\n selector: 'app-content-file',\r\n templateUrl: './content-file.component.html',\r\n styleUrls: ['./content-file.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContentFileComponent extends BaseElementComponent<ContentFileModel> {\r\n type = ComponentType.ContentFile;\r\n\r\n public formatBytes = formatBytes;\r\n}\r\n","@if (settings) {\r\n <div class=\"content-file-content\">\r\n @if (settings.options.fileId) {\r\n <a\r\n [href]=\"'/form/api/v1/admin/template/' + (applicationId$ | async) + '/file/' + settings.options.fileId\"\r\n target=\"_blank\"\r\n class=\"content-file-content__file\"\r\n >\r\n <div class=\"content-file-content__file-content\">\r\n <div class=\"content-file-content__file-content__title\">\r\n <span class=\"mrx-icon icon-file icon-font-24\"></span>\r\n <p>{{ settings.options.fileName }}</p>\r\n </div>\r\n\r\n <div class=\"content-file-content__file-content__info\">\r\n <div class=\"content-file-content__file-content__info--item\">\r\n <span>{{formatBytes(settings.options.fileSize)}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n } @else {\r\n <div class=\"content-file-content__file\">\r\n <div class=\"content-file-content__file-content\">\r\n <div class=\"content-file-content__file-content__title\">\r\n <span class=\"mrx-icon icon-file icon-font-24\"></span>\r\n <p>Файл не загружен</p>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseElementComponent } from '../../base';\r\nimport { ContentDividerModel } from '../../../../models/elemets/inputs';\r\n\r\n@Component({\r\n selector: 'app-content-divider',\r\n templateUrl: './content-divider.component.html',\r\n styleUrls: ['./content-divider.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContentDividerComponent extends BaseElementComponent<ContentDividerModel> {\r\n type = ComponentType.ContentDivider;\r\n\r\n public get getSizeClass(): string {\r\n return this.settings.options.size === 'large' ? '-large' : this.settings.options.size === 'medium' ? '-medium' : '-small';\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"content-divider-content\">\r\n <hr class=\"content-divider-content__line\" [class]=\"getSizeClass\">\r\n </div>\r\n}\r\n","import { Type } from '@angular/core';\r\nimport { ComponentType } from '../../../../shared-form/enums';\r\nimport { ComponentIE } from '../models/component.model';\r\nimport * as components from '../../../components/elements';\r\n\r\nexport type ComponentsMapType = Record<string, Type<ComponentIE>>\r\n\r\nexport const contentComponentsMap: ComponentsMapType = {\r\n [ComponentType.InputText]: components.InputTextComponent,\r\n [ComponentType.InputTextarea]: components.InputTextareaComponent,\r\n [ComponentType.InputLink]: components.InputLinkComponent,\r\n [ComponentType.InputSwitch]: components.InputSwitchComponent,\r\n [ComponentType.InputNumber]: components.InputNumberComponent,\r\n [ComponentType.InputSelect]: components.InputSelectComponent,\r\n [ComponentType.InputDate]: components.InputDateComponent,\r\n [ComponentType.InputINN]: components.InputInnComponent,\r\n [ComponentType.InputFile]: components.InputFileComponent,\r\n [ComponentType.InputPhone]: components.InputPhoneComponent,\r\n [ComponentType.InputCheckboxGroup]: components.InputCheckboxGroupComponent,\r\n [ComponentType.InputRadioGroup]: components.InputRadioGroupComponent,\r\n [ComponentType.InputTable]: components.InputTableComponent,\r\n\r\n [ComponentType.ContentTitle]: components.ContentTitleComponent,\r\n [ComponentType.ContentText]: components.ContentTextComponent,\r\n [ComponentType.ContentTooltip]: components.ContentTooltipComponent,\r\n [ComponentType.ContentFile]: components.ContentFileComponent,\r\n [ComponentType.ContentDivider]: components.ContentDividerComponent,\r\n};\r\n","import { ComponentModelBase } from '../../../../shared-form/models';\r\nimport { ComponentValueModel, ValueModel } from '../../../models';\r\nimport { EventEmitter } from '@angular/core';\r\n\r\nexport interface ComponentIE {\r\n type: string;\r\n values?: ValueModel[];\r\n valueMode?: 'auto' | 'manual';\r\n data: ComponentModelBase;\r\n\r\n changed?: EventEmitter<ComponentValueModel | ComponentValueModel[]>\r\n}\r\n\r\nexport abstract class AbstractComponent {\r\n public type?: string;\r\n public values?: ValueModel[]\r\n public valueMode?: 'auto' | 'manual'\r\n public set data(settings: ComponentModelBase) {}\r\n\r\n public changed?: EventEmitter<ComponentValueModel | ComponentValueModel[]> = new EventEmitter<ComponentValueModel | ComponentValueModel[]>()\r\n}\r\n\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter, inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { DependenceActionType } from '../../../shared-form/enums';\r\nimport { ComponentValueModel, FieldDependencyCheckResultModel, ValueModel } from '../../models';\r\nimport { ComponentFactoryDirective, contentComponentsMap } from '../../factories/component-factory';\r\nimport { SectionModel } from '../../models/elemets';\r\nimport { objectFormSelectors } from '../../store';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LabelModule } from '@myrtex-org/ui';\r\n\r\n@Component({\r\n selector: 'app-form-dispenser',\r\n templateUrl: './form-dispenser.component.html',\r\n styleUrls: ['./form-dispenser.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n LabelModule,\r\n ComponentFactoryDirective\r\n ]\r\n})\r\nexport class FormDispenser implements OnInit, OnDestroy {\r\n private _store: Store = inject(Store)\r\n private _detector: ChangeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n private _subscriptions$: Subscription[] = [];\r\n private _fieldDependencyRulesCheckResults: FieldDependencyCheckResultModel[] = [];\r\n\r\n public mapper = contentComponentsMap;\r\n\r\n @Input() public sectionSettings!: SectionModel | null;\r\n @Input() public values: ValueModel[] = [];\r\n @Input() public valueMode: 'auto' | 'manual' = 'auto';\r\n\r\n @Output() changed: EventEmitter<ComponentValueModel | ComponentValueModel[]> = new EventEmitter<ComponentValueModel | ComponentValueModel[]>();\r\n\r\n ngOnInit(): void {\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectDependencyRulesResults)\r\n .subscribe(results => {\r\n this._fieldDependencyRulesCheckResults = results;\r\n this._detector.detectChanges();\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions$.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n componentValueChanged(event: ComponentValueModel | ComponentValueModel[]) {\r\n this.changed.emit(event);\r\n }\r\n\r\n isComponentVisible(sysName: string): boolean {\r\n const result = this._fieldDependencyRulesCheckResults.find(x => x.sysName === sysName);\r\n\r\n if (!result) {\r\n return true;\r\n }\r\n\r\n let visible = true;\r\n\r\n switch (result.actionType) {\r\n case DependenceActionType.show:\r\n visible = result.conditionResult;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return visible;\r\n }\r\n}\r\n","@if (sectionSettings?.components?.length) {\r\n <div class=\"row application-form__content\">\r\n @for (component of sectionSettings?.components; track component.id) {\r\n @switch (component.type) {\r\n @case ('group') {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragGroup\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n @default {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragInput\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n<ng-template #dragGroup let-component='component'>\r\n <div class=\"col col-{{component.options.width}}\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n @if (component.options.label) {\r\n <mrx-label>{{ component.options.label }}</mrx-label>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"application-form__group p-2\">\r\n @if (component.components.length) {\r\n <div class=\"row\">\r\n @for (component of component.components; track component.id) {\r\n @switch (component.type) {\r\n @case ('group') {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragGroup\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n @default {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragInput\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n }\r\n }\r\n </div>\r\n } @else {\r\n <p class=\"p-2\">Элементы группы отсутствуют</p>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dragInput let-component='component'>\r\n @if (isComponentVisible(component.sysName)) {\r\n <div class=\"col col-{{component.options.width}}\">\r\n <div class=\"application-form__input\">\r\n <ng-template\r\n appComponentFactory\r\n [type]=\"component.type\"\r\n [data]=\"component\"\r\n [map]=\"mapper\"\r\n [values]=\"values\"\r\n [valueMode]=\"valueMode\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { ComponentValueModel } from '../../models';\r\nimport { SectionModel } from '../../models/elemets';\r\nimport { objectFormActions, objectFormSelectors } from '../../store';\r\n\r\n@Component({\r\n selector: 'app-object-form-content',\r\n templateUrl: './object-form-content.component.html',\r\n styleUrls: ['./object-form-content.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ApplicationContent{\r\n private _store: Store = inject(Store)\r\n\r\n public sectionSettings$: Observable<SectionModel | null> = this._store.select(objectFormSelectors.selectSectionSettings);\r\n\r\n changeCheckRequiredState() {\r\n this._store.dispatch(objectFormActions.toggleCheckRequired());\r\n }\r\n\r\n componentValueChanged(model: ComponentValueModel | ComponentValueModel[]) {\r\n this._store.dispatch(objectFormActions.updateValues({value: model}));\r\n }\r\n}\r\n","<mrx-content-wrapper maxWidth=\"1144px\" customClasses=\"px-3\">\r\n @if (sectionSettings$ | async) {\r\n <mrx-content-wrapper type=\"default\" maxWidth=\"1112px\">\r\n <div class=\"row mb-4 mt-12px\">\r\n <div class=\"col\">\r\n <div class=\"application-form__title\">\r\n <h3>{{ (sectionSettings$ | async)?.options?.title }}</h3>\r\n <mrx-link type=\"pseudo\" [prevent]=\"true\" (click)=\"changeCheckRequiredState()\">Проверить форму</mrx-link>\r\n </div>\r\n </div>\r\n </div>\r\n </mrx-content-wrapper>\r\n\r\n <mrx-content-wrapper type=\"colored\" maxWidth=\"1112px\">\r\n <app-form-dispenser\r\n [sectionSettings]=\"sectionSettings$ | async\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></app-form-dispenser>\r\n </mrx-content-wrapper>\r\n }\r\n</mrx-content-wrapper>\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { ObjectFormComponent } from './object-form.component';\r\nimport { ApplicationContent } from './components/object-form-content/object-form-content.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'preview/:templateSysName',\r\n component: ObjectFormComponent,\r\n children: [\r\n {\r\n path: ':sectionSysName',\r\n component: ApplicationContent\r\n }\r\n ]\r\n },\r\n {\r\n path: '',\r\n component: ObjectFormComponent,\r\n children: [\r\n {\r\n path: ':sectionSysName',\r\n component: ApplicationContent\r\n }\r\n ]\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ObjectFormRoutingModule { }\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToasterService, ToasterType } from '@myrtex-org/ui';\r\n\r\n@Injectable()\r\nexport class ConcurrencyInterceptor implements HttpInterceptor {\r\n constructor(private _toasterService: ToasterService)\r\n {}\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return next.handle(req).pipe(\r\n catchError(error => {\r\n return this.handleError(error);\r\n })\r\n );\r\n }\r\n\r\n private handleError(error:any) {\r\n if (error.status === 409) {\r\n this._toasterService.show({\r\n title: 'Данные были изменены.',\r\n message: 'Для продолжения работы обновите страницу.',\r\n type: ToasterType.Negative\r\n })\r\n }\r\n return throwError(error);\r\n }\r\n\r\n}\r\n","export const SHARED_FORM_MODULE_NAME = 'SHARED_FORM_MODULE_NAME'\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { SHARED_FORM_MODULE_NAME } from './constants';\r\nimport { EFFECTS, sharedFormReducer } from './store';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n EffectsModule.forFeature(EFFECTS),\r\n StoreModule.forFeature(SHARED_FORM_MODULE_NAME, sharedFormReducer),\r\n ]\r\n})\r\nexport class SharedFormModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ObjectFormRoutingModule } from './object-form-routing.module';\r\nimport { ObjectFormComponent } from './object-form.component';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { ObjectFormEffects, objectReducer } from './store';\r\nimport { STATE_NAME } from './constants';\r\nimport { ObjectFormService } from './services';\r\nimport { ApplicationContent } from './components/object-form-content/object-form-content.component';\r\nimport { FormHeaderModule, MenuAdminModule } from '@myrtex-org/templates';\r\nimport { FormsModule } from '@angular/forms';\r\nimport {\r\n InputLinkComponent,\r\n InputNumberComponent, InputSelectComponent,\r\n InputSwitchComponent, InputTextareaComponent,\r\n InputTextComponent, InputDateComponent,\r\n InputInnComponent, InputFileComponent, InputPhoneComponent,\r\n ContentTitleComponent, ContentTextComponent,\r\n ContentTooltipComponent, ContentFileComponent,\r\n ContentDividerComponent, InputCheckboxGroupComponent,\r\n InputRadioGroupComponent, InputTableComponent\r\n} from './components/elements';\r\nimport {\r\n AlertModule,\r\n ButtonModule,\r\n CheckboxGroupModule,\r\n CheckboxModule,\r\n ContentWrapperModule,\r\n EditorModule,\r\n InputDateTimeModule,\r\n InputFileModule,\r\n InputNumberModule,\r\n InputSelectModule,\r\n InputTextareaModule,\r\n InputTextModule,\r\n InputTimepickerModule,\r\n LabelModule,\r\n LoaderModule,\r\n RadioGroupModule,\r\n SwitchModule,\r\n DropdownModule,\r\n InputTelModule,\r\n LinkModule,\r\n ErrorMessageModule,\r\n ModalModule,\r\n ToasterServiceModule,\r\n HintErrorMessageModule\r\n} from '@myrtex-org/ui';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\nimport { DxiColumnModule, DxiItemModule, DxoToolbarModule } from 'devextreme-angular/ui/nested';\r\nimport { ConcurrencyInterceptor } from '../shared-form/interceptors';\r\nimport { ConcurrencyStoreService } from '../shared-form/services';\r\nimport { FormDispenser } from './components/form-dispenser/form-dispenser.component';\r\nimport { SharedFormModule } from '../shared-form/shared-form.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ObjectFormComponent,\r\n ApplicationContent,\r\n InputTextComponent,\r\n InputTextareaComponent,\r\n InputLinkComponent,\r\n InputSwitchComponent,\r\n InputNumberComponent,\r\n InputSelectComponent,\r\n InputDateComponent,\r\n InputInnComponent,\r\n InputFileComponent,\r\n InputPhoneComponent,\r\n InputCheckboxGroupComponent,\r\n InputRadioGroupComponent,\r\n InputTableComponent,\r\n ContentTitleComponent,\r\n ContentTextComponent,\r\n ContentTooltipComponent,\r\n ContentFileComponent,\r\n ContentDividerComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ObjectFormRoutingModule,\r\n StoreModule.forFeature(STATE_NAME, objectReducer),\r\n EffectsModule.forFeature([ObjectFormEffects]),\r\n FormDispenser,\r\n FormHeaderModule,\r\n MenuAdminModule,\r\n LoaderModule,\r\n InputTextModule,\r\n LabelModule,\r\n ContentWrapperModule,\r\n EditorModule,\r\n InputTextareaModule,\r\n ButtonModule,\r\n FormsModule,\r\n CheckboxModule,\r\n SwitchModule,\r\n InputNumberModule,\r\n InputSelectModule,\r\n InputDateTimeModule,\r\n InputTimepickerModule,\r\n InputFileModule,\r\n AlertModule,\r\n CheckboxGroupModule,\r\n RadioGroupModule,\r\n DropdownModule,\r\n InputTelModule,\r\n LinkModule,\r\n ErrorMessageModule,\r\n DxDataGridModule,\r\n DxiColumnModule,\r\n DxiItemModule,\r\n DxoToolbarModule,\r\n ModalModule,\r\n ToasterServiceModule,\r\n SharedFormModule,\r\n HintErrorMessageModule\r\n ],\r\n providers: [\r\n ObjectFormService,\r\n ConcurrencyStoreService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ConcurrencyInterceptor,\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class ObjectFormModule {\r\n}\r\n","export function isNumeric(str: any) {\r\n if (typeof str != 'string') {\r\n return false; // we only process strings!\r\n }\r\n return !isNaN(str as any) && !isNaN(parseInt(str)) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\r\n !isNaN(parseFloat(str)) // ...and ensure strings of whitespace fail\r\n}\r\n\r\nexport const isNullOrUndefined = (model: any) => {\r\n return model === null || typeof model === 'undefined'\r\n}\r\n","/*\r\n * Public API Surface of myrtex-form\r\n */\r\n\r\nexport * from './lib/modules/object-form/object-form.module';\r\nexport * from './lib/modules/object-form/models';\r\nexport * from './lib/modules/object-form/store';\r\nexport * from './lib/modules/object-form/constants';\r\n\r\nexport * from './lib/modules/object-form/components/elements/input/table';\r\n\r\nexport * from './lib/modules/shared-form/shared-form.module';\r\nexport * from './lib/modules/shared-form/store';\r\nexport * from './lib/modules/shared-form/enums';\r\nexport * from './lib/modules/shared-form/helpers';\r\nexport * from './lib/modules/shared-form/interceptors';\r\nexport * from './lib/modules/shared-form/models';\r\nexport * from './lib/modules/shared-form/services';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["selectTemplateSysName","sharedSelectors.selectRouteNestedParam","objectFormActions.updateApiUrl","objectFormActions.loadObjectPending","objectFormActions.loadObjectSuccess","fromHelpers.getMenuModel","objectFormActions.loadObjectError","objectFormActions.updateValues","fromHelpers.getDependenceRulesResults","fromHelpers.getUpdatedValues","fromHelpers.getValuesToClean","objectFormActions.saveValuesSuccess","objectFormActions.saveValuesError","objectFormActions.saveObjectPending","objectFormActions.saveObjectSuccess","objectFormActions.saveObjectError","objectFormActions.updateSelectedSectionSysName","objectFormActions.loadSectionFilesPending","objectFormActions.loadSectionFilesSuccess","objectFormActions.toggleCheckRequired","objectFormActions.updateCheckRequired","objectFormActions.loadPreviewTemplatePending","objectFormActions.loadPreviewTemplateSuccess","fromHelpers.getPreviewMenuModel","objectFormActions.loadPreviewTemplateError","objectFormActions.checkAllDependencyRules","fromHelpers.checkDependenceRule","objectFormActions.loadTemplatePending","objectFormActions.loadTemplateSuccess","objectFormActions.loadTemplateError","objectFormSelectors.selectApiPrefix","objectFormActions.accessUpdateValues","objectFormActions.saveValuesPending","objectFormSelectors.selectSectionValues","objectFormActions.copyObjectSuccess","objectFormActions.copyObjectError","objectFormActions.loadSectionFilesError","objectFormSelectors.selectApiUrl","i4.ObjectFormService","i5","objectFormSelectors.selectIsLoading","objectFormSelectors.selectMenuModel","i1","i2","i3","i4","objectFormSelectors.selectObjectId","objectFormSelectors.selectIsCheckRequired","objectFormSelectors.selectValueModel","objectFormSelectors.selectSectionFiles","objectFormSelectors.selectDependencyRulesResults","uuidv4","components.InputTextComponent","components.InputTextareaComponent","components.InputLinkComponent","components.InputSwitchComponent","components.InputNumberComponent","components.InputSelectComponent","components.InputDateComponent","components.InputInnComponent","components.InputFileComponent","components.InputPhoneComponent","components.InputCheckboxGroupComponent","components.InputRadioGroupComponent","components.InputTableComponent","components.ContentTitleComponent","components.ContentTextComponent","components.ContentTooltipComponent","components.ContentFileComponent","components.ContentDividerComponent","objectFormSelectors.selectSectionSettings","i1.FormDispenser"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAM,OAAO,GAAG;;ACMV,MAAA,iBAAiB,GAA2C;IACvE,CAAC,iBAAiB,GAAG,aAAa;;;ACA7B,MAAM,sBAAsB,GAAoB;;ACPhD,MAAM,UAAU,GAAG,cAAa;AAEhC,MAAM,cAAc,GAAG,WAAU;AACjC,MAAM,qBAAqB,GAAG,iBAAgB;AAC9C,MAAM,sBAAsB,GAAG;;ACC/B,MAAM,uBAAuB,GAAG,cAAc,CAAC,YAAY,EAAE,CAAC,MAAM,KAAI;AAC7E,IAAA,IAAI,YAAY,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;IAEvC,IAAI,MAAM,GAAW,EAAE,CAAC;AAExB,IAAA,OAAO,YAAY,EAAE,UAAU,EAAE;AAC/B,QAAA,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC;AACvC,QAAA,MAAM,GAAG;AACP,YAAA,GAAG,MAAM;YACT,GAAG,YAAY,CAAC,MAAM;SACvB,CAAC;KACH;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CAAC;AAEI,MAAM,sBAAsB,GAAG,CAAC,KAAa,KAAK,cAAc,CAAC,uBAAuB,EAC7F,CAAC,MAAM,KAAI;AACT,IAAA,OAAO,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEE,MAAMA,uBAAqB,GAAG,cAAc,CACjD,sBAAsB,CAAC,sBAAsB,CAAC,EAC9C,CAAC,MAA0B,KAAI;IAC7B,OAAO,MAAM,IAAI,IAAI,CAAC;AACxB,CAAC,CACF,CAAC;AAEK,MAAM,iBAAiB,GAAG,cAAc,CAC7C,gBAAgB,CAAC,IAAI,CAAC,EACtB,CAAC,MAAmC,KAAI;IACtC,OAAO,MAAM,IAAI,IAAI,CAAC;AACxB,CAAC,CACF,CAAC;AAEK,MAAM,oBAAoB,GAAG,cAAc,CAChD,gBAAgB,CAAC,qBAAqB,CAAC,EACvC,CAAC,MAA0B,KAAI;IAC7B,OAAO,MAAM,IAAI,IAAI,CAAC;AACxB,CAAC,CACF;;;;;;;;;;;ICxCW,oBAyCX;AAzCD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,8BAA6C,CAAA;AAE7C,IAAA,mBAAA,CAAA,qBAAA,CAAA,GAAA,qCAA2D,CAAA;AAC3D,IAAA,mBAAA,CAAA,qBAAA,CAAA,GAAA,qCAA2D,CAAA;AAC3D,IAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,mCAAuD,CAAA;AAEvD,IAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,mCAAuD,CAAA;AACvD,IAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,mCAAuD,CAAA;AACvD,IAAA,mBAAA,CAAA,iBAAA,CAAA,GAAA,iCAAmD,CAAA;AAEnD,IAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,mCAAuD,CAAA;AACvD,IAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,mCAAuD,CAAA;AACvD,IAAA,mBAAA,CAAA,iBAAA,CAAA,GAAA,iCAAmD,CAAA;AAEnD,IAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,mCAAuD,CAAA;AACvD,IAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,mCAAuD,CAAA;AACvD,IAAA,mBAAA,CAAA,iBAAA,CAAA,GAAA,iCAAmD,CAAA;AAEnD,IAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,yCAAwD,CAAA;AACxD,IAAA,mBAAA,CAAA,oBAAA,CAAA,GAAA,gDAAqE,CAAA;AACrE,IAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,+CAAmE,CAAA;AACnE,IAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,+CAAmE,CAAA;AACnE,IAAA,mBAAA,CAAA,iBAAA,CAAA,GAAA,6CAA+D,CAAA;AAE/D,IAAA,mBAAA,CAAA,8BAAA,CAAA,GAAA,+CAA8E,CAAA;AAE9E,IAAA,mBAAA,CAAA,yBAAA,CAAA,GAAA,0CAAoE,CAAA;AACpE,IAAA,mBAAA,CAAA,yBAAA,CAAA,GAAA,0CAAoE,CAAA;AACpE,IAAA,mBAAA,CAAA,uBAAA,CAAA,GAAA,wCAAgE,CAAA;AAEhE,IAAA,mBAAA,CAAA,qBAAA,CAAA,GAAA,qCAA2D,CAAA;AAC3D,IAAA,mBAAA,CAAA,qBAAA,CAAA,GAAA,qCAA2D,CAAA;AAE3D,IAAA,mBAAA,CAAA,4BAAA,CAAA,GAAA,6CAA0E,CAAA;AAC1E,IAAA,mBAAA,CAAA,4BAAA,CAAA,GAAA,6CAA0E,CAAA;AAC1E,IAAA,mBAAA,CAAA,0BAAA,CAAA,GAAA,2CAAsE,CAAA;AAEtE,IAAA,mBAAA,CAAA,yBAAA,CAAA,GAAA,yCAAmE,CAAA;AAEnE,IAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,8BAA8C,CAAA;AAChD,CAAC,EAzCW,mBAAmB,KAAnB,mBAAmB,GAyC9B,EAAA,CAAA,CAAA,CAAA;AAEM,MAAM,YAAY,GAAG,YAAY,CACtC,mBAAmB,CAAC,YAAY,EAChC,KAAK,EAAyC,CAC/C,CAAC;AAEK,MAAM,mBAAmB,GAAG,YAAY,CAC7C,mBAAmB,CAAC,mBAAmB,CACxC,CAAC;AACK,MAAM,mBAAmB,GAAG,YAAY,CAC7C,mBAAmB,CAAC,mBAAmB,EACvC,KAAK,EAA+B,CACrC,CAAC;AACK,MAAM,iBAAiB,GAAG,YAAY,CAC3C,mBAAmB,CAAC,iBAAiB,CACtC,CAAC;AAEK,MAAM,iBAAiB,GAAG,YAAY,CAC3C,mBAAmB,CAAC,iBAAiB,EACrC,KAAK,EAA+B,CACrC,CAAC;AACK,MAAM,iBAAiB,GAAG,YAAY,CAC3C,mBAAmB,CAAC,iBAAiB,EACrC,KAAK,EAKD,CACL,CAAC;AACK,MAAM,eAAe,GAAG,YAAY,CACzC,mBAAmB,CAAC,eAAe,CACpC,CAAC;AACK,MAAM,iBAAiB,GAAG,YAAY,CAC3C,mBAAmB,CAAC,iBAAiB,CACtC,CAAC;AACK,MAAM,iBAAiB,GAAG,YAAY,CAC3C,mBAAmB,CAAC,iBAAiB,CACtC,CAAC;AACK,MAAM,eAAe,GAAG,YAAY,CACzC,mBAAmB,CAAC,eAAe,CACpC,CAAC;AAEK,MAAM,iBAAiB,GAAG,YAAY,CAC3C,mBAAmB,CAAC,iBAAiB,EACrC,KAAK,EAAuD,CAC7D,CAAC;AACK,MAAM,iBAAiB,GAAG,YAAY,CAC3C,mBAAmB,CAAC,iBAAiB,CACtC,CAAC;AACK,MAAM,eAAe,GAAG,YAAY,CACzC,mBAAmB,CAAC,eAAe,CACpC,CAAC;AAEK,MAAM,YAAY,GAAG,YAAY,CACtC,mBAAmB,CAAC,YAAY,EAChC,KAAK,EAAwC,CAC9C,CAAC;AAEK,MAAM,kBAAkB,GAAG,YAAY,CAC5C,mBAAmB,CAAC,kBAAkB,CACvC,CAAC;AAEK,MAAM,iBAAiB,GAAG,YAAY,CAC3C,mBAAmB,CAAC,iBAAiB,CACtC,CAAC;AACK,MAAM,iBAAiB,GAAG,YAAY,CAC3C,mBAAmB,CAAC,iBAAiB,EACrC,KAAK,EAAmD,CACzD,CAAC;AACK,MAAM,eAAe,GAAG,YAAY,CACzC,mBAAmB,CAAC,eAAe,CACpC,CAAC;AAEK,MAAM,4BAA4B,GAAG,YAAY,CACtD,mBAAmB,CAAC,4BAA4B,EAChD,KAAK,EAA8B,CACpC,CAAC;AAEK,MAAM,uBAAuB,GAAG,YAAY,CACjD,mBAAmB,CAAC,uBAAuB,CAC5C,CAAC;AACK,MAAM,uBAAuB,GAAG,YAAY,CACjD,mBAAmB,CAAC,uBAAuB,EAC3C,KAAK,EAAiC,CACvC,CAAC;AACK,MAAM,qBAAqB,GAAG,YAAY,CAC/C,mBAAmB,CAAC,qBAAqB,CAC1C,CAAC;AAEK,MAAM,mBAAmB,GAAG,YAAY,CAC7C,mBAAmB,CAAC,mBAAmB,CACxC,CAAC;AACK,MAAM,mBAAmB,GAAG,YAAY,CAC7C,mBAAmB,CAAC,mBAAmB,EACvC,KAAK,EAAgC,CACtC,CAAC;AAEK,MAAM,0BAA0B,GAAG,YAAY,CACpD,mBAAmB,CAAC,0BAA0B,EAC9C,KAAK,EAA+B,CACrC,CAAC;AAEK,MAAM,0BAA0B,GAAG,YAAY,CACpD,mBAAmB,CAAC,0BAA0B,EAC9C,KAAK,EAAgE,CACtE,CAAC;AAEK,MAAM,wBAAwB,GAAG,YAAY,CAClD,mBAAmB,CAAC,wBAAwB,CAC7C,CAAC;AAEK,MAAM,uBAAuB,GAAG,YAAY,CACjD,mBAAmB,CAAC,uBAAuB,CAC5C,CAAC;AAEK,MAAM,aAAa,GAAG,YAAY,CACvC,mBAAmB,CAAC,aAAa,CAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICrKW,eAIX;AAJD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACd,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;AAED,MAAM,qBAAqB,GAAmC;AAC5D,IAAA,CAAC,cAAc,CAAC,KAAK,GAAG,UAAU;AAClC,IAAA,CAAC,cAAc,CAAC,MAAM,GAAG,SAAS;AAClC,IAAA,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO;CACnC,CAAC;AAEW,MAAA,qBAAqB,GAAG,CAAC,MAAsB,KAAY;AACtE,IAAA,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACvC;;ICdY,kBAIX;AAJD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,GAI5B,EAAA,CAAA,CAAA;;ICJW,eAIX;AAJD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,KAAA,CAAA,GAAA,oDAAkB,CAAA;AAClB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,uCAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,0BAAa,CAAA;AACf,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,mBAAmB,GAAmC;AACjE,IAAA,CAAC,cAAc,CAAC,GAAG,GAAG,YAAY;AAClC,IAAA,CAAC,cAAc,CAAC,KAAK,GAAG,SAAS;AACjC,IAAA,CAAC,cAAc,CAAC,IAAI,GAAG,MAAM;;;ICTnB,aAGX;AAHD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACxB,CAAC,EAHW,YAAY,KAAZ,YAAY,GAGvB,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,iBAAiB,GAAiC;AAC7D,IAAA,CAAC,YAAY,CAAC,IAAI,GAAG,MAAM;AAC3B,IAAA,CAAC,YAAY,CAAC,QAAQ,GAAG,cAAc;;;ICP7B,YAIX;AAJD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAChC,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,gBAAgB,GAAgC;AAC3D,IAAA,CAAC,WAAW,CAAC,QAAQ,GAAG,OAAO;AAC/B,IAAA,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI;AACzB,IAAA,CAAC,WAAW,CAAC,YAAY,GAAG,gBAAgB;;;ICTlC,WAIX;AAJD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;IAEW,qBAIX;AAJD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,oBAAA,CAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,oBAAA,CAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACb,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,GAI/B,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,yBAAyB,GAAyC;AAC7E,IAAA,CAAC,oBAAoB,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI;AAC5C,IAAA,CAAC,oBAAoB,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI;AAC5C,IAAA,CAAC,oBAAoB,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO;;;ICfxC,cAuBX;AAvBD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AAEf,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,aAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,aAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,aAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAEzB,IAAA,aAAA,CAAA,cAAA,CAAA,GAAA,OAAsB,CAAA;AACtB,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,MAAoB,CAAA;AACpB,IAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B,CAAA;AAC1B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,MAAoB,CAAA;AACpB,IAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B,CAAA;AAC5B,CAAC,EAvBW,aAAa,KAAb,aAAa,GAuBxB,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,kBAAkB,GAAkC;AAC/D,IAAA,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG;AAC5B,IAAA,CAAC,aAAa,CAAC,KAAK,GAAG,GAAG;AAE1B,IAAA,CAAC,aAAa,CAAC,SAAS,GAAG,KAAK;AAChC,IAAA,CAAC,aAAa,CAAC,aAAa,GAAG,KAAK;AACpC,IAAA,CAAC,aAAa,CAAC,WAAW,GAAG,KAAK;AAClC,IAAA,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI;AAC/B,IAAA,CAAC,aAAa,CAAC,WAAW,GAAG,KAAK;AAClC,IAAA,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI;AACjC,IAAA,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI;AAC/B,IAAA,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK;AAC/B,IAAA,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI;AAC/B,IAAA,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI;AAChC,IAAA,CAAC,aAAa,CAAC,kBAAkB,GAAG,KAAK;AACzC,IAAA,CAAC,aAAa,CAAC,eAAe,GAAG,KAAK;AACtC,IAAA,CAAC,aAAa,CAAC,UAAU,GAAG,KAAK;AAEjC,IAAA,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI;AAClC,IAAA,CAAC,aAAa,CAAC,WAAW,GAAG,KAAK;AAClC,IAAA,CAAC,aAAa,CAAC,cAAc,GAAG,KAAK;AACrC,IAAA,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI;AACjC,IAAA,CAAC,aAAa,CAAC,cAAc,GAAG,IAAI;;;IC/C1B,UAeX;AAfD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,OAAkB,CAAA;AAClB,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,UAAwB,CAAA;AACxB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,QAAoB,CAAA;AACtB,CAAC,EAfW,SAAS,KAAT,SAAS,GAepB,EAAA,CAAA,CAAA;;ICdW,sBAGX;AAHD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,GAGhC,EAAA,CAAA,CAAA,CAAA;AAEM,MAAM,yBAAyB,GAAG,MAAK;AAC5C,IAAA,OAAO,CAAC;YACN,KAAK,EAAE,qBAAqB,CAAC,MAAM;AACnC,YAAA,IAAI,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,MAAM,CAAC;AAC/D,SAAA,CAAC,CAAA;AACJ,EAAE;AAEW,MAAA,0BAA0B,GAA2B;AAChE,IAAA,CAAC,qBAAqB,CAAC,MAAM,GAAG,WAAW;;;ICdjC,oBAIX;AAJD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACb,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,GAI9B,EAAA,CAAA,CAAA;;ICJW,qBAGX;AAHD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,GAG/B,EAAA,CAAA,CAAA,CAAA;AAEM,MAAM,wBAAwB,GAAG,MAAK;AAC3C,IAAA,OAAO,CAAC;YACN,KAAK,EAAE,oBAAoB,CAAC,IAAI;AAChC,YAAA,IAAI,EAAE,UAAU;AACjB,SAAA,CAAC,CAAA;AACJ;;ICVY,gCAGX;AAHD,CAAA,UAAY,+BAA+B,EAAA;AACzC,IAAA,+BAAA,CAAA,+BAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,+BAAA,CAAA,+BAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACb,CAAC,EAHW,+BAA+B,KAA/B,+BAA+B,GAG1C,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,iCAAiC,GAAoD;AAChG,IAAA,CAAC,+BAA+B,CAAC,UAAU,GAAG,MAAM;AACpD,IAAA,CAAC,+BAA+B,CAAC,OAAO,GAAG,SAAS;;;ACK/C,MAAM,yBAAyB,GACpC,CAAC,cAAiD,EAChD,SAA8B,EAC9B,YAAuC,EACvC,KAA8B,KACQ;IAEtC,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,cAAc,CAAC;KACvB;IAED,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,IAAG;QAC9C,OAAO,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,GAAG,CAAC,YAAY,CAAC,CAAC,CAAA;AAClG,KAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,KAAK;AACvB,SAAA,MAAM,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;SAC/D,GAAG,CAAC,IAAI,IAAG;AACV,QAAA,OAAO,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACjD,KAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEZ,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,IAAG;AAC9C,QAAA,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,IAAE,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;AACpE,QAAA,IAAG,GAAG,KAAK,CAAC,CAAC,EAAC;AACZ,YAAA,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AACpC,YAAA,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5B,YAAA,OAAO,SAAS,CAAC;SAClB;AACD,QAAA,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;AACvB,KAAC,CAAC,CAAC;AACH,IAAA,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE;AACzB,QAAA,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;KACnC;AAED,IAAA,OAAO,WAAW,CAAC;AACrB,CAAC,CAAA;AAEI,MAAM,mBAAmB,GAAG,CAAC,IAA0B,EAAE,MAA2B,KAAuC;IAChI,MAAM,MAAM,GAAsC,EAAE,CAAC;IAErD,MAAM,eAAe,GAAG,oBAAoB,CAAC;QACzC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,IAAI,EAAE,mBAAmB,CAAC,GAAG;AAC7B,QAAA,MAAM,EAAE,EAAE;KACX,EAAE,MAAM,CAAC,CAAC;AAEb,IAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAE;QACxB,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,CAAC,CAAC,CAAC;YACZ,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe;AAChB,SAAA,CAAC,CAAC;AACL,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA;AAEM,MAAM,gBAAgB,GAAG,CAAC,OAA0C,KAAe;IACxF,MAAM,MAAM,GAAa,EAAE,CAAC;AAC5B,IAAA,OAAO,CAAC,OAAO,CAAC,GAAG,IAAG;AACpB,QAAA,QAAQ,GAAG,CAAC,UAAU;YACpB,KAAK,oBAAoB,CAAC,IAAI;AAC5B,gBAAA,IAAG,CAAC,GAAG,CAAC,eAAe,EAAE;AACvB,oBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;iBAC1B;gBACD,MAAM;AACR,YAAA;gBACE,MAAM;SACT;AACH,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,KAAoC,EAAE,MAA2B,KAAa;IAC1G,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,GAAG,CAAC;AACpD,IAAA,MAAM,YAAY,GAAG,CAAC,SAAkB,KAAU;QAChD,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,GAAG,EAAE;AAC1C,YAAA,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC;SAC9B;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,EAAE,EAAE;AAChD,YAAA,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC;SAC9B;AACH,KAAC,CAAA;AACD,IAAA,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAG;AAC3B,QAAA,YAAY,CAAC,kBAAkB,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9E,KAAC,CAAC,CAAC;AAEH,IAAA,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAG;QACxB,YAAY,CAAC,oBAAoB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAChD,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA;AAGD,MAAM,kBAAkB,GAAG,CAAC,SAAoC,EAAE,KAAiC,KAAa;AAC9G,IAAA,QAAQ,SAAS,CAAC,QAAQ;QACxB,KAAK,qBAAqB,CAAC,MAAM;AAC/B,YAAA,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC;AAExB,QAAA;YACE,MAAM;KACT;AACD,IAAA,OAAO,KAAK,CAAC;AACf,CAAC,CAAA;AAED;AACA,MAAM,sBAAsB,GAAG,CAAC,UAAuC,EAAE,KAAgC,KAAa;AACpH,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;;AClHM,MAAM,YAAY,GAAG,CAC1B,SAAiB,EACjB,QAA8B,EAC9B,aAAkC,EAClC,aAAqB,KACH;IAClB,OAAO;QACL,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAqB,KAAmB;YACrE,OAAO;AACL,gBAAA,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;gBAClC,UAAU,EAAE,IAAI,SAAS,CAAA,CAAA,EAAI,aAAa,CAAI,CAAA,EAAA,OAAO,CAAC,OAAO,CAAE,CAAA;AAC/D,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE;AACN,oBAAA,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE,aAAa,CAAC;AACtD,iBAAA;aACF,CAAA;SACF,CAAC,IAAI,EAAE;KACT,CAAA;AACH,CAAC,CAAA;AAEM,MAAM,mBAAmB,GAAG,CACjC,SAAiB,EACjB,QAA8B,EAC9B,eAAuB,KACL;IAClB,OAAO;QACL,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAqB,KAAmB;YACrE,OAAO;AACL,gBAAA,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;gBAClC,UAAU,EAAE,IAAI,SAAS,CAAA,SAAA,EAAY,eAAe,CAAI,CAAA,EAAA,OAAO,CAAC,OAAO,CAAE,CAAA;AACzE,gBAAA,IAAI,EAAE,SAAS;aAChB,CAAA;SACF,CAAC,IAAI,EAAE;KACT,CAAA;AACH,CAAC;;ACrCM,MAAM,oBAAoB,GAAG,CAAC,OAAqB,EAAE,aAAkC,KAAY;IACxG,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,CAAC,CAAA;AAC7E,CAAC;;ACFM,MAAM,gBAAgB,GAAG,CAAC,OAA0B,EAAE,MAAoB,EAAE,aAAA,GAA0B,EAAE,KAAuB;IACpI,OAAO,OAAO,CAAC,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,OAAO,CAAC;AACxH,CAAC,CAAA;AAEM,MAAM,oBAAoB,GAAG,CAAC,aAA2B,EAAE,MAAoB,EAAE,aAAuB,KAAkB;AAC/H,IAAA,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAa,KAAI;AACzC,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AAChE,QAAA,MAAM,gBAAgB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAElE,IAAI,SAAS,EAAE;YACb,IAAG,gBAAgB,EAAE;AACG,gBAAA,SAAU,CAAC,KAAK,GAAG,IAAI,CAAC;aAC/C;AACD,YAAA,OAAO,SAAS,CAAC;SAClB;aAAM;YACL,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,KAAK,EAAE;AAClC,gBAAA,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAE,CAAqB,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;aAC3G;iBAAM;AACL,gBAAA,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAyB,CAAE,EAAE,KAAK,EAAE,CAAC;aACnF;SACF;AACH,KAAC,CAAC,CAAC;AACL,CAAC;;ACpBM,MAAM,iBAAiB,GAAG,CAAC,CAAqB,EAAE,YAAA,GAAoB,EAAE,KAAI;IACjF,OAAO,EAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,EAAC,CAAA;AACxF,CAAC,CAAA;AAEM,MAAM,aAAa,GAAG,CAAC,QAA4B,EAAE,MAAoB,KAAI;AAClF,IAAA,QAAQ,QAAQ,CAAC,IAAI;QACnB,KAAK,aAAa,CAAC,SAAS;YAC1B,MAAM,YAAY,GAAG,QAA0B,CAAA;AAE/C,YAAA,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE;AAC9B,gBAAA,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAA;AAC1E,gBAAA,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,GAAG,MAAM,EAAE,MAAM,CAAC,CAAA;AAEtE,gBAAA,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;aAC9B;iBAAM;gBACL,OAAO,kBAAkB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;aACpD;AACH,QAAA;YACE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;KACtD;AACH,CAAC,CAAA;AAEM,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,MAAoB,KAAgC;AACtG,IAAA,MAAM,SAAS,GAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,IAAI,CAAA;AAEtE,IAAA,IAAI,CAAC,CAAC,SAAS,EAAE;AACf,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,QAAA,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;AAC5C,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAE1B,YAAA,IAAI,QAAQ,IAAI,KAAK,EAAE;AACrB,gBAAA,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AAE9D,gBAAA,IAAI,CAAC,CAAC,KAAK,EAAE;AACX,oBAAA,OAAO,KAAK,CAAC;iBACd;aACF;SACF;KACF;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;;AC1CD,MAAM,aAAa,GAAG,qBAAqB,CAAkB,UAAU,CAAC,CAAC;AAElE,MAAM,eAAe,GAAG,cAAc,CAC3C,aAAa,EACb,CAAC,KAAsB,KAAK,KAAK,CAAC,SAAS,CAC5C,CAAC;AAEK,MAAM,YAAY,GAAG,cAAc,CACxC,aAAa,EACb,CAAC,KAAsB,KAAK,KAAK,CAAC,MAAM,CACzC,CAAC;AAEK,MAAM,eAAe,GAAG,cAAc,CAC3C,aAAa,EACb,CAAC,KAAsB,KAAK,KAAK,CAAC,SAAS,CAC5C,CAAC;AAEK,MAAM,yBAAyB,GAAG,cAAc,CACrD,aAAa,EACb,CAAC,KAAsB,KAAK,KAAK,CAAC,mBAAmB,CACtD,CAAC;AAEK,MAAM,cAAc,GAAG,cAAc,CAC1C,aAAa,EACb,CAAC,KAAsB,KAAK,KAAK,CAAC,QAAQ,CAC3C,CAAC;AAEK,MAAM,qBAAqB,GAAG,cAAc,CACjD,aAAa,EACb,CAAC,KAAsB,KAAK,KAAK,CAAC,eAAe,CAClD,CAAC;AAEK,MAAM,eAAe,GAAG,cAAc,CAC3C,aAAa,EACb,CAAC,KAAsB,KAAK,KAAK,CAAC,SAAS,CAC5C,CAAC;AAEK,MAAM,qBAAqB,GAAG,cAAc,CACjD,aAAa,EACbC,sBAAsC,CAAC,gBAAgB,CAAC,EACxD,CAAC,KAAsB,EAAE,cAAsB,KAAI;IACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,cAAc,CAAC,IAAI,IAAI,CAAA;AAClF,CAAC,CACF,CAAC;AAEK,MAAM,mBAAmB,GAAG,cAAc,CAC/C,aAAa,EACb,CAAC,KAAsB,KAAK,KAAK,CAAC,aAAa,CAChD,CAAC;AAEK,MAAM,cAAc,GAAG,cAAc,CAC1CA,sBAAsC,CAAC,cAAc,CAAC,EACtD,CAAC,aAAqB,KAAK,aAAa,CACzC,CAAC;AAEK,MAAM,kBAAkB,GAAG,cAAc,CAC9C,aAAa,EACb,CAAC,KAAsB,KAAK,KAAK,CAAC,YAAY,CAC/C,CAAC;AAEK,MAAM,qBAAqB,GAAG,cAAc,CACjD,aAAa,EACb,CAAC,KAAsB,KAAK,KAAK,EAAE,QAAQ,EAAE,OAAO,CACrD,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,QAA4B,KAAK,cAAc,CAC9E,aAAa,EACb,CAAC,KAAK,KAAK,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,CACxD,CAAC;AAEK,MAAM,4BAA4B,GAAG,cAAc,CACxD,aAAa,EACb,KAAK,IAAI,KAAK,CAAC,0BAA0B,CAC1C;;;;;;;;;;;;;;;;;;;;AC5DY,MAAA,sBAAsB,GAAoB;AACrD,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,eAAe,EAAE,KAAK;AACtB,IAAA,mBAAmB,EAAE,KAAK;AAC1B,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,sBAAsB,EAAE,IAAI;AAC5B,IAAA,aAAa,EAAE,EAAE;AACjB,IAAA,SAAS,EAAE;AACT,QAAA,KAAK,EAAE,EAAE;AACV,KAAA;AACD,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,0BAA0B,EAAE,EAAE;AAC9B,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,MAAM,EAAE,EAAE;;;AC5BZ,MAAM,oBAAoB,GAAG,aAAa,CACxC,sBAAsB,EACtB,EAAE,CAACC,YAA8B,EAAE,CAAC,KAAK,EAAE,EAAC,SAAS,EAAE,MAAM,EAAC,KAAI;IAChE,OAAO,EAAC,GAAG,KAAK,EAAE,SAAS,EAAE,MAAM,EAAC,CAAC;AACvC,CAAC,CAAC,EACF,EAAE,CAACC,iBAAmC,EAAE,CAAC,KAAK,KAAI;IAChD,OAAO,EAAC,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC;AACrC,CAAC,CAAC,EACF,EAAE,CACAC,iBAAmC,EACnC,CAAC,KAAK,EAAE,EAAC,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAC,KAAI;IACnE,OAAO;AACL,QAAA,GAAG,KAAK;AACR,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,QAAQ,EAAE,gBAAgB;AAC1B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,SAAS,EAAEC,YAAwB,CAAC,KAAK,CAAC,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,CAAC;KACrG,CAAC;AACJ,CAAC,CACF,EACD,EAAE,CAACC,eAAiC,EAAE,CAAC,KAAK,KAAI;IAC9C,OAAO,EAAC,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC;AACtC,CAAC,CAAC,EACF,EAAE,CAACC,YAA8B,EAAE,CAAC,KAAK,EAAE,EAAC,KAAK,EAAC,KAAI;IACpD,MAAM,sBAAsB,GAAGC,yBAAqC,CAClE,KAAK,CAAC,0BAA0B,EAChC,KAAK,CAAC,aAAa,EACnB,KAAK,EACL,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,KAAK,CACtC,CAAC;IAEF,MAAM,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAA+B,KAAI;;;AAGxF,QAAA,OAAOC,gBAA4B,CACjC,YAAY,EACZ,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,EACtCC,gBAA4B,CAAC,sBAAsB,CAAC,CACrD,CAAC;AACJ,KAAC,CAAC,CAAC;IAEH,OAAO;AACL,QAAA,GAAG,KAAK;AACR,QAAA,aAAa,EAAE,qBAAqB;AACpC,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,0BAA0B,EAAE,sBAAsB;KACnD,CAAC;AACJ,CAAC,CAAC,EACF,EAAE,CAACC,iBAAmC,EAAE,CAAC,KAAK,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,KAAI;IACpE,MAAM,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAA+B,KAAI;AACvF,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,GAAG,YAAY;YACf,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,CAAC;SAClF,CAAC;QACF,OAAOF,gBAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9D,KAAC,CAAC,CAAC;IAEH,OAAO;AACL,QAAA,GAAG,KAAK;AACR,QAAA,aAAa,EAAE,oBAAoB;AACnC,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,SAAS,EAAEJ,YAAwB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,CAAC;KACrG,CAAC;AACJ,CAAC,CAAC,EACF,EAAE,CAACO,eAAiC,EAAE,CAAC,KAAK,KAAI;AAC9C,IAAA,OAAO,EAAC,GAAG,KAAK,EAAC,CAAC;AACpB,CAAC,CAAC,EAEF,EAAE,CAACC,iBAAmC,EAAE,CAAC,KAAK,KAAI;IAChD,OAAO,EAAC,GAAG,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAC,CAAC;AACpD,CAAC,CAAC,EACF,EAAE,CAACC,iBAAmC,EAAE,CAAC,KAAK,KAAI;AAChD,IAAA,OAAO,EAAC,GAAG,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC;AACtE,CAAC,CAAC,EACF,EAAE,CAACC,eAAiC,EAAE,CAAC,KAAK,KAAI;IAC9C,OAAO,EAAC,GAAG,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAC,CAAC;AACrD,CAAC,CAAC,EACF,EAAE,CAACC,4BAA8C,EAAE,CAAC,KAAK,EAAE,EAAC,cAAc,EAAC,KAAI;IAC7E,OAAO,EAAC,GAAG,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAC,CAAC;AAC5D,CAAC,CAAC,EACF,EAAE,CAACC,uBAAyC,EAAE,CAAC,KAAK,KAAI;IACtD,OAAO,EAAC,GAAG,KAAK,EAAE,YAAY,EAAE,EAAE,EAAC,CAAC;AACtC,CAAC,CAAC,EACF,EAAE,CAACC,uBAAyC,EAAE,CAAC,KAAK,EAAE,EAAC,YAAY,EAAC,KAAI;IACtE,OAAO,EAAC,GAAG,KAAK,EAAE,YAAY,EAAE,YAAY,EAAC,CAAC;AAChD,CAAC,CAAC,EACF,EAAE,CAACC,mBAAqC,EAAE,CAAC,KAAK,KAAI;IAClD,OAAO,EAAC,GAAG,KAAK,EAAE,eAAe,EAAE,CAAC,KAAK,CAAC,eAAe,EAAC,CAAC;AAC7D,CAAC,CAAC,EACF,EAAE,CAACC,mBAAqC,EAAE,CAAC,KAAK,EAAE,EAAC,eAAe,EAAC,KAAI;IACrE,OAAO,EAAC,GAAG,KAAK,EAAE,eAAe,EAAE,eAAe,EAAC,CAAC;AACtD,CAAC,CAAC,EACF,EAAE,CAACC,0BAA4C,EAAE,CAAC,KAAK,KAAI;IACzD,OAAO,EAAC,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC;AACrC,CAAC,CAAC,EACF,EAAE,CACAC,0BAA4C,EAC5C,CAAC,KAAK,EAAE,EAAC,gBAAgB,EAAE,eAAe,EAAC,KAAI;IAC7C,OAAO;AACL,QAAA,GAAG,KAAK;AACR,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,QAAQ,EAAE,gBAAgB;AAC1B,QAAA,SAAS,EAAEC,mBAA+B,CAAC,KAAK,CAAC,SAAS,EAAE,gBAAgB,EAAE,eAAe,CAAC;KAC/F,CAAC;AACJ,CAAC,CACF,EACD,EAAE,CAACC,wBAA0C,EAAE,CAAC,KAAK,KAAI;IACvD,OAAO,EAAC,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC;AACtC,CAAC,CAAC,EACF,EAAE,CAACC,uBAAyC,EAAE,CAAC,KAAK,KAAI;IAEtD,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,KAAK;AAC5D,SAAA,GAAG,CAAC,CAAC,IAA0B,MAAMC,mBAA+B,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;SACjG,IAAI,EAAE,IAAI,EAAE,CAAC;IAEhB,OAAO,EAAC,GAAG,KAAK,EAAE,0BAA0B,EAAE,iBAAiB,EAAC,CAAC;AACnE,CAAC,CAAC,CACH,CAAC;AAEc,SAAA,aAAa,CAAC,KAAkC,EAAE,MAAc,EAAA;AAC9E,IAAA,OAAO,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7C;;AC5HA,MAAM,QAAQ,GAAG,WAAW,CAAC;AAC7B,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,MAAM,OAAO,GAAG,UAAU,CAAC;MAGd,uBAAuB,CAAA;AADpC,IAAA,WAAA,GAAA;QAEU,IAAM,CAAA,MAAA,GAAuC,EAAE,CAAC;AAyDzD,KAAA;AAvDC,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAoB,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,IAAI,CAAC;SACb;AACD,QAAA,OAAO,IAAI,CAAC;KACb;IAED,GAAG,CAAC,GAAW,EAAE,IAAqB,EAAA;AACpC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;KACzB;AAED,IAAA,UAAU,CAAC,GAAW,EAAA;AAKpB,QAAA,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,GAAG,EAAE;YACP,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,YAAA,IAAI,IAAI,EAAE,KAAK,EAAE;gBACf,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aAChD;AACD,YAAA,IAAI,IAAI,EAAE,IAAI,EAAE;gBACd,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9C;SACF;QACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;KAClD;IAED,aAAa,CAAC,GAAW,EAAE,OAAoB,EAAA;QAC7C,IAAI,GAAG,EAAE;YACP,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,YAAA,IAAI,IAAI,EAAE,KAAK,EAAE;gBACf,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aAC7C;AACD,YAAA,IAAI,IAAI,EAAE,IAAI,EAAE;gBACd,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3C;SACF;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;IAED,WAAW,CAAC,GAAW,EAAE,QAA0B,EAAA;QACjD,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,IAAI,GAAqB;gBAC7B,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACrC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;aACjC,CAAC;YACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE;AAC3B,gBAAA,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aACrB;SACF;KACF;+GAxDU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAvB,uBAAuB,EAAA,CAAA,CAAA,EAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;;MCCE,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,KAAK,GAAe,MAAM,CAAC,UAAU,CAAC,CAAA;AACtC,QAAA,IAAA,CAAA,mBAAmB,GAA4B,MAAM,CAAC,uBAAuB,CAAC,CAAA;QAE9E,IAAO,CAAA,OAAA,GAAW,EAAE,CAAA;QAEpB,IAAe,CAAA,eAAA,GAAW,oBAAoB,CAAC;AAyDxD,KAAA;AAvDC,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;AAEM,IAAA,YAAY,CAAC,MAAc,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;KACtB;AAEM,IAAA,WAAW,CAAC,QAAgB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,CAAA,EAAI,QAAQ,CAAA,OAAA,CAAS,CAAC,CAAC;KACzF;AAEM,IAAA,gBAAgB,CAAE,aAAqB,EAAA;QAC5C,OAAO,IAAI,CAAC,KAAK;AACd,aAAA,GAAG,CAAkB,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,CAAA,EAAI,aAAa,CAAA,CAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1E,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACzC;AAEM,IAAA,mBAAmB,CAAC,eAAuB,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,mBAAA,EAAsB,eAAe,CAAA,CAAE,CAAC,CAAC;KAC7F;IAEM,uBAAuB,CAAC,aAAqB,EAAE,aAAkC,EAAA;QACtF,OAAO,IAAI,CAAC,KAAK;AACd,aAAA,GAAG,CAAoB,CAAG,EAAA,IAAI,CAAC,MAAM,IAAI,aAAa,CAAA,CAAE,EAAE,EAAC,aAAa,EAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC7F,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACzC;AAEM,IAAA,eAAe,CAAC,aAAqB,EAAA;QAC1C,OAAO,IAAI,CAAC,KAAK;AACd,aAAA,IAAI,CAAO,CAAA,EAAG,IAAI,CAAC,MAAM,CAAI,CAAA,EAAA,aAAa,CAAO,KAAA,CAAA,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC3E,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACzC;AAEM,IAAA,eAAe,CAAC,WAAgE,EAAA;AACrF,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,KAAA,CAAO,EAAE,WAAW,CAAC,CAAC;KAC5E;IAEM,eAAe,CAAC,aAAqB,EAAE,cAAsB,EAAA;QAClE,OAAO,IAAI,CAAC,KAAK;AACd,aAAA,GAAG,CAAc,CAAA,EAAG,IAAI,CAAC,MAAM,CAAI,CAAA,EAAA,aAAa,CAAI,CAAA,EAAA,cAAc,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC9F,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACzC;IAEO,UAAU,GAAA;QAIhB,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAClE;AAEO,IAAA,SAAS,CAAI,IAAqB,EAAA;QACxC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,IAAK,CAAC;KACnB;+GA9DU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;MCSE,iBAAiB,CAAA;IAG5B,WACU,CAAA,SAAkB,EAClB,MAAa,EACb,OAAe,EACf,mBAAsC,EACtC,eAA+B,EAAA;QAJ/B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAS;QAClB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAO;QACb,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QACf,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAmB;QACtC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAgB;AAPjC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAW/C,IAAa,CAAA,aAAA,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACpD,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,EACxC,GAAG,CAAC,CAAC,KAA4C,MAAM,EAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAC,CAAC,CAAC,EAC3G,oBAAoB,EAAE,EACtB,GAAG,CAAC,CAAC,EAAC,SAAS,EAAE,MAAM,EAAC,KAAI;YAC1B,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;aAC9C;YAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAACC,mBAAqC,EAAE,CAAC,CAAC;SAC/D,CAAC,CACH,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;AAEtB,QAAA,IAAA,CAAA,oBAAoB,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAC3D,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,EAC/C,cAAc,CACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC1B,sBAAsC,CAAC,cAAc,CAAC,CAAC,EAC1E,IAAI,CAAC,MAAM,CAAC,MAAM,CAACA,sBAAsC,CAAC,sBAAsB,CAAC,CAAC,CACnF,EACD,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,KAAI;YAC3C,IAAI,QAAQ,EAAE;gBACZ,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CACxD,SAAS,CAAC,CAAC,EAAC,eAAe,EAAC,MAAM;AAChC,oBAAA2B,mBAAqC,CAAC,EAAC,eAAe,EAAC,CAAC;AACxD,oBAAAzB,iBAAmC,CAAC,EAAC,eAAe,EAAC,CAAC;AACvD,iBAAA,CAAC,CAAC,EACH,UAAU,CAAC,MAAK;AACd,oBAAA,OAAO,EAAE,CAAC0B,iBAAmC,EAAE,CAAC,CAAC;iBAClD,CAAC,CACH,CAAC;aACH;iBAAM;gBACL,OAAO,EAAE,CAACR,0BAA4C,CAAC,EAAC,eAAe,EAAC,CAAC,CAAC,CAAC;aAC5E;SACF,CAAC,CAAC,CACJ,CAAC;AAEF,QAAA,IAAA,CAAA,0BAA0B,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACjE,MAAM,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,EACtD,GAAG,CAAC,CAAC,KAAkC,KAAK,KAAK,CAAC,eAAe,CAAC,EAClE,cAAc,CACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAACS,eAAmC,CAAC,EACvD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC7B,sBAAsC,CAAC,qBAAqB,CAAC,CAAC,CAClF,EACD,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,SAAS,EAAE,cAAc,CAAC,KAAI;AACzD,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,IAAI,CACvE,GAAG,CAAC,CAAC,gBAAgB,KAAI;AACvB,gBAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAClD,CAAC,CAAqB,KAAK,CAAC,CAAC,OAAO,KAAK,cAAc,CACxD,CAAC;gBAEF,IAAI,CAAC,aAAa,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE;AACtD,oBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AACpB,wBAAA,CAAA,CAAA,EAAI,SAAS,CAAA,SAAA,EAAY,eAAe,CAAA,CAAA,EAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAE,CAAA;AACnF,qBAAA,CAAC,CAAC;iBACJ;gBAED,OAAOqB,0BAA4C,CAAC,EAAC,gBAAgB,EAAE,eAAe,EAAC,CAAC,CAAC;AAC3F,aAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,gBAAA,OAAO,EAAE,CAACE,wBAA0C,EAAE,CAAC,CAAC;aACzD,CAAC,CACH,CAAC;SACH,CAAC,CAAC,CACJ,CAAC;AAEF,QAAA,IAAA,CAAA,uBAAuB,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAC9D,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAC7C,GAAG,CAAC,CAAC,KAAkC,KAAK,KAAK,CAAC,eAAe,CAAC,EAClE,cAAc,CACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAACM,eAAmC,CAAC,EACvD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC7B,sBAAsC,CAAC,cAAc,CAAC,CAAC,EAC1E,IAAI,CAAC,MAAM,CAAC,MAAM,CAACA,sBAAsC,CAAC,qBAAqB,CAAC,CAAC,CAClF,EACD,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,KAAI;AACnE,YAAA,MAAM,QAAQ,GAA6D;AACzE,gBAAA,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,eAAe,CAAC;AAC7D,gBAAA,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,QAAQ,CAAC;aACpD,CAAC;AAEF,YAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC5B,SAAS,CAAC,CAAC,CAAC,gBAAgB,EAAE,QAAQ,CAAC,KAAI;AACzC,gBAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAClD,CAAC,CAAqB,KAAK,CAAC,CAAC,OAAO,KAAK,cAAc,CACxD,CAAC;gBAEF,IAAI,CAAC,aAAa,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE;oBACtD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA,CAAE,CAAC,CAAC,CAAC;iBAC9F;gBAED,OAAO;oBACLG,iBAAmC,CAAC;AAClC,wBAAA,gBAAgB,EAAE,gBAAgB;AAClC,wBAAA,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;AAC3C,wBAAA,aAAa,EAAE,QAAQ;wBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;qBAC1B,CAAC;oBACFqB,uBAAyC,EAAE;iBAC5C,CAAC;AACJ,aAAC,CAAC,EACF,UAAU,CAAC,MAAK;AACd,gBAAA,OAAO,EAAE,CAACnB,eAAiC,EAAE,CAAC,CAAC;aAChD,CAAC,CACH,CAAC;SACH,CAAC,CAAC,CACJ,CAAC;AAEF,QAAA,IAAA,CAAA,qBAAqB,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAC5D,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,EACxC,GAAG,CAAC,CAAC,KAA2C,KAAK,KAAK,CAAC,KAAK,CAAC,EACjE,oBAAoB,EAAE,EACtB,cAAc,CACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAACL,sBAAsC,CAAC,sBAAsB,CAAC,CAAC,CACnF,EACD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,KAAI;YAC3B,IAAI,eAAe,EAAE;gBACnB,OAAO;aACR;YAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC8B,kBAAoC,EAAE,CAAC,CAAC;SAC9D,CAAC,CACH,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;AAEtB,QAAA,IAAA,CAAA,oBAAoB,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAC3D,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAC9C,oBAAoB,EAAE,EACtB,YAAY,CAAC,IAAI,CAAC,EAClB,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAACC,iBAAmC,EAAE,CAAC,CAAC;SAC7D,CAAC,CACH,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;QAEtB,IAAwB,CAAA,wBAAA,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAC/D,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAC7C,cAAc,CACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC/B,sBAAsC,CAAC,cAAc,CAAC,CAAC,EAC1E,IAAI,CAAC,MAAM,CAAC,MAAM,CAACgC,mBAAuC,CAAC,CAC5D,EACD,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,KAAI;AACzC,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,IAAI,CACnF,GAAG,CAAC,CAAC,MAAM,KAAI;AACb,gBAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC9B,OAAOtB,iBAAmC,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAC;AACjE,aAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAC5B,gBAAA,OAAO,EAAE,CAACC,eAAiC,EAAE,CAAC,CAAC;aAChD,CAAC,CACH,CAAC;SACH,CAAC,CAAC,CACJ,CAAC;QAEF,IAAuB,CAAA,uBAAA,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAC9D,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAC7C,cAAc,CACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAACX,sBAAsC,CAAC,cAAc,CAAC,CAAC,CAC3E,EACD,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAI;AAC1B,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC5D,GAAG,CAAC,MAAK;AACP,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,oBAAA,KAAK,EAAE,mBAAmB;oBAC1B,IAAI,EAAE,WAAW,CAAC,QAAQ;AAC3B,iBAAA,CAAC,CAAC;AAEH,gBAAA,OAAOa,iBAAmC,EAAE,CAAC;AAC/C,aAAC,CAAC,EACF,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,oBAAA,KAAK,EAAE,2CAA2C;oBAClD,IAAI,EAAE,WAAW,CAAC,QAAQ;AAC3B,iBAAA,CAAC,CAAC;AAEH,gBAAA,OAAO,EAAE,CAACC,eAAiC,EAAE,CAAC,CAAC;aAChD,CAAC,CACH,CAAC;SACH,CAAC,CAAC,CACJ,CAAC;QAEF,IAAuB,CAAA,uBAAA,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAC9D,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAC7C,GAAG,CAAC,CAAC,MAA2D,KAAK,MAAM,CAAC,EAC5E,cAAc,CACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAACe,eAAmC,CAAC,CACxD,EACD,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,KAAI;AAChC,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAC1D,GAAG,CAAC,CAAC,MAAM,KAAI;AACb,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,oBAAA,KAAK,EAAE,4BAA4B;oBACnC,IAAI,EAAE,WAAW,CAAC,QAAQ;AAC3B,iBAAA,CAAC,CAAC;AAEH,gBAAA,MAAM,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,GAAG,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AAEnD,gBAAA,OAAOI,iBAAmC,EAAE,CAAC;AAC/C,aAAC,CAAC,EACF,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,oBAAA,KAAK,EAAE,mDAAmD;oBAC1D,IAAI,EAAE,WAAW,CAAC,QAAQ;AAC3B,iBAAA,CAAC,CAAC;AAEH,gBAAA,OAAO,EAAE,CAACC,eAAiC,EAAE,CAAC,CAAC;aAChD,CAAC,CACH,CAAC;SACH,CAAC,CAAC,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;AAE1B,QAAA,IAAA,CAAA,wBAAwB,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAC/D,MAAM,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,EACnD,cAAc,CACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAClC,sBAAsC,CAAC,cAAc,CAAC,CAAC,EAC1E,IAAI,CAAC,MAAM,CAAC,MAAM,CAACA,sBAAsC,CAAC,qBAAqB,CAAC,CAAC,CAClF,EACD,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,KAAI;AAC1C,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,IAAI,CAC5E,GAAG,CAAC,CAAC,YAAyB,KAAI;gBAChC,OAAOiB,uBAAyC,CAAC,EAAC,YAAY,EAAE,YAAY,EAAC,CAAC,CAAC;AACjF,aAAC,CAAC,EACF,UAAU,CAAC,MAAK;AACd,gBAAA,OAAO,EAAE,CAACkB,qBAAuC,EAAE,CAAC,CAAC;aACtD,CAAC,CACH,CAAC;SACH,CAAC,CAAC,CACJ,CAAC;QAEF,IAAc,CAAA,cAAA,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACrD,MAAM,CAAC,mBAAmB,CAAC,aAAa,CAAC,EACzC,cAAc,CACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAACC,YAAgC,CAAC,EACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAACpC,sBAAsC,CAAC,cAAc,CAAC,CAAC,CAC3E,EACD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAI;AAC5B,YAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,QAAQ,CAAC,CAAC;YAE5C,MAAM,CAAC,IAAI,CAAC,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,QAAQ,CAAQ,MAAA,CAAA,EAAE,QAAQ,CAAC,CAAC;SACtD,CAAC,CACH,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;KA/OrB;+GAVU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAqC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;MCCE,mBAAmB,CAAA;AANhC,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,MAAM,GAAU,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,MAAM,GAAmB,MAAM,CAAC,cAAc,CAAC,CAAA;QAE/C,IAAe,CAAA,eAAA,GAAmB,EAAE,CAAC;QAE7C,IAAU,CAAA,UAAA,GAAwB,IAAI,CAAC,MAAM,CAAC,MAAM,CAACC,eAAmC,CAAC,CAAC;QAC1F,IAAU,CAAA,UAAA,GAA+B,IAAI,CAAC,MAAM,CAAC,MAAM,CAACC,eAAmC,CAAC,CAAC;AAoClG,KAAA;IAlCC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAG;AAChC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AACpC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAE9B,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAACvC,YAA8B,CAAC,EAAC,SAAS,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC;SAC3E,CAAC,EAEF,IAAI,CAAC,MAAM,CAAC,MAAM,CAACD,sBAAsC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CACpF,cAAc,CACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAACA,sBAAsC,CAAC,sBAAsB,CAAC,CAAC,CACnF,CACF,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,EAAE,eAAe,CAAC,KAAI;AAChD,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAACe,4BAA8C,CAAC,EAAC,cAAc,EAAC,CAAC,CAAC,CAAC;AAEvF,YAAA,IAAI,cAAc,IAAI,CAAC,eAAe,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAACC,uBAAyC,EAAE,CAAC,CAAC;aACnE;SACF,CAAC,CACH,CAAC;KACH;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;KAC5E;AAED,IAAA,YAAY,CAAC,IAAmB,EAAA;QAC9B,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACzE;AAED,IAAA,YAAY,CAAC,IAAmB,EAAA;AAC9B,QAAA,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;KAClD;+GA1CU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,uDCjBhC,qwDA2CA,EAAA,MAAA,EAAA,CAAA,oyBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD1Ba,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACE,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qwDAAA,EAAA,MAAA,EAAA,CAAA,oyBAAA,CAAA,EAAA,CAAA;;;MEKpC,yBAAyB,CAAA;AAWpC,IAAA,WAAA,CAAoB,aAA+B,EAAA;QAA/B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAR1C,IAAM,CAAA,MAAA,GAAiB,EAAE,CAAC;AAIlB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAA+C,CAAC;KAK1F;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,MAAM,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE;AACpG,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;QACD,IAAI,MAAM,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;AAClC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3B;AAED,QAAA,IAAI,WAAW,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACzD,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACrC;QAED,IAAI,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC/B;KACF;AAED,IAAA,UAAU,CAAC,IAAmB,EAAA;QAC5B,MAAM,aAAa,GAA4B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE9D,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;SACnC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AAE1E,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACjD;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC1C,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAkD,KAAI;AACtG,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,aAAC,CAAC,CAAC;SACJ;KACF;AAED,IAAA,SAAS,CAAC,IAAwB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;SAC5C;KACF;AAED,IAAA,WAAW,CAAC,MAAoB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;SAChD;KACF;AAED,IAAA,cAAc,CAAC,SAA4B,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;SACtD;KACF;+GAxEU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;qFAEU,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAEW,OAAO,EAAA,CAAA;sBAAvB,MAAM;;;MCjBa,oBAAoB,CAAA;AAD1C,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,MAAM,GAAU,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7B,QAAA,IAAA,CAAA,SAAS,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAEzD,IAAc,CAAA,cAAA,GAAuB,IAAI,CAAC,MAAM,CAAC,MAAM,CAACC,cAAkC,CAAC,CAAC;QAK1F,IAAM,CAAA,MAAA,GAAwB,EAAE,CAAA;AAe1C,KAAA;IAbC,IAAa,IAAI,CAAC,QAA4B,EAAA;AAC5C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAkB,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;KAChC;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAA;KAClB;IAEO,UAAU,GAAA;QAChB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAwB,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;KAC7H;+GAvBmB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAApB,oBAAoB,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADzC,UAAU;8BAUA,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAEO,IAAI,EAAA,CAAA;sBAAhB,KAAK;;;MCRc,kBAAkB,CAAA;AADxC,IAAA,WAAA,GAAA;AAKY,QAAA,IAAA,CAAA,MAAM,GAAU,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,SAAS,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACzD,IAAe,CAAA,eAAA,GAAmB,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,eAAe,GAAyD,IAAI,OAAO,EAA+C,CAAC;AAEnI,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACvC,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAInC,IAAY,CAAA,YAAA,GAAiB,EAAE,CAAC;QAQ9B,IAAS,CAAA,SAAA,GAAsB,MAAM,CAAC;AAU9B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAA+C,CAAC;AAiH5F,KAAA;IAjIC,IAAa,MAAM,CAAC,KAAmB,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B;KACF;IAID,IAAa,IAAI,CAAC,QAA4B,EAAA;AAC5C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAkB,CAAC;QAEnC,IAAI,CAAC,WAAW,EAAE,CAAC;AAEnB,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;KAChC;IAID,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;AAElB,QAAA,IAAI,CAAC,eAAe;AACjB,aAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aACvB,SAAS,CAAC,KAAK,IAAG;YACjB,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;aACjD;AACH,SAAC,CAAC,CAAC;AAEL,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAACC,qBAAyC,CAAC;aACpF,SAAS,CAAC,MAAM,IAAG;AAClB,YAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;AAC/B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;SAChC,CAAC,CAAC,CAAC;AAEN,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;YAC7B,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;KAC5E;AAED,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;KACrC;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACxF;aAAM;AACL,YAAA,OAAO,KAAK,CAAC;SACd;KACF;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,OAAO,iCAAiC,CAAC;SAC1C;aAAM;AACL,YAAA,OAAO,EAAE,CAAC;SACX;KACF;AAEO,IAAA,iBAAiB,CAAC,IAAe,EAAA;QACvC,QAAQ,IAAI;AACV,YAAA,MAAM,SAAS,CAAC,MAAM,EAAE;AACxB,YAAA,MAAM,SAAS,CAAC,QAAQ;gBACtB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;AACpC,YAAA,MAAM,SAAS,CAAC,OAAO;AACrB,gBAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5B,YAAA,MAAM,SAAS,CAAC,OAAO;AACrB,gBAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5B,YAAA,MAAM,SAAS,CAAC,WAAW,EAAE;AAC7B,YAAA,MAAM,SAAS,CAAC,SAAS;gBACvB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;AACpC,YAAA;AACE,gBAAA,OAAO,IAAI,CAAC;SACf;KACF;IAES,yBAAyB,GAAA;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAACC,gBAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9F,aAAA,SAAS,CAAC,CAAC,MAAmE,KAAI;YACjF,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAC1B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oBAEhC,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;aACF;SACF,CAAC,CAAC,CAAC;KACP;IAES,YAAY,GAAA;QACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;KACzD;IAES,qBAAqB,GAAA;AAC7B,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;AAES,IAAA,kBAAkB,CAAC,KAAmB,EAAA;KAC/C;IAES,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC7D;AAES,IAAA,eAAe,CAAC,KAA0B,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC;KACb;IAES,UAAU,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;YAC/B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAwB,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACpI;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/C;KACF;AAED,IAAA,cAAc,CAAC,KAAmB,EAAA;QAChC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAEpC,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE/B,UAAU,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;KAEvC;+GAhJmB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;8BAiBI,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAMG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAQW,OAAO,EAAA,CAAA;sBAAvB,MAAM;;;AChCH,MAAO,kBAAmB,SAAQ,kBAAwD,CAAA;AANhG,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC;QAExB,IAAa,CAAA,aAAA,GAAG,EAAE,CAAA;AAa1B,KAAA;IAXQ,aAAa,GAAA;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;KACtC;AAEQ,IAAA,eAAe,CAAC,KAA0B,EAAA;AACjD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAA;AAEhC,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAA;AAE7B,QAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAClH;+GAfU,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,6ECb/B,63CAoCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,YAAA,EAAA,eAAA,EAAA,2BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDvBa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACE,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,63CAAA,EAAA,CAAA;;;AEG3C,MAAO,sBACX,SAAQ,kBAAyF,CAAA;AAPnG,IAAA,WAAA,GAAA;;AAUE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,aAAa,CAAC;QAE5B,IAAa,CAAA,aAAA,GAAG,EAAE,CAAA;AAElB,QAAA,IAAA,CAAA,MAAM,GAAQ;AACnB,YAAA,OAAO,EAAE,EAAE;SACZ,CAAC;AAqCH,KAAA;IAnCU,WAAW,GAAA;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,GAAG;AACZ,YAAA,OAAO,EAAE;AACP,gBAAA,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE;AACvD,gBAAA,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;AACpD,gBAAA,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE;AACtD,gBAAA,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE;gBACpD,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,CAAC,GAAG,EAAE;AAC3F,gBAAA,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAC,CAAC,GAAG,EAAE;AACzG,gBAAA,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE;AAC1D,gBAAA,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,EAAE;AACjE,gBAAA,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AACtD,gBAAA,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;;AAElD,gBAAA,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE;AACpD,gBAAA,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE;AACpD,gBAAA,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE;AACpD,gBAAA,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE;AACvD,aAAA;SACF,CAAC;KACH;IAEM,aAAa,GAAA;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;KACtC;AAEQ,IAAA,eAAe,CAAC,KAA0B,EAAA;AACjD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAA;AAEhC,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAA;AAE7B,QAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAClH;+GA9CU,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,iFCdnC,m0DAkDA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDpCa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACE,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,m0DAAA,EAAA,CAAA;;;AEA3C,MAAO,kBAAmB,SAAQ,kBAAwD,CAAA;AANhG,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC;AAChC,KAAA;+GAFY,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,6ECZ/B,8uBAwBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,YAAA,EAAA,eAAA,EAAA,2BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDZa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACE,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8uBAAA,EAAA,CAAA;;;AEE3C,MAAO,oBAAqB,SAAQ,kBAAuD,CAAA;AANjG,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC;AAChC,KAAA;+GAFY,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,+ECZjC,8iCAoCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDxBa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8iCAAA,EAAA,CAAA;;;AEG3C,MAAO,oBAAqB,SAAQ,kBAA4D,CAAA;AANtG,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC;QAE1B,IAAa,CAAA,aAAA,GAAG,CAAC,CAAA;AAoBzB,KAAA;AAlBC,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC;KAChE;IAEM,aAAa,GAAA;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;KACtC;AAEQ,IAAA,eAAe,CAAC,KAA0B,EAAA;AACjD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAA;AAEhC,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAA;QAE7B,OAAO,EACL,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK;YAC7F,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAC9F,CAAC;KACH;+GAtBU,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,+ECbjC,2gDAuCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD1Ba,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2gDAAA,EAAA,CAAA;;;AEG3C,MAAO,oBACX,SAAQ,kBAA4D,CAAA;AAPtE,IAAA,WAAA,GAAA;;AASE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC;AAoDlC,KAAA;AAhDQ,IAAA,WAAW,CAAC,KAA6B,EAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;SACvD;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;SAChC;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEQ,WAAW,GAAA;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;AACnC,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;SAC5C;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;SACvC;KACF;AAEQ,IAAA,kBAAkB,CAAC,KAA6B,EAAA;AACvD,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC9D;AAEO,IAAA,gBAAgB,CAAC,aAAoC,EAAA;QAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;AAChC,YAAA,OAAO,EAAE,CAAC;SACX;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK;iBAC/B,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC;AACtC,iBAAA,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChC;QAED,MAAM,MAAM,GAAa,EAAE,CAAC;AAE5B,QAAA,aAAa,CAAC,OAAO,CAAC,GAAG,IAAG;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK;iBAC7C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;YAE9B,IAAI,YAAY,EAAE;AAChB,gBAAA,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aAChC;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;+GAtDU,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,+ECdjC,g4BA4BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,cAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDda,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,g4BAAA,EAAA,CAAA;;;AEI3C,MAAO,kBAAmB,SAAQ,kBAA4D,CAAA;AANpG,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC;QAEvB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEjB,IAAS,CAAA,SAAA,GAA6B,EAAE,CAAC;AAoFjD,KAAA;AA/EC,IAAA,IAAW,KAAK,GAAA;QACd,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;AAC/B,YAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACrD;aAAM;AACL,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;SACzB;KACF;AAED,IAAA,IAAW,qBAAqB,GAAA;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,QAAQ,CAAC;KACjE;AAEM,IAAA,WAAW,CAAC,KAA+B,EAAA;AAChD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;gBAC/B,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE;AAC7B,oBAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;AAC7B,oBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;oBAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;iBACjC;gBACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE;AAC7B,oBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1C,oBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxC,oBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACjE;aACF;iBAAM;AACL,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;aAChC;AAED,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC5B;KACF;IAEQ,qBAAqB,GAAA;QAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;AAC/B,YAAA,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC/D;aAAM;AACL,YAAA,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;KACF;IAEQ,yBAAyB,GAAA;AAChC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAACM,gBAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9F,aAAA,SAAS,CAAC,CAAC,MAAmE,KAAI;YACjF,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACzB,oBAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3E,oBAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC1E;qBAAM;AACL,oBAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;iBACpE;gBAED,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF,CAAC,CAAC,CAAC;KACP;IAEQ,WAAW,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/C;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;AAC/B,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE;AACpD,gBAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;aACrB;iBAAM;AACL,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC/D;SACF;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;SACnC;QAED,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB,EAAE,GAAG,CAAC,CAAC;KACT;+GAxFU,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,6EChB/B,s0BAyBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDTa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACE,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,s0BAAA,EAAA,CAAA;;;AEF3C,MAAO,iBAAkB,SAAQ,kBAAuD,CAAA;AAN9F,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC;AAkB/B,KAAA;AAhBC,IAAA,IAAW,OAAO,GAAA;QAChB,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ;YACpC,KAAK,WAAW,CAAC,QAAQ;AACvB,gBAAA,OAAO,cAAc,CAAC;YACxB,KAAK,WAAW,CAAC,KAAK;AACpB,gBAAA,OAAO,YAAY,CAAC;YACtB,KAAK,WAAW,CAAC,YAAY;AAC3B,gBAAA,OAAO,QAAQ,CAAC;AAClB,YAAA;AACE,gBAAA,OAAO,EAAE,CAAC;SACb;KACF;AAED,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,KAAK,WAAW,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAC;KAClF;+GAlBU,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,4ECZ9B,g2BA2BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,YAAA,EAAA,eAAA,EAAA,2BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDfa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;+BACE,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,g2BAAA,EAAA,CAAA;;;AEU3C,MAAO,kBAAmB,SAAQ,kBAGtC,CAAA;AATF,IAAA,WAAA,GAAA;;AAUE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC;AAEtB,QAAA,IAAA,CAAA,MAAM,GAAU,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,SAAS,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE1D,QAAA,IAAA,CAAA,kBAAkB,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAEjE,QAAA,IAAA,CAAA,mBAAmB,GAAiC,IAAI,OAAO,EAAuB,CAAC;QACvF,IAAmB,CAAA,mBAAA,GAAmB,EAAE,CAAC;QAEzC,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QAEvC,IAAc,CAAA,cAAA,GAAuB,IAAI,CAAC,MAAM,CAAC,MAAM,CAACG,cAAkC,CAAC,CAAC;QAE5F,IAAK,CAAA,KAAA,GAAU,EAAE,CAAC;AA6E1B,KAAA;IA3EU,QAAQ,GAAA;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;AAElB,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3B,YAAY,CAAC,GAAG,CAAC,CAClB,CAAC,SAAS,CAAC,KAAK,IAAG;YAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAACvC,YAA8B,CAAC,EAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC;AACvF,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAACwC,qBAAyC,CAAC;aACxF,SAAS,CAAC,MAAM,IAAG;AAClB,YAAA,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC;AACnC,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;SAChC,CAAC,CAAC,CAAC;AAEN,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAACC,gBAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9F,iBAAA,SAAS,CAAC,CAAC,MAAmE,KAAI;gBACjF,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBACpC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oBAEhC,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;aACF,CAAC,CAAC,CAAC;SACP;AAED,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,CAACC,kBAAsC,CAAC;AACvD,aAAA,SAAS,CAAC,CAAC,YAAyB,KAAI;AACvC,YAAA,IAAI,YAAY,CAAC,MAAM,EAAE;AACvB,gBAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;aAC/B;SACF,CAAC,CACL,CAAC;KACH;AAED,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAA;KACtC;AAED,IAAA,IAAa,UAAU,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;SACpE;aAAM;AACL,YAAA,OAAO,KAAK,CAAC;SACd;KACF;IAEQ,WAAW,GAAA;AAClB,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;KAChF;AAEM,IAAA,YAAY,CAAC,KAAuB,EAAA;AACzC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;AAEM,IAAA,UAAU,CAAC,IAAoB,EAAA;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAiB,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAEQ,cAAc,GAAA;QACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3C;AAEO,IAAA,UAAU,CAAC,YAAyB,EAAA;QAC1C,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAC1E,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAC,CAC3C,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;KAChC;+GA9FU,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,6ECpB/B,ihCAyBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,aAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDLa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACE,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ihCAAA,EAAA,CAAA;;;AELjD;AACM,MAAO,mBAAoB,SAAQ,kBAAwC,CAAA;AAPjF,IAAA,WAAA,GAAA;;AAQE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC;QAEzB,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAA;AAiB1C,KAAA;AAfQ,IAAA,WAAW,CAAC,KAAU,EAAA;;AAE3B,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAA;AAChD,YAAA,IAAI,CAAC,cAAc,CAAC,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAC,CAAC,CAAA;SAC1E;KACF;IAEQ,WAAW,GAAA;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAE5D,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,IAAG;YACjE,OAAO,OAAO,CAAC,KAAqB,CAAA;AACtC,SAAC,CAAC,CAAA;KACH;+GAnBU,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,8ECdhC,mrBAuBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDTa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;+BACE,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mrBAAA,EAAA,CAAA;;;AEE3C,MAAO,2BACX,SAAQ,kBAAuF,CAAA;AAPjG,IAAA,WAAA,GAAA;;AASE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,kBAAkB,CAAC;QAEjC,IAAI,CAAA,IAAA,GAAwB,EAAE,CAAC;QAC/B,IAAK,CAAA,KAAA,GAAwB,EAAE,CAAC;AAyCxC,KAAA;AAvCQ,IAAA,WAAW,CAAC,KAAiD,EAAA;QAClE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEQ,WAAW,GAAA;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAEhE,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAC9C,EAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,CAClC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAS,MAAyB,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAEhG,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;KAChC;AAEQ,IAAA,kBAAkB,CAAC,KAAiD,EAAA;AAC3E,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC9D;AAEO,IAAA,gBAAgB,CAAC,aAAkC,EAAA;QACzD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;AAChC,YAAA,OAAO,EAAE,CAAC;SACX;QAED,MAAM,MAAM,GAAa,EAAE,CAAC;AAE5B,QAAA,aAAa,CAAC,OAAO,CAAC,GAAG,IAAG;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK;AAC7C,iBAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;YAEjC,IAAI,YAAY,EAAE;AAChB,gBAAA,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aAChC;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;+GA9CU,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,uFCbxC,6oBAsBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDTa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;+BACE,0BAA0B,EAAA,eAAA,EAGnB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6oBAAA,EAAA,CAAA;;;AEE3C,MAAO,wBACX,SAAQ,kBAA+D,CAAA;AAPzE,IAAA,WAAA,GAAA;;AASE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,eAAe,CAAC;QAE9B,IAAI,CAAA,IAAA,GAAqB,EAAE,CAAC;AAqCpC,KAAA;AAlCQ,IAAA,WAAW,CAAC,KAA4B,EAAA;AAC7C,QAAA,IAAI,KAAK,CAAC,KAAK,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAC3C;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;SACvB;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEQ,WAAW,GAAA;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAC9C,EAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAC,CAC7F,CAAC,CAAC;QAEH,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACrF;KACF;AAEQ,IAAA,kBAAkB,CAAC,KAA4B,EAAA;AACtD,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC9D;AAEO,IAAA,gBAAgB,CAAC,aAAoC,EAAA;QAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;AAChC,YAAA,OAAO,EAAE,CAAC;SACX;AAED,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK;AAC/B,aAAA,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,aAAa,EAAE,EAAE,CAAC;AAC1C,aAAA,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;+GAzCU,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,oFCbrC,0oBAsBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDTa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACE,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0oBAAA,EAAA,CAAA;;;MEqBpC,kBAAkB,CAAA;AAZ/B,IAAA,WAAA,GAAA;AAaY,QAAA,IAAA,CAAA,MAAM,GAAU,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,SAAS,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAE3D,IAAe,CAAA,eAAA,GAAmB,EAAE,CAAC;QACrC,IAAiC,CAAA,iCAAA,GAAsC,EAAE,CAAC;QAE3E,IAAM,CAAA,MAAA,GAAG,oBAAoB,CAAC;QAGrB,IAAM,CAAA,MAAA,GAAiB,EAAE,CAAC;QAC1B,IAAS,CAAA,SAAA,GAAsB,MAAM,CAAC;AAE5C,QAAA,IAAA,CAAA,OAAO,GAA8D,IAAI,YAAY,EAA+C,CAAC;AAqChJ,KAAA;IAnCC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAACQ,4BAAgD,CAAC;aAC3F,SAAS,CAAC,OAAO,IAAG;AACnB,YAAA,IAAI,CAAC,iCAAiC,GAAG,OAAO,CAAC;AACjD,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;SAChC,CAAC,CAAC,CAAC;KACP;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;KAC5E;AAEM,IAAA,qBAAqB,CAAC,KAAkD,EAAA;AAC7E,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;AAEM,IAAA,kBAAkB,CAAC,OAAe,EAAA;AACvC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;QAEvF,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,IAAI,CAAC;SACb;QAED,IAAI,OAAO,GAAG,IAAI,CAAC;AAEnB,QAAA,QAAQ,MAAM,CAAC,UAAU;YACvB,KAAK,oBAAoB,CAAC,IAAI;AAC5B,gBAAA,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;gBACjC,MAAM;AAER,YAAA;gBACE,MAAM;SACT;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;+GAjDU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,+MChC/B,qlFA6EA,EAAA,MAAA,EAAA,CAAA,0GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlDI,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,gkBACX,yBAAyB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGhB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,mBAGnB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,WAAW;wBACX,yBAAyB;AAC1B,qBAAA,EAAA,QAAA,EAAA,qlFAAA,EAAA,MAAA,EAAA,CAAA,0GAAA,CAAA,EAAA,CAAA;8BAWe,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBACU,MAAM,EAAA,CAAA;sBAArB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAEI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;AETH,MAAO,wBAAyB,SAAQ,qBAAmE,CAAA;IAM/G,WACU,CAAA,SAA0C,EAC9B,IAA2B,EAAA;AAE/C,QAAA,KAAK,EAAE,CAAC;QAHA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAiC;AAKlD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAE9B,QAAA,IAAI,CAAC,MAAM,GAAG,EAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC;KACxD;AAEM,IAAA,qBAAqB,CAAC,UAAuD,EAAA;AAClF,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AACvB,YAAA,UAAU,CAAC,OAAO,CAAC,KAAK,IAAG;AACzB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC/B,aAAC,CAAC,CAAC;SACJ;aAAM;AACL,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SACnC;KACF;IAEM,EAAE,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,GAAG,EAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC;QACtD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACnC;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,EAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACnC;AAEO,IAAA,gBAAgB,CAAC,KAA0B,EAAA;QACjD,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAoC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAsB,KAAK,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC;QAEpI,IAAI,SAAS,EAAE;AACb,YAAA,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;SAC/B;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;KAC/B;AAjDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,4CAQzB,UAAU,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AART,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAJxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,SAAA,EAAA;AACT,YAAA,cAAc,EAAE;AACjB,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClCH,uvBA6BA,EDFI,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+UACZ,kBAAkB,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAOT,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAhBpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,mBAGhB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACP,WAAW;wBACX,YAAY;wBACZ,kBAAkB;qBAEnB,EACU,SAAA,EAAA;AACT,wBAAA,cAAc,EAAE;AACjB,qBAAA,EAAA,QAAA,EAAA,uvBAAA,EAAA,CAAA;;0BAUE,MAAM;2BAAC,UAAU,CAAA;;;AEtCf,MAAM,WAAW,GAAG,CAAC,KAAyB,KAAmB;AACtE,IAAA,MAAM,kBAAkB,GAAG,CAAC,KAAyB,KAA2B;QAC9E,IAAI,MAAM,GAA0B,EAAE,CAAC;QAEvC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAqB,KAAI;YACjD,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,KAAK,EAAE;gBAClC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/C;iBAAM;gBACL,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,MAAM,CAAC;AAChB,KAAC,CAAC;AAEF,IAAA,OAAO,EAAC,EAAE,EAAES,EAAM,EAAE,EAAE,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAC,CAAC;AACzD,CAAC;;MCUY,mBAAmB,CAAA;AANhC,IAAA,WAAA,GAAA;AAOE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC;AAExB,QAAA,IAAA,CAAA,MAAM,GAAU,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,SAAS,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACzD,QAAA,IAAA,CAAA,aAAa,GAAiB,MAAM,CAAC,YAAY,CAAC,CAAC;AAEnD,QAAA,IAAA,CAAA,eAAe,GAA6B,IAAI,OAAO,EAAmB,CAAC;QAC3E,IAAe,CAAA,eAAA,GAAmB,EAAE,CAAC;QAErC,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAInC,IAAU,CAAA,UAAA,GAA6B,EAAE,CAAC;QAC1C,IAAO,CAAA,OAAA,GAAkB,EAAE,CAAC;QAE1B,IAAM,CAAA,MAAA,GAAwB,EAAE,CAAC;AAezB,QAAA,IAAA,CAAA,OAAO,GAA8D,IAAI,YAAY,EAA+C,CAAC;AAiMvJ,KAAA;IA9MC,IAAa,IAAI,CAAC,QAA4B,EAAA;AAC5C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAA2B,CAAC;QAE5C,IAAI,CAAC,KAAK,GAAG,EAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAC,CAAC;AAEpF,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QAE/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAC7C;IAOD,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;AAElB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CACvB,YAAY,CAAC,GAAG,CAAC,CAClB,CAAC,SAAS,CAAC,KAAK,IAAG;AAClB,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC5C,YAA8B,CAAC,EAAC,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;AACvE,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAACwC,qBAAyC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AACzG,YAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;AAC/B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;SAChC,CAAC,CAAC,CAAC;AAEJ,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAACC,gBAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9F,aAAA,SAAS,CAAC,CAAC,MAAmE,KAAI;AACjF,YAAA,MAAM,WAAW,GAAG,SAAS,CAAC,MAAgC,CAAC,CAAC;YAEhE,IAAI,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE;AACtF,gBAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;gBACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACvC;SACF,CAAC,CAAC,CAAC;KACP;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;KAC5E;IAEM,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAChD,YAAA,KAAK,EAAE,iBAAiB;AACxB,YAAA,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;SACrC,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,IAAG;AACnC,YAAA,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAEzD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACvC;AACH,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,SAAS,CAAC,KAAU,EAAA;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5E,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEhF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACvC;KACF;AAEM,IAAA,OAAO,CAAC,KAAU,EAAA;QACvB,MAAM,OAAO,GAA8B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvG,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAChD,gBAAA,KAAK,EAAE,uBAAuB;AAC9B,gBAAA,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,IAAG;AACnC,gBAAA,IAAI,OAAO,CAAC,MAAM,EAAE;oBAClB,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAE5E,IAAI,OAAO,EAAE;wBACX,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;AAErC,wBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBACvC;iBACF;AACH,aAAC,CAAC,CAAC;SACJ;KACF;AAEM,IAAA,SAAS,CAAC,SAA6B,EAAA;AAC5C,QAAA,QAAQ,SAAS,CAAC,IAAI;YACpB,KAAK,aAAa,CAAC,SAAS;AAC1B,gBAAA,QAAS,SAA4B,CAAC,OAAO,CAAC,QAAQ;oBACpD,KAAK,YAAY,CAAC,QAAQ;AACxB,wBAAA,OAAO,kBAAkB,CAAC;AAC5B,oBAAA;AACE,wBAAA,OAAO,YAAY,CAAC;iBACvB;AACH,YAAA;AACE,gBAAA,OAAO,EAAE,CAAC;SACb;KACF;AAEM,IAAA,WAAW,CAAC,SAA6B,EAAA;AAC9C,QAAA,QAAQ,SAAS,CAAC,IAAI;YACpB,KAAK,aAAa,CAAC,SAAS;AAC1B,gBAAA,OAAO,MAAM,CAAC;AAChB,YAAA;AACE,gBAAA,OAAO,SAAS,CAAC;SACpB;KACF;AAEM,IAAA,SAAS,CAAC,SAA6B,EAAA;QAC5C,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,WAAW,EAAE;YAChD,MAAM,OAAO,GAAqB,SAA6B,CAAC;AAEhE,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;SACjC;AAED,QAAA,OAAO,KAAK,CAAC;KACd;AAEM,IAAA,aAAa,CAAC,SAA6B,EAAA;AAChD,QAAA,OAAQ,SAA8B,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KAC5D;IAEO,UAAU,GAAA;QAChB,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;AAC9B,YAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;AACxB,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,MAAM,EAAE,EAAE;SACX,CAAC;KACH;AAEO,IAAA,eAAe,CAAC,IAAqB,EAAA;QAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAmB,KAAI;YACjD,MAAM,WAAW,GAAQ,EAAE,CAAC;AAE5B,YAAA,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;AACvB,gBAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aACxD;AAED,YAAA,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AAEzB,YAAA,OAAO,WAAW,CAAC;AACrB,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;AAE/B,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;KAClC;AAEO,IAAA,YAAY,CAAC,UAAgC,EAAA;QACnD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9E,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,IAAI,EAAE,eAAe;AACtB,iBAAA;AACD,gBAAA;AACE,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE,SAAS;AAChB,iBAAA;AACF,aAAA;AACF,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAEjC,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;KAChC;AAEO,IAAA,gBAAgB,CAAC,SAA6B,EAAA;AACpD,QAAA,MAAM,MAAM,GAAgB;AAC1B,YAAA,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YACtC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,SAAS,EAAE,SAAS,CAAC,OAAO;AAC5B,YAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;AACrC,YAAA,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;SAClC,CAAA;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC;AAErF,YAAA,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE;AAClB,gBAAA,MAAM,CAAC,UAAU,GAAG,OAAO,CAAA;aAC5B;SACF;AAED,QAAA,OAAO,MAAM,CAAA;KACd;+GAhOU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,yUChChC,4rHAkGA,EAAA,MAAA,EAAA,CAAA,o3EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,eAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,OAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,6BAAA,EAAA,2BAAA,EAAA,gCAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,2BAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,+BAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,6BAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,4BAAA,EAAA,eAAA,EAAA,aAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,eAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,aAAA,EAAA,UAAA,EAAA,KAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,eAAA,EAAA,MAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDlEa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACE,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4rHAAA,EAAA,MAAA,EAAA,CAAA,o3EAAA,CAAA,EAAA,CAAA;8BAmBtC,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAEO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAUkC,QAAQ,EAAA,CAAA;sBAA/C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBACM,YAAY,EAAA,CAAA;sBAAvD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBAEzB,OAAO,EAAA,CAAA;sBAAvB,MAAM;;;AErDH,MAAO,qBAAsB,SAAQ,oBAAuC,CAAA;AANlF,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC;AAKnC,KAAA;AAHC,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;KAC3H;+GALU,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,gFCXlC,8hBAcA,EAAA,MAAA,EAAA,CAAA,ynCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDHa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;+BACE,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8hBAAA,EAAA,MAAA,EAAA,CAAA,ynCAAA,CAAA,EAAA,CAAA;;;AEE3C,MAAO,oBAAqB,SAAQ,oBAAsC,CAAA;AANhF,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC;AAClC,KAAA;+GAFY,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,4FCXjC,2KAKA,EAAA,MAAA,EAAA,CAAA,mRAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDMa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,+BAA+B,EAAA,eAAA,EAGxB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2KAAA,EAAA,MAAA,EAAA,CAAA,mRAAA,CAAA,EAAA,CAAA;;;AEE3C,MAAO,uBAAwB,SAAQ,oBAAyC,CAAA;AANtF,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,cAAc,CAAC;AACrC,KAAA;+GAFY,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,kFCXpC,gQASA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,aAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDEa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACE,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,gQAAA,EAAA,CAAA;;;AEG3C,MAAO,oBAAqB,SAAQ,oBAAsC,CAAA;AANhF,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC;QAE1B,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;AAClC,KAAA;+GAJY,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,+ECZjC,+0CAiCA,EAAA,MAAA,EAAA,CAAA,4/BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDrBa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+0CAAA,EAAA,MAAA,EAAA,CAAA,4/BAAA,CAAA,EAAA,CAAA;;;AEC3C,MAAO,uBAAwB,SAAQ,oBAAyC,CAAA;AANtF,IAAA,WAAA,GAAA;;AAOE,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,cAAc,CAAC;AAKrC,KAAA;AAHC,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;KAC3H;+GALU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,kFCXpC,iKAKA,EAAA,MAAA,EAAA,CAAA,8QAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDMa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACE,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,iKAAA,EAAA,MAAA,EAAA,CAAA,8QAAA,CAAA,EAAA,CAAA;;;AEF1C,MAAM,oBAAoB,GAAsB;AACrD,IAAA,CAAC,aAAa,CAAC,SAAS,GAAGU,kBAA6B;AACxD,IAAA,CAAC,aAAa,CAAC,aAAa,GAAGC,sBAAiC;AAChE,IAAA,CAAC,aAAa,CAAC,SAAS,GAAGC,kBAA6B;AACxD,IAAA,CAAC,aAAa,CAAC,WAAW,GAAGC,oBAA+B;AAC5D,IAAA,CAAC,aAAa,CAAC,WAAW,GAAGC,oBAA+B;AAC5D,IAAA,CAAC,aAAa,CAAC,WAAW,GAAGC,oBAA+B;AAC5D,IAAA,CAAC,aAAa,CAAC,SAAS,GAAGC,kBAA6B;AACxD,IAAA,CAAC,aAAa,CAAC,QAAQ,GAAGC,iBAA4B;AACtD,IAAA,CAAC,aAAa,CAAC,SAAS,GAAGC,kBAA6B;AACxD,IAAA,CAAC,aAAa,CAAC,UAAU,GAAGC,mBAA8B;AAC1D,IAAA,CAAC,aAAa,CAAC,kBAAkB,GAAGC,2BAAsC;AAC1E,IAAA,CAAC,aAAa,CAAC,eAAe,GAAGC,wBAAmC;AACpE,IAAA,CAAC,aAAa,CAAC,UAAU,GAAGC,mBAA8B;AAE1D,IAAA,CAAC,aAAa,CAAC,YAAY,GAAGC,qBAAgC;AAC9D,IAAA,CAAC,aAAa,CAAC,WAAW,GAAGC,oBAA+B;AAC5D,IAAA,CAAC,aAAa,CAAC,cAAc,GAAGC,uBAAkC;AAClE,IAAA,CAAC,aAAa,CAAC,WAAW,GAAGC,oBAA+B;AAC5D,IAAA,CAAC,aAAa,CAAC,cAAc,GAAGC,uBAAkC;CACnE;;MCdqB,iBAAiB,CAAA;AAAvC,IAAA,WAAA,GAAA;AAMS,QAAA,IAAA,CAAA,OAAO,GAA+D,IAAI,YAAY,EAA+C,CAAA;KAC7I;AAHC,IAAA,IAAW,IAAI,CAAC,QAA4B,EAAA,GAAI;AAGjD;;MCYY,aAAa,CAAA;AAZ1B,IAAA,WAAA,GAAA;AAaU,QAAA,IAAA,CAAA,MAAM,GAAU,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7B,QAAA,IAAA,CAAA,SAAS,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAExD,IAAe,CAAA,eAAA,GAAmB,EAAE,CAAC;QACrC,IAAiC,CAAA,iCAAA,GAAsC,EAAE,CAAC;QAE3E,IAAM,CAAA,MAAA,GAAG,oBAAoB,CAAC;QAGrB,IAAM,CAAA,MAAA,GAAiB,EAAE,CAAC;QAC1B,IAAS,CAAA,SAAA,GAAsB,MAAM,CAAC;AAE5C,QAAA,IAAA,CAAA,OAAO,GAA8D,IAAI,YAAY,EAA+C,CAAC;AAsChJ,KAAA;IApCC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAACnB,4BAAgD,CAAC;aAC3F,SAAS,CAAC,OAAO,IAAG;AACnB,YAAA,IAAI,CAAC,iCAAiC,GAAG,OAAO,CAAC;AACjD,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;SAChC,CAAC,CAAC,CAAC;KACP;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;KAC5E;AAED,IAAA,qBAAqB,CAAC,KAAkD,EAAA;AACtE,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;AAED,IAAA,kBAAkB,CAAC,OAAe,EAAA;AAChC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;QAEvF,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,IAAI,CAAC;SACb;QAED,IAAI,OAAO,GAAG,IAAI,CAAC;AAEnB,QAAA,QAAQ,MAAM,CAAC,UAAU;YACvB,KAAK,oBAAoB,CAAC,IAAI;AAC5B,gBAAA,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;gBACjC,MAAM;AAER,YAAA;gBACE,MAAM;SACT;AAED,QAAA,OAAO,OAAO,CAAC;KAChB;+GAlDU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,yMChC1B,6kFA2EA,EAAA,MAAA,EAAA,CAAA,0GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDhDI,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,gkBACX,yBAAyB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGhB,aAAa,EAAA,UAAA,EAAA,CAAA;kBAZzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,mBAGb,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,WAAW;wBACX,yBAAyB;AAC1B,qBAAA,EAAA,QAAA,EAAA,6kFAAA,EAAA,MAAA,EAAA,CAAA,0GAAA,CAAA,EAAA,CAAA;8BAWe,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBACU,MAAM,EAAA,CAAA;sBAArB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAEI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;MEhCI,kBAAkB,CAAA;AAN/B,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,MAAM,GAAU,MAAM,CAAC,KAAK,CAAC,CAAA;QAE9B,IAAgB,CAAA,gBAAA,GAAoC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC4B,qBAAyC,CAAC,CAAC;AAS1H,KAAA;IAPC,wBAAwB,GAAA;QACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAACnD,mBAAqC,EAAE,CAAC,CAAC;KAC/D;AAED,IAAA,qBAAqB,CAAC,KAAkD,EAAA;AACtE,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAACZ,YAA8B,CAAC,EAAC,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;KACtE;+GAXU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,+DCb/B,w8BAuBA,EAAA,MAAA,EAAA,CAAA,uOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgE,aAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5B,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,aAAA,EAAA,MAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDVa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,w8BAAA,EAAA,MAAA,EAAA,CAAA,uOAAA,CAAA,EAAA,CAAA;;;AENjD,MAAM,MAAM,GAAW;AACrB,IAAA;AACE,QAAA,IAAI,EAAE,0BAA0B;AAChC,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,QAAQ,EAAE;AACR,YAAA;AACE,gBAAA,IAAI,EAAE,iBAAiB;AACvB,gBAAA,SAAS,EAAE,kBAAkB;AAC9B,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,QAAQ,EAAE;AACR,YAAA;AACE,gBAAA,IAAI,EAAE,iBAAiB;AACvB,gBAAA,SAAS,EAAE,kBAAkB;AAC9B,aAAA;AACF,SAAA;AACF,KAAA;CACF,CAAC;MAMW,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,wCAFxB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEX,uBAAuB,EAAA,OAAA,EAAA,CAHxB,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA,CAAA;;;MCxBY,sBAAsB,CAAA;AACjC,IAAA,WAAA,CAAoB,eAA+B,EAAA;QAA/B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAgB;KACjD;IAEF,SAAS,CAAC,GAAqB,EAAE,IAAiB,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1B,UAAU,CAAC,KAAK,IAAG;AACjB,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAChC,CAAC,CACH,CAAC;KACH;AAEO,IAAA,WAAW,CAAC,KAAS,EAAA;AAC3B,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,gBAAA,KAAK,EAAE,uBAAuB;AAC9B,gBAAA,OAAO,EAAE,2CAA2C;gBACpD,IAAI,EAAE,WAAW,CAAC,QAAQ;AAC3B,aAAA,CAAC,CAAA;SACH;AACD,QAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;KAC1B;+GArBU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAtB,sBAAsB,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;;;ACNJ,MAAM,uBAAuB,GAAG,yBAAyB;;MCgBnD,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YALzB,YAAY,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA;AAKH,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YALzB,YAAY;AACZ,YAAA,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC;AACjC,YAAA,WAAW,CAAC,UAAU,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGzD,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;AACZ,wBAAA,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC;AACjC,wBAAA,WAAW,CAAC,UAAU,CAAC,uBAAuB,EAAE,iBAAiB,CAAC;AACnE,qBAAA;AACF,iBAAA,CAAA;;;MCmHY,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAtEzB,mBAAmB;YACnB,kBAAkB;YAClB,kBAAkB;YAClB,sBAAsB;YACtB,kBAAkB;YAClB,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;YACpB,kBAAkB;YAClB,iBAAiB;YACjB,kBAAkB;YAClB,mBAAmB;YACnB,2BAA2B;YAC3B,wBAAwB;YACxB,mBAAmB;YACnB,qBAAqB;YACrB,oBAAoB;YACpB,uBAAuB;YACvB,oBAAoB;AACpB,YAAA,uBAAuB,aAGnB,YAAY;AACZ,YAAA,uBAAuB,kDAGvB,aAAa;YACb,gBAAgB;YAChB,eAAe;YACf,YAAY;YACZ,eAAe;YACf,WAAW;YACX,oBAAoB;YACpB,YAAY;YACZ,mBAAmB;YACnB,YAAY;YACZ,WAAW;YACX,cAAc;YACd,YAAY;YACZ,iBAAiB;YACjB,iBAAiB;YACjB,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,gBAAgB;YAChB,cAAc;YACd,cAAc;YACd,UAAU;YACV,kBAAkB;YAClB,gBAAgB;YAChB,eAAe;YACf,aAAa;YACb,gBAAgB;YAChB,WAAW;YACX,oBAAoB;YACpB,gBAAgB;YAChB,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAYjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAVhB,SAAA,EAAA;YACT,iBAAiB;YACjB,uBAAuB;AACvB,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,QAAQ,EAAE,sBAAsB;AAChC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CA9CK,YAAY;YACZ,uBAAuB;AACvB,YAAA,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE,aAAa,CAAC;AACjD,YAAA,aAAa,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC7C,aAAa;YACb,gBAAgB;YAChB,eAAe;YACf,YAAY;YACZ,eAAe;YACf,WAAW;YACX,oBAAoB;YACpB,YAAY;YACZ,mBAAmB;YACnB,YAAY;YACZ,WAAW;YACX,cAAc;YACd,YAAY;YACZ,iBAAiB;YACjB,iBAAiB;YACjB,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,gBAAgB;YAChB,cAAc;YACd,cAAc;YACd,UAAU;YACV,kBAAkB;YAClB,gBAAgB;YAChB,eAAe;YACf,aAAa;YACb,gBAAgB;YAChB,WAAW;YACX,oBAAoB;YACpB,gBAAgB;YAChB,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAYjB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAxE5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,kBAAkB;wBAClB,kBAAkB;wBAClB,sBAAsB;wBACtB,kBAAkB;wBAClB,oBAAoB;wBACpB,oBAAoB;wBACpB,oBAAoB;wBACpB,kBAAkB;wBAClB,iBAAiB;wBACjB,kBAAkB;wBAClB,mBAAmB;wBACnB,2BAA2B;wBAC3B,wBAAwB;wBACxB,mBAAmB;wBACnB,qBAAqB;wBACrB,oBAAoB;wBACpB,uBAAuB;wBACvB,oBAAoB;wBACpB,uBAAuB;AACxB,qBAAA;AACC,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,uBAAuB;AACvB,wBAAA,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE,aAAa,CAAC;AACjD,wBAAA,aAAa,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,CAAC;wBAC7C,aAAa;wBACb,gBAAgB;wBAChB,eAAe;wBACf,YAAY;wBACZ,eAAe;wBACf,WAAW;wBACX,oBAAoB;wBACpB,YAAY;wBACZ,mBAAmB;wBACnB,YAAY;wBACZ,WAAW;wBACX,cAAc;wBACd,YAAY;wBACZ,iBAAiB;wBACjB,iBAAiB;wBACjB,mBAAmB;wBACnB,qBAAqB;wBACrB,eAAe;wBACf,WAAW;wBACX,mBAAmB;wBACnB,gBAAgB;wBAChB,cAAc;wBACd,cAAc;wBACd,UAAU;wBACV,kBAAkB;wBAClB,gBAAgB;wBAChB,eAAe;wBACf,aAAa;wBACb,gBAAgB;wBAChB,WAAW;wBACX,oBAAoB;wBACpB,gBAAgB;wBAChB,sBAAsB;AACzB,qBAAA;AACH,oBAAA,SAAS,EAAE;wBACT,iBAAiB;wBACjB,uBAAuB;AACvB,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,QAAQ,EAAE,sBAAsB;AAChC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;ACjIK,SAAU,SAAS,CAAC,GAAQ,EAAA;AAChC,IAAA,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;AACD,IAAA,OAAO,CAAC,KAAK,CAAC,GAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AAC3B,CAAC;AAEY,MAAA,iBAAiB,GAAG,CAAC,KAAU,KAAI;IAC9C,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAA;AACvD;;ACVA;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"myrtex-org-form.mjs","sources":["../../../projects/myrtex-form/src/lib/modules/shared-form/store/shared-form.effects.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/store/shared-form.reducer.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/store/shared-form.state.ts","../../../projects/myrtex-form/src/lib/modules/object-form/constants.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/store/shared-form.selector.ts","../../../projects/myrtex-form/src/lib/modules/object-form/store/object-form.actions.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/template-status.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/component-size.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/date-format.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/date-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/inn-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/input-state.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/component-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/value-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/condition-operator-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/logical-operator-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/dependence-action-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/enums/template-components-group-type.enum.ts","../../../projects/myrtex-form/src/lib/modules/object-form/helpers/check-dependence-rule.helper.ts","../../../projects/myrtex-form/src/lib/modules/object-form/helpers/get-menu-model.ts","../../../projects/myrtex-form/src/lib/modules/object-form/helpers/get-percent-for-section.helper.ts","../../../projects/myrtex-form/src/lib/modules/object-form/helpers/get-updated-values.ts","../../../projects/myrtex-form/src/lib/modules/object-form/helpers/get-value-model.helper.ts","../../../projects/myrtex-form/src/lib/modules/object-form/store/object-form.selector.ts","../../../projects/myrtex-form/src/lib/modules/object-form/store/object-form.state.ts","../../../projects/myrtex-form/src/lib/modules/object-form/store/object-form.reducers.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/services/concurrency-store.service.ts","../../../projects/myrtex-form/src/lib/modules/object-form/services/object-form.service.ts","../../../projects/myrtex-form/src/lib/modules/object-form/store/object-form.effects.ts","../../../projects/myrtex-form/src/lib/modules/object-form/object-form.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/object-form.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/factories/component-factory/component-factory.directive.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/base/base-element/base-element.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/base/base-field/base-field.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/text/input-text.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/text/input-text.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/textarea/input-textarea.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/textarea/input-textarea.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/link/input-link.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/link/input-link.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/switch/input-switch.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/switch/input-switch.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/number/input-number.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/number/input-number.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/select/input-select.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/select/input-select.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/date/input-date.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/date/input-date.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/inn/input-inn.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/inn/input-inn.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/file/input-file.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/file/input-file.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/phone/input-phone.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/phone/input-phone.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/checkbox-group/input-checkbox-group.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/checkbox-group/input-checkbox-group.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/radio-group/input-radio-group.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/radio-group/input-radio-group.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/components/input-table-modal/form-dispenser-modal/form-dispenser-modal.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/components/input-table-modal/form-dispenser-modal/form-dispenser-modal.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/components/input-table-modal/input-table-modal.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/components/input-table-modal/input-table-modal.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/helpers/get-row-model.helper.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/input-table.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/input/table/input-table.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/title/content-title.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/title/content-title.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/text/content-text.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/text/content-text.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/tooltip/content-tooltip.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/tooltip/content-tooltip.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/file/content-file.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/file/content-file.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/divider/content-divider.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/elements/content/divider/content-divider.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/factories/component-factory/enums/component.enum.ts","../../../projects/myrtex-form/src/lib/modules/object-form/factories/component-factory/models/component.model.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/form-dispenser/form-dispenser.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/form-dispenser/form-dispenser.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/components/object-form-content/object-form-content.component.ts","../../../projects/myrtex-form/src/lib/modules/object-form/components/object-form-content/object-form-content.component.html","../../../projects/myrtex-form/src/lib/modules/object-form/object-form-routing.module.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/interceptors/concurrency.interceptor.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/constants/index.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/shared-form.module.ts","../../../projects/myrtex-form/src/lib/modules/object-form/object-form.module.ts","../../../projects/myrtex-form/src/lib/modules/shared-form/helpers/common.helpers.ts","../../../projects/myrtex-form/src/public-api.ts","../../../projects/myrtex-form/src/myrtex-org-form.ts"],"sourcesContent":["export const EFFECTS = [];\r\n","import { ActionReducerMap } from '@ngrx/store';\r\nimport { routerReducer } from '@ngrx/router-store';\r\nimport { ROUTER_STATE_NAME } from '@myrtex-org/ui-composite';\r\n\r\nimport { SharedFormState } from './shared-form.state';\r\n\r\nexport const sharedFormReducer: ActionReducerMap<SharedFormState, any> = {\r\n [ROUTER_STATE_NAME]: routerReducer\r\n};\r\n","import { RouterReducerState } from '@ngrx/router-store';\r\nimport { ROUTER_STATE_NAME } from '@myrtex-org/ui-composite';\r\n\r\nexport interface SharedFormState {\r\n [ROUTER_STATE_NAME]?: RouterReducerState;\r\n}\r\n\r\nexport const initialSharedFormState: SharedFormState = {\r\n};\r\n","export const STATE_NAME = 'object-form'\r\n\r\nexport const OBJECT_ID_NAME = 'objectId'\r\nexport const SECTION_SYS_NAME_NAME = 'sectionSysName'\r\nexport const TEMPLATE_SYS_NAME_NAME = 'templateSysName'\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectQueryParam, selectRouteParam, selectRouter } from '@myrtex-org/ui-composite';\r\nimport { Params } from '@angular/router';\r\nimport { SECTION_SYS_NAME_NAME, TEMPLATE_SYS_NAME_NAME } from '../../object-form/constants';\r\n\r\nexport const selectRouteNestedParams = createSelector(selectRouter, (router) => {\r\n let currentRoute = router?.state?.root;\r\n\r\n let params: Params = {};\r\n\r\n while (currentRoute?.firstChild) {\r\n currentRoute = currentRoute.firstChild;\r\n params = {\r\n ...params,\r\n ...currentRoute.params,\r\n };\r\n }\r\n\r\n return params;\r\n});\r\n\r\nexport const selectRouteNestedParam = (param: string) => createSelector(selectRouteNestedParams,\r\n (params) => {\r\n return params && params[param];\r\n });\r\n\r\nexport const selectTemplateSysName = createSelector(\r\n selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME),\r\n (rparam: string | undefined) => {\r\n return rparam || null;\r\n }\r\n);\r\n\r\nexport const selectIdFromQuery = createSelector(\r\n selectQueryParam('id'),\r\n (rparam: string | number | undefined) => {\r\n return rparam || null;\r\n }\r\n);\r\n\r\nexport const selectSectionSysName = createSelector(\r\n selectRouteParam(SECTION_SYS_NAME_NAME),\r\n (rparam: string | undefined) => {\r\n return rparam || null;\r\n }\r\n);\r\n\r\n\r\n","import { createAction, props } from '@ngrx/store';\r\nimport { TemplateModel } from '../models';\r\nimport { SectionValueModel, UpdateValueResult, ValueModel } from '../models';\r\nimport { FileModel } from '../../shared-form/models';\r\n\r\nexport enum EApplicationActions {\r\n UpdateApiUrl = '[Object Form] Update Api Url',\r\n\r\n LoadTemplatePending = '[Object Form] Load Template Pending',\r\n LoadTemplateSuccess = '[Object Form] Load Template Success',\r\n LoadTemplateError = '[Object Form] Load Template Error',\r\n\r\n LoadObjectPending = '[Object Form] Load Object Pending',\r\n LoadObjectSuccess = '[Object Form] Load Object Success',\r\n LoadObjectError = '[Object Form] Load Object Error',\r\n\r\n SaveObjectPending = '[Object Form] Save Object Pending',\r\n SaveObjectSuccess = '[Object Form] Save Object Success',\r\n SaveObjectError = '[Object Form] Save Object Error',\r\n\r\n CopyObjectPending = '[Object Form] Copy Object Pending',\r\n CopyObjectSuccess = '[Object Form] Copy Object Success',\r\n CopyObjectError = '[Object Form] Copy Object Error',\r\n\r\n UpdateValues = '[Object Form] Update Application Values',\r\n AccessUpdateValues = '[Object Form] Access Update Application Values',\r\n SaveValuesPending = '[Object Form] Save Application Values Pending',\r\n SaveValuesSuccess = '[Object Form] Save Application Values Success',\r\n SaveValuesError = '[Object Form] Save Application Values Error',\r\n\r\n UpdateSelectedSectionSysName = '[Object Form] Update Selected Section SysName',\r\n\r\n LoadSectionFilesPending = '[Object Form] Load Section Files Pending',\r\n LoadSectionFilesSuccess = '[Object Form] Load Section Files Success',\r\n LoadSectionFilesError = '[Object Form] Load Section Files Error',\r\n\r\n ToggleCheckRequired = '[Object Form] Toggle Check Required',\r\n UpdateCheckRequired = '[Application] Update Check Required',\r\n\r\n LoadPreviewTemplatePending = '[Object Form] Load Preview Template Pending',\r\n LoadPreviewTemplateSuccess = '[Object Form] Load Preview Template Success',\r\n LoadPreviewTemplateError = '[Object Form] Load Preview Template Error',\r\n\r\n CheckAllDependencyRules = '[Object Form] Check All Dependency Rule',\r\n\r\n PrintDocument = '[Object Form] Print Document'\r\n}\r\n\r\nexport const updateApiUrl = createAction(\r\n EApplicationActions.UpdateApiUrl,\r\n props<{ apiPrefix: string, apiUrl: string }>()\r\n);\r\n\r\nexport const loadTemplatePending = createAction(\r\n EApplicationActions.LoadTemplatePending\r\n);\r\nexport const loadTemplateSuccess = createAction(\r\n EApplicationActions.LoadTemplateSuccess,\r\n props<{ templateSysName: string }>()\r\n);\r\nexport const loadTemplateError = createAction(\r\n EApplicationActions.LoadTemplateError\r\n);\r\n\r\nexport const loadObjectPending = createAction(\r\n EApplicationActions.LoadObjectPending,\r\n props<{ templateSysName: string }>()\r\n);\r\nexport const loadObjectSuccess = createAction(\r\n EApplicationActions.LoadObjectSuccess,\r\n props<{\r\n templateSettings: TemplateModel,\r\n sectionValues: SectionValueModel[],\r\n applicationId: string,\r\n isDraft: boolean\r\n }>()\r\n);\r\nexport const loadObjectError = createAction(\r\n EApplicationActions.LoadObjectError\r\n);\r\nexport const saveObjectPending = createAction(\r\n EApplicationActions.SaveObjectPending\r\n);\r\nexport const saveObjectSuccess = createAction(\r\n EApplicationActions.SaveObjectSuccess\r\n);\r\nexport const saveObjectError = createAction(\r\n EApplicationActions.SaveObjectError\r\n);\r\n\r\nexport const copyObjectPending = createAction(\r\n EApplicationActions.CopyObjectPending,\r\n props<{ sourceId: string, targetTemplateSysName: string }>()\r\n);\r\nexport const copyObjectSuccess = createAction(\r\n EApplicationActions.CopyObjectSuccess\r\n);\r\nexport const copyObjectError = createAction(\r\n EApplicationActions.CopyObjectError\r\n);\r\n\r\nexport const updateValues = createAction(\r\n EApplicationActions.UpdateValues,\r\n props<{ value: ValueModel | ValueModel[] }>()\r\n);\r\n\r\nexport const accessUpdateValues = createAction(\r\n EApplicationActions.AccessUpdateValues\r\n);\r\n\r\nexport const saveValuesPending = createAction(\r\n EApplicationActions.SaveValuesPending\r\n);\r\nexport const saveValuesSuccess = createAction(\r\n EApplicationActions.SaveValuesSuccess,\r\n props<{ result: UpdateValueResult, objectId: string }>()\r\n);\r\nexport const saveValuesError = createAction(\r\n EApplicationActions.SaveValuesError\r\n);\r\n\r\nexport const updateSelectedSectionSysName = createAction(\r\n EApplicationActions.UpdateSelectedSectionSysName,\r\n props<{ sectionSysName: string }>()\r\n);\r\n\r\nexport const loadSectionFilesPending = createAction(\r\n EApplicationActions.LoadSectionFilesPending\r\n);\r\nexport const loadSectionFilesSuccess = createAction(\r\n EApplicationActions.LoadSectionFilesSuccess,\r\n props<{ sectionFiles: FileModel[] }>()\r\n);\r\nexport const loadSectionFilesError = createAction(\r\n EApplicationActions.LoadSectionFilesError\r\n);\r\n\r\nexport const toggleCheckRequired = createAction(\r\n EApplicationActions.ToggleCheckRequired\r\n);\r\nexport const updateCheckRequired = createAction(\r\n EApplicationActions.UpdateCheckRequired,\r\n props<{ isCheckRequired: boolean }>()\r\n);\r\n\r\nexport const loadPreviewTemplatePending = createAction(\r\n EApplicationActions.LoadPreviewTemplatePending,\r\n props<{ templateSysName: string }>()\r\n);\r\n\r\nexport const loadPreviewTemplateSuccess = createAction(\r\n EApplicationActions.LoadPreviewTemplateSuccess,\r\n props<{ templateSettings: TemplateModel, templateSysName: string }>()\r\n);\r\n\r\nexport const loadPreviewTemplateError = createAction(\r\n EApplicationActions.LoadPreviewTemplateError\r\n);\r\n\r\nexport const checkAllDependencyRules = createAction(\r\n EApplicationActions.CheckAllDependencyRules\r\n);\r\n\r\nexport const printDocument = createAction(\r\n EApplicationActions.PrintDocument\r\n);\r\n","export enum TemplateStatus{\r\n draft = 0,\r\n active = 1,\r\n archived = 2\r\n}\r\n\r\nconst templateStatusCaption: Record<TemplateStatus, string> = {\r\n [TemplateStatus.draft]: 'черновик',\r\n [TemplateStatus.active]: 'активен',\r\n [TemplateStatus.archived]: 'архив',\r\n};\r\n\r\nexport const getTemplateStatusText = (status: TemplateStatus): string => {\r\n return templateStatusCaption[status];\r\n}\r\n","export enum ComponentSizeEnum {\r\n Large = 'large',\r\n Medium = 'medium',\r\n Small = 'small',\r\n}\r\n","export enum DateFormatEnum {\r\n Day = 'дд.мм.гггг',\r\n Month = 'мм.гггг',\r\n Year = 'гггг'\r\n}\r\n\r\nexport const DateFormatLabelEnum: Record<DateFormatEnum, string> = {\r\n [DateFormatEnum.Day]: 'дд.мм.гггг',\r\n [DateFormatEnum.Month]: 'мм.гггг',\r\n [DateFormatEnum.Year]: 'гггг',\r\n};\r\n","export enum DateTypeEnum {\r\n Date = 'date',\r\n DateTime = 'date-time',\r\n}\r\n\r\nexport const DateTypeLabelEnum: Record<DateTypeEnum, string> = {\r\n [DateTypeEnum.Date]: 'Дата',\r\n [DateTypeEnum.DateTime]: 'Дата и время',\r\n};\r\n","export enum InnTypeEnum {\r\n Personal = 'personal',\r\n Legal = 'legal',\r\n ForeignLegal = 'foreign-legal'\r\n}\r\n\r\nexport const InnTypeLabelEnum: Record<InnTypeEnum, string> = {\r\n [InnTypeEnum.Personal]: 'ФЛ/ИП',\r\n [InnTypeEnum.Legal]: 'ЮЛ',\r\n [InnTypeEnum.ForeignLegal]: 'Иностранное ЮЛ',\r\n};\r\n","export enum InputState {\r\n Edit = 'edit',\r\n Auto = 'auto',\r\n Formula = 'formula'\r\n}\r\n\r\nexport enum CustomInputStateEnum {\r\n Edit = 0,\r\n Auto = 1,\r\n Formula = 2\r\n}\r\n\r\nexport const CustomInputStateEnumLabel: Record<CustomInputStateEnum, string> = {\r\n [CustomInputStateEnum.Edit]: InputState.Edit,\r\n [CustomInputStateEnum.Auto]: InputState.Auto,\r\n [CustomInputStateEnum.Formula]: InputState.Formula,\r\n};\r\n","export enum ComponentType {\r\n Section = 'section',\r\n Group = 'group',\r\n\r\n InputText = 'inputText',\r\n InputTextarea = 'inputTextarea',\r\n InputSwitch = 'inputSwitch',\r\n InputLink = 'inputLink',\r\n InputSelect = 'inputSelect',\r\n InputNumber = 'inputNumber',\r\n InputDate = 'inputDate',\r\n InputINN = 'inputINN',\r\n InputFile = 'inputFile',\r\n InputPhone = 'inputPhone',\r\n InputCheckboxGroup = 'inputCheckboxGroup',\r\n InputRadioGroup = 'inputRadioGroup',\r\n InputTable = 'inputTable',\r\n\r\n ContentTitle = 'title',\r\n ContentText = 'text',\r\n ContentTooltip = 'tooltip',\r\n ContentFile = 'file',\r\n ContentDivider = 'divider',\r\n}\r\n\r\nexport const ComponentShortType: Record<ComponentType, string> = {\r\n [ComponentType.Section]: 's',\r\n [ComponentType.Group]: 'g',\r\n\r\n [ComponentType.InputText]: 'itt',\r\n [ComponentType.InputTextarea]: 'ita',\r\n [ComponentType.InputSwitch]: 'isw',\r\n [ComponentType.InputLink]: 'il',\r\n [ComponentType.InputSelect]: 'ist',\r\n [ComponentType.InputNumber]: 'in',\r\n [ComponentType.InputDate]: 'id',\r\n [ComponentType.InputINN]: 'inn',\r\n [ComponentType.InputFile]: 'if',\r\n [ComponentType.InputPhone]: 'ip',\r\n [ComponentType.InputCheckboxGroup]: 'icg',\r\n [ComponentType.InputRadioGroup]: 'irg',\r\n [ComponentType.InputTable]: 'itb',\r\n\r\n [ComponentType.ContentTitle]: 'ct',\r\n [ComponentType.ContentText]: 'ctt',\r\n [ComponentType.ContentTooltip]: 'ctp',\r\n [ComponentType.ContentFile]: 'cf',\r\n [ComponentType.ContentDivider]: 'cd',\r\n};\r\n","export enum ValueType {\r\n Undefined = \"undefined\",\r\n Short = \"short\",\r\n Int = \"int\",\r\n Long = \"long\",\r\n Float = \"float\",\r\n Double = \"double\",\r\n Decimal = \"decimal\",\r\n String = \"string\",\r\n Guid = \"guid\",\r\n DateTime = \"dateTime\",\r\n Boolean = \"boolean\",\r\n IntArray = \"int[]\",\r\n StringArray = \"string[]\",\r\n GuidArray = \"guid[]\"\r\n}","\r\nexport enum ConditionOperatorType {\r\n undefined = 'undefined',\r\n filled = 'filled'\r\n}\r\n\r\nexport const getConditionOperatorsList = () => {\r\n return [{\r\n value: ConditionOperatorType.filled,\r\n text: conditionOperatorTypeLabel[ConditionOperatorType.filled]\r\n }]\r\n};\r\n\r\nexport const conditionOperatorTypeLabel: Record<string, string> = {\r\n [ConditionOperatorType.filled]: 'заполнено'\r\n};\r\n","export enum LogicalOperatorType {\r\n undefined = 'undefined',\r\n or = 'or',\r\n and = 'and'\r\n}\r\n","export enum DependenceActionType {\r\n undefined = 'undefined',\r\n show = 'show'\r\n}\r\n\r\nexport const getDependenceActionsList = () => {\r\n return [{\r\n value: DependenceActionType.show,\r\n text: 'показать'\r\n }]\r\n}","export enum TemplateComponentsGroupTypeEnum {\r\n Components = 1,\r\n Content = 2,\r\n}\r\n\r\nexport const TemplateComponentsGroupTypeLabels: Record<TemplateComponentsGroupTypeEnum, string> = {\r\n [TemplateComponentsGroupTypeEnum.Components]: 'Поля',\r\n [TemplateComponentsGroupTypeEnum.Content]: 'Контент',\r\n};\r\n","import { LogicalOperatorType, DependenceActionType, ConditionOperatorType } from \"../../shared-form/enums\";\r\nimport {\r\n ComponentValueModel,\r\n DependenceCondidtionModel,\r\n DependenceConditionGroupModel,\r\n FieldDependenceModel,\r\n FieldDependencyCheckResultModel,\r\n SectionValueModel,\r\n ValueModel\r\n} from '../models';\r\nimport { getUpdatedValues, getValuesRecursive } from '../helpers';\r\n\r\nexport const getDependenceRulesResults =\r\n (currentResults: FieldDependencyCheckResultModel[],\r\n allValues: SectionValueModel[],\r\n changedValue: ValueModel | ValueModel[],\r\n rules?: FieldDependenceModel[]\r\n ) : FieldDependencyCheckResultModel[] => {\r\n\r\n if (!rules) {\r\n return currentResults;\r\n }\r\n\r\n const actualValues = allValues.map(sectionVal => {\r\n return getUpdatedValues(sectionVal, Array.isArray(changedValue) ? changedValue : [changedValue])\r\n });\r\n\r\n const rulesResults = rules\r\n .filter(x => containsConditionValue(x.conditions, changedValue))\r\n .map(rule => {\r\n return checkDependenceRule(rule, actualValues);\r\n }).flat();\r\n\r\n const shallowCopy = currentResults.map(result => {\r\n const idx = rulesResults.findIndex(x=>x.sysName === result.sysName);\r\n if(idx !== -1){\r\n const newResult = rulesResults[idx];\r\n rulesResults.splice(idx, 1);\r\n return newResult;\r\n }\r\n return { ...result };\r\n });\r\n if (!!rulesResults.length) {\r\n shallowCopy.push(...rulesResults);\r\n }\r\n\r\n return shallowCopy;\r\n }\r\n\r\nexport const checkDependenceRule = (rule: FieldDependenceModel, values: SectionValueModel[]): FieldDependencyCheckResultModel[] => {\r\n const result: FieldDependencyCheckResultModel[] = [];\r\n\r\n const conditionResult = checkConditionResult({\r\n conditions: rule.conditions,\r\n type: LogicalOperatorType.and,\r\n groups: []\r\n }, values);\r\n\r\n rule.acceptors.forEach(x=>{\r\n result.push({\r\n sysName: x.s,\r\n actionType: rule.actionType,\r\n conditionResult\r\n });\r\n });\r\n\r\n return result;\r\n}\r\n\r\nexport const getValuesToClean = (results: FieldDependencyCheckResultModel[]) : string[] => {\r\n const result: string[] = [];\r\n results.forEach(res => {\r\n switch (res.actionType) {\r\n case DependenceActionType.show:\r\n if(!res.conditionResult) {\r\n result.push(res.sysName);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n return result;\r\n}\r\n\r\nconst checkConditionResult = (group: DependenceConditionGroupModel, values: SectionValueModel[]): boolean => {\r\n let result = group.type === LogicalOperatorType.and;\r\n const appendResult = (newResult: boolean): void => {\r\n if (group.type === LogicalOperatorType.and) {\r\n result = result && newResult;\r\n } else if (group.type === LogicalOperatorType.or) {\r\n result = result || newResult;\r\n }\r\n }\r\n group.conditions.forEach(x =>{\r\n appendResult(calculateCondition(x, getValuesRecursive(x.field!.s, values)));\r\n });\r\n\r\n group.groups?.forEach(g => {\r\n appendResult(checkConditionResult(g, values));\r\n });\r\n return result;\r\n}\r\n\r\n\r\nconst calculateCondition = (condition: DependenceCondidtionModel, value: ComponentValueModel | null): boolean => {\r\n switch (condition.operator) {\r\n case ConditionOperatorType.filled:\r\n return !!value?.value;\r\n\r\n default:\r\n break;\r\n }\r\n return false;\r\n}\r\n\r\n// TODO переделать на группу\r\nconst containsConditionValue = (conditions: DependenceCondidtionModel[], value: ValueModel | ValueModel[]): boolean => {\r\n const val = Array.isArray(value) ? value : [value];\r\n return conditions.some(s => val.some(v => v.sysName === s.field?.s));\r\n}\r\n","import { MenuAdminItem, MenuAdminModel } from '@myrtex-org/templates';\r\nimport { TemplateModel, SectionValueModel } from '../models';\r\nimport { SectionModel } from '../models/elemets';\r\nimport { getPercentForSection } from '../helpers';\r\n\r\n\r\nexport const getMenuModel = (\r\n apiPrefix: string,\r\n settings: TemplateModel | null,\r\n sectionValues: SectionValueModel[],\r\n applicationId: string\r\n): MenuAdminModel => {\r\n return {\r\n items: settings?.sections.map((section: SectionModel): MenuAdminItem => {\r\n return {\r\n title: section.options.title || '',\r\n routerLink: `/${apiPrefix}/${applicationId}/${section.sysName}`,\r\n type: 'default',\r\n params: {\r\n percent: getPercentForSection(section, sectionValues)\r\n }\r\n }\r\n }) || []\r\n }\r\n}\r\n\r\nexport const getPreviewMenuModel = (\r\n apiPrefix: string,\r\n settings: TemplateModel | null,\r\n templateSysName: string\r\n): MenuAdminModel => {\r\n return {\r\n items: settings?.sections.map((section: SectionModel): MenuAdminItem => {\r\n return {\r\n title: section.options.title || '',\r\n routerLink: `/${apiPrefix}/preview/${templateSysName}/${section.sysName}`,\r\n type: 'default'\r\n }\r\n }) || []\r\n }\r\n}\r\n","import { SectionModel } from '../models/elemets';\r\nimport { SectionValueModel } from '../models';\r\n\r\nexport const getPercentForSection = (section: SectionModel, sectionValues: SectionValueModel[]): number => {\r\n return sectionValues.find(s => s.sysName === section.sysName)?.percent || 0\r\n}\r\n","import { ComponentType } from '../../shared-form/enums';\r\nimport { ComponentValueModel, GroupValueModel, SectionValueModel, ValueModel } from '../models';\r\n\r\nexport const getUpdatedValues = (section: SectionValueModel, values: ValueModel[], valuesToReset: string[] = []): SectionValueModel => {\r\n return section.values ? { ...section, values: recursiveChangeValue(section.values, values, valuesToReset) } : section;\r\n}\r\n\r\nexport const recursiveChangeValue = (sectionValues: ValueModel[], values: ValueModel[], valuesToReset: string[]): ValueModel[] => {\r\n return sectionValues.map((v: ValueModel) => {\r\n const findValue = values.find(val => val.sysName === v.sysName);\r\n const valMustBeReseted = valuesToReset.some(x => x === v.sysName);\r\n\r\n if (findValue) {\r\n if(valMustBeReseted) {\r\n (<ComponentValueModel>findValue).value = null;\r\n }\r\n return findValue;\r\n } else {\r\n if (v.type === ComponentType.Group) {\r\n return { ...v, values: recursiveChangeValue((v as GroupValueModel).values || [], values, valuesToReset) };\r\n } else {\r\n return { ...v, value: valMustBeReseted ? null : (<ComponentValueModel>v)?.value };\r\n }\r\n }\r\n });\r\n}\r\n","import { ComponentModelBase } from '../../shared-form/models';\r\nimport { ComponentType } from '../../shared-form/enums';\r\nimport { ComponentValueModel, ValueModel } from '../models';\r\nimport { InputDateModel } from '../models/elemets/inputs';\r\n\r\nexport const defaultValueModel = (c: ComponentModelBase, defaultValue: any = '') => {\r\n return {sysName: c.sysName, type: c.type, valueType: c.valueType, value: defaultValue}\r\n}\r\n\r\nexport const getValueModel = (settings: ComponentModelBase, values: ValueModel[]) => {\r\n switch (settings.type) {\r\n case ComponentType.InputDate:\r\n const settingsCopy = settings as InputDateModel\r\n\r\n if (settingsCopy.options.range) {\r\n const modelStart = getValuesRecursive(settings.sysName + '_start', values)\r\n const modelEnd = getValuesRecursive(settings.sysName + '_end', values)\r\n\r\n return [modelStart, modelEnd]\r\n } else {\r\n return getValuesRecursive(settings.sysName, values)\r\n }\r\n default:\r\n return getValuesRecursive(settings.sysName, values)\r\n }\r\n}\r\n\r\nexport const getValuesRecursive = (sysName: string, values: ValueModel[]): ComponentValueModel | null => {\r\n const condition: any = values.find(m => m.sysName === sysName) || null\r\n\r\n if (!!condition) {\r\n return condition;\r\n }\r\n\r\n if (values.length) {\r\n for (let idx = 0; idx < values.length; idx++) {\r\n const model = values[idx];\r\n\r\n if ('values' in model) {\r\n const value = getValuesRecursive(sysName, model.values || []);\r\n\r\n if (!!value) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { ObjectFormState } from '../store';\r\nimport { OBJECT_ID_NAME, STATE_NAME } from '../constants';\r\nimport { ComponentModelBase } from '../../shared-form/models';\r\nimport { sharedSelectors } from '../../shared-form/store';\r\nimport { getValueModel } from '../helpers';\r\n\r\nconst objectFeature = createFeatureSelector<ObjectFormState>(STATE_NAME);\r\n\r\nexport const selectApiPrefix = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.apiPrefix\r\n);\r\n\r\nexport const selectApiUrl = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.apiUrl\r\n);\r\n\r\nexport const selectIsLoading = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.isLoading\r\n);\r\n\r\nexport const selectIsObjectSaveLoading = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.isObjectSaveLoading\r\n);\r\n\r\nexport const selectIsEdited = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.isEdited\r\n);\r\n\r\nexport const selectIsCheckRequired = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.isCheckRequired\r\n);\r\n\r\nexport const selectMenuModel = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.menuModel\r\n);\r\n\r\nexport const selectSectionSettings = createSelector(\r\n objectFeature,\r\n sharedSelectors.selectRouteNestedParam('sectionSysName'),\r\n (state: ObjectFormState, sectionSysName: string) => {\r\n return state?.settings?.sections.find(s => s.sysName === sectionSysName) || null\r\n }\r\n);\r\n\r\nexport const selectSectionValues = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.sectionValues\r\n);\r\n\r\nexport const selectObjectId = createSelector(\r\n sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME),\r\n (applicationId: string) => applicationId\r\n);\r\n\r\nexport const selectSectionFiles = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state.sectionFiles\r\n);\r\n\r\nexport const selectTemplateSysName = createSelector(\r\n objectFeature,\r\n (state: ObjectFormState) => state?.settings?.sysName\r\n);\r\n\r\nexport const selectValueModel = (settings: ComponentModelBase) => createSelector(\r\n objectFeature,\r\n (state) => getValueModel(settings, state.sectionValues)\r\n);\r\n\r\nexport const selectDependencyRulesResults = createSelector(\r\n objectFeature,\r\n state => state.dependencyRuleCheckResults\r\n)\r\n","import { FileModel } from '../../shared-form/models';\r\nimport { MenuAdminModel } from '@myrtex-org/templates';\r\nimport { TemplateModel } from '../models';\r\nimport { FieldDependencyCheckResultModel, SectionValueModel } from '../models';\r\n\r\nexport interface ObjectFormState {\r\n isLoading: boolean;\r\n isEdited: boolean;\r\n isCheckRequired: boolean;\r\n isObjectSaveLoading: boolean;\r\n settings: TemplateModel | null;\r\n selectedSectionSysName: string | null;\r\n sectionValues: SectionValueModel[];\r\n menuModel: MenuAdminModel;\r\n sectionFiles: FileModel[];\r\n dependencyRuleCheckResults: FieldDependencyCheckResultModel[];\r\n apiPrefix: string;\r\n apiUrl: string;\r\n}\r\n\r\nexport const initialObjectFormState: ObjectFormState = {\r\n isLoading: false,\r\n isEdited: false,\r\n isCheckRequired: false,\r\n isObjectSaveLoading: false,\r\n settings: null,\r\n selectedSectionSysName: null,\r\n sectionValues: [],\r\n menuModel: {\r\n items: []\r\n },\r\n sectionFiles: [],\r\n dependencyRuleCheckResults: [],\r\n apiPrefix: '',\r\n apiUrl: ''\r\n};\r\n","import { Action, createReducer, on } from '@ngrx/store';\r\nimport { ObjectFormState, objectFormActions } from '../store';\r\nimport { initialObjectFormState } from './object-form.state'\r\nimport * as fromHelpers from '../helpers';\r\nimport { FieldDependenceModel, SectionValueModel } from '../models';\r\n\r\nconst objectReducerCreator = createReducer(\r\n initialObjectFormState,\r\n on(objectFormActions.updateApiUrl, (state, {apiPrefix, apiUrl}) => {\r\n return {...state, apiPrefix, apiUrl};\r\n }),\r\n on(objectFormActions.loadObjectPending, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(\r\n objectFormActions.loadObjectSuccess,\r\n (state, {templateSettings, sectionValues, applicationId, isDraft}) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n settings: templateSettings,\r\n sectionValues: sectionValues,\r\n isEdited: isDraft,\r\n menuModel: fromHelpers.getMenuModel(state.apiPrefix, templateSettings, sectionValues, applicationId)\r\n };\r\n }\r\n ),\r\n on(objectFormActions.loadObjectError, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(objectFormActions.updateValues, (state, {value}) => {\r\n const dependenceRulesResults = fromHelpers.getDependenceRulesResults(\r\n state.dependencyRuleCheckResults,\r\n state.sectionValues,\r\n value,\r\n state.settings?.dependenceRules.rules\r\n );\r\n\r\n const selectedSectionValues = state.sectionValues.map((sectionValue: SectionValueModel) => {\r\n // пришлось отказаться от условия проверки выбранной секции,\r\n // т.к. зависимые поля могут находиться в других секциях, а их необходимо обнулять.\r\n return fromHelpers.getUpdatedValues(\r\n sectionValue,\r\n Array.isArray(value) ? value : [value],\r\n fromHelpers.getValuesToClean(dependenceRulesResults)\r\n );\r\n });\r\n\r\n return {\r\n ...state,\r\n sectionValues: selectedSectionValues,\r\n isEdited: true,\r\n dependencyRuleCheckResults: dependenceRulesResults\r\n };\r\n }),\r\n on(objectFormActions.saveValuesSuccess, (state, {result, objectId}) => {\r\n const updatedSectionValues = state.sectionValues.map((sectionValue: SectionValueModel) => {\r\n const section = {\r\n ...sectionValue,\r\n percent: result.fillness.find(x => x.name === sectionValue.sysName)?.percent || 0\r\n };\r\n return fromHelpers.getUpdatedValues(section, result.values);\r\n });\r\n\r\n return {\r\n ...state,\r\n sectionValues: updatedSectionValues,\r\n isEdited: true,\r\n menuModel: fromHelpers.getMenuModel(state.apiPrefix, state.settings, updatedSectionValues, objectId)\r\n };\r\n }),\r\n on(objectFormActions.saveValuesError, (state) => {\r\n return {...state};\r\n }),\r\n\r\n on(objectFormActions.saveObjectPending, (state) => {\r\n return {...state, isApplicationSaveLoading: true};\r\n }),\r\n on(objectFormActions.saveObjectSuccess, (state) => {\r\n return {...state, isApplicationSaveLoading: false, isEdited: false};\r\n }),\r\n on(objectFormActions.saveObjectError, (state) => {\r\n return {...state, isApplicationSaveLoading: false};\r\n }),\r\n on(objectFormActions.updateSelectedSectionSysName, (state, {sectionSysName}) => {\r\n return {...state, selectedSectionSysName: sectionSysName};\r\n }),\r\n on(objectFormActions.loadSectionFilesPending, (state) => {\r\n return {...state, sectionFiles: []};\r\n }),\r\n on(objectFormActions.loadSectionFilesSuccess, (state, {sectionFiles}) => {\r\n return {...state, sectionFiles: sectionFiles};\r\n }),\r\n on(objectFormActions.toggleCheckRequired, (state) => {\r\n return {...state, isCheckRequired: !state.isCheckRequired};\r\n }),\r\n on(objectFormActions.updateCheckRequired, (state, {isCheckRequired}) => {\r\n return {...state, isCheckRequired: isCheckRequired};\r\n }),\r\n on(objectFormActions.loadPreviewTemplatePending, (state) => {\r\n return {...state, isLoading: true};\r\n }),\r\n on(objectFormActions.loadPreviewTemplateSuccess, (state, {templateSettings, templateSysName}) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n settings: templateSettings,\r\n menuModel: fromHelpers.getPreviewMenuModel(state.apiPrefix, templateSettings, templateSysName)\r\n };\r\n }\r\n ),\r\n on(objectFormActions.loadPreviewTemplateError, (state) => {\r\n return {...state, isLoading: false};\r\n }),\r\n on(objectFormActions.checkAllDependencyRules, (state) => {\r\n\r\n const dependenceResults = state.settings?.dependenceRules.rules\r\n .map((rule: FieldDependenceModel) => (fromHelpers.checkDependenceRule(rule, state.sectionValues)))\r\n .flat() || [];\r\n\r\n return {...state, dependencyRuleCheckResults: dependenceResults};\r\n })\r\n);\r\n\r\nexport function objectReducer(state: ObjectFormState | undefined, action: Action) {\r\n return objectReducerCreator(state, action);\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders, HttpResponseBase } from '@angular/common/http';\r\nimport { ConcurrencyInfo } from '../models';\r\n\r\nconst tokenKey = 'Csy-Token';\r\nconst eTag = \"ETag\";\r\nconst ifMatch = \"If-Match\";\r\n\r\n@Injectable()\r\nexport class ConcurrencyStoreService {\r\n private _store: { [key: string]: ConcurrencyInfo } = {};\r\n\r\n get(key: string): ConcurrencyInfo | null {\r\n const info = this._store[key] as ConcurrencyInfo;\r\n if (!info) {\r\n return null;\r\n }\r\n return info;\r\n }\r\n\r\n set(key: string, info: ConcurrencyInfo): void {\r\n this._store[key] = info;\r\n }\r\n\r\n getHeaders(key: string): {\r\n headers: HttpHeaders | { [header: string]: string | string[] },\r\n observe: 'response'\r\n } {\r\n\r\n let headers = new HttpHeaders();\r\n if (key) {\r\n const info = this.get(key);\r\n if (info?.token) {\r\n headers = headers.append(tokenKey, info.token);\r\n }\r\n if (info?.eTag) {\r\n headers = headers.append(ifMatch, info.eTag);\r\n }\r\n }\r\n return { headers: headers, observe: 'response' };\r\n }\r\n\r\n appendHeaders(key: string, headers: HttpHeaders): HttpHeaders {\r\n if (key) {\r\n const info = this.get(key);\r\n if (info?.token) {\r\n headers = headers.set(tokenKey, info.token);\r\n }\r\n if (info?.eTag) {\r\n headers = headers.set(ifMatch, info.eTag);\r\n }\r\n }\r\n return headers;\r\n }\r\n\r\n fromHeaders(key: string, response: HttpResponseBase): void {\r\n if (key) {\r\n const info : ConcurrencyInfo = {\r\n token: response.headers.get(tokenKey),\r\n eTag: response.headers.get(eTag)\r\n };\r\n if (info.token || info.eTag) {\r\n this.set(key, info);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { FileModel } from '../../shared-form/models';\r\nimport { ConcurrencyStoreService } from '../../shared-form/services';\r\nimport { ObjectValuesDto, SectionValueModel, UpdateValueResult, TemplateModel } from '../models';\r\n\r\n@Injectable()\r\nexport class ObjectFormService {\r\n private _http: HttpClient = inject(HttpClient)\r\n private _concurrencyService: ConcurrencyStoreService = inject(ConcurrencyStoreService)\r\n\r\n private _apiUrl: string = ''\r\n\r\n private _concurrencyKey: string = 'application-values';\r\n\r\n public get apiUrl(): string {\r\n return this._apiUrl;\r\n }\r\n\r\n public updateApiUrl(apiUrl: string): void {\r\n this._apiUrl = apiUrl\r\n }\r\n\r\n public getTemplate(objectId: string): Observable<{ templateSysName: string }> {\r\n return this._http.get<{ templateSysName: string }>(`${this.apiUrl}/${objectId}/params`);\r\n }\r\n\r\n public getSectionValues( applicationId: string): Observable<ObjectValuesDto> {\r\n return this._http\r\n .get<ObjectValuesDto>(`${this.apiUrl}/${applicationId}`, this.getHeaders())\r\n .pipe(map(this.mapResult.bind(this)));\r\n }\r\n\r\n public getTemplateSettings(templateSysName: string): Observable<TemplateModel> {\r\n return this._http.get<TemplateModel>(`${this.apiUrl}/template/settings/${templateSysName}`);\r\n }\r\n\r\n public updateApplicationValues(applicationId: string, sectionValues: SectionValueModel[]): Observable<UpdateValueResult> {\r\n return this._http\r\n .put<UpdateValueResult>(`${this.apiUrl}/${applicationId}`, {sectionValues}, this.getHeaders())\r\n .pipe(map(this.mapResult.bind(this)));\r\n }\r\n\r\n public saveApplication(applicationId: string): Observable<void> {\r\n return this._http\r\n .post<void>(`${this.apiUrl}/${applicationId}/save`, null, this.getHeaders())\r\n .pipe(map(this.mapResult.bind(this)));\r\n }\r\n\r\n public copyApplication(copyCommand: { sourceId: string, targetTemplateSysName: string }): Observable<{ id: string }> {\r\n return this._http.post<{ id: string }>(`${this.apiUrl}/copy`, copyCommand);\r\n }\r\n\r\n public getSectionFiles(applicationId: string, sectionSysName: string): Observable<FileModel[]> {\r\n return this._http\r\n .get<FileModel[]>(`${this.apiUrl}/${applicationId}/${sectionSysName}/files`, this.getHeaders())\r\n .pipe(map(this.mapResult.bind(this)));\r\n }\r\n\r\n private getHeaders(): {\r\n headers: HttpHeaders | { [header: string]: string | string[] },\r\n observe: 'response'\r\n } {\r\n return this._concurrencyService.getHeaders(this._concurrencyKey);\r\n }\r\n\r\n private mapResult<T>(resp: HttpResponse<T>) {\r\n this._concurrencyService.fromHeaders(this._concurrencyKey, resp);\r\n return resp.body!;\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { catchError, debounceTime, distinctUntilChanged, map, switchMap, tap, withLatestFrom } from 'rxjs/operators';\r\nimport { Store } from '@ngrx/store';\r\nimport { Router } from '@angular/router';\r\nimport { forkJoin, Observable, of } from 'rxjs';\r\nimport { ObjectFormService } from '../services';\r\nimport { objectFormActions, objectFormSelectors, EApplicationActions } from '../store';\r\nimport { TemplateModel } from '../models';\r\nimport { ObjectValuesDto, ValueModel } from '../models';\r\nimport { AutoSaveStore, ToasterService, ToasterType } from '@myrtex-org/ui';\r\nimport { ComponentModelBase, FileModel } from '../../shared-form/models';\r\nimport { sharedSelectors } from '../../shared-form/store';\r\nimport { OBJECT_ID_NAME, SECTION_SYS_NAME_NAME, TEMPLATE_SYS_NAME_NAME } from '../constants';\r\nimport { selectApiPrefix, selectApiUrl } from './object-form.selector';\r\n\r\n@Injectable()\r\nexport class ObjectFormEffects {\r\n private _autoSaveStore = inject(AutoSaveStore);\r\n\r\n constructor(\r\n private _actions$: Actions,\r\n private _store: Store,\r\n private _router: Router,\r\n private _applicationService: ObjectFormService,\r\n private _toasterService: ToasterService\r\n ) {\r\n }\r\n\r\n updateApiUrl$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.UpdateApiUrl),\r\n map((props: { apiPrefix: string, apiUrl: string }) => ({apiPrefix: props.apiPrefix, apiUrl: props.apiUrl})),\r\n distinctUntilChanged(),\r\n tap(({apiPrefix, apiUrl}) => {\r\n if (apiUrl) {\r\n this._applicationService.updateApiUrl(apiUrl)\r\n }\r\n\r\n this._store.dispatch(objectFormActions.loadTemplatePending());\r\n })\r\n ), {dispatch: false});\r\n\r\n loadTemplatePending$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.LoadTemplatePending),\r\n withLatestFrom(\r\n this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)),\r\n this._store.select(sharedSelectors.selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME)),\r\n ),\r\n switchMap(([_, objectId, templateSysName]) => {\r\n if (objectId) {\r\n return this._applicationService.getTemplate(objectId).pipe(\r\n switchMap(({templateSysName}) => ([\r\n objectFormActions.loadTemplateSuccess({templateSysName}),\r\n objectFormActions.loadObjectPending({templateSysName})\r\n ])),\r\n catchError(() => {\r\n return of(objectFormActions.loadTemplateError());\r\n })\r\n );\r\n } else {\r\n return of(objectFormActions.loadPreviewTemplatePending({templateSysName}));\r\n }\r\n }))\r\n );\r\n\r\n loadPreviewTemplatePending = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.LoadPreviewTemplatePending),\r\n map((props: { templateSysName: string }) => props.templateSysName),\r\n withLatestFrom(\r\n this._store.select(objectFormSelectors.selectApiPrefix),\r\n this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME)),\r\n ),\r\n switchMap(([templateSysName, apiPrefix, sectionSysName]) => {\r\n return this._applicationService.getTemplateSettings(templateSysName).pipe(\r\n map((templateSettings) => {\r\n const activeSection = templateSettings.sections.find(\r\n (s: ComponentModelBase) => s.sysName === sectionSysName\r\n );\r\n\r\n if (!activeSection && templateSettings.sections.length) {\r\n this._router.navigate([\r\n `/${apiPrefix}/preview/${templateSysName}/${templateSettings.sections[0].sysName}`\r\n ]);\r\n }\r\n\r\n return objectFormActions.loadPreviewTemplateSuccess({templateSettings, templateSysName});\r\n }),\r\n catchError((error) => {\r\n return of(objectFormActions.loadPreviewTemplateError());\r\n })\r\n );\r\n }))\r\n );\r\n\r\n loadApplicationPending$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.LoadObjectPending),\r\n map((props: { templateSysName: string }) => props.templateSysName),\r\n withLatestFrom(\r\n this._store.select(objectFormSelectors.selectApiPrefix),\r\n this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)),\r\n this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME)),\r\n ),\r\n switchMap(([templateSysName, apiPrefix, objectId, sectionSysName]) => {\r\n const requests: [Observable<TemplateModel>, Observable<ObjectValuesDto>] = [\r\n this._applicationService.getTemplateSettings(templateSysName),\r\n this._applicationService.getSectionValues(objectId)\r\n ];\r\n\r\n return forkJoin(requests).pipe(\r\n switchMap(([templateSettings, valueDto]) => {\r\n const activeSection = templateSettings.sections.find(\r\n (s: ComponentModelBase) => s.sysName === sectionSysName\r\n );\r\n\r\n if (!activeSection && templateSettings.sections.length) {\r\n this._router.navigate([`/${apiPrefix}/${objectId}/${templateSettings.sections[0].sysName}`]);\r\n }\r\n\r\n return [\r\n objectFormActions.loadObjectSuccess({\r\n templateSettings: templateSettings,\r\n sectionValues: valueDto.value.sectionValues,\r\n applicationId: objectId,\r\n isDraft: valueDto.isDraft\r\n }),\r\n objectFormActions.checkAllDependencyRules()\r\n ];\r\n }),\r\n catchError(() => {\r\n return of(objectFormActions.loadObjectError());\r\n })\r\n );\r\n }))\r\n );\r\n\r\n checkCanUpdateValues$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.UpdateValues),\r\n map((props: { value: ValueModel | ValueModel[] }) => props.value),\r\n distinctUntilChanged(),\r\n withLatestFrom(\r\n this._store.select(sharedSelectors.selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME)),\r\n ),\r\n tap(([_, templateSysName]) => {\r\n if (templateSysName) {\r\n return;\r\n }\r\n\r\n this._store.dispatch(objectFormActions.accessUpdateValues());\r\n })\r\n ), {dispatch: false});\r\n\r\n saveValuesDebounced$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.AccessUpdateValues),\r\n distinctUntilChanged(),\r\n debounceTime(1500),\r\n tap(() => {\r\n this._autoSaveStore.start();\r\n this._store.dispatch(objectFormActions.saveValuesPending());\r\n })\r\n ), {dispatch: false});\r\n\r\n updateApplicationValues$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.SaveValuesPending),\r\n withLatestFrom(\r\n this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)),\r\n this._store.select(objectFormSelectors.selectSectionValues),\r\n ),\r\n switchMap(([_, objectId, sectionValues]) => {\r\n return this._applicationService.updateApplicationValues(objectId, sectionValues).pipe(\r\n map((result) => {\r\n this._autoSaveStore.success();\r\n return objectFormActions.saveValuesSuccess({result, objectId});\r\n }),\r\n catchError((error) => {\r\n this._autoSaveStore.error();\r\n return of(objectFormActions.saveValuesError());\r\n })\r\n );\r\n }))\r\n );\r\n\r\n saveApplicationPending$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.SaveObjectPending),\r\n withLatestFrom(\r\n this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME))\r\n ),\r\n switchMap(([_, objectId]) => {\r\n return this._applicationService.saveApplication(objectId).pipe(\r\n map(() => {\r\n this._toasterService.show({\r\n title: 'Сохранено успешно',\r\n type: ToasterType.Positive\r\n });\r\n\r\n return objectFormActions.saveObjectSuccess();\r\n }),\r\n catchError(() => {\r\n this._toasterService.show({\r\n title: 'Возникли ошибки при сохранении, повторите',\r\n type: ToasterType.Negative\r\n });\r\n\r\n return of(objectFormActions.saveObjectError());\r\n })\r\n );\r\n }))\r\n );\r\n\r\n copyApplicationPending$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.CopyObjectPending),\r\n map((action: { sourceId: string, targetTemplateSysName: string }) => action),\r\n withLatestFrom(\r\n this._store.select(objectFormSelectors.selectApiPrefix),\r\n ),\r\n switchMap(([action, apiPrefix]) => {\r\n return this._applicationService.copyApplication(action).pipe(\r\n map((result) => {\r\n this._toasterService.show({\r\n title: 'Копировнаие прошло успешно',\r\n type: ToasterType.Positive\r\n });\r\n\r\n window.open(`/${apiPrefix}` + result.id, '_blank');\r\n\r\n return objectFormActions.copyObjectSuccess();\r\n }),\r\n catchError(() => {\r\n this._toasterService.show({\r\n title: 'Возникли ошибки при копировании заявки, повторите',\r\n type: ToasterType.Negative\r\n });\r\n\r\n return of(objectFormActions.copyObjectError());\r\n })\r\n );\r\n })), {dispatch: false});\r\n\r\n loadSectionFilesPending$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.LoadSectionFilesPending),\r\n withLatestFrom(\r\n this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)),\r\n this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME)),\r\n ),\r\n switchMap(([_, objectId, sectionSysName]) => {\r\n return this._applicationService.getSectionFiles(objectId, sectionSysName).pipe(\r\n map((sectionFiles: FileModel[]) => {\r\n return objectFormActions.loadSectionFilesSuccess({sectionFiles: sectionFiles});\r\n }),\r\n catchError(() => {\r\n return of(objectFormActions.loadSectionFilesError());\r\n })\r\n );\r\n }))\r\n );\r\n\r\n printDocument$ = createEffect(() => this._actions$.pipe(\r\n ofType(EApplicationActions.PrintDocument),\r\n withLatestFrom(\r\n this._store.select(objectFormSelectors.selectApiUrl),\r\n this._store.select(sharedSelectors.selectRouteNestedParam(OBJECT_ID_NAME)),\r\n ),\r\n tap(([_, apiUrl, objectId]) => {\r\n console.log('печать документа ' + objectId);\r\n\r\n window.open(`${apiUrl}/${objectId}/print`, '_blank');\r\n })\r\n ), {dispatch: false});\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { withLatestFrom } from 'rxjs/operators';\r\nimport { MenuAdminItem, MenuAdminModel } from '@myrtex-org/templates';\r\nimport { sharedSelectors } from '../shared-form/store';\r\nimport { objectFormActions, objectFormSelectors } from './store';\r\nimport { SECTION_SYS_NAME_NAME, TEMPLATE_SYS_NAME_NAME } from './constants';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n\r\n@Component({\r\n selector: 'app-object-form',\r\n templateUrl: './object-form.component.html',\r\n styleUrls: ['./object-form.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ObjectFormComponent implements OnInit, OnDestroy {\r\n private _store: Store = inject(Store);\r\n private _route: ActivatedRoute = inject(ActivatedRoute)\r\n\r\n private _subscriptions$: Subscription[] = [];\r\n\r\n isLoading$: Observable<boolean> = this._store.select(objectFormSelectors.selectIsLoading);\r\n menuModel$: Observable<MenuAdminModel> = this._store.select(objectFormSelectors.selectMenuModel);\r\n\r\n ngOnInit(): void {\r\n this._subscriptions$.push(\r\n this._route.data.subscribe(data => {\r\n const apiPrefix = data['apiPrefix'];\r\n const apiUrl = data['apiUrl'];\r\n\r\n this._store.dispatch(objectFormActions.updateApiUrl({apiPrefix, apiUrl}));\r\n }),\r\n\r\n this._store.select(sharedSelectors.selectRouteNestedParam(SECTION_SYS_NAME_NAME)).pipe(\r\n withLatestFrom(\r\n this._store.select(sharedSelectors.selectRouteNestedParam(TEMPLATE_SYS_NAME_NAME)),\r\n )\r\n ).subscribe(([sectionSysName, templateSysName]) => {\r\n this._store.dispatch(objectFormActions.updateSelectedSectionSysName({sectionSysName}));\r\n\r\n if (sectionSysName && !templateSysName) {\r\n this._store.dispatch(objectFormActions.loadSectionFilesPending());\r\n }\r\n }),\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions$.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n showProgress(item: MenuAdminItem): boolean {\r\n return !!(item?.params?.['percent'] || item?.params?.['percent'] === 0);\r\n }\r\n\r\n getDashArray(item: MenuAdminItem): number {\r\n return 57 / 100 * item?.params?.['percent'] + 60;\r\n }\r\n}\r\n","@if (!(isLoading$ | async)) {\r\n <div class=\"object-form__sidebar\">\r\n @if ((menuModel$ | async)?.items?.length) {\r\n <mrx-menu-admin [model]=\"(menuModel$ | async) || {}\">\r\n <ng-template #viewLinkTemplate let-menuItem=\"menuItem\">\r\n <div class=\"object-form__sidebar__link\">\r\n @if (showProgress(menuItem)) {\r\n <div class=\"progress-bar\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle class=\"progress-bar__circle\" cx=\"12\" cy=\"12\" r=\"9\" stroke-width=\"2\" stroke=\"#DBDFE5\"/>\r\n\r\n <circle\r\n class=\"progress-bar__filler\"\r\n [class.progress-bar__filler_full]=\"menuItem.params?.['percent'] === 100\"\r\n cx=\"12\" cy=\"12\" r=\"9\"\r\n stroke-width=\"2\"\r\n [attr.stroke-dasharray]=\"getDashArray(menuItem)\"\r\n stroke-dashoffset=\"60\"\r\n />\r\n </svg>\r\n\r\n @if (menuItem.params?.['percent'] === 100) {\r\n <div class=\"mrx-icon icon-check icon-font-16 icon-color-green progress-bar__icon text-bold\"></div>\r\n }\r\n </div>\r\n }\r\n\r\n <span>{{ menuItem.title }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n </mrx-menu-admin>\r\n }\r\n </div>\r\n\r\n <div class=\"object-form__content\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n} @else {\r\n <div class=\"d-flex justify-content-center align-items-center h-100 w-100\">\r\n <mrx-loader [size]=\"'large'\" [color]=\"'brand'\"></mrx-loader>\r\n </div>\r\n}\r\n","import {\r\n ComponentRef,\r\n Directive, EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n Type,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { ComponentType } from '../../../shared-form/enums';\r\nimport { ComponentModelBase } from '../../../shared-form/models';\r\nimport { ComponentsMapType } from './enums/component.enum';\r\nimport { AbstractComponent } from './models/component.model';\r\nimport { ComponentValueModel, ValueModel } from '../../models';\r\n\r\n@Directive({\r\n selector: '[appComponentFactory]',\r\n standalone: true\r\n})\r\nexport class ComponentFactoryDirective implements OnChanges {\r\n @Input() type?: ComponentType;\r\n @Input() data?: ComponentModelBase;\r\n @Input() values: ValueModel[] = [];\r\n @Input() valueMode?: 'auto' | 'manual';\r\n @Input() map!: ComponentsMapType;\r\n\r\n @Output() public changed = new EventEmitter<ComponentValueModel | ComponentValueModel[]>();\r\n\r\n dynamicComponent?: ComponentRef<AbstractComponent>;\r\n\r\n constructor(private viewContainer: ViewContainerRef,) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if ('type' in changes && this.type && changes['type'].previousValue !== changes['type'].currentValue) {\r\n this.initWidget(this.type);\r\n }\r\n if ('data' in changes && this.data) {\r\n this.applyData(this.data);\r\n }\r\n\r\n if ('valueMode' in changes && this.data && this.valueMode) {\r\n this.applyValueMode(this.valueMode);\r\n }\r\n\r\n if ('values' in changes && this.data) {\r\n this.applyValues(this.values);\r\n }\r\n }\r\n\r\n initWidget(type: ComponentType) {\r\n const componentType: Type<AbstractComponent> = this.map[type];\r\n\r\n if (!componentType) {\r\n return;\r\n }\r\n\r\n if (this.dynamicComponent) {\r\n this.viewContainer.clear();\r\n this.dynamicComponent = undefined;\r\n }\r\n\r\n this.dynamicComponent = this.viewContainer.createComponent(componentType);\r\n\r\n if (this.data) {\r\n this.dynamicComponent.instance.data = this.data;\r\n }\r\n\r\n if (this.dynamicComponent.instance.changed) {\r\n this.dynamicComponent.instance.changed.subscribe((res: | ComponentValueModel | ComponentValueModel[]) => {\r\n this.changed.emit(res);\r\n });\r\n }\r\n }\r\n\r\n applyData(data: ComponentModelBase) {\r\n if (this.dynamicComponent) {\r\n this.dynamicComponent.instance.data = data;\r\n }\r\n }\r\n\r\n applyValues(values: ValueModel[]) {\r\n if (this.dynamicComponent) {\r\n this.dynamicComponent.instance.values = values;\r\n }\r\n }\r\n\r\n applyValueMode(valueMode: 'auto' | 'manual') {\r\n if (this.dynamicComponent) {\r\n this.dynamicComponent.instance.valueMode = valueMode;\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, inject, Injectable, Input, OnInit } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { ComponentModelBase } from '../../../../../shared-form/models';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { Observable } from 'rxjs';\r\nimport { ComponentValueModel, SectionValueModel } from '../../../../models';\r\nimport { defaultValueModel, getValueModel } from '../../../../helpers';\r\nimport { objectFormSelectors } from '../../../../store';\r\n\r\n@Injectable()\r\nexport abstract class BaseElementComponent<TModel extends ComponentModelBase> implements OnInit {\r\n private _store: Store = inject(Store)\r\n private _detector: ChangeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n public applicationId$: Observable<string> = this._store.select(objectFormSelectors.selectObjectId);\r\n\r\n public settings!: TModel;\r\n public model!: ComponentValueModel;\r\n\r\n @Input() values: SectionValueModel[] = []\r\n\r\n @Input() set data(settings: ComponentModelBase) {\r\n this.settings = settings as TModel;\r\n this.model = defaultValueModel(this.settings);\r\n this._detector.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n this._initModel()\r\n }\r\n\r\n private _initModel() {\r\n this.model = cloneDeep(getValueModel(this.settings, this.values) as ComponentValueModel) || defaultValueModel(this.settings)\r\n }\r\n}\r\n","import { ChangeDetectorRef, EventEmitter, inject, Injectable, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { ValueType } from '../../../../../shared-form/enums';\r\nimport { ComponentModelBase } from '../../../../../shared-form/models';\r\nimport { AutoSaveStore, Field } from '@myrtex-org/ui';\r\nimport { ComponentValueModel, ValueModel } from '../../../../models';\r\nimport { defaultValueModel, getValueModel } from '../../../../helpers';\r\nimport { objectFormActions, objectFormSelectors } from '../../../../store';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport abstract class BaseFieldComponent<TModel extends ComponentModelBase, TOutputEvent extends {\r\n id: string,\r\n value: any\r\n}> implements OnInit, OnDestroy {\r\n protected _store: Store = inject(Store);\r\n protected _detector: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n protected _subscriptions$: Subscription[] = [];\r\n private _changeSubject$: Subject<ComponentValueModel | ComponentValueModel[]> = new Subject<ComponentValueModel | ComponentValueModel[]>();\r\n\r\n private _autoSaveStore = inject(AutoSaveStore);\r\n private _isCheckRequired: boolean = false;\r\n\r\n public model!: ComponentValueModel;\r\n public settings!: TModel;\r\n public manualValues: ValueModel[] = [];\r\n\r\n @Input() set values(value: ValueModel[]) {\r\n if (this.valueMode === 'manual') {\r\n this.manualValues = value;\r\n }\r\n }\r\n\r\n @Input() valueMode: 'auto' | 'manual' = 'auto';\r\n\r\n @Input() set data(settings: ComponentModelBase) {\r\n this.settings = settings as TModel;\r\n\r\n this._customInit();\r\n\r\n this._detector.detectChanges();\r\n }\r\n\r\n @Output() public changed = new EventEmitter<ComponentValueModel | ComponentValueModel[]>();\r\n\r\n ngOnInit(): void {\r\n this._initModel();\r\n\r\n this._changeSubject$\r\n .pipe(debounceTime(500))\r\n .subscribe(model => {\r\n if (this._customValidate(this.model)) {\r\n this.changed.emit(this._transformOutputValue());\r\n }\r\n });\r\n\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectIsCheckRequired)\r\n .subscribe(result => {\r\n this._isCheckRequired = result;\r\n this._detector.detectChanges();\r\n }));\r\n\r\n if (this.valueMode === 'auto') {\r\n this._initSubscriptionForValue();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions$.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n get autosaveFields(): Field[] {\r\n return this._autoSaveStore.fields();\r\n }\r\n\r\n get getInvalid(): boolean {\r\n if (this._isCheckRequired) {\r\n return this.settings.options.required && !this._requiredValidate(this.model.valueType);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n get getInvalidMessage(): string {\r\n if (this._isCheckRequired) {\r\n return 'Поле обязательно для заполнения';\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n private _requiredValidate(type: ValueType) {\r\n switch (type) {\r\n case (ValueType.String):\r\n case (ValueType.DateTime):\r\n return !!this.model.value?.trim();\r\n case (ValueType.Decimal):\r\n return !!this.model.value;\r\n case (ValueType.Boolean):\r\n return !!this.model.value;\r\n case (ValueType.StringArray):\r\n case (ValueType.GuidArray):\r\n return !!this.model.value?.length;\r\n default:\r\n return true;\r\n }\r\n }\r\n\r\n protected _initSubscriptionForValue() {\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectValueModel(this.settings))\r\n .subscribe((result: ComponentValueModel | null | (ComponentValueModel | null)[]) => {\r\n if (result) {\r\n if (!Array.isArray(result)) {\r\n this.model.value = result.value;\r\n\r\n this._customInit();\r\n }\r\n }\r\n }));\r\n }\r\n\r\n protected _updateValue() {\r\n this._changeSubject$.next(this._transformOutputValue());\r\n }\r\n\r\n protected _transformOutputValue(): ComponentValueModel | ComponentValueModel[] {\r\n return cloneDeep(this.model);\r\n }\r\n\r\n protected _customModelModify(event: TOutputEvent) {\r\n }\r\n\r\n protected _customInit() {\r\n this.model = this.model || defaultValueModel(this.settings);\r\n }\r\n\r\n protected _customValidate(model: ComponentValueModel) {\r\n return true;\r\n }\r\n\r\n protected _initModel() {\r\n if (this.valueMode === 'manual') {\r\n this.model = cloneDeep(getValueModel(this.settings, this.manualValues) as ComponentValueModel) || defaultValueModel(this.settings);\r\n } else {\r\n this.model = defaultValueModel(this.settings);\r\n }\r\n }\r\n\r\n dispatchModify(event: TOutputEvent) {\r\n this._autoSaveStore.addId(event.id);\r\n\r\n this._customModelModify(event);\r\n\r\n setTimeout(() => this._updateValue());\r\n\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputTextModel } from '../../../../models/elemets/inputs';\r\nimport { InputTextValueWithId } from '@myrtex-org/ui';\r\nimport { ComponentValueModel } from '../../../../models';\r\n\r\n@Component({\r\n selector: 'app-input-text',\r\n templateUrl: './input-text.component.html',\r\n styleUrls: ['./input-text.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputTextComponent extends BaseFieldComponent<InputTextModel, InputTextValueWithId> implements OnInit, OnDestroy {\r\n type = ComponentType.InputText;\r\n\r\n public validateValue = ''\r\n\r\n public onChangeInput() {\r\n this.validateValue = this.model.value\r\n }\r\n\r\n override _customValidate(model: ComponentValueModel) {\r\n this.validateValue = model.value\r\n\r\n this._detector.markForCheck()\r\n\r\n return !(this.settings.options.minLength && model.value && this.settings.options.minLength > model.value.length);\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-text-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-text\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [readonly]=\"false\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [mask]=\"settings.options.mask || ''\"\r\n [showMaskTyped]=\"true\"\r\n [minlength]=\"settings.options.minLength || 0\"\r\n [maxlength]=\"settings.options.maxLength || 0\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n (change)=\"onChangeInput()\"\r\n ></mrx-input-text>\r\n\r\n @if (settings.options.minLength) {\r\n <mrx-hint-error-message\r\n message=\"Минимальное количетсво символов — {{ settings.options.minLength }}\"\r\n [value]=\"validateValue\"\r\n [minLength]=\"settings.options.minLength\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputTextareaModel } from '../../../../models/elemets/inputs';\r\nimport { InputEditorValueWithId, InputTextareaValueWithId } from '@myrtex-org/ui';\r\nimport { defaultValueModel } from '../../../../helpers';\r\nimport { ComponentValueModel } from '../../../../models';\r\n\r\n@Component({\r\n selector: 'app-input-textarea',\r\n templateUrl: './input-textarea.component.html',\r\n styleUrls: ['./input-textarea.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputTextareaComponent\r\n extends BaseFieldComponent<InputTextareaModel, InputEditorValueWithId | InputTextareaValueWithId>\r\n implements OnInit\r\n{\r\n type = ComponentType.InputTextarea;\r\n\r\n public validateValue = ''\r\n\r\n public config: any = {\r\n buttons: []\r\n };\r\n\r\n override _customInit() {\r\n this.model = this.model || defaultValueModel(this.settings);\r\n\r\n this.config = {\r\n buttons: [\r\n ...this.settings?.options.textType ? ['paragraph'] : [],\r\n ...this.settings?.options.textFamily ? ['font'] : [],\r\n ...this.settings?.options.textSize ? ['fontsize'] : [],\r\n ...this.settings?.options.textColor ? ['brush'] : [],\r\n ...this.settings?.options.textStyle ? ['bold', 'italic', 'underline', 'strikethrough'] : [],\r\n ...this.settings?.options.textAlign ? [{name: 'left', list: ['left', 'right', 'center', 'justify']}] : [],\r\n ...this.settings?.options.textHeight ? ['lineHeight'] : [],\r\n ...this.settings?.options.textMargin ? ['indent', 'outdent'] : [],\r\n ...this.settings?.options.textList ? ['ol', 'ul'] : [],\r\n ...this.settings?.options.textLink ? ['link'] : [],\r\n // ...this.model.options.textQuote ? ['blockquote'] : [],\r\n ...this.settings?.options.textImage ? ['image'] : [],\r\n ...this.settings?.options.textTable ? ['table'] : [],\r\n ...this.settings?.options.textVideo ? ['video'] : [],\r\n ...this.settings?.options.textSource ? ['source'] : [],\r\n ]\r\n };\r\n }\r\n\r\n public onChangeInput() {\r\n this.validateValue = this.model.value\r\n }\r\n\r\n override _customValidate(model: ComponentValueModel) {\r\n this.validateValue = model.value\r\n\r\n this._detector.markForCheck()\r\n\r\n return !(this.settings.options.minLength && model.value && this.settings.options.minLength > model.value.length);\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-textarea-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n @if (!settings.options.editor) {\r\n <mrx-input-textarea\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [rows]=\"2\"\r\n [autosize]=\"true\"\r\n [readonly]=\"false\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [mask]=\"settings.options.mask || ''\"\r\n [minlength]=\"settings.options.minLength || 0\"\r\n [maxlength]=\"settings.options.maxLength || 0\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n\r\n ></mrx-input-textarea>\r\n } @else {\r\n <mrx-editor\r\n [(ngModel)]=\"model.value\"\r\n [readonly]=\"false\"\r\n [fields]=\"autosaveFields\"\r\n [toolbar]=\"config\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n (change)=\"onChangeInput()\"\r\n ></mrx-editor>\r\n }\r\n\r\n @if (settings.options.minLength) {\r\n <mrx-hint-error-message\r\n message=\"Минимальное количетсво символов — {{ settings.options.minLength }}\"\r\n [value]=\"validateValue\"\r\n [minLength]=\"settings.options.minLength\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputLinkModel } from '../../../../models/elemets/inputs';\r\nimport { InputTextValueWithId } from '@myrtex-org/ui';\r\n\r\n@Component({\r\n selector: 'app-input-link',\r\n templateUrl: './input-link.component.html',\r\n styleUrls: ['./input-link.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputLinkComponent extends BaseFieldComponent<InputLinkModel, InputTextValueWithId> implements OnInit {\r\n type = ComponentType.InputLink;\r\n}\r\n","@if (settings) {\r\n <div class=\"input-link-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-text\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [readonly]=\"false\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [showMaskTyped]=\"true\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n ></mrx-input-text>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputSwitchModel } from '../../../../models/elemets/inputs';\r\nimport { SwitchValueWithId } from '@myrtex-org/ui';\r\n\r\n@Component({\r\n selector: 'app-input-switch',\r\n templateUrl: './input-switch.component.html',\r\n styleUrls: ['./input-switch.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputSwitchComponent extends BaseFieldComponent<InputSwitchModel, SwitchValueWithId> implements OnInit {\r\n type = ComponentType.InputText;\r\n}\r\n","@if (settings) {\r\n <div class=\"input-switch-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n @switch (settings.options.switchType) {\r\n @case (0) {\r\n <mrx-switch\r\n [(ngModel)]=\"model.value\"\r\n [size]=\"'large'\"\r\n [label]=\"settings.options.switchText\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n ></mrx-switch>\r\n }\r\n @case (1) {\r\n <mrx-checkbox\r\n [(ngModel)]=\"model.value\"\r\n [invalid]=\"getInvalid\"\r\n [label]=\"settings.options.switchText\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n ></mrx-checkbox>\r\n }\r\n }\r\n\r\n @if (getInvalid) {\r\n <mrx-error-message>{{ getInvalidMessage }}</mrx-error-message>\r\n }\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType, InputState } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputNumberModel } from '../../../../models/elemets/inputs';\r\nimport { InputNumberValueWithId } from '@myrtex-org/ui';\r\nimport { ComponentValueModel } from '../../../../models';\r\n\r\n@Component({\r\n selector: 'app-input-number',\r\n templateUrl: './input-number.component.html',\r\n styleUrls: ['./input-number.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputNumberComponent extends BaseFieldComponent<InputNumberModel, InputNumberValueWithId> implements OnInit {\r\n type = ComponentType.InputNumber;\r\n\r\n public validateValue = 0\r\n\r\n public get isReadonly(): boolean {\r\n return this.settings.options.inputState === InputState.Formula;\r\n }\r\n\r\n public onChangeInput() {\r\n this.validateValue = this.model.value\r\n }\r\n\r\n override _customValidate(model: ComponentValueModel) {\r\n this.validateValue = model.value\r\n\r\n this._detector.markForCheck()\r\n\r\n return !(\r\n this.settings.options.minValue && model.value && this.settings.options.minValue > model.value ||\r\n this.settings.options.maxValue && model.value && this.settings.options.maxValue < model.value\r\n );\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-number-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-number\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [readonly]=\"isReadonly\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n (change)=\"onChangeInput()\"\r\n ></mrx-input-number>\r\n\r\n @if (settings.options.minValue) {\r\n <mrx-hint-error-message\r\n message=\"Минимальное значение — {{ settings.options.minValue }}\"\r\n [value]=\"validateValue\"\r\n [minValue]=\"settings.options.minValue\"\r\n ></mrx-hint-error-message>\r\n }\r\n @if (settings.options.maxValue) {\r\n <mrx-hint-error-message\r\n message=\"Максимальное значение — {{ settings.options.maxValue }}\"\r\n [value]=\"validateValue\"\r\n [maxValue]=\"settings.options.maxValue\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { SelectListItem } from '../../../../../shared-form/models';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputSelectModel } from '../../../../models/elemets/inputs';\r\nimport { InputSelectValueTypes, InputSelectValueWithId } from '@myrtex-org/ui';\r\nimport { defaultValueModel } from '../../../../helpers';\r\n\r\n@Component({\r\n selector: 'app-input-select',\r\n templateUrl: './input-select.component.html',\r\n styleUrls: ['./input-select.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputSelectComponent\r\n extends BaseFieldComponent<InputSelectModel, InputSelectValueWithId>\r\n implements OnInit {\r\n type = ComponentType.InputSelect;\r\n\r\n public value!: SelectListItem<string> | SelectListItem<string>[] | null;\r\n\r\n public updateValue(event: InputSelectValueWithId) {\r\n if (!this.settings.options.multiply) {\r\n this.model.value = event.value ? [event.value] : null;\r\n } else {\r\n this.model.value = event.value;\r\n }\r\n\r\n this.dispatchModify(event);\r\n }\r\n\r\n override _customInit() {\r\n this.model = this.model || defaultValueModel(this.settings);\r\n\r\n if (!this.settings.options.multiply) {\r\n this.value = this.model.value?.[0] || null;\r\n } else {\r\n this.value = this.model.value || null;\r\n }\r\n }\r\n\r\n override _customModelModify(event: InputSelectValueWithId) {\r\n this.model.displayValue = this._getDisplayValue(event.value);\r\n }\r\n\r\n private _getDisplayValue(selectedValue: InputSelectValueTypes): string {\r\n if (!this.settings.options.items) {\r\n return '';\r\n }\r\n\r\n if (!Array.isArray(selectedValue)) {\r\n return this.settings.options.items\r\n .filter(x => x.value === selectedValue)\r\n .map(x => x.text).join(', ');\r\n }\r\n\r\n const result: string[] = [];\r\n\r\n selectedValue.forEach(val => {\r\n const selectedItem = this.settings.options.items\r\n .find(x => x.value === val);\r\n\r\n if (selectedItem) {\r\n result.push(selectedItem.text);\r\n }\r\n });\r\n\r\n return result.join(', ');\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-select-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-select\r\n [(ngModel)]=\"value\"\r\n [fields]=\"autosaveFields\"\r\n [items]=\"settings.options.items\"\r\n [readonly]=\"false\"\r\n [searchable]=\"false\"\r\n bindValue=\"value\"\r\n bindLabel=\"text\"\r\n [multiple]=\"settings.options.multiply\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-select>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType, DateTypeEnum } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputDateModel } from '../../../../models/elemets/inputs';\r\nimport { ComponentValueModel } from '../../../../models';\r\nimport { objectFormSelectors } from '../../../../store';\r\nimport { defaultValueModel } from '../../../../helpers';\r\nimport { InputDateTimeValueWithId } from '@myrtex-org/ui';\r\n\r\n@Component({\r\n selector: 'app-input-date',\r\n templateUrl: './input-date.component.html',\r\n styleUrls: ['./input-date.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputDateComponent extends BaseFieldComponent<InputDateModel, InputDateTimeValueWithId> implements OnInit {\r\n type = ComponentType.InputDate;\r\n\r\n private readonly _millisecondsInDay: number = 1000 * 60 * 60 * 24;\r\n\r\n private _isInit = false;\r\n\r\n public dateModel: string | string[] | null = '';\r\n\r\n public modelStart!: ComponentValueModel;\r\n public modelEnd!: ComponentValueModel;\r\n public modelCounter: number = 0;\r\n\r\n public get value(): string | string[] {\r\n if (this.settings.options.range) {\r\n return [this.modelStart.value, this.modelEnd.value];\r\n } else {\r\n return this.model.value;\r\n }\r\n }\r\n\r\n public get getViewTypeTimepicker(): boolean {\r\n return this.settings.options.viewType === DateTypeEnum.DateTime;\r\n }\r\n\r\n public updateValue(event: InputDateTimeValueWithId) {\r\n if (this._isInit) {\r\n if (this.settings.options.range) {\r\n if (event.value?.length === 0) {\r\n this.dateModel = [];\r\n this.modelStart.value = null;\r\n this.modelEnd.value = null;\r\n this.model.value = [null, null];\r\n\r\n this.modelCounter = 0;\r\n }\r\n if (event.value?.length === 2) {\r\n this.dateModel = [event.value[0], event.value[1]];\r\n this.modelStart.value = event.value[0];\r\n this.modelEnd.value = event.value[1];\r\n this.model.value = [this.modelStart.value, this.modelEnd.value];\r\n\r\n this.modelCounter = this._getDaysDifference(this.modelStart.value, this.modelEnd.value);\r\n }\r\n } else {\r\n this.dateModel = event.value;\r\n this.model.value = event.value;\r\n }\r\n\r\n this.dispatchModify(event);\r\n }\r\n }\r\n\r\n public updateCounter(value: number | null): void {\r\n if (value) {\r\n this.modelCounter = value;\r\n } else {\r\n this.modelCounter = 0;\r\n }\r\n\r\n if (this.settings.options.range) {\r\n if (this.model.value && this.model.value[0]) {\r\n this.model.value[1] = this._changeDays(this.model.value[0], this.modelCounter);\r\n\r\n this.dateModel = this.model.value;\r\n }\r\n }\r\n\r\n this.dispatchModify(structuredClone(this.model.value));\r\n }\r\n\r\n override _transformOutputValue() {\r\n if (this.settings.options.range) {\r\n return [structuredClone(this.modelStart), structuredClone(this.modelEnd)];\r\n } else {\r\n return structuredClone(this.model);\r\n }\r\n }\r\n\r\n override _initSubscriptionForValue() {\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectValueModel(this.settings))\r\n .subscribe((result: ComponentValueModel | null | (ComponentValueModel | null)[]) => {\r\n if (result) {\r\n if (Array.isArray(result)) {\r\n this.modelStart = structuredClone(result[0]) || defaultValueModel(this.settings);\r\n this.modelEnd = structuredClone(result[1]) || defaultValueModel(this.settings);\r\n } else {\r\n this.model = structuredClone(result || defaultValueModel(this.settings));\r\n }\r\n\r\n this._customInit();\r\n }\r\n }));\r\n }\r\n\r\n override _customInit() {\r\n setTimeout(() => {\r\n if (!this.model) {\r\n this.model = defaultValueModel(this.settings);\r\n }\r\n\r\n if (this.settings.options.range) {\r\n if (!this.modelStart?.value || !this.modelEnd?.value) {\r\n this.dateModel = [];\r\n } else {\r\n this.dateModel = [this.modelStart.value, this.modelEnd.value];\r\n\r\n this.modelCounter = this._getDaysDifference(this.modelStart.value, this.modelEnd.value);\r\n }\r\n } else {\r\n this.dateModel = this.model.value;\r\n }\r\n\r\n this._isInit = true;\r\n\r\n this._detector.detectChanges();\r\n }, 500);\r\n }\r\n\r\n private _getDaysDifference(startDate: string, endDate: string): number {\r\n const start = new Date(startDate);\r\n const end = new Date(endDate);\r\n\r\n if (isNaN(start.getTime()) || isNaN(end.getTime())) {\r\n console.error('Invalid date format');\r\n return 0;\r\n }\r\n\r\n const differenceInMs = Math.abs(end.getTime() - start.getTime());\r\n return Math.floor(differenceInMs / this._millisecondsInDay);\r\n }\r\n\r\n private _changeDays(startDate: string, days: number): string | null {\r\n if (startDate) {\r\n const start = new Date(startDate);\r\n\r\n if (isNaN(start.getTime())) {\r\n console.error('Invalid start date format');\r\n return startDate;\r\n }\r\n\r\n if (!Number.isInteger(days) || days < 0) {\r\n console.error('Days must be a non-negative integer');\r\n return startDate;\r\n }\r\n\r\n const newDate = new Date(start.getTime() + days * this._millisecondsInDay);\r\n return newDate.toISOString();\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-date-content\">\r\n <div class=\"row\">\r\n <div class=\"col\" [class.col-8]=\"settings.options.counter\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"(settings.options.range ? settings.options.placeholder + ' - ' + settings.options.placeholder : settings.options.placeholder) || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n </div>\r\n\r\n @if (settings.options.counter && settings.options.range) {\r\n <div class=\"col col-4\">\r\n <mrx-label customClasses=\"mt-2\">\r\n {{ settings.options.counterLabel }}\r\n </mrx-label>\r\n <mrx-input-number\r\n [ngModel]=\"modelCounter\"\r\n [placeholder]=\"'0'\"\r\n [disabled]=\"!settings.options.counterEditable\"\r\n (ngModelChange)=\"updateCounter($event)\"\r\n ></mrx-input-number>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType, InnTypeEnum } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputINNModel } from '../../../../models/elemets/inputs';\r\nimport { InputTextValueWithId } from '@myrtex-org/ui';\r\n\r\n@Component({\r\n selector: 'app-input-inn',\r\n templateUrl: './input-inn.component.html',\r\n styleUrls: ['./input-inn.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputInnComponent extends BaseFieldComponent<InputINNModel, InputTextValueWithId> implements OnInit {\r\n type = ComponentType.InputINN;\r\n\r\n public get getMask(): string {\r\n switch (this.settings.options.viewType) {\r\n case InnTypeEnum.Personal:\r\n return '000000000000';\r\n case InnTypeEnum.Legal:\r\n return '0000000000';\r\n case InnTypeEnum.ForeignLegal:\r\n return '000000';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n public get getMaskPrefix(): string {\r\n return this.settings.options.viewType === InnTypeEnum.ForeignLegal ? '9909' : '';\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-inn-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-text\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [readonly]=\"false\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [mask]=\"getMask\"\r\n [maskPrefix]=\"getMaskPrefix\"\r\n [maskDropSpecialCharacters]=\"false\"\r\n [showMaskTyped]=\"true\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n ></mrx-input-text>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { FileModel } from '../../../../../shared-form/models';\r\nimport { Store } from '@ngrx/store';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { Observable, Subject, Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { ComponentValueModel } from '../../../../models';\r\nimport { objectFormActions, objectFormSelectors } from '../../../../store';\r\nimport { InputFileModel } from '@myrtex-org/ui';\r\nimport { InputFileModel as InputFileBaseModel } from '../../../../models/elemets/inputs';\r\nimport { ObjectFormService } from '../../../../services';\r\n\r\n@Component({\r\n selector: 'app-input-file',\r\n templateUrl: './input-file.component.html',\r\n styleUrls: ['./input-file.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputFileComponent extends BaseFieldComponent<InputFileBaseModel, {\r\n id: string,\r\n value: InputFileModel[]\r\n}> implements OnInit, OnDestroy {\r\n type = ComponentType.InputFile;\r\n\r\n override _store: Store = inject(Store);\r\n override _detector: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n private _objectFormService: ObjectFormService = inject(ObjectFormService)\r\n\r\n private _changeFileSubject$: Subject<ComponentValueModel> = new Subject<ComponentValueModel>();\r\n private _fileSubscriptions$: Subscription[] = [];\r\n\r\n private _isFileCheckRequired: boolean = false;\r\n\r\n public applicationId$: Observable<string> = this._store.select(objectFormSelectors.selectObjectId);\r\n\r\n public files: any[] = [];\r\n\r\n override ngOnInit(): void {\r\n this._initModel();\r\n\r\n this._changeFileSubject$.pipe(\r\n debounceTime(700),\r\n ).subscribe(model => {\r\n this._store.dispatch(objectFormActions.updateValues({value: cloneDeep(this.model)}));\r\n });\r\n\r\n this._fileSubscriptions$.push(this._store.select(objectFormSelectors.selectIsCheckRequired)\r\n .subscribe(result => {\r\n this._isFileCheckRequired = result;\r\n this._detector.detectChanges();\r\n }));\r\n\r\n if (this.valueMode === 'auto') {\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectValueModel(this.settings))\r\n .subscribe((result: ComponentValueModel | null | (ComponentValueModel | null)[]) => {\r\n if (result && !Array.isArray(result)) {\r\n this.model.value = result.value;\r\n\r\n this._customInit();\r\n }\r\n }));\r\n }\r\n\r\n this._fileSubscriptions$.push(\r\n this._store.select(objectFormSelectors.selectSectionFiles)\r\n .subscribe((sectionFiles: FileModel[]) => {\r\n if (sectionFiles.length) {\r\n this._initFiles(sectionFiles);\r\n }\r\n }),\r\n );\r\n }\r\n\r\n public get apiUrl(): string {\r\n return this._objectFormService.apiUrl\r\n }\r\n\r\n override get getInvalid(): boolean {\r\n if (this._isFileCheckRequired) {\r\n return this.settings.options.required && !this.model.value?.length;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._fileSubscriptions$.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n public filesChanged(files: InputFileModel[]) {\r\n this.files = files;\r\n this.model.value = this.files.map(f => f.id);\r\n this.dispatchModify();\r\n }\r\n\r\n public deleteFile(file: InputFileModel): void {\r\n this.files = this.files.filter((f: InputFileModel) => f.id !== file.id);\r\n this.model.value = this.files.map(f => f.id);\r\n this.dispatchModify();\r\n }\r\n\r\n override dispatchModify() {\r\n this._changeFileSubject$.next(this.model);\r\n }\r\n\r\n private _initFiles(sectionFiles: FileModel[]) {\r\n this.files = sectionFiles.filter(f => this.model.value.includes(f.id)).map(f => (\r\n {uuid: f.id, name: f.name, size: f.length}\r\n ));\r\n\r\n this._detector.detectChanges();\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-file-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-file\r\n [files]=\"files\"\r\n [allowedExtensions]=\"settings.options.allowedExtensions\"\r\n [maxFiles]=\"settings.options.maxFiles\"\r\n [maxSize]=\"settings.options.maxSize\"\r\n [uploadEndPoint]=\"apiUrl + '/' + (applicationId$ | async) + '/upload-temp-file'\"\r\n [deleteConfirm]=\"deleteFile.bind(this)\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"'Поле обязательно для заполнения'\"\r\n (filesChanged)=\"filesChanged($event)\"\r\n ></mrx-input-file>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputPhoneModel } from '../../../../models/elemets/inputs';\r\nimport { CountriesISO } from '@myrtex-org/ui';\r\nimport { defaultValueModel } from '../../../../helpers';\r\n\r\n@Component({\r\n selector: 'app-input-phone',\r\n templateUrl: './input-phone.component.html',\r\n styleUrls: ['./input-phone.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n//TODO InputTelValueWithId добавить в компонент\r\nexport class InputPhoneComponent extends BaseFieldComponent<InputPhoneModel, any> implements OnInit {\r\n type = ComponentType.InputPhone;\r\n\r\n public onlyCountries: CountriesISO[] = []\r\n\r\n public updateValue(event: any) {\r\n //TODO InputTelValueWithId добавить в компонент\r\n if (event.value.isNumberValid) {\r\n this.model.value = event.value.unFormattedNumber\r\n this.dispatchModify({id: event.id, value: event.value.unFormattedNumber})\r\n }\r\n }\r\n\r\n override _customInit() {\r\n this.model = this.model || defaultValueModel(this.settings);\r\n\r\n this.onlyCountries = this.settings.options.countries.map(country => {\r\n return country.value as CountriesISO\r\n })\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-phone-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-tel\r\n [ngModel]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [onlyCountries]=\"onlyCountries\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n [readonly]=\"false\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-tel>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputCheckboxGroupModel } from '../../../../models/elemets/inputs';\r\nimport { CheckboxGroupItem } from '@myrtex-org/ui';\r\nimport { defaultValueModel } from '../../../../helpers';\r\n\r\n@Component({\r\n selector: 'app-input-checkbox-group',\r\n templateUrl: './input-checkbox-group.component.html',\r\n styleUrls: ['./input-checkbox-group.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputCheckboxGroupComponent\r\n extends BaseFieldComponent<InputCheckboxGroupModel, { id: string, value: CheckboxGroupItem[] }>\r\n implements OnInit {\r\n type = ComponentType.InputCheckboxGroup;\r\n\r\n public list: CheckboxGroupItem[] = [];\r\n public value: CheckboxGroupItem[] = [];\r\n\r\n public updateValue(event: { id: string, value: CheckboxGroupItem[] }) {\r\n this.model.value = event.value.map(i => String(i.id));\r\n this.dispatchModify(event);\r\n }\r\n\r\n override _customInit() {\r\n this.model = this.model || defaultValueModel(this.settings, []);\r\n\r\n this.list = this.settings.options.items.map(item => (\r\n {id: item.value, text: item.text}\r\n ));\r\n\r\n this.value = this.model.value?.map((i: string): CheckboxGroupItem => ({id: i, text: ''})) || [];\r\n\r\n this._detector.detectChanges();\r\n }\r\n\r\n override _customModelModify(event: { id: string, value: CheckboxGroupItem[] }) {\r\n this.model.displayValue = this._getDisplayValue(event.value);\r\n }\r\n\r\n private _getDisplayValue(selectedValue: CheckboxGroupItem[]): string {\r\n if (!this.settings.options.items) {\r\n return '';\r\n }\r\n\r\n const result: string[] = [];\r\n\r\n selectedValue.forEach(val => {\r\n const selectedItem = this.settings.options.items\r\n .find(x => x.value === val.id);\r\n\r\n if (selectedItem) {\r\n result.push(selectedItem.text);\r\n }\r\n });\r\n\r\n return result.join(', ');\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"checkbox-group-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-checkbox-group\r\n [(ngModel)]=\"value\"\r\n [items]=\"list\"\r\n [fields]=\"autosaveFields\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-checkbox-group>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseFieldComponent } from '../../base';\r\nimport { InputRadioGroupModel } from '../../../../models/elemets/inputs';\r\nimport { RadioGroupItem, RadioGroupValueWithId } from '@myrtex-org/ui';\r\nimport { defaultValueModel } from '../../../../helpers';\r\n\r\n@Component({\r\n selector: 'app-input-radio-group',\r\n templateUrl: './input-radio-group.component.html',\r\n styleUrls: ['./input-radio-group.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputRadioGroupComponent\r\n extends BaseFieldComponent<InputRadioGroupModel, RadioGroupValueWithId>\r\n implements OnInit {\r\n type = ComponentType.InputRadioGroup;\r\n\r\n public list: RadioGroupItem[] = [];\r\n public value!: RadioGroupItem;\r\n\r\n public updateValue(event: RadioGroupValueWithId) {\r\n if (event.value) {\r\n this.model.value = String(event.value.id);\r\n } else {\r\n this.model.value = '';\r\n }\r\n this.dispatchModify(event);\r\n }\r\n\r\n override _customInit() {\r\n this.model = this.model || defaultValueModel(this.settings);\r\n\r\n this.list = this.settings.options.items.map(item => (\r\n {id: item.value, text: item.text, parentId: 'none', value: false, type: 'single', items: []}\r\n ));\r\n\r\n if (!!this.model.value) {\r\n this.value = this.list.find(i => String(i.id) === this.model.value) || this.list[0];\r\n }\r\n }\r\n\r\n override _customModelModify(event: RadioGroupValueWithId) {\r\n this.model.displayValue = this._getDisplayValue(event.value);\r\n }\r\n\r\n private _getDisplayValue(selectedValue: RadioGroupItem | null): string {\r\n if (!this.settings.options.items) {\r\n return '';\r\n }\r\n\r\n return this.settings.options.items\r\n .filter(x => x.value === selectedValue?.id)\r\n .map(x => x.text).join(', ');\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-radio-group-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-radio-group\r\n [(ngModel)]=\"value\"\r\n [fields]=\"autosaveFields\"\r\n [items]=\"list\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-radio-group>\r\n </div>\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter, inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { DependenceActionType } from '../../../../../../../../shared-form/enums';\r\nimport { ComponentValueModel, FieldDependencyCheckResultModel, ValueModel } from '../../../../../../../models';\r\nimport { ComponentFactoryDirective, contentComponentsMap } from '../../../../../../../factories/component-factory';\r\nimport { SectionModel } from '../../../../../../../models/elemets';\r\nimport { objectFormSelectors } from '../../../../../../../store';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LabelModule } from '@myrtex-org/ui';\r\n\r\n@Component({\r\n selector: 'app-form-dispenser-modal',\r\n templateUrl: './form-dispenser-modal.component.html',\r\n styleUrls: ['./form-dispenser-modal.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n LabelModule,\r\n ComponentFactoryDirective\r\n ]\r\n})\r\nexport class FormDispenserModal implements OnInit, OnDestroy {\r\n protected _store: Store = inject(Store);\r\n protected _detector: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n private _subscriptions$: Subscription[] = [];\r\n private _fieldDependencyRulesCheckResults: FieldDependencyCheckResultModel[] = [];\r\n\r\n public mapper = contentComponentsMap;\r\n\r\n @Input() public sectionSettings!: SectionModel | null;\r\n @Input() public values: ValueModel[] = [];\r\n @Input() public valueMode: 'auto' | 'manual' = 'auto';\r\n\r\n @Output() changed: EventEmitter<ComponentValueModel | ComponentValueModel[]> = new EventEmitter<ComponentValueModel | ComponentValueModel[]>();\r\n\r\n ngOnInit(): void {\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectDependencyRulesResults)\r\n .subscribe(results => {\r\n this._fieldDependencyRulesCheckResults = results;\r\n this._detector.detectChanges();\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions$.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n public componentValueChanged(event: ComponentValueModel | ComponentValueModel[]) {\r\n this.changed.emit(event);\r\n }\r\n\r\n public isComponentVisible(sysName: string): boolean {\r\n const result = this._fieldDependencyRulesCheckResults.find(x => x.sysName === sysName);\r\n\r\n if (!result) {\r\n return true;\r\n }\r\n\r\n let visible = true;\r\n\r\n switch (result.actionType) {\r\n case DependenceActionType.show:\r\n visible = result.conditionResult;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n return visible;\r\n }\r\n}\r\n","@if (sectionSettings?.components?.length) {\r\n <div class=\"row application-form__content\">\r\n @for (component of sectionSettings?.components; track component.id) {\r\n @switch (component.type) {\r\n @case ('group') {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragGroup\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n @default {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragInput\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n<ng-template #dragGroup let-component='component'>\r\n <div class=\"col col-{{component.options.width}}\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n @if (component.options.label) {\r\n <mrx-label>{{ component.options.label }}</mrx-label>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"application-form__group p-2\">\r\n @if (component.components.length) {\r\n <div class=\"row\">\r\n @for (component of component.components; track component.id) {\r\n @switch (component.type) {\r\n @case ('group') {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragGroup\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n @default {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragInput\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n }\r\n }\r\n </div>\r\n } @else {\r\n <p class=\"p-2\">Элементы группы отсутствуют</p>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dragInput let-component='component'>\r\n @if (isComponentVisible(component.sysName)) {\r\n <div class=\"col col-{{component.options.width}}\">\r\n <div class=\"application-form__input\">\r\n <ng-template\r\n appComponentFactory\r\n [type]=\"component.type\"\r\n [data]=\"component\"\r\n [map]=\"mapper\"\r\n [values]=\"values\"\r\n [valueMode]=\"valueMode\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\r\nimport { isArray } from 'lodash-es';\r\nimport { ButtonModule, MODAL_DATA, ModalModule, ModalRef, ModalServiceComponent } from '@myrtex-org/ui';\r\nimport { InputTableModel } from '../../../../../../models/elemets/inputs';\r\nimport { ComponentValueModel, TableRowModel } from '../../../../../../models';\r\nimport { FormDispenserModal } from './form-dispenser-modal/form-dispenser-modal.component';\r\nimport { provideNgxMask } from 'ngx-mask';\r\n\r\nexport interface InputTableModalParams {\r\n title: string;\r\n okText: string;\r\n settings: InputTableModel;\r\n rowModel: TableRowModel;\r\n}\r\n\r\nexport interface InputTableModalResult {\r\n result: boolean;\r\n rowModel: TableRowModel;\r\n}\r\n\r\n@Component({\r\n selector: 'app-input-table-modal',\r\n templateUrl: './input-table-modal.component.html',\r\n styleUrls: ['./input-table-modal.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [\r\n ModalModule,\r\n ButtonModule,\r\n FormDispenserModal,\r\n\r\n ],\r\n providers: [\r\n provideNgxMask()\r\n ]\r\n})\r\nexport class InputTableModalComponent extends ModalServiceComponent<InputTableModalParams, InputTableModalResult> {\r\n public title!: string;\r\n public okText!: string;\r\n public settings!: InputTableModel;\r\n public rowModel!: TableRowModel;\r\n\r\n constructor(\r\n private dialogRef: ModalRef<InputTableModalResult>,\r\n @Inject(MODAL_DATA) data: InputTableModalParams,\r\n ) {\r\n super();\r\n\r\n this.title = data.title;\r\n this.okText = data.okText\r\n this.settings = data.settings;\r\n this.rowModel = data.rowModel;\r\n\r\n this.result = {result: false, rowModel: this.rowModel};\r\n }\r\n\r\n public componentValueChanged(valueModel: ComponentValueModel | ComponentValueModel[]) {\r\n if (isArray(valueModel)) {\r\n valueModel.forEach(model => {\r\n this._transformValues(model);\r\n });\r\n } else {\r\n this._transformValues(valueModel);\r\n }\r\n }\r\n\r\n public ok() {\r\n this.result = {result: true, rowModel: this.rowModel};\r\n this.dialogRef.close(structuredClone(this.result));\r\n }\r\n\r\n public close() {\r\n this.result = {result: false, rowModel: this.rowModel};\r\n this.dialogRef.close(this.result);\r\n }\r\n\r\n private _transformValues(value: ComponentValueModel) {\r\n const cloneRowModel = structuredClone(this.rowModel);\r\n const findValue: ComponentValueModel | undefined = cloneRowModel.data.find((c: ComponentValueModel) => c.sysName === value.sysName);\r\n\r\n if (findValue) {\r\n findValue.value = value.value;\r\n }\r\n\r\n this.rowModel = cloneRowModel;\r\n }\r\n}\r\n","<mrx-modal\r\n [title]=\"title\"\r\n size=\"large\"\r\n (close)=\"close()\"\r\n (ok)=\"ok()\"\r\n>\r\n <app-form-dispenser-modal\r\n [sectionSettings]=\"settings\"\r\n [values]=\"rowModel.data\"\r\n [valueMode]=\"'manual'\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></app-form-dispenser-modal>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"close()\"\r\n >Отмена\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"ok()\"\r\n >{{ okText }}\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n","import { ComponentModelBase } from '../../../../../../shared-form/models';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { ComponentType } from '../../../../../../shared-form/enums';\r\nimport { ComponentValueModel, TableRowModel } from '../../../../../models';\r\nimport { defaultValueModel } from '../../../../../helpers';\r\n\r\nexport const getRowModel = (model: ComponentModelBase): TableRowModel => {\r\n const getValuesFromModel = (model: ComponentModelBase): ComponentValueModel[] => {\r\n let values: ComponentValueModel[] = [];\r\n\r\n model.components.forEach((c: ComponentModelBase) => {\r\n if (c.type === ComponentType.Group) {\r\n values = values.concat(getValuesFromModel(c));\r\n } else {\r\n values = values.concat(defaultValueModel(c));\r\n }\r\n });\r\n\r\n return values;\r\n };\r\n\r\n return {id: uuidv4(), data: getValuesFromModel(model)};\r\n};\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter, inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { ComponentType, DateTypeEnum } from '../../../../../shared-form/enums';\r\nimport { Store } from '@ngrx/store';\r\nimport { ComponentModelBase } from '../../../../../shared-form/models';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport { ComponentValueModel, SectionValueModel, TableRowModel, TableValueModel } from '../../../../models';\r\nimport { InputDateModel, InputNumberModel, InputTableModel } from '../../../../models/elemets/inputs';\r\nimport { objectFormActions, objectFormSelectors } from '../../../../store';\r\nimport { ModalService } from '@myrtex-org/ui';\r\nimport { InputTableModalComponent } from './components';\r\nimport { getRowModel } from './helpers/get-row-model.helper';\r\nimport { ColumnModel } from './models/column.model';\r\n\r\n@Component({\r\n selector: 'app-input-table',\r\n templateUrl: './input-table.component.html',\r\n styleUrls: ['./input-table.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputTableComponent implements OnInit, OnDestroy {\r\n type = ComponentType.InputTable;\r\n\r\n private _store: Store = inject(Store);\r\n private _detector: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n private _modalService: ModalService = inject(ModalService);\r\n\r\n private _changeSubject$: Subject<TableValueModel> = new Subject<TableValueModel>();\r\n private _subscriptions$: Subscription[] = [];\r\n\r\n private _isCheckRequired: boolean = false;\r\n\r\n public model!: TableValueModel;\r\n public settings!: InputTableModel;\r\n public dataSource: { [key: string]: any }[] = [];\r\n public columns: ColumnModel[] = [];\r\n\r\n @Input() values: SectionValueModel[] = [];\r\n\r\n @Input() set data(settings: ComponentModelBase) {\r\n this.settings = settings as InputTableModel;\r\n\r\n this.model = {sysName: settings.sysName, type: settings.type, data: [], totals: []};\r\n\r\n this._detector.detectChanges();\r\n\r\n this._initColumns(this.settings.components);\r\n }\r\n\r\n @ViewChild('dataGrid', {static: false}) dataGrid!: DxDataGridComponent;\r\n @ViewChild('editTemplate', {static: false}) editTemplate!: any;\r\n\r\n @Output() public changed: EventEmitter<ComponentValueModel | ComponentValueModel[]> = new EventEmitter<ComponentValueModel | ComponentValueModel[]>();\r\n\r\n ngOnInit(): void {\r\n this._initModel();\r\n\r\n this._changeSubject$.pipe(\r\n debounceTime(700),\r\n ).subscribe(model => {\r\n this._store.dispatch(objectFormActions.updateValues({value: model}));\r\n });\r\n\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectIsCheckRequired).subscribe(result => {\r\n this._isCheckRequired = result;\r\n this._detector.detectChanges();\r\n }));\r\n\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectValueModel(this.settings))\r\n .subscribe((result: ComponentValueModel | null | (ComponentValueModel | null)[]) => {\r\n const cloneResult = structuredClone(result as TableValueModel | null);\r\n\r\n if (cloneResult && !Array.isArray(cloneResult) && this.model.data !== cloneResult.data) {\r\n this.model = structuredClone(cloneResult);\r\n this._initDataSource(this.model.data);\r\n }\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._changeSubject$.unsubscribe();\r\n this._subscriptions$.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n public createRow() {\r\n this._modalService.open(InputTableModalComponent, {\r\n title: 'Создание строки',\r\n okText: 'Создать',\r\n settings: this.settings,\r\n rowModel: getRowModel(this.settings)\r\n }).afterClosed().subscribe(resolve => {\r\n if (resolve.result) {\r\n this.model.data = [...structuredClone(this.model.data), resolve.rowModel];\r\n\r\n this._initDataSource(this.model.data);\r\n\r\n this._changeSubject$.next(structuredClone(this.model));\r\n }\r\n });\r\n }\r\n\r\n public deleteRow(event: any) {\r\n const findRow = this.model.data.find(item => item.id === event.row.data.id);\r\n\r\n if (findRow) {\r\n this.model.data = this.model.data.filter(item => item.id !== event.row.data.id);\r\n\r\n this._initDataSource(this.model.data);\r\n\r\n this._changeSubject$.next(this.model);\r\n }\r\n }\r\n\r\n public editRow(event: any) {\r\n const findRow: TableRowModel | undefined = this.model.data.find(item => item.id === event.row.data.id);\r\n\r\n if (findRow) {\r\n this._modalService.open(InputTableModalComponent, {\r\n title: 'Редактирование строки',\r\n okText: 'Сохранить',\r\n settings: this.settings,\r\n rowModel: findRow\r\n }).afterClosed().subscribe(resolve => {\r\n if (resolve.result) {\r\n const cloneModel = structuredClone(this.model);\r\n const findRow = cloneModel.data.find(row => row.id === resolve.rowModel.id);\r\n\r\n if (findRow) {\r\n findRow.data = resolve.rowModel.data;\r\n\r\n this._initDataSource(cloneModel.data);\r\n\r\n this._changeSubject$.next(structuredClone(cloneModel));\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n public getFormat(component: ComponentModelBase) {\r\n switch (component.type) {\r\n case ComponentType.InputDate:\r\n switch ((component as InputDateModel).options.viewType) {\r\n case DateTypeEnum.DateTime:\r\n return 'dd.MM.yyyy hh:mm';\r\n default:\r\n return 'dd.MM.yyyy';\r\n }\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n public getDataType(component: ComponentModelBase) {\r\n switch (component.type) {\r\n case ComponentType.InputDate:\r\n return 'date';\r\n default:\r\n return 'string';\r\n }\r\n }\r\n\r\n public showTotal(component: ComponentModelBase): boolean {\r\n if (component.type === ComponentType.InputNumber) {\r\n const element: InputNumberModel = component as InputNumberModel;\r\n\r\n return element.options.inTotals;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isTotalColumn(component: ComponentModelBase): boolean {\r\n return (component as InputNumberModel).options['inTotals'];\r\n }\r\n\r\n private _initModel() {\r\n this.model = {\r\n sysName: this.settings.sysName,\r\n type: this.settings.type,\r\n data: [],\r\n totals: []\r\n };\r\n }\r\n\r\n private _initDataSource(data: TableRowModel[]) {\r\n this.dataSource = data.map((item: TableRowModel) => {\r\n const newDataItem: any = {};\r\n\r\n for (let i in item.data) {\r\n newDataItem[item.data[i].sysName] = item.data[i].value;\r\n }\r\n\r\n newDataItem.id = item.id;\r\n\r\n return newDataItem;\r\n });\r\n\r\n this._detector.detectChanges();\r\n\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private _initColumns(components: ComponentModelBase[]) {\r\n this.columns = components.map(c => this._transformColumn(structuredClone(c)));\r\n\r\n this.columns.push({\r\n caption: '',\r\n type: 'buttons',\r\n width: 80,\r\n cssClass: 'custom-cell-controls',\r\n buttons: [\r\n {\r\n template: 'editButtonTemplate',\r\n hint: 'Редактировать',\r\n },\r\n {\r\n template: 'deleteButtonTemplate',\r\n hint: 'Удалить',\r\n },\r\n ],\r\n });\r\n\r\n this.dataGrid.instance.repaint();\r\n this._detector.detectChanges();\r\n }\r\n\r\n private _transformColumn(component: ComponentModelBase): ColumnModel {\r\n const column: ColumnModel = {\r\n caption: component.options.label || '',\r\n columns: component.components.map(c => this._transformColumn(structuredClone(c))),\r\n dataField: component.sysName,\r\n dataType: this.getDataType(component),\r\n format: this.getFormat(component),\r\n }\r\n\r\n if (this.settings.options.groups.length) {\r\n const findIdx = this.settings.options.groups.findIndex(x => x === component.sysName);\r\n\r\n if (findIdx !== -1) {\r\n column.groupIndex = findIdx\r\n }\r\n }\r\n\r\n return column\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"input-table-content w-100\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n noDataText=\"Нет данных\"\r\n style=\"width: 100%\"\r\n >\r\n <dxo-toolbar>\r\n <dxi-item location=\"after\">\r\n <div *dxTemplate class=\"add-row\">\r\n <mrx-button\r\n [size]=\"'medium'\"\r\n [type]=\"'tertiary'\"\r\n [customClasses]=\"'px-3'\"\r\n (mrxClick)=\"createRow()\"\r\n >Добавить\r\n </mrx-button>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n <div *dxTemplate=\"let buttonData of 'editButtonTemplate'\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(buttonData)\"></span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let buttonData of 'deleteButtonTemplate'\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(buttonData)\"></span>\r\n </div>\r\n\r\n @if (dataSource.length) {\r\n <dxo-summary>\r\n @for (component of settings.components; track component.id; let first = $first) {\r\n @if (!first) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [summaryType]=\"'sum'\"\r\n [displayFormat]=\"'{0}'\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n } @else {\r\n @if (isTotalColumn(component)) {\r\n <dxi-total-item [column]=\"component.sysName\" [displayFormat]=\"'{0}'\"></dxi-total-item>\r\n } @else {\r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [cssClass]=\"'text-bold'\"\r\n [displayFormat]=\"'ИТОГО'\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n </dxo-summary>\r\n }\r\n </dx-data-grid>\r\n\r\n <ng-template #editTemplate let-cellInfo=\"cellInfo\">\r\n <div class=\"d-flex align-items-center justify-content-center\" style=\"gap: 4px\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(cellInfo)\"></span>\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(cellInfo)\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n}\r\n\r\n\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseElementComponent } from '../../base';\r\nimport { ContentTitleModel } from '../../../../models/elemets/inputs';\r\n\r\n@Component({\r\n selector: 'app-content-title',\r\n templateUrl: './content-title.component.html',\r\n styleUrls: ['./content-title.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContentTitleComponent extends BaseElementComponent<ContentTitleModel> {\r\n type = ComponentType.ContentTitle;\r\n\r\n public get getSizeClass(): string {\r\n return this.settings.options.size === 'large' ? '-large' : this.settings.options.size === 'medium' ? '-medium' : '-small';\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"content-title-content\">\r\n <h4\r\n class=\"content-title-content__title\"\r\n [class]=\"getSizeClass\"\r\n [class.mb-2]=\"settings.options.text && (settings.options.size === 'large' || settings.options.size === 'medium')\"\r\n [class.mb-1]=\"settings.options.text && (settings.options.size === 'small')\"\r\n >\r\n {{ settings.options.title }}\r\n </h4>\r\n\r\n <p class=\"content-title-content__text\" [innerHTML]=\"settings.options.text\"></p>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseElementComponent } from '../../base';\r\nimport { ContentTextModel } from '../../../../models/elemets/inputs';\r\n\r\n@Component({\r\n selector: 'app-content-input-table-modal',\r\n templateUrl: './content-text.component.html',\r\n styleUrls: ['./content-text.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContentTextComponent extends BaseElementComponent<ContentTextModel> {\r\n type = ComponentType.ContentText;\r\n}\r\n","@if (settings) {\r\n <div class=\"content-text-content\">\r\n <p class=\"content-text-content__text\" [innerHTML]=\"settings.options.text\"></p>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseElementComponent } from '../../base';\r\nimport { ContentTooltipModel } from '../../../../models/elemets/inputs';\r\n\r\n@Component({\r\n selector: 'app-content-tooltip',\r\n templateUrl: './content-tooltip.component.html',\r\n styleUrls: ['./content-tooltip.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContentTooltipComponent extends BaseElementComponent<ContentTooltipModel> {\r\n type = ComponentType.ContentTooltip;\r\n}\r\n","@if (settings) {\r\n <div class=\"content-tooltip-content\">\r\n <mrx-alert\r\n [title]=\"settings.options.title\"\r\n [message]=\"settings.options.text\"\r\n [color]=\"settings.options.color\"\r\n ></mrx-alert>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { formatBytes } from '@myrtex-org/ui-composite';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseElementComponent } from '../../base';\r\nimport { ContentFileModel } from '../../../../models/elemets/inputs';\r\n\r\n@Component({\r\n selector: 'app-content-file',\r\n templateUrl: './content-file.component.html',\r\n styleUrls: ['./content-file.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContentFileComponent extends BaseElementComponent<ContentFileModel> {\r\n type = ComponentType.ContentFile;\r\n\r\n public formatBytes = formatBytes;\r\n}\r\n","@if (settings) {\r\n <div class=\"content-file-content\">\r\n @if (settings.options.fileId) {\r\n <a\r\n [href]=\"'/form/api/v1/admin/template/' + (applicationId$ | async) + '/file/' + settings.options.fileId\"\r\n target=\"_blank\"\r\n class=\"content-file-content__file\"\r\n >\r\n <div class=\"content-file-content__file-content\">\r\n <div class=\"content-file-content__file-content__title\">\r\n <span class=\"mrx-icon icon-file icon-font-24\"></span>\r\n <p>{{ settings.options.fileName }}</p>\r\n </div>\r\n\r\n <div class=\"content-file-content__file-content__info\">\r\n <div class=\"content-file-content__file-content__info--item\">\r\n <span>{{formatBytes(settings.options.fileSize)}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n } @else {\r\n <div class=\"content-file-content__file\">\r\n <div class=\"content-file-content__file-content\">\r\n <div class=\"content-file-content__file-content__title\">\r\n <span class=\"mrx-icon icon-file icon-font-24\"></span>\r\n <p>Файл не загружен</p>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ComponentType } from '../../../../../shared-form/enums';\r\nimport { BaseElementComponent } from '../../base';\r\nimport { ContentDividerModel } from '../../../../models/elemets/inputs';\r\n\r\n@Component({\r\n selector: 'app-content-divider',\r\n templateUrl: './content-divider.component.html',\r\n styleUrls: ['./content-divider.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContentDividerComponent extends BaseElementComponent<ContentDividerModel> {\r\n type = ComponentType.ContentDivider;\r\n\r\n public get getSizeClass(): string {\r\n return this.settings.options.size === 'large' ? '-large' : this.settings.options.size === 'medium' ? '-medium' : '-small';\r\n }\r\n}\r\n","@if (settings) {\r\n <div class=\"content-divider-content\">\r\n <hr class=\"content-divider-content__line\" [class]=\"getSizeClass\">\r\n </div>\r\n}\r\n","import { Type } from '@angular/core';\r\nimport { ComponentType } from '../../../../shared-form/enums';\r\nimport { ComponentIE } from '../models/component.model';\r\nimport * as components from '../../../components/elements';\r\n\r\nexport type ComponentsMapType = Record<string, Type<ComponentIE>>\r\n\r\nexport const contentComponentsMap: ComponentsMapType = {\r\n [ComponentType.InputText]: components.InputTextComponent,\r\n [ComponentType.InputTextarea]: components.InputTextareaComponent,\r\n [ComponentType.InputLink]: components.InputLinkComponent,\r\n [ComponentType.InputSwitch]: components.InputSwitchComponent,\r\n [ComponentType.InputNumber]: components.InputNumberComponent,\r\n [ComponentType.InputSelect]: components.InputSelectComponent,\r\n [ComponentType.InputDate]: components.InputDateComponent,\r\n [ComponentType.InputINN]: components.InputInnComponent,\r\n [ComponentType.InputFile]: components.InputFileComponent,\r\n [ComponentType.InputPhone]: components.InputPhoneComponent,\r\n [ComponentType.InputCheckboxGroup]: components.InputCheckboxGroupComponent,\r\n [ComponentType.InputRadioGroup]: components.InputRadioGroupComponent,\r\n [ComponentType.InputTable]: components.InputTableComponent,\r\n\r\n [ComponentType.ContentTitle]: components.ContentTitleComponent,\r\n [ComponentType.ContentText]: components.ContentTextComponent,\r\n [ComponentType.ContentTooltip]: components.ContentTooltipComponent,\r\n [ComponentType.ContentFile]: components.ContentFileComponent,\r\n [ComponentType.ContentDivider]: components.ContentDividerComponent,\r\n};\r\n","import { ComponentModelBase } from '../../../../shared-form/models';\r\nimport { ComponentValueModel, ValueModel } from '../../../models';\r\nimport { EventEmitter } from '@angular/core';\r\n\r\nexport interface ComponentIE {\r\n type: string;\r\n values?: ValueModel[];\r\n valueMode?: 'auto' | 'manual';\r\n data: ComponentModelBase;\r\n\r\n changed?: EventEmitter<ComponentValueModel | ComponentValueModel[]>\r\n}\r\n\r\nexport abstract class AbstractComponent {\r\n public type?: string;\r\n public values?: ValueModel[]\r\n public valueMode?: 'auto' | 'manual'\r\n public set data(settings: ComponentModelBase) {}\r\n\r\n public changed?: EventEmitter<ComponentValueModel | ComponentValueModel[]> = new EventEmitter<ComponentValueModel | ComponentValueModel[]>()\r\n}\r\n\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter, inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { DependenceActionType } from '../../../shared-form/enums';\r\nimport { ComponentValueModel, FieldDependencyCheckResultModel, ValueModel } from '../../models';\r\nimport { ComponentFactoryDirective, contentComponentsMap } from '../../factories/component-factory';\r\nimport { SectionModel } from '../../models/elemets';\r\nimport { objectFormSelectors } from '../../store';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LabelModule } from '@myrtex-org/ui';\r\n\r\n@Component({\r\n selector: 'app-form-dispenser',\r\n templateUrl: './form-dispenser.component.html',\r\n styleUrls: ['./form-dispenser.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n LabelModule,\r\n ComponentFactoryDirective\r\n ]\r\n})\r\nexport class FormDispenser implements OnInit, OnDestroy {\r\n private _store: Store = inject(Store)\r\n private _detector: ChangeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n private _subscriptions$: Subscription[] = [];\r\n private _fieldDependencyRulesCheckResults: FieldDependencyCheckResultModel[] = [];\r\n\r\n public mapper = contentComponentsMap;\r\n\r\n @Input() public sectionSettings!: SectionModel | null;\r\n @Input() public values: ValueModel[] = [];\r\n @Input() public valueMode: 'auto' | 'manual' = 'auto';\r\n\r\n @Output() changed: EventEmitter<ComponentValueModel | ComponentValueModel[]> = new EventEmitter<ComponentValueModel | ComponentValueModel[]>();\r\n\r\n ngOnInit(): void {\r\n this._subscriptions$.push(this._store.select(objectFormSelectors.selectDependencyRulesResults)\r\n .subscribe(results => {\r\n this._fieldDependencyRulesCheckResults = results;\r\n this._detector.detectChanges();\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions$.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n componentValueChanged(event: ComponentValueModel | ComponentValueModel[]) {\r\n this.changed.emit(event);\r\n }\r\n\r\n isComponentVisible(sysName: string): boolean {\r\n const result = this._fieldDependencyRulesCheckResults.find(x => x.sysName === sysName);\r\n\r\n if (!result) {\r\n return true;\r\n }\r\n\r\n let visible = true;\r\n\r\n switch (result.actionType) {\r\n case DependenceActionType.show:\r\n visible = result.conditionResult;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return visible;\r\n }\r\n}\r\n","@if (sectionSettings?.components?.length) {\r\n <div class=\"row application-form__content\">\r\n @for (component of sectionSettings?.components; track component.id) {\r\n @switch (component.type) {\r\n @case ('group') {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragGroup\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n @default {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragInput\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n<ng-template #dragGroup let-component='component'>\r\n <div class=\"col col-{{component.options.width}}\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n @if (component.options.label) {\r\n <mrx-label>{{ component.options.label }}</mrx-label>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"application-form__group p-2\">\r\n @if (component.components.length) {\r\n <div class=\"row\">\r\n @for (component of component.components; track component.id) {\r\n @switch (component.type) {\r\n @case ('group') {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragGroup\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n @default {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dragInput\"\r\n [ngTemplateOutletContext]=\"{component: component}\"\r\n ></ng-container>\r\n }\r\n }\r\n }\r\n </div>\r\n } @else {\r\n <p class=\"p-2\">Элементы группы отсутствуют</p>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dragInput let-component='component'>\r\n @if (isComponentVisible(component.sysName)) {\r\n <div class=\"col col-{{component.options.width}}\">\r\n <div class=\"application-form__input\">\r\n <ng-template\r\n appComponentFactory\r\n [type]=\"component.type\"\r\n [data]=\"component\"\r\n [map]=\"mapper\"\r\n [values]=\"values\"\r\n [valueMode]=\"valueMode\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { ComponentValueModel } from '../../models';\r\nimport { SectionModel } from '../../models/elemets';\r\nimport { objectFormActions, objectFormSelectors } from '../../store';\r\n\r\n@Component({\r\n selector: 'app-object-form-content',\r\n templateUrl: './object-form-content.component.html',\r\n styleUrls: ['./object-form-content.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ApplicationContent{\r\n private _store: Store = inject(Store)\r\n\r\n public sectionSettings$: Observable<SectionModel | null> = this._store.select(objectFormSelectors.selectSectionSettings);\r\n\r\n changeCheckRequiredState() {\r\n this._store.dispatch(objectFormActions.toggleCheckRequired());\r\n }\r\n\r\n componentValueChanged(model: ComponentValueModel | ComponentValueModel[]) {\r\n this._store.dispatch(objectFormActions.updateValues({value: model}));\r\n }\r\n}\r\n","<mrx-content-wrapper maxWidth=\"1144px\" customClasses=\"px-3\">\r\n @if (sectionSettings$ | async) {\r\n <mrx-content-wrapper type=\"default\" maxWidth=\"1112px\">\r\n <div class=\"row mb-4 mt-12px\">\r\n <div class=\"col\">\r\n <div class=\"application-form__title\">\r\n <h3>{{ (sectionSettings$ | async)?.options?.title }}</h3>\r\n <mrx-link type=\"pseudo\" [prevent]=\"true\" (click)=\"changeCheckRequiredState()\">Проверить форму</mrx-link>\r\n </div>\r\n </div>\r\n </div>\r\n </mrx-content-wrapper>\r\n\r\n <mrx-content-wrapper type=\"colored\" maxWidth=\"1112px\">\r\n <app-form-dispenser\r\n [sectionSettings]=\"sectionSettings$ | async\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></app-form-dispenser>\r\n </mrx-content-wrapper>\r\n }\r\n</mrx-content-wrapper>\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { ObjectFormComponent } from './object-form.component';\r\nimport { ApplicationContent } from './components/object-form-content/object-form-content.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ObjectFormComponent,\r\n children: [\r\n {\r\n path: ':sectionSysName',\r\n component: ApplicationContent\r\n }\r\n ]\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ObjectFormRoutingModule { }\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToasterService, ToasterType } from '@myrtex-org/ui';\r\n\r\n@Injectable()\r\nexport class ConcurrencyInterceptor implements HttpInterceptor {\r\n constructor(private _toasterService: ToasterService)\r\n {}\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return next.handle(req).pipe(\r\n catchError(error => {\r\n return this.handleError(error);\r\n })\r\n );\r\n }\r\n\r\n private handleError(error:any) {\r\n if (error.status === 409) {\r\n this._toasterService.show({\r\n title: 'Данные были изменены.',\r\n message: 'Для продолжения работы обновите страницу.',\r\n type: ToasterType.Negative\r\n })\r\n }\r\n return throwError(error);\r\n }\r\n\r\n}\r\n","export const SHARED_FORM_MODULE_NAME = 'SHARED_FORM_MODULE_NAME'\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { SHARED_FORM_MODULE_NAME } from './constants';\r\nimport { EFFECTS, sharedFormReducer } from './store';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n EffectsModule.forFeature(EFFECTS),\r\n StoreModule.forFeature(SHARED_FORM_MODULE_NAME, sharedFormReducer),\r\n ]\r\n})\r\nexport class SharedFormModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ObjectFormRoutingModule } from './object-form-routing.module';\r\nimport { ObjectFormComponent } from './object-form.component';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { ObjectFormEffects, objectReducer } from './store';\r\nimport { STATE_NAME } from './constants';\r\nimport { ObjectFormService } from './services';\r\nimport { ApplicationContent } from './components/object-form-content/object-form-content.component';\r\nimport { FormHeaderModule, MenuAdminModule } from '@myrtex-org/templates';\r\nimport { FormsModule } from '@angular/forms';\r\nimport {\r\n InputLinkComponent,\r\n InputNumberComponent, InputSelectComponent,\r\n InputSwitchComponent, InputTextareaComponent,\r\n InputTextComponent, InputDateComponent,\r\n InputInnComponent, InputFileComponent, InputPhoneComponent,\r\n ContentTitleComponent, ContentTextComponent,\r\n ContentTooltipComponent, ContentFileComponent,\r\n ContentDividerComponent, InputCheckboxGroupComponent,\r\n InputRadioGroupComponent, InputTableComponent\r\n} from './components/elements';\r\nimport {\r\n AlertModule,\r\n ButtonModule,\r\n CheckboxGroupModule,\r\n CheckboxModule,\r\n ContentWrapperModule,\r\n EditorModule,\r\n InputDateTimeModule,\r\n InputFileModule,\r\n InputNumberModule,\r\n InputSelectModule,\r\n InputTextareaModule,\r\n InputTextModule,\r\n InputTimepickerModule,\r\n LabelModule,\r\n LoaderModule,\r\n RadioGroupModule,\r\n SwitchModule,\r\n DropdownModule,\r\n InputTelModule,\r\n LinkModule,\r\n ErrorMessageModule,\r\n ModalModule,\r\n ToasterServiceModule,\r\n HintErrorMessageModule\r\n} from '@myrtex-org/ui';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\nimport { DxiColumnModule, DxiItemModule, DxoToolbarModule } from 'devextreme-angular/ui/nested';\r\nimport { ConcurrencyInterceptor } from '../shared-form/interceptors';\r\nimport { ConcurrencyStoreService } from '../shared-form/services';\r\nimport { FormDispenser } from './components/form-dispenser/form-dispenser.component';\r\nimport { SharedFormModule } from '../shared-form/shared-form.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ObjectFormComponent,\r\n ApplicationContent,\r\n InputTextComponent,\r\n InputTextareaComponent,\r\n InputLinkComponent,\r\n InputSwitchComponent,\r\n InputNumberComponent,\r\n InputSelectComponent,\r\n InputDateComponent,\r\n InputInnComponent,\r\n InputFileComponent,\r\n InputPhoneComponent,\r\n InputCheckboxGroupComponent,\r\n InputRadioGroupComponent,\r\n InputTableComponent,\r\n ContentTitleComponent,\r\n ContentTextComponent,\r\n ContentTooltipComponent,\r\n ContentFileComponent,\r\n ContentDividerComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ObjectFormRoutingModule,\r\n StoreModule.forFeature(STATE_NAME, objectReducer),\r\n EffectsModule.forFeature([ObjectFormEffects]),\r\n FormDispenser,\r\n FormHeaderModule,\r\n MenuAdminModule,\r\n LoaderModule,\r\n InputTextModule,\r\n LabelModule,\r\n ContentWrapperModule,\r\n EditorModule,\r\n InputTextareaModule,\r\n ButtonModule,\r\n FormsModule,\r\n CheckboxModule,\r\n SwitchModule,\r\n InputNumberModule,\r\n InputSelectModule,\r\n InputDateTimeModule,\r\n InputTimepickerModule,\r\n InputFileModule,\r\n AlertModule,\r\n CheckboxGroupModule,\r\n RadioGroupModule,\r\n DropdownModule,\r\n InputTelModule,\r\n LinkModule,\r\n ErrorMessageModule,\r\n DxDataGridModule,\r\n DxiColumnModule,\r\n DxiItemModule,\r\n DxoToolbarModule,\r\n ModalModule,\r\n ToasterServiceModule,\r\n SharedFormModule,\r\n HintErrorMessageModule\r\n ],\r\n providers: [\r\n ObjectFormService,\r\n ConcurrencyStoreService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ConcurrencyInterceptor,\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class ObjectFormModule {\r\n}\r\n","export function isNumeric(str: any) {\r\n if (typeof str != 'string') {\r\n return false; // we only process strings!\r\n }\r\n return !isNaN(str as any) && !isNaN(parseInt(str)) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\r\n !isNaN(parseFloat(str)) // ...and ensure strings of whitespace fail\r\n}\r\n\r\nexport const isNullOrUndefined = (model: any) => {\r\n return model === null || typeof model === 'undefined'\r\n}\r\n","/*\r\n * Public API Surface of myrtex-form\r\n */\r\n\r\nexport * from './lib/modules/object-form/object-form.module';\r\nexport * from './lib/modules/object-form/models';\r\nexport * from './lib/modules/object-form/store';\r\nexport * from './lib/modules/object-form/constants';\r\n\r\nexport * from './lib/modules/object-form/components/elements/input/table';\r\n\r\nexport * from './lib/modules/shared-form/shared-form.module';\r\nexport * from './lib/modules/shared-form/store';\r\nexport * from './lib/modules/shared-form/enums';\r\nexport * from './lib/modules/shared-form/helpers';\r\nexport * from './lib/modules/shared-form/interceptors';\r\nexport * from './lib/modules/shared-form/models';\r\nexport * from './lib/modules/shared-form/services';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["selectTemplateSysName","sharedSelectors.selectRouteNestedParam","objectFormActions.updateApiUrl","objectFormActions.loadObjectPending","objectFormActions.loadObjectSuccess","fromHelpers.getMenuModel","objectFormActions.loadObjectError","objectFormActions.updateValues","fromHelpers.getDependenceRulesResults","fromHelpers.getUpdatedValues","fromHelpers.getValuesToClean","objectFormActions.saveValuesSuccess","objectFormActions.saveValuesError","objectFormActions.saveObjectPending","objectFormActions.saveObjectSuccess","objectFormActions.saveObjectError","objectFormActions.updateSelectedSectionSysName","objectFormActions.loadSectionFilesPending","objectFormActions.loadSectionFilesSuccess","objectFormActions.toggleCheckRequired","objectFormActions.updateCheckRequired","objectFormActions.loadPreviewTemplatePending","objectFormActions.loadPreviewTemplateSuccess","fromHelpers.getPreviewMenuModel","objectFormActions.loadPreviewTemplateError","objectFormActions.checkAllDependencyRules","fromHelpers.checkDependenceRule","objectFormActions.loadTemplatePending","objectFormActions.loadTemplateSuccess","objectFormActions.loadTemplateError","objectFormSelectors.selectApiPrefix","objectFormActions.accessUpdateValues","objectFormActions.saveValuesPending","objectFormSelectors.selectSectionValues","objectFormActions.copyObjectSuccess","objectFormActions.copyObjectError","objectFormActions.loadSectionFilesError","objectFormSelectors.selectApiUrl","i4.ObjectFormService","i5","objectFormSelectors.selectIsLoading","objectFormSelectors.selectMenuModel","i1","i2","i3","i4","objectFormSelectors.selectObjectId","objectFormSelectors.selectIsCheckRequired","objectFormSelectors.selectValueModel","objectFormSelectors.selectSectionFiles","objectFormSelectors.selectDependencyRulesResults","uuidv4","components.InputTextComponent","components.InputTextareaComponent","components.InputLinkComponent","components.InputSwitchComponent","components.InputNumberComponent","components.InputSelectComponent","components.InputDateComponent","components.InputInnComponent","components.InputFileComponent","components.InputPhoneComponent","components.InputCheckboxGroupComponent","components.InputRadioGroupComponent","components.InputTableComponent","components.ContentTitleComponent","components.ContentTextComponent","components.ContentTooltipComponent","components.ContentFileComponent","components.ContentDividerComponent","objectFormSelectors.selectSectionSettings","i1.FormDispenser"],"mappings":"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"}