ngx-register-base 1.3.1 → 1.3.3
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/esm2022/lib/components/checkbox-selector/checkbox-selector.component.mjs +129 -0
- package/esm2022/lib/components/checkbox-selector/checkbox-selector.types.mjs +8 -0
- package/esm2022/lib/components/column-settings/column-settings.component.mjs +249 -0
- package/esm2022/lib/components/column-settings/components/column-settings-template/column-settings-template.component.mjs +80 -0
- package/esm2022/lib/components/column-settings/consts/column-settings.consts.mjs +10 -0
- package/esm2022/lib/components/column-settings/index.mjs +3 -0
- package/esm2022/lib/components/column-settings/types/column-settings.types.mjs +7 -0
- package/esm2022/lib/components/divider/divider.component.mjs +16 -0
- package/esm2022/lib/components/filter-button/filter-button.component.mjs +19 -0
- package/esm2022/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.mjs +31 -0
- package/esm2022/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.mjs +57 -0
- package/esm2022/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.mjs +110 -0
- package/esm2022/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.mjs +130 -0
- package/esm2022/lib/components/filters/components/filter-list/filter-list.service.mjs +89 -0
- package/esm2022/lib/components/filters/components/filter-list/filters-section/filters-section.component.mjs +41 -0
- package/esm2022/lib/components/filters/components/filter-list.module.mjs +45 -0
- package/esm2022/lib/components/filters/index.mjs +3 -0
- package/esm2022/lib/components/filters/register-table-filter.component.mjs +155 -0
- package/esm2022/lib/components/filters/register-table-filter.module.mjs +39 -0
- package/esm2022/lib/components/index.mjs +11 -0
- package/esm2022/lib/components/inputs/index.mjs +20 -0
- package/esm2022/lib/components/inputs/inputs.module.mjs +166 -0
- package/esm2022/lib/components/inputs/param-calendar-year/param-calendar-year.component.mjs +45 -0
- package/esm2022/lib/components/inputs/param-custom/param-custom.component.mjs +12 -0
- package/esm2022/lib/components/inputs/param-date/param-date.component.mjs +76 -0
- package/esm2022/lib/components/inputs/param-date-range/param-date-range.component.mjs +60 -0
- package/esm2022/lib/components/inputs/param-date-time/param-date-time.component.mjs +86 -0
- package/esm2022/lib/components/inputs/param-date-time-range/param-date-time-range.component.mjs +95 -0
- package/esm2022/lib/components/inputs/param-month/param-month.component.mjs +50 -0
- package/esm2022/lib/components/inputs/param-month-range/param-month-range.component.mjs +62 -0
- package/esm2022/lib/components/inputs/param-multi-select/param-multi-select.component.mjs +309 -0
- package/esm2022/lib/components/inputs/param-select/param-select.component.mjs +233 -0
- package/esm2022/lib/components/inputs/param-switcher/param-switcher.component.mjs +21 -0
- package/esm2022/lib/components/inputs/param-switcher-date-time-range/consts/param-switcher-date-time-range.consts.mjs +28 -0
- package/esm2022/lib/components/inputs/param-switcher-date-time-range/index.mjs +3 -0
- package/esm2022/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.mjs +105 -0
- package/esm2022/lib/components/inputs/param-switcher-date-time-range/types/param-switcher-date-time-range.types.mjs +10 -0
- package/esm2022/lib/components/inputs/param-text/param-text.component.mjs +40 -0
- package/esm2022/lib/components/inputs/param-textarea/param-textarea.component.mjs +38 -0
- package/esm2022/lib/components/inputs/param-toggle/param-toggle.component.mjs +20 -0
- package/esm2022/lib/components/inputs/param-tree/consts/param-tree.consts.mjs +37 -0
- package/esm2022/lib/components/inputs/param-tree/index.mjs +8 -0
- package/esm2022/lib/components/inputs/param-tree/param-tree.component.mjs +207 -0
- package/esm2022/lib/components/inputs/param-tree/services/param-tree.service.mjs +116 -0
- package/esm2022/lib/components/inputs/param-tree/services/sync-tree-loader.service.mjs +20 -0
- package/esm2022/lib/components/inputs/param-tree/tokens/param-tree.tokens.mjs +3 -0
- package/esm2022/lib/components/inputs/param-tree/types/param-tree.types.mjs +2 -0
- package/esm2022/lib/components/inputs/param-tree/utils/param-tree.utils.mjs +9 -0
- package/esm2022/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.mjs +80 -0
- package/esm2022/lib/components/inputs/param-tree-select/param-tree-select.component.mjs +85 -0
- package/esm2022/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.mjs +15 -0
- package/esm2022/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.mjs +12 -0
- package/esm2022/lib/components/menu-constructor/index.mjs +5 -0
- package/esm2022/lib/components/menu-constructor/sproc-menu-constructor.component.mjs +559 -0
- package/esm2022/lib/components/menu-constructor/store/sproc-abstract-menu-constructor.store.mjs +3 -0
- package/esm2022/lib/components/menu-constructor/store/sproc-menu-constructor.consts.mjs +5 -0
- package/esm2022/lib/components/menu-constructor/store/sproc-menu.tokens.mjs +3 -0
- package/esm2022/lib/components/page-menu/index.mjs +6 -0
- package/esm2022/lib/components/page-menu/schema/sproc-page-menu.consts.mjs +9 -0
- package/esm2022/lib/components/page-menu/schema/sproc-page-menu.schema.mjs +2 -0
- package/esm2022/lib/components/page-menu/schema/sproc-page-menu.tokens.mjs +4 -0
- package/esm2022/lib/components/page-menu/schema/sproc-page-menu.types.mjs +3 -0
- package/esm2022/lib/components/page-menu/sproc-page-menu.component.mjs +275 -0
- package/esm2022/lib/components/paginator/paginator.component.mjs +159 -0
- package/esm2022/lib/components/paginator/types/paginator.types.mjs +2 -0
- package/esm2022/lib/components/register-table/consts/register-table.consts.mjs +4 -0
- package/esm2022/lib/components/register-table/directives/cell-template.directive.mjs +19 -0
- package/esm2022/lib/components/register-table/directives/header-template.directive.mjs +18 -0
- package/esm2022/lib/components/register-table/index.mjs +4 -0
- package/esm2022/lib/components/register-table/model/schema.mjs +10 -0
- package/esm2022/lib/components/register-table/pipes/class-by-type.pipe.mjs +33 -0
- package/esm2022/lib/components/register-table/pipes/sticky-column.pipe.mjs +17 -0
- package/esm2022/lib/components/register-table/register-table.component.mjs +544 -0
- package/esm2022/lib/components/reset-settings-form/reset-settings-form.component.mjs +18 -0
- package/esm2022/lib/components/search-input/search-input.component.mjs +28 -0
- package/esm2022/lib/components/sliding-panel/sliding-panel.component.mjs +48 -0
- package/esm2022/lib/components/sliding-panel/sliding-panel.module.mjs +19 -0
- package/esm2022/lib/consts/date-time.consts.mjs +2 -0
- package/esm2022/lib/consts/index.mjs +4 -0
- package/esm2022/lib/consts/inputs.consts.mjs +4 -0
- package/esm2022/lib/consts/month.consts.mjs +77 -0
- package/esm2022/lib/consts/params.consts.mjs +2 -0
- package/esm2022/lib/consts/register-base.consts.mjs +26 -0
- package/esm2022/lib/core/form-group-wrapper/errors-consts.mjs +8 -0
- package/esm2022/lib/core/form-group-wrapper/form-group-wrapper.mjs +81 -0
- package/esm2022/lib/core/form-group-wrapper/index.mjs +2 -0
- package/esm2022/lib/core/index.mjs +5 -0
- package/esm2022/lib/core/input-control/index.mjs +2 -0
- package/esm2022/lib/core/input-control/input-control.mjs +11 -0
- package/esm2022/lib/core/param/index.mjs +6 -0
- package/esm2022/lib/core/param/param-base.mjs +215 -0
- package/esm2022/lib/core/param/param-date-base.mjs +26 -0
- package/esm2022/lib/core/param/param-select-base.mjs +114 -0
- package/esm2022/lib/core/param/param-text-base.mjs +25 -0
- package/esm2022/lib/core/param/param.tokens.mjs +4 -0
- package/esm2022/lib/core/register-base/index.mjs +3 -0
- package/esm2022/lib/core/register-base/register-base.mjs +575 -0
- package/esm2022/lib/core/register-base/register-base.store.mjs +43 -0
- package/esm2022/lib/directives/date/date-time.types.mjs +34 -0
- package/esm2022/lib/directives/date/format-date.pipe.mjs +33 -0
- package/esm2022/lib/directives/index.mjs +3 -0
- package/esm2022/lib/directives/number/number-only.directive.mjs +41 -0
- package/esm2022/lib/directives/sticky/index.mjs +3 -0
- package/esm2022/lib/directives/sticky/sticky-relative.directive.mjs +32 -0
- package/esm2022/lib/directives/sticky/sticky-relative.service.mjs +32 -0
- package/esm2022/lib/directives/sticky/sticky.directive.mjs +169 -0
- package/esm2022/lib/services/date-time.service.mjs +314 -0
- package/esm2022/lib/services/dialog/dialog.service.mjs +53 -0
- package/esm2022/lib/services/dialog/dialog.types.mjs +2 -0
- package/esm2022/lib/services/dialog/index.mjs +3 -0
- package/esm2022/lib/services/dom-intersection.service.mjs +22 -0
- package/esm2022/lib/services/filter/filters-state.service.mjs +65 -0
- package/esm2022/lib/services/filter/filters-transmit.service.mjs +82 -0
- package/esm2022/lib/services/filter/filters.service.mjs +23 -0
- package/esm2022/lib/services/index.mjs +8 -0
- package/esm2022/lib/services/inputs-state.service.mjs +130 -0
- package/esm2022/lib/services/inputs.service.mjs +88 -0
- package/esm2022/lib/services/key-pressed.service.mjs +37 -0
- package/esm2022/lib/services/resize-window-observer.service.mjs +33 -0
- package/esm2022/lib/services/selected-objects-state.service.mjs +123 -0
- package/esm2022/lib/store/fast-query-store.service.mjs +110 -0
- package/esm2022/lib/store/index.mjs +2 -0
- package/esm2022/lib/types/event.types.mjs +2 -0
- package/esm2022/lib/types/hasura.types.mjs +2 -0
- package/esm2022/lib/types/index.mjs +7 -0
- package/esm2022/lib/types/inputs.types.mjs +19 -0
- package/esm2022/lib/types/params.types.mjs +2 -0
- package/esm2022/lib/types/register-base.types.mjs +6 -0
- package/esm2022/lib/types/sub-types.mjs +2 -0
- package/esm2022/lib/types/user-profile.types.mjs +2 -0
- package/esm2022/lib/utils/functions.mjs +10 -0
- package/esm2022/lib/utils/get-url-segment.mjs +35 -0
- package/esm2022/lib/utils/index.mjs +5 -0
- package/esm2022/lib/utils/prizm.shared.module.mjs +284 -0
- package/esm2022/lib/utils/rxjs.mjs +28 -0
- package/esm2022/lib/utils/select-all-utils.mjs +11 -0
- package/esm2022/ngx-register-base.mjs +5 -0
- package/esm2022/public-api.mjs +9 -0
- package/fesm2022/ngx-register-base.mjs +7487 -0
- package/fesm2022/ngx-register-base.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/checkbox-selector/checkbox-selector.component.d.ts +33 -0
- package/lib/components/checkbox-selector/checkbox-selector.types.d.ts +7 -0
- package/lib/components/column-settings/column-settings.component.d.ts +80 -0
- package/lib/components/column-settings/components/column-settings-template/column-settings-template.component.d.ts +24 -0
- package/lib/components/column-settings/consts/column-settings.consts.d.ts +8 -0
- package/lib/components/column-settings/types/column-settings.types.d.ts +22 -0
- package/lib/components/divider/divider.component.d.ts +6 -0
- package/lib/components/filter-button/filter-button.component.d.ts +8 -0
- package/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.d.ts +14 -0
- package/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.d.ts +25 -0
- package/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.d.ts +39 -0
- package/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.d.ts +41 -0
- package/lib/components/filters/components/filter-list/filter-list.service.d.ts +20 -0
- package/lib/components/filters/components/filter-list/filters-section/filters-section.component.d.ts +15 -0
- package/lib/components/filters/components/filter-list.module.d.ts +15 -0
- package/lib/components/filters/register-table-filter.component.d.ts +40 -0
- package/lib/components/filters/register-table-filter.module.d.ts +13 -0
- package/lib/components/inputs/inputs.module.d.ts +31 -0
- package/lib/components/inputs/param-calendar-year/param-calendar-year.component.d.ts +19 -0
- package/lib/components/inputs/param-custom/param-custom.component.d.ts +6 -0
- package/lib/components/inputs/param-date/param-date.component.d.ts +20 -0
- package/lib/components/inputs/param-date-range/param-date-range.component.d.ts +26 -0
- package/lib/components/inputs/param-date-time/param-date-time.component.d.ts +25 -0
- package/lib/components/inputs/param-date-time-range/param-date-time-range.component.d.ts +28 -0
- package/lib/components/inputs/param-month/param-month.component.d.ts +18 -0
- package/lib/components/inputs/param-month-range/param-month-range.component.d.ts +21 -0
- package/lib/components/inputs/param-multi-select/param-multi-select.component.d.ts +46 -0
- package/lib/components/inputs/param-select/param-select.component.d.ts +34 -0
- package/lib/components/inputs/param-switcher/param-switcher.component.d.ts +8 -0
- package/lib/components/inputs/param-switcher-date-time-range/consts/param-switcher-date-time-range.consts.d.ts +2 -0
- package/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.d.ts +19 -0
- package/lib/components/inputs/param-switcher-date-time-range/types/param-switcher-date-time-range.types.d.ts +8 -0
- package/lib/components/inputs/param-text/param-text.component.d.ts +10 -0
- package/lib/components/inputs/param-textarea/param-textarea.component.d.ts +10 -0
- package/lib/components/inputs/param-toggle/param-toggle.component.d.ts +9 -0
- package/lib/components/inputs/param-tree/consts/param-tree.consts.d.ts +7 -0
- package/lib/components/inputs/param-tree/param-tree.component.d.ts +41 -0
- package/lib/components/inputs/param-tree/services/param-tree.service.d.ts +37 -0
- package/lib/components/inputs/param-tree/services/sync-tree-loader.service.d.ts +10 -0
- package/{src/lib/components/inputs/param-tree/tokens/param-tree.tokens.ts → lib/components/inputs/param-tree/tokens/param-tree.tokens.d.ts} +1 -2
- package/lib/components/inputs/param-tree/types/param-tree.types.d.ts +32 -0
- package/lib/components/inputs/param-tree/utils/param-tree.utils.d.ts +7 -0
- package/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.d.ts +31 -0
- package/lib/components/inputs/param-tree-select/param-tree-select.component.d.ts +30 -0
- package/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.d.ts +6 -0
- package/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.d.ts +5 -0
- package/lib/components/menu-constructor/sproc-menu-constructor.component.d.ts +113 -0
- package/lib/components/menu-constructor/store/sproc-abstract-menu-constructor.store.d.ts +24 -0
- package/lib/components/menu-constructor/store/sproc-menu-constructor.consts.d.ts +36 -0
- package/{src/lib/components/menu-constructor/store/sproc-menu.tokens.ts → lib/components/menu-constructor/store/sproc-menu.tokens.d.ts} +1 -4
- package/lib/components/page-menu/schema/sproc-page-menu.consts.d.ts +7 -0
- package/lib/components/page-menu/schema/sproc-page-menu.schema.d.ts +30 -0
- package/lib/components/page-menu/schema/sproc-page-menu.tokens.d.ts +3 -0
- package/lib/components/page-menu/schema/sproc-page-menu.types.d.ts +36 -0
- package/lib/components/page-menu/sproc-page-menu.component.d.ts +48 -0
- package/lib/components/paginator/paginator.component.d.ts +52 -0
- package/lib/components/paginator/types/paginator.types.d.ts +15 -0
- package/lib/components/register-table/consts/register-table.consts.d.ts +3 -0
- package/lib/components/register-table/directives/cell-template.directive.d.ts +9 -0
- package/lib/components/register-table/directives/header-template.directive.d.ts +9 -0
- package/lib/components/register-table/model/schema.d.ts +52 -0
- package/lib/components/register-table/pipes/class-by-type.pipe.d.ts +8 -0
- package/lib/components/register-table/pipes/sticky-column.pipe.d.ts +7 -0
- package/lib/components/register-table/register-table.component.d.ts +165 -0
- package/lib/components/reset-settings-form/reset-settings-form.component.d.ts +9 -0
- package/lib/components/search-input/search-input.component.d.ts +11 -0
- package/lib/components/sliding-panel/sliding-panel.component.d.ts +14 -0
- package/lib/components/sliding-panel/sliding-panel.module.d.ts +9 -0
- package/lib/consts/date-time.consts.d.ts +1 -0
- package/lib/consts/index.d.ts +3 -0
- package/lib/consts/inputs.consts.d.ts +4 -0
- package/lib/consts/month.consts.d.ts +49 -0
- package/lib/consts/params.consts.d.ts +1 -0
- package/lib/consts/register-base.consts.d.ts +19 -0
- package/lib/core/form-group-wrapper/errors-consts.d.ts +5 -0
- package/lib/core/form-group-wrapper/form-group-wrapper.d.ts +15 -0
- package/lib/core/input-control/input-control.d.ts +11 -0
- package/lib/core/param/param-base.d.ts +68 -0
- package/lib/core/param/param-date-base.d.ts +18 -0
- package/lib/core/param/param-select-base.d.ts +42 -0
- package/lib/core/param/param-text-base.d.ts +15 -0
- package/{src/lib/core/param/param.tokens.ts → lib/core/param/param.tokens.d.ts} +1 -2
- package/lib/core/register-base/register-base.d.ts +168 -0
- package/lib/core/register-base/register-base.store.d.ts +35 -0
- package/lib/directives/date/date-time.types.d.ts +32 -0
- package/lib/directives/date/format-date.pipe.d.ts +10 -0
- package/lib/directives/number/number-only.directive.d.ts +10 -0
- package/lib/directives/sticky/sticky-relative.directive.d.ts +13 -0
- package/lib/directives/sticky/sticky-relative.service.d.ts +15 -0
- package/lib/directives/sticky/sticky.directive.d.ts +27 -0
- package/lib/services/date-time.service.d.ts +80 -0
- package/lib/services/dialog/dialog.service.d.ts +22 -0
- package/{src/lib/services/dialog/dialog.types.ts → lib/services/dialog/dialog.types.d.ts} +4 -8
- package/lib/services/dom-intersection.service.d.ts +8 -0
- package/lib/services/filter/filters-state.service.d.ts +21 -0
- package/lib/services/filter/filters-transmit.service.d.ts +28 -0
- package/lib/services/filter/filters.service.d.ts +12 -0
- package/lib/services/inputs-state.service.d.ts +57 -0
- package/lib/services/inputs.service.d.ts +28 -0
- package/lib/services/key-pressed.service.d.ts +15 -0
- package/lib/services/resize-window-observer.service.d.ts +11 -0
- package/lib/services/selected-objects-state.service.d.ts +47 -0
- package/lib/store/fast-query-store.service.d.ts +19 -0
- package/{src/lib/types/event.types.ts → lib/types/event.types.d.ts} +1 -1
- package/lib/types/hasura.types.d.ts +35 -0
- package/lib/types/inputs.types.d.ts +41 -0
- package/lib/types/params.types.d.ts +27 -0
- package/lib/types/register-base.types.d.ts +123 -0
- package/lib/types/sub-types.d.ts +8 -0
- package/lib/types/user-profile.types.d.ts +17 -0
- package/lib/utils/functions.d.ts +3 -0
- package/lib/utils/get-url-segment.d.ts +7 -0
- package/lib/utils/prizm.shared.module.d.ts +14 -0
- package/lib/utils/rxjs.d.ts +10 -0
- package/lib/utils/select-all-utils.d.ts +8 -0
- package/package.json +15 -12
- package/schematics/ng-update/replace-menu-state-token/index.d.ts +2 -0
- package/schematics/ng-update/replace-menu-state-token/index.js +29 -0
- package/schematics/ng-update/replace-menu-state-token/index.js.map +1 -0
- package/schematics/ng-update/update-prefix/index.d.ts +2 -0
- package/schematics/ng-update/update-prefix/index.js +33 -0
- package/schematics/ng-update/update-prefix/index.js.map +1 -0
- package/schematics/utils/{utils.ts → utils.d.ts} +2 -9
- package/schematics/utils/utils.js +25 -0
- package/schematics/utils/utils.js.map +1 -0
- package/ng-package.json +0 -15
- package/schematics/ng-update/replace-menu-state-token/index.ts +0 -33
- package/schematics/ng-update/update-prefix/index.ts +0 -38
- package/src/lib/components/checkbox-selector/checkbox-selector.component.html +0 -91
- package/src/lib/components/checkbox-selector/checkbox-selector.component.less +0 -67
- package/src/lib/components/checkbox-selector/checkbox-selector.component.ts +0 -176
- package/src/lib/components/checkbox-selector/checkbox-selector.types.ts +0 -8
- package/src/lib/components/column-settings/column-settings.component.html +0 -160
- package/src/lib/components/column-settings/column-settings.component.less +0 -131
- package/src/lib/components/column-settings/column-settings.component.ts +0 -352
- package/src/lib/components/column-settings/components/column-settings-template/column-settings-template.component.html +0 -65
- package/src/lib/components/column-settings/components/column-settings-template/column-settings-template.component.less +0 -79
- package/src/lib/components/column-settings/components/column-settings-template/column-settings-template.component.ts +0 -114
- package/src/lib/components/column-settings/consts/column-settings.consts.ts +0 -9
- package/src/lib/components/column-settings/types/column-settings.types.ts +0 -26
- package/src/lib/components/divider/divider.component.html +0 -4
- package/src/lib/components/divider/divider.component.less +0 -10
- package/src/lib/components/divider/divider.component.ts +0 -12
- package/src/lib/components/filter-button/filter-button.component.html +0 -20
- package/src/lib/components/filter-button/filter-button.component.less +0 -41
- package/src/lib/components/filter-button/filter-button.component.ts +0 -18
- package/src/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.html +0 -22
- package/src/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.less +0 -23
- package/src/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.ts +0 -31
- package/src/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.html +0 -49
- package/src/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.less +0 -37
- package/src/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.ts +0 -66
- package/src/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.html +0 -147
- package/src/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.less +0 -45
- package/src/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.ts +0 -114
- package/src/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.html +0 -44
- package/src/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.less +0 -49
- package/src/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.ts +0 -167
- package/src/lib/components/filters/components/filter-list/filter-list.service.ts +0 -97
- package/src/lib/components/filters/components/filter-list/filters-section/filters-section.component.html +0 -18
- package/src/lib/components/filters/components/filter-list/filters-section/filters-section.component.less +0 -55
- package/src/lib/components/filters/components/filter-list/filters-section/filters-section.component.ts +0 -69
- package/src/lib/components/filters/components/filter-list.module.ts +0 -29
- package/src/lib/components/filters/register-table-filter.component.html +0 -53
- package/src/lib/components/filters/register-table-filter.component.less +0 -17
- package/src/lib/components/filters/register-table-filter.component.ts +0 -167
- package/src/lib/components/filters/register-table-filter.module.ts +0 -22
- package/src/lib/components/inputs/inputs.module.ts +0 -104
- package/src/lib/components/inputs/param-calendar-year/param-calendar-year.component.html +0 -49
- package/src/lib/components/inputs/param-calendar-year/param-calendar-year.component.less +0 -70
- package/src/lib/components/inputs/param-calendar-year/param-calendar-year.component.ts +0 -52
- package/src/lib/components/inputs/param-custom/param-custom.component.html +0 -1
- package/src/lib/components/inputs/param-custom/param-custom.component.ts +0 -9
- package/src/lib/components/inputs/param-date/param-date.component.html +0 -55
- package/src/lib/components/inputs/param-date/param-date.component.less +0 -67
- package/src/lib/components/inputs/param-date/param-date.component.ts +0 -77
- package/src/lib/components/inputs/param-date-range/param-date-range.component.html +0 -45
- package/src/lib/components/inputs/param-date-range/param-date-range.component.less +0 -75
- package/src/lib/components/inputs/param-date-range/param-date-range.component.ts +0 -67
- package/src/lib/components/inputs/param-date-time/param-date-time.component.html +0 -70
- package/src/lib/components/inputs/param-date-time/param-date-time.component.less +0 -72
- package/src/lib/components/inputs/param-date-time/param-date-time.component.ts +0 -101
- package/src/lib/components/inputs/param-date-time-range/param-date-time-range.component.html +0 -67
- package/src/lib/components/inputs/param-date-time-range/param-date-time-range.component.less +0 -103
- package/src/lib/components/inputs/param-date-time-range/param-date-time-range.component.ts +0 -128
- package/src/lib/components/inputs/param-month/param-month.component.html +0 -46
- package/src/lib/components/inputs/param-month/param-month.component.less +0 -72
- package/src/lib/components/inputs/param-month/param-month.component.ts +0 -55
- package/src/lib/components/inputs/param-month-range/param-month-range.component.html +0 -39
- package/src/lib/components/inputs/param-month-range/param-month-range.component.less +0 -71
- package/src/lib/components/inputs/param-month-range/param-month-range.component.ts +0 -76
- package/src/lib/components/inputs/param-multi-select/param-multi-select.component.html +0 -84
- package/src/lib/components/inputs/param-multi-select/param-multi-select.component.less +0 -108
- package/src/lib/components/inputs/param-multi-select/param-multi-select.component.ts +0 -448
- package/src/lib/components/inputs/param-select/param-select.component.html +0 -106
- package/src/lib/components/inputs/param-select/param-select.component.less +0 -26
- package/src/lib/components/inputs/param-select/param-select.component.ts +0 -318
- package/src/lib/components/inputs/param-switcher/param-switcher.component.html +0 -8
- package/src/lib/components/inputs/param-switcher/param-switcher.component.less +0 -53
- package/src/lib/components/inputs/param-switcher/param-switcher.component.ts +0 -13
- package/src/lib/components/inputs/param-switcher-date-time-range/consts/param-switcher-date-time-range.consts.ts +0 -29
- package/src/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.html +0 -19
- package/src/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.less +0 -76
- package/src/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.ts +0 -134
- package/src/lib/components/inputs/param-switcher-date-time-range/types/param-switcher-date-time-range.types.ts +0 -8
- package/src/lib/components/inputs/param-text/param-text.component.html +0 -59
- package/src/lib/components/inputs/param-text/param-text.component.less +0 -33
- package/src/lib/components/inputs/param-text/param-text.component.ts +0 -36
- package/src/lib/components/inputs/param-textarea/param-textarea.component.html +0 -61
- package/src/lib/components/inputs/param-textarea/param-textarea.component.less +0 -21
- package/src/lib/components/inputs/param-textarea/param-textarea.component.ts +0 -33
- package/src/lib/components/inputs/param-toggle/param-toggle.component.html +0 -40
- package/src/lib/components/inputs/param-toggle/param-toggle.component.less +0 -69
- package/src/lib/components/inputs/param-toggle/param-toggle.component.ts +0 -14
- package/src/lib/components/inputs/param-tree/consts/param-tree.consts.ts +0 -59
- package/src/lib/components/inputs/param-tree/param-tree.component.html +0 -51
- package/src/lib/components/inputs/param-tree/param-tree.component.less +0 -3
- package/src/lib/components/inputs/param-tree/param-tree.component.ts +0 -282
- package/src/lib/components/inputs/param-tree/services/param-tree.service.ts +0 -176
- package/src/lib/components/inputs/param-tree/services/sync-tree-loader.service.ts +0 -18
- package/src/lib/components/inputs/param-tree/types/param-tree.types.ts +0 -39
- package/src/lib/components/inputs/param-tree/utils/param-tree.utils.ts +0 -18
- package/src/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.html +0 -78
- package/src/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.less +0 -109
- package/src/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.ts +0 -89
- package/src/lib/components/inputs/param-tree-select/param-tree-select.component.html +0 -54
- package/src/lib/components/inputs/param-tree-select/param-tree-select.component.less +0 -56
- package/src/lib/components/inputs/param-tree-select/param-tree-select.component.ts +0 -91
- package/src/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.html +0 -5
- package/src/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.ts +0 -13
- package/src/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.html +0 -4
- package/src/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.ts +0 -11
- package/src/lib/components/menu-constructor/sproc-menu-constructor.component.html +0 -95
- package/src/lib/components/menu-constructor/sproc-menu-constructor.component.less +0 -183
- package/src/lib/components/menu-constructor/sproc-menu-constructor.component.ts +0 -687
- package/src/lib/components/menu-constructor/store/sproc-abstract-menu-constructor.store.ts +0 -32
- package/src/lib/components/menu-constructor/store/sproc-menu-constructor.consts.ts +0 -46
- package/src/lib/components/page-menu/README.md +0 -60
- package/src/lib/components/page-menu/schema/sproc-page-menu.consts.ts +0 -8
- package/src/lib/components/page-menu/schema/sproc-page-menu.schema.ts +0 -35
- package/src/lib/components/page-menu/schema/sproc-page-menu.tokens.ts +0 -5
- package/src/lib/components/page-menu/schema/sproc-page-menu.types.ts +0 -42
- package/src/lib/components/page-menu/sproc-page-menu.component.html +0 -166
- package/src/lib/components/page-menu/sproc-page-menu.component.less +0 -228
- package/src/lib/components/page-menu/sproc-page-menu.component.ts +0 -337
- package/src/lib/components/paginator/paginator.component.html +0 -97
- package/src/lib/components/paginator/paginator.component.less +0 -101
- package/src/lib/components/paginator/paginator.component.ts +0 -192
- package/src/lib/components/paginator/types/paginator.types.ts +0 -16
- package/src/lib/components/register-table/consts/register-table.consts.ts +0 -3
- package/src/lib/components/register-table/directives/cell-template.directive.ts +0 -11
- package/src/lib/components/register-table/directives/header-template.directive.ts +0 -11
- package/src/lib/components/register-table/model/schema.ts +0 -62
- package/src/lib/components/register-table/pipes/class-by-type.pipe.ts +0 -28
- package/src/lib/components/register-table/pipes/sticky-column.pipe.ts +0 -11
- package/src/lib/components/register-table/register-table.component.html +0 -257
- package/src/lib/components/register-table/register-table.component.less +0 -151
- package/src/lib/components/register-table/register-table.component.ts +0 -743
- package/src/lib/components/reset-settings-form/reset-settings-form.component.html +0 -14
- package/src/lib/components/reset-settings-form/reset-settings-form.component.less +0 -26
- package/src/lib/components/reset-settings-form/reset-settings-form.component.ts +0 -15
- package/src/lib/components/search-input/search-input.component.html +0 -6
- package/src/lib/components/search-input/search-input.component.less +0 -17
- package/src/lib/components/search-input/search-input.component.ts +0 -31
- package/src/lib/components/sliding-panel/sliding-panel.component.html +0 -13
- package/src/lib/components/sliding-panel/sliding-panel.component.less +0 -112
- package/src/lib/components/sliding-panel/sliding-panel.component.ts +0 -36
- package/src/lib/components/sliding-panel/sliding-panel.module.ts +0 -11
- package/src/lib/consts/date-time.consts.ts +0 -1
- package/src/lib/consts/index.ts +0 -8
- package/src/lib/consts/inputs.consts.ts +0 -9
- package/src/lib/consts/month.consts.ts +0 -82
- package/src/lib/consts/params.consts.ts +0 -1
- package/src/lib/consts/register-base.consts.ts +0 -40
- package/src/lib/core/form-group-wrapper/errors-consts.ts +0 -6
- package/src/lib/core/form-group-wrapper/form-group-wrapper.ts +0 -109
- package/src/lib/core/input-control/input-control.ts +0 -30
- package/src/lib/core/param/param-base.ts +0 -262
- package/src/lib/core/param/param-date-base.ts +0 -30
- package/src/lib/core/param/param-select-base.ts +0 -118
- package/src/lib/core/param/param-text-base.ts +0 -23
- package/src/lib/core/register-base/register-base.store.ts +0 -84
- package/src/lib/core/register-base/register-base.ts +0 -854
- package/src/lib/directives/date/date-time.types.ts +0 -36
- package/src/lib/directives/date/format-date.pipe.ts +0 -28
- package/src/lib/directives/number/number-only.directive.ts +0 -36
- package/src/lib/directives/sticky/sticky-relative.directive.ts +0 -30
- package/src/lib/directives/sticky/sticky-relative.service.ts +0 -34
- package/src/lib/directives/sticky/sticky.directive.ts +0 -189
- package/src/lib/services/date-time.service.ts +0 -399
- package/src/lib/services/dialog/dialog.service.ts +0 -62
- package/src/lib/services/dom-intersection.service.ts +0 -23
- package/src/lib/services/filter/filters-state.service.ts +0 -83
- package/src/lib/services/filter/filters-transmit.service.ts +0 -105
- package/src/lib/services/filter/filters.service.ts +0 -21
- package/src/lib/services/inputs-state.service.ts +0 -157
- package/src/lib/services/inputs.service.ts +0 -114
- package/src/lib/services/key-pressed.service.ts +0 -40
- package/src/lib/services/resize-window-observer.service.ts +0 -37
- package/src/lib/services/selected-objects-state.service.ts +0 -159
- package/src/lib/store/fast-query-store.service.ts +0 -132
- package/src/lib/types/hasura.types.ts +0 -41
- package/src/lib/types/inputs.types.ts +0 -63
- package/src/lib/types/params.types.ts +0 -42
- package/src/lib/types/register-base.types.ts +0 -161
- package/src/lib/types/sub-types.ts +0 -15
- package/src/lib/types/user-profile.types.ts +0 -18
- package/src/lib/utils/functions.ts +0 -11
- package/src/lib/utils/get-url-segment.ts +0 -46
- package/src/lib/utils/prizm.shared.module.ts +0 -176
- package/src/lib/utils/rxjs.ts +0 -33
- package/src/lib/utils/select-all-utils.ts +0 -16
- package/tsconfig.lib.json +0 -16
- package/tsconfig.lib.prod.json +0 -11
- package/tsconfig.schematics.json +0 -26
- package/tsconfig.spec.json +0 -15
- /package/{src/lib/components/column-settings/index.ts → lib/components/column-settings/index.d.ts} +0 -0
- /package/{src/lib/components/filters/index.ts → lib/components/filters/index.d.ts} +0 -0
- /package/{src/lib/components/index.ts → lib/components/index.d.ts} +0 -0
- /package/{src/lib/components/inputs/index.ts → lib/components/inputs/index.d.ts} +0 -0
- /package/{src/lib/components/inputs/param-switcher-date-time-range/index.ts → lib/components/inputs/param-switcher-date-time-range/index.d.ts} +0 -0
- /package/{src/lib/components/inputs/param-tree/index.ts → lib/components/inputs/param-tree/index.d.ts} +0 -0
- /package/{src/lib/components/menu-constructor/index.ts → lib/components/menu-constructor/index.d.ts} +0 -0
- /package/{src/lib/components/page-menu/index.ts → lib/components/page-menu/index.d.ts} +0 -0
- /package/{src/lib/components/register-table/index.ts → lib/components/register-table/index.d.ts} +0 -0
- /package/{src/lib/core/form-group-wrapper/index.ts → lib/core/form-group-wrapper/index.d.ts} +0 -0
- /package/{src/lib/core/index.ts → lib/core/index.d.ts} +0 -0
- /package/{src/lib/core/input-control/index.ts → lib/core/input-control/index.d.ts} +0 -0
- /package/{src/lib/core/param/index.ts → lib/core/param/index.d.ts} +0 -0
- /package/{src/lib/core/register-base/index.ts → lib/core/register-base/index.d.ts} +0 -0
- /package/{src/lib/directives/index.ts → lib/directives/index.d.ts} +0 -0
- /package/{src/lib/directives/sticky/index.ts → lib/directives/sticky/index.d.ts} +0 -0
- /package/{src/lib/services/dialog/index.ts → lib/services/dialog/index.d.ts} +0 -0
- /package/{src/lib/services/index.ts → lib/services/index.d.ts} +0 -0
- /package/{src/lib/store/index.ts → lib/store/index.d.ts} +0 -0
- /package/{src/lib/types/index.ts → lib/types/index.d.ts} +0 -0
- /package/{src/lib/utils/index.ts → lib/utils/index.d.ts} +0 -0
- /package/{src/public-api.ts → public-api.d.ts} +0 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, input, Output, signal, } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, combineLatest, debounceTime, distinctUntilChanged, filter, map, tap, } from 'rxjs';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { TUI_ITEMS_HANDLERS, TuiAppearance, TuiDropdown, TuiHint, TuiLoader, TuiTextfield, } from '@taiga-ui/core';
|
|
5
|
+
import { TuiChevron, TuiComboBox, TuiDataListWrapper, TuiFilterByInputPipe, TuiSelect, } from '@taiga-ui/kit';
|
|
6
|
+
import { TuiTextfieldControllerModule } from '@taiga-ui/legacy';
|
|
7
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
8
|
+
import { NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common';
|
|
9
|
+
import { ParamInvalidIconComponent } from '../sub-components/param-invalid-icon/param-invalid-icon.component';
|
|
10
|
+
import { FastQueryStore } from '../../../store/fast-query-store.service';
|
|
11
|
+
import { ParamSelectBase } from '../../../core/param/param-select-base';
|
|
12
|
+
import { PARAM_SEARCH_INPUT_DEBOUNCE_TIME_MLS } from '../../../consts/params.consts';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@taiga-ui/core";
|
|
15
|
+
import * as i2 from "@taiga-ui/legacy";
|
|
16
|
+
import * as i3 from "@angular/forms";
|
|
17
|
+
import * as i4 from "@taiga-ui/kit";
|
|
18
|
+
export class ParamSelectComponent extends ParamSelectBase {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.placeholder = input('Выберите значение');
|
|
22
|
+
this.stringify = input((item) => String(item.name ?? ''));
|
|
23
|
+
this.identityMatcher = input((a, b) => a.id === b.id);
|
|
24
|
+
this.matcher = input((item, query) => {
|
|
25
|
+
if (!query || String(query).trim() === '') {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
return String(item?.name ?? '')
|
|
29
|
+
.toLowerCase()
|
|
30
|
+
.includes(String(query).toLowerCase());
|
|
31
|
+
});
|
|
32
|
+
this.buildShowedValue = input((value) => value?.name ?? '-');
|
|
33
|
+
this.strict = input(true);
|
|
34
|
+
this.onSelect = new EventEmitter();
|
|
35
|
+
this.search$ = new BehaviorSubject(undefined);
|
|
36
|
+
}
|
|
37
|
+
afterViewInit() {
|
|
38
|
+
this._observeFetchItems();
|
|
39
|
+
if (this.meta) {
|
|
40
|
+
this._subscribeOnMetaChanges();
|
|
41
|
+
this._subscribeOnSearch();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
ngOnDestroy() {
|
|
45
|
+
this.search$.complete();
|
|
46
|
+
}
|
|
47
|
+
_subscribeOnSearch() {
|
|
48
|
+
this.search$
|
|
49
|
+
.pipe(debounceTime(PARAM_SEARCH_INPUT_DEBOUNCE_TIME_MLS), takeUntilDestroyed(this.dr))
|
|
50
|
+
.subscribe((searchValue) => {
|
|
51
|
+
if (this.strict() && !this.control.value) {
|
|
52
|
+
if (searchValue) {
|
|
53
|
+
this.search$.next('');
|
|
54
|
+
}
|
|
55
|
+
this.fetchItems();
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.fetchItems(searchValue);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
_observeFetchItems() {
|
|
63
|
+
this._observeValueFill();
|
|
64
|
+
this._observeEmptyValue();
|
|
65
|
+
this._observeValueFetch();
|
|
66
|
+
}
|
|
67
|
+
_observeValueFill() {
|
|
68
|
+
this.control.valueChanges
|
|
69
|
+
.pipe(filter(Boolean), filter((value) => !value.name), takeUntilDestroyed(this.dr))
|
|
70
|
+
.subscribe((value) => {
|
|
71
|
+
const id = this._getIdFromValue(value);
|
|
72
|
+
const filledValue = this.items.find((item) => item.id === id);
|
|
73
|
+
if (filledValue) {
|
|
74
|
+
this.control.setValue(filledValue, { emitEvent: false });
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
_observeEmptyValue() {
|
|
79
|
+
this.control.valueChanges
|
|
80
|
+
.pipe(filter(() => !this.strict()), filter((value) => value === null || (typeof value === 'string' && value === '')), takeUntilDestroyed(this.dr))
|
|
81
|
+
.subscribe(() => {
|
|
82
|
+
this.search$.next('');
|
|
83
|
+
this.fetchItems();
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
_observeValueFetch() {
|
|
87
|
+
combineLatest([
|
|
88
|
+
this.control.valueChanges.pipe(map((value) => value?.id ?? null), distinctUntilChanged(), filter((id) => !this.items.some((item) => item.id === id))),
|
|
89
|
+
this.meta$,
|
|
90
|
+
])
|
|
91
|
+
.pipe(takeUntilDestroyed(this.dr))
|
|
92
|
+
.subscribe(() => this.fetchItems());
|
|
93
|
+
}
|
|
94
|
+
_getIdFromValue(value) {
|
|
95
|
+
return typeof value === 'object' && value !== null
|
|
96
|
+
? (value.id ?? null)
|
|
97
|
+
: value;
|
|
98
|
+
}
|
|
99
|
+
_subscribeOnMetaChanges() {
|
|
100
|
+
this.meta$.pipe(takeUntilDestroyed(this.dr)).subscribe(() => {
|
|
101
|
+
this.fetchItems();
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
fetchItems(searchValue) {
|
|
105
|
+
const { idField, valueField } = this.metaFields;
|
|
106
|
+
if (!this.meta?.table?.name || idField === null || valueField === null) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const selectedItemIDs = this._getSelectedItemIDs(searchValue);
|
|
110
|
+
this.loading = true;
|
|
111
|
+
const where = this.buildWhere(searchValue);
|
|
112
|
+
const selectedItemIdsWhere = this._buildSelectedItemIdsWhere(where, selectedItemIDs, idField);
|
|
113
|
+
this.store
|
|
114
|
+
.getResults({
|
|
115
|
+
table: this.meta.table,
|
|
116
|
+
where,
|
|
117
|
+
order_by: this.meta.order_by,
|
|
118
|
+
offset: this.meta.offset,
|
|
119
|
+
distinct_on: this.meta.distinct_on,
|
|
120
|
+
subquery: this.meta.subquery,
|
|
121
|
+
limit: this.meta.limit ?? this.limit,
|
|
122
|
+
}, true, selectedItemIdsWhere)
|
|
123
|
+
.pipe(tap((data) => {
|
|
124
|
+
this._handleResults(data, idField, valueField, selectedItemIDs);
|
|
125
|
+
}), tap(() => {
|
|
126
|
+
this.loading = false;
|
|
127
|
+
this.cdr.markForCheck();
|
|
128
|
+
}), takeUntilDestroyed(this.dr))
|
|
129
|
+
.subscribe();
|
|
130
|
+
}
|
|
131
|
+
_getSelectedItemIDs(searchValue) {
|
|
132
|
+
if (this.value && (!searchValue || searchValue === '')) {
|
|
133
|
+
const idField = this.meta?.table.idField ?? 'id';
|
|
134
|
+
return [this.value[idField]];
|
|
135
|
+
}
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
_buildSelectedItemIdsWhere(where, selectedItemIDs, idField) {
|
|
139
|
+
if (where && selectedItemIDs && selectedItemIDs.length > 0 && selectedItemIDs[0]) {
|
|
140
|
+
return { _and: [{ [idField]: { _in: selectedItemIDs } }, where] };
|
|
141
|
+
}
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
_handleResults(data, idField, valueField, selectedItemIDs) {
|
|
145
|
+
this.items = data.data.map((item) => ({
|
|
146
|
+
...item,
|
|
147
|
+
id: item[idField] ?? '',
|
|
148
|
+
name: this._getNameFromField(item, valueField),
|
|
149
|
+
}));
|
|
150
|
+
this._updateControlValues(data, idField, valueField, selectedItemIDs);
|
|
151
|
+
}
|
|
152
|
+
_getNameFromField(item, field) {
|
|
153
|
+
if (field.includes('.')) {
|
|
154
|
+
return this._getNameFromDeepField(item, field);
|
|
155
|
+
}
|
|
156
|
+
return this.formatShowedValue(item, field);
|
|
157
|
+
}
|
|
158
|
+
_getNameFromDeepField(item, field) {
|
|
159
|
+
const deepFields = field.split('.');
|
|
160
|
+
let tempObject = { ...item };
|
|
161
|
+
for (const deepField of deepFields) {
|
|
162
|
+
tempObject = tempObject[deepField];
|
|
163
|
+
}
|
|
164
|
+
return tempObject;
|
|
165
|
+
}
|
|
166
|
+
_updateControlValues(data, idField, valueField, selectedItemIDs) {
|
|
167
|
+
const idSelectedValue = this.value?.[idField];
|
|
168
|
+
const availableItems = data.selectedIdsQuery
|
|
169
|
+
?.filter((item) => idSelectedValue === item[idField])
|
|
170
|
+
.map((item) => ({
|
|
171
|
+
...item,
|
|
172
|
+
id: item[idField] ?? '',
|
|
173
|
+
name: this._getNameFromField(item, valueField),
|
|
174
|
+
})) ?? [];
|
|
175
|
+
if (selectedItemIDs && selectedItemIDs.length > 0 && availableItems.length > 0) {
|
|
176
|
+
const [item] = availableItems;
|
|
177
|
+
this.control?.setValue(item);
|
|
178
|
+
}
|
|
179
|
+
const itemsThatDontExist = availableItems.filter((new_item) => !this.items.some((value) => value.id === new_item.id));
|
|
180
|
+
this.items.push(...itemsThatDontExist);
|
|
181
|
+
this.itemsChange.emit(this.items);
|
|
182
|
+
}
|
|
183
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParamSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
184
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ParamSelectComponent, isStandalone: true, selector: "sproc-param-select", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, stringify: { classPropertyName: "stringify", publicName: "stringify", isSignal: true, isRequired: false, transformFunction: null }, identityMatcher: { classPropertyName: "identityMatcher", publicName: "identityMatcher", isSignal: true, isRequired: false, transformFunction: null }, matcher: { classPropertyName: "matcher", publicName: "matcher", isSignal: true, isRequired: false, transformFunction: null }, buildShowedValue: { classPropertyName: "buildShowedValue", publicName: "buildShowedValue", isSignal: true, isRequired: false, transformFunction: null }, strict: { classPropertyName: "strict", publicName: "strict", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelect: "onSelect" }, providers: [
|
|
185
|
+
FastQueryStore,
|
|
186
|
+
{
|
|
187
|
+
provide: TUI_ITEMS_HANDLERS,
|
|
188
|
+
deps: [forwardRef(() => ParamSelectComponent)],
|
|
189
|
+
useFactory: (component) => ({
|
|
190
|
+
stringify: component.stringify,
|
|
191
|
+
identityMatcher: component.identityMatcher,
|
|
192
|
+
disabledItemHandler: signal(() => false),
|
|
193
|
+
}),
|
|
194
|
+
},
|
|
195
|
+
], usesInheritance: true, ngImport: i0, template: "<ng-container [ngTemplateOutlet]=\"readmode ? readTemplate : editTemplate\">\n <ng-template #readTemplate>\n <div class=\"container container--read\" [attr.sproc-param-style]=\"paramStyle\">\n @if (label) {\n <ng-container [ngSwitch]=\"paramStyle\">\n <ng-template ngSwitchCase=\"filter\">\n <div class=\"label-wrapper\">\n <span class=\"label\">{{ label }}</span>\n <div class=\"dashed-row\"></div>\n </div>\n </ng-template>\n <ng-template ngSwitchDefault>\n <span class=\"label\">{{ label }}</span>\n <div class=\"dashed-row\"></div>\n </ng-template>\n </ng-container>\n }\n <div [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\" class=\"value\">\n <span>{{ showedValue }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #editTemplate>\n <div class=\"container container--edit\" [attr.sproc-param-style]=\"paramStyle\">\n <div *ngIf=\"label\" class=\"label-wrapper\" [class.applied]=\"applied()\">\n <span class=\"label\" [class.required]=\"required\">\n {{ label }}\n </span>\n </div>\n\n @if (searchable) {\n <tui-textfield\n tuiTextfieldSize=\"m\"\n tuiAppearance=\"sproc-input-appearance\"\n tuiChevron\n [tuiTextfieldCleaner]=\"true\"\n [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\"\n tuiHintDirection=\"top\"\n [content]=\"valueTemplate\"\n >\n <input\n (input)=\"search$.next($any($event.target).value)\"\n tuiComboBox\n [strict]=\"strict()\"\n [placeholder]=\"placeholder()\"\n [formControl]=\"control\"\n />\n\n <tui-loader [showLoader]=\"loading\" [overlay]=\"true\">\n <tui-data-list-wrapper\n new\n *tuiTextfieldDropdown\n [items]=\"items | tuiFilterByInput: matcher()\"\n [itemContent]=\"listItemTemplate ?? dropdownOptionContent\"\n [tuiDropdownMaxHeight]=\"maxDropdownHeight\"\n (itemClick)=\"onSelect.emit($event)\"\n />\n </tui-loader>\n\n <ng-container *ngTemplateOutlet=\"textfieldIcons\"></ng-container>\n </tui-textfield>\n } @else {\n <tui-textfield\n tuiTextfieldSize=\"m\"\n tuiAppearance=\"sproc-input-appearance\"\n tuiChevron\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\"\n tuiHintDirection=\"top\"\n [content]=\"valueTemplate\"\n [tuiDropdownMaxHeight]=\"maxDropdownHeight\"\n >\n <input tuiSelect [placeholder]=\"placeholder()\" [formControl]=\"control\" />\n\n <tui-loader [showLoader]=\"loading\" [overlay]=\"true\">\n <tui-data-list-wrapper\n new\n *tuiTextfieldDropdown\n [items]=\"items\"\n [itemContent]=\"listItemTemplate ?? dropdownOptionContent\"\n (itemClick)=\"onSelect.emit($event)\"\n />\n </tui-loader>\n\n <ng-container *ngTemplateOutlet=\"textfieldIcons\"></ng-container>\n </tui-textfield>\n }\n <ng-template #dropdownOptionContent let-data>\n <div>\n {{ stringify()(data) }}\n </div>\n </ng-template>\n\n <ng-template #textfieldIcons>\n <div class=\"textfield-icons-container\">\n @if (isInvalidAndNotPristine) {\n <sproc-param-invalid-icon></sproc-param-invalid-icon>\n }\n </div>\n </ng-template>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #hintContent> {{ showedValue }} </ng-template>\n", styles: [".input-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-text-12px,.body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.table-heading-12px{font-family:Inter,serif;font-size:12px;font-weight:500;line-height:16px}.table-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.table-text-12px-400{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:16px}.table-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.button-links-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.button-links-12px-600{font-family:Inter,serif;font-size:12px;font-weight:600;line-height:16px}.button-links-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.input-area{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:20px}.static-title-h3{font-family:Inter,serif;font-size:16px;font-weight:600;line-height:20px}.static-title-h4{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.dynamic-title-h4{font-family:Inter,serif;font-size:14px;font-weight:800;line-height:20px}.main-body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:20px}.main-body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.main-subscription{font-family:Inter,serif;font-size:10px;font-weight:400;line-height:12px}.input-helper-9px{font-family:Inter,serif;font-size:9px;font-weight:300;line-height:12px}.typography-content-text{font-family:Inter,serif;font-size:12px;font-weight:350;line-height:16px}.main-subtitle,.card-content-text{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.filter-header-text{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.btn-14px{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.search-11px{font-family:Inter,serif;font-size:11px;font-weight:300;line-height:12px}:root{--input-text-12px: normal 300 12px / 16px \"Inter\";--input-text-14px: normal 300 14px / 16px \"Inter\"}.textfield-icons-container{display:flex;margin-inline-end:.5rem;margin-inline-start:.5rem;flex-direction:row;align-items:center;gap:8px}.textfield-icons-container .invalid-icon{color:var(--deleted-color);height:16px;width:16px}.textfield-icons-container .cleaner-icon{color:var(--gray-icon);height:16px;width:16px;pointer-events:auto}.textfield-icons-container .cleaner-icon:hover{color:var(--main-black);cursor:pointer}.textfield-icons-container .chevron{color:var(--gray-icon);height:16px;width:16px;pointer-events:none}.clickable:hover{cursor:pointer}.read-style-card[sproc-param-style=card]{display:flex;align-items:flex-start;gap:4px;padding:8px 0}.read-style-card[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}.read-style-card[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.read-style-card[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.read-style-card[sproc-param-style=card] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}.read-style-card[sproc-param-style=card] .value{font-family:Inter,serif!important;font-size:14px!important;font-weight:400!important;line-height:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px;color:var(--main-black)!important}.read-style-filter[sproc-param-style=filter]{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px}.read-style-filter[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}.read-style-filter[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.read-style-filter[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.read-style-filter[sproc-param-style=filter] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}.read-style-filter[sproc-param-style=filter] .value{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px;color:var(--text-main)}.edit-style-card[sproc-param-style=card]{height:auto;width:100%;display:flex;flex-direction:column;padding-bottom:8px}.edit-style-card[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}.edit-style-card[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.edit-style-card[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.edit-style-filter[sproc-param-style=filter]{width:100%;display:flex;flex-direction:column}.edit-style-filter[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}.edit-style-filter[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.edit-style-filter[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.default-label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px}.default-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.default-label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.default-dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=card]{display:flex;align-items:flex-start;gap:4px;padding:8px 0}:host .container--read[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}:host .container--read[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--read[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--read[sproc-param-style=card] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=card] .value{font-family:Inter,serif!important;font-size:14px!important;font-weight:400!important;line-height:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px;color:var(--main-black)!important}:host .container--read[sproc-param-style=filter]{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px}:host .container--read[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}:host .container--read[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--read[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--read[sproc-param-style=filter] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=filter] .value{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px;color:var(--text-main)}:host .container--edit[sproc-param-style=card]{height:auto;width:100%;display:flex;flex-direction:column;padding-bottom:8px}:host .container--edit[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}:host .container--edit[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--edit[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--edit[sproc-param-style=filter]{width:100%;display:flex;flex-direction:column}:host .container--edit[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}:host .container--edit[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--edit[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--edit ._chevron-rotated .textfield-icons-container{transition:all .4ms}:host .container--edit ._chevron-rotated .textfield-icons-container .chevron{transform:rotate(-180deg)}\n"], dependencies: [{ kind: "component", type: i1.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "directive", type: i1.TuiTextfieldOptionsDirective, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: ["tuiTextfieldAppearance", "tuiTextfieldSize", "tuiTextfieldCleaner"] }, { kind: "directive", type: i1.TuiTextfieldDropdownDirective, selector: "ng-template[tuiTextfieldDropdown]" }, { kind: "directive", type: TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "ngmodule", type: TuiTextfieldControllerModule }, { kind: "directive", type: i2.TuiTextfieldCleanerDirective, selector: "[tuiTextfieldCleaner]", inputs: ["tuiTextfieldCleaner"] }, { kind: "directive", type: i2.TuiTextfieldLabelOutsideDirective, selector: "[tuiTextfieldLabelOutside]", inputs: ["tuiTextfieldLabelOutside"] }, { kind: "directive", type: i2.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "pipe", type: TuiFilterByInputPipe, name: "tuiFilterByInput" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: TuiComboBox, selector: "input[tuiComboBox]", inputs: ["strict", "matcher"] }, { kind: "component", type: ParamInvalidIconComponent, selector: "sproc-param-invalid-icon" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TuiSelectDirective, selector: "input[tuiSelect]" }, { kind: "directive", type: i1.TuiDropdownOptionsDirective, selector: "[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]", inputs: ["tuiDropdownAlign", "tuiDropdownAppearance", "tuiDropdownDirection", "tuiDropdownLimitWidth", "tuiDropdownMinHeight", "tuiDropdownMaxHeight", "tuiDropdownOffset"] }, { kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "directive", type: TuiChevron, selector: "[tuiChevron]", inputs: ["tuiChevron"] }, { kind: "directive", type: i1.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
196
|
+
}
|
|
197
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParamSelectComponent, decorators: [{
|
|
198
|
+
type: Component,
|
|
199
|
+
args: [{ selector: 'sproc-param-select', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
200
|
+
FastQueryStore,
|
|
201
|
+
{
|
|
202
|
+
provide: TUI_ITEMS_HANDLERS,
|
|
203
|
+
deps: [forwardRef(() => ParamSelectComponent)],
|
|
204
|
+
useFactory: (component) => ({
|
|
205
|
+
stringify: component.stringify,
|
|
206
|
+
identityMatcher: component.identityMatcher,
|
|
207
|
+
disabledItemHandler: signal(() => false),
|
|
208
|
+
}),
|
|
209
|
+
},
|
|
210
|
+
], standalone: true, imports: [
|
|
211
|
+
TuiTextfield,
|
|
212
|
+
TuiAppearance,
|
|
213
|
+
TuiTextfieldControllerModule,
|
|
214
|
+
ReactiveFormsModule,
|
|
215
|
+
TuiDataListWrapper,
|
|
216
|
+
TuiFilterByInputPipe,
|
|
217
|
+
NgTemplateOutlet,
|
|
218
|
+
NgSwitch,
|
|
219
|
+
NgSwitchCase,
|
|
220
|
+
NgSwitchDefault,
|
|
221
|
+
TuiComboBox,
|
|
222
|
+
ParamInvalidIconComponent,
|
|
223
|
+
NgIf,
|
|
224
|
+
TuiSelect,
|
|
225
|
+
TuiDropdown,
|
|
226
|
+
TuiLoader,
|
|
227
|
+
TuiChevron,
|
|
228
|
+
TuiHint,
|
|
229
|
+
], template: "<ng-container [ngTemplateOutlet]=\"readmode ? readTemplate : editTemplate\">\n <ng-template #readTemplate>\n <div class=\"container container--read\" [attr.sproc-param-style]=\"paramStyle\">\n @if (label) {\n <ng-container [ngSwitch]=\"paramStyle\">\n <ng-template ngSwitchCase=\"filter\">\n <div class=\"label-wrapper\">\n <span class=\"label\">{{ label }}</span>\n <div class=\"dashed-row\"></div>\n </div>\n </ng-template>\n <ng-template ngSwitchDefault>\n <span class=\"label\">{{ label }}</span>\n <div class=\"dashed-row\"></div>\n </ng-template>\n </ng-container>\n }\n <div [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\" class=\"value\">\n <span>{{ showedValue }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #editTemplate>\n <div class=\"container container--edit\" [attr.sproc-param-style]=\"paramStyle\">\n <div *ngIf=\"label\" class=\"label-wrapper\" [class.applied]=\"applied()\">\n <span class=\"label\" [class.required]=\"required\">\n {{ label }}\n </span>\n </div>\n\n @if (searchable) {\n <tui-textfield\n tuiTextfieldSize=\"m\"\n tuiAppearance=\"sproc-input-appearance\"\n tuiChevron\n [tuiTextfieldCleaner]=\"true\"\n [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\"\n tuiHintDirection=\"top\"\n [content]=\"valueTemplate\"\n >\n <input\n (input)=\"search$.next($any($event.target).value)\"\n tuiComboBox\n [strict]=\"strict()\"\n [placeholder]=\"placeholder()\"\n [formControl]=\"control\"\n />\n\n <tui-loader [showLoader]=\"loading\" [overlay]=\"true\">\n <tui-data-list-wrapper\n new\n *tuiTextfieldDropdown\n [items]=\"items | tuiFilterByInput: matcher()\"\n [itemContent]=\"listItemTemplate ?? dropdownOptionContent\"\n [tuiDropdownMaxHeight]=\"maxDropdownHeight\"\n (itemClick)=\"onSelect.emit($event)\"\n />\n </tui-loader>\n\n <ng-container *ngTemplateOutlet=\"textfieldIcons\"></ng-container>\n </tui-textfield>\n } @else {\n <tui-textfield\n tuiTextfieldSize=\"m\"\n tuiAppearance=\"sproc-input-appearance\"\n tuiChevron\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\"\n tuiHintDirection=\"top\"\n [content]=\"valueTemplate\"\n [tuiDropdownMaxHeight]=\"maxDropdownHeight\"\n >\n <input tuiSelect [placeholder]=\"placeholder()\" [formControl]=\"control\" />\n\n <tui-loader [showLoader]=\"loading\" [overlay]=\"true\">\n <tui-data-list-wrapper\n new\n *tuiTextfieldDropdown\n [items]=\"items\"\n [itemContent]=\"listItemTemplate ?? dropdownOptionContent\"\n (itemClick)=\"onSelect.emit($event)\"\n />\n </tui-loader>\n\n <ng-container *ngTemplateOutlet=\"textfieldIcons\"></ng-container>\n </tui-textfield>\n }\n <ng-template #dropdownOptionContent let-data>\n <div>\n {{ stringify()(data) }}\n </div>\n </ng-template>\n\n <ng-template #textfieldIcons>\n <div class=\"textfield-icons-container\">\n @if (isInvalidAndNotPristine) {\n <sproc-param-invalid-icon></sproc-param-invalid-icon>\n }\n </div>\n </ng-template>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #hintContent> {{ showedValue }} </ng-template>\n", styles: [".input-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-text-12px,.body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.table-heading-12px{font-family:Inter,serif;font-size:12px;font-weight:500;line-height:16px}.table-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.table-text-12px-400{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:16px}.table-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.button-links-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.button-links-12px-600{font-family:Inter,serif;font-size:12px;font-weight:600;line-height:16px}.button-links-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.input-area{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:20px}.static-title-h3{font-family:Inter,serif;font-size:16px;font-weight:600;line-height:20px}.static-title-h4{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.dynamic-title-h4{font-family:Inter,serif;font-size:14px;font-weight:800;line-height:20px}.main-body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:20px}.main-body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.main-subscription{font-family:Inter,serif;font-size:10px;font-weight:400;line-height:12px}.input-helper-9px{font-family:Inter,serif;font-size:9px;font-weight:300;line-height:12px}.typography-content-text{font-family:Inter,serif;font-size:12px;font-weight:350;line-height:16px}.main-subtitle,.card-content-text{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.filter-header-text{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.btn-14px{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.search-11px{font-family:Inter,serif;font-size:11px;font-weight:300;line-height:12px}:root{--input-text-12px: normal 300 12px / 16px \"Inter\";--input-text-14px: normal 300 14px / 16px \"Inter\"}.textfield-icons-container{display:flex;margin-inline-end:.5rem;margin-inline-start:.5rem;flex-direction:row;align-items:center;gap:8px}.textfield-icons-container .invalid-icon{color:var(--deleted-color);height:16px;width:16px}.textfield-icons-container .cleaner-icon{color:var(--gray-icon);height:16px;width:16px;pointer-events:auto}.textfield-icons-container .cleaner-icon:hover{color:var(--main-black);cursor:pointer}.textfield-icons-container .chevron{color:var(--gray-icon);height:16px;width:16px;pointer-events:none}.clickable:hover{cursor:pointer}.read-style-card[sproc-param-style=card]{display:flex;align-items:flex-start;gap:4px;padding:8px 0}.read-style-card[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}.read-style-card[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.read-style-card[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.read-style-card[sproc-param-style=card] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}.read-style-card[sproc-param-style=card] .value{font-family:Inter,serif!important;font-size:14px!important;font-weight:400!important;line-height:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px;color:var(--main-black)!important}.read-style-filter[sproc-param-style=filter]{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px}.read-style-filter[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}.read-style-filter[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.read-style-filter[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.read-style-filter[sproc-param-style=filter] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}.read-style-filter[sproc-param-style=filter] .value{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px;color:var(--text-main)}.edit-style-card[sproc-param-style=card]{height:auto;width:100%;display:flex;flex-direction:column;padding-bottom:8px}.edit-style-card[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}.edit-style-card[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.edit-style-card[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.edit-style-filter[sproc-param-style=filter]{width:100%;display:flex;flex-direction:column}.edit-style-filter[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}.edit-style-filter[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.edit-style-filter[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.default-label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px}.default-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.default-label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.default-dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=card]{display:flex;align-items:flex-start;gap:4px;padding:8px 0}:host .container--read[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}:host .container--read[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--read[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--read[sproc-param-style=card] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=card] .value{font-family:Inter,serif!important;font-size:14px!important;font-weight:400!important;line-height:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px;color:var(--main-black)!important}:host .container--read[sproc-param-style=filter]{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px}:host .container--read[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}:host .container--read[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--read[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--read[sproc-param-style=filter] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=filter] .value{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px;color:var(--text-main)}:host .container--edit[sproc-param-style=card]{height:auto;width:100%;display:flex;flex-direction:column;padding-bottom:8px}:host .container--edit[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}:host .container--edit[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--edit[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--edit[sproc-param-style=filter]{width:100%;display:flex;flex-direction:column}:host .container--edit[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}:host .container--edit[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--edit[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--edit ._chevron-rotated .textfield-icons-container{transition:all .4ms}:host .container--edit ._chevron-rotated .textfield-icons-container .chevron{transform:rotate(-180deg)}\n"] }]
|
|
230
|
+
}], propDecorators: { onSelect: [{
|
|
231
|
+
type: Output
|
|
232
|
+
}] } });
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0tc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dHMvcGFyYW0tc2VsZWN0L3BhcmFtLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL3BhcmFtLXNlbGVjdC9wYXJhbS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBQ0gsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsV0FBVyxFQUNYLE9BQU8sRUFDUCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFVBQVUsRUFDVixXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFF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QkFDVCxVQUFVO3dCQUNWLE9BQU87cUJBQ1I7OEJBNEJTLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIGlucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGVib3VuY2VUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBUVUlfSVRFTVNfSEFORExFUlMsXG4gIFR1aUFwcGVhcmFuY2UsXG4gIFR1aURyb3Bkb3duLFxuICBUdWlIaW50LFxuICBUdWlMb2FkZXIsXG4gIFR1aVRleHRmaWVsZCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtcbiAgVHVpQ2hldnJvbixcbiAgVHVpQ29tYm9Cb3gsXG4gIFR1aURhdGFMaXN0V3JhcHBlcixcbiAgVHVpRmlsdGVyQnlJbnB1dFBpcGUsXG4gIFR1aVNlbGVjdCxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5pbXBvcnQgeyBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdJZiwgTmdTd2l0Y2gsIE5nU3dpdGNoQ2FzZSwgTmdTd2l0Y2hEZWZhdWx0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFR1aVN0cmluZ01hdGNoZXIgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFBhcmFtSW52YWxpZEljb25Db21wb25lbnQgfSBmcm9tICcuLi9zdWItY29tcG9uZW50cy9wYXJhbS1pbnZhbGlkLWljb24vcGFyYW0taW52YWxpZC1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYXN0UXVlcnlTdG9yZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2Zhc3QtcXVlcnktc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBQYXJhbVNlbGVjdEJhc2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3BhcmFtL3BhcmFtLXNlbGVjdC1iYXNlJztcbmltcG9ydCB7IElGaWx0ZXJTZWxlY3RWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3BhcmFtcy50eXBlcyc7XG5pbXBvcnQgeyBQQVJBTV9TRUFSQ0hfSU5QVVRfREVCT1VOQ0VfVElNRV9NTFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdHMvcGFyYW1zLmNvbnN0cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Nwcm9jLXBhcmFtLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXJhbS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYXJhbS1zZWxlY3QuY29tcG9uZW50Lmxlc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIEZhc3RRdWVyeVN0b3JlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRVSV9JVEVNU19IQU5ETEVSUyxcbiAgICAgIGRlcHM6IFtmb3J3YXJkUmVmKCgpID0+IFBhcmFtU2VsZWN0Q29tcG9uZW50KV0sXG4gICAgICB1c2VGYWN0b3J5OiAoY29tcG9uZW50OiBQYXJhbVNlbGVjdENvbXBvbmVudCkgPT4gKHtcbiAgICAgICAgc3RyaW5naWZ5OiBjb21wb25lbnQuc3RyaW5naWZ5LFxuICAgICAgICBpZGVudGl0eU1hdGNoZXI6IGNvbXBvbmVudC5pZGVudGl0eU1hdGNoZXIsXG4gICAgICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IHNpZ25hbCgoKSA9PiBmYWxzZSksXG4gICAgICB9KSxcbiAgICB9LFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgVHVpVGV4dGZpZWxkLFxuICAgIFR1aUFwcGVhcmFuY2UsXG4gICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFR1aURhdGFMaXN0V3JhcHBlcixcbiAgICBUdWlGaWx0ZXJCeUlucHV0UGlwZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIE5nU3dpdGNoLFxuICAgIE5nU3dpdGNoQ2FzZSxcbiAgICBOZ1N3aXRjaERlZmF1bHQsXG4gICAgVHVpQ29tYm9Cb3gsXG4gICAgUGFyYW1JbnZhbGlkSWNvbkNvbXBvbmVudCxcbiAgICBOZ0lmLFxuICAgIFR1aVNlbGVjdCxcbiAgICBUdWlEcm9wZG93bixcbiAgICBUdWlMb2FkZXIsXG4gICAgVHVpQ2hldnJvbixcbiAgICBUdWlIaW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQYXJhbVNlbGVjdENvbXBvbmVudFxuICBleHRlbmRzIFBhcmFtU2VsZWN0QmFzZTxJRmlsdGVyU2VsZWN0VmFsdWUgfCBudWxsLCBJRmlsdGVyU2VsZWN0VmFsdWUgfCBudWxsPlxuICBpbXBsZW1lbnRzIE9uRGVzdHJveVxue1xuICBvdmVycmlkZSBwbGFjZWhvbGRlciA9IGlucHV0KCfQktGL0LHQtdGA0LjRgtC1INC30L3QsNGH0LXQvdC40LUnKTtcbiAgcmVhZG9ubHkgc3RyaW5naWZ5ID0gaW5wdXQ8KGl0ZW06IElGaWx0ZXJTZWxlY3RWYWx1ZSkgPT4gc3RyaW5nPigoaXRlbSkgPT5cbiAgICBTdHJpbmcoaXRlbS5uYW1lID8/ICcnKVxuICApO1xuICByZWFkb25seSBpZGVudGl0eU1hdGNoZXIgPSBpbnB1dDwoYTogSUZpbHRlclNlbGVjdFZhbHVlLCBiOiBJRmlsdGVyU2VsZWN0VmFsdWUpID0+IGJvb2xlYW4+KFxuICAgIChhLCBiKSA9PiBhLmlkID09PSBiLmlkXG4gICk7XG4gIHJlYWRvbmx5IG1hdGNoZXIgPSBpbnB1dDxUdWlTdHJpbmdNYXRjaGVyPElGaWx0ZXJTZWxlY3RWYWx1ZT4+KFxuICAgIChpdGVtOiBJRmlsdGVyU2VsZWN0VmFsdWUsIHF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICghcXVlcnkgfHwgU3RyaW5nKHF1ZXJ5KS50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFN0cmluZyhpdGVtPy5uYW1lID8/ICcnKVxuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAuaW5jbHVkZXMoU3RyaW5nKHF1ZXJ5KS50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG4gICk7XG4gIG92ZXJyaWRlIGJ1aWxkU2hvd2VkVmFsdWUgPSBpbnB1dChcbiAgICAodmFsdWU6IElGaWx0ZXJTZWxlY3RWYWx1ZSB8IG51bGwpOiBzdHJpbmcgPT4gdmFsdWU/Lm5hbWUgPz8gJy0nXG4gICk7XG4gIHB1YmxpYyBzdHJpY3QgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICBAT3V0cHV0KCkgb25TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPElGaWx0ZXJTZWxlY3RWYWx1ZT4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VhcmNoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBhZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX29ic2VydmVGZXRjaEl0ZW1zKCk7XG4gICAgaWYgKHRoaXMubWV0YSkge1xuICAgICAgdGhpcy5fc3Vic2NyaWJlT25NZXRhQ2hhbmdlcygpO1xuICAgICAgdGhpcy5fc3Vic2NyaWJlT25TZWFyY2goKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2gkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmVPblNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaCRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZShQQVJBTV9TRUFSQ0hfSU5QVVRfREVCT1VOQ0VfVElNRV9NTFMpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kcikpXG4gICAgICAuc3Vic2NyaWJlKChzZWFyY2hWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnN0cmljdCgpICYmICF0aGlzLmNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICBpZiAoc2VhcmNoVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoJC5uZXh0KCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5mZXRjaEl0ZW1zKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mZXRjaEl0ZW1zKHNlYXJjaFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9vYnNlcnZlRmV0Y2hJdGVtcygpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlVmFsdWVGaWxsKCk7XG4gICAgdGhpcy5fb2JzZXJ2ZUVtcHR5VmFsdWUoKTtcbiAgICB0aGlzLl9vYnNlcnZlVmFsdWVGZXRjaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZVZhbHVlRmlsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiAhdmFsdWUubmFtZSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRyKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLl9nZXRJZEZyb21WYWx1ZSh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IGZpbGxlZFZhbHVlID0gdGhpcy5pdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBpZCk7XG5cbiAgICAgICAgaWYgKGZpbGxlZFZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGZpbGxlZFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZUVtcHR5VmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5zdHJpY3QoKSksXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+IHZhbHVlID09PSBudWxsIHx8ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlID09PSAnJykpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kcilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaCQubmV4dCgnJyk7XG4gICAgICAgIHRoaXMuZmV0Y2hJdGVtcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9vYnNlcnZlVmFsdWVGZXRjaCgpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgbWFwKCh2YWx1ZSkgPT4gdmFsdWU/LmlkID8/IG51bGwpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBmaWx0ZXIoKGlkKSA9PiAhdGhpcy5pdGVtcy5zb21lKChpdGVtKSA9PiBpdGVtLmlkID09PSBpZCkpXG4gICAgICApLFxuICAgICAgdGhpcy5tZXRhJCxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZHIpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmZldGNoSXRlbXMoKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJZEZyb21WYWx1ZSh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB8IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsXG4gICAgICA/ICgodmFsdWUgYXMgeyBpZD86IHN0cmluZyB8IG51bWJlciB9KS5pZCA/PyBudWxsKVxuICAgICAgOiAodmFsdWUgYXMgc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCk7XG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmVPbk1ldGFDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMubWV0YSQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kcikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZldGNoSXRlbXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmZXRjaEl0ZW1zKHNlYXJjaFZhbHVlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgeyBpZEZpZWxkLCB2YWx1ZUZpZWxkIH0gPSB0aGlzLm1ldGFGaWVsZHM7XG5cbiAgICBpZiAoIXRoaXMubWV0YT8udGFibGU/Lm5hbWUgfHwgaWRGaWVsZCA9PT0gbnVsbCB8fCB2YWx1ZUZpZWxkID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtSURzID0gdGhpcy5fZ2V0U2VsZWN0ZWRJdGVtSURzKHNlYXJjaFZhbHVlKTtcblxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgY29uc3Qgd2hlcmUgPSB0aGlzLmJ1aWxkV2hlcmUoc2VhcmNoVmFsdWUpO1xuICAgIGNvbnN0IHNlbGVjdGVkSXRlbUlkc1doZXJlID0gdGhpcy5fYnVpbGRTZWxlY3RlZEl0ZW1JZHNXaGVyZSh3aGVyZSwgc2VsZWN0ZWRJdGVtSURzLCBpZEZpZWxkKTtcblxuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5nZXRSZXN1bHRzKFxuICAgICAgICB7XG4gICAgICAgICAgdGFibGU6IHRoaXMubWV0YS50YWJsZSxcbiAgICAgICAgICB3aGVyZSxcbiAgICAgICAgICBvcmRlcl9ieTogdGhpcy5tZXRhLm9yZGVyX2J5LFxuICAgICAgICAgIG9mZnNldDogdGhpcy5tZXRhLm9mZnNldCxcbiAgICAgICAgICBkaXN0aW5jdF9vbjogdGhpcy5tZXRhLmRpc3RpbmN0X29uLFxuICAgICAgICAgIHN1YnF1ZXJ5OiB0aGlzLm1ldGEuc3VicXVlcnksXG4gICAgICAgICAgbGltaXQ6IHRoaXMubWV0YS5saW1pdCA/PyB0aGlzLmxpbWl0LFxuICAgICAgICB9LFxuICAgICAgICB0cnVlLFxuICAgICAgICBzZWxlY3RlZEl0ZW1JZHNXaGVyZVxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZGF0YSkgPT4ge1xuICAgICAgICAgIHRoaXMuX2hhbmRsZVJlc3VsdHMoZGF0YSwgaWRGaWVsZCwgdmFsdWVGaWVsZCwgc2VsZWN0ZWRJdGVtSURzKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kcilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFNlbGVjdGVkSXRlbUlEcyhzZWFyY2hWYWx1ZT86IHN0cmluZyk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy52YWx1ZSAmJiAoIXNlYXJjaFZhbHVlIHx8IHNlYXJjaFZhbHVlID09PSAnJykpIHtcbiAgICAgIGNvbnN0IGlkRmllbGQgPSB0aGlzLm1ldGE/LnRhYmxlLmlkRmllbGQgPz8gJ2lkJztcbiAgICAgIHJldHVybiBbdGhpcy52YWx1ZVtpZEZpZWxkXV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgX2J1aWxkU2VsZWN0ZWRJdGVtSWRzV2hlcmUoXG4gICAgd2hlcmU6IGFueSxcbiAgICBzZWxlY3RlZEl0ZW1JRHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgIGlkRmllbGQ6IHN0cmluZ1xuICApOiBvYmplY3QgfCB1bmRlZmluZWQge1xuICAgIGlmICh3aGVyZSAmJiBzZWxlY3RlZEl0ZW1JRHMgJiYgc2VsZWN0ZWRJdGVtSURzLmxlbmd0aCA+IDAgJiYgc2VsZWN0ZWRJdGVtSURzWzBdKSB7XG4gICAgICByZXR1cm4geyBfYW5kOiBbeyBbaWRGaWVsZF06IHsgX2luOiBzZWxlY3RlZEl0ZW1JRHMgfSB9LCB3aGVyZV0gfTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlUmVzdWx0cyhcbiAgICBkYXRhOiBhbnksXG4gICAgaWRGaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlRmllbGQ6IHN0cmluZyxcbiAgICBzZWxlY3RlZEl0ZW1JRHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXMgPSBkYXRhLmRhdGEubWFwKChpdGVtOiBhbnkpID0+ICh7XG4gICAgICAuLi5pdGVtLFxuICAgICAgaWQ6IGl0ZW1baWRGaWVsZF0gPz8gJycsXG4gICAgICBuYW1lOiB0aGlzLl9nZXROYW1lRnJvbUZpZWxkKGl0ZW0sIHZhbHVlRmllbGQpLFxuICAgIH0pKTtcblxuICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xWYWx1ZXMoZGF0YSwgaWRGaWVsZCwgdmFsdWVGaWVsZCwgc2VsZWN0ZWRJdGVtSURzKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5hbWVGcm9tRmllbGQoaXRlbTogYW55LCBmaWVsZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoZmllbGQuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2dldE5hbWVGcm9tRGVlcEZpZWxkKGl0ZW0sIGZpZWxkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mb3JtYXRTaG93ZWRWYWx1ZShpdGVtLCBmaWVsZCk7XG4gIH1cblxuICBwcml2YXRlIF9nZXROYW1lRnJvbURlZXBGaWVsZChpdGVtOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRlZXBGaWVsZHMgPSBmaWVsZC5zcGxpdCgnLicpO1xuICAgIGxldCB0ZW1wT2JqZWN0ID0geyAuLi5pdGVtIH07XG5cbiAgICBmb3IgKGNvbnN0IGRlZXBGaWVsZCBvZiBkZWVwRmllbGRzKSB7XG4gICAgICB0ZW1wT2JqZWN0ID0gdGVtcE9iamVjdFtkZWVwRmllbGRdO1xuICAgIH1cblxuICAgIHJldHVybiB0ZW1wT2JqZWN0O1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQ29udHJvbFZhbHVlcyhcbiAgICBkYXRhOiBhbnksXG4gICAgaWRGaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlRmllbGQ6IHN0cmluZyxcbiAgICBzZWxlY3RlZEl0ZW1JRHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGlkU2VsZWN0ZWRWYWx1ZSA9IHRoaXMudmFsdWU/LltpZEZpZWxkXTtcbiAgICBjb25zdCBhdmFpbGFibGVJdGVtcyA9XG4gICAgICBkYXRhLnNlbGVjdGVkSWRzUXVlcnlcbiAgICAgICAgPy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaWRTZWxlY3RlZFZhbHVlID09PSBpdGVtW2lkRmllbGRdKVxuICAgICAgICAubWFwKChpdGVtOiBhbnkpID0+ICh7XG4gICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICBpZDogaXRlbVtpZEZpZWxkXSA/PyAnJyxcbiAgICAgICAgICBuYW1lOiB0aGlzLl9nZXROYW1lRnJvbUZpZWxkKGl0ZW0sIHZhbHVlRmllbGQpLFxuICAgICAgICB9KSkgPz8gW107XG5cbiAgICBpZiAoc2VsZWN0ZWRJdGVtSURzICYmIHNlbGVjdGVkSXRlbUlEcy5sZW5ndGggPiAwICYmIGF2YWlsYWJsZUl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IFtpdGVtXSA9IGF2YWlsYWJsZUl0ZW1zO1xuICAgICAgdGhpcy5jb250cm9sPy5zZXRWYWx1ZShpdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtc1RoYXREb250RXhpc3QgPSBhdmFpbGFibGVJdGVtcy5maWx0ZXIoXG4gICAgICAobmV3X2l0ZW06IGFueSkgPT4gIXRoaXMuaXRlbXMuc29tZSgodmFsdWU6IGFueSkgPT4gdmFsdWUuaWQgPT09IG5ld19pdGVtLmlkKVxuICAgICk7XG5cbiAgICB0aGlzLml0ZW1zLnB1c2goLi4uaXRlbXNUaGF0RG9udEV4aXN0KTtcbiAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQodGhpcy5pdGVtcyk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicmVhZG1vZGUgPyByZWFkVGVtcGxhdGUgOiBlZGl0VGVtcGxhdGVcIj5cbiAgPG5nLXRlbXBsYXRlICNyZWFkVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb250YWluZXItLXJlYWRcIiBbYXR0ci5zcHJvYy1wYXJhbS1zdHlsZV09XCJwYXJhbVN0eWxlXCI+XG4gICAgICBAaWYgKGxhYmVsKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInBhcmFtU3R5bGVcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwiZmlsdGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwtd3JhcHBlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXNoZWQtcm93XCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGFzaGVkLXJvd1wiPjwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgfVxuICAgICAgPGRpdiBbdHVpSGludF09XCJ2YWx1ZSAmJiBzaG93ZWRWYWx1ZSAhPT0gJy0nID8gaGludENvbnRlbnQgOiB1bmRlZmluZWRcIiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgIDxzcGFuPnt7IHNob3dlZFZhbHVlIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgY29udGFpbmVyLS1lZGl0XCIgW2F0dHIuc3Byb2MtcGFyYW0tc3R5bGVdPVwicGFyYW1TdHlsZVwiPlxuICAgICAgPGRpdiAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJsYWJlbC13cmFwcGVyXCIgW2NsYXNzLmFwcGxpZWRdPVwiYXBwbGllZCgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIiBbY2xhc3MucmVxdWlyZWRdPVwicmVxdWlyZWRcIj5cbiAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChzZWFyY2hhYmxlKSB7XG4gICAgICAgIDx0dWktdGV4dGZpZWxkXG4gICAgICAgICAgdHVpVGV4dGZpZWxkU2l6ZT1cIm1cIlxuICAgICAgICAgIHR1aUFwcGVhcmFuY2U9XCJzcHJvYy1pbnB1dC1hcHBlYXJhbmNlXCJcbiAgICAgICAgICB0dWlDaGV2cm9uXG4gICAgICAgICAgW3R1aVRleHRmaWVsZENsZWFuZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgW3R1aUhpbnRdPVwidmFsdWUgJiYgc2hvd2VkVmFsdWUgIT09ICctJyA/IGhpbnRDb250ZW50IDogdW5kZWZpbmVkXCJcbiAgICAgICAgICB0dWlIaW50RGlyZWN0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY29udGVudF09XCJ2YWx1ZVRlbXBsYXRlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgKGlucHV0KT1cInNlYXJjaCQubmV4dCgkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXG4gICAgICAgICAgICB0dWlDb21ib0JveFxuICAgICAgICAgICAgW3N0cmljdF09XCJzdHJpY3QoKVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgLz5cblxuICAgICAgICAgIDx0dWktbG9hZGVyIFtzaG93TG9hZGVyXT1cImxvYWRpbmdcIiBbb3ZlcmxheV09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8dHVpLWRhdGEtbGlzdC13cmFwcGVyXG4gICAgICAgICAgICAgIG5ld1xuICAgICAgICAgICAgICAqdHVpVGV4dGZpZWxkRHJvcGRvd25cbiAgICAgICAgICAgICAgW2l0ZW1zXT1cIml0ZW1zIHwgdHVpRmlsdGVyQnlJbnB1dDogbWF0Y2hlcigpXCJcbiAgICAgICAgICAgICAgW2l0ZW1Db250ZW50XT1cImxpc3RJdGVtVGVtcGxhdGUgPz8gZHJvcGRvd25PcHRpb25Db250ZW50XCJcbiAgICAgICAgICAgICAgW3R1aURyb3Bkb3duTWF4SGVpZ2h0XT1cIm1heERyb3Bkb3duSGVpZ2h0XCJcbiAgICAgICAgICAgICAgKGl0ZW1DbGljayk9XCJvblNlbGVjdC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3R1aS1sb2FkZXI+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGV4dGZpZWxkSWNvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC90dWktdGV4dGZpZWxkPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDx0dWktdGV4dGZpZWxkXG4gICAgICAgICAgdHVpVGV4dGZpZWxkU2l6ZT1cIm1cIlxuICAgICAgICAgIHR1aUFwcGVhcmFuY2U9XCJzcHJvYy1pbnB1dC1hcHBlYXJhbmNlXCJcbiAgICAgICAgICB0dWlDaGV2cm9uXG4gICAgICAgICAgW3R1aVRleHRmaWVsZExhYmVsT3V0c2lkZV09XCJ0cnVlXCJcbiAgICAgICAgICBbdHVpVGV4dGZpZWxkQ2xlYW5lcl09XCJ0cnVlXCJcbiAgICAgICAgICBbdHVpSGludF09XCJ2YWx1ZSAmJiBzaG93ZWRWYWx1ZSAhPT0gJy0nID8gaGludENvbnRlbnQgOiB1bmRlZmluZWRcIlxuICAgICAgICAgIHR1aUhpbnREaXJlY3Rpb249XCJ0b3BcIlxuICAgICAgICAgIFtjb250ZW50XT1cInZhbHVlVGVtcGxhdGVcIlxuICAgICAgICAgIFt0dWlEcm9wZG93bk1heEhlaWdodF09XCJtYXhEcm9wZG93bkhlaWdodFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXQgdHVpU2VsZWN0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCIgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiAvPlxuXG4gICAgICAgICAgPHR1aS1sb2FkZXIgW3Nob3dMb2FkZXJdPVwibG9hZGluZ1wiIFtvdmVybGF5XT1cInRydWVcIj5cbiAgICAgICAgICAgIDx0dWktZGF0YS1saXN0LXdyYXBwZXJcbiAgICAgICAgICAgICAgbmV3XG4gICAgICAgICAgICAgICp0dWlUZXh0ZmllbGREcm9wZG93blxuICAgICAgICAgICAgICBbaXRlbXNdPVwiaXRlbXNcIlxuICAgICAgICAgICAgICBbaXRlbUNvbnRlbnRdPVwibGlzdEl0ZW1UZW1wbGF0ZSA/PyBkcm9wZG93bk9wdGlvbkNvbnRlbnRcIlxuICAgICAgICAgICAgICAoaXRlbUNsaWNrKT1cIm9uU2VsZWN0LmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvdHVpLWxvYWRlcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZXh0ZmllbGRJY29uc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3R1aS10ZXh0ZmllbGQ+XG4gICAgICB9XG4gICAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duT3B0aW9uQ29udGVudCBsZXQtZGF0YT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7eyBzdHJpbmdpZnkoKShkYXRhKSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdGV4dGZpZWxkSWNvbnM+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0ZmllbGQtaWNvbnMtY29udGFpbmVyXCI+XG4gICAgICAgICAgQGlmIChpc0ludmFsaWRBbmROb3RQcmlzdGluZSkge1xuICAgICAgICAgICAgPHNwcm9jLXBhcmFtLWludmFsaWQtaWNvbj48L3Nwcm9jLXBhcmFtLWludmFsaWQtaWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2hpbnRDb250ZW50PiB7eyBzaG93ZWRWYWx1ZSB9fSA8L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { ParamBase } from '../../../core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "@prizm-ui/components";
|
|
7
|
+
export class ParamSwitcherComponent extends ParamBase {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.switchers = [];
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParamSwitcherComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ParamSwitcherComponent, selector: "sproc-param-switcher", inputs: { switchers: "switchers" }, usesInheritance: true, ngImport: i0, template: "<div class=\"param-switcher\">\n <div *ngIf=\"label\" class=\"label\">\n <span *ngIf=\"label\" class=\"label__text\">{{ label }}</span>\n <span *ngIf=\"required\" class=\"label--required\">*</span>\n </div>\n\n <prizm-switcher [formControl]=\"control\" [switchers]=\"switchers\"></prizm-switcher>\n</div>\n", styles: [".input-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-text-12px,.body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.table-heading-12px{font-family:Inter,serif;font-size:12px;font-weight:500;line-height:16px}.table-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.table-text-12px-400{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:16px}.table-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.button-links-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.button-links-12px-600{font-family:Inter,serif;font-size:12px;font-weight:600;line-height:16px}.button-links-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.input-area{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:20px}.static-title-h3{font-family:Inter,serif;font-size:16px;font-weight:600;line-height:20px}.static-title-h4{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.dynamic-title-h4{font-family:Inter,serif;font-size:14px;font-weight:800;line-height:20px}.main-body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:20px}.main-body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.main-subscription{font-family:Inter,serif;font-size:10px;font-weight:400;line-height:12px}.input-helper-9px{font-family:Inter,serif;font-size:9px;font-weight:300;line-height:12px}.typography-content-text{font-family:Inter,serif;font-size:12px;font-weight:350;line-height:16px}.main-subtitle,.card-content-text{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.filter-header-text{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.btn-14px{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.search-11px{font-family:Inter,serif;font-size:11px;font-weight:300;line-height:12px}:root{--input-text-12px: normal 300 12px / 16px \"Inter\";--input-text-14px: normal 300 14px / 16px \"Inter\"}:host .param-switcher{display:flex;flex-direction:column;gap:8px}:host .param-switcher .label{display:flex;gap:4px;font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}:host .param-switcher .label__text{color:var(--main-black)}:host .param-switcher .label--required{color:var(--brand-danger)}:host .param-switcher ::ng-deep prizm-switcher .container{display:flex;flex:1}:host .param-switcher ::ng-deep prizm-switcher .container prizm-switcher-item{display:flex;flex:1}:host .param-switcher ::ng-deep prizm-switcher .container prizm-switcher-item button{height:24px!important;min-height:24px!important;display:flex;flex:1}:host .param-switcher ::ng-deep prizm-switcher .container prizm-switcher-item button prizm-wrapper{display:flex;align-items:center;justify-content:center;padding:unset!important;border:1px solid var(--chip-background)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.PrizmSwitcherComponent, selector: "prizm-switcher", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParamSwitcherComponent, decorators: [{
|
|
16
|
+
type: Component,
|
|
17
|
+
args: [{ selector: 'sproc-param-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"param-switcher\">\n <div *ngIf=\"label\" class=\"label\">\n <span *ngIf=\"label\" class=\"label__text\">{{ label }}</span>\n <span *ngIf=\"required\" class=\"label--required\">*</span>\n </div>\n\n <prizm-switcher [formControl]=\"control\" [switchers]=\"switchers\"></prizm-switcher>\n</div>\n", styles: [".input-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-text-12px,.body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.table-heading-12px{font-family:Inter,serif;font-size:12px;font-weight:500;line-height:16px}.table-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.table-text-12px-400{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:16px}.table-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.button-links-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.button-links-12px-600{font-family:Inter,serif;font-size:12px;font-weight:600;line-height:16px}.button-links-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.input-area{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:20px}.static-title-h3{font-family:Inter,serif;font-size:16px;font-weight:600;line-height:20px}.static-title-h4{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.dynamic-title-h4{font-family:Inter,serif;font-size:14px;font-weight:800;line-height:20px}.main-body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:20px}.main-body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.main-subscription{font-family:Inter,serif;font-size:10px;font-weight:400;line-height:12px}.input-helper-9px{font-family:Inter,serif;font-size:9px;font-weight:300;line-height:12px}.typography-content-text{font-family:Inter,serif;font-size:12px;font-weight:350;line-height:16px}.main-subtitle,.card-content-text{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.filter-header-text{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.btn-14px{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.search-11px{font-family:Inter,serif;font-size:11px;font-weight:300;line-height:12px}:root{--input-text-12px: normal 300 12px / 16px \"Inter\";--input-text-14px: normal 300 14px / 16px \"Inter\"}:host .param-switcher{display:flex;flex-direction:column;gap:8px}:host .param-switcher .label{display:flex;gap:4px;font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}:host .param-switcher .label__text{color:var(--main-black)}:host .param-switcher .label--required{color:var(--brand-danger)}:host .param-switcher ::ng-deep prizm-switcher .container{display:flex;flex:1}:host .param-switcher ::ng-deep prizm-switcher .container prizm-switcher-item{display:flex;flex:1}:host .param-switcher ::ng-deep prizm-switcher .container prizm-switcher-item button{height:24px!important;min-height:24px!important;display:flex;flex:1}:host .param-switcher ::ng-deep prizm-switcher .container prizm-switcher-item button prizm-wrapper{display:flex;align-items:center;justify-content:center;padding:unset!important;border:1px solid var(--chip-background)}\n"] }]
|
|
18
|
+
}], propDecorators: { switchers: [{
|
|
19
|
+
type: Input
|
|
20
|
+
}] } });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0tc3dpdGNoZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0cy9wYXJhbS1zd2l0Y2hlci9wYXJhbS1zd2l0Y2hlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL3BhcmFtLXN3aXRjaGVyL3BhcmFtLXN3aXRjaGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUTFDLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxTQUF5QjtJQU5yRTs7UUFPVyxjQUFTLEdBQXdCLEVBQUUsQ0FBQztLQUM5QzsrR0FGWSxzQkFBc0I7bUdBQXRCLHNCQUFzQix1SENWbkMsNlRBUUE7OzRGREVhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcml6bVN3aXRjaGVySXRlbSB9IGZyb20gJ0Bwcml6bS11aS9jb21wb25lbnRzJztcbmltcG9ydCB7IFBhcmFtQmFzZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHJvYy1wYXJhbS1zd2l0Y2hlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXJhbS1zd2l0Y2hlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhcmFtLXN3aXRjaGVyLmNvbXBvbmVudC5sZXNzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQYXJhbVN3aXRjaGVyQ29tcG9uZW50IGV4dGVuZHMgUGFyYW1CYXNlPG51bWJlciwgbnVtYmVyPiB7XG4gIEBJbnB1dCgpIHN3aXRjaGVyczogUHJpem1Td2l0Y2hlckl0ZW1bXSA9IFtdO1xufVxuIiwiPGRpdiBjbGFzcz1cInBhcmFtLXN3aXRjaGVyXCI+XG4gIDxkaXYgKm5nSWY9XCJsYWJlbFwiIGNsYXNzPVwibGFiZWxcIj5cbiAgICA8c3BhbiAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJsYWJlbF9fdGV4dFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwicmVxdWlyZWRcIiBjbGFzcz1cImxhYmVsLS1yZXF1aXJlZFwiPio8L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxwcml6bS1zd2l0Y2hlciBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIFtzd2l0Y2hlcnNdPVwic3dpdGNoZXJzXCI+PC9wcml6bS1zd2l0Y2hlcj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ESwitcherValue } from '../types/param-switcher-date-time-range.types';
|
|
2
|
+
export const SwitcherItems = [
|
|
3
|
+
{
|
|
4
|
+
id: ESwitcherValue.MONTH,
|
|
5
|
+
title: 'мес',
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
id: ESwitcherValue.FIRST,
|
|
9
|
+
title: '1 кв',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
id: ESwitcherValue.SECOND,
|
|
13
|
+
title: '2 кв',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
id: ESwitcherValue.THIRD,
|
|
17
|
+
title: '3 кв',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
id: ESwitcherValue.FOURTH,
|
|
21
|
+
title: '4 кв',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: ESwitcherValue.YEAR,
|
|
25
|
+
title: 'год',
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0tc3dpdGNoZXItZGF0ZS10aW1lLXJhbmdlLmNvbnN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dHMvcGFyYW0tc3dpdGNoZXItZGF0ZS10aW1lLXJhbmdlL2NvbnN0cy9wYXJhbS1zd2l0Y2hlci1kYXRlLXRpbWUtcmFuZ2UuY29uc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUUvRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQXdCO0lBQ2hEO1FBQ0UsRUFBRSxFQUFFLGNBQWMsQ0FBQyxLQUFLO1FBQ3hCLEtBQUssRUFBRSxLQUFLO0tBQ2I7SUFDRDtRQUNFLEVBQUUsRUFBRSxjQUFjLENBQUMsS0FBSztRQUN4QixLQUFLLEVBQUUsTUFBTTtLQUNkO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsY0FBYyxDQUFDLE1BQU07UUFDekIsS0FBSyxFQUFFLE1BQU07S0FDZDtJQUNEO1FBQ0UsRUFBRSxFQUFFLGNBQWMsQ0FBQyxLQUFLO1FBQ3hCLEtBQUssRUFBRSxNQUFNO0tBQ2Q7SUFDRDtRQUNFLEVBQUUsRUFBRSxjQUFjLENBQUMsTUFBTTtRQUN6QixLQUFLLEVBQUUsTUFBTTtLQUNkO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsY0FBYyxDQUFDLElBQUk7UUFDdkIsS0FBSyxFQUFFLEtBQUs7S0FDYjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcml6bVN3aXRjaGVySXRlbSB9IGZyb20gJ0Bwcml6bS11aS9jb21wb25lbnRzJztcbmltcG9ydCB7IEVTd2l0Y2hlclZhbHVlIH0gZnJvbSAnLi4vdHlwZXMvcGFyYW0tc3dpdGNoZXItZGF0ZS10aW1lLXJhbmdlLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IFN3aXRjaGVySXRlbXM6IFByaXptU3dpdGNoZXJJdGVtW10gPSBbXG4gIHtcbiAgICBpZDogRVN3aXRjaGVyVmFsdWUuTU9OVEgsXG4gICAgdGl0bGU6ICfQvNC10YEnLFxuICB9LFxuICB7XG4gICAgaWQ6IEVTd2l0Y2hlclZhbHVlLkZJUlNULFxuICAgIHRpdGxlOiAnMSDQutCyJyxcbiAgfSxcbiAge1xuICAgIGlkOiBFU3dpdGNoZXJWYWx1ZS5TRUNPTkQsXG4gICAgdGl0bGU6ICcyINC60LInLFxuICB9LFxuICB7XG4gICAgaWQ6IEVTd2l0Y2hlclZhbHVlLlRISVJELFxuICAgIHRpdGxlOiAnMyDQutCyJyxcbiAgfSxcbiAge1xuICAgIGlkOiBFU3dpdGNoZXJWYWx1ZS5GT1VSVEgsXG4gICAgdGl0bGU6ICc0INC60LInLFxuICB9LFxuICB7XG4gICAgaWQ6IEVTd2l0Y2hlclZhbHVlLllFQVIsXG4gICAgdGl0bGU6ICfQs9C+0LQnLFxuICB9LFxuXTtcbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { ESwitcherValue } from './types/param-switcher-date-time-range.types';
|
|
2
|
+
export { ParamSwitcherDateTimeRangeComponent } from './param-switcher-date-time-range.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL3BhcmFtLXN3aXRjaGVyLWRhdGUtdGltZS1yYW5nZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNENBQTRDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBFU3dpdGNoZXJWYWx1ZSB9IGZyb20gJy4vdHlwZXMvcGFyYW0tc3dpdGNoZXItZGF0ZS10aW1lLXJhbmdlLnR5cGVzJztcbmV4cG9ydCB7IFBhcmFtU3dpdGNoZXJEYXRlVGltZVJhbmdlQ29tcG9uZW50IH0gZnJvbSAnLi9wYXJhbS1zd2l0Y2hlci1kYXRlLXRpbWUtcmFuZ2UuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { PrizmDateTimeRange, PrizmDay, PrizmDayRange, PrizmTime, PrizmTimeRange, } from '@prizm-ui/components';
|
|
4
|
+
import { SwitcherItems } from './consts/param-switcher-date-time-range.consts';
|
|
5
|
+
import { ESwitcherValue } from './types/param-switcher-date-time-range.types';
|
|
6
|
+
import { ParamDateTimeRangeComponent } from '../param-date-time-range/param-date-time-range.component';
|
|
7
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
8
|
+
import { EMonth } from '../../../consts/month.consts';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common";
|
|
11
|
+
import * as i2 from "@angular/forms";
|
|
12
|
+
import * as i3 from "@prizm-ui/components";
|
|
13
|
+
export class ParamSwitcherDateTimeRangeComponent extends ParamDateTimeRangeComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.switcherControl = new FormControl(null);
|
|
17
|
+
this.switchers = SwitcherItems;
|
|
18
|
+
}
|
|
19
|
+
onInit() {
|
|
20
|
+
super.onInit();
|
|
21
|
+
this._subscribeOnSwitcher();
|
|
22
|
+
}
|
|
23
|
+
afterViewInit() {
|
|
24
|
+
super.afterViewInit();
|
|
25
|
+
this.switcherControl.setValue(ESwitcherValue.MONTH);
|
|
26
|
+
}
|
|
27
|
+
_subscribeOnSwitcher() {
|
|
28
|
+
this.switcherControl.valueChanges
|
|
29
|
+
.pipe(takeUntilDestroyed(this.dr))
|
|
30
|
+
.subscribe((switcherValue) => {
|
|
31
|
+
const now = new Date();
|
|
32
|
+
const year = now.getFullYear();
|
|
33
|
+
const month = now.getMonth();
|
|
34
|
+
let controlValue = null;
|
|
35
|
+
if (switcherValue === ESwitcherValue.MONTH) {
|
|
36
|
+
controlValue = this._calcMonthRange(year, month);
|
|
37
|
+
}
|
|
38
|
+
else if (switcherValue === ESwitcherValue.FIRST) {
|
|
39
|
+
controlValue = this._calcFirstQuarterRange(year);
|
|
40
|
+
}
|
|
41
|
+
else if (switcherValue === ESwitcherValue.SECOND) {
|
|
42
|
+
controlValue = this._calcSecondQuarterRange(year);
|
|
43
|
+
}
|
|
44
|
+
else if (switcherValue === ESwitcherValue.THIRD) {
|
|
45
|
+
controlValue = this._calcThirdQuarterRange(year);
|
|
46
|
+
}
|
|
47
|
+
else if (switcherValue === ESwitcherValue.FOURTH) {
|
|
48
|
+
controlValue = this._calcFourthQuarterRange(year);
|
|
49
|
+
}
|
|
50
|
+
else if (switcherValue === ESwitcherValue.YEAR) {
|
|
51
|
+
controlValue = this._calcYearRange(year);
|
|
52
|
+
}
|
|
53
|
+
this.control.setValue(controlValue);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
_calcMonthRange(year, month) {
|
|
57
|
+
const from = new Date(year, month, 1);
|
|
58
|
+
const to = new Date(year, month);
|
|
59
|
+
to.setMonth(to.getMonth() + 1);
|
|
60
|
+
to.setMilliseconds(to.getMilliseconds() - 1);
|
|
61
|
+
return new PrizmDateTimeRange(new PrizmDayRange(PrizmDay.fromLocalNativeDate(from), PrizmDay.fromLocalNativeDate(to)), new PrizmTimeRange(PrizmTime.fromLocalNativeDate(from), PrizmTime.fromLocalNativeDate(to)));
|
|
62
|
+
}
|
|
63
|
+
_calcFirstQuarterRange(year) {
|
|
64
|
+
const from = new Date(year, EMonth.JAN, 1);
|
|
65
|
+
const to = new Date(year, EMonth.MAR);
|
|
66
|
+
to.setMonth(to.getMonth() + 1);
|
|
67
|
+
to.setMilliseconds(to.getMilliseconds() - 1);
|
|
68
|
+
return new PrizmDateTimeRange(new PrizmDayRange(PrizmDay.fromLocalNativeDate(from), PrizmDay.fromLocalNativeDate(to)), new PrizmTimeRange(PrizmTime.fromLocalNativeDate(from), PrizmTime.fromLocalNativeDate(to)));
|
|
69
|
+
}
|
|
70
|
+
_calcSecondQuarterRange(year) {
|
|
71
|
+
const from = new Date(year, EMonth.APR, 1);
|
|
72
|
+
const to = new Date(year, EMonth.JUN);
|
|
73
|
+
to.setMonth(to.getMonth() + 1);
|
|
74
|
+
to.setMilliseconds(to.getMilliseconds() - 1);
|
|
75
|
+
return new PrizmDateTimeRange(new PrizmDayRange(PrizmDay.fromLocalNativeDate(from), PrizmDay.fromLocalNativeDate(to)), new PrizmTimeRange(PrizmTime.fromLocalNativeDate(from), PrizmTime.fromLocalNativeDate(to)));
|
|
76
|
+
}
|
|
77
|
+
_calcThirdQuarterRange(year) {
|
|
78
|
+
const from = new Date(year, EMonth.JUL, 1);
|
|
79
|
+
const to = new Date(year, EMonth.SEP);
|
|
80
|
+
to.setMonth(to.getMonth() + 1);
|
|
81
|
+
to.setMilliseconds(to.getMilliseconds() - 1);
|
|
82
|
+
return new PrizmDateTimeRange(new PrizmDayRange(PrizmDay.fromLocalNativeDate(from), PrizmDay.fromLocalNativeDate(to)), new PrizmTimeRange(PrizmTime.fromLocalNativeDate(from), PrizmTime.fromLocalNativeDate(to)));
|
|
83
|
+
}
|
|
84
|
+
_calcFourthQuarterRange(year) {
|
|
85
|
+
const from = new Date(year, EMonth.OCT, 1);
|
|
86
|
+
const to = new Date(year, EMonth.DEC);
|
|
87
|
+
to.setMonth(to.getMonth() + 1);
|
|
88
|
+
to.setMilliseconds(to.getMilliseconds() - 1);
|
|
89
|
+
return new PrizmDateTimeRange(new PrizmDayRange(PrizmDay.fromLocalNativeDate(from), PrizmDay.fromLocalNativeDate(to)), new PrizmTimeRange(PrizmTime.fromLocalNativeDate(from), PrizmTime.fromLocalNativeDate(to)));
|
|
90
|
+
}
|
|
91
|
+
_calcYearRange(year) {
|
|
92
|
+
const from = new Date(year, EMonth.JAN, 1);
|
|
93
|
+
const to = new Date(year, EMonth.DEC);
|
|
94
|
+
to.setMonth(to.getMonth() + 1);
|
|
95
|
+
to.setMilliseconds(to.getMilliseconds() - 1);
|
|
96
|
+
return new PrizmDateTimeRange(new PrizmDayRange(PrizmDay.fromLocalNativeDate(from), PrizmDay.fromLocalNativeDate(to)), new PrizmTimeRange(PrizmTime.fromLocalNativeDate(from), PrizmTime.fromLocalNativeDate(to)));
|
|
97
|
+
}
|
|
98
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParamSwitcherDateTimeRangeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
99
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ParamSwitcherDateTimeRangeComponent, selector: "sproc-param-switcher-date-time-range", usesInheritance: true, ngImport: i0, template: "<div class=\"param-custom-template\">\n <div *ngIf=\"label\" class=\"label\">\n <span *ngIf=\"label\" class=\"label__text\">{{ label }}</span>\n <span *ngIf=\"required\" class=\"label--required\">*</span>\n </div>\n\n <prizm-switcher [switchers]=\"switchers\" [formControl]=\"switcherControl\"></prizm-switcher>\n\n <prizm-input-layout class=\"flex-shrink--zero\" size=\"s\" [forceClear]=\"forceClear\">\n <prizm-input-layout-date-time-range\n [placeholder]=\"placeholder()\"\n [timeMode]=\"timeMode\"\n [maxLength]=\"maxLength\"\n [min]=\"$any(min)\"\n [max]=\"$any(max)\"\n [formControl]=\"control\"\n ></prizm-input-layout-date-time-range>\n </prizm-input-layout>\n</div>\n", styles: [".input-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-text-12px,.body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.table-heading-12px{font-family:Inter,serif;font-size:12px;font-weight:500;line-height:16px}.table-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.table-text-12px-400{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:16px}.table-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.button-links-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.button-links-12px-600{font-family:Inter,serif;font-size:12px;font-weight:600;line-height:16px}.button-links-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.input-area{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:20px}.static-title-h3{font-family:Inter,serif;font-size:16px;font-weight:600;line-height:20px}.static-title-h4{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.dynamic-title-h4{font-family:Inter,serif;font-size:14px;font-weight:800;line-height:20px}.main-body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:20px}.main-body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.main-subscription{font-family:Inter,serif;font-size:10px;font-weight:400;line-height:12px}.input-helper-9px{font-family:Inter,serif;font-size:9px;font-weight:300;line-height:12px}.typography-content-text{font-family:Inter,serif;font-size:12px;font-weight:350;line-height:16px}.main-subtitle,.card-content-text{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.filter-header-text{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.btn-14px{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.search-11px{font-family:Inter,serif;font-size:11px;font-weight:300;line-height:12px}:root{--input-text-12px: normal 300 12px / 16px \"Inter\";--input-text-14px: normal 300 14px / 16px \"Inter\"}:host .param-custom-template{width:100%;display:flex;flex-direction:column;padding:0 2px;gap:8px}:host .param-custom-template .label{display:flex;gap:4px;font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}:host .param-custom-template .label__text{color:var(--main-black)}:host .param-custom-template .label--required{color:var(--brand-danger)}:host .param-custom-template ::ng-deep prizm-switcher .container{display:flex;flex:1}:host .param-custom-template ::ng-deep prizm-switcher .container prizm-switcher-item{display:flex;flex:1}:host .param-custom-template ::ng-deep prizm-switcher .container prizm-switcher-item button{height:24px!important;min-height:24px!important;display:flex;flex:1}:host .param-custom-template ::ng-deep prizm-switcher .container prizm-switcher-item button prizm-wrapper{display:flex;align-items:center;justify-content:center;padding:unset!important}:host .param-custom-template ::ng-deep .prizm-input-form:not(.prizm-input-form-focused){background:inherit;border:none;border-bottom:1px solid #d7d8df;padding:0 3.5px 0 8px}:host .param-custom-template ::ng-deep .prizm-input-form .prizm-input-form-focused{background:inherit;border:1px!important;border-bottom:1px solid #d7d8df}:host .param-custom-template ::ng-deep .prizm-input-form-inner{min-height:32px;height:32px}:host .param-custom-template ::ng-deep input{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.PrizmInputLayoutComponent, selector: "prizm-input-layout", inputs: ["label", "size", "status", "outer", "clearButton", "hideClearButtonHint", "border", "position", "forceClear"], outputs: ["clear"] }, { kind: "component", type: i3.PrizmSwitcherComponent, selector: "prizm-switcher", inputs: ["size"] }, { kind: "component", type: i3.PrizmInputLayoutDateTimeRangeComponent, selector: "prizm-input-layout-date-time-range", inputs: ["disabledItemHandler", "markerHandler", "defaultViewedMonth", "items", "placeholder", "min", "max", "timeStrict", "minLength", "maxLength", "timeMode", "timeItems", "extraButtonInjector"] }] }); }
|
|
100
|
+
}
|
|
101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParamSwitcherDateTimeRangeComponent, decorators: [{
|
|
102
|
+
type: Component,
|
|
103
|
+
args: [{ selector: 'sproc-param-switcher-date-time-range', template: "<div class=\"param-custom-template\">\n <div *ngIf=\"label\" class=\"label\">\n <span *ngIf=\"label\" class=\"label__text\">{{ label }}</span>\n <span *ngIf=\"required\" class=\"label--required\">*</span>\n </div>\n\n <prizm-switcher [switchers]=\"switchers\" [formControl]=\"switcherControl\"></prizm-switcher>\n\n <prizm-input-layout class=\"flex-shrink--zero\" size=\"s\" [forceClear]=\"forceClear\">\n <prizm-input-layout-date-time-range\n [placeholder]=\"placeholder()\"\n [timeMode]=\"timeMode\"\n [maxLength]=\"maxLength\"\n [min]=\"$any(min)\"\n [max]=\"$any(max)\"\n [formControl]=\"control\"\n ></prizm-input-layout-date-time-range>\n </prizm-input-layout>\n</div>\n", styles: [".input-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-text-12px,.body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.table-heading-12px{font-family:Inter,serif;font-size:12px;font-weight:500;line-height:16px}.table-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.table-text-12px-400{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:16px}.table-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.button-links-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.button-links-12px-600{font-family:Inter,serif;font-size:12px;font-weight:600;line-height:16px}.button-links-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.input-area{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:20px}.static-title-h3{font-family:Inter,serif;font-size:16px;font-weight:600;line-height:20px}.static-title-h4{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.dynamic-title-h4{font-family:Inter,serif;font-size:14px;font-weight:800;line-height:20px}.main-body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:20px}.main-body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.main-subscription{font-family:Inter,serif;font-size:10px;font-weight:400;line-height:12px}.input-helper-9px{font-family:Inter,serif;font-size:9px;font-weight:300;line-height:12px}.typography-content-text{font-family:Inter,serif;font-size:12px;font-weight:350;line-height:16px}.main-subtitle,.card-content-text{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.filter-header-text{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.btn-14px{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.search-11px{font-family:Inter,serif;font-size:11px;font-weight:300;line-height:12px}:root{--input-text-12px: normal 300 12px / 16px \"Inter\";--input-text-14px: normal 300 14px / 16px \"Inter\"}:host .param-custom-template{width:100%;display:flex;flex-direction:column;padding:0 2px;gap:8px}:host .param-custom-template .label{display:flex;gap:4px;font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}:host .param-custom-template .label__text{color:var(--main-black)}:host .param-custom-template .label--required{color:var(--brand-danger)}:host .param-custom-template ::ng-deep prizm-switcher .container{display:flex;flex:1}:host .param-custom-template ::ng-deep prizm-switcher .container prizm-switcher-item{display:flex;flex:1}:host .param-custom-template ::ng-deep prizm-switcher .container prizm-switcher-item button{height:24px!important;min-height:24px!important;display:flex;flex:1}:host .param-custom-template ::ng-deep prizm-switcher .container prizm-switcher-item button prizm-wrapper{display:flex;align-items:center;justify-content:center;padding:unset!important}:host .param-custom-template ::ng-deep .prizm-input-form:not(.prizm-input-form-focused){background:inherit;border:none;border-bottom:1px solid #d7d8df;padding:0 3.5px 0 8px}:host .param-custom-template ::ng-deep .prizm-input-form .prizm-input-form-focused{background:inherit;border:1px!important;border-bottom:1px solid #d7d8df}:host .param-custom-template ::ng-deep .prizm-input-form-inner{min-height:32px;height:32px}:host .param-custom-template ::ng-deep input{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}\n"] }]
|
|
104
|
+
}] });
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0tc3dpdGNoZXItZGF0ZS10aW1lLXJhbmdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dHMvcGFyYW0tc3dpdGNoZXItZGF0ZS10aW1lLXJhbmdlL3BhcmFtLXN3aXRjaGVyLWRhdGUtdGltZS1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL3BhcmFtLXN3aXRjaGVyLWRhdGUtdGltZS1yYW5nZS9wYXJhbS1zd2l0Y2hlci1kYXRlLXRpbWUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixRQUFRLEVBQ1IsYUFBYSxFQUNiLFNBQVMsRUFDVCxjQUFjLEdBQ2YsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7QUFPdEQsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLDJCQUEyQjtJQUxwRjs7UUFNWSxvQkFBZSxHQUFHLElBQUksV0FBVyxDQUF3QixJQUFJLENBQUMsQ0FB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SUFDSixDQUFDOytHQWhIVSxtQ0FBbUM7bUdBQW5DLG1DQUFtQyxtR0NwQmhELHF0QkFtQkE7OzRGRENhLG1DQUFtQztrQkFML0MsU0FBUzsrQkFDRSxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgUHJpem1EYXRlVGltZVJhbmdlLFxuICBQcml6bURheSxcbiAgUHJpem1EYXlSYW5nZSxcbiAgUHJpem1UaW1lLFxuICBQcml6bVRpbWVSYW5nZSxcbn0gZnJvbSAnQHByaXptLXVpL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgU3dpdGNoZXJJdGVtcyB9IGZyb20gJy4vY29uc3RzL3BhcmFtLXN3aXRjaGVyLWRhdGUtdGltZS1yYW5nZS5jb25zdHMnO1xuaW1wb3J0IHsgRVN3aXRjaGVyVmFsdWUgfSBmcm9tICcuL3R5cGVzL3BhcmFtLXN3aXRjaGVyLWRhdGUtdGltZS1yYW5nZS50eXBlcyc7XG5pbXBvcnQgeyBQYXJhbURhdGVUaW1lUmFuZ2VDb21wb25lbnQgfSBmcm9tICcuLi9wYXJhbS1kYXRlLXRpbWUtcmFuZ2UvcGFyYW0tZGF0ZS10aW1lLXJhbmdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBFTW9udGggfSBmcm9tICcuLi8uLi8uLi9jb25zdHMvbW9udGguY29uc3RzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3Byb2MtcGFyYW0tc3dpdGNoZXItZGF0ZS10aW1lLXJhbmdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhcmFtLXN3aXRjaGVyLWRhdGUtdGltZS1yYW5nZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhcmFtLXN3aXRjaGVyLWRhdGUtdGltZS1yYW5nZS5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQYXJhbVN3aXRjaGVyRGF0ZVRpbWVSYW5nZUNvbXBvbmVudCBleHRlbmRzIFBhcmFtRGF0ZVRpbWVSYW5nZUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzd2l0Y2hlckNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8RVN3aXRjaGVyVmFsdWUgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHN3aXRjaGVycyA9IFN3aXRjaGVySXRlbXM7XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5vbkluaXQoKTtcbiAgICB0aGlzLl9zdWJzY3JpYmVPblN3aXRjaGVyKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgYWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5hZnRlclZpZXdJbml0KCk7XG4gICAgdGhpcy5zd2l0Y2hlckNvbnRyb2wuc2V0VmFsdWUoRVN3aXRjaGVyVmFsdWUuTU9OVEgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlT25Td2l0Y2hlcigpOiB2b2lkIHtcbiAgICB0aGlzLnN3aXRjaGVyQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRyKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN3aXRjaGVyVmFsdWUpID0+IHtcbiAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgeWVhciA9IG5vdy5nZXRGdWxsWWVhcigpO1xuICAgICAgICBjb25zdCBtb250aDogRU1vbnRoID0gbm93LmdldE1vbnRoKCk7XG5cbiAgICAgICAgbGV0IGNvbnRyb2xWYWx1ZTogUHJpem1EYXRlVGltZVJhbmdlIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgaWYgKHN3aXRjaGVyVmFsdWUgPT09IEVTd2l0Y2hlclZhbHVlLk1PTlRIKSB7XG4gICAgICAgICAgY29udHJvbFZhbHVlID0gdGhpcy5fY2FsY01vbnRoUmFuZ2UoeWVhciwgbW9udGgpO1xuICAgICAgICB9IGVsc2UgaWYgKHN3aXRjaGVyVmFsdWUgPT09IEVTd2l0Y2hlclZhbHVlLkZJUlNUKSB7XG4gICAgICAgICAgY29udHJvbFZhbHVlID0gdGhpcy5fY2FsY0ZpcnN0UXVhcnRlclJhbmdlKHllYXIpO1xuICAgICAgICB9IGVsc2UgaWYgKHN3aXRjaGVyVmFsdWUgPT09IEVTd2l0Y2hlclZhbHVlLlNFQ09ORCkge1xuICAgICAgICAgIGNvbnRyb2xWYWx1ZSA9IHRoaXMuX2NhbGNTZWNvbmRRdWFydGVyUmFuZ2UoeWVhcik7XG4gICAgICAgIH0gZWxzZSBpZiAoc3dpdGNoZXJWYWx1ZSA9PT0gRVN3aXRjaGVyVmFsdWUuVEhJUkQpIHtcbiAgICAgICAgICBjb250cm9sVmFsdWUgPSB0aGlzLl9jYWxjVGhpcmRRdWFydGVyUmFuZ2UoeWVhcik7XG4gICAgICAgIH0gZWxzZSBpZiAoc3dpdGNoZXJWYWx1ZSA9PT0gRVN3aXRjaGVyVmFsdWUuRk9VUlRIKSB7XG4gICAgICAgICAgY29udHJvbFZhbHVlID0gdGhpcy5fY2FsY0ZvdXJ0aFF1YXJ0ZXJSYW5nZSh5ZWFyKTtcbiAgICAgICAgfSBlbHNlIGlmIChzd2l0Y2hlclZhbHVlID09PSBFU3dpdGNoZXJWYWx1ZS5ZRUFSKSB7XG4gICAgICAgICAgY29udHJvbFZhbHVlID0gdGhpcy5fY2FsY1llYXJSYW5nZSh5ZWFyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShjb250cm9sVmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjTW9udGhSYW5nZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBFTW9udGgpOiBQcml6bURhdGVUaW1lUmFuZ2Uge1xuICAgIGNvbnN0IGZyb20gPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XG4gICAgY29uc3QgdG8gPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCk7XG4gICAgdG8uc2V0TW9udGgodG8uZ2V0TW9udGgoKSArIDEpO1xuICAgIHRvLnNldE1pbGxpc2Vjb25kcyh0by5nZXRNaWxsaXNlY29uZHMoKSAtIDEpO1xuXG4gICAgcmV0dXJuIG5ldyBQcml6bURhdGVUaW1lUmFuZ2UoXG4gICAgICBuZXcgUHJpem1EYXlSYW5nZShQcml6bURheS5mcm9tTG9jYWxOYXRpdmVEYXRlKGZyb20pLCBQcml6bURheS5mcm9tTG9jYWxOYXRpdmVEYXRlKHRvKSksXG4gICAgICBuZXcgUHJpem1UaW1lUmFuZ2UoUHJpem1UaW1lLmZyb21Mb2NhbE5hdGl2ZURhdGUoZnJvbSksIFByaXptVGltZS5mcm9tTG9jYWxOYXRpdmVEYXRlKHRvKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY0ZpcnN0UXVhcnRlclJhbmdlKHllYXI6IG51bWJlcik6IFByaXptRGF0ZVRpbWVSYW5nZSB7XG4gICAgY29uc3QgZnJvbSA9IG5ldyBEYXRlKHllYXIsIEVNb250aC5KQU4sIDEpO1xuICAgIGNvbnN0IHRvID0gbmV3IERhdGUoeWVhciwgRU1vbnRoLk1BUik7XG4gICAgdG8uc2V0TW9udGgodG8uZ2V0TW9udGgoKSArIDEpO1xuICAgIHRvLnNldE1pbGxpc2Vjb25kcyh0by5nZXRNaWxsaXNlY29uZHMoKSAtIDEpO1xuXG4gICAgcmV0dXJuIG5ldyBQcml6bURhdGVUaW1lUmFuZ2UoXG4gICAgICBuZXcgUHJpem1EYXlSYW5nZShQcml6bURheS5mcm9tTG9jYWxOYXRpdmVEYXRlKGZyb20pLCBQcml6bURheS5mcm9tTG9jYWxOYXRpdmVEYXRlKHRvKSksXG4gICAgICBuZXcgUHJpem1UaW1lUmFuZ2UoUHJpem1UaW1lLmZyb21Mb2NhbE5hdGl2ZURhdGUoZnJvbSksIFByaXptVGltZS5mcm9tTG9jYWxOYXRpdmVEYXRlKHRvKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY1NlY29uZFF1YXJ0ZXJSYW5nZSh5ZWFyOiBudW1iZXIpOiBQcml6bURhdGVUaW1lUmFuZ2Uge1xuICAgIGNvbnN0IGZyb20gPSBuZXcgRGF0ZSh5ZWFyLCBFTW9udGguQVBSLCAxKTtcbiAgICBjb25zdCB0byA9IG5ldyBEYXRlKHllYXIsIEVNb250aC5KVU4pO1xuICAgIHRvLnNldE1vbnRoKHRvLmdldE1vbnRoKCkgKyAxKTtcbiAgICB0by5zZXRNaWxsaXNlY29uZHModG8uZ2V0TWlsbGlzZWNvbmRzKCkgLSAxKTtcblxuICAgIHJldHVybiBuZXcgUHJpem1EYXRlVGltZVJhbmdlKFxuICAgICAgbmV3IFByaXptRGF5UmFuZ2UoUHJpem1EYXkuZnJvbUxvY2FsTmF0aXZlRGF0ZShmcm9tKSwgUHJpem1EYXkuZnJvbUxvY2FsTmF0aXZlRGF0ZSh0bykpLFxuICAgICAgbmV3IFByaXptVGltZVJhbmdlKFByaXptVGltZS5mcm9tTG9jYWxOYXRpdmVEYXRlKGZyb20pLCBQcml6bVRpbWUuZnJvbUxvY2FsTmF0aXZlRGF0ZSh0bykpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGNUaGlyZFF1YXJ0ZXJSYW5nZSh5ZWFyOiBudW1iZXIpOiBQcml6bURhdGVUaW1lUmFuZ2Uge1xuICAgIGNvbnN0IGZyb20gPSBuZXcgRGF0ZSh5ZWFyLCBFTW9udGguSlVMLCAxKTtcbiAgICBjb25zdCB0byA9IG5ldyBEYXRlKHllYXIsIEVNb250aC5TRVApO1xuICAgIHRvLnNldE1vbnRoKHRvLmdldE1vbnRoKCkgKyAxKTtcbiAgICB0by5zZXRNaWxsaXNlY29uZHModG8uZ2V0TWlsbGlzZWNvbmRzKCkgLSAxKTtcblxuICAgIHJldHVybiBuZXcgUHJpem1EYXRlVGltZVJhbmdlKFxuICAgICAgbmV3IFByaXptRGF5UmFuZ2UoUHJpem1EYXkuZnJvbUxvY2FsTmF0aXZlRGF0ZShmcm9tKSwgUHJpem1EYXkuZnJvbUxvY2FsTmF0aXZlRGF0ZSh0bykpLFxuICAgICAgbmV3IFByaXptVGltZVJhbmdlKFByaXptVGltZS5mcm9tTG9jYWxOYXRpdmVEYXRlKGZyb20pLCBQcml6bVRpbWUuZnJvbUxvY2FsTmF0aXZlRGF0ZSh0bykpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGNGb3VydGhRdWFydGVyUmFuZ2UoeWVhcjogbnVtYmVyKTogUHJpem1EYXRlVGltZVJhbmdlIHtcbiAgICBjb25zdCBmcm9tID0gbmV3IERhdGUoeWVhciwgRU1vbnRoLk9DVCwgMSk7XG4gICAgY29uc3QgdG8gPSBuZXcgRGF0ZSh5ZWFyLCBFTW9udGguREVDKTtcbiAgICB0by5zZXRNb250aCh0by5nZXRNb250aCgpICsgMSk7XG4gICAgdG8uc2V0TWlsbGlzZWNvbmRzKHRvLmdldE1pbGxpc2Vjb25kcygpIC0gMSk7XG5cbiAgICByZXR1cm4gbmV3IFByaXptRGF0ZVRpbWVSYW5nZShcbiAgICAgIG5ldyBQcml6bURheVJhbmdlKFByaXptRGF5LmZyb21Mb2NhbE5hdGl2ZURhdGUoZnJvbSksIFByaXptRGF5LmZyb21Mb2NhbE5hdGl2ZURhdGUodG8pKSxcbiAgICAgIG5ldyBQcml6bVRpbWVSYW5nZShQcml6bVRpbWUuZnJvbUxvY2FsTmF0aXZlRGF0ZShmcm9tKSwgUHJpem1UaW1lLmZyb21Mb2NhbE5hdGl2ZURhdGUodG8pKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjWWVhclJhbmdlKHllYXI6IG51bWJlcik6IFByaXptRGF0ZVRpbWVSYW5nZSB7XG4gICAgY29uc3QgZnJvbSA9IG5ldyBEYXRlKHllYXIsIEVNb250aC5KQU4sIDEpO1xuICAgIGNvbnN0IHRvID0gbmV3IERhdGUoeWVhciwgRU1vbnRoLkRFQyk7XG4gICAgdG8uc2V0TW9udGgodG8uZ2V0TW9udGgoKSArIDEpO1xuICAgIHRvLnNldE1pbGxpc2Vjb25kcyh0by5nZXRNaWxsaXNlY29uZHMoKSAtIDEpO1xuXG4gICAgcmV0dXJuIG5ldyBQcml6bURhdGVUaW1lUmFuZ2UoXG4gICAgICBuZXcgUHJpem1EYXlSYW5nZShQcml6bURheS5mcm9tTG9jYWxOYXRpdmVEYXRlKGZyb20pLCBQcml6bURheS5mcm9tTG9jYWxOYXRpdmVEYXRlKHRvKSksXG4gICAgICBuZXcgUHJpem1UaW1lUmFuZ2UoUHJpem1UaW1lLmZyb21Mb2NhbE5hdGl2ZURhdGUoZnJvbSksIFByaXptVGltZS5mcm9tTG9jYWxOYXRpdmVEYXRlKHRvKSlcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFyYW0tY3VzdG9tLXRlbXBsYXRlXCI+XG4gIDxkaXYgKm5nSWY9XCJsYWJlbFwiIGNsYXNzPVwibGFiZWxcIj5cbiAgICA8c3BhbiAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJsYWJlbF9fdGV4dFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwicmVxdWlyZWRcIiBjbGFzcz1cImxhYmVsLS1yZXF1aXJlZFwiPio8L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxwcml6bS1zd2l0Y2hlciBbc3dpdGNoZXJzXT1cInN3aXRjaGVyc1wiIFtmb3JtQ29udHJvbF09XCJzd2l0Y2hlckNvbnRyb2xcIj48L3ByaXptLXN3aXRjaGVyPlxuXG4gIDxwcml6bS1pbnB1dC1sYXlvdXQgY2xhc3M9XCJmbGV4LXNocmluay0temVyb1wiIHNpemU9XCJzXCIgW2ZvcmNlQ2xlYXJdPVwiZm9yY2VDbGVhclwiPlxuICAgIDxwcml6bS1pbnB1dC1sYXlvdXQtZGF0ZS10aW1lLXJhbmdlXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXG4gICAgICBbdGltZU1vZGVdPVwidGltZU1vZGVcIlxuICAgICAgW21heExlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgICAgW21pbl09XCIkYW55KG1pbilcIlxuICAgICAgW21heF09XCIkYW55KG1heClcIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgID48L3ByaXptLWlucHV0LWxheW91dC1kYXRlLXRpbWUtcmFuZ2U+XG4gIDwvcHJpem0taW5wdXQtbGF5b3V0PlxuPC9kaXY+XG4iXX0=
|