@yuuvis/client-framework 1.0.3 → 2.0.0-beta.10
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.
- package/actions/lib/actions/delete-action/delete/delete.component.d.ts +3 -3
- package/actions/lib/actions/delete-action/delete-action.d.ts +1 -1
- package/actions/lib/actions.service.d.ts +7 -3
- package/actions/lib/components/contextmenu/contextmenu.component.d.ts +3 -1
- package/autocomplete/README.md +3 -0
- package/autocomplete/index.d.ts +3 -0
- package/autocomplete/lib/autocomplete.component.d.ts +72 -0
- package/autocomplete/lib/autocomplete.interface.d.ts +4 -0
- package/autocomplete/lib/autocomplete.module.d.ts +7 -0
- package/common/index.d.ts +4 -4
- package/common/lib/common.module.d.ts +19 -0
- package/common/lib/common.utils.d.ts +2 -0
- package/common/lib/components/confirm/confirm.component.d.ts +7 -0
- package/common/lib/components/confirm/confirm.interface.d.ts +7 -0
- package/common/lib/components/confirm/confirm.service.d.ts +9 -0
- package/common/lib/components/dialog/dialog.component.d.ts +6 -0
- package/common/lib/components/dialog/dialog.options.d.ts +7 -0
- package/common/lib/components/index.d.ts +5 -0
- package/common/lib/directives/autofocus-child.directive.d.ts +13 -0
- package/common/lib/directives/autofocus-delayed.directive.d.ts +18 -0
- package/common/lib/directives/drag-scroll.directive.d.ts +20 -0
- package/common/lib/directives/index.d.ts +8 -4
- package/common/lib/directives/noop-value-accessor.directive.d.ts +2 -2
- package/common/lib/mat-form-field.abstract.d.ts +41 -0
- package/common/lib/services/index.d.ts +1 -1
- package/common/lib/services/layout-settings/layout-settings.service.d.ts +18 -0
- package/datepicker/README.md +3 -0
- package/datepicker/index.d.ts +5 -0
- package/datepicker/lib/calendar/calendar.component.d.ts +72 -0
- package/datepicker/lib/date-input/date-input-element/date-input-element.component.d.ts +43 -0
- package/datepicker/lib/date-input/date-input-hour-element/date-input-hour-element.component.d.ts +11 -0
- package/datepicker/lib/date-input/date-input.component.d.ts +61 -0
- package/datepicker/lib/datepicker-calendar/datepicker-calendar-trigger.component.d.ts +7 -0
- package/datepicker/lib/datepicker-calendar/datepicker-calendar.component.d.ts +12 -0
- package/datepicker/lib/datepicker.component.d.ts +80 -0
- package/datepicker/lib/datepicker.interface.d.ts +34 -0
- package/datepicker/lib/datepicker.module.d.ts +9 -0
- package/datepicker/lib/datepicker.service.d.ts +46 -0
- package/datepicker/lib/datepicker.utils.d.ts +23 -0
- package/datepicker/lib/time-input/time-input.component.d.ts +36 -0
- package/datepicker/lib/time-input/time-input.interface.d.ts +6 -0
- package/fesm2022/yuuvis-client-framework-actions.mjs +147 -105
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-app-bar.mjs +7 -8
- package/fesm2022/yuuvis-client-framework-app-bar.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-autocomplete.mjs +210 -0
- package/fesm2022/yuuvis-client-framework-autocomplete.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-clipboard.mjs +9 -9
- package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-common.mjs +853 -780
- package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-datepicker.mjs +1688 -0
- package/fesm2022/yuuvis-client-framework-datepicker.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-forms.mjs +945 -1157
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-icons.mjs +85 -12
- package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-list.mjs +81 -45
- package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-master-details.mjs +112 -0
- package/fesm2022/yuuvis-client-framework-master-details.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs +60 -0
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs +125 -100
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-details.mjs +49 -59
- package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +188 -77
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs +99 -184
- package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-preview.mjs +12 -12
- package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs +46 -42
- package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-overflow-menu.mjs +126 -0
- package/fesm2022/yuuvis-client-framework-overflow-menu.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-pagination.mjs +7 -9
- package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-panel.mjs +8 -7
- package/fesm2022/yuuvis-client-framework-panel.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-popout.mjs +212 -0
- package/fesm2022/yuuvis-client-framework-popout.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-renderer.mjs +99 -72
- package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs +29 -112
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-simple-search.mjs +40 -21
- package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-split-view.mjs +188 -0
- package/fesm2022/yuuvis-client-framework-split-view.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +100 -93
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tree.mjs +15 -15
- package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs +16 -21
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework.mjs +4 -4
- package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
- package/forms/index.d.ts +7 -1
- package/forms/lib/elements/catalog/catalog.component.d.ts +17 -56
- package/forms/lib/elements/data-grid/edit-table-data/edit-data.component.d.ts +5 -4
- package/forms/lib/elements/datetime/datetime.component.d.ts +19 -10
- package/forms/lib/elements/datetime-range/datetime-range.component.d.ts +12 -27
- package/forms/lib/elements/index.d.ts +0 -1
- package/forms/lib/elements/number/number.component.d.ts +21 -30
- package/forms/lib/elements/number-range/number-range.component.d.ts +12 -7
- package/forms/lib/elements/organization/organization.component.d.ts +23 -51
- package/forms/lib/elements/range-select-date/range-select-date.component.d.ts +12 -7
- package/forms/lib/elements/range-select-filesize/range-select-filesize.component.d.ts +12 -7
- package/forms/lib/elements/string/string.component.d.ts +15 -20
- package/forms/lib/forms.module.d.ts +8 -11
- package/icons/index.d.ts +1 -0
- package/icons/lib/icon.component.d.ts +20 -0
- package/lib/assets/i18n/de.json +7 -23
- package/lib/assets/i18n/en.json +10 -26
- package/list/index.d.ts +1 -0
- package/list/lib/list-item.directive.d.ts +5 -4
- package/list/lib/list.component.d.ts +6 -3
- package/list/lib/list.module.d.ts +8 -0
- package/master-details/README.md +3 -0
- package/master-details/index.d.ts +2 -0
- package/master-details/lib/master-details.component.d.ts +58 -0
- package/master-details/lib/master-details.interface.d.ts +7 -0
- package/master-details/lib/master-details.module.d.ts +7 -0
- package/metadata-form/index.d.ts +4 -1
- package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +4 -17
- package/metadata-form/lib/metadata-form-field/metadata-form-field.interface.d.ts +11 -0
- package/metadata-form/lib/object-metadata-element-error.directive.d.ts +13 -0
- package/metadata-form/lib/object-metadata-element-label.directive.d.ts +10 -0
- package/metadata-form/lib/object-metadata-element-template.directive.d.ts +3 -3
- package/metadata-form-defaults/README.md +3 -0
- package/metadata-form-defaults/index.d.ts +2 -0
- package/metadata-form-defaults/lib/metadata-form-defaults.module.d.ts +7 -0
- package/object-details/lib/object-audit/object-audit.component.d.ts +3 -9
- package/object-details/lib/object-details.component.d.ts +0 -2
- package/object-details/lib/object-metadata/object-metadata.component.d.ts +4 -3
- package/object-details/lib/retention-badge/retention-badge.component.d.ts +0 -3
- package/object-flavor/index.d.ts +1 -0
- package/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.d.ts +1 -2
- package/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.d.ts +3 -2
- package/object-flavor/lib/default-apply-flavor/default-apply-flavor.component.d.ts +19 -0
- package/object-flavor/lib/flavor-chip/flavor-chip.component.d.ts +1 -1
- package/object-flavor/lib/object-flavor/object-flavor.component.d.ts +3 -6
- package/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.d.ts +0 -1
- package/object-form/index.d.ts +1 -1
- package/object-form/lib/object-form-element/object-form-element.component.d.ts +2 -2
- package/object-form/lib/object-form-group/object-form-group.component.d.ts +1 -3
- package/object-form/lib/object-form.component.d.ts +2 -2
- package/object-form/lib/object-form.interface.d.ts +0 -44
- package/object-form/lib/object-form.module.d.ts +7 -0
- package/object-form/lib/object-form.service.d.ts +1 -2
- package/object-form/lib/object-form.utils.d.ts +1 -1
- package/object-summary/lib/object-summary/object-summary.component.d.ts +13 -15
- package/overflow-menu/README.md +3 -0
- package/overflow-menu/index.d.ts +3 -0
- package/overflow-menu/lib/overflow-menu.component.d.ts +31 -0
- package/overflow-menu/lib/overflow-menu.interface.d.ts +9 -0
- package/overflow-menu/lib/overflow-menu.module.d.ts +7 -0
- package/package.json +41 -67
- package/popout/README.md +3 -0
- package/popout/index.d.ts +3 -0
- package/popout/lib/popout.component.d.ts +58 -0
- package/popout/lib/popout.interface.d.ts +17 -0
- package/popout/lib/popout.module.d.ts +7 -0
- package/renderer/lib/property-renderer/abstract.renderer.d.ts +4 -4
- package/renderer/lib/property-renderer/icon.renderer.component.d.ts +2 -0
- package/renderer/lib/renderer.directive.d.ts +4 -3
- package/sequence-list/index.d.ts +0 -1
- package/sequence-list/lib/sequence-list.component.d.ts +0 -4
- package/simple-search/index.d.ts +0 -1
- package/simple-search/lib/simple-search/simple-search.component.d.ts +6 -10
- package/split-view/README.md +3 -0
- package/split-view/index.d.ts +4 -0
- package/split-view/lib/split-area.directive.d.ts +16 -0
- package/split-view/lib/split-view.component.d.ts +76 -0
- package/split-view/lib/split-view.interface.d.ts +10 -0
- package/split-view/lib/split-view.module.d.ts +8 -0
- package/styles/client-framework.scss +21 -67
- package/tile-list/lib/tile/tile.component.d.ts +1 -2
- package/tile-list/lib/tile-config/property-select/property-select.component.d.ts +0 -1
- package/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.d.ts +1 -2
- package/tile-list/lib/tile-config/tile-config.component.d.ts +0 -3
- package/tile-list/lib/tile-list/tile-list.component.d.ts +5 -5
- package/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.d.ts +0 -5
- package/upload-progress/lib/upload-progress/upload-progress.component.d.ts +0 -4
- package/common/lib/components/focus-indicator/focus-indicator.component.d.ts +0 -7
- package/common/lib/components/token-input/token-input.component.d.ts +0 -55
- package/common/lib/components/token-input/token-input.interface.d.ts +0 -8
- package/common/lib/services/error-messages/error-messages.service.d.ts +0 -7
- package/esm2022/actions/index.mjs +0 -7
- package/esm2022/actions/lib/actions/copy-action/copy-action.mjs +0 -31
- package/esm2022/actions/lib/actions/cut-action/cut-action.mjs +0 -30
- package/esm2022/actions/lib/actions/delete-action/delete/delete.component.mjs +0 -67
- package/esm2022/actions/lib/actions/delete-action/delete-action.mjs +0 -38
- package/esm2022/actions/lib/actions/download-action/download-action.mjs +0 -33
- package/esm2022/actions/lib/actions.icon.mjs +0 -8
- package/esm2022/actions/lib/actions.interface.mjs +0 -19
- package/esm2022/actions/lib/actions.module.mjs +0 -16
- package/esm2022/actions/lib/actions.service.mjs +0 -89
- package/esm2022/actions/lib/components/contextmenu/contextmenu.component.mjs +0 -27
- package/esm2022/actions/yuuvis-client-framework-actions.mjs +0 -5
- package/esm2022/app-bar/index.mjs +0 -2
- package/esm2022/app-bar/lib/app-bar.component.mjs +0 -89
- package/esm2022/app-bar/yuuvis-client-framework-app-bar.mjs +0 -5
- package/esm2022/clipboard/index.mjs +0 -2
- package/esm2022/clipboard/lib/clipboard.component.mjs +0 -48
- package/esm2022/clipboard/yuuvis-client-framework-clipboard.mjs +0 -5
- package/esm2022/common/index.mjs +0 -7
- package/esm2022/common/lib/components/focus-indicator/focus-indicator.component.mjs +0 -41
- package/esm2022/common/lib/components/token-input/token-input.component.mjs +0 -324
- package/esm2022/common/lib/components/token-input/token-input.interface.mjs +0 -2
- package/esm2022/common/lib/directives/busy-overlay.directive.mjs +0 -88
- package/esm2022/common/lib/directives/click-double.directive.mjs +0 -61
- package/esm2022/common/lib/directives/container-size.directive.mjs +0 -56
- package/esm2022/common/lib/directives/drag-select.directive.mjs +0 -114
- package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.directive.mjs +0 -153
- package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.interface.mjs +0 -2
- package/esm2022/common/lib/directives/focus-within.directive.mjs +0 -81
- package/esm2022/common/lib/directives/index.mjs +0 -9
- package/esm2022/common/lib/directives/light-dismiss.directive.mjs +0 -44
- package/esm2022/common/lib/directives/longpress.directive.mjs +0 -36
- package/esm2022/common/lib/directives/noop-value-accessor.directive.mjs +0 -42
- package/esm2022/common/lib/services/error-messages/error-messages.service.mjs +0 -68
- package/esm2022/common/lib/services/index.mjs +0 -2
- package/esm2022/common/yuuvis-client-framework-common.mjs +0 -5
- package/esm2022/forms/index.mjs +0 -24
- package/esm2022/forms/lib/elements/catalog/catalog.component.mjs +0 -118
- package/esm2022/forms/lib/elements/data-grid/data-grid/data-grid.component.mjs +0 -172
- package/esm2022/forms/lib/elements/data-grid/edit-table-data/edit-data.component.mjs +0 -95
- package/esm2022/forms/lib/elements/data-grid/model/data-grid.interface.mjs +0 -9
- package/esm2022/forms/lib/elements/datetime/datetime.component.mjs +0 -82
- package/esm2022/forms/lib/elements/datetime-range/datetime-range.component.mjs +0 -166
- package/esm2022/forms/lib/elements/index.mjs +0 -11
- package/esm2022/forms/lib/elements/number/number.component.mjs +0 -195
- package/esm2022/forms/lib/elements/number-range/number-range.component.mjs +0 -176
- package/esm2022/forms/lib/elements/organization/organization.component.mjs +0 -286
- package/esm2022/forms/lib/elements/range-select-date/date-range-picker/date-range-picker.component.mjs +0 -38
- package/esm2022/forms/lib/elements/range-select-date/range-select-date.component.mjs +0 -181
- package/esm2022/forms/lib/elements/range-select-date/range-select-date.interface.mjs +0 -2
- package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.component.mjs +0 -98
- package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.interface.mjs +0 -2
- package/esm2022/forms/lib/elements/string/string.component.mjs +0 -261
- package/esm2022/forms/lib/form-input/form-input.component.mjs +0 -88
- package/esm2022/forms/lib/forms.module.mjs +0 -58
- package/esm2022/forms/yuuvis-client-framework-forms.mjs +0 -5
- package/esm2022/icons/index.mjs +0 -4
- package/esm2022/icons/lib/icon.service.mjs +0 -59
- package/esm2022/icons/lib/icons.mjs +0 -32
- package/esm2022/icons/lib/object-type-icon/object-type-icon.component.mjs +0 -29
- package/esm2022/icons/yuuvis-client-framework-icons.mjs +0 -5
- package/esm2022/index.mjs +0 -2
- package/esm2022/lib/yuuvis-client-framework.module.mjs +0 -15
- package/esm2022/list/index.mjs +0 -3
- package/esm2022/list/lib/list-item.directive.mjs +0 -72
- package/esm2022/list/lib/list.component.mjs +0 -135
- package/esm2022/list/yuuvis-client-framework-list.mjs +0 -5
- package/esm2022/metadata-form/index.mjs +0 -4
- package/esm2022/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.mjs +0 -32
- package/esm2022/metadata-form/lib/metadata-form-element-registry.service.mjs +0 -99
- package/esm2022/metadata-form/lib/metadata-form-field/metadata-form-field.component.mjs +0 -83
- package/esm2022/metadata-form/lib/object-metadata-element-template.directive.mjs +0 -52
- package/esm2022/metadata-form/yuuvis-client-framework-metadata-form.mjs +0 -5
- package/esm2022/object-details/index.mjs +0 -8
- package/esm2022/object-details/lib/object-audit/object-audit.component.mjs +0 -195
- package/esm2022/object-details/lib/object-details-shell/object-details-shell.component.mjs +0 -127
- package/esm2022/object-details/lib/object-details.component.mjs +0 -61
- package/esm2022/object-details/lib/object-metadata/form-section-group.pipe.mjs +0 -17
- package/esm2022/object-details/lib/object-metadata/object-metadata.component.mjs +0 -202
- package/esm2022/object-details/lib/object-metadata/object-metadata.interface.mjs +0 -2
- package/esm2022/object-details/lib/retention-badge/retention-badge.component.mjs +0 -27
- package/esm2022/object-details/yuuvis-client-framework-object-details.mjs +0 -5
- package/esm2022/object-flavor/index.mjs +0 -6
- package/esm2022/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.mjs +0 -25
- package/esm2022/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.mjs +0 -21
- package/esm2022/object-flavor/lib/flavor-chip/flavor-chip.component.mjs +0 -35
- package/esm2022/object-flavor/lib/object-flavor/object-flavor.component.mjs +0 -93
- package/esm2022/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.mjs +0 -43
- package/esm2022/object-flavor/yuuvis-client-framework-object-flavor.mjs +0 -5
- package/esm2022/object-form/index.mjs +0 -5
- package/esm2022/object-form/lib/form-scripting.api.interface.mjs +0 -2
- package/esm2022/object-form/lib/form-scripting.service.mjs +0 -160
- package/esm2022/object-form/lib/object-form-element/object-form-element.component.mjs +0 -87
- package/esm2022/object-form/lib/object-form-extension.interface.mjs +0 -36
- package/esm2022/object-form/lib/object-form-group/object-form-group.component.mjs +0 -85
- package/esm2022/object-form/lib/object-form-script/form-scripting-element-extension/form-scripting-element-extension.component.mjs +0 -23
- package/esm2022/object-form/lib/object-form-script/object-form-script.service.mjs +0 -115
- package/esm2022/object-form/lib/object-form-script/object-form-scripting-scope.mjs +0 -251
- package/esm2022/object-form/lib/object-form-translate.service.mjs +0 -73
- package/esm2022/object-form/lib/object-form.component.mjs +0 -628
- package/esm2022/object-form/lib/object-form.interface.mjs +0 -9
- package/esm2022/object-form/lib/object-form.model.mjs +0 -20
- package/esm2022/object-form/lib/object-form.service.mjs +0 -130
- package/esm2022/object-form/lib/object-form.utils.mjs +0 -55
- package/esm2022/object-form/lib/object-form.validation.mjs +0 -48
- package/esm2022/object-form/yuuvis-client-framework-object-form.mjs +0 -5
- package/esm2022/object-preview/index.mjs +0 -3
- package/esm2022/object-preview/lib/components/index.mjs +0 -3
- package/esm2022/object-preview/lib/components/object-email-preview/object-email-preview.component.mjs +0 -45
- package/esm2022/object-preview/lib/components/object-preview/object-preview.component.mjs +0 -78
- package/esm2022/object-preview/lib/services/object-preview.service.mjs +0 -119
- package/esm2022/object-preview/yuuvis-client-framework-object-preview.mjs +0 -5
- package/esm2022/object-summary/index.mjs +0 -5
- package/esm2022/object-summary/lib/multi-object-summary/multi-object-summary.component.mjs +0 -33
- package/esm2022/object-summary/lib/object-summary/object-summary.component.mjs +0 -275
- package/esm2022/object-summary/lib/object-summary-data/object-summary-data.component.mjs +0 -80
- package/esm2022/object-summary/lib/object-summary.module.mjs +0 -15
- package/esm2022/object-summary/yuuvis-client-framework-object-summary.mjs +0 -5
- package/esm2022/pagination/index.mjs +0 -3
- package/esm2022/pagination/lib/pagination.component.mjs +0 -46
- package/esm2022/pagination/lib/pagination.interface.mjs +0 -2
- package/esm2022/pagination/yuuvis-client-framework-pagination.mjs +0 -5
- package/esm2022/panel/index.mjs +0 -2
- package/esm2022/panel/lib/panel.component.mjs +0 -20
- package/esm2022/panel/yuuvis-client-framework-panel.mjs +0 -5
- package/esm2022/renderer/index.mjs +0 -11
- package/esm2022/renderer/lib/property-renderer/abstract.renderer.mjs +0 -29
- package/esm2022/renderer/lib/property-renderer/datetime.renderer.mjs +0 -13
- package/esm2022/renderer/lib/property-renderer/decimal.renderer.component.mjs +0 -12
- package/esm2022/renderer/lib/property-renderer/filesize.renderer.component.mjs +0 -28
- package/esm2022/renderer/lib/property-renderer/icon.renderer.component.mjs +0 -23
- package/esm2022/renderer/lib/property-renderer/integer.renderer.component.mjs +0 -12
- package/esm2022/renderer/lib/property-renderer/organization.renderer.mjs +0 -19
- package/esm2022/renderer/lib/property-renderer/string.renderer.component.mjs +0 -12
- package/esm2022/renderer/lib/property-renderer/unknown.renderer.mjs +0 -12
- package/esm2022/renderer/lib/renderer.directive.mjs +0 -51
- package/esm2022/renderer/lib/services/renderer/renderer.interface.mjs +0 -2
- package/esm2022/renderer/lib/services/renderer/renderer.service.mjs +0 -84
- package/esm2022/renderer/yuuvis-client-framework-renderer.mjs +0 -5
- package/esm2022/sequence-list/index.mjs +0 -4
- package/esm2022/sequence-list/lib/due-date-picker/due-date-picker.component.mjs +0 -99
- package/esm2022/sequence-list/lib/sequence-list.component.mjs +0 -141
- package/esm2022/sequence-list/lib/sequence-list.interface.mjs +0 -2
- package/esm2022/sequence-list/yuuvis-client-framework-sequence-list.mjs +0 -5
- package/esm2022/simple-search/index.mjs +0 -3
- package/esm2022/simple-search/lib/simple-search/simple-search.component.mjs +0 -111
- package/esm2022/simple-search/lib/simple-search/simple-search.interface.mjs +0 -2
- package/esm2022/simple-search/yuuvis-client-framework-simple-search.mjs +0 -5
- package/esm2022/tile-list/index.mjs +0 -11
- package/esm2022/tile-list/lib/tile/tile.component.mjs +0 -53
- package/esm2022/tile-list/lib/tile-config/action-select/action-select.component.mjs +0 -25
- package/esm2022/tile-list/lib/tile-config/icon-select/icon-select.component.mjs +0 -33
- package/esm2022/tile-list/lib/tile-config/property-select/property-select.component.mjs +0 -91
- package/esm2022/tile-list/lib/tile-config/tile-config-tile/tile-config-tile.component.mjs +0 -66
- package/esm2022/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.mjs +0 -46
- package/esm2022/tile-list/lib/tile-config/tile-config.component.mjs +0 -156
- package/esm2022/tile-list/lib/tile-extension/directive/tile-extension.directive.mjs +0 -37
- package/esm2022/tile-list/lib/tile-extension/extensions/email.extension.mjs +0 -42
- package/esm2022/tile-list/lib/tile-extension/tile-extension.service.mjs +0 -35
- package/esm2022/tile-list/lib/tile-list/tile-list.component.mjs +0 -510
- package/esm2022/tile-list/lib/tile-list/tile-list.interface.mjs +0 -2
- package/esm2022/tile-list/yuuvis-client-framework-tile-list.mjs +0 -5
- package/esm2022/token-search/index.mjs +0 -3
- package/esm2022/token-search/token-search.component.mjs +0 -78
- package/esm2022/token-search/token-search.interface.mjs +0 -2
- package/esm2022/token-search/yuuvis-client-framework-token-search.mjs +0 -5
- package/esm2022/tree/index.mjs +0 -3
- package/esm2022/tree/lib/tree-node/tree-node.component.mjs +0 -65
- package/esm2022/tree/lib/tree.component.mjs +0 -148
- package/esm2022/tree/lib/tree.interface.mjs +0 -2
- package/esm2022/tree/lib/tree.service.mjs +0 -95
- package/esm2022/tree/yuuvis-client-framework-tree.mjs +0 -5
- package/esm2022/upload-progress/index.mjs +0 -2
- package/esm2022/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.mjs +0 -49
- package/esm2022/upload-progress/lib/upload-progress/upload-progress.component.mjs +0 -37
- package/esm2022/upload-progress/yuuvis-client-framework-upload-progress.mjs +0 -5
- package/esm2022/user-avatar/index.mjs +0 -3
- package/esm2022/user-avatar/lib/user-avatar.component.mjs +0 -69
- package/esm2022/user-avatar/lib/user-avatar.module.mjs +0 -24
- package/esm2022/user-avatar/yuuvis-client-framework-user-avatar.mjs +0 -5
- package/esm2022/yuuvis-client-framework.mjs +0 -5
- package/fesm2022/yuuvis-client-framework-token-search.mjs +0 -85
- package/fesm2022/yuuvis-client-framework-token-search.mjs.map +0 -1
- package/fesm2022/yuuvis-client-framework-user-avatar.mjs +0 -96
- package/fesm2022/yuuvis-client-framework-user-avatar.mjs.map +0 -1
- package/forms/lib/form-input/form-input.component.d.ts +0 -48
- package/object-form/lib/object-form-translate.service.d.ts +0 -15
- package/object-form/lib/object-form.model.d.ts +0 -18
- package/sequence-list/lib/due-date-picker/due-date-picker.component.d.ts +0 -28
- package/simple-search/lib/simple-search/simple-search.interface.d.ts +0 -4
- package/token-search/README.md +0 -3
- package/token-search/index.d.ts +0 -2
- package/token-search/token-search.component.d.ts +0 -22
- package/token-search/token-search.interface.d.ts +0 -4
- package/user-avatar/README.md +0 -3
- package/user-avatar/index.d.ts +0 -2
- package/user-avatar/lib/user-avatar.component.d.ts +0 -44
- package/user-avatar/lib/user-avatar.module.d.ts +0 -8
- /package/{metadata-form → metadata-form-defaults}/lib/metadata-default-templates/metadata-default-templates.component.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuuvis-client-framework-forms.mjs","sources":["../../../../../libs/yuuvis/client-framework/forms/src/lib/form-input/form-input.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/form-input/form-input.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/catalog/catalog.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/catalog/catalog.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number/number.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number/number.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/string/string.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/string/string.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/data-grid/edit-table-data/edit-data.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/data-grid/edit-table-data/edit-data.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/data-grid/model/data-grid.interface.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/data-grid/data-grid/data-grid.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/data-grid/data-grid/data-grid.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime/datetime.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime/datetime.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime-range/datetime-range.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime-range/datetime-range.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number-range/number-range.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number-range/number-range.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/organization/organization.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/organization/organization.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-date/date-range-picker/date-range-picker.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-date/date-range-picker/date-range-picker.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-date/range-select-date.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-date/range-select-date.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-filesize/range-select-filesize.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-filesize/range-select-filesize.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/forms.module.ts","../../../../../libs/yuuvis/client-framework/forms/src/index.ts","../../../../../libs/yuuvis/client-framework/forms/src/yuuvis-client-framework-forms.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, HostBinding, Input, Renderer2, ViewChild, ViewEncapsulation, inject } from '@angular/core';\nimport { FocusWithinDirective } from '@yuuvis/client-framework/common';\n\n/**\n * Component for wrapping a form element. Provides a label and focus behaviour.\n *\n * @example\n * <yuv-form-input [label]=\"'my form element'\">\n * <!-- form element to be wrapped -->\n * </yuv-form-input>\n */\n@Component({\n selector: 'yuv-form-input',\n standalone: true,\n imports: [CommonModule, FocusWithinDirective],\n templateUrl: './form-input.component.html',\n styleUrls: ['./form-input.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FormInputComponent {\n @ViewChild('label', { static: true }) labelEl!: ElementRef;\n\n private renderer = inject(Renderer2);\n\n _label?: string;\n\n /**\n * A label string for the wrapped form element\n */\n @Input() set label(val: string) {\n this._label = val;\n }\n\n /**\n * A tag that can be applied to the input (including title that shows up once the user hovers the tag)\n */\n @Input() tag?: { label: string; title: string };\n /**\n * Optional description for the form input\n */\n @Input() description?: string;\n\n /**\n * Indicator that the wrapped form element is invalid. Will then render appropriate styles.\n * You may also provide an array of error messages.\n */\n @Input() set invalid(iv: boolean | string[] | undefined) {\n if (iv === null || iv === undefined) {\n this.isInvalid = false;\n this.renderer.removeAttribute(this.labelEl.nativeElement, 'title');\n } else if (Array.isArray(iv)) {\n this.isInvalid = iv.length > 0;\n if (this.isInvalid) {\n this.renderer.setAttribute(this.labelEl.nativeElement, 'title', iv.join(';'));\n }\n } else {\n this.isInvalid = iv;\n }\n }\n /**\n * Indicator that the wrapped form element is disabled. Will then render appropriate styles.\n */\n @Input() set disabled(d: boolean) {\n this.isDisabled = d;\n }\n\n /**\n * Indicator that the wrapped form element is mandatory. Will then render appropriate styles.\n */\n @Input()\n set required(d: boolean) {\n this.isRequired = d;\n }\n\n @HostBinding('class.disabled') isDisabled = false;\n @HostBinding('class.invalid') isInvalid = false;\n @HostBinding('class.required') isRequired = false;\n}\n","<div class=\"fe-wrapper\" yuvFocusWithin>\n @if (tag) {\n <div class=\"tag\" title=\"{{ tag.title }}\">{{ tag.label }}</div>\n }\n <label class=\"form-input__label\" #label>{{ _label }}</label>\n <div class=\"control\">\n <ng-content></ng-content>\n </div>\n</div>\n@if (description) {\n <div class=\"description\">{{ description }}</div>\n}\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Classification, ClassificationEntry, SystemService } from '@yuuvis/client-core';\nimport { DropdownOption, YvcDropdownModule } from '@yuuvis/components/dropdown';\n\n/**\n * Component rendering a simple catalog as form element.\n * There are two ways how to use this component. One is to add options as an array\n * of strings on your own, the second one is to apply a special classification.\n *\n * Classifications are used within form models and rendered as object forms. Elements\n * with a classification of `catalog[Item1, Item2, Item3]` will use this component\n * as well. So you may also choose to set a classification like this in order to\n * apply your options.\n *\n * @example\n * <!-- setting options as string array -->\n * <yuv-catalog [options]=\"cities\" [(ngModel)]=\"hometown\"></yuv-catalog>\n *\n * <!-- setting options using a classification -->\n * <yuv-catalog [classification]=\"'catalog[Berlin, Chicago, Paris]'\" [(ngModel)]=\"hometown\"></yuv-catalog>\n */\n@Component({\n selector: 'yuv-catalog',\n standalone: true,\n imports: [FormsModule, YvcDropdownModule],\n templateUrl: './catalog.component.html',\n styleUrls: ['./catalog.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CatalogComponent),\n multi: true\n }\n ],\n host: { class: 'yuv-catalog' }\n})\nexport class CatalogComponent implements ControlValueAccessor {\n value?: string | string[];\n _options: DropdownOption[] = [];\n\n getLabel = (value: any) => (this._options ? this._options.find((o) => o.value === value) || { label: value } : { label: value }).label;\n\n /**\n * Enable filtering of options\n */\n @Input() filter = false;\n /**\n * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`. In search situation validation of the form element will be turned off, so you are able to enter search terms that do not meet the elements validators.\n */\n @Input() situation?: string;\n /**\n * By default a filter panel will shown if the number of options exceeds 10 entries. You could\n * change this number.\n */\n @Input() enableFilterWhenOptionsExceed = 10;\n /**\n * Array of selectable entries\n */\n @Input() set options(options: (string | any)[]) {\n this._options = options && typeof options[0] === 'string' ? options.map((o) => ({ label: o, value: o })) : options || [];\n this.filter = this.filter || this._options?.length > this.enableFilterWhenOptionsExceed;\n }\n /**\n * Indicator that multiple items could be selected\n */\n @Input() multiselect = false;\n /**\n * Additional semantics for the form element.\n */\n @Input() set classifications(c: string[]) {\n const ce: ClassificationEntry | undefined = this.systemService.getClassifications(c).get(Classification.STRING_CATALOG);\n if (ce && ce.options) {\n this.options = ce.options;\n }\n }\n\n /**\n * Will attch the overlay to this HTMLelement\n */\n @Input() appendTo = null;\n\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n\n constructor(private systemService: SystemService) {}\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: any): void {\n this.value = value === undefined ? null : value;\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n onChange(value: string[] | string | undefined) {\n this.value = value;\n this.propagateChange(this.value);\n }\n}\n","<yvc-dropdown [multiple]=\"multiselect\" [options]=\"_options\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange($event)\" [filter]=\"filter\"\n [disabled]=\"readonly\"></yvc-dropdown>\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { Classification, TranslateService, Utils } from '@yuuvis/client-core';\nimport { FileSizePipe, LocaleNumberPipe } from '@yuuvis/client-core';\n\n/**\n * Creates form input for number values.\n *\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * @example\n * <yuv-number [scale]=\"2\"></yuv-number>\n *\n */\n@Component({\n selector: 'yuv-number',\n standalone: true,\n imports: [FormsModule],\n templateUrl: './number.component.html',\n styleUrls: ['./number.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumberComponent),\n multi: true\n }\n ]\n})\nexport class NumberComponent implements ControlValueAccessor, Validator {\n value?: number;\n innerValue: string | null = null;\n _scale?: number;\n _precision?: number;\n _pattern?: string;\n _grouping = false;\n validationErrors: ValidationErrors[] = [];\n numberPipe: LocaleNumberPipe | FileSizePipe;\n\n /**\n * Number of decimal places\n */\n @Input()\n set scale(val: number | undefined) {\n this._scale = Math.min(val || 0, 30);\n }\n get scale(): number | undefined {\n return this._scale;\n }\n /**\n * Overall amount of digits allowed (including decimal places)\n */\n @Input()\n set precision(val: number | undefined) {\n this._precision = Math.min(val || 100, 100);\n }\n get precision(): number | undefined {\n return this._precision;\n }\n /**\n * Set to true to group number by pattern\n */\n @Input()\n set grouping(val: boolean) {\n this._grouping = val ?? true;\n }\n get grouping(): boolean {\n return this._grouping;\n }\n /**\n * The pattern to group number value by\n */\n @Input()\n set groupPattern(val: string | undefined) {\n this._pattern = val;\n }\n get groupPattern(): string | undefined {\n return this._pattern;\n }\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n\n /**\n * set minimum input value\n */\n @Input() minValue?: number;\n\n /**\n * set maximum input value\n *\n */\n @Input() maxValue?: number;\n\n /**\n * classification property adds some semantics to the value of this component.\n * If you provide a value of `filesize` numbers typed into the control will be\n * handled like file sizes (calculates differnt units)\n */\n @Input() set classifications(classifications: string[]) {\n this.numberPipe =\n classifications && classifications.includes(Classification.NUMBER_FILESIZE) ? new FileSizePipe(this.translate) : new LocaleNumberPipe(this.translate);\n }\n\n static betweenTwoNumbers(val: number, minVal: number | undefined, maxVal: number | undefined) {\n const min = !Utils.isEmpty(minVal) ? minVal : -Infinity;\n const max = !Utils.isEmpty(maxVal) ? maxVal : Infinity;\n return val >= (min as number) && val <= (max as number);\n }\n\n constructor(private translate: TranslateService) {\n this.numberPipe = new LocaleNumberPipe(this.translate);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: any): void {\n this.value = value != null ? value : null;\n this.innerValue = value != null ? this.numberPipe.numberToString(value, this.grouping, this.groupPattern, this.scale) : null;\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(): void {}\n\n onValueChange(evt: any) {\n this.validationErrors = [];\n\n if (Utils.isEmpty(evt)) {\n this.value = undefined;\n this.propagateChange(this.value);\n return;\n }\n\n // validate input\n const val = this.numberPipe.stringToNumber(evt);\n // general number validation\n if (isNaN(val) || typeof val !== 'number') {\n this.validationErrors.push({ key: 'number' });\n } else {\n const split = evt.replaceAll(this.numberPipe.separator, '').split(this.numberPipe.decimalSeparator);\n // check precision\n if (this.precision !== undefined) {\n const prePointDigits = this.precision - (this.scale || 0);\n if (split[0]?.length > prePointDigits) {\n this.validationErrors.push({ key: 'precision', params: { prePointDigits } });\n }\n }\n // check scale\n if (this.scale && split[1]?.length > this.scale) {\n this.validationErrors.push({ key: 'scale', params: { scale: this.scale } });\n }\n\n // min max\n if (!NumberComponent.betweenTwoNumbers(val, this.minValue, this.maxValue)) {\n if (Utils.isEmpty(this.minValue)) {\n this.validationErrors.push({ key: 'maxvalue', params: { maxValue: this.maxValue } });\n } else if (Utils.isEmpty(this.maxValue)) {\n this.validationErrors.push({ key: 'minvalue', params: { minValue: this.minValue } });\n } else {\n this.validationErrors.push({ key: 'minmax', params: { minValue: this.minValue, maxValue: this.maxValue } });\n }\n }\n\n if (!this.validationErrors.length) {\n this.value = val;\n }\n }\n this.propagateChange(this.value);\n }\n\n // called when the input looses focus\n public format() {\n if (!this.readonly && typeof this.value === 'number' && this.validationErrors.length === 0) {\n this.innerValue = this.numberPipe.numberToString(this.value, this.grouping, this.groupPattern, this.scale);\n }\n }\n\n // called when the input get focus\n public unformat() {\n if (!this.readonly && typeof this.value === 'number' && this.validationErrors.length === 0) {\n this.innerValue = this.numberPipe.transform(this.value, false);\n }\n }\n\n // returns null when valid else the validation object\n public validate() {\n return this.validationErrors.length ? Utils.arrayToObject(this.validationErrors, 'key', (err) => ({ valid: false, ...err })) : null;\n }\n}\n","<input type=\"string\" [(ngModel)]=\"innerValue\" (focus)=\"unformat()\" (blur)=\"format()\" class=\"input-number\"\n [readonly]=\"readonly\" (ngModelChange)=\"onValueChange($event)\" />\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, forwardRef, HostBinding, inject, Input } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, UntypedFormControl, ValidationErrors, Validator } from '@angular/forms';\nimport { Classification, ClassificationPrefix, FormattedMailTo, Situation, Utils } from '@yuuvis/client-core';\nimport { IconService } from '@yuuvis/client-framework/icons';\nimport { YvcChipsModule } from '@yuuvis/components/chips';\nimport { YvcIconModule } from '@yuuvis/components/icon';\n\n/**\n * Creates form input for strings. Based on the input values different kinds of inputs will be generated.\n *\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * @example\n * <!-- string input validating input to be between 5 and 10 characters -->\n * <yuv-string [minLength]=\"5\" [maxLength]=\"10\"></yuv-string>\n *\n * <!-- string input that only allow digits -->\n * <yuv-string [regex]=\"[0-9]*\"></yuv-string>\n *\n * <!-- string input rendering a large textarea -->\n * <yuv-string [rows]=\"10\"></yuv-string>\n *\n */\n@Component({\n selector: 'yuv-string',\n standalone: true,\n imports: [CommonModule, YvcChipsModule, YvcIconModule, FormsModule],\n templateUrl: './string.component.html',\n styleUrls: ['./string.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StringComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => StringComponent),\n multi: true\n }\n ]\n})\nexport class StringComponent implements ControlValueAccessor, Validator, AfterViewInit {\n private iconsService = inject(IconService);\n private elementRef = inject(ElementRef);\n\n classifiytionIcons = {\n email: this.iconsService.getIcon(ClassificationPrefix.EMAIL_ICON) || '',\n url: this.iconsService.getIcon(ClassificationPrefix.URL_ICON) || '',\n phone: this.iconsService.getIcon(ClassificationPrefix.PHONE_ICON) || ''\n };\n maxEntryCountIfInvalid?: number;\n\n // provides all css variables defined by |yuuvis/comonents\n @HostBinding('class.yvc-form-element') fe = true;\n\n /**\n * Indicator that multiple strings could be inserted, they will be rendered as chips (default: false).\n */\n @Input() multiselect = false;\n /**\n * Setting rows to more than 1 will generate a textarea instead of an input tag\n * and apply the rows property to it\n */\n @Input() rows?: number;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n /**\n * Enable autofucus for the input (default: false)\n */\n @Input() autofocus = false;\n /**\n * Additional semantics for the form element. Possible values are\n * `email` (validates and creates a link to send an email once there\n * is a valid email address) and `url` (validates and creates a link\n * to an URL typed into the form element).\n */\n @Input()\n set classifications(c: string[]) {\n this._classifications = c;\n if (c && c.length) {\n if (c.includes(Classification.STRING_EMAIL)) {\n this.classify = {\n hrefPrefix: ClassificationPrefix.EMAIL,\n icon: this.classifiytionIcons.email\n };\n } else if (c.includes(Classification.STRING_URL)) {\n this.classify = {\n hrefPrefix: ClassificationPrefix.URL,\n icon: this.classifiytionIcons.url\n };\n } else if (c.includes(Classification.STRING_PHONE)) {\n this.classify = {\n hrefPrefix: ClassificationPrefix.PHONE,\n icon: this.classifiytionIcons.phone\n };\n }\n }\n }\n\n get classifications() {\n return this._classifications;\n }\n /**\n * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`. In search situation validation of the form element will be turned off, so you are able to enter search terms that do not meet the elements validators.\n */\n @Input() situation?: string;\n\n /**\n * Regular expression to validate the input value against\n */\n @Input() regex?: string;\n /**\n * Minimal number of characters\n */\n @Input() minLength?: number;\n /**\n * Maximum number of characters\n */\n @Input() maxLength?: number;\n\n // model value\n value: any;\n formatedValue?: FormattedMailTo;\n valid = false;\n validationErrors: { [key: string]: any }[] = [];\n classify?: { hrefPrefix: string; icon: string | undefined };\n private _classifications: string[] = [];\n\n propagateChange = (_: any) => {};\n\n private propagate() {\n this.propagateChange(this.value);\n }\n\n writeValue(value: any): void {\n if (Array.isArray(value)) {\n value = value.filter((v) => typeof v === 'string' && v.trim().length > 0);\n }\n\n this.formatedValue = Utils.formatMailTo(value, this.classify?.hrefPrefix === ClassificationPrefix.EMAIL);\n this.value = value || null;\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(): void {}\n\n onValueChange(val: any) {\n this.maxEntryCountIfInvalid = undefined;\n this.validationErrors = [];\n\n if (Utils.isEmpty(val)) {\n this.value = null;\n this.propagate();\n\n return;\n }\n\n const multiCheck = (check: (s: string) => boolean) => !!(this.multiselect ? val : [val]).find((v: string) => check(v));\n\n // validate regular expression\n if (this.regex && multiCheck((v: string) => !RegExp(this.regex!).test(v))) {\n this.validationErrors.push({ key: 'regex' });\n }\n\n // validate classification settings\n if (this.classifications && this.classifications.length) {\n this.classifications.forEach((c) => {\n if (multiCheck((v) => !this.validateClassification(v, c))) {\n this.validationErrors.push({ key: 'classification' + c });\n }\n });\n }\n // validate min length\n if (!Utils.isEmpty(this.minLength) && multiCheck((v) => v.length < this.minLength!)) {\n this.validationErrors.push({ key: 'minlength', params: { minLength: this.minLength } });\n }\n\n // validate max length\n if (!Utils.isEmpty(this.maxLength) && multiCheck((v) => v.length > this.maxLength!)) {\n this.validationErrors.push({ key: 'maxlength', params: { maxLength: this.maxLength } });\n }\n\n // validate invalid if only whitespaces\n if (multiCheck((v) => v.length > 0 && !v.trim().length)) {\n this.validationErrors.push({ key: 'onlyWhitespaces' });\n }\n\n if (this.validationErrors.length && this.multiselect && this.value) {\n // Setting maxEntryCountIfInvalid to the actual length of the value array to prevent the user to add more entries.\n this.maxEntryCountIfInvalid = this.value.length;\n }\n\n this.formatedValue = Utils.formatMailTo(val, this.classify?.hrefPrefix === ClassificationPrefix.EMAIL);\n this.propagate();\n }\n\n onBlur() {\n if(this.multiselect) {\n // add on blur\n this.value.push('');\n }\n if (this.trimValue()) {\n this.propagate();\n }\n }\n\n /**\n * Trims the current value and returns wether or not it has been trimmed\n */\n private trimValue(): boolean {\n if (this.value) {\n if (this.multiselect) {\n const lengthBefore = this.value.join('').length;\n this.value = this.value.map((v: string) => v.trim());\n return this.value.join('').length !== lengthBefore;\n } else {\n const lengthBefore = this.value.length;\n this.value = this.value.trim();\n return this.value.length !== lengthBefore;\n }\n }\n return false;\n }\n\n private validateClassification(string: string, classification: string): boolean {\n if (this.situation === Situation.SEARCH) {\n return true;\n } else {\n let pattern;\n if (classification === Classification.STRING_EMAIL) {\n pattern =\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n } else if (classification === Classification.STRING_URL) {\n pattern = /(http|ftp|https):\\/\\/[\\w-]+(\\.[\\w-]+)?([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?/;\n } else if (classification === Classification.STRING_PHONE) {\n pattern = /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-x\\s\\./0-9]*$/g;\n }\n return pattern ? pattern.test(string) : true;\n }\n }\n\n /**\n * returns null when valid else the validation object\n */\n public validate() {\n if (this.validationErrors.length) {\n this.valid = false;\n return Utils.arrayToObject(this.validationErrors, 'key', (err) => ({ valid: false, ...err }));\n } else {\n this.valid = true;\n return null;\n }\n }\n\n ngAfterViewInit(): void {\n if (this.autofocus) {\n if (!this.multiselect) {\n const el = this.elementRef.nativeElement.querySelector(this.rows && this.rows > 1 ? 'textarea' : 'input');\n if (el) el.focus();\n }\n }\n }\n}\n","@if ((!rows || rows <= 1) && !multiselect) {\n <input type=\"text\" (blur)=\"onBlur()\" [readonly]=\"readonly\" [(ngModel)]=\"value\" (ngModelChange)=\"onValueChange($event)\" />\n}\n@else if ((!rows || rows <= 1) && multiselect) {\n <!-- single line input with multiselect-->\n <yvc-chips\n [(ngModel)]=\"value\"\n [disabled]=\"readonly\"\n [max]=\"maxEntryCountIfInvalid\"\n [addOnBlur]=\"true\"\n (onBlur)=\"onBlur()\"\n (ngModelChange)=\"onValueChange($event)\"\n [ngClass]=\"{ invalid: validationErrors.length }\"\n >\n <ng-template let-item #chipTemplate>\n <span class=\"p-autocomplete-token-label\">\n @if (classify && !validationErrors.length) {\n <div class=\"classify inchip\">\n <a href=\"{{ classify.hrefPrefix + item }}\">\n <yvc-icon [svg]=\"classify.icon!\"></yvc-icon>\n </a>\n </div>\n }\n <div class=\"label\">\n {{ item }}\n </div>\n </span>\n </ng-template>\n </yvc-chips>\n} @else if (rows && rows > 1) {\n <!-- multi line text inputs -->\n <textarea\n class=\"input-textarea\"\n pInputTextarea\n (blur)=\"onBlur()\"\n [(ngModel)]=\"value\"\n [rows]=\"rows\"\n [readonly]=\"readonly\"\n (ngModelChange)=\"onValueChange($event)\"\n ></textarea>\n}\n\n@if (classify) {\n <div class=\"classify\">\n @if (value && !validationErrors.length && (classify.hrefPrefix !== '' || !multiselect || value.length <= 1)) {\n <a href=\"{{ classify.hrefPrefix + formatedValue }}\">\n <yvc-icon [svg]=\"classify.icon!\"></yvc-icon>\n </a>\n } @else {\n <yvc-icon [svg]=\"classify.icon!\"></yvc-icon>\n }\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, input, OnInit, signal } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\nimport { Situation, TranslateModule } from '@yuuvis/client-core';\nimport { YvcOverlayRef } from '@yuuvis/components/overlay';\nimport { FormInputComponent } from '../../../form-input/form-input.component';\nimport { NumberComponent } from '../../number/number.component';\nimport { StringComponent } from '../../string/string.component';\nimport { ErrorMessagesService } from '@yuuvis/client-framework/common';\n\n@Component({\n selector: 'yuv-edit-table-data',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormInputComponent, StringComponent, NumberComponent, TranslateModule],\n templateUrl: './edit-data.component.html',\n styleUrl: './edit-data.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditTableDataComponent),\n multi: true\n }\n ]\n})\nexport class EditTableDataComponent<T = any> implements OnInit {\n readonly #oRef = inject(YvcOverlayRef<T, { adding: boolean; formElement: { [key: string]: any }; elementData: T; situation: Situation; label: string }>);\n readonly #fb = inject(FormBuilder);\n readonly #errorMassge = inject(ErrorMessagesService);\n\n errorMassage = signal<any[] | null>(null);\n tableForm: FormGroup = this.#fb.group({});\n\n isInnerTableForm = input(true);\n\n formElement: { [key: string]: any } = this.#oRef.data?.formElement || {};\n #elementData: T = this.#oRef.data?.elementData || ({} as T);\n situation: Situation = this.#oRef.data?.situation || Situation.EDIT;\n header = this.#oRef.data?.label || '';\n adding = this.#oRef.data?.adding;\n\n cancel() {\n if (this.#oRef) this.#oRef.close();\n }\n\n submit() {\n if (this.tableForm.valid && this.#oRef) this.#oRef.close(this.tableForm.getRawValue());\n }\n\n ngOnInit() {\n Object.values(this.formElement['elements']).forEach((element: any) => {\n return this.tableForm.addControl(\n element.name,\n this.#fb.control({ value: '', disabled: element.readonly }, element.required ? Validators.required : null)\n );\n });\n this.tableForm.setValidators(this.#globalErrorValidator());\n this.#elementData && this.tableForm.patchValue(this.#elementData);\n\n this.tableForm.valueChanges.subscribe((v) => {\n this.errorMassage.set(\n this.tableForm.errors\n ? Object.keys(this.tableForm.errors).map((key) =>\n this.tableForm.errors && this.tableForm.errors[key]\n ? Object.keys(this.tableForm.errors[key]).map((k) => ({ [key]: this.#errorMassge.getErrorLabel(k, key) }))\n : null\n )\n : null\n );\n });\n }\n\n #globalErrorValidator() {\n return (control: AbstractControl): ValidationErrors | null => {\n const formGroup = control as FormGroup;\n const errors: ValidationErrors = {};\n\n Object.keys(formGroup.controls).forEach((key) => {\n const control = formGroup.get(key);\n if (control && control.invalid && control.dirty) {\n const controlErrors = control.errors;\n if (controlErrors) {\n // Ignore 'required' error if there are more errors\n if (Object.keys(controlErrors).length > 1 && controlErrors['required']) {\n const { required, ...otherErrors } = controlErrors;\n errors[key] = otherErrors;\n } else {\n errors[key] = controlErrors;\n }\n }\n }\n });\n\n return Object.keys(errors).length ? errors : null;\n };\n }\n}\n","<header>\n <h2>{{ 'yuv.form.element.data.grid.edit.headline' | translate: { headline: header } }}</h2>\n</header>\n\n<div [formGroup]=\"tableForm\">\n @for (element of formElement['elements']; track $index) {\n <div [attr.data-name]=\"element.name\" class=\"form-field\">\n <yuv-form-input\n [label]=\"element.label\"\n [required]=\"element.required\"\n [invalid]=\"false\"\n [disabled]=\"element.readonly\"\n [invalid]=\"!tableForm.get(element.label)?.valid && tableForm.get(element.label)?.dirty\"\n >\n @switch (element.type) {\n @case ('string') {\n <yuv-string\n [situation]=\"situation\"\n [formControlName]=\"element.name\"\n [attr.data-name]=\"element.name\"\n [multiselect]=\"element.cardinality === 'multi' || situation === 'SEARCH'\"\n [rows]=\"element.rows\"\n [classifications]=\"element.classifications\"\n [regex]=\"element.regex\"\n [readonly]=\"element.readonly\"\n [minLength]=\"element.minLength\"\n [maxLength]=\"element.maxLength\"\n >\n </yuv-string>\n }\n @case ('decimal') {\n <yuv-number\n [readonly]=\"element.readonly\"\n [precision]=\"element.precision\"\n [scale]=\"element.scale\"\n [pattern]=\"element.pattern\"\n [grouping]=\"element.grouping\"\n [minValue]=\"element.minValue\"\n [maxValue]=\"element.maxValue\"\n [formControlName]=\"element.name\"\n [attr.data-name]=\"element.name\"\n ></yuv-number>\n }\n @default {\n <input [type]=\"element.type\" [id]=\"element.name\" [name]=\"element.name\" [readonly]=\"element.readonly\" [required]=\"element.required\" />\n }\n }\n <!-- <input [type]=\"element.type\" [id]=\"element.name\" [name]=\"element.name\" [readonly]=\"element.readonly\" [required]=\"element.required\" /> -->\n </yuv-form-input>\n @let errorsGroup = errorMassage();\n @if (errorsGroup && tableForm.errors) {\n <div class=\"err-msg\">\n @for (errors of errorsGroup; track $index) {\n @for (error of errors; track $index) {\n {{ error[element.label] }}\n }\n }\n </div>\n }\n </div>\n }\n <footer>\n <button (click)=\"cancel()\">{{ 'yuv.form.element.data.grid.edit.cancel' | translate }}</button>\n <button class=\"primary\" (click)=\"submit()\" [disabled]=\"!tableForm.dirty && !tableForm.valid\">\n @if (adding) {\n {{ 'yuv.form.element.data.grid.edit.add' | translate }}\n } @else {\n {{ 'yuv.form.element.data.grid.edit' | translate }}\n }\n </button>\n </footer>\n</div>\n","export enum DataGridSizeType {\n SMALL = 'small',\n MEDIUM = 'medium',\n LARGE = 'large',\n XLARGE = 'extra-large',\n AUTO = 'auto'\n}\n\nexport interface DataGridSize {\n extralarge: DataGridSizeType.XLARGE;\n large: DataGridSizeType.LARGE;\n medium: DataGridSizeType.MEDIUM;\n small: DataGridSizeType.SMALL;\n auto: DataGridSizeType.AUTO;\n}\n","import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { CommonModule, DecimalPipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, forwardRef, inject, input, signal, untracked } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ClipboardService, Situation, TranslateModule, TranslateService } from '@yuuvis/client-core';\nimport { YUV_ICONS } from '@yuuvis/client-framework/icons';\nimport { YvcIconModule } from '@yuuvis/components/icon';\nimport { YvcOverlayService } from '@yuuvis/components/overlay';\nimport { map } from 'rxjs';\nimport { EditTableDataComponent } from '../edit-table-data/edit-data.component';\nimport { DataGridSizeType } from '../model/data-grid.interface';\n\nconst CDK_IMPORT = [CdkMenu, CdkTableModule, CdkMenuTrigger, CdkMenuItem];\n@Component({\n selector: 'yuv-data-grid',\n standalone: true,\n imports: [CommonModule, NgClass, TranslateModule, YvcIconModule, ...CDK_IMPORT],\n templateUrl: './data-grid.component.html',\n styleUrl: './data-grid.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DataGridComponent),\n multi: true\n },\n DecimalPipe\n ],\n host: {\n class: 'yuv-data-grid'\n }\n})\nexport class DataGridComponent implements ControlValueAccessor {\n readonly #overlay = inject(YvcOverlayService);\n readonly #clipboardService = inject(ClipboardService);\n readonly #decimalPipe = inject(DecimalPipe);\n readonly trnaslate = inject(TranslateService);\n\n situation = input<Situation>(Situation.EDIT);\n formElement = input<Record<string, any> | undefined>(undefined);\n formControl = input<any>(undefined);\n classifications = input<string[]>([]);\n readonly = input<boolean>(false);\n\n size = input<DataGridSizeType>(DataGridSizeType.AUTO);\n\n displayedColumns = signal<any[]>([]);\n displayedColumnsWithActions = signal<string[]>([]);\n dataSource = signal<any[]>([]);\n\n tableLabel = computed(() => this.formElement()?.['label'] ?? '');\n\n selectedRow = signal(null);\n\n initalTableUpdate = true;\n\n icons = {\n add: YUV_ICONS.add,\n more: YUV_ICONS.more\n };\n\n #loadData = effect(() => {\n const formElement = this.formElement();\n untracked(() => formElement && this.#updateTable(formElement['elements'], formElement['value'] || []));\n });\n\n #sourceData = effect(() => {\n const dataSource = this.dataSource();\n !this.initalTableUpdate && this.writeValue(dataSource.filter((row) => !row.isAddRow));\n this.initalTableUpdate = false;\n });\n\n #openEditOverlay(elementData: any | null, adding = false) {\n return this.#overlay\n .open(EditTableDataComponent, {\n formElement: {\n ...this.formElement()\n },\n elementData,\n situation: this.situation(),\n adding,\n label: this.tableLabel()\n })\n .afterClosed$.pipe(map((result: any) => result.data));\n }\n\n copyLine(element: any) {\n this.#clipboardService.addToNavigatorClipBoard(JSON.stringify(element));\n }\n\n onMenuTriggert(element: any | null) {\n this.selectedRow.set(element);\n }\n\n editRow(element: any) {\n this.selectedRow.set(element);\n this.#openEditOverlay(element).subscribe((result: any) => {\n if (result) {\n const updatedData = this.dataSource().map((item) => (JSON.stringify(item) === JSON.stringify(element) ? result : item));\n const formElement = this.formElement();\n formElement && this.#updateTable(formElement['elements'], [...updatedData]);\n }\n this.selectedRow.set(null);\n });\n }\n\n addRow() {\n this.#openEditOverlay(null, true).subscribe((result: any) => {\n const currentData = this.dataSource();\n const data = [...currentData];\n result && data.push(result);\n const formElement = this.formElement();\n formElement && this.#updateTable(formElement['elements'], data);\n });\n }\n\n removeRow(element: any) {\n const updatedData = this.dataSource().filter((item) => JSON.stringify(item) !== JSON.stringify(element));\n const formElement = this.formElement();\n formElement && this.#updateTable(formElement['elements'], updatedData);\n }\n\n #cellor(element: any, value: string) {\n switch (element.type) {\n case 'string':\n return value;\n break;\n case 'decimal':\n return this.#decimalPipe.transform(value, '1.2-4', this.trnaslate.currentLang);\n break;\n default:\n return value;\n break;\n }\n }\n\n #updateTable(elements: any, data: any[] = []) {\n if (elements.length > 0) {\n this.displayedColumns.set(\n elements.reduce((acc: any, el: any) => {\n acc.push({\n columnDef: el.label,\n header: el.label,\n cell: (element: any) => (element.isAddRow ? '' : this.#cellor(el, element[el.label]))\n });\n return acc;\n }, [])\n );\n } else {\n this.displayedColumns.set([]);\n }\n\n this.displayedColumnsWithActions.set([...this.displayedColumns().map((col) => col.columnDef), 'actions']);\n this.dataSource.set(data);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (fn: () => void) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n validationChange = () => {};\n\n writeValue(obj: any): void {\n this.propagateChange(obj);\n }\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.validationChange = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n // console.log('setDisabledState: ', isDisabled);\n }\n\n onValueChange(e: any) {\n this.propagateChange(e);\n }\n}\n","<header>\n <h3>{{ tableLabel() }}</h3>\n @if (!readonly()) {\n <button (click)=\"addRow()\" aria-label=\"Add Row\" class=\"table-options-add-row\">\n <yvc-icon [svg]=\"icons.add\"></yvc-icon>\n </button>\n }\n</header>\n@let displayedCol = displayedColumns();\n@let displayedColActions = displayedColumnsWithActions();\n<div class=\"table-wrapper\" [ngClass]=\"size()\">\n <table cdk-table [dataSource]=\"dataSource()\">\n <!-- Dynamic Columns -->\n @for (column of displayedCol; track $index) {\n <ng-container [cdkColumnDef]=\"column.columnDef\">\n <th class=\"sticky-column\" cdk-header-cell *cdkHeaderCellDef>{{ column.header }}</th>\n <td cdk-cell *cdkCellDef=\"let element\">{{ column.cell(element) }}</td>\n </ng-container>\n }\n\n <!-- Actions Column (Not in displayedColumns) -->\n <ng-container cdkColumnDef=\"actions\">\n <th class=\"actions-header sticky-column\" cdk-header-cell *cdkHeaderCellDef></th>\n <td class=\"actions-row sticky\" cdk-cell *cdkCellDef=\"let element\">\n <!-- Only show the button in the last (empty) row -->\n @if (!readonly()) {\n <button\n aria-label=\"Edit Row\"\n class=\"table-options-menu-bar-item\"\n cdkMenuItem\n (cdkMenuOpened)=\"onMenuTriggert(element)\"\n (cdkMenuClosed)=\"onMenuTriggert(null)\"\n [cdkMenuTriggerFor]=\"options\"\n [cdkMenuTriggerData]=\"{ element: element }\"\n >\n <yvc-icon [svg]=\"icons.more\"></yvc-icon>\n </button>\n }\n </td>\n </ng-container>\n\n <tr cdk-header-row *cdkHeaderRowDef=\"displayedColActions\"></tr>\n @if (!readonly()) {\n <tr (dblclick)=\"editRow(row)\" [class.selected-row]=\"row === selectedRow()\" cdk-row *cdkRowDef=\"let row; columns: displayedColActions\"></tr>\n } @else {\n <tr cdk-row *cdkRowDef=\"let row; columns: displayedColActions\"></tr>\n }\n </table>\n</div>\n<ng-template #options let-element=\"element\">\n <div class=\"table-options-menu\" cdkMenu>\n <button class=\"table-options-menu-item\" (click)=\"copyLine(element)\" cdkMenuItem>{{ 'yuv.form.element.data.grid.copy' | translate }}</button>\n <button class=\"table-options-menu-item\" cdkMenuItem (click)=\"editRow(element)\">{{ 'yuv.form.element.data.grid.edit' | translate }}</button>\n <button class=\"table-options-menu-item\" cdkMenuItem (click)=\"removeRow(element)\">{{ 'yuv.form.element.data.grid.remove' | translate }}</button>\n </div>\n</ng-template>\n","import { Component, Input, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { DatepickerLabels, YvcDatepickerModule } from '@yuuvis/components/datepicker';\n\n@Component({\n selector: 'yuv-datetime',\n standalone: true,\n imports: [FormsModule, YvcDatepickerModule, DatetimeComponent],\n templateUrl: './datetime.component.html',\n styleUrl: './datetime.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatetimeComponent),\n multi: true\n }\n ]\n})\nexport class DatetimeComponent implements ControlValueAccessor {\n private translate = inject(TranslateService);\n\n value: Date | null = null;\n locale: string = this.translate.currentLang;\n labels?: DatepickerLabels;\n\n /**\n * Whether or not to allow only values in the future (default: false)\n */\n @Input() onlyFutureDates = false;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n\n /**\n * Enables setting time as well (default: false)\n */\n @Input() withTime = false;\n\n constructor() {\n this._setLabels();\n this.translate.onLangChange.subscribe((e: LangChangeEvent) => (this.locale = e.lang));\n }\n\n private _setLabels() {\n this.labels = {\n calendarApply: this.translate.instant('yuv.form.element.datetime.calendar.select'),\n calendarCancel: this.translate.instant('yuv.form.element.datetime.calendar.cancel'),\n shortcut: { today: this.translate.instant('yuv.form.element.datetime.calendar.today') }\n };\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (fn: () => void) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n validationChange = () => {};\n\n writeValue(value: any): void {\n if (typeof value === 'string') {\n value = new Date(value);\n this.propagateChange(value);\n }\n this.value = value || null;\n }\n\n registerOnChange(fn: () => void): void {\n this.propagateChange = fn;\n }\n\n registerOnValidatorChange?(fn: () => void): void {\n this.validationChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(): void {}\n\n onValueChange(e: any) {\n this.propagateChange(this.withTime ? e : e.toISOString().split('T')[0]);\n }\n}\n","<yvc-datepicker #picker [calendar]=\"true\" [disabled]=\"readonly\" [locale]=\"locale\" [withTime]=\"withTime\" [labels]=\"labels!\"\n [onlyFutureDates]=\"onlyFutureDates\"\n [ngModelOptions]=\"{standalone: true}\" [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"></yvc-datepicker>","import { Component, Input, OnInit, forwardRef, inject } from '@angular/core';\nimport {\n ControlValueAccessor,\n FormBuilder,\n FormGroup,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n Validator,\n Validators\n} from '@angular/forms';\nimport { Operator, OperatorLabel, RangeValue, Situation } from '@yuuvis/client-core';\nimport { YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { DatetimeComponent } from '../datetime/datetime.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'yuv-datetime-range',\n standalone: true,\n imports: [CommonModule, FormsModule, YvcDropdownModule, ReactiveFormsModule, DatetimeComponent],\n templateUrl: './datetime-range.component.html',\n styleUrl: './datetime-range.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatetimeRangeComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatetimeRangeComponent),\n multi: true\n }\n ]\n})\nexport class DatetimeRangeComponent implements ControlValueAccessor, Validator, OnInit {\n private fb = inject(FormBuilder);\n\n /**\n * Enables setting time as well (default: false)\n */\n @Input() withTime = false;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n @Input() operator = 'eq';\n @Input() situation?: string;\n\n rangeForm: FormGroup = this.fb.group({\n dateValue: [undefined, Validators.required],\n dateValueFrom: []\n });\n value?: RangeValue;\n\n private _isValid = true;\n\n // options for search situation\n availableSearchOptions = [\n { label: OperatorLabel.EQUAL, value: Operator.EQUAL },\n { label: OperatorLabel.GREATER_OR_EQUAL, value: Operator.GREATER_OR_EQUAL },\n { label: OperatorLabel.LESS_OR_EQUAL, value: Operator.LESS_OR_EQUAL },\n { label: OperatorLabel.INTERVAL_INCLUDE_BOTH, value: Operator.INTERVAL_INCLUDE_BOTH }\n ];\n // the selected search option\n searchOption = this.availableSearchOptions[1].value;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: RangeValue): void {\n if (value && (value.firstValue || value.secondValue)) {\n const match = this.availableSearchOptions.find((o) => o.value === value.operator);\n this.searchOption = match ? match.value : this.availableSearchOptions[0].value;\n\n this.value = value;\n this.rangeForm.patchValue({\n dateValueFrom: value.secondValue && value.firstValue,\n dateValue: value.secondValue || value.firstValue\n });\n } else {\n this.searchOption = this.availableSearchOptions[0].value;\n this.value = undefined;\n this.rangeForm.reset();\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n onValueChange() {\n const dateValue = this.rangeForm.value.dateValue || undefined;\n if (this.searchOption === Operator.INTERVAL_INCLUDE_BOTH) {\n const dateValueFrom = this.rangeForm.value.dateValueFrom || undefined;\n\n if (dateValueFrom || dateValue) {\n this._isValid = this.rangeForm.valid && !!dateValueFrom && !!dateValue;\n this.value = !this._isValid\n ? // {\n // operator: this.searchOption,\n // firstValue: undefined,\n // secondValue: undefined\n // }\n undefined\n : {\n operator: this.searchOption,\n firstValue: dateValueFrom,\n secondValue: dateValue\n };\n }\n } else {\n this._isValid = this.rangeForm.valid;\n this.value = !this._isValid\n ? // {\n // operator: this.searchOption,\n // firstValue: undefined,\n // secondValue: undefined\n // }\n undefined\n : {\n operator: this.searchOption,\n firstValue: dateValue,\n secondValue: undefined\n };\n }\n\n this.propagateChange(this.value);\n }\n\n validate() {\n let err;\n if (this.searchOption === Operator.EQUAL) {\n err = {\n datecontrol: {\n valid: false\n }\n };\n } else {\n // make sure that on ranges, the first value is earlier than the last\n if (this.searchOption === Operator.INTERVAL_INCLUDE_BOTH && this.value && this.value.firstValue && this.value.secondValue) {\n this._isValid = new Date(this.value.firstValue as Date).getTime() < new Date(this.value.secondValue as Date).getTime();\n err = {\n daterangeorder: {\n valid: false\n }\n };\n } else {\n err = {\n daterange: {\n valid: false\n }\n };\n }\n }\n return this.situation === Situation.SEARCH || this._isValid ? null : err;\n }\n\n ngOnInit(): void {\n this.rangeForm.valueChanges.subscribe(() => this.onValueChange());\n }\n}\n","<form class=\"eo-datetime-range\" [formGroup]=\"rangeForm\">\n @if (searchOption === 'gtelte') {\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValueFrom\"></yuv-datetime>\n }\n <yvc-dropdown\n [disableClearButton]=\"true\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValue\"></yuv-datetime>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, Input } from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n UntypedFormControl,\n UntypedFormGroup,\n Validator\n} from '@angular/forms';\nimport { Operator, OperatorLabel, RangeValue } from '@yuuvis/client-core';\nimport { YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { NumberComponent } from '../number/number.component';\n\n/**\n * Creates form input for ranges of numeric values.\n *\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * @example\n * <yuv-number-range [scale]=\"2\"></yuv-number-range>\n *\n */\n@Component({\n selector: 'yuv-number-range',\n standalone: true,\n imports: [CommonModule, NumberComponent, YvcDropdownModule, FormsModule, ReactiveFormsModule],\n templateUrl: './number-range.component.html',\n styleUrls: ['./number-range.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberRangeComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumberRangeComponent),\n multi: true\n }\n ]\n})\nexport class NumberRangeComponent implements ControlValueAccessor, Validator {\n /**\n * Number of decimal places\n */\n @Input() scale?: number;\n /**\n * Overall amount of digits allowed (including decimal places)\n */\n @Input() precision?: number;\n /**\n * Set to true to group number by pattern\n */\n @Input() grouping = false;\n /**\n * The pattern to group number value by\n */\n @Input() pattern?: string;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n\n /**\n * classification property adds some semantics to the value of this component.\n * If you provide a value of `filesize` numbers typed into the control will be\n * handled like file sizes (calculates differnt units)\n */\n @Input() classifications: string[] = [];\n /**\n * set minimum input value\n */\n @Input() minValue?: number;\n /**\n * set maximum input value\n *\n */\n @Input() maxValue?: number;\n\n public rangeForm = new UntypedFormGroup({\n numberValue: new UntypedFormControl(),\n numberValueFrom: new UntypedFormControl()\n });\n\n value?: RangeValue;\n private isValid = true;\n\n // options for search situation\n public availableSearchOptions = [\n { label: OperatorLabel.EQUAL, value: Operator.EQUAL },\n { label: OperatorLabel.GREATER_OR_EQUAL, value: Operator.GREATER_OR_EQUAL },\n { label: OperatorLabel.LESS_OR_EQUAL, value: Operator.LESS_OR_EQUAL },\n { label: OperatorLabel.INTERVAL_INCLUDE_BOTH, value: Operator.INTERVAL_INCLUDE_BOTH }\n ];\n // the selected search option\n public searchOption = this.availableSearchOptions[1].value;\n\n constructor() {\n this.rangeForm.valueChanges.forEach(() => {\n this.onValueChange();\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: RangeValue): void {\n if (value && (value.firstValue != null || value.secondValue != null)) {\n const match = this.availableSearchOptions.find((o) => o.value === value.operator);\n this.searchOption = match ? match.value : this.availableSearchOptions[0].value;\n\n this.value = value;\n if (value.secondValue == null) {\n this.rangeForm.setValue({\n numberValueFrom: null,\n numberValue: value.firstValue != null ? value.firstValue : null\n });\n } else {\n this.rangeForm.setValue({\n numberValueFrom: value.firstValue != null ? value.firstValue : null,\n numberValue: value.secondValue\n });\n }\n } else {\n this.searchOption = this.availableSearchOptions[0].value;\n this.value = undefined;\n this.rangeForm.reset();\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n onValueChange() {\n this.isValid = this.rangeForm.valid;\n if (this.searchOption === Operator.INTERVAL_INCLUDE_BOTH) {\n this.isValid = this.rangeForm.valid && this.rangeForm.value.numberValueFrom != null && this.rangeForm.value.numberValue != null;\n this.value = !this.isValid\n ? {\n operator: this.searchOption,\n firstValue: undefined,\n secondValue: undefined\n }\n : {\n operator: this.searchOption,\n firstValue: this.rangeForm.value.numberValueFrom,\n secondValue: this.rangeForm.value.numberValue\n };\n } else {\n this.value = !this.isValid\n ? {\n operator: this.searchOption,\n firstValue: undefined,\n secondValue: undefined\n }\n : {\n operator: this.searchOption,\n firstValue: this.rangeForm.value.numberValue,\n secondValue: undefined\n };\n }\n this.propagateChange(this.value);\n }\n\n // returns null when valid else the validation object\n public validate() {\n let err: any;\n if (this.searchOption === Operator.EQUAL) {\n err = { number: { valid: false } };\n } else if (this.searchOption === Operator.INTERVAL_INCLUDE_BOTH && this.value?.firstValue && this.value?.secondValue) {\n // make sure that on ranges, the first value is earlier than the last\n this.isValid = this.value!.firstValue < this.value!.secondValue;\n err = { numberrangeorder: { valid: false } };\n } else {\n err = { numberrange: { valid: false } };\n }\n return this.isValid ? null : err;\n }\n}\n","<form class=\"yuv-number-range\" [formGroup]=\"rangeForm\">\n @if(searchOption === 'gtelte'){\n <yuv-number\n class=\"first\"\n [readonly]=\"readonly\"\n [scale]=\"scale\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValueFrom\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n ></yuv-number>}\n\n <yvc-dropdown\n class=\"no-trigger\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [disabled]=\"readonly\"\n [disableClearButton]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-number\n [scale]=\"scale\"\n [readonly]=\"readonly\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValue\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n >\n </yuv-number>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Component, EventEmitter, forwardRef, HostBinding, HostListener, inject, input, Input, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Classification, SystemService, TranslateModule, TranslateService, UserService, YuvUser } from '@yuuvis/client-core';\nimport { YUV_ICONS } from '@yuuvis/client-framework/icons';\nimport { AutoComplete, YvcAutocompleteModule } from '@yuuvis/components/autocomplete';\nimport { YvcIconModule } from '@yuuvis/components/icon';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\ninterface UserNode {\n user: YuvUser;\n state: {\n notFound?: boolean;\n };\n titleString?: string;\n}\n\n/**\n * Creates form input for organisation values.\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * [Screenshot](../assets/images/yuv-organization.gif)\n *\n * @example\n * <yuv-organization [multiselect]=\"true\"></yuv-organization>\n */\n\n@Component({\n selector: 'yuv-organization',\n standalone: true,\n imports: [CommonModule, FormsModule, YvcAutocompleteModule, YvcIconModule, TranslateModule],\n templateUrl: './organization.component.html',\n styleUrls: ['./organization.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => OrganizationComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => OrganizationComponent),\n multi: true\n }\n ]\n})\nexport class OrganizationComponent implements ControlValueAccessor, Validator {\n private system = inject(SystemService);\n private userService = inject(UserService);\n private translate = inject(TranslateService);\n\n @ViewChild('autocomplete') autoCompleteInput!: AutoComplete;\n minLength = 2;\n\n icons = {\n organizationMulti: YUV_ICONS['group'],\n organization: YUV_ICONS['user']\n };\n\n private isValidInput = true;\n value: string | string[] | null = null;\n _innerValue: UserNode[] = [];\n set innerValue(iv: UserNode[]) {\n this._innerValue = iv || [];\n this.userSelect.emit(this._innerValue.map((v) => v.user));\n }\n get innerValue() {\n return this._innerValue;\n }\n autocompleteRes: UserNode[] = [];\n private filterRoles: string[] = [];\n\n // prevent ENTER from being propagated, because the component could be located\n // inside some other component that also relys on ENTER\n @HostListener('keydown.enter', ['$event'])\n onKeydownHandler(event: KeyboardEvent) {\n event.stopPropagation();\n }\n\n @HostBinding('class.inputDisabled') get _inputDisabled() {\n return !this.multiselect && this.innerValue?.length === 1;\n }\n // @HostBinding('class.inputDirty') get _inputDirty() {\n // return this.autoCompleteInput?.multiInputEL?.nativeElement?.value;\n // }\n\n @Input() placeholder?: string;\n /**\n * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`. In search situation validation of the form element will be turned off, so you are able to enter search terms that do not meet the elements validators.\n */\n @Input() situation?: string;\n /**\n * Indicator that multiple strings could be inserted, they will be rendered as chips (default: false).\n */\n @Input() multiselect = false;\n /**\n * Additional semantics for the form element.\n */\n private _classifications?: string[];\n @Input() set classifications(c: string[] | undefined) {\n this._classifications = c;\n if (c?.length) {\n const classifications = this.system.getClassifications(c);\n if (classifications.has(Classification.STRING_ORGANIZATION)) {\n const options = classifications.get(Classification.STRING_ORGANIZATION)!.options;\n this.filterRoles = options;\n }\n } else {\n this.filterRoles = [];\n }\n }\n get classifications() {\n return this._classifications;\n }\n\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n /**\n * Set this to true and the component will try to gain focus once it has been rendered.\n * Notice that this is not reliable. If there are any other components that are rendered\n * later and also try to be focused, they will 'win', because there can only be one focus.\n */\n @Input() autofocus = false;\n\n /**\n * Will attch the overlay to this HTMLelement\n */\n @Input() appendTo = null;\n\n /**\n * Whether or not to exclude the current user from autocomplete result\n */\n @Input() excludeMe = false;\n\n /**\n * Whether or not the emitted value should be an object containing id and title\n * or, if set to false only the ID\n */\n withMetadata = input<boolean>(false);\n\n @Output() userSelect = new EventEmitter<YuvUser[]>();\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: any): void {\n if (value) {\n this.value = value;\n this.resolveFn(value);\n } else {\n this.value = null;\n this.innerValue = [];\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n private propagate() {\n this.propagateChange(this.#getPropagateValue());\n }\n\n #getPropagateValue() {\n return this.multiselect\n ? this.withMetadata()\n ? this.value\n ? this._innerValue.map((v) => ({\n id: v.user.id,\n title: v.user.title\n }))\n : this.value\n : this.value\n : this.withMetadata()\n ? this.value\n ? {\n id: this._innerValue[0].user.id,\n title: this._innerValue[0].user.title\n }\n : this.value\n : this.value;\n }\n\n focusInput() {\n this.autoCompleteInput.focusInput();\n }\n\n resolveFn(value: any) {\n const obs: Observable<UserNode>[] = (value instanceof Array ? value : [value]).map((v) => {\n const valueID = typeof v === 'string' ? v : v.id;\n\n const match: UserNode | undefined = this.innerValue.find((iv) => iv.user.id === valueID);\n return match\n ? of(match)\n : this.userService.getUserById(valueID).pipe(\n map((res: YuvUser) => ({\n user: res,\n state: {}\n })),\n catchError((e: HttpErrorResponse) => {\n const user = new YuvUser({\n id: typeof v === 'string' ? v : v.id\n });\n user.title = typeof v === 'string' ? v : v.title;\n return of({\n user,\n state: {\n notFound: e.status === 404\n },\n titleString: e.status === 404 ? this.translate.instant('yuv.form.element.organization.user.not-found') : undefined\n });\n })\n );\n });\n return forkJoin(obs).subscribe((data) => {\n this.innerValue = data;\n // setTimeout(() => this.autoCompleteInput.cd.markForCheck());\n });\n }\n\n autocompleteFn(query: string) {\n if (query.length >= this.minLength) {\n this.userService.queryUser(query, this.excludeMe, this.filterRoles).subscribe({\n next: (users: YuvUser[]) => {\n this.autocompleteRes = users\n .filter((user) => !this.innerValue.some((value) => value.user.id === user.id))\n .map((user) => ({\n user: user,\n state: {}\n }));\n this.propagateValidity(this.autocompleteRes.length > 0);\n },\n error: () => {\n this.autocompleteRes = [];\n this.propagateValidity(this.autocompleteRes.length > 0);\n }\n });\n } else {\n this.autocompleteRes = [];\n }\n }\n\n // returns null when valid else the validation object\n public validate() {\n return this.isValidInput ? null : { empty: { valid: false } };\n }\n\n propagateValidity(valid = true) {\n if (this.isValidInput !== valid) {\n this.isValidInput = valid;\n this.propagate();\n }\n }\n\n // handle selection changes to the model\n onSelect() {\n if (this.multiselect) {\n this.value = this.innerValue.map((v) => v.user.id);\n } else {\n // internal autocomplete control is always set to multiselect\n // so the resolved value is always an array\n this.innerValue = this.innerValue.slice(-1);\n this.value = this.innerValue[0].user.id;\n }\n this.propagate();\n }\n\n // handle selection changes to the model\n onUnselect(value: any) {\n this.innerValue = this.innerValue.filter((v) => v.user.id !== value.id);\n const _value = this.innerValue.map((v) => v.user.id);\n this.value = this.multiselect ? _value : null;\n if (!this.multiselect) {\n this.clearInnerInput();\n }\n this.propagate();\n }\n\n onAutoCompleteBlur() {\n this.clearInnerInput();\n }\n\n private clearInnerInput() {\n this.autoCompleteInput.clearInput();\n }\n}\n","<yvc-autocomplete\n [(ngModel)]=\"innerValue\"\n #autocomplete\n (suggestionSelect)=\"onSelect()\"\n [placeholder]=\"placeholder\"\n (suggestionUnselect)=\"onUnselect($event)\"\n (blur)=\"onAutoCompleteBlur()\"\n [disabled]=\"readonly\"\n [autocompleteValues]=\"autocompleteRes\"\n field=\"id\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"true\"\n>\n <!-- template for item inside the dropdown -->\n <ng-template #autocompleteOptionTemplate let-item>\n <span class=\"chip\">{{ item.user.title }}</span>\n </ng-template>\n\n <!-- template for chip -->\n <ng-template #chipTemplate let-item>\n <span class=\"chip\" [ngClass]=\"{ notFound: item.state.notFound }\" [title]=\"item.titleString\">\n {{ item.user.title }}\n </span>\n </ng-template>\n</yvc-autocomplete>\n\n<yvc-icon class=\"classify\" aria-hidden=\"true\" [svg]=\"multiselect ? icons.organizationMulti : icons.organization\" (click)=\"focusInput()\"></yvc-icon>\n","import { CommonModule } from '@angular/common';\nimport { Component, effect, inject, input, output } from '@angular/core';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { RangeValue, TranslateModule } from '@yuuvis/client-core';\nimport { YvcOverlayRef } from '@yuuvis/components/overlay';\nimport { DatetimeRangeComponent } from '../../datetime-range/datetime-range.component';\n\n@Component({\n selector: 'yuv-date-range-picker',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, TranslateModule, DatetimeRangeComponent],\n templateUrl: './date-range-picker.component.html',\n styleUrl: './date-range-picker.component.scss'\n})\nexport class DateRangePickerComponent {\n #oRef = inject(YvcOverlayRef);\n #fb = inject(FormBuilder);\n\n form = this.#fb.group({\n range: this.#fb.control<RangeValue | undefined>(this.#oRef.data.range, Validators.required)\n });\n\n range = input<RangeValue | undefined>(this.#oRef.data.range);\n rangeChange = output<RangeValue | undefined>();\n #rangeEffect = effect(() => {\n const range = this.range();\n this.form.patchValue({ range });\n });\n\n apply() {\n this.rangeChange.emit(this.form.value.range || undefined);\n this.#oRef?.close(this.form.value.range);\n }\n}\n","<form [formGroup]=\"form\" (ngSubmit)=\"apply()\">\n <h2>{{ 'yuv.form.element.range-select-date.custom.overlay.title' | translate }}</h2>\n <yuv-datetime-range [withTime]=\"false\" formControlName=\"range\"></yuv-datetime-range>\n <button class=\"primary\" [disabled]=\"form.invalid\">{{ 'yuv.form.element.range-select-date.custom.overlay.button.apply' | translate }}</button>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject, input, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { marker } from '@colsen1991/ngx-translate-extract-marker';\nimport { DateRange, LocaleDatePipe, Operator, OperatorLabel, RangeValue, SearchUtils, TranslateService } from '@yuuvis/client-core';\nimport { DropdownOption, YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { OverlayCloseEvent, YvcOverlayService } from '@yuuvis/components/overlay';\nimport { DateRangePickerComponent } from './date-range-picker/date-range-picker.component';\nimport { RangeSelectDateValue } from './range-select-date.interface';\n\n// marker for extracting translations for the available date range options\nmarker('yuv.form.element.range-select-date.option.any');\nmarker('yuv.form.element.range-select-date.option.today');\nmarker('yuv.form.element.range-select-date.option.yesterday');\nmarker('yuv.form.element.range-select-date.option.thisWeek');\nmarker('yuv.form.element.range-select-date.option.lastWeek');\nmarker('yuv.form.element.range-select-date.option.thisMonth');\nmarker('yuv.form.element.range-select-date.option.lastMonth');\nmarker('yuv.form.element.range-select-date.option.thisYear');\nmarker('yuv.form.element.range-select-date.option.lastYear');\nmarker('yuv.form.element.range-select-date.option.custom');\n\n/**\n * Component for selecting a date range based on pre-defined ranges like\n * 'today', 'this week', 'this month', etc.\n * It also allows to pick a custom date range.\n */\n@Component({\n selector: 'yuv-range-select-date',\n standalone: true,\n imports: [CommonModule, YvcDropdownModule, ReactiveFormsModule],\n templateUrl: './range-select-date.component.html',\n styleUrl: './range-select-date.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeSelectDateComponent),\n multi: true\n }\n ]\n})\nexport class RangeSelectDateComponent implements ControlValueAccessor {\n private translate = inject(TranslateService);\n #overlay = inject(YvcOverlayService);\n #fb = inject(FormBuilder);\n\n #ANY_OPTION = 'any';\n #CUSTOM_OPTION = 'custom';\n\n dateOptions = signal<DropdownOption[]>([]);\n #customDateRange?: RangeValue;\n\n innerForm = this.#fb.nonNullable.group({\n range: [this.#ANY_OPTION]\n });\n\n /**\n * Range values to be used in the dropdown.\n */\n ranges = input<DateRange[]>(['today', 'yesterday', 'thisWeek', 'thisMonth', 'thisYear']);\n /**\n * Whether to show the custom date range option.\n */\n customRange = input<boolean>(true);\n\n constructor() {\n this.translate.onLangChange.pipe(takeUntilDestroyed()).subscribe((_) => this.#setupOptions());\n this.#setupOptions();\n this.innerForm.valueChanges.pipe(takeUntilDestroyed()).subscribe((v) => this.#onFormValueChange(v));\n }\n\n #onFormValueChange(v: any) {\n if (v.range === this.#CUSTOM_OPTION) {\n if (!this.#customDateRange || this.dateOptions().find((o) => o.value === this.#CUSTOM_OPTION)?.label === this.#customDateRangeToString())\n this.#openCustomRangeDialog();\n else\n this.propagateChange({\n rangeValue: this.#customDateRange,\n label: this.#customDateRangeToString()\n });\n } else {\n const { start, end } = SearchUtils.dateRangeStartEnd(v.range as DateRange);\n this.propagateChange(\n v.range !== this.#ANY_OPTION\n ? {\n rangeValue: { operator: Operator.INTERVAL_INCLUDE_BOTH, firstValue: start, secondValue: end },\n label: this.translate.instant(`yuv.form.element.range-select-date.option.${v.range}`)\n }\n : undefined\n );\n\n this.#customDateRange = undefined;\n this.#setupOptions();\n }\n }\n\n #openCustomRangeDialog() {\n // open date range picker\n const o = this.#overlay.open(DateRangePickerComponent, {\n range: this.#customDateRange\n });\n o.afterClosed$.subscribe((res: OverlayCloseEvent<RangeValue>) => {\n this.#customDateRange = res.data;\n\n if (!res.data) {\n this.innerForm.patchValue({ range: this.#ANY_OPTION });\n this.#setupOptions();\n } else {\n this.#onFormValueChange(this.innerForm.value);\n this.#setupOptions(this.#customDateRangeToString());\n\n setTimeout(() => {\n this.innerForm.patchValue(\n { range: this.#CUSTOM_OPTION },\n {\n emitEvent: false\n }\n );\n });\n }\n });\n }\n\n #setupOptions(custom?: string) {\n const options = this.ranges().map((value) => ({\n label: this.translate.instant(`yuv.form.element.range-select-date.option.${value}`),\n value\n }));\n if (this.customRange())\n options.push({\n label: custom || this.translate.instant('yuv.form.element.range-select-date.option.custom'),\n value: this.#CUSTOM_OPTION as DateRange\n });\n\n this.dateOptions.set([\n {\n label: this.translate.instant('yuv.form.element.range-select-date.option.any'),\n value: this.#ANY_OPTION\n },\n ...options\n ]);\n }\n\n #customDateRangeToString(): string | undefined {\n if (!this.#customDateRange) return undefined;\n const dp = new LocaleDatePipe(this.translate);\n switch (this.#customDateRange.operator) {\n case Operator.EQUAL: {\n return dp.transform(this.#customDateRange.firstValue as Date, 'shortDate');\n }\n case Operator.GREATER_OR_EQUAL: {\n return `${OperatorLabel.GREATER_OR_EQUAL} ${dp.transform(this.#customDateRange.firstValue as Date, 'shortDate')}`;\n }\n case Operator.LESS_OR_EQUAL: {\n return `${OperatorLabel.LESS_OR_EQUAL} ${dp.transform(this.#customDateRange.firstValue as Date, 'shortDate')}`;\n }\n case Operator.INTERVAL_INCLUDE_BOTH: {\n return `${dp.transform(this.#customDateRange.firstValue as Date, 'shortDate')} ${OperatorLabel.INTERVAL_INCLUDE_BOTH} ${dp.transform(this.#customDateRange.secondValue as Date, 'shortDate')}`;\n }\n }\n return undefined;\n }\n\n // ControlValueAccessor implementation\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value?: RangeSelectDateValue): void {\n if (value?.rangeValue?.operator && value?.rangeValue?.firstValue) {\n const dr: DateRange | undefined = SearchUtils.getMatchingDateRange(value.rangeValue);\n if (dr) {\n this.innerForm.patchValue({ range: dr });\n } else {\n this.#customDateRange = value.rangeValue;\n this.innerForm.patchValue({ range: this.#CUSTOM_OPTION });\n }\n } else {\n this.innerForm.patchValue({ range: this.#ANY_OPTION });\n }\n }\n\n registerOnChange(fn: () => void): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(fn: () => void): void {}\n}\n","<form [formGroup]=\"innerForm\">\n <yvc-dropdown formControlName=\"range\" [options]=\"dateOptions()\" [disableClearButton]=\"true\"></yvc-dropdown>\n</form>","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject, input, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { marker } from '@colsen1991/ngx-translate-extract-marker';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FilesizeRange, RangeValue, SearchUtils } from '@yuuvis/client-core';\nimport { DropdownOption, YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { RangeSelectFilesizeValue } from './range-select-filesize.interface';\n\n// marker for extracting translations for the available filesize range options\nmarker('yuv.form.element.range-select-filesize.option.any');\nmarker('yuv.form.element.range-select-filesize.option.small');\nmarker('yuv.form.element.range-select-filesize.option.medium');\nmarker('yuv.form.element.range-select-filesize.option.large');\nmarker('yuv.form.element.range-select-filesize.option.verylarge');\n/**\n * Component for selecting a range of filesizes based on pre-defined ranges like\n * 'today', 'this week', 'this month', etc.\n */\n@Component({\n selector: 'yuv-range-select-filesize',\n standalone: true,\n imports: [CommonModule, YvcDropdownModule, ReactiveFormsModule],\n templateUrl: './range-select-filesize.component.html',\n styleUrl: './range-select-filesize.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeSelectFilesizeComponent),\n multi: true\n }\n ]\n})\nexport class RangeSelectFilesizeComponent implements ControlValueAccessor {\n private translate = inject(TranslateService);\n #fb = inject(FormBuilder);\n\n #ANY_OPTION = 'any';\n\n options = signal<DropdownOption[]>([]);\n innerForm = this.#fb.nonNullable.group({\n range: [this.#ANY_OPTION]\n });\n\n /**\n * Range values to be used in the dropdown.\n */\n ranges = input<FilesizeRange[]>(['small', 'medium', 'large', 'verylarge']);\n\n constructor() {\n this.translate.onLangChange.pipe(takeUntilDestroyed()).subscribe((_) => this.#setupOptions());\n this.#setupOptions();\n this.innerForm.valueChanges.pipe(takeUntilDestroyed()).subscribe((v) => this.#onFormValueChange(v));\n }\n\n #onFormValueChange(v: any) {\n const rangeValue: RangeValue | undefined = v.range !== this.#ANY_OPTION ? SearchUtils.filesizeRangeToRangeValue(v.range) : undefined;\n const res: RangeSelectFilesizeValue | undefined = rangeValue && {\n rangeValue,\n label: this.translate.instant(`yuv.form.element.range-select-filesize.option.${v.range}`)\n };\n this.propagateChange(res);\n }\n\n #setupOptions() {\n const options = this.ranges().map((value) => ({\n label: this.translate.instant(`yuv.form.element.range-select-filesize.option.${value}`),\n value\n }));\n\n this.options.set([\n {\n label: this.translate.instant('yuv.form.element.range-select-filesize.option.any'),\n value: this.#ANY_OPTION\n },\n ...options\n ]);\n }\n\n // ControlValueAccessor implementation\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value?: RangeSelectFilesizeValue): void {\n const patch = { range: this.#ANY_OPTION };\n if (value?.rangeValue?.operator && value?.rangeValue?.firstValue) {\n const range: FilesizeRange | undefined = SearchUtils.getMatchingFilesizeRange(value.rangeValue);\n if (range) patch.range = range;\n }\n this.innerForm.patchValue(patch);\n }\n\n registerOnChange(fn: () => void): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(fn: () => void): void {}\n}\n","<form [formGroup]=\"innerForm\">\n <yvc-dropdown formControlName=\"range\" [options]=\"options()\" [disableClearButton]=\"true\"></yvc-dropdown>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { YvcAutocompleteModule } from '@yuuvis/components/autocomplete';\nimport { YvcCheckboxModule } from '@yuuvis/components/checkbox';\nimport { YvcChipsModule } from '@yuuvis/components/chips';\nimport { YvcFocusWithin } from '@yuuvis/components/common';\nimport { YvcDatepickerModule } from '@yuuvis/components/datepicker';\nimport { YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { YvcIconModule } from '@yuuvis/components/icon';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TranslateModule,\n ReactiveFormsModule,\n YvcFocusWithin,\n YvcAutocompleteModule,\n YvcDatepickerModule,\n FormsModule,\n YvcCheckboxModule,\n YvcIconModule,\n YvcChipsModule,\n YvcDropdownModule,\n ]\n})\nexport class YuvFormsModule {}\n","// export { CatalogComponent } from './lib/elements/catalog/catalog.component';\n// export { CheckboxComponent } from './lib/elements/checkbox/checkbox.component';\n// export { DatetimeRangeComponent } from './lib/elements/datetime-range/datetime-range.component';\n// export { DatepickerComponent } from './lib/elements/datetime/datepicker/datepicker.component';\n// export { DatetimeComponent } from './lib/elements/datetime/datetime.component';\n// export { YearRangeDirective } from './lib/elements/datetime/year-range/year-range.directive';\n// export { DynamicCatalogManagementComponent } from './lib/elements/dynamic-catalog/dynamic-catalog-management/dynamic-catalog-management.component';\n// export { DynamicCatalogComponent } from './lib/elements/dynamic-catalog/dynamic-catalog.component';\n// export { NumberRangeComponent } from './lib/elements/number-range/number-range.component';\n// export { NumberComponent } from './lib/elements/number/number.component';\n// export { OrganizationSetComponent } from './lib/elements/organization-set/organization-set.component';\n// export { OrganizationComponent } from './lib/elements/organization/organization.component';\n// export { ReferenceItemComponent } from './lib/elements/reference/reference-item/reference-item.component';\n// export { ReferenceComponent } from './lib/elements/reference/reference.component';\n// export * from './lib/elements/reference/reference.interface';\n// export { StringComponent } from './lib/elements/string/string.component';\nexport { FormInputComponent } from './lib/form-input/form-input.component';\nexport * from './lib/elements';\n\nexport * from './lib/forms.module';\n\nexport * from './lib/elements/range-select-date/range-select-date.component';\nexport * from './lib/elements/range-select-date/range-select-date.interface';\n\nexport * from './lib/elements/range-select-filesize/range-select-filesize.component';\nexport * from './lib/elements/range-select-filesize/range-select-filesize.interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","i2","i4","TranslateService","map","TranslateModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-forms.mjs","sources":["../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/data-grid/edit-table-data/edit-data.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/data-grid/edit-table-data/edit-data.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/data-grid/model/data-grid.interface.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/data-grid/data-grid/data-grid.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/data-grid/data-grid/data-grid.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime/datetime.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime/datetime.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime-range/datetime-range.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/datetime-range/datetime-range.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number/number.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number-range/number-range.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/number-range/number-range.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/organization/organization.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/organization/organization.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-date/date-range-picker/date-range-picker.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-date/date-range-picker/date-range-picker.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-date/range-select-date.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-date/range-select-date.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-filesize/range-select-filesize.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/range-select-filesize/range-select-filesize.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/string/string.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/string/string.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/catalog/catalog.component.ts","../../../../../libs/yuuvis/client-framework/forms/src/lib/elements/catalog/catalog.component.html","../../../../../libs/yuuvis/client-framework/forms/src/lib/forms.module.ts","../../../../../libs/yuuvis/client-framework/forms/src/yuuvis-client-framework-forms.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, input, OnInit, signal } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { ObjectFormTranslateService, ObjectTypeField, Situation, SystemService, TranslateModule } from '@yuuvis/client-core';\nimport { MetadataFormFieldComponent } from '@yuuvis/client-framework/metadata-form';\n\n@Component({\n selector: 'yuv-edit-table-data',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatDialogModule, MatButtonModule, MatFormFieldModule, MetadataFormFieldComponent, TranslateModule],\n templateUrl: './edit-data.component.html',\n styleUrl: './edit-data.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditTableDataComponent),\n multi: true\n }\n ]\n})\nexport class EditTableDataComponent<T = any> implements OnInit {\n readonly #fb = inject(FormBuilder);\n readonly #system = inject(SystemService);\n readonly #errorMessage = inject(ObjectFormTranslateService);\n #dialogData = inject<any>(MAT_DIALOG_DATA);\n readonly #dialogRef = inject(MatDialogRef<EditTableDataComponent>);\n\n errorMessage = signal<any[] | null>(null);\n tableForm: FormGroup = this.#fb.group({});\n\n isInnerTableForm = input(true);\n\n formElement: { [key: string]: any } = this.#dialogData.formElement || {};\n columns: ObjectTypeField[] = (this.formElement['elements'] || []).map((c: any) => {\n return {\n ...c,\n propertyType: c.type,\n _internalType: this.#system.getInternalFormElementType(c.type, c.classification)\n };\n });\n #elementData: T = this.#dialogData.elementData || ({} as T);\n situation: Situation = this.#dialogData.situation || Situation.EDIT;\n header = this.#dialogData.label || '';\n adding = this.#dialogData.adding;\n\n cancel() {\n this.#dialogRef.close({});\n }\n\n submit() {\n if (this.tableForm.valid && this.#dialogRef) this.#dialogRef.close(this.tableForm.getRawValue());\n }\n\n ngOnInit() {\n Object.values(this.formElement['elements']).forEach((element: any) => {\n return this.tableForm.addControl(\n element.name,\n this.#fb.control({ value: '', disabled: element.readonly }, element.required ? Validators.required : null)\n );\n });\n this.tableForm.setValidators(this.#globalErrorValidator());\n this.#elementData && this.tableForm.patchValue(this.#elementData);\n\n this.tableForm.valueChanges.subscribe((v) => {\n this.errorMessage.set(\n this.tableForm.errors\n ? Object.keys(this.tableForm.errors).map((key) =>\n this.tableForm.errors && this.tableForm.errors[key]\n ? Object.keys(this.tableForm.errors[key]).map((k) => ({ [key]: this.#errorMessage.getErrorLabel(k, key) }))\n : null\n )\n : null\n );\n });\n }\n\n #globalErrorValidator() {\n return (control: AbstractControl): ValidationErrors | null => {\n const formGroup = control as FormGroup;\n const errors: ValidationErrors = {};\n\n Object.keys(formGroup.controls).forEach((key) => {\n const control = formGroup.get(key);\n if (control && control.invalid && control.dirty) {\n const controlErrors = control.errors;\n if (controlErrors) {\n // Ignore 'required' error if there are more errors\n if (Object.keys(controlErrors).length > 1 && controlErrors['required']) {\n const { required, ...otherErrors } = controlErrors;\n errors[key] = otherErrors;\n } else {\n errors[key] = controlErrors;\n }\n }\n }\n });\n\n return Object.keys(errors).length ? errors : null;\n };\n }\n}\n","<div [formGroup]=\"tableForm\">\n <h2 mat-dialog-title>{{ 'yuv.form.element.data.grid.edit.headline' | translate: { headline: header } }}</h2>\n\n <mat-dialog-content>\n <div class=\"fields\">\n @for (element of columns; track $index) {\n <div [attr.data-name]=\"element.name\" class=\"form-field\">\n <yuv-metadata-form-field [field]=\"element\" [formControlName]=\"element.name\" [situation]=\"situation\"></yuv-metadata-form-field>\n\n @let errorsGroup = errorMessage();\n @if (errorsGroup && tableForm.errors) {\n <div class=\"err-msg\">\n @for (errors of errorsGroup; track $index) {\n @for (error of errors; track $index) {\n {{ error[element.name] }}\n }\n }\n </div>\n }\n </div>\n }\n </div>\n </mat-dialog-content>\n\n <mat-dialog-actions>\n <button mat-button (click)=\"cancel()\">{{ 'yuv.form.element.data.grid.edit.cancel' | translate }}</button>\n <button mat-flat-button class=\"primary\" (click)=\"submit()\" [disabled]=\"!tableForm.dirty && !tableForm.valid\">\n @if (adding) {\n {{ 'yuv.form.element.data.grid.edit.add' | translate }}\n } @else {\n {{ 'yuv.form.element.data.grid.edit' | translate }}\n }\n </button>\n </mat-dialog-actions>\n</div>\n","export enum DataGridSizeType {\n SMALL = 'small',\n MEDIUM = 'medium',\n LARGE = 'large',\n XLARGE = 'extra-large',\n AUTO = 'auto'\n}\n\nexport interface DataGridSize {\n extralarge: DataGridSizeType.XLARGE;\n large: DataGridSizeType.LARGE;\n medium: DataGridSizeType.MEDIUM;\n small: DataGridSizeType.SMALL;\n auto: DataGridSizeType.AUTO;\n}\n","import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { CommonModule, DecimalPipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, forwardRef, inject, input, signal, untracked } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ClipboardService, Situation, TranslateModule, TranslateService } from '@yuuvis/client-core';\nimport { YUV_ICONS } from '@yuuvis/client-framework/icons';\nimport { map } from 'rxjs';\nimport { EditTableDataComponent } from '../edit-table-data/edit-data.component';\nimport { DataGridSizeType } from '../model/data-grid.interface';\n\nconst CDK_IMPORT = [CdkMenu, CdkTableModule, CdkMenuTrigger, CdkMenuItem];\n@Component({\n selector: 'yuv-data-grid',\n standalone: true,\n imports: [CommonModule, NgClass, MatIconModule, MatButtonModule, TranslateModule, ...CDK_IMPORT],\n templateUrl: './data-grid.component.html',\n styleUrl: './data-grid.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DataGridComponent),\n multi: true\n },\n DecimalPipe\n ],\n host: {\n class: 'yuv-data-grid'\n }\n})\nexport class DataGridComponent implements ControlValueAccessor {\n readonly #dialog = inject(MatDialog);\n readonly #clipboardService = inject(ClipboardService);\n readonly #decimalPipe = inject(DecimalPipe);\n readonly trnaslate = inject(TranslateService);\n\n situation = input<Situation>(Situation.EDIT);\n formElement = input<Record<string, any> | undefined>(undefined);\n formControl = input<any>(undefined);\n classifications = input<string[]>([]);\n readonly = input<boolean>(false);\n\n size = input<DataGridSizeType>(DataGridSizeType.AUTO);\n\n displayedColumns = signal<any[]>([]);\n displayedColumnsWithActions = signal<string[]>([]);\n dataSource = signal<any[]>([]);\n\n tableLabel = computed(() => this.formElement()?.['label'] ?? '');\n\n selectedRow = signal(null);\n\n initalTableUpdate = true;\n\n icons = {\n add: YUV_ICONS.add,\n more: YUV_ICONS.more\n };\n\n #loadData = effect(() => {\n const formElement = this.formElement();\n untracked(() => formElement && this.#updateTable(formElement['elements'], formElement['value'] || []));\n });\n\n #sourceData = effect(() => {\n const dataSource = this.dataSource();\n !this.initalTableUpdate && this.writeValue(dataSource.filter((row) => !row.isAddRow));\n this.initalTableUpdate = false;\n });\n\n #openEditOverlay(elementData: any | null, adding = false) {\n return this.#dialog\n .open(EditTableDataComponent, {\n data: {\n formElement: {\n ...this.formElement()\n },\n elementData,\n situation: this.situation(),\n adding,\n label: this.tableLabel()\n }\n })\n .afterClosed()\n .pipe(map((result: Record<string, unknown>) => result));\n }\n\n copyLine(element: any) {\n this.#clipboardService.addToNavigatorClipBoard(JSON.stringify(element));\n }\n\n onMenuTriggert(element: any | null) {\n this.selectedRow.set(element);\n }\n\n editRow(element: any) {\n this.selectedRow.set(element);\n this.#openEditOverlay(element).subscribe((result: any) => {\n if (result) {\n const updatedData = this.dataSource().map((item) => (JSON.stringify(item) === JSON.stringify(element) ? result : item));\n const formElement = this.formElement();\n formElement && this.#updateTable(formElement['elements'], [...updatedData]);\n }\n this.selectedRow.set(null);\n });\n }\n\n addRow() {\n this.#openEditOverlay(null, true).subscribe((result: any) => {\n const currentData = this.dataSource();\n const data = [...currentData];\n result && data.push(result);\n const formElement = this.formElement();\n formElement && this.#updateTable(formElement['elements'], data);\n });\n }\n\n removeRow(element: any) {\n const updatedData = this.dataSource().filter((item) => JSON.stringify(item) !== JSON.stringify(element));\n const formElement = this.formElement();\n formElement && this.#updateTable(formElement['elements'], updatedData);\n }\n\n #cellor(element: any, value: string) {\n switch (element.type) {\n case 'string':\n return value;\n break;\n case 'decimal':\n return this.#decimalPipe.transform(value, '1.2-4', this.trnaslate.currentLang);\n break;\n default:\n return value;\n break;\n }\n }\n\n #updateTable(elements: any, data: any[] = []) {\n if (elements.length > 0) {\n this.displayedColumns.set(\n elements.reduce((acc: any, el: any) => {\n acc.push({\n columnDef: el.label,\n header: el.label,\n cell: (element: any) => (element.isAddRow ? '' : this.#cellor(el, element[el.label]))\n });\n return acc;\n }, [])\n );\n } else {\n this.displayedColumns.set([]);\n }\n\n this.displayedColumnsWithActions.set([...this.displayedColumns().map((col) => col.columnDef), 'actions']);\n this.dataSource.set(data);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (fn: () => void) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n validationChange = () => {};\n\n writeValue(obj: any): void {\n this.propagateChange(obj);\n }\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.validationChange = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n // console.log('setDisabledState: ', isDisabled);\n }\n\n onValueChange(e: any) {\n this.propagateChange(e);\n }\n}\n","<header>\n <h3>{{ tableLabel() }}</h3>\n @if (!readonly()) {\n <button mat-icon-button (click)=\"addRow()\" class=\"table-options-add-row\">\n <mat-icon>add</mat-icon>\n </button>\n }\n</header>\n@let displayedCol = displayedColumns();\n@let displayedColActions = displayedColumnsWithActions();\n<div class=\"table-wrapper\" [ngClass]=\"size()\">\n <table cdk-table [dataSource]=\"dataSource()\">\n <!-- Dynamic Columns -->\n @for (column of displayedCol; track $index) {\n <ng-container [cdkColumnDef]=\"column.columnDef\">\n <th class=\"sticky-column\" cdk-header-cell *cdkHeaderCellDef>{{ column.header }}</th>\n <td cdk-cell *cdkCellDef=\"let element\">{{ column.cell(element) }}</td>\n </ng-container>\n }\n\n <!-- Actions Column (Not in displayedColumns) -->\n <ng-container cdkColumnDef=\"actions\">\n <th class=\"actions-header sticky-column\" cdk-header-cell *cdkHeaderCellDef></th>\n <td class=\"actions-row sticky\" cdk-cell *cdkCellDef=\"let element\">\n <!-- Only show the button in the last (empty) row -->\n @if (!readonly()) {\n <button\n mat-icon-button\n class=\"table-options-menu-bar-item\"\n cdkMenuItem\n (cdkMenuOpened)=\"onMenuTriggert(element)\"\n (cdkMenuClosed)=\"onMenuTriggert(null)\"\n [cdkMenuTriggerFor]=\"options\"\n [cdkMenuTriggerData]=\"{ element: element }\"\n >\n <mat-icon>more_vert</mat-icon>\n </button>\n }\n </td>\n </ng-container>\n\n <tr cdk-header-row *cdkHeaderRowDef=\"displayedColActions\"></tr>\n @if (!readonly()) {\n <tr (dblclick)=\"editRow(row)\" [class.selected-row]=\"row === selectedRow()\" cdk-row *cdkRowDef=\"let row; columns: displayedColActions\"></tr>\n } @else {\n <tr cdk-row *cdkRowDef=\"let row; columns: displayedColActions\"></tr>\n }\n </table>\n</div>\n<ng-template #options let-element=\"element\">\n <div class=\"table-options-menu\" cdkMenu>\n <button class=\"table-options-menu-item\" (click)=\"copyLine(element)\" cdkMenuItem>{{ 'yuv.form.element.data.grid.copy' | translate }}</button>\n <button class=\"table-options-menu-item\" cdkMenuItem (click)=\"editRow(element)\">{{ 'yuv.form.element.data.grid.edit' | translate }}</button>\n <button class=\"table-options-menu-item\" cdkMenuItem (click)=\"removeRow(element)\">{{ 'yuv.form.element.data.grid.remove' | translate }}</button>\n </div>\n</ng-template>\n","import { Component, OnInit, effect, inject, input, signal, viewChild } from '@angular/core';\nimport { ControlValueAccessor, FormsModule } from '@angular/forms';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { AbstractMatFormField, injectNgControl } from '@yuuvis/client-framework/common';\nimport { DatepickerComponent, DatepickerLabels, YuvDatepickerModule } from '@yuuvis/client-framework/datepicker';\n@Component({\n selector: 'yuv-datetime',\n standalone: true,\n imports: [FormsModule, YuvDatepickerModule, MatInputModule, MatDatepickerModule],\n templateUrl: './datetime.component.html',\n styleUrl: './datetime.component.scss',\n providers: [{ provide: MatFormFieldControl, useExisting: DatetimeComponent }]\n})\nexport class DatetimeComponent extends AbstractMatFormField<Date | null> implements ControlValueAccessor, OnInit {\n private translate = inject(TranslateService);\n\n pickerCmp = viewChild.required(DatepickerComponent);\n \n\n labels?: DatepickerLabels;\n override ngControl = injectNgControl(this);\n\n _locale = signal<string>(this.translate.currentLang);\n locale = input<string>(this.translate.currentLang);\n #localeEffect = effect(() => {\n this._locale.set(this.locale() || this.translate.currentLang);\n });\n /**\n * Whether or not to allow only values in the future (default: false)\n */\n onlyFutureDates = input<boolean>(false);\n /**\n * Will prevent the input from being changed (default: false)\n */\n readonly = input<boolean>(false);\n /**\n * Whether to show the calendar icon that opens the date picker calendar (default: true)\n */\n calendar = input<boolean>(true);\n\n /**\n * Enables setting time as well (default: false)\n */\n withTime = input<boolean>(false);\n\n #setLabels() {\n this.labels = {\n calendarApply: this.translate.instant('yuv.form.element.datetime.calendar.select'),\n calendarCancel: this.translate.instant('yuv.form.element.datetime.calendar.cancel'),\n shortcut: { today: this.translate.instant('yuv.form.element.datetime.calendar.today') }\n };\n }\n\n openCalendar() {\n this.pickerCmp().openCalendar();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (fn: () => void) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n validationChange = () => {};\n\n writeValue(value: any): void {\n if (typeof value === 'string') {\n value = new Date(value);\n this.propagateChange(value);\n }\n this.value = value || null;\n }\n\n registerOnChange(fn: () => void): void {\n this.propagateChange = fn;\n }\n\n registerOnValidatorChange?(fn: () => void): void {\n this.validationChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(): void {}\n\n onValueChange(e: any) {\n this.propagateChange(this.withTime() ? e : e.toISOString().split('T')[0]);\n }\n\n ngOnInit(): void {\n this.focusHandled.set(true)\n this.#setLabels();\n this.translate.onLangChange.subscribe((e: LangChangeEvent) => this._locale.set(e.lang));\n }\n}\n","<yuv-datepicker\n [calendar]=\"calendar()\"\n [disabled]=\"readonly()\"\n [withTime]=\"withTime()\"\n [locale]=\"_locale()\"\n [labels]=\"labels!\"\n [onlyFutureDates]=\"onlyFutureDates()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n></yuv-datepicker>\n","import { CommonModule } from '@angular/common';\nimport { Component, DestroyRef, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n ValidationErrors,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { Operator, OperatorLabel, RangeValue, Situation } from '@yuuvis/client-core';\nimport { AbstractMatFormField, injectNgControl } from '@yuuvis/client-framework/common';\nimport { DatetimeComponent } from '../datetime/datetime.component';\n\n@Component({\n selector: 'yuv-datetime-range',\n standalone: true,\n imports: [CommonModule, FormsModule, MatDatepickerModule, MatSelectModule, ReactiveFormsModule, DatetimeComponent],\n templateUrl: './datetime-range.component.html',\n styleUrl: './datetime-range.component.scss',\n providers: [{ provide: MatFormFieldControl, useExisting: DatetimeRangeComponent }]\n})\nexport class DatetimeRangeComponent extends AbstractMatFormField<RangeValue> implements ControlValueAccessor, OnInit, OnDestroy {\n #dRef = inject(DestroyRef);\n /**\n * Enables setting time as well (default: false)\n */\n @Input() withTime = false;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n @Input() operator = 'eq';\n @Input() situation?: string;\n\n private _isValid = true;\n override ngControl = injectNgControl(this);\n\n // options for search situation\n availableSearchOptions = [\n { label: OperatorLabel.EQUAL, value: Operator.EQUAL },\n { label: OperatorLabel.GREATER_OR_EQUAL, value: Operator.GREATER_OR_EQUAL },\n { label: OperatorLabel.LESS_OR_EQUAL, value: Operator.LESS_OR_EQUAL },\n { label: OperatorLabel.INTERVAL_INCLUDE_BOTH, value: Operator.INTERVAL_INCLUDE_BOTH }\n ];\n\n public rangeForm = new FormGroup({\n dateValue: new FormControl<Date | undefined>(undefined, { nonNullable: true, validators: [Validators.required] }),\n operator: new FormControl<Operator>(this.availableSearchOptions[1].value, { nonNullable: true }),\n dateValueFrom: new FormControl<Date | undefined>(undefined, { nonNullable: true })\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: RangeValue): void {\n if (value && (value.firstValue || value.secondValue)) {\n const match = this.availableSearchOptions.find((o) => o.value === value.operator);\n this.value = value;\n this.rangeForm.patchValue({\n dateValueFrom: (value.secondValue as Date) && (value.firstValue as Date),\n operator: match ? match.value : this.availableSearchOptions[0].value,\n dateValue: (value.secondValue as Date) || (value.firstValue as Date)\n });\n } else {\n this.rangeForm.patchValue({\n operator: this.availableSearchOptions[0].value\n });\n this.value = null;\n this.rangeForm.reset();\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n #onValueChange() {\n const dateValue = this.rangeForm.value.dateValue || undefined;\n const operator = this.rangeForm.value.operator as Operator;\n if (operator === Operator.INTERVAL_INCLUDE_BOTH) {\n const dateValueFrom = this.rangeForm.value.dateValueFrom || undefined;\n\n if (dateValueFrom || dateValue) {\n this._isValid = this.rangeForm.valid && !!dateValueFrom && !!dateValue;\n this.value = !this._isValid\n ? null\n : {\n operator,\n firstValue: dateValueFrom,\n secondValue: dateValue\n };\n }\n } else {\n this._isValid = this.rangeForm.valid;\n this.value = !this._isValid\n ? null\n : {\n operator,\n firstValue: dateValue,\n secondValue: undefined\n };\n }\n\n this.propagateChange(this.value);\n }\n\n #getValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n let err;\n const operator = control.value.operator as Operator;\n if (operator === Operator.EQUAL) {\n err = {\n datecontrol: {\n valid: false\n }\n };\n } else {\n // make sure that on ranges, the first value is earlier than the last\n if (operator === Operator.INTERVAL_INCLUDE_BOTH && control.value && control.value.firstValue && control.value.secondValue) {\n this._isValid = new Date(control.value.firstValue as Date).getTime() < new Date(control.value.secondValue as Date).getTime();\n err = {\n daterangeorder: {\n valid: false\n }\n };\n } else {\n err = {\n daterange: {\n valid: false\n }\n };\n }\n }\n return this.situation === Situation.SEARCH || this._isValid ? null : err;\n };\n }\n\n ngOnInit(): void {\n this.rangeForm.setValidators(this.#getValidator());\n this.rangeForm.statusChanges.pipe(takeUntilDestroyed(this.#dRef)).subscribe((v) => {\n this.errorState = this.situation === Situation.SEARCH || this._isValid;\n if (this.ngControl?.control) {\n this.ngControl.control.setErrors(this.rangeForm.errors);\n }\n });\n this.rangeForm.updateValueAndValidity();\n this.rangeForm.valueChanges.subscribe(() => this.#onValueChange());\n }\n\n ngOnDestroy(): void {\n super.onNgOnDestroy();\n }\n}\n","<form class=\"eo-datetime-range\" [formGroup]=\"rangeForm\">\n @if (rangeForm.value.operator === 'gtelte') {\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValueFrom\"></yuv-datetime>\n }\n\n <mat-select [panelWidth]=\"null\" [hideSingleSelectionIndicator]=\"true\" formControlName=\"operator\" [disabled]=\"readonly\">\n @for (o of availableSearchOptions; track $index) {\n <mat-option [value]=\"o.value\">{{ o.label }}</mat-option>\n }\n </mat-select>\n\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValue\"></yuv-datetime>\n</form>\n","import { Component, computed, DestroyRef, effect, inject, input, OnDestroy, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ControlValueAccessor, FormControl, ReactiveFormsModule, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { Classification, FileSizePipe, LocaleNumberPipe, TranslateService, Utils } from '@yuuvis/client-core';\nimport { AbstractMatFormField, injectNgControl } from '@yuuvis/client-framework/common';\n\n/**\n * Creates form input for number values.\n *\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * @example\n * <yuv-number [scale]=\"2\"></yuv-number>\n *\n */\n@Component({\n selector: 'yuv-number',\n standalone: true,\n imports: [ReactiveFormsModule],\n template: '<input type=\"string\" [formControl]=\"innerCtrl\" (focus)=\"unformat()\" (blur)=\"format()\" [readonly]=\"readonly()\" />',\n styleUrls: ['./number.component.scss'],\n providers: [{ provide: MatFormFieldControl, useExisting: NumberComponent }]\n})\nexport class NumberComponent extends AbstractMatFormField<number> implements ControlValueAccessor, OnInit, OnDestroy {\n #dRef = inject(DestroyRef);\n readonly translate = inject(TranslateService);\n\n // innerValue: string | null = null;\n validationErrors: ValidationErrors[] = [];\n transformPipe: LocaleNumberPipe | FileSizePipe = new LocaleNumberPipe(this.translate);\n innerCtrl = new FormControl<string | null>(null);\n override ngControl = injectNgControl(this);\n\n /**\n * Number of decimal places\n */\n scale = input<number | undefined>(undefined);\n #scale = computed<number>(() => Math.min(this.scale() || 0, 30));\n\n /**\n * Overall amount of digits allowed (including decimal places)\n */\n precision = input<number | undefined>(undefined);\n #precision = computed<number>(() => Math.min(this.precision() || 100, 100));\n\n /**\n * Set to true to group number by pattern\n */\n grouping = input<boolean>(false);\n #grouping = computed(() => this.grouping() ?? true);\n\n /**\n * The pattern to group number value by\n */\n groupPattern = input<string | undefined>(undefined);\n\n /**\n * Will prevent the input from being changed (default: false)\n */\n readonly = input<boolean>(false);\n\n /**\n * set minimum input value\n */\n minValue = input<number | undefined>(undefined);\n\n /**\n * set maximum input value\n *\n */\n maxValue = input<number | undefined>(undefined);\n\n /**\n * classification property adds some semantics to the value of this component.\n * If you provide a value of `filesize` numbers typed into the control will be\n * handled like file sizes (calculates differnt units)\n */\n classifications = input<string[]>([]);\n #classificationsEffect = effect(() => {\n const classifications = this.classifications();\n this.transformPipe =\n classifications && classifications.includes(Classification.NUMBER_FILESIZE) ? new FileSizePipe(this.translate) : new LocaleNumberPipe(this.translate);\n });\n\n static betweenTwoNumbers(val: number, minVal: number | undefined, maxVal: number | undefined) {\n const min = !Utils.isEmpty(minVal) ? minVal : -Infinity;\n const max = !Utils.isEmpty(maxVal) ? maxVal : Infinity;\n return val >= (min as number) && val <= (max as number);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: any): void {\n this.value = value != null ? value : null;\n const innerValue = value != null ? this.transformPipe.numberToString(value, this.#grouping(), this.groupPattern(), this.#scale()) : null;\n this.innerCtrl.setValue(innerValue, { emitEvent: false });\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(): void {}\n\n // called when the input looses focus\n format() {\n if (!this.readonly() && typeof this.value === 'number' && this.validationErrors.length === 0) {\n this.innerCtrl.patchValue(this.transformPipe.numberToString(this.value, this.#grouping(), this.groupPattern(), this.#scale()), { emitEvent: false });\n }\n }\n\n // called when the input get focus\n unformat() {\n if (!this.readonly() && typeof this.value === 'number' && this.validationErrors.length === 0) {\n this.innerCtrl.patchValue(this.transformPipe.transform(this.value, false), {\n emitEvent: false\n });\n }\n }\n\n #getValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n this.validationErrors = [];\n if (Utils.isEmpty(control.value)) return null;\n const val = this.transformPipe.stringToNumber(control.value);\n // general number validation\n if (isNaN(val) || typeof val !== 'number') {\n this.validationErrors.push({ key: 'number' });\n } else {\n const split = control.value.replaceAll(this.transformPipe.separator, '').split(this.transformPipe.decimalSeparator);\n // check precision\n if (this.#precision() !== undefined) {\n const prePointDigits = this.#precision() - this.#scale();\n if (split[0]?.length > prePointDigits) {\n this.validationErrors.push({ key: 'precision', params: { prePointDigits } });\n }\n }\n // check scale\n if (this.#scale() && split[1]?.length > this.#scale()) {\n this.validationErrors.push({ key: 'scale', params: { scale: this.#scale() } });\n }\n\n // min max\n if (!NumberComponent.betweenTwoNumbers(val, this.minValue(), this.maxValue())) {\n if (Utils.isEmpty(this.minValue())) {\n this.validationErrors.push({ key: 'maxvalue', params: { maxValue: this.maxValue() } });\n } else if (Utils.isEmpty(this.maxValue())) {\n this.validationErrors.push({ key: 'minvalue', params: { minValue: this.minValue() } });\n } else {\n this.validationErrors.push({ key: 'minmax', params: { minValue: this.minValue(), maxValue: this.maxValue() } });\n }\n }\n }\n const e: ValidationErrors = Utils.arrayToObject(this.validationErrors, 'key', (err) => ({ valid: false, ...err }));\n return this.validationErrors.length ? e : null;\n };\n }\n\n ngOnInit(): void {\n // set up validators once all inputs are set\n this.innerCtrl.setValidators(this.#getValidator());\n this.innerCtrl.statusChanges.pipe(takeUntilDestroyed(this.#dRef)).subscribe((v) => {\n this.errorState = this.innerCtrl.invalid;\n if (this.ngControl?.control) {\n this.ngControl.control.setErrors(this.innerCtrl.errors);\n }\n });\n this.innerCtrl.updateValueAndValidity();\n this.innerCtrl.valueChanges.pipe(takeUntilDestroyed(this.#dRef)).subscribe((v) => {\n if (Utils.isEmpty(v)) {\n this.value = null;\n this.propagateChange(this.value);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const val = this.transformPipe.stringToNumber(v!);\n if (this.validationErrors.length === 0 && this.value !== val) {\n this.value = val;\n this.propagateChange(this.value);\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n super.onNgOnDestroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, DestroyRef, forwardRef, inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport { MatSelectModule } from '@angular/material/select';\nimport { Operator, OperatorLabel, RangeValue } from '@yuuvis/client-core';\nimport { NumberComponent } from '../number/number.component';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { AbstractMatFormField } from '@yuuvis/client-framework/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/**\n * Creates form input for ranges of numeric values.\n *\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * @example\n * <yuv-number-range [scale]=\"2\"></yuv-number-range>\n *\n */\n@Component({\n selector: 'yuv-number-range',\n standalone: true,\n imports: [CommonModule, NumberComponent, MatSelectModule, FormsModule, ReactiveFormsModule],\n templateUrl: './number-range.component.html',\n styleUrls: ['./number-range.component.scss'],\n providers: [{ provide: MatFormFieldControl, useExisting: NumberRangeComponent }]\n})\nexport class NumberRangeComponent extends AbstractMatFormField<RangeValue> implements ControlValueAccessor, OnInit, OnDestroy {\n #dRef = inject(DestroyRef);\n\n /**\n * Number of decimal places\n */\n @Input() scale?: number;\n /**\n * Overall amount of digits allowed (including decimal places)\n */\n @Input() precision?: number;\n /**\n * Set to true to group number by pattern\n */\n @Input() grouping = false;\n /**\n * The pattern to group number value by\n */\n @Input() pattern?: string;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n\n /**\n * classification property adds some semantics to the value of this component.\n * If you provide a value of `filesize` numbers typed into the control will be\n * handled like file sizes (calculates differnt units)\n */\n @Input() classifications: string[] = [];\n /**\n * set minimum input value\n */\n @Input() minValue?: number;\n /**\n * set maximum input value\n *\n */\n @Input() maxValue?: number;\n\n private isValid = true;\n\n // options for search situation\n public availableSearchOptions = [\n { label: OperatorLabel.EQUAL, value: Operator.EQUAL },\n { label: OperatorLabel.GREATER_OR_EQUAL, value: Operator.GREATER_OR_EQUAL },\n { label: OperatorLabel.LESS_OR_EQUAL, value: Operator.LESS_OR_EQUAL },\n { label: OperatorLabel.INTERVAL_INCLUDE_BOTH, value: Operator.INTERVAL_INCLUDE_BOTH }\n ];\n\n public rangeForm = new FormGroup({\n numberValue: new FormControl<number | undefined>(undefined, { nonNullable: true, validators: [Validators.required] }),\n operator: new FormControl<Operator>(this.availableSearchOptions[1].value, { nonNullable: true }),\n numberValueFrom: new FormControl<number | undefined>(undefined, { nonNullable: true })\n });\n\n // constructor() {\n // this.rangeForm.valueChanges.forEach(() => {\n // this.#onValueChange();\n // });\n // }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: RangeValue): void {\n if (value && (value.firstValue != null || value.secondValue != null)) {\n const match = this.availableSearchOptions.find((o) => o.value === value.operator);\n\n this.value = value;\n if (value.secondValue == undefined) {\n this.rangeForm.setValue({\n numberValueFrom: undefined,\n operator: match ? match.value : this.availableSearchOptions[0].value,\n numberValue: (value.firstValue as number) || undefined\n });\n } else {\n this.rangeForm.setValue({\n numberValueFrom: (value.firstValue as number) || undefined,\n operator: match ? match.value : this.availableSearchOptions[0].value,\n numberValue: value.secondValue as number\n });\n }\n } else {\n this.rangeForm.patchValue({\n operator: this.availableSearchOptions[0].value\n });\n this.value = null;\n this.rangeForm.reset();\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n #onValueChange() {\n this.isValid = this.rangeForm.valid;\n const operator = this.rangeForm.value.operator as Operator;\n if (operator === Operator.INTERVAL_INCLUDE_BOTH) {\n this.isValid = this.rangeForm.valid && this.rangeForm.value.numberValueFrom != null && this.rangeForm.value.numberValue != null;\n this.value = !this.isValid\n ? {\n operator,\n firstValue: undefined,\n secondValue: undefined\n }\n : {\n operator,\n firstValue: this.rangeForm.value.numberValueFrom,\n secondValue: this.rangeForm.value.numberValue\n };\n } else {\n this.value = !this.isValid\n ? {\n operator,\n firstValue: undefined,\n secondValue: undefined\n }\n : {\n operator,\n firstValue: this.rangeForm.value.numberValue,\n secondValue: undefined\n };\n }\n this.propagateChange(this.value);\n }\n\n #getValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n let err: any;\n const operator = control.value.operator;\n if (operator === Operator.EQUAL) {\n err = { number: { valid: false } };\n } else if (operator === Operator.INTERVAL_INCLUDE_BOTH && this.value?.firstValue && this.value?.secondValue) {\n // make sure that on ranges, the first value is earlier than the last\n this.isValid = this.value.firstValue < this.value.secondValue;\n err = { numberrangeorder: { valid: false } };\n } else {\n err = { numberrange: { valid: false } };\n }\n return this.isValid ? null : err;\n };\n }\n\n // returns null when valid else the validation object\n public validate() {\n let err: any;\n const operator = this.rangeForm.value.operator;\n if (operator === Operator.EQUAL) {\n err = { number: { valid: false } };\n } else if (operator === Operator.INTERVAL_INCLUDE_BOTH && this.value?.firstValue && this.value?.secondValue) {\n // make sure that on ranges, the first value is earlier than the last\n this.isValid = this.value.firstValue < this.value.secondValue;\n err = { numberrangeorder: { valid: false } };\n } else {\n err = { numberrange: { valid: false } };\n }\n return this.isValid ? null : err;\n }\n\n ngOnInit(): void {\n this.rangeForm.setValidators(this.#getValidator());\n this.rangeForm.statusChanges.pipe(takeUntilDestroyed(this.#dRef)).subscribe((v) => {\n this.errorState = this.rangeForm.invalid;\n if (this.ngControl?.control) {\n this.ngControl.control.setErrors(this.rangeForm.errors);\n }\n });\n this.rangeForm.updateValueAndValidity();\n this.rangeForm.valueChanges.subscribe(() => this.#onValueChange());\n }\n\n ngOnDestroy(): void {\n super.onNgOnDestroy();\n }\n}\n","<form class=\"yuv-number-range\" [formGroup]=\"rangeForm\">\n @if (rangeForm.value.operator === 'gtelte') {\n <yuv-number\n class=\"first\"\n [readonly]=\"readonly\"\n [scale]=\"scale\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValueFrom\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n ></yuv-number>\n }\n\n <mat-select [panelWidth]=\"null\" [hideSingleSelectionIndicator]=\"true\" formControlName=\"operator\" [disabled]=\"readonly\">\n @for (o of availableSearchOptions; track $index) {\n <mat-option [value]=\"o.value\">{{ o.label }}</mat-option>\n }\n </mat-select>\n\n <yuv-number\n [scale]=\"scale\"\n [readonly]=\"readonly\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValue\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n >\n </yuv-number>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Component, inject, input, Input, OnDestroy, OnInit, signal } from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Classification, SystemService, TranslateModule, TranslateService, UserService, YuvUser } from '@yuuvis/client-core';\nimport { AutocompleteItem, YuvAutocompleteModule } from '@yuuvis/client-framework/autocomplete';\nimport { AbstractMatFormField, injectNgControl } from '@yuuvis/client-framework/common';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { catchError, finalize, map } from 'rxjs/operators';\n\ninterface UserNode {\n user: YuvUser;\n state: {\n notFound?: boolean;\n };\n titleString?: string;\n}\n\ntype FormControlValue =\n | string\n | {\n id: string;\n title: string;\n };\n\n/**\n * Creates form input for organisation values.\n *\n * @example\n * <yuv-organization [multiselect]=\"true\"></yuv-organization>\n */\n\n@Component({\n selector: 'yuv-organization',\n standalone: true,\n imports: [CommonModule, FormsModule, YuvAutocompleteModule, \n MatTooltipModule,\n MatIconModule, ReactiveFormsModule, TranslateModule],\n templateUrl: './organization.component.html',\n styleUrls: ['./organization.component.scss'],\n providers: [{ provide: MatFormFieldControl, useExisting: OrganizationComponent }]\n})\nexport class OrganizationComponent extends AbstractMatFormField<FormControlValue | FormControlValue[] | undefined> implements ControlValueAccessor, OnInit, OnDestroy {\n #system = inject(SystemService);\n #userService = inject(UserService);\n readonly translate = inject(TranslateService);\n\n minLength = 2;\n busy = signal<boolean>(false);\n\n acFormControl = new FormControl<AutocompleteItem | AutocompleteItem[] | undefined>(undefined);\n override ngControl = injectNgControl(this);\n\n _innerValue: UserNode[] = [];\n set innerValue(iv: UserNode[]) {\n this._innerValue = iv || [];\n }\n get innerValue() {\n return this._innerValue;\n }\n autocompleteRes: AutocompleteItem[] = [];\n #filterRoles: string[] = [];\n\n /**\n * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`. In search situation validation of the form element will be turned off, so you are able to enter search terms that do not meet the elements validators.\n */\n situation = input<string | undefined>(undefined);\n /**\n * Indicator that multiple strings could be inserted, they will be rendered as chips (default: false).\n */\n multiselect = input<boolean>(false);\n\n /**\n * Additional semantics for the form element.\n */\n private _classifications?: string[];\n @Input() set classifications(c: string[] | undefined) {\n this._classifications = c;\n if (c?.length) {\n const classifications = this.#system.getClassifications(c);\n if (classifications.has(Classification.STRING_ORGANIZATION)) {\n const options = classifications.get(Classification.STRING_ORGANIZATION)!.options;\n this.#filterRoles = options;\n }\n } else {\n this.#filterRoles = [];\n }\n }\n get classifications() {\n return this._classifications;\n }\n\n /**\n * Will prevent the input from being changed (default: false)\n */\n readonly = input<boolean>(false);\n\n /**\n * Whether or not to exclude the current user from autocomplete result\n */\n excludeMe = input<boolean>(false);\n\n /**\n * Whether or not the emitted value should be an object containing id and title\n * or, if set to false only the ID\n */\n withMetadata = input<boolean>(false);\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: string | string[]): void {\n if (value) {\n this.value = value;\n this.resolveFn(value);\n } else {\n this.value = null;\n this.innerValue = [];\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n private propagate() {\n this.value = this.#getPropagateValue();\n this.propagateChange(this.value);\n }\n\n #getPropagateValue(): FormControlValue | FormControlValue[] | undefined{\n if (this.multiselect()) {\n return this.innerValue.map((v) => (this.withMetadata() ? { id: v.user.id, title: v.user.title } : v.user.id));\n } else if (this.innerValue.length) {\n return this.withMetadata() ? { id: this.innerValue[0].user.id, title: this.innerValue[0].user.title } : this.innerValue[0].user.id;\n } else return undefined;\n }\n\n resolveFn(value: any) {\n const obs: Observable<UserNode>[] = (value instanceof Array ? value : [value]).map((v) => {\n const valueID = typeof v === 'string' ? v : v.id;\n\n const match: UserNode | undefined = this.innerValue.find((iv) => iv.user.id === valueID);\n return match\n ? of(match)\n : this.#userService.getUserById(valueID).pipe(\n map((res: YuvUser) => ({\n user: res,\n state: {}\n })),\n catchError((e: HttpErrorResponse) => {\n const user = new YuvUser({\n id: typeof v === 'string' ? v : v.id\n });\n user.title = typeof v === 'string' ? v : v.title;\n return of({\n user,\n state: {\n notFound: e.status === 404\n },\n titleString: e.status === 404 ? this.translate.instant('yuv.form.element.organization.user.not-found') : undefined\n });\n })\n );\n });\n return forkJoin(obs).subscribe((data) => {\n this.innerValue = data;\n const mapped = this.innerValue.map((u) => ({\n label: u.user.title,\n value: u\n }));\n this.acFormControl.setValue(this.multiselect() ? mapped : [mapped[0]], { emitEvent: false });\n });\n }\n\n autocompleteFn(query: string) {\n if (query.length >= this.minLength) {\n this.busy.set(true);\n this.#userService\n .queryUser(query, this.excludeMe(), this.#filterRoles)\n .pipe(\n finalize(() => {\n this.busy.set(false);\n })\n )\n .subscribe({\n next: (users: YuvUser[]) => {\n this.autocompleteRes = users\n .filter((user) => !this.innerValue.some((value) => value.user.id === user.id))\n .map(\n (user) =>\n ({\n label: user.title,\n value: {\n user,\n state: {}\n }\n }) as AutocompleteItem\n );\n },\n error: () => {\n this.autocompleteRes = [];\n }\n });\n } else {\n this.autocompleteRes = [];\n }\n }\n\n ngOnInit() {\n this.acFormControl.valueChanges.subscribe((v) => {\n if (!Array.isArray(v)) v = v ? [v] : [];\n this.innerValue = (v as AutocompleteItem[]).map((i: AutocompleteItem) => i.value as UserNode);\n this.propagate();\n });\n }\n\n ngOnDestroy(): void {\n super.onNgOnDestroy();\n }\n}\n","<yuv-autocomplete\n [busy]=\"busy()\"\n [formControl]=\"acFormControl\"\n #autocomplete\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly()\"\n [autocompleteValues]=\"autocompleteRes\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"true\"\n [maxItems]=\"multiselect() ? (-1) : 1\"\n>\n <!-- template for item inside the dropdown -->\n <ng-template #optionTemplate let-item>\n <span class=\"chip\">{{ item.value.user.title }}</span>\n </ng-template>\n\n <!-- template for chip -->\n <ng-template #chipTemplate let-item>\n <span class=\"chip\" [ngClass]=\"{ notFound: item.value.state.notFound }\" [matTooltip]=\"item.value.titleString\">\n {{ item.value.user.title || '...' }}\n </span>\n </ng-template>\n</yuv-autocomplete>\n\n<mat-icon [matTooltip]=\"'yuv.form.element.organization.classify.icon.title' | translate\">{{ multiselect() ? 'group' : 'person' }}</mat-icon>\n","import { CommonModule } from '@angular/common';\nimport { Component, effect, inject, input, output } from '@angular/core';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { RangeValue, TranslateModule } from '@yuuvis/client-core';\nimport { DatetimeRangeComponent } from '../../datetime-range/datetime-range.component';\n\n@Component({\n selector: 'yuv-date-range-picker',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, TranslateModule, DatetimeRangeComponent],\n templateUrl: './date-range-picker.component.html',\n styleUrl: './date-range-picker.component.scss'\n})\nexport class DateRangePickerComponent {\n #fb = inject(FormBuilder);\n #dialogData = inject<any>(MAT_DIALOG_DATA);\n readonly #dialogRef = inject(MatDialogRef<DateRangePickerComponent>);\n\n form = this.#fb.group({\n range: this.#fb.control<RangeValue | undefined>(this.#dialogData.range, Validators.required)\n });\n\n range = input<RangeValue | undefined>(this.#dialogData.range);\n rangeChange = output<RangeValue | undefined>();\n #rangeEffect = effect(() => {\n const range = this.range();\n this.form.patchValue({ range });\n });\n\n apply() {\n this.rangeChange.emit(this.form.value.range || undefined);\n this.#dialogRef.close(this.form.value.range);\n }\n}\n","<form [formGroup]=\"form\" (ngSubmit)=\"apply()\">\n <h2>{{ 'yuv.form.element.range-select-date.custom.overlay.title' | translate }}</h2>\n <yuv-datetime-range [withTime]=\"false\" formControlName=\"range\"></yuv-datetime-range>\n <button class=\"primary\" [disabled]=\"form.invalid\">{{ 'yuv.form.element.range-select-date.custom.overlay.button.apply' | translate }}</button>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, input, OnDestroy, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { marker } from '@colsen1991/ngx-translate-extract-marker';\nimport { DateRange, LocaleDatePipe, Operator, OperatorLabel, RangeValue, SearchUtils, TranslateService } from '@yuuvis/client-core';\nimport { AbstractMatFormField, injectNgControl } from '@yuuvis/client-framework/common';\nimport { DateRangePickerComponent } from './date-range-picker/date-range-picker.component';\nimport { RangeSelectDateValue } from './range-select-date.interface';\n\n// marker for extracting translations for the available date range options\nmarker('yuv.form.element.range-select-date.option.any');\nmarker('yuv.form.element.range-select-date.option.today');\nmarker('yuv.form.element.range-select-date.option.yesterday');\nmarker('yuv.form.element.range-select-date.option.thisWeek');\nmarker('yuv.form.element.range-select-date.option.lastWeek');\nmarker('yuv.form.element.range-select-date.option.thisMonth');\nmarker('yuv.form.element.range-select-date.option.lastMonth');\nmarker('yuv.form.element.range-select-date.option.thisYear');\nmarker('yuv.form.element.range-select-date.option.lastYear');\nmarker('yuv.form.element.range-select-date.option.custom');\n\n/**\n * Component for selecting a date range based on pre-defined ranges like\n * 'today', 'this week', 'this month', etc.\n * It also allows to pick a custom date range.\n */\n@Component({\n selector: 'yuv-range-select-date',\n standalone: true,\n imports: [CommonModule, MatSelectModule, ReactiveFormsModule],\n templateUrl: './range-select-date.component.html',\n styleUrl: './range-select-date.component.scss',\n providers: [{ provide: MatFormFieldControl, useExisting: RangeSelectDateComponent }]\n})\nexport class RangeSelectDateComponent extends AbstractMatFormField<RangeSelectDateValue> implements ControlValueAccessor, OnDestroy {\n private translate = inject(TranslateService);\n #dialog = inject(MatDialog);\n\n #ANY_OPTION = 'any';\n #CUSTOM_OPTION = 'custom';\n\n options = signal<{ label: string; value: unknown }[]>([]);\n #customDateRange?: RangeValue;\n\n readonly fc = new FormControl<string>(this.#ANY_OPTION, {\n nonNullable: true\n });\n\n override ngControl = injectNgControl(this);\n override get shouldLabelFloat(): boolean {\n return true;\n }\n \n /**\n * Range values to be used in the dropdown.\n */\n ranges = input<DateRange[]>(['today', 'yesterday', 'thisWeek', 'thisMonth', 'thisYear']);\n /**\n * Whether to show the custom date range option.\n */\n customRange = input<boolean>(true);\n\n constructor() {\n super();\n this.translate.onLangChange.pipe(takeUntilDestroyed()).subscribe((_) => this.#setupOptions());\n this.#setupOptions();\n this.fc.valueChanges.pipe(takeUntilDestroyed()).subscribe((v) => this.#onFormValueChange(v));\n }\n\n #onFormValueChange(v: string | DateRange) {\n if (v === this.#CUSTOM_OPTION) {\n if (!this.#customDateRange || this.options().find((o) => o.value === this.#CUSTOM_OPTION)?.label === this.#customDateRangeToString())\n this.#openCustomRangeDialog();\n else\n this.value = {\n rangeValue: this.#customDateRange,\n label: this.#customDateRangeToString()\n };\n this.propagateChange(this.value);\n } else {\n const { start, end } = SearchUtils.dateRangeStartEnd(v as DateRange);\n this.value =\n v !== this.#ANY_OPTION\n ? {\n rangeValue: { operator: Operator.INTERVAL_INCLUDE_BOTH, firstValue: start, secondValue: end },\n label: this.translate.instant(`yuv.form.element.range-select-date.option.${v}`)\n }\n : null;\n this.propagateChange(this.value);\n this.#customDateRange = undefined;\n this.#setupOptions();\n }\n }\n\n #openCustomRangeDialog() {\n // open date range picker\n const o = this.#dialog.open(DateRangePickerComponent, {\n data: {\n range: this.#customDateRange\n }\n });\n o.afterClosed().subscribe((res: RangeValue | undefined) => {\n this.#customDateRange = res;\n\n if (!res) {\n this.fc.patchValue(this.#ANY_OPTION);\n this.#setupOptions();\n } else {\n this.#onFormValueChange(this.fc.value);\n this.#setupOptions(this.#customDateRangeToString());\n\n setTimeout(() => {\n this.fc.patchValue(this.#CUSTOM_OPTION, {\n emitEvent: false\n });\n });\n }\n });\n }\n\n #setupOptions(custom?: string) {\n const options = this.ranges().map((value) => ({\n label: this.translate.instant(`yuv.form.element.range-select-date.option.${value}`),\n value\n }));\n if (this.customRange())\n options.push({\n label: custom || this.translate.instant('yuv.form.element.range-select-date.option.custom'),\n value: this.#CUSTOM_OPTION as DateRange\n });\n\n this.options.set([\n {\n label: this.translate.instant('yuv.form.element.range-select-date.option.any'),\n value: this.#ANY_OPTION\n },\n ...options\n ]);\n }\n\n #customDateRangeToString(): string | undefined {\n if (!this.#customDateRange) return undefined;\n const dp = new LocaleDatePipe(this.translate);\n switch (this.#customDateRange.operator) {\n case Operator.EQUAL: {\n return dp.transform(this.#customDateRange.firstValue as Date, 'shortDate');\n }\n case Operator.GREATER_OR_EQUAL: {\n return `${OperatorLabel.GREATER_OR_EQUAL} ${dp.transform(this.#customDateRange.firstValue as Date, 'shortDate')}`;\n }\n case Operator.LESS_OR_EQUAL: {\n return `${OperatorLabel.LESS_OR_EQUAL} ${dp.transform(this.#customDateRange.firstValue as Date, 'shortDate')}`;\n }\n case Operator.INTERVAL_INCLUDE_BOTH: {\n return `${dp.transform(this.#customDateRange.firstValue as Date, 'shortDate')} ${OperatorLabel.INTERVAL_INCLUDE_BOTH} ${dp.transform(this.#customDateRange.secondValue as Date, 'shortDate')}`;\n }\n }\n return undefined;\n }\n\n // ControlValueAccessor implementation\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value?: RangeSelectDateValue): void {\n this.value = value || null;\n if (value?.rangeValue?.operator && value?.rangeValue?.firstValue) {\n const dr: DateRange | undefined = SearchUtils.getMatchingDateRange(value.rangeValue);\n if (dr) {\n this.fc.patchValue(dr);\n \n } else {\n this.#customDateRange = value.rangeValue;\n this.fc.patchValue(this.#CUSTOM_OPTION);\n }\n } else {\n this.fc.patchValue(this.#ANY_OPTION);\n }\n }\n\n registerOnChange(fn: () => void): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(fn: () => void): void {}\n\n ngOnDestroy(): void {\n super.onNgOnDestroy();\n }\n}\n","<mat-select [formControl]=\"fc\" [panelWidth]=\"null\" [hideSingleSelectionIndicator]=\"true\">\n @for (o of options(); track $index) {\n <mat-option [value]=\"o.value\">{{ o.label }}</mat-option>\n }\n</mat-select>\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, input, OnDestroy, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { marker } from '@colsen1991/ngx-translate-extract-marker';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FilesizeRange, RangeValue, SearchUtils } from '@yuuvis/client-core';\nimport { RangeSelectFilesizeValue } from './range-select-filesize.interface';\nimport { AbstractMatFormField, injectNgControl } from '@yuuvis/client-framework/common';\n\n// marker for extracting translations for the available filesize range options\nmarker('yuv.form.element.range-select-filesize.option.any');\nmarker('yuv.form.element.range-select-filesize.option.small');\nmarker('yuv.form.element.range-select-filesize.option.medium');\nmarker('yuv.form.element.range-select-filesize.option.large');\nmarker('yuv.form.element.range-select-filesize.option.verylarge');\n/**\n * Component for selecting a range of filesizes based on pre-defined ranges like\n * 'today', 'this week', 'this month', etc.\n */\n@Component({\n selector: 'yuv-range-select-filesize',\n standalone: true,\n imports: [CommonModule, MatSelectModule, ReactiveFormsModule],\n templateUrl: './range-select-filesize.component.html',\n styleUrl: './range-select-filesize.component.scss',\n providers: [{ provide: MatFormFieldControl, useExisting: RangeSelectFilesizeComponent }]\n})\nexport class RangeSelectFilesizeComponent extends AbstractMatFormField<RangeSelectFilesizeValue> implements ControlValueAccessor, OnDestroy {\n private translate = inject(TranslateService);\n\n #ANY_OPTION = 'any';\n\n options = signal<{ label: string; value: unknown }[]>([]);\n\n readonly fc = new FormControl<string>(this.#ANY_OPTION, {\n nonNullable: true\n });\n\n override ngControl = injectNgControl(this);\n override get shouldLabelFloat(): boolean {\n return true;\n }\n\n /**\n * Range values to be used in the dropdown.\n */\n ranges = input<FilesizeRange[]>(['small', 'medium', 'large', 'verylarge']);\n\n constructor() {\n super();\n this.translate.onLangChange.pipe(takeUntilDestroyed()).subscribe((_) => this.#setupOptions());\n this.#setupOptions();\n this.fc.valueChanges.pipe(takeUntilDestroyed()).subscribe((v) => this.#onFormValueChange(v));\n }\n\n #onFormValueChange(v: string | FilesizeRange) {\n const rangeValue: RangeValue | undefined = v !== this.#ANY_OPTION ? SearchUtils.filesizeRangeToRangeValue(v as FilesizeRange) : undefined;\n const res: RangeSelectFilesizeValue | undefined = rangeValue && {\n rangeValue,\n label: this.translate.instant(`yuv.form.element.range-select-filesize.option.${v}`)\n };\n this.value = res || null;\n this.propagateChange(res);\n }\n\n #setupOptions() {\n const options = this.ranges().map((value) => ({\n label: this.translate.instant(`yuv.form.element.range-select-filesize.option.${value}`),\n value\n }));\n\n this.options.set([\n {\n label: this.translate.instant('yuv.form.element.range-select-filesize.option.any'),\n value: this.#ANY_OPTION\n },\n ...options\n ]);\n }\n\n // ControlValueAccessor implementation\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value?: RangeSelectFilesizeValue): void {\n this.value = value || null;\n let patch: FilesizeRange | string = this.#ANY_OPTION;\n if (value?.rangeValue?.operator && value?.rangeValue?.firstValue) {\n const range: FilesizeRange | undefined = SearchUtils.getMatchingFilesizeRange(value.rangeValue);\n if (range) patch = range;\n }\n this.fc.patchValue(patch);\n }\n\n registerOnChange(fn: () => void): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(fn: () => void): void {}\n\n ngOnDestroy(): void {\n super.onNgOnDestroy();\n }\n}\n","<mat-select [panelWidth]=\"null\" [hideSingleSelectionIndicator]=\"true\" [formControl]=\"fc\">\n @for (o of options(); track $index) {\n <mat-option [value]=\"o.value\">{{ o.label }}</mat-option>\n }\n</mat-select>\n","import { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, DestroyRef, ElementRef, inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ControlValueAccessor, FormControl, FormsModule, ReactiveFormsModule, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { MatChipEditedEvent, MatChipInputEvent, MatChipsModule } from '@angular/material/chips';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Classification, ClassificationPrefix, FormattedMailTo, Situation, Utils } from '@yuuvis/client-core';\nimport { AbstractMatFormField, injectNgControl } from '@yuuvis/client-framework/common';\n/**\n * Creates form input for strings. Based on the input values different kinds of inputs will be generated.\n *\n * Implements `ControlValueAccessor` so it can be used within Angular forms.\n *\n * @example\n * <!-- string input validating input to be between 5 and 10 characters -->\n * <yuv-string [minLength]=\"5\" [maxLength]=\"10\"></yuv-string>\n *\n * <!-- string input that only allow digits -->\n * <yuv-string [regex]=\"[0-9]*\"></yuv-string>\n *\n * <!-- string input rendering a large textarea -->\n * <yuv-string [rows]=\"10\"></yuv-string>\n *\n */\n@Component({\n selector: 'yuv-string',\n standalone: true,\n imports: [CommonModule, MatChipsModule, MatIconModule, ReactiveFormsModule, FormsModule],\n templateUrl: './string.component.html',\n styleUrls: ['./string.component.scss'],\n providers: [{ provide: MatFormFieldControl, useExisting: StringComponent }]\n})\nexport class StringComponent extends AbstractMatFormField<string | string[] | undefined> implements ControlValueAccessor, AfterViewInit, OnInit, OnDestroy {\n #elRef = inject(ElementRef);\n #dRef = inject(DestroyRef);\n\n readonly fc = new FormControl<string | string[] | undefined>(undefined);\n\n readonly separatorKeysCodes = [ENTER, COMMA] as const;\n\n classifiytionIcons = {\n email: 'email',\n url: 'language',\n phone: 'call'\n };\n maxEntryCountIfInvalid?: number;\n\n /**\n * Indicator that multiple strings could be inserted, they will be rendered as chips (default: false).\n */\n @Input() multiselect = false;\n /**\n * Setting rows to more than 1 will generate a textarea instead of an input tag\n * and apply the rows property to it\n */\n @Input() rows?: number;\n /**\n * Will prevent the input from being changed (default: false)\n */\n @Input() readonly = false;\n /**\n * Enable autofucus for the input (default: false)\n */\n @Input() autofocus = false;\n /**\n * Additional semantics for the form element. Possible values are\n * `email` (validates and creates a link to send an email once there\n * is a valid email address) and `url` (validates and creates a link\n * to an URL typed into the form element).\n */\n @Input()\n set classifications(c: string[]) {\n this.#classifications = c;\n if (c && c.length) {\n if (c.includes(Classification.STRING_EMAIL)) {\n this.classify = {\n hrefPrefix: ClassificationPrefix.EMAIL,\n icon: this.classifiytionIcons.email\n };\n } else if (c.includes(Classification.STRING_URL)) {\n this.classify = {\n hrefPrefix: ClassificationPrefix.URL,\n icon: this.classifiytionIcons.url\n };\n } else if (c.includes(Classification.STRING_PHONE)) {\n this.classify = {\n hrefPrefix: ClassificationPrefix.PHONE,\n icon: this.classifiytionIcons.phone\n };\n }\n }\n }\n\n get classifications() {\n return this.#classifications;\n }\n /**\n * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`. In search situation validation of the form element will be turned off, so you are able to enter search terms that do not meet the elements validators.\n */\n @Input() situation?: string;\n\n /**\n * Regular expression to validate the input value against\n */\n @Input() regex?: string;\n /**\n * Minimal number of characters\n */\n @Input() minLength?: number;\n /**\n * Maximum number of characters\n */\n @Input() maxLength?: number;\n\n formatedValue?: FormattedMailTo;\n valid = false;\n validationErrors: { [key: string]: any }[] = [];\n classify?: { hrefPrefix: string; icon: string | undefined };\n #classifications: string[] = [];\n override ngControl = injectNgControl(this);\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n private propagate() {\n this.propagateChange(this.value);\n }\n\n writeValue(value: string | string[]): void {\n if (Array.isArray(value)) {\n value = value.filter((v) => typeof v === 'string' && v.trim().length > 0);\n } else {\n this.formatedValue = Utils.formatMailTo(value, this.classify?.hrefPrefix === ClassificationPrefix.EMAIL);\n }\n this.fc.patchValue(value);\n this.value = value || undefined;\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(): void {}\n\n #onValueChange(val: any) {\n this.value = val;\n this.empty = Utils.isEmpty(val);\n if (this.empty) {\n this.value = undefined;\n this.propagate();\n return;\n }\n this.formatedValue = Utils.formatMailTo(val, this.classify?.hrefPrefix === ClassificationPrefix.EMAIL);\n this.propagate();\n }\n\n onBlur() {\n if (!this.value) return;\n // only called by single item input\n const value = this.value as string;\n const lengthBefore = value.length;\n this.value = value.trim();\n if (this.value.length !== lengthBefore) {\n this.propagate();\n }\n }\n\n // chips for multiselect\n\n chipsAdd(event: MatChipInputEvent) {\n const value = (event.value || '').trim();\n if (value) {\n this.value = [...((this.value as string[]) || []), value];\n this.fc.patchValue(this.value);\n }\n // Clear the input value\n event.chipInput.clear();\n }\n\n chipsRemove(v: string) {\n const currValue = this.value as string[];\n const index = currValue.indexOf(v);\n if (index !== -1) {\n currValue.splice(index, 1);\n this.value = [...currValue];\n this.fc.patchValue(this.value);\n }\n }\n\n chipsEdit(v: string, event: MatChipEditedEvent) {\n const value = event.value.trim();\n if (!value) {\n this.chipsRemove(v);\n return;\n }\n const currValue = this.value as string[];\n const index = currValue.indexOf(v);\n if (index >= 0) {\n currValue[index] = value;\n this.value = [...currValue];\n this.fc.patchValue(this.value);\n }\n }\n\n private validateClassification(string: string, classification: string): boolean {\n if (this.situation === Situation.SEARCH) {\n return true;\n } else {\n let pattern;\n if (classification === Classification.STRING_EMAIL) {\n pattern =\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n } else if (classification === Classification.STRING_URL) {\n pattern = /(http|ftp|https):\\/\\/[\\w-]+(\\.[\\w-]+)?([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?/;\n } else if (classification === Classification.STRING_PHONE) {\n pattern = /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-x\\s\\./0-9]*$/g;\n }\n return pattern ? pattern.test(string) : true;\n }\n }\n\n #getValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n this.maxEntryCountIfInvalid = undefined;\n this.validationErrors = [];\n const val = control.value;\n if(!val) return null;\n const multiCheck = (check: (s: string) => boolean) => !!(this.multiselect ? val : [val]).find((v: string) => check(v));\n\n // validate regular expression\n if (this.regex && multiCheck((v: string) => !RegExp(this.regex!).test(v))) {\n this.validationErrors.push({ key: 'regex' });\n }\n\n // validate classification settings\n if (this.classifications && this.classifications.length) {\n this.classifications.forEach((c) => {\n if (multiCheck((v) => !this.validateClassification(v, c))) {\n this.validationErrors.push({ key: 'classification' + c });\n }\n });\n }\n // validate min length\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n if (!Utils.isEmpty(this.minLength) && multiCheck((v) => v.length < this.minLength!)) {\n this.validationErrors.push({ key: 'minlength', params: { minLength: this.minLength } });\n }\n\n // validate max length\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n if (!Utils.isEmpty(this.maxLength) && multiCheck((v) => v.length > this.maxLength!)) {\n this.validationErrors.push({ key: 'maxlength', params: { maxLength: this.maxLength } });\n }\n\n // validate invalid if only whitespaces\n if (multiCheck((v) => v.length > 0 && !v.trim().length)) {\n this.validationErrors.push({ key: 'onlyWhitespaces' });\n }\n\n if (this.validationErrors.length && this.multiselect && this.value) {\n // Setting maxEntryCountIfInvalid to the actual length of the value array to prevent the user to add more entries.\n this.maxEntryCountIfInvalid = this.value.length;\n }\n\n if (this.validationErrors.length) {\n this.valid = false;\n return Utils.arrayToObject(this.validationErrors, 'key', (err) => ({ valid: false, ...err }));\n } else {\n this.valid = true;\n return null;\n }\n };\n }\n\n ngOnInit(): void {\n this.fc.setValidators(this.#getValidator());\n this.fc.statusChanges.pipe(takeUntilDestroyed(this.#dRef)).subscribe((v) => {\n this.errorState = this.fc.invalid;\n if (this.ngControl?.control) {\n this.ngControl.control.setErrors(this.fc.errors);\n }\n });\n this.fc.updateValueAndValidity();\n this.fc.valueChanges.pipe(takeUntilDestroyed(this.#dRef)).subscribe((v) => this.#onValueChange(v));\n }\n\n ngAfterViewInit(): void {\n if (this.autofocus) {\n if (!this.multiselect) {\n const el = this.#elRef.nativeElement.querySelector(this.rows && this.rows > 1 ? 'textarea' : 'input');\n if (el) el.focus();\n }\n }\n }\n\n ngOnDestroy(): void {\n super.onNgOnDestroy();\n }\n}\n","@if ((!rows || rows <= 1) && !multiselect) {\n <input matInput type=\"text\" (blur)=\"onBlur()\" [disabled]=\"disabled\" [readonly]=\"readonly\" [formControl]=\"fc\" />\n} @else if ((!rows || rows <= 1) && multiselect) {\n <!-- single line input with multiselect-->\n <mat-chip-grid #chipGrid [formControl]=\"fc\" [disabled]=\"disabled\">\n @for (v of value; track v) {\n <mat-chip-row (removed)=\"chipsRemove(v)\" [editable]=\"true\" (edited)=\"chipsEdit(v, $event)\">\n {{ v }}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n <input\n [disabled]=\"disabled\"\n [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"chipsAdd($event)\"\n />\n </mat-chip-grid>\n} @else if (rows && rows > 1) {\n <!-- multi line text inputs -->\n <textarea\n matInput\n class=\"input-textarea\"\n (blur)=\"onBlur()\"\n [rows]=\"rows\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [formControl]=\"fc\"\n ></textarea>\n}\n\n@if (classify) {\n <div class=\"classify\">\n @if (value && !validationErrors.length && (classify.hrefPrefix !== '' || !multiselect || value.length <= 1)) {\n <a href=\"{{ classify.hrefPrefix + formatedValue }}\">\n <mat-icon>{{ classify.icon }}</mat-icon>\n </a>\n } @else {\n <mat-icon>{{ classify.icon }}</mat-icon>\n }\n </div>\n}\n","import { Component, DestroyRef, effect, inject, Input, input, OnDestroy, OnInit, signal, untracked } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ControlValueAccessor, FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { AbstractMatFormField, injectNgControl } from '@yuuvis/client-framework/common';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { Classification, ClassificationEntry, SystemService } from '@yuuvis/client-core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'yuv-catalog',\n imports: [CommonModule, MatSelectModule, ReactiveFormsModule],\n templateUrl: './catalog.component.html',\n styleUrl: './catalog.component.scss',\n providers: [{ provide: MatFormFieldControl, useExisting: CatalogComponent }]\n})\nexport class CatalogComponent extends AbstractMatFormField<string | string[]> implements ControlValueAccessor, OnInit, OnDestroy {\n #system = inject(SystemService);\n #dRef = inject(DestroyRef);\n\n readonly = input<boolean>(false);\n\n multiple = input<boolean>(false);\n\n _options = signal<string[]>([]);\n options = input<string[]>([]);\n #optionsEffect = effect(() => {\n untracked(() => {\n this._options.set(this.options() || []);\n });\n });\n\n /**\n * Additional semantics for the form element.\n */\n classifications = input<string[]>([]);\n #classificationEffect = effect(() => {\n const cls = this.classifications();\n untracked(() => {\n const ce: ClassificationEntry | undefined = this.#system.getClassifications(cls).get(Classification.STRING_CATALOG);\n if (ce && ce.options) {\n this._options.set(ce.options);\n }\n });\n });\n\n /**\n * Possibles values are `EDIT` (default),`SEARCH`,`CREATE`. In search situation validation of the form element will be turned off, so you are able to enter search terms that do not meet the elements validators.\n */\n @Input() situation?: string;\n\n override ngControl = injectNgControl(this);\n readonly fc = new FormControl<string | string[] | undefined>(undefined);\n\n #onValueChange(val: any) {\n this.value = val;\n this.propagateChange(this.value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n propagateChange = (_: any) => {};\n\n writeValue(value: string | string[]): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerOnTouched(fn: any): void {}\n\n ngOnInit(): void {\n this.fc.valueChanges.pipe(takeUntilDestroyed(this.#dRef)).subscribe((v) => this.#onValueChange(v));\n }\n\n ngOnDestroy(): void {\n super.onNgOnDestroy();\n }\n}\n","<mat-select [multiple]=\"multiple()\" [disabled]=\"readonly()\" [formControl]=\"fc\">\n @for (o of _options(); track o) {\n <mat-option [value]=\"o\">{{ o }}</mat-option>\n }\n</mat-select>\n","import { NgModule } from '@angular/core';\nimport { DatetimeComponent, DatetimeRangeComponent, NumberRangeComponent, OrganizationComponent } from './elements';\nimport { CatalogComponent } from './elements/catalog/catalog.component';\nimport { NumberComponent } from './elements/number/number.component';\nimport { StringComponent } from './elements/string/string.component';\n\nconst formElementCmps = [\n StringComponent,\n NumberComponent,\n NumberRangeComponent,\n DatetimeComponent,\n DatetimeRangeComponent,\n OrganizationComponent,\n StringComponent,\n CatalogComponent\n];\n\n@NgModule({\n imports: [...formElementCmps],\n exports: [...formElementCmps]\n})\nexport class YuvFormsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","TranslateService","i2","map","i3","i4","i5","i6"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwBa,sBAAsB,CAAA;AAfnC,IAAA,WAAA,GAAA;AAgBW,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC;AACzB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AAC/B,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAC3D,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAM,eAAe,CAAC;AACjC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,EAAC,YAAoC,EAAC;AAElE,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAe,IAAI,CAAC;QACzC,IAAS,CAAA,SAAA,GAAc,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;AAEzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC;QAE9B,IAAW,CAAA,WAAA,GAA2B,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,EAAE;AACxE,QAAA,IAAA,CAAA,OAAO,GAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAM,KAAI;YAC/E,OAAO;AACL,gBAAA,GAAG,CAAC;gBACJ,YAAY,EAAE,CAAC,CAAC,IAAI;AACpB,gBAAA,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc;aAChF;AACH,SAAC,CAAC;QACF,IAAY,CAAA,YAAA,GAAM,IAAI,CAAC,WAAW,CAAC,WAAW,IAAK,EAAQ;QAC3D,IAAS,CAAA,SAAA,GAAc,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI;QACnE,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;AACrC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM;AAyDjC;AA/EU,IAAA,GAAG;AACH,IAAA,OAAO;AACP,IAAA,aAAa;AACtB,IAAA,WAAW;AACF,IAAA,UAAU;AAenB,IAAA,YAAY;IAKZ,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;;IAG3B,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU;AAAE,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;;IAGlG,QAAQ,GAAA;AACN,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AACnE,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAC9B,OAAO,CAAC,IAAI,EACZ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,CAC3G;AACH,SAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC1D,QAAA,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;QAEjE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;YAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,IAAI,CAAC,SAAS,CAAC;AACb,kBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KACzC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG;AAChD,sBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;sBACxG,IAAI;kBAEV,IAAI,CACT;AACH,SAAC,CAAC;;IAGJ,qBAAqB,GAAA;QACnB,OAAO,CAAC,OAAwB,KAA6B;YAC3D,MAAM,SAAS,GAAG,OAAoB;YACtC,MAAM,MAAM,GAAqB,EAAE;AAEnC,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gBAClC,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;AAC/C,oBAAA,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM;oBACpC,IAAI,aAAa,EAAE;;AAEjB,wBAAA,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE;4BACtE,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,GAAG,aAAa;AAClD,4BAAA,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW;;6BACpB;AACL,4BAAA,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa;;;;AAInC,aAAC,CAAC;AAEF,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI;AACnD,SAAC;;+GA9EQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EARtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,gBAAA,KAAK,EAAE;AACR;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBH,81CAmCA,EAAA,MAAA,EAAA,CAAA,iKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,kBAAkB,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,0BAA0B,mGAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAYnI,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAflC,SAAS;+BACE,qBAAqB,EAAA,UAAA,EACnB,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,eAAe,CAAC,EAG9H,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,4BAA4B,CAAC;AACrD,4BAAA,KAAK,EAAE;AACR;AACF,qBAAA,EAAA,QAAA,EAAA,81CAAA,EAAA,MAAA,EAAA,CAAA,iKAAA,CAAA,EAAA;;;AEtBH,IAAY,gBAMX;AAND,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,aAAsB;AACtB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,GAM3B,EAAA,CAAA,CAAA;;ACQD,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,CAAC;MAoB5D,iBAAiB,CAAA;AAnB9B,IAAA,WAAA,GAAA;AAoBW,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;AAC3B,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC5C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;AAClC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAE7C,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAY,SAAS,CAAC,IAAI,CAAC;AAC5C,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAkC,SAAS,CAAC;AAC/D,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAM,SAAS,CAAC;AACnC,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAW,EAAE,CAAC;AACrC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AAEhC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAmB,gBAAgB,CAAC,IAAI,CAAC;AAErD,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAQ,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,2BAA2B,GAAG,MAAM,CAAW,EAAE,CAAC;AAClD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAQ,EAAE,CAAC;AAE9B,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;AAEhE,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;QAE1B,IAAiB,CAAA,iBAAA,GAAG,IAAI;AAExB,QAAA,IAAA,CAAA,KAAK,GAAG;YACN,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,IAAI,EAAE,SAAS,CAAC;SACjB;AAED,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,MAAK;AACtB,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;YACtC,SAAS,CAAC,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACxG,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,MAAK;AACxB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;YACpC,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAChC,SAAC,CAAC;;AA0FF,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,EAAc,KAAI,GAAG;;AAExC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAK,GAAG;AAkB5B;AAnJU,IAAA,OAAO;AACP,IAAA,iBAAiB;AACjB,IAAA,YAAY;AA0BrB,IAAA,SAAS;AAKT,IAAA,WAAW;AAMX,IAAA,gBAAgB,CAAC,WAAuB,EAAE,MAAM,GAAG,KAAK,EAAA;QACtD,OAAO,IAAI,CAAC;aACT,IAAI,CAAC,sBAAsB,EAAE;AAC5B,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE;oBACX,GAAG,IAAI,CAAC,WAAW;AACpB,iBAAA;gBACD,WAAW;AACX,gBAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;gBAC3B,MAAM;AACN,gBAAA,KAAK,EAAE,IAAI,CAAC,UAAU;AACvB;SACF;AACA,aAAA,WAAW;aACX,IAAI,CAAC,GAAG,CAAC,CAAC,MAA+B,KAAK,MAAM,CAAC,CAAC;;AAG3D,IAAA,QAAQ,CAAC,OAAY,EAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;;AAGzE,IAAA,cAAc,CAAC,OAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;;AAG/B,IAAA,OAAO,CAAC,OAAY,EAAA;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,MAAW,KAAI;YACvD,IAAI,MAAM,EAAE;AACV,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AACvH,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,gBAAA,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;;AAE7E,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,SAAC,CAAC;;IAGJ,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAW,KAAI;AAC1D,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE;AACrC,YAAA,MAAM,IAAI,GAAG,CAAC,GAAG,WAAW,CAAC;AAC7B,YAAA,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,YAAA,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;AACjE,SAAC,CAAC;;AAGJ,IAAA,SAAS,CAAC,OAAY,EAAA;AACpB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACxG,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC;;IAGxE,OAAO,CAAC,OAAY,EAAE,KAAa,EAAA;AACjC,QAAA,QAAQ,OAAO,CAAC,IAAI;AAClB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,KAAK;gBACZ;AACF,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;gBAC9E;AACF,YAAA;AACE,gBAAA,OAAO,KAAK;gBACZ;;;AAIN,IAAA,YAAY,CAAC,QAAa,EAAE,IAAA,GAAc,EAAE,EAAA;AAC1C,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACvB,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAO,KAAI;gBACpC,GAAG,CAAC,IAAI,CAAC;oBACP,SAAS,EAAE,EAAE,CAAC,KAAK;oBACnB,MAAM,EAAE,EAAE,CAAC,KAAK;AAChB,oBAAA,IAAI,EAAE,CAAC,OAAY,MAAM,OAAO,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACrF,iBAAA,CAAC;AACF,gBAAA,OAAO,GAAG;AACZ,aAAC,EAAE,EAAE,CAAC,CACP;;aACI;AACL,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;;QAG/B,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;AACzG,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;;AAQ3B,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;;AAE3B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;AAE3B,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;;AAE5B,IAAA,gBAAgB,CAAE,UAAmB,EAAA;;;AAIrC,IAAA,aAAa,CAAC,CAAM,EAAA;AAClB,QAAA,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;;+GAlJd,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAZjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE;AACR,aAAA;YACD;AACD,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BH,i+EAwDA,EDtCY,MAAA,EAAA,CAAA,inGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAW,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,qLAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAJ9D,OAAO,EAAE,QAAA,EAAA,WAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,cAAc,sNAAE,WAAW,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,2BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAoB3D,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAnB7B,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC,EAG/E,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE;AACR,yBAAA;wBACD;qBACD,EACK,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE;AACR,qBAAA,EAAA,QAAA,EAAA,i+EAAA,EAAA,MAAA,EAAA,CAAA,inGAAA,CAAA,EAAA;;;AEhBG,MAAO,iBAAkB,SAAQ,oBAAiC,CAAA;AARxE,IAAA,WAAA,GAAA;;AASU,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAACC,kBAAgB,CAAC;AAE5C,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC;AAI1C,QAAA,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;QAE1C,IAAO,CAAA,OAAA,GAAG,MAAM,CAAS,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QACpD,IAAM,CAAA,MAAA,GAAG,KAAK,CAAS,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AAClD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,MAAK;AAC1B,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AAC/D,SAAC,CAAC;AACF;;AAEG;AACH,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAU,KAAK,CAAC;AACvC;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AAChC;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,IAAI,CAAC;AAE/B;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;;AAehC,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,EAAc,KAAI,GAAG;;AAExC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAK,GAAG;AA8B5B;AAlEC,IAAA,aAAa;IAqBb,UAAU,GAAA;QACR,IAAI,CAAC,MAAM,GAAG;YACZ,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2CAA2C,CAAC;YAClF,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2CAA2C,CAAC;AACnF,YAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,CAAC;SACtF;;IAGH,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE;;AAQjC,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;;AAE7B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI;;AAG5B,IAAA,gBAAgB,CAAC,EAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;AAG3B,IAAA,yBAAyB,CAAE,EAAc,EAAA;AACvC,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;;;AAI5B,IAAA,iBAAiB;AAEjB,IAAA,aAAa,CAAC,CAAM,EAAA;QAClB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;IAG3E,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAkB,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;;+GA3E9E,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAFjB,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,EAK9C,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,mBAAmB,ECnBpD,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,8UAWA,EDAY,MAAA,EAAA,CAAA,mIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,8VAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKpE,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;+BACE,cAAc,EAAA,UAAA,EACZ,IAAI,EACP,OAAA,EAAA,CAAC,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,mBAAmB,CAAC,EAGrE,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAmB,iBAAA,EAAE,CAAC,EAAA,QAAA,EAAA,8UAAA,EAAA,MAAA,EAAA,CAAA,mIAAA,CAAA,EAAA;;;AEezE,MAAO,sBAAuB,SAAQ,oBAAgC,CAAA;AAR5E,IAAA,WAAA,GAAA;;AASE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1B;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK;AACzB;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK;QAChB,IAAQ,CAAA,QAAA,GAAG,IAAI;QAGhB,IAAQ,CAAA,QAAA,GAAG,IAAI;AACd,QAAA,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;;AAG1C,QAAA,IAAA,CAAA,sBAAsB,GAAG;YACvB,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE;YACrD,EAAE,KAAK,EAAE,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,gBAAgB,EAAE;YAC3E,EAAE,KAAK,EAAE,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE;YACrE,EAAE,KAAK,EAAE,aAAa,CAAC,qBAAqB,EAAE,KAAK,EAAE,QAAQ,CAAC,qBAAqB;SACpF;QAEM,IAAS,CAAA,SAAA,GAAG,IAAI,SAAS,CAAC;AAC/B,YAAA,SAAS,EAAE,IAAI,WAAW,CAAmB,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;AACjH,YAAA,QAAQ,EAAE,IAAI,WAAW,CAAW,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAChG,aAAa,EAAE,IAAI,WAAW,CAAmB,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;AAClF,SAAA,CAAC;;AAGF,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG;AAsGjC;AApIC,IAAA,KAAK;AAgCL,IAAA,UAAU,CAAC,KAAiB,EAAA;AAC1B,QAAA,IAAI,KAAK,KAAK,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC;AACjF,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AACxB,gBAAA,aAAa,EAAG,KAAK,CAAC,WAAoB,IAAK,KAAK,CAAC,UAAmB;AACxE,gBAAA,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK;AACpE,gBAAA,SAAS,EAAG,KAAK,CAAC,WAAoB,IAAK,KAAK,CAAC;AAClD,aAAA,CAAC;;aACG;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;gBACxB,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;AAC1C,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;;;AAI1B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;;IAG3B,iBAAiB,CAAC,EAAO,EAAA;IAEzB,cAAc,GAAA;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,SAAS;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAoB;AAC1D,QAAA,IAAI,QAAQ,KAAK,QAAQ,CAAC,qBAAqB,EAAE;YAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,IAAI,SAAS;AAErE,YAAA,IAAI,aAAa,IAAI,SAAS,EAAE;AAC9B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS;AACtE,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC;AACjB,sBAAE;AACF,sBAAE;wBACE,QAAQ;AACR,wBAAA,UAAU,EAAE,aAAa;AACzB,wBAAA,WAAW,EAAE;qBACd;;;aAEF;YACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK;AACpC,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC;AACjB,kBAAE;AACF,kBAAE;oBACE,QAAQ;AACR,oBAAA,UAAU,EAAE,SAAS;AACrB,oBAAA,WAAW,EAAE;iBACd;;AAGP,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;IAGlC,aAAa,GAAA;QACX,OAAO,CAAC,OAAwB,KAA6B;AAC3D,YAAA,IAAI,GAAG;AACP,YAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAoB;AACnD,YAAA,IAAI,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE;AAC/B,gBAAA,GAAG,GAAG;AACJ,oBAAA,WAAW,EAAE;AACX,wBAAA,KAAK,EAAE;AACR;iBACF;;iBACI;;gBAEL,IAAI,QAAQ,KAAK,QAAQ,CAAC,qBAAqB,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE;AACzH,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAkB,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAmB,CAAC,CAAC,OAAO,EAAE;AAC5H,oBAAA,GAAG,GAAG;AACJ,wBAAA,cAAc,EAAE;AACd,4BAAA,KAAK,EAAE;AACR;qBACF;;qBACI;AACL,oBAAA,GAAG,GAAG;AACJ,wBAAA,SAAS,EAAE;AACT,4BAAA,KAAK,EAAE;AACR;qBACF;;;AAGL,YAAA,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG;AAC1E,SAAC;;IAGH,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAChF,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ;AACtE,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC3B,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;;AAE3D,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE;AACvC,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;;IAGpE,WAAW,GAAA;QACT,KAAK,CAAC,aAAa,EAAE;;+GAnIZ,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,SAAA,EAFtB,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,iDC3BpF,4kBAaA,EAAA,MAAA,EAAA,CAAA,8KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDWY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKtG,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAGvG,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAwB,sBAAA,EAAE,CAAC,EAAA,QAAA,EAAA,4kBAAA,EAAA,MAAA,EAAA,CAAA,8KAAA,CAAA,EAAA;8BAOzE,QAAQ,EAAA,CAAA;sBAAhB;gBAIQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;;;;AEjCH;;;;;;;;AAQG;AASG,MAAO,eAAgB,SAAQ,oBAA4B,CAAA;AARjE,IAAA,WAAA,GAAA;;AASE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;;QAG7C,IAAgB,CAAA,gBAAA,GAAuB,EAAE;QACzC,IAAa,CAAA,aAAA,GAAoC,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;AACrF,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,WAAW,CAAgB,IAAI,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;AAE1C;;AAEG;AACH,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,SAAS,CAAC;QAC5C,IAAM,CAAA,MAAA,GAAG,QAAQ,CAAS,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAEhE;;AAEG;AACH,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAqB,SAAS,CAAC;QAChD,IAAU,CAAA,UAAA,GAAG,QAAQ,CAAS,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;AAE3E;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AAChC,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC;AAEnD;;AAEG;AACH,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAqB,SAAS,CAAC;AAEnD;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AAEhC;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAqB,SAAS,CAAC;AAE/C;;;AAGG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAqB,SAAS,CAAC;AAE/C;;;;AAIG;AACH,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAW,EAAE,CAAC;AACrC,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,MAAK;AACnC,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;AAC9C,YAAA,IAAI,CAAC,aAAa;AAChB,gBAAA,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;AACzJ,SAAC,CAAC;;AASF,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG;AAiGjC;AApKC,IAAA,KAAK;AAaL,IAAA,MAAM;AAMN,IAAA,UAAU;AAMV,IAAA,SAAS;AA6BT,IAAA,sBAAsB;AAMtB,IAAA,OAAO,iBAAiB,CAAC,GAAW,EAAE,MAA0B,EAAE,MAA0B,EAAA;AAC1F,QAAA,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,QAAQ;AACvD,QAAA,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,QAAQ;AACtD,QAAA,OAAO,GAAG,IAAK,GAAc,IAAI,GAAG,IAAK,GAAc;;AAMzD,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;AACzC,QAAA,MAAM,UAAU,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;AACxI,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;;AAG3D,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;;AAI3B,IAAA,iBAAiB;;IAGjB,MAAM,GAAA;QACJ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5F,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;;;;IAKxJ,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5F,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;AACzE,gBAAA,SAAS,EAAE;AACZ,aAAA,CAAC;;;IAIN,aAAa,GAAA;QACX,OAAO,CAAC,OAAwB,KAA6B;AAC3D,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1B,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,IAAI;AAC7C,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC;;YAE5D,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;gBACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;;iBACxC;gBACL,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;;AAEnH,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,SAAS,EAAE;oBACnC,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;oBACxD,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE;AACrC,wBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,CAAC;;;;AAIhF,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE;oBACrD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;;;AAIhF,gBAAA,IAAI,CAAC,EAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;oBAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;wBAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;;yBACjF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;wBACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;;yBACjF;AACL,wBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;;;;AAIrH,YAAA,MAAM,CAAC,GAAqB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;AAClH,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI;AAChD,SAAC;;IAGH,QAAQ,GAAA;;QAEN,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;YAChF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO;AACxC,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC3B,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;;AAE3D,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE;QACvC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC/E,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AACpB,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;iBAC3B;;gBAEL,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAE,CAAC;AACjD,gBAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,EAAE;AAC5D,oBAAA,IAAI,CAAC,KAAK,GAAG,GAAG;AAChB,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAGtC,SAAC,CAAC;;IAGJ,WAAW,GAAA;QACT,KAAK,CAAC,aAAa,EAAE;;+GAnKZ,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAFf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,EAFjE,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,kHAAkH,+JADlH,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;;4FAKlB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cACV,IAAI,EAAA,OAAA,EACP,CAAC,mBAAmB,CAAC,YACpB,kHAAkH,EAAA,SAAA,EAEjH,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAA,eAAiB,EAAE,CAAC,EAAA,MAAA,EAAA,CAAA,wFAAA,CAAA,EAAA;;;ACE7E;;;;;;;;AAQG;AASG,MAAO,oBAAqB,SAAQ,oBAAgC,CAAA;AAR1E,IAAA,WAAA,GAAA;;AASE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAU1B;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK;AAKzB;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK;AAEzB;;;;AAIG;QACM,IAAe,CAAA,eAAA,GAAa,EAAE;QAW/B,IAAO,CAAA,OAAA,GAAG,IAAI;;AAGf,QAAA,IAAA,CAAA,sBAAsB,GAAG;YAC9B,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE;YACrD,EAAE,KAAK,EAAE,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,gBAAgB,EAAE;YAC3E,EAAE,KAAK,EAAE,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE;YACrE,EAAE,KAAK,EAAE,aAAa,CAAC,qBAAqB,EAAE,KAAK,EAAE,QAAQ,CAAC,qBAAqB;SACpF;QAEM,IAAS,CAAA,SAAA,GAAG,IAAI,SAAS,CAAC;AAC/B,YAAA,WAAW,EAAE,IAAI,WAAW,CAAqB,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;AACrH,YAAA,QAAQ,EAAE,IAAI,WAAW,CAAW,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAChG,eAAe,EAAE,IAAI,WAAW,CAAqB,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;AACtF,SAAA,CAAC;;;;;;;AASF,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG;AAmHjC;AAjLC,IAAA,KAAK;AAgEL,IAAA,UAAU,CAAC,KAAiB,EAAA;AAC1B,QAAA,IAAI,KAAK,KAAK,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,EAAE;YACpE,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC;AAEjF,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,KAAK,CAAC,WAAW,IAAI,SAAS,EAAE;AAClC,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACtB,oBAAA,eAAe,EAAE,SAAS;AAC1B,oBAAA,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK;AACpE,oBAAA,WAAW,EAAG,KAAK,CAAC,UAAqB,IAAI;AAC9C,iBAAA,CAAC;;iBACG;AACL,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACtB,oBAAA,eAAe,EAAG,KAAK,CAAC,UAAqB,IAAI,SAAS;AAC1D,oBAAA,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK;oBACpE,WAAW,EAAE,KAAK,CAAC;AACpB,iBAAA,CAAC;;;aAEC;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;gBACxB,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;AAC1C,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;;;AAI1B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;;IAG3B,iBAAiB,CAAC,EAAO,EAAA;IAEzB,cAAc,GAAA;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAoB;AAC1D,QAAA,IAAI,QAAQ,KAAK,QAAQ,CAAC,qBAAqB,EAAE;AAC/C,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI;AAC/H,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC;AACjB,kBAAE;oBACE,QAAQ;AACR,oBAAA,UAAU,EAAE,SAAS;AACrB,oBAAA,WAAW,EAAE;AACd;AACH,kBAAE;oBACE,QAAQ;AACR,oBAAA,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe;AAChD,oBAAA,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBACnC;;aACA;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC;AACjB,kBAAE;oBACE,QAAQ;AACR,oBAAA,UAAU,EAAE,SAAS;AACrB,oBAAA,WAAW,EAAE;AACd;AACH,kBAAE;oBACE,QAAQ;AACR,oBAAA,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW;AAC5C,oBAAA,WAAW,EAAE;iBACd;;AAEP,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;IAGlC,aAAa,GAAA;QACX,OAAO,CAAC,OAAwB,KAA6B;AAC3D,YAAA,IAAI,GAAQ;AACZ,YAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ;AACvC,YAAA,IAAI,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE;gBAC/B,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;AAC7B,iBAAA,IAAI,QAAQ,KAAK,QAAQ,CAAC,qBAAqB,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;;AAE3G,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW;gBAC7D,GAAG,GAAG,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;iBACvC;gBACL,GAAG,GAAG,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;YAEzC,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,GAAG;AAClC,SAAC;;;IAII,QAAQ,GAAA;AACb,QAAA,IAAI,GAAQ;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ;AAC9C,QAAA,IAAI,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE;YAC/B,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;AAC7B,aAAA,IAAI,QAAQ,KAAK,QAAQ,CAAC,qBAAqB,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;;AAE3G,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW;YAC7D,GAAG,GAAG,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;aACvC;YACL,GAAG,GAAG,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;QAEzC,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,GAAG;;IAGlC,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;YAChF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO;AACxC,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC3B,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;;AAE3D,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE;AACvC,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;;IAGpE,WAAW,GAAA;QACT,KAAK,CAAC,aAAa,EAAE;;+GAhLZ,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAFpB,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,ECvClF,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,kkCAmCA,EDCY,MAAA,EAAA,CAAA,4KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,yKAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAK/E,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAChB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAAA,SAAA,EAGhF,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAsB,oBAAA,EAAE,CAAC,EAAA,QAAA,EAAA,kkCAAA,EAAA,MAAA,EAAA,CAAA,4KAAA,CAAA,EAAA;8BAQvE,KAAK,EAAA,CAAA;sBAAb;gBAIQ,SAAS,EAAA,CAAA;sBAAjB;gBAIQ,QAAQ,EAAA,CAAA;sBAAhB;gBAIQ,OAAO,EAAA,CAAA;sBAAf;gBAIQ,QAAQ,EAAA,CAAA;sBAAhB;gBAOQ,eAAe,EAAA,CAAA;sBAAvB;gBAIQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;;;AEnDH;;;;;AAKG;AAYG,MAAO,qBAAsB,SAAQ,oBAAuE,CAAA;AAVlH,IAAA,WAAA,GAAA;;AAWE,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AAC/B,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;AACzB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAE7C,IAAS,CAAA,SAAA,GAAG,CAAC;AACb,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAU,KAAK,CAAC;AAE7B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,WAAW,CAAoD,SAAS,CAAC;AACpF,QAAA,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;QAE1C,IAAW,CAAA,WAAA,GAAe,EAAE;QAO5B,IAAe,CAAA,eAAA,GAAuB,EAAE;QACxC,IAAY,CAAA,YAAA,GAAa,EAAE;AAE3B;;AAEG;AACH,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAqB,SAAS,CAAC;AAChD;;AAEG;AACH,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAU,KAAK,CAAC;AAsBnC;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AAEhC;;AAEG;AACH,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC;AAEjC;;;AAGG;AACH,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAU,KAAK,CAAC;;AAGpC,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG;AAkHjC;AApLC,IAAA,OAAO;AACP,IAAA,YAAY;IAUZ,IAAI,UAAU,CAAC,EAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE;;AAE7B,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;;AAGzB,IAAA,YAAY;IAeZ,IAAa,eAAe,CAAC,CAAuB,EAAA;AAClD,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,EAAE,MAAM,EAAE;YACb,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC1D,IAAI,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE;AAC3D,gBAAA,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,mBAAmB,CAAE,CAAC,OAAO;AAChF,gBAAA,IAAI,CAAC,YAAY,GAAG,OAAO;;;aAExB;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE;;;AAG1B,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB;;AAsB9B,IAAA,UAAU,CAAC,KAAwB,EAAA;QACjC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;aAChB;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;;AAIxB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;;IAI3B,iBAAiB,CAAC,EAAO,EAAA;IAEjB,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACtC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;IAGlC,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;AACxG,aAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACjC,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;;;AAC7H,YAAA,OAAO,SAAS;;AAGzB,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,MAAM,GAAG,GAA2B,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAI;AACvF,YAAA,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;YAEhD,MAAM,KAAK,GAAyB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC;AACxF,YAAA,OAAO;AACL,kBAAE,EAAE,CAAC,KAAK;AACV,kBAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CACzCC,KAAG,CAAC,CAAC,GAAY,MAAM;AACrB,oBAAA,IAAI,EAAE,GAAG;AACT,oBAAA,KAAK,EAAE;AACR,iBAAA,CAAC,CAAC,EACH,UAAU,CAAC,CAAC,CAAoB,KAAI;AAClC,oBAAA,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC;AACvB,wBAAA,EAAE,EAAE,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,qBAAA,CAAC;AACF,oBAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK;AAChD,oBAAA,OAAO,EAAE,CAAC;wBACR,IAAI;AACJ,wBAAA,KAAK,EAAE;AACL,4BAAA,QAAQ,EAAE,CAAC,CAAC,MAAM,KAAK;AACxB,yBAAA;wBACD,WAAW,EAAE,CAAC,CAAC,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,8CAA8C,CAAC,GAAG;AAC1G,qBAAA,CAAC;iBACH,CAAC,CACH;AACP,SAAC,CAAC;QACF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACtC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACzC,gBAAA,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;AACnB,gBAAA,KAAK,EAAE;AACR,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC9F,SAAC,CAAC;;AAGJ,IAAA,cAAc,CAAC,KAAa,EAAA;QAC1B,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AAClC,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC;iBACF,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,YAAY;AACpD,iBAAA,IAAI,CACH,QAAQ,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,aAAC,CAAC;AAEH,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,KAAgB,KAAI;oBACzB,IAAI,CAAC,eAAe,GAAG;AACpB,yBAAA,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;AAC5E,yBAAA,GAAG,CACF,CAAC,IAAI,MACF;wBACC,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,wBAAA,KAAK,EAAE;4BACL,IAAI;AACJ,4BAAA,KAAK,EAAE;AACR;AACF,qBAAA,CAAqB,CACzB;iBACJ;gBACD,KAAK,EAAE,MAAK;AACV,oBAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;AAE5B,aAAA,CAAC;;aACC;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;;IAI7B,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC9C,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAAE,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;AACvC,YAAA,IAAI,CAAC,UAAU,GAAI,CAAwB,CAAC,GAAG,CAAC,CAAC,CAAmB,KAAK,CAAC,CAAC,KAAiB,CAAC;YAC7F,IAAI,CAAC,SAAS,EAAE;AAClB,SAAC,CAAC;;IAGJ,WAAW,GAAA;QACT,KAAK,CAAC,aAAa,EAAE;;+GAnLZ,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAFrB,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3CnF,w7BA0BA,EAAA,MAAA,EAAA,CAAA,0dAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDYY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,qBAAqB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACxD,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAK1C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAChB,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,WAAW,EAAE,qBAAqB;wBACxD,gBAAgB;AAChB,wBAAA,aAAa,EAAE,mBAAmB,EAAE,eAAe,CAAC,EAG3C,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAA,qBAAuB,EAAE,CAAC,EAAA,QAAA,EAAA,w7BAAA,EAAA,MAAA,EAAA,CAAA,0dAAA,CAAA,EAAA;8BAoCpE,eAAe,EAAA,CAAA;sBAA3B;;;MEjEU,wBAAwB,CAAA;AAPrC,IAAA,WAAA,GAAA;AAQE,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC;AACzB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAM,eAAe,CAAC;AACjC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,EAAC,YAAsC,EAAC;AAEpE,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,YAAA,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAyB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ;AAC5F,SAAA,CAAC;QAEF,IAAK,CAAA,KAAA,GAAG,KAAK,CAAyB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QAC7D,IAAW,CAAA,WAAA,GAAG,MAAM,EAA0B;AAC9C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,MAAK;AACzB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC;AACjC,SAAC,CAAC;AAMH;AAnBC,IAAA,GAAG;AACH,IAAA,WAAW;AACF,IAAA,UAAU;AAQnB,IAAA,YAAY;IAKZ,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC;AACzD,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;+GAlBnC,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdrC,wYAKA,EDKY,MAAA,EAAA,CAAA,4ZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8BAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIzE,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;+BACE,uBAAuB,EAAA,UAAA,EACrB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,sBAAsB,CAAC,EAAA,QAAA,EAAA,wYAAA,EAAA,MAAA,EAAA,CAAA,4ZAAA,CAAA,EAAA;;;AEGvF;AACA,MAAM,CAAC,+CAA+C,CAAC;AACvD,MAAM,CAAC,iDAAiD,CAAC;AACzD,MAAM,CAAC,qDAAqD,CAAC;AAC7D,MAAM,CAAC,oDAAoD,CAAC;AAC5D,MAAM,CAAC,oDAAoD,CAAC;AAC5D,MAAM,CAAC,qDAAqD,CAAC;AAC7D,MAAM,CAAC,qDAAqD,CAAC;AAC7D,MAAM,CAAC,oDAAoD,CAAC;AAC5D,MAAM,CAAC,oDAAoD,CAAC;AAC5D,MAAM,CAAC,kDAAkD,CAAC;AAE1D;;;;AAIG;AASG,MAAO,wBAAyB,SAAQ,oBAA0C,CAAA;AAEtF,IAAA,OAAO;AAEP,IAAA,WAAW;AACX,IAAA,cAAc;AAGd,IAAA,gBAAgB;AAOhB,IAAA,IAAa,gBAAgB,GAAA;AAC3B,QAAA,OAAO,IAAI;;AAYb,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AA5BD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC5C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;QAE3B,IAAW,CAAA,WAAA,GAAG,KAAK;QACnB,IAAc,CAAA,cAAA,GAAG,QAAQ;AAEzB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAsC,EAAE,CAAC;AAGhD,QAAA,IAAA,CAAA,EAAE,GAAG,IAAI,WAAW,CAAS,IAAI,CAAC,WAAW,EAAE;AACtD,YAAA,WAAW,EAAE;AACd,SAAA,CAAC;AAEO,QAAA,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;AAK1C;;AAEG;AACH,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAc,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACxF;;AAEG;AACH,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAU,IAAI,CAAC;;;AAuGlC,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG;QAnG9B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7F,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;;AAG9F,IAAA,kBAAkB,CAAC,CAAqB,EAAA;AACtC,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,EAAE;AAC7B,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,wBAAwB,EAAE;gBAClI,IAAI,CAAC,sBAAsB,EAAE;;gBAE7B,IAAI,CAAC,KAAK,GAAG;oBACX,UAAU,EAAE,IAAI,CAAC,gBAAgB;AACjC,oBAAA,KAAK,EAAE,IAAI,CAAC,wBAAwB;iBACrC;AACH,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;aAC3B;AACL,YAAA,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAc,CAAC;AACpE,YAAA,IAAI,CAAC,KAAK;gBACR,CAAC,KAAK,IAAI,CAAC;AACT,sBAAE;AACE,wBAAA,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE;wBAC7F,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA,0CAAA,EAA6C,CAAC,CAAA,CAAE;AAC/E;sBACD,IAAI;AACV,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;YACjC,IAAI,CAAC,aAAa,EAAE;;;IAIxB,sBAAsB,GAAA;;QAEpB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE;AACpD,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,IAAI,CAAC;AACb;AACF,SAAA,CAAC;QACF,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,GAA2B,KAAI;AACxD,YAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG;YAE3B,IAAI,CAAC,GAAG,EAAE;gBACR,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;gBACpC,IAAI,CAAC,aAAa,EAAE;;iBACf;gBACL,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAEnD,UAAU,CAAC,MAAK;oBACd,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE;AACtC,wBAAA,SAAS,EAAE;AACZ,qBAAA,CAAC;AACJ,iBAAC,CAAC;;AAEN,SAAC,CAAC;;AAGJ,IAAA,aAAa,CAAC,MAAe,EAAA;AAC3B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;YAC5C,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA,0CAAA,EAA6C,KAAK,CAAA,CAAE,CAAC;YACnF;AACD,SAAA,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kDAAkD,CAAC;gBAC3F,KAAK,EAAE,IAAI,CAAC;AACb,aAAA,CAAC;AAEJ,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AACf,YAAA;gBACE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,+CAA+C,CAAC;gBAC9E,KAAK,EAAE,IAAI,CAAC;AACb,aAAA;AACD,YAAA,GAAG;AACJ,SAAA,CAAC;;IAGJ,wBAAwB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,gBAAgB;AAAE,YAAA,OAAO,SAAS;QAC5C,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,QAAA,QAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ;AACpC,YAAA,KAAK,QAAQ,CAAC,KAAK,EAAE;AACnB,gBAAA,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAkB,EAAE,WAAW,CAAC;;AAE5E,YAAA,KAAK,QAAQ,CAAC,gBAAgB,EAAE;AAC9B,gBAAA,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAI,CAAA,EAAA,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAkB,EAAE,WAAW,CAAC,EAAE;;AAEnH,YAAA,KAAK,QAAQ,CAAC,aAAa,EAAE;AAC3B,gBAAA,OAAO,GAAG,aAAa,CAAC,aAAa,CAAI,CAAA,EAAA,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAkB,EAAE,WAAW,CAAC,EAAE;;AAEhH,YAAA,KAAK,QAAQ,CAAC,qBAAqB,EAAE;AACnC,gBAAA,OAAO,CAAG,EAAA,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAkB,EAAE,WAAW,CAAC,CAAI,CAAA,EAAA,aAAa,CAAC,qBAAqB,CAAI,CAAA,EAAA,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAmB,EAAE,WAAW,CAAC,EAAE;;;AAGlM,QAAA,OAAO,SAAS;;AAQlB,IAAA,UAAU,CAAC,KAA4B,EAAA;AACrC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI;AAC1B,QAAA,IAAI,KAAK,EAAE,UAAU,EAAE,QAAQ,IAAI,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE;YAChE,MAAM,EAAE,GAA0B,WAAW,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC;YACpF,IAAI,EAAE,EAAE;AACN,gBAAA,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;;iBAEjB;AACL,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,UAAU;gBACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;;;aAEpC;YACL,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;;;AAIxC,IAAA,gBAAgB,CAAC,EAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;;IAI3B,iBAAiB,CAAC,EAAc,EAAA;IAEhC,WAAW,GAAA;QACT,KAAK,CAAC,aAAa,EAAE;;+GA3JZ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,qVAFxB,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,iDCpCtF,gOAKA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED4BY,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,mtBAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKjD,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBARpC,SAAS;+BACE,uBAAuB,EAAA,UAAA,EACrB,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,EAAE,mBAAmB,CAAC,aAGlD,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAA,wBAA0B,EAAE,CAAC,EAAA,QAAA,EAAA,gOAAA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA;;;AExBtF;AACA,MAAM,CAAC,mDAAmD,CAAC;AAC3D,MAAM,CAAC,qDAAqD,CAAC;AAC7D,MAAM,CAAC,sDAAsD,CAAC;AAC9D,MAAM,CAAC,qDAAqD,CAAC;AAC7D,MAAM,CAAC,yDAAyD,CAAC;AACjE;;;AAGG;AASG,MAAO,4BAA6B,SAAQ,oBAA8C,CAAA;AAG9F,IAAA,WAAW;AASX,IAAA,IAAa,gBAAgB,GAAA;AAC3B,QAAA,OAAO,IAAI;;AAQb,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AArBD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAACD,kBAAgB,CAAC;QAE5C,IAAW,CAAA,WAAA,GAAG,KAAK;AAEnB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAsC,EAAE,CAAC;AAEhD,QAAA,IAAA,CAAA,EAAE,GAAG,IAAI,WAAW,CAAS,IAAI,CAAC,WAAW,EAAE;AACtD,YAAA,WAAW,EAAE;AACd,SAAA,CAAC;AAEO,QAAA,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;AAK1C;;AAEG;AACH,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;;;AAqC1E,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG;QAjC9B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7F,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;;AAG9F,IAAA,kBAAkB,CAAC,CAAyB,EAAA;QAC1C,MAAM,UAAU,GAA2B,CAAC,KAAK,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,yBAAyB,CAAC,CAAkB,CAAC,GAAG,SAAS;QACzI,MAAM,GAAG,GAAyC,UAAU,IAAI;YAC9D,UAAU;YACV,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA,8CAAA,EAAiD,CAAC,CAAA,CAAE;SACnF;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI;AACxB,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;;IAG3B,aAAa,GAAA;AACX,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;YAC5C,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA,8CAAA,EAAiD,KAAK,CAAA,CAAE,CAAC;YACvF;AACD,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AACf,YAAA;gBACE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,mDAAmD,CAAC;gBAClF,KAAK,EAAE,IAAI,CAAC;AACb,aAAA;AACD,YAAA,GAAG;AACJ,SAAA,CAAC;;AAQJ,IAAA,UAAU,CAAC,KAAgC,EAAA;AACzC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI;AAC1B,QAAA,IAAI,KAAK,GAA2B,IAAI,CAAC,WAAW;AACpD,QAAA,IAAI,KAAK,EAAE,UAAU,EAAE,QAAQ,IAAI,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE;YAChE,MAAM,KAAK,GAA8B,WAAW,CAAC,wBAAwB,CAAC,KAAK,CAAC,UAAU,CAAC;AAC/F,YAAA,IAAI,KAAK;gBAAE,KAAK,GAAG,KAAK;;AAE1B,QAAA,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;;AAG3B,IAAA,gBAAgB,CAAC,EAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;;IAI3B,iBAAiB,CAAC,EAAc,EAAA;IAEhC,WAAW,GAAA;QACT,KAAK,CAAC,aAAa,EAAE;;+GA5EZ,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,+MAF5B,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,iDC5B1F,gOAKA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDoBY,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,mtBAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKjD,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBARxC,SAAS;+BACE,2BAA2B,EAAA,UAAA,EACzB,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,EAAE,mBAAmB,CAAC,aAGlD,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAA,4BAA8B,EAAE,CAAC,EAAA,QAAA,EAAA,gOAAA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA;;;AElB1F;;;;;;;;;;;;;;;AAeG;AASG,MAAO,eAAgB,SAAQ,oBAAmD,CAAA;AARxF,IAAA,WAAA,GAAA;;AASE,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAEjB,QAAA,IAAA,CAAA,EAAE,GAAG,IAAI,WAAW,CAAgC,SAAS,CAAC;AAE9D,QAAA,IAAA,CAAA,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU;AAErD,QAAA,IAAA,CAAA,kBAAkB,GAAG;AACnB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,GAAG,EAAE,UAAU;AACf,YAAA,KAAK,EAAE;SACR;AAGD;;AAEG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK;AAM5B;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK;AACzB;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK;QAoD1B,IAAK,CAAA,KAAA,GAAG,KAAK;QACb,IAAgB,CAAA,gBAAA,GAA6B,EAAE;QAE/C,IAAgB,CAAA,gBAAA,GAAa,EAAE;AACtB,QAAA,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;;AAG1C,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG;AAiLjC;AA1QC,IAAA,MAAM;AACN,IAAA,KAAK;AA8BL;;;;;AAKG;IACH,IACI,eAAe,CAAC,CAAW,EAAA;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;gBAC3C,IAAI,CAAC,QAAQ,GAAG;oBACd,UAAU,EAAE,oBAAoB,CAAC,KAAK;AACtC,oBAAA,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC;iBAC/B;;iBACI,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;gBAChD,IAAI,CAAC,QAAQ,GAAG;oBACd,UAAU,EAAE,oBAAoB,CAAC,GAAG;AACpC,oBAAA,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC;iBAC/B;;iBACI,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;gBAClD,IAAI,CAAC,QAAQ,GAAG;oBACd,UAAU,EAAE,oBAAoB,CAAC,KAAK;AACtC,oBAAA,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC;iBAC/B;;;;AAKP,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB;;AAwB9B,IAAA,gBAAgB;IAMR,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGlC,IAAA,UAAU,CAAC,KAAwB,EAAA;AACjC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;;aACpE;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,KAAK,oBAAoB,CAAC,KAAK,CAAC;;AAE1G,QAAA,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,SAAS;;AAGjC,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;;AAI3B,IAAA,iBAAiB;AAEjB,IAAA,cAAc,CAAC,GAAQ,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAC/B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS;YACtB,IAAI,CAAC,SAAS,EAAE;YAChB;;AAEF,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,KAAK,oBAAoB,CAAC,KAAK,CAAC;QACtG,IAAI,CAAC,SAAS,EAAE;;IAGlB,MAAM,GAAA;QACJ,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE;;AAEjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAe;AAClC,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM;AACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE;QACzB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE;YACtC,IAAI,CAAC,SAAS,EAAE;;;;AAMpB,IAAA,QAAQ,CAAC,KAAwB,EAAA;AAC/B,QAAA,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE;QACxC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAK,IAAI,CAAC,KAAkB,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC;YACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAGhC,QAAA,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE;;AAGzB,IAAA,WAAW,CAAC,CAAS,EAAA;AACnB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAiB;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,YAAA,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;;IAIlC,SAAS,CAAC,CAAS,EAAE,KAAyB,EAAA;QAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;QAChC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACnB;;AAEF,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAiB;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,QAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,YAAA,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;;IAI1B,sBAAsB,CAAC,MAAc,EAAE,cAAsB,EAAA;QACnE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,EAAE;AACvC,YAAA,OAAO,IAAI;;aACN;AACL,YAAA,IAAI,OAAO;AACX,YAAA,IAAI,cAAc,KAAK,cAAc,CAAC,YAAY,EAAE;gBAClD,OAAO;AACL,oBAAA,wJAAwJ;;AACrJ,iBAAA,IAAI,cAAc,KAAK,cAAc,CAAC,UAAU,EAAE;gBACvD,OAAO,GAAG,uFAAuF;;AAC5F,iBAAA,IAAI,cAAc,KAAK,cAAc,CAAC,YAAY,EAAE;gBACzD,OAAO,GAAG,gDAAgD;;AAE5D,YAAA,OAAO,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI;;;IAIhD,aAAa,GAAA;QACX,OAAO,CAAC,OAAwB,KAA6B;AAC3D,YAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS;AACvC,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1B,YAAA,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK;AACzB,YAAA,IAAG,CAAC,GAAG;AAAE,gBAAA,OAAO,IAAI;AACpB,YAAA,MAAM,UAAU,GAAG,CAAC,KAA6B,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;;YAGtH,IAAI,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,CAAS,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;;;YAI9C,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;gBACvD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACjC,oBAAA,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACzD,wBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,gBAAgB,GAAG,CAAC,EAAE,CAAC;;AAE7D,iBAAC,CAAC;;;;YAIJ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,SAAU,CAAC,EAAE;gBACnF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;;;;YAKzF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,SAAU,CAAC,EAAE;gBACnF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;;;YAIzF,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;gBACvD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC;;AAGxD,YAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE;;gBAElE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;;AAGjD,YAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;AAChC,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK;gBAClB,OAAO,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;;iBACxF;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,gBAAA,OAAO,IAAI;;AAEf,SAAC;;IAGH,QAAQ,GAAA;QACN,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3C,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;YACzE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO;AACjC,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC3B,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;;AAEpD,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,EAAE,CAAC,sBAAsB,EAAE;AAChC,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;;IAGpG,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,UAAU,GAAG,OAAO,CAAC;AACrG,gBAAA,IAAI,EAAE;oBAAE,EAAE,CAAC,KAAK,EAAE;;;;IAKxB,WAAW,GAAA;QACT,KAAK,CAAC,aAAa,EAAE;;+GAzQZ,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,SAAA,EAFf,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,EChC7E,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,w/CA6CA,EDhBY,MAAA,EAAA,CAAA,0TAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,ovBAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAK5E,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;+BACE,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,CAAC,EAAA,SAAA,EAG7E,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAiB,eAAA,EAAE,CAAC,EAAA,QAAA,EAAA,w/CAAA,EAAA,MAAA,EAAA,CAAA,0TAAA,CAAA,EAAA;8BAoBlE,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAIQ,QAAQ,EAAA,CAAA;sBAAhB;gBAIQ,SAAS,EAAA,CAAA;sBAAjB;gBAQG,eAAe,EAAA,CAAA;sBADlB;gBA6BQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAIQ,SAAS,EAAA,CAAA;sBAAjB;gBAIQ,SAAS,EAAA,CAAA;sBAAjB;;;AElGG,MAAO,gBAAiB,SAAQ,oBAAuC,CAAA;AAP7E,IAAA,WAAA,GAAA;;AAQE,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AAC/B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAE1B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AAEhC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AAEhC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAW,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAW,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,MAAK;YAC3B,SAAS,CAAC,MAAK;AACb,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;AACzC,aAAC,CAAC;AACJ,SAAC,CAAC;AAEF;;AAEG;AACH,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAW,EAAE,CAAC;AACrC,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,MAAK;AAClC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE;YAClC,SAAS,CAAC,MAAK;AACb,gBAAA,MAAM,EAAE,GAAoC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;AACnH,gBAAA,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;oBACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;;AAEjC,aAAC,CAAC;AACJ,SAAC,CAAC;AAOO,QAAA,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;AACjC,QAAA,IAAA,CAAA,EAAE,GAAG,IAAI,WAAW,CAAgC,SAAS,CAAC;;AAQvE,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG;AAmBjC;AA9DC,IAAA,OAAO;AACP,IAAA,KAAK;AAQL,IAAA,cAAc;AAUd,IAAA,qBAAqB;AAkBrB,IAAA,cAAc,CAAC,GAAQ,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG;AAChB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;AAMlC,IAAA,UAAU,CAAC,KAAwB,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;;IAG3B,iBAAiB,CAAC,EAAO,EAAA;IAEzB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;;IAGpG,WAAW,GAAA;QACT,KAAK,CAAC,aAAa,EAAE;;+GA7DZ,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,iuBAFhB,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,iDCd9E,sMAKA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMY,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,mtBAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKjD,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,WACd,CAAC,YAAY,EAAE,eAAe,EAAE,mBAAmB,CAAC,EAAA,SAAA,EAGlD,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAA,gBAAkB,EAAE,CAAC,EAAA,QAAA,EAAA,sMAAA,EAAA;8BAmCnE,SAAS,EAAA,CAAA;sBAAjB;;;AE3CH,MAAM,eAAe,GAAG;IACtB,eAAe;IACf,eAAe;IACf,oBAAoB;IACpB,iBAAiB;IACjB,sBAAsB;IACtB,qBAAqB;IACrB,eAAe;IACf;CACD;MAMY,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,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,cAAc,YAdzB,eAAe;YACf,eAAe;YACf,oBAAoB;YACpB,iBAAiB;YACjB,sBAAsB;YACtB,qBAAqB;YACrB,eAAe;AACf,YAAA,gBAAgB,aAPhB,eAAe;YACf,eAAe;YACf,oBAAoB;YACpB,iBAAiB;YACjB,sBAAsB;YACtB,qBAAqB;YACrB,eAAe;YACf,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAOL,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,cAAc,YAHZ,eAAe,CAAA,EAAA,CAAA,CAAA;;4FAGjB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC;AAC7B,oBAAA,OAAO,EAAE,CAAC,GAAG,eAAe;AAC7B,iBAAA;;;ACpBD;;AAEG;;;;"}
|