ngx-register-base 1.3.1 → 1.3.2
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 +225 -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 +7479 -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,23 @@
|
|
|
1
|
+
import { Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { InputsService } from '../inputs.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./filters-transmit.service";
|
|
5
|
+
export class FiltersService extends InputsService {
|
|
6
|
+
constructor(injector, _transmitter) {
|
|
7
|
+
super(injector);
|
|
8
|
+
this._transmitter = _transmitter;
|
|
9
|
+
}
|
|
10
|
+
init(group) {
|
|
11
|
+
super.init(group);
|
|
12
|
+
this._transmitter?.setForm(this.inputs);
|
|
13
|
+
this._transmitter?.setSearchInput(this.searchInput);
|
|
14
|
+
}
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FiltersService, deps: [{ token: i0.Injector }, { token: i1.FiltersTransmitService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
16
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FiltersService }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FiltersService, decorators: [{
|
|
19
|
+
type: Injectable
|
|
20
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.FiltersTransmitService, decorators: [{
|
|
21
|
+
type: Optional
|
|
22
|
+
}] }] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9zZXJ2aWNlcy9maWx0ZXIvZmlsdGVycy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBS2xELE1BQU0sT0FBTyxjQUF5QixTQUFRLGFBQXVCO0lBQ25FLFlBQ0UsUUFBa0IsRUFDVyxZQUFvQztRQUVqRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFGYSxpQkFBWSxHQUFaLFlBQVksQ0FBd0I7SUFHbkUsQ0FBQztJQUVlLElBQUksQ0FBQyxLQUFpQztRQUNwRCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxCLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQzsrR0FiVSxjQUFjO21IQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBRDFCLFVBQVU7OzBCQUlOLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0c1NlcnZpY2UgfSBmcm9tICcuLi9pbnB1dHMuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJzVHJhbnNtaXRTZXJ2aWNlIH0gZnJvbSAnLi9maWx0ZXJzLXRyYW5zbWl0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUdyb3VwV3JhcHBlciB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybS1ncm91cC13cmFwcGVyL2Zvcm0tZ3JvdXAtd3JhcHBlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGaWx0ZXJzU2VydmljZTxGb3JtVHlwZT4gZXh0ZW5kcyBJbnB1dHNTZXJ2aWNlPEZvcm1UeXBlPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF90cmFuc21pdHRlcjogRmlsdGVyc1RyYW5zbWl0U2VydmljZVxuICApIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW5pdChncm91cDogRm9ybUdyb3VwV3JhcHBlcjxGb3JtVHlwZT4pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0KGdyb3VwKTtcblxuICAgIHRoaXMuX3RyYW5zbWl0dGVyPy5zZXRGb3JtKHRoaXMuaW5wdXRzKTtcbiAgICB0aGlzLl90cmFuc21pdHRlcj8uc2V0U2VhcmNoSW5wdXQodGhpcy5zZWFyY2hJbnB1dCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './dialog';
|
|
2
|
+
export * from './date-time.service';
|
|
3
|
+
export { FiltersService } from './filter/filters.service';
|
|
4
|
+
export { FiltersStateService } from './filter/filters-state.service';
|
|
5
|
+
export { FiltersTransmitService } from './filter/filters-transmit.service';
|
|
6
|
+
export { ResizeWindowObserverService } from './resize-window-observer.service';
|
|
7
|
+
export { SelectedObjectsStateService } from './selected-objects-state.service';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaWFsb2cnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXRpbWUuc2VydmljZSc7XG5leHBvcnQgeyBGaWx0ZXJzU2VydmljZSB9IGZyb20gJy4vZmlsdGVyL2ZpbHRlcnMuc2VydmljZSc7XG5leHBvcnQgeyBGaWx0ZXJzU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9maWx0ZXIvZmlsdGVycy1zdGF0ZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEZpbHRlcnNUcmFuc21pdFNlcnZpY2UgfSBmcm9tICcuL2ZpbHRlci9maWx0ZXJzLXRyYW5zbWl0LnNlcnZpY2UnO1xuZXhwb3J0IHsgUmVzaXplV2luZG93T2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXNpemUtd2luZG93LW9ic2VydmVyLnNlcnZpY2UnO1xuZXhwb3J0IHsgU2VsZWN0ZWRPYmplY3RzU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9zZWxlY3RlZC1vYmplY3RzLXN0YXRlLnNlcnZpY2UnO1xuIl19
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { DestroyRef, inject, Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
3
|
+
import { EInputsAction, EInputsState } from '../types';
|
|
4
|
+
import { Router } from '@angular/router';
|
|
5
|
+
import { getLastSegmentOfPathName } from '../utils';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export const DEFAULT_LIMIT = 30;
|
|
8
|
+
export class InputsStateService {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.unsubscribe$ = new Subject();
|
|
11
|
+
this._page$ = new BehaviorSubject(1);
|
|
12
|
+
this._limit$ = new BehaviorSubject(null);
|
|
13
|
+
this._offset$ = new BehaviorSubject(0);
|
|
14
|
+
this._count$ = new BehaviorSubject(0);
|
|
15
|
+
this._sorter$ = new BehaviorSubject([]);
|
|
16
|
+
this._name$ = new BehaviorSubject('');
|
|
17
|
+
this._state$ = new BehaviorSubject({
|
|
18
|
+
state: EInputsState.HIDDEN,
|
|
19
|
+
action: EInputsAction.OPEN,
|
|
20
|
+
});
|
|
21
|
+
// TODO: заменить на нормальный тип
|
|
22
|
+
this._gqlValues$ = new BehaviorSubject([]);
|
|
23
|
+
this._pinned$ = new BehaviorSubject(false);
|
|
24
|
+
this.page$ = this._page$.asObservable();
|
|
25
|
+
this.limit$ = this._limit$.asObservable();
|
|
26
|
+
this.offset$ = this._offset$.asObservable();
|
|
27
|
+
this.count$ = this._count$.asObservable();
|
|
28
|
+
this.sorter$ = this._sorter$.asObservable();
|
|
29
|
+
this.name$ = this._name$.asObservable();
|
|
30
|
+
this.state$ = this._state$.asObservable();
|
|
31
|
+
this.gqlValues$ = this._gqlValues$.asObservable();
|
|
32
|
+
this.pinned$ = this._pinned$.asObservable();
|
|
33
|
+
this.destroyRef = inject(DestroyRef);
|
|
34
|
+
this.router = inject(Router);
|
|
35
|
+
this.modulePath = getLastSegmentOfPathName(this.router.url);
|
|
36
|
+
this.pinStorageKey = `@pin/${this.modulePath}`;
|
|
37
|
+
this.pinnedInputsStorageKey = `@pinned-inputs/${this.modulePath}`;
|
|
38
|
+
}
|
|
39
|
+
toggle() {
|
|
40
|
+
const isOpen = this.state.state !== EInputsState.HIDDEN;
|
|
41
|
+
// если фильтр был открыт, значит его закрывают - открепляем
|
|
42
|
+
if (isOpen) {
|
|
43
|
+
this.setPin(false);
|
|
44
|
+
}
|
|
45
|
+
this.setState({
|
|
46
|
+
state: isOpen ? EInputsState.HIDDEN : EInputsState.FILTER_LIST,
|
|
47
|
+
action: EInputsAction.OPEN,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
togglePin() {
|
|
51
|
+
this.setPin(!this.isPin);
|
|
52
|
+
}
|
|
53
|
+
ngOnDestroy() {
|
|
54
|
+
this._page$.complete();
|
|
55
|
+
this._limit$.complete();
|
|
56
|
+
this._name$.complete();
|
|
57
|
+
this._offset$.complete();
|
|
58
|
+
this._count$.complete();
|
|
59
|
+
this._state$.complete();
|
|
60
|
+
this._sorter$.complete();
|
|
61
|
+
this._gqlValues$.complete();
|
|
62
|
+
this._pinned$.complete();
|
|
63
|
+
this.unsubscribe$.next();
|
|
64
|
+
this.unsubscribe$.complete();
|
|
65
|
+
this.onDestroy();
|
|
66
|
+
}
|
|
67
|
+
onDestroy() { }
|
|
68
|
+
setPage(page) {
|
|
69
|
+
this._page$.next(page);
|
|
70
|
+
}
|
|
71
|
+
setLimit(limit) {
|
|
72
|
+
this._limit$.next(limit);
|
|
73
|
+
}
|
|
74
|
+
setOffset(offset) {
|
|
75
|
+
this._offset$.next(offset);
|
|
76
|
+
}
|
|
77
|
+
setSorter(sort) {
|
|
78
|
+
this._sorter$.next(sort);
|
|
79
|
+
}
|
|
80
|
+
setName(name) {
|
|
81
|
+
this._name$.next(name);
|
|
82
|
+
}
|
|
83
|
+
setCount(count) {
|
|
84
|
+
this._count$.next(count);
|
|
85
|
+
}
|
|
86
|
+
setState(state) {
|
|
87
|
+
if (!(this.isPin && state.state === EInputsState.HIDDEN)) {
|
|
88
|
+
this._state$.next(state);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
setGqlValues(values) {
|
|
92
|
+
this._gqlValues$.next(values);
|
|
93
|
+
}
|
|
94
|
+
setPin(isPin) {
|
|
95
|
+
this._pinned$.next(isPin);
|
|
96
|
+
}
|
|
97
|
+
get page() {
|
|
98
|
+
return this._page$.getValue();
|
|
99
|
+
}
|
|
100
|
+
get limit() {
|
|
101
|
+
return this._limit$.getValue() ?? DEFAULT_LIMIT;
|
|
102
|
+
}
|
|
103
|
+
get offset() {
|
|
104
|
+
return this._offset$.getValue();
|
|
105
|
+
}
|
|
106
|
+
get state() {
|
|
107
|
+
return this._state$.getValue();
|
|
108
|
+
}
|
|
109
|
+
get count() {
|
|
110
|
+
return this._count$.getValue();
|
|
111
|
+
}
|
|
112
|
+
get sorter() {
|
|
113
|
+
return this._sorter$.getValue();
|
|
114
|
+
}
|
|
115
|
+
get name() {
|
|
116
|
+
return this._name$.getValue();
|
|
117
|
+
}
|
|
118
|
+
get gqlValues() {
|
|
119
|
+
return this._gqlValues$.getValue();
|
|
120
|
+
}
|
|
121
|
+
get isPin() {
|
|
122
|
+
return this._pinned$.getValue();
|
|
123
|
+
}
|
|
124
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
125
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsStateService }); }
|
|
126
|
+
}
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsStateService, decorators: [{
|
|
128
|
+
type: Injectable
|
|
129
|
+
}] });
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL3NlcnZpY2VzL2lucHV0cy1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBMkIsTUFBTSxVQUFVLENBQUM7QUFDaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHcEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUdoQyxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBRXFCLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVuQyxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUNuRCxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBK0IsRUFBRSxDQUFDLENBQUM7UUFDakUsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBZTtZQUM3RCxLQUFLLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDMUIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxJQUFJO1NBQzNCLENBQUMsQ0FBQztRQUNILG1DQUFtQztRQUNoQixnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVsRCxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNuQyxXQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyQyxZQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QyxXQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyQyxZQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNuQyxXQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyQyxlQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QyxZQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwQyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEIsZUFBVSxHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFMUQsa0JBQWEsR0FBRyxRQUFRLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxQywyQkFBc0IsR0FBRyxrQkFBa0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0tBZ0g5RTtJQTlHUSxNQUFNO1FBQ1gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUV4RCw0REFBNEQ7UUFDNUQsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUM7WUFDWixLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVztZQUM5RCxNQUFNLEVBQUUsYUFBYSxDQUFDLElBQUk7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUU3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVTLFNBQVMsS0FBVSxDQUFDO0lBRXZCLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQWM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLFNBQVMsQ0FBQyxJQUFrQztRQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sT0FBTyxDQUFDLElBQVk7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBbUI7UUFDakMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRU0sWUFBWSxDQUFDLE1BQWlCO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBYztRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksYUFBYSxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7K0dBakpVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRUlucHV0c0FjdGlvbiwgRUlucHV0c1N0YXRlLCBHcWxGaWVsZHMsIElJbnB1dHNTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBnZXRMYXN0U2VnbWVudE9mUGF0aE5hbWUgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBSZWdpc3RlclRhYmxlQ2VsbFNvcnRlciB9IGZyb20gJy4uL2NvbXBvbmVudHMvcmVnaXN0ZXItdGFibGUvbW9kZWwvc2NoZW1hJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTElNSVQgPSAzMDtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElucHV0c1N0YXRlU2VydmljZTxUID0gYW55PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfcGFnZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfbGltaXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9vZmZzZXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvdW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9zb3J0ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWdpc3RlclRhYmxlQ2VsbFNvcnRlcjxUPltdPihbXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfbmFtZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3N0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUlucHV0c1N0YXRlPih7XG4gICAgc3RhdGU6IEVJbnB1dHNTdGF0ZS5ISURERU4sXG4gICAgYWN0aW9uOiBFSW5wdXRzQWN0aW9uLk9QRU4sXG4gIH0pO1xuICAvLyBUT0RPOiDQt9Cw0LzQtdC90LjRgtGMINC90LAg0L3QvtGA0LzQsNC70YzQvdGL0Lkg0YLQuNC/XG4gIHByb3RlY3RlZCByZWFkb25seSBfZ3FsVmFsdWVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8R3FsRmllbGRzPihbXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfcGlubmVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBwYWdlJCA9IHRoaXMuX3BhZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICBwdWJsaWMgcmVhZG9ubHkgbGltaXQkID0gdGhpcy5fbGltaXQkLmFzT2JzZXJ2YWJsZSgpO1xuICBwdWJsaWMgcmVhZG9ubHkgb2Zmc2V0JCA9IHRoaXMuX29mZnNldCQuYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyByZWFkb25seSBjb3VudCQgPSB0aGlzLl9jb3VudCQuYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyByZWFkb25seSBzb3J0ZXIkID0gdGhpcy5fc29ydGVyJC5hc09ic2VydmFibGUoKTtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWUkID0gdGhpcy5fbmFtZSQuYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZSQgPSB0aGlzLl9zdGF0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyByZWFkb25seSBncWxWYWx1ZXMkID0gdGhpcy5fZ3FsVmFsdWVzJC5hc09ic2VydmFibGUoKTtcbiAgcHVibGljIHJlYWRvbmx5IHBpbm5lZCQgPSB0aGlzLl9waW5uZWQkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbW9kdWxlUGF0aCA9IGdldExhc3RTZWdtZW50T2ZQYXRoTmFtZSh0aGlzLnJvdXRlci51cmwpO1xuXG4gIHB1YmxpYyByZWFkb25seSBwaW5TdG9yYWdlS2V5ID0gYEBwaW4vJHt0aGlzLm1vZHVsZVBhdGh9YDtcbiAgcHVibGljIHJlYWRvbmx5IHBpbm5lZElucHV0c1N0b3JhZ2VLZXkgPSBgQHBpbm5lZC1pbnB1dHMvJHt0aGlzLm1vZHVsZVBhdGh9YDtcblxuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzT3BlbiA9IHRoaXMuc3RhdGUuc3RhdGUgIT09IEVJbnB1dHNTdGF0ZS5ISURERU47XG5cbiAgICAvLyDQtdGB0LvQuCDRhNC40LvRjNGC0YAg0LHRi9C7INC+0YLQutGA0YvRgiwg0LfQvdCw0YfQuNGCINC10LPQviDQt9Cw0LrRgNGL0LLQsNGO0YIgLSDQvtGC0LrRgNC10L/Qu9GP0LXQvFxuICAgIGlmIChpc09wZW4pIHtcbiAgICAgIHRoaXMuc2V0UGluKGZhbHNlKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHN0YXRlOiBpc09wZW4gPyBFSW5wdXRzU3RhdGUuSElEREVOIDogRUlucHV0c1N0YXRlLkZJTFRFUl9MSVNULFxuICAgICAgYWN0aW9uOiBFSW5wdXRzQWN0aW9uLk9QRU4sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUGluKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0UGluKCF0aGlzLmlzUGluKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9wYWdlJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2xpbWl0JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX25hbWUkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fb2Zmc2V0JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2NvdW50JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3N0YXRlJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3NvcnRlciQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9ncWxWYWx1ZXMkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fcGlubmVkJC5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRGVzdHJveSgpOiB2b2lkIHt9XG5cbiAgcHVibGljIHNldFBhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fcGFnZSQubmV4dChwYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaW1pdChsaW1pdDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fbGltaXQkLm5leHQobGltaXQpO1xuICB9XG5cbiAgcHVibGljIHNldE9mZnNldChvZmZzZXQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX29mZnNldCQubmV4dChvZmZzZXQpO1xuICB9XG5cbiAgcHVibGljIHNldFNvcnRlcihzb3J0OiBSZWdpc3RlclRhYmxlQ2VsbFNvcnRlcjxUPltdKTogdm9pZCB7XG4gICAgdGhpcy5fc29ydGVyJC5uZXh0KHNvcnQpO1xuICB9XG5cbiAgcHVibGljIHNldE5hbWUobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fbmFtZSQubmV4dChuYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb3VudChjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fY291bnQkLm5leHQoY291bnQpO1xuICB9XG5cbiAgcHVibGljIHNldFN0YXRlKHN0YXRlOiBJSW5wdXRzU3RhdGUpOiB2b2lkIHtcbiAgICBpZiAoISh0aGlzLmlzUGluICYmIHN0YXRlLnN0YXRlID09PSBFSW5wdXRzU3RhdGUuSElEREVOKSkge1xuICAgICAgdGhpcy5fc3RhdGUkLm5leHQoc3RhdGUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRHcWxWYWx1ZXModmFsdWVzOiBHcWxGaWVsZHMpOiB2b2lkIHtcbiAgICB0aGlzLl9ncWxWYWx1ZXMkLm5leHQodmFsdWVzKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQaW4oaXNQaW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9waW5uZWQkLm5leHQoaXNQaW4pO1xuICB9XG5cbiAgcHVibGljIGdldCBwYWdlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2UkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxpbWl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xpbWl0JC5nZXRWYWx1ZSgpID8/IERFRkFVTFRfTElNSVQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9mZnNldCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9vZmZzZXQkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlKCk6IElJbnB1dHNTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jb3VudCQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc29ydGVyKCk6IFJlZ2lzdGVyVGFibGVDZWxsU29ydGVyPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLl9zb3J0ZXIkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbmFtZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ3FsVmFsdWVzKCk6IEdxbEZpZWxkcyB7XG4gICAgcmV0dXJuIHRoaXMuX2dxbFZhbHVlcyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNQaW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Bpbm5lZCQuZ2V0VmFsdWUoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { InputControl } from '../core/input-control/input-control';
|
|
4
|
+
import { INPUTS_STATE_CONFIG_KEY, WARN_SEARCH_INPUT_UNDEFINED } from '../consts/inputs.consts';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class InputsService {
|
|
7
|
+
constructor(injector) {
|
|
8
|
+
this.injector = injector;
|
|
9
|
+
this.unsubscribe$ = new Subject();
|
|
10
|
+
this.config = this.injector.get(INPUTS_STATE_CONFIG_KEY, {});
|
|
11
|
+
const { searchInput } = this.config;
|
|
12
|
+
if (searchInput) {
|
|
13
|
+
this._searchInput = new InputControl(null);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
get searchInput() {
|
|
17
|
+
if (!this._searchInput) {
|
|
18
|
+
console.warn(WARN_SEARCH_INPUT_UNDEFINED);
|
|
19
|
+
}
|
|
20
|
+
return this._searchInput;
|
|
21
|
+
}
|
|
22
|
+
get searchValue() {
|
|
23
|
+
return this.searchInput?.getRawValue();
|
|
24
|
+
}
|
|
25
|
+
init(group) {
|
|
26
|
+
this.inputs = group;
|
|
27
|
+
}
|
|
28
|
+
get values() {
|
|
29
|
+
return this.inputs.getRawValue();
|
|
30
|
+
}
|
|
31
|
+
get dirtyValues() {
|
|
32
|
+
return this.inputs.getDirtyValues();
|
|
33
|
+
}
|
|
34
|
+
clear() {
|
|
35
|
+
this.inputs.reset();
|
|
36
|
+
}
|
|
37
|
+
setUserSettingsFilterValues(values) {
|
|
38
|
+
this.clear();
|
|
39
|
+
for (const { id, value } of values) {
|
|
40
|
+
const key = id;
|
|
41
|
+
const control = this._control(key);
|
|
42
|
+
if (control?.saved_value$) {
|
|
43
|
+
control.saved_value$.next(value);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
console.warn(`Не найдено поле: ${id} для установки значения:`, value);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
_control(key) {
|
|
51
|
+
return this.inputs.controls[key];
|
|
52
|
+
}
|
|
53
|
+
get userSettingsFilter() {
|
|
54
|
+
return Object.entries(this.inputs.controls).map(([id, abstractControl]) => {
|
|
55
|
+
const control = abstractControl;
|
|
56
|
+
const value = control.saved_value$.getValue();
|
|
57
|
+
const savedValue = value === null ? null : value;
|
|
58
|
+
return {
|
|
59
|
+
id,
|
|
60
|
+
value: savedValue,
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
get gqlFilter() {
|
|
65
|
+
const filter = [];
|
|
66
|
+
for (const abstractControl of Object.values(this.inputs.controls)) {
|
|
67
|
+
const control = abstractControl;
|
|
68
|
+
if (control.gql_value) {
|
|
69
|
+
filter.push(control.gql_value);
|
|
70
|
+
}
|
|
71
|
+
control.applied?.set(!!control.gql_value);
|
|
72
|
+
}
|
|
73
|
+
if (this.searchValue && this.searchInput?.gql_value) {
|
|
74
|
+
filter.push(this.searchInput.gql_value);
|
|
75
|
+
}
|
|
76
|
+
return filter;
|
|
77
|
+
}
|
|
78
|
+
ngOnDestroy() {
|
|
79
|
+
this.unsubscribe$.next();
|
|
80
|
+
this.unsubscribe$.complete();
|
|
81
|
+
}
|
|
82
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
83
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsService }); }
|
|
84
|
+
}
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsService, decorators: [{
|
|
86
|
+
type: Injectable
|
|
87
|
+
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL3NlcnZpY2VzL2lucHV0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUcvRixNQUFNLE9BQU8sYUFBYTtJQU94QixZQUE2QixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTDVCLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU1wRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTdELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRXBDLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUs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bUhBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1Hcm91cFdyYXBwZXIgfSBmcm9tICcuLi9jb3JlL2Zvcm0tZ3JvdXAtd3JhcHBlci9mb3JtLWdyb3VwLXdyYXBwZXInO1xuaW1wb3J0IHsgSVRwVXNlclNldHRpbmdzU2V0dGluZ3NGaWx0ZXIgfSBmcm9tICcuLi90eXBlcy9yZWdpc3Rlci1iYXNlLnR5cGVzJztcbmltcG9ydCB7IEV4dHJhY3RGb3JtIH0gZnJvbSAnLi4vdHlwZXMvc3ViLXR5cGVzJztcbmltcG9ydCB7IElJbnB1dENvbnRyb2wsIElJbnB1dHNTdGF0ZUNvbmZpZyB9IGZyb20gJy4uL3R5cGVzL2lucHV0cy50eXBlcyc7XG5pbXBvcnQgeyBJbnB1dENvbnRyb2wgfSBmcm9tICcuLi9jb3JlL2lucHV0LWNvbnRyb2wvaW5wdXQtY29udHJvbCc7XG5pbXBvcnQgeyBJTlBVVFNfU1RBVEVfQ09ORklHX0tFWSwgV0FSTl9TRUFSQ0hfSU5QVVRfVU5ERUZJTkVEIH0gZnJvbSAnLi4vY29uc3RzL2lucHV0cy5jb25zdHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSW5wdXRzU2VydmljZTxGb3JtVHlwZT4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnOiBJSW5wdXRzU3RhdGVDb25maWc7XG4gIHByb3RlY3RlZCByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlYXJjaElucHV0OiBJSW5wdXRDb250cm9sPHN0cmluZyB8IG51bGw+IHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgaW5wdXRzITogRm9ybUdyb3VwV3JhcHBlcjxGb3JtVHlwZT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuaW5qZWN0b3IuZ2V0KElOUFVUU19TVEFURV9DT05GSUdfS0VZLCB7fSk7XG5cbiAgICBjb25zdCB7IHNlYXJjaElucHV0IH0gPSB0aGlzLmNvbmZpZztcblxuICAgIGlmIChzZWFyY2hJbnB1dCkge1xuICAgICAgdGhpcy5fc2VhcmNoSW5wdXQgPSBuZXcgSW5wdXRDb250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VhcmNoSW5wdXQoKTogSUlucHV0Q29udHJvbDxzdHJpbmcgfCBudWxsPiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLl9zZWFyY2hJbnB1dCkge1xuICAgICAgY29uc29sZS53YXJuKFdBUk5fU0VBUkNIX0lOUFVUX1VOREVGSU5FRCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaElucHV0O1xuICB9XG5cbiAgcHVibGljIGdldCBzZWFyY2hWYWx1ZSgpOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hJbnB1dD8uZ2V0UmF3VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KGdyb3VwOiBGb3JtR3JvdXBXcmFwcGVyPEZvcm1UeXBlPik6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRzID0gZ3JvdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlcygpOiBFeHRyYWN0Rm9ybTxGb3JtVHlwZT4ge1xuICAgIHJldHVybiB0aGlzLmlucHV0cy5nZXRSYXdWYWx1ZSgpIGFzIEV4dHJhY3RGb3JtPEZvcm1UeXBlPjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlydHlWYWx1ZXMoKTogUGFydGlhbDxFeHRyYWN0Rm9ybTxGb3JtVHlwZT4+IHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dHMuZ2V0RGlydHlWYWx1ZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0cy5yZXNldCgpO1xuICB9XG5cbiAgcHVibGljIHNldFVzZXJTZXR0aW5nc0ZpbHRlclZhbHVlcyh2YWx1ZXM6IElUcFVzZXJTZXR0aW5nc1NldHRpbmdzRmlsdGVyW10pOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyKCk7XG5cbiAgICBmb3IgKGNvbnN0IHsgaWQsIHZhbHVlIH0gb2YgdmFsdWVzKSB7XG4gICAgICBjb25zdCBrZXkgPSBpZCBhcyBrZXlvZiBGb3JtVHlwZTtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9jb250cm9sPGFueSwgYW55PihrZXkpO1xuXG4gICAgICBpZiAoY29udHJvbD8uc2F2ZWRfdmFsdWUkKSB7XG4gICAgICAgIGNvbnRyb2wuc2F2ZWRfdmFsdWUkLm5leHQodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKGDQndC1INC90LDQudC00LXQvdC+INC/0L7Qu9C1OiAke2lkfSDQtNC70Y8g0YPRgdGC0LDQvdC+0LLQutC4INC30L3QsNGH0LXQvdC40Y86YCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbnRyb2w8VmFsdWVUeXBlIGV4dGVuZHMgRm9ybVR5cGVba2V5b2YgRm9ybVR5cGVdLCBTYXZlZFZhbHVlVHlwZT4oXG4gICAga2V5OiBrZXlvZiBGb3JtVHlwZVxuICApOiBJSW5wdXRDb250cm9sPFZhbHVlVHlwZSwgU2F2ZWRWYWx1ZVR5cGU+IHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dHMuY29udHJvbHNba2V5XSBhcyBJSW5wdXRDb250cm9sPFZhbHVlVHlwZSwgU2F2ZWRWYWx1ZVR5cGU+O1xuICB9XG5cbiAgcHVibGljIGdldCB1c2VyU2V0dGluZ3NGaWx0ZXIoKTogSVRwVXNlclNldHRpbmdzU2V0dGluZ3NGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuaW5wdXRzLmNvbnRyb2xzKS5tYXAoKFtpZCwgYWJzdHJhY3RDb250cm9sXSkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGFic3RyYWN0Q29udHJvbCBhcyBJSW5wdXRDb250cm9sO1xuICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnNhdmVkX3ZhbHVlJC5nZXRWYWx1ZSgpO1xuICAgICAgY29uc3Qgc2F2ZWRWYWx1ZSA9IHZhbHVlID09PSBudWxsID8gbnVsbCA6IHZhbHVlO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZCxcbiAgICAgICAgdmFsdWU6IHNhdmVkVmFsdWUsXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBncWxGaWx0ZXIoKTogUmVjb3JkPHN0cmluZywgYW55PltdIHtcbiAgICBjb25zdCBmaWx0ZXI6IFJlY29yZDxzdHJpbmcsIGFueT5bXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBhYnN0cmFjdENvbnRyb2wgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLmlucHV0cy5jb250cm9scykpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBhYnN0cmFjdENvbnRyb2wgYXMgSUlucHV0Q29udHJvbDtcblxuICAgICAgaWYgKGNvbnRyb2wuZ3FsX3ZhbHVlKSB7XG4gICAgICAgIGZpbHRlci5wdXNoKGNvbnRyb2wuZ3FsX3ZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgY29udHJvbC5hcHBsaWVkPy5zZXQoISFjb250cm9sLmdxbF92YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VhcmNoVmFsdWUgJiYgdGhpcy5zZWFyY2hJbnB1dD8uZ3FsX3ZhbHVlKSB7XG4gICAgICBmaWx0ZXIucHVzaCh0aGlzLnNlYXJjaElucHV0LmdxbF92YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlcjtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { inject, Injectable, InjectionToken } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export const KEY_PRESSED = new InjectionToken('KEY_PRESSED_TOKEN');
|
|
5
|
+
export class KeyPressedService {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._keyName = inject(KEY_PRESSED);
|
|
8
|
+
this._isPressed$ = new BehaviorSubject(false);
|
|
9
|
+
this.isPressed$ = this._isPressed$.asObservable();
|
|
10
|
+
this._keydownListener = (event) => {
|
|
11
|
+
if (event.key === this._keyName) {
|
|
12
|
+
this._isPressed$.next(true);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
this._keyupListener = (event) => {
|
|
16
|
+
if (event.key === this._keyName) {
|
|
17
|
+
this._isPressed$.next(false);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
window.addEventListener('keydown', this._keydownListener);
|
|
21
|
+
window.addEventListener('keyup', this._keyupListener);
|
|
22
|
+
}
|
|
23
|
+
isPressed() {
|
|
24
|
+
return this._isPressed$.getValue();
|
|
25
|
+
}
|
|
26
|
+
ngOnDestroy() {
|
|
27
|
+
this._isPressed$.complete();
|
|
28
|
+
window.removeEventListener('keydown', this._keydownListener);
|
|
29
|
+
window.removeEventListener('keyup', this._keyupListener);
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KeyPressedService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KeyPressedService }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KeyPressedService, decorators: [{
|
|
35
|
+
type: Injectable
|
|
36
|
+
}], ctorParameters: () => [] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LXByZXNzZWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvc2VydmljZXMva2V5LXByZXNzZWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFdkMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFTLG1CQUFtQixDQUFDLENBQUM7QUFHM0UsTUFBTSxPQUFPLGlCQUFpQjtJQU81QjtRQU5RLGFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdEIsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQyxlQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQWlCNUMscUJBQWdCLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDM0QsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUMsQ0FBQztRQUVlLG1CQUFjLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDekQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUMsQ0FBQztRQXhCQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzFELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzRCxDQUFDOytHQXBCVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCBLRVlfUFJFU1NFRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdLRVlfUFJFU1NFRF9UT0tFTicpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgS2V5UHJlc3NlZFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9rZXlOYW1lID0gaW5qZWN0KEtFWV9QUkVTU0VEKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9pc1ByZXNzZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlzUHJlc3NlZCQgPSB0aGlzLl9pc1ByZXNzZWQkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fa2V5ZG93bkxpc3RlbmVyKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9rZXl1cExpc3RlbmVyKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1ByZXNzZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzUHJlc3NlZCQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pc1ByZXNzZWQkLmNvbXBsZXRlKCk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9rZXlkb3duTGlzdGVuZXIpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX2tleXVwTGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfa2V5ZG93bkxpc3RlbmVyID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gdGhpcy5fa2V5TmFtZSkge1xuICAgICAgdGhpcy5faXNQcmVzc2VkJC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9rZXl1cExpc3RlbmVyID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gdGhpcy5fa2V5TmFtZSkge1xuICAgICAgdGhpcy5faXNQcmVzc2VkJC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { afterNextRender, DestroyRef, inject, Injectable, NgZone, signal } from '@angular/core';
|
|
2
|
+
import { debounceTime, distinctUntilChanged, fromEvent, map } from 'rxjs';
|
|
3
|
+
import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
const RESIZE_WINDOW_DEBOUNCE_MLS = 100;
|
|
6
|
+
export class ResizeWindowObserverService {
|
|
7
|
+
constructor() {
|
|
8
|
+
this._zone = inject(NgZone);
|
|
9
|
+
this._destroyRef = inject(DestroyRef);
|
|
10
|
+
this.innerHeight = signal(window.innerHeight);
|
|
11
|
+
this.innerWidth = signal(window.innerWidth);
|
|
12
|
+
this.innerHeight$ = toObservable(this.innerHeight);
|
|
13
|
+
afterNextRender(() => {
|
|
14
|
+
this._zone.runOutsideAngular(() => {
|
|
15
|
+
fromEvent(window, 'resize')
|
|
16
|
+
.pipe(debounceTime(RESIZE_WINDOW_DEBOUNCE_MLS), map(() => ({
|
|
17
|
+
height: window.innerHeight,
|
|
18
|
+
width: window.innerWidth,
|
|
19
|
+
})), distinctUntilChanged(), takeUntilDestroyed(this._destroyRef))
|
|
20
|
+
.subscribe(({ height, width }) => {
|
|
21
|
+
this.innerHeight.set(height);
|
|
22
|
+
this.innerWidth.set(width);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizeWindowObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizeWindowObserverService }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizeWindowObserverService, decorators: [{
|
|
31
|
+
type: Injectable
|
|
32
|
+
}], ctorParameters: () => [] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLXdpbmRvdy1vYnNlcnZlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9zZXJ2aWNlcy9yZXNpemUtd2luZG93LW9ic2VydmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRTlFLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFDO0FBR3ZDLE1BQU0sT0FBTywyQkFBMkI7SUFTdEM7UUFSaUIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkMsaUJBQVksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRzVELGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO3FCQUN4QixJQUFJLENBQ0gsWUFBWSxDQUFDLDBCQUEwQixDQUFDLEVBQ3hDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO29CQUNULE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVztvQkFDMUIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxVQUFVO2lCQUN6QixDQUFDLENBQUMsRUFDSCxvQkFBb0IsRUFBRSxFQUN0QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3JDO3FCQUNBLFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0E1QlUsMkJBQTJCO21IQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIERlc3Ryb3lSZWYsIGluamVjdCwgSW5qZWN0YWJsZSwgTmdab25lLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZyb21FdmVudCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuY29uc3QgUkVTSVpFX1dJTkRPV19ERUJPVU5DRV9NTFMgPSAxMDA7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZXNpemVXaW5kb3dPYnNlcnZlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlubmVySGVpZ2h0ID0gc2lnbmFsKHdpbmRvdy5pbm5lckhlaWdodCk7XG4gIHB1YmxpYyByZWFkb25seSBpbm5lcldpZHRoID0gc2lnbmFsKHdpbmRvdy5pbm5lcldpZHRoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaW5uZXJIZWlnaHQkID0gdG9PYnNlcnZhYmxlKHRoaXMuaW5uZXJIZWlnaHQpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoUkVTSVpFX1dJTkRPV19ERUJPVU5DRV9NTFMpLFxuICAgICAgICAgICAgbWFwKCgpID0+ICh7XG4gICAgICAgICAgICAgIGhlaWdodDogd2luZG93LmlubmVySGVpZ2h0LFxuICAgICAgICAgICAgICB3aWR0aDogd2luZG93LmlubmVyV2lkdGgsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHsgaGVpZ2h0LCB3aWR0aCB9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlubmVySGVpZ2h0LnNldChoZWlnaHQpO1xuICAgICAgICAgICAgdGhpcy5pbm5lcldpZHRoLnNldCh3aWR0aCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { computed, DestroyRef, inject, Injectable, signal } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, skip, take } from 'rxjs';
|
|
3
|
+
import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { ERegisterObjectState } from '../types/register-base.types';
|
|
5
|
+
import { invertState } from '../consts/register-base.consts';
|
|
6
|
+
import { isDefined } from '../utils';
|
|
7
|
+
import { SelectionTypes, } from '../components/checkbox-selector/checkbox-selector.types';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
/** Сервис хранения состояния выбранных в реестре объектов */
|
|
10
|
+
export class SelectedObjectsStateService {
|
|
11
|
+
constructor() {
|
|
12
|
+
/** Состояние всех загруженных объектов реестра */
|
|
13
|
+
this.state = signal(new Map());
|
|
14
|
+
/** Ключи всех выбранных объектов реестра */
|
|
15
|
+
this.selectedKeys = computed(() => {
|
|
16
|
+
const selected = this._filterStateObjectsByState(this.state(), ERegisterObjectState.SELECTED);
|
|
17
|
+
return new Set(selected.keys());
|
|
18
|
+
});
|
|
19
|
+
/** Ключи всех выбранных или не выбранных объектов реестра (зависит от stateUnfetchedObjects) */
|
|
20
|
+
this.keys = computed(() => {
|
|
21
|
+
const unfetchedState = this.stateUnfetchedObjects();
|
|
22
|
+
return new Set(this._filterStateObjectsByState(this.state(), invertState(unfetchedState)).keys());
|
|
23
|
+
});
|
|
24
|
+
/** Значения всех выбранных объектов реестра */
|
|
25
|
+
this.selectedValues = computed(() => {
|
|
26
|
+
const selected = this._filterStateObjectsByState(this.state(), ERegisterObjectState.SELECTED);
|
|
27
|
+
return new Set([...selected.values()].map(({ object }) => object).filter((object) => isDefined(object)));
|
|
28
|
+
});
|
|
29
|
+
/** Значения всех не выбранных объектов реестра */
|
|
30
|
+
this.unselectedValues = computed(() => {
|
|
31
|
+
const selected = this._filterStateObjectsByState(this.state(), ERegisterObjectState.UNSELECTED);
|
|
32
|
+
return new Set([...selected.values()].map(({ object }) => object).filter((object) => isDefined(object)));
|
|
33
|
+
});
|
|
34
|
+
/** Значения всех выбранных или не выбранных объектов реестра (зависит от stateUnfetchedObjects) */
|
|
35
|
+
this.values = computed(() => {
|
|
36
|
+
const unfetchedState = this.stateUnfetchedObjects();
|
|
37
|
+
return new Set([...this._filterStateObjectsByState(this.state(), invertState(unfetchedState)).values()]
|
|
38
|
+
.map(({ object }) => object)
|
|
39
|
+
.filter((object) => isDefined(object)));
|
|
40
|
+
});
|
|
41
|
+
this.selectionType$ = new BehaviorSubject(null);
|
|
42
|
+
this.stateUnfetchedObjects$ = new BehaviorSubject(ERegisterObjectState.UNSELECTED);
|
|
43
|
+
this.stateUnfetchedObjects = toSignal(this.stateUnfetchedObjects$.asObservable(), {
|
|
44
|
+
initialValue: ERegisterObjectState.UNSELECTED,
|
|
45
|
+
});
|
|
46
|
+
this._dr = inject(DestroyRef);
|
|
47
|
+
this._subscribeOnSelectionType();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Установить состояние всем загруженным объектам
|
|
51
|
+
*
|
|
52
|
+
* @param nextState - устанавливаемое состояние
|
|
53
|
+
* */
|
|
54
|
+
setAllStateObjectsByState(nextState) {
|
|
55
|
+
if (nextState === ERegisterObjectState.UNSELECTED) {
|
|
56
|
+
this.stateUnfetchedObjects$.next(ERegisterObjectState.UNSELECTED);
|
|
57
|
+
}
|
|
58
|
+
for (const key of this.state().keys()) {
|
|
59
|
+
this.setStateObjectByKey(key, { state: nextState });
|
|
60
|
+
}
|
|
61
|
+
this._refresh();
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Обновить свойства загруженного объекта по ключу
|
|
65
|
+
*
|
|
66
|
+
* @param key - ключ загруженного объекта
|
|
67
|
+
* @param updates - обновление, содержащее свойства которые нужно обновить
|
|
68
|
+
* */
|
|
69
|
+
setStateObjectByKey(key, updates) {
|
|
70
|
+
const objects = new Map(this.state());
|
|
71
|
+
const stateObject = objects.get(key) ?? { state: ERegisterObjectState.UNSELECTED };
|
|
72
|
+
objects.set(key, { ...stateObject, ...updates });
|
|
73
|
+
this.state.set(objects);
|
|
74
|
+
}
|
|
75
|
+
loadStateObjects(data) {
|
|
76
|
+
const state = this.stateUnfetchedObjects$?.getValue();
|
|
77
|
+
for (const object of data) {
|
|
78
|
+
if (!this.state().has(object.id)) {
|
|
79
|
+
this.setStateObjectByKey(object.id, { object, state });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
this._refresh();
|
|
83
|
+
}
|
|
84
|
+
_refresh() {
|
|
85
|
+
this.state.update((state) => new Map(state));
|
|
86
|
+
}
|
|
87
|
+
resetState(data) {
|
|
88
|
+
this.stateUnfetchedObjects$
|
|
89
|
+
.asObservable()
|
|
90
|
+
.pipe(skip(1), take(1))
|
|
91
|
+
.subscribe(() => {
|
|
92
|
+
this.state.set(new Map());
|
|
93
|
+
if (data) {
|
|
94
|
+
this.loadStateObjects(data);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
this.selectionType$.next(null);
|
|
98
|
+
}
|
|
99
|
+
_filterStateObjectsByState(stateObjects, filterState) {
|
|
100
|
+
return new Map([...stateObjects].filter(([_, { state }]) => state === filterState));
|
|
101
|
+
}
|
|
102
|
+
_subscribeOnSelectionType() {
|
|
103
|
+
this.selectionType$
|
|
104
|
+
.asObservable()
|
|
105
|
+
.pipe(takeUntilDestroyed(this._dr))
|
|
106
|
+
.subscribe((type) => {
|
|
107
|
+
let newState = ERegisterObjectState.UNSELECTED;
|
|
108
|
+
if (type === SelectionTypes.ALL) {
|
|
109
|
+
newState = ERegisterObjectState.SELECTED;
|
|
110
|
+
}
|
|
111
|
+
else if (type === SelectionTypes.INVERSE) {
|
|
112
|
+
newState = invertState(this.stateUnfetchedObjects$.getValue());
|
|
113
|
+
}
|
|
114
|
+
this.stateUnfetchedObjects$.next(newState);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectedObjectsStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
118
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectedObjectsStateService }); }
|
|
119
|
+
}
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectedObjectsStateService, decorators: [{
|
|
121
|
+
type: Injectable
|
|
122
|
+
}], ctorParameters: () => [] });
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtb2JqZWN0cy1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9zZXJ2aWNlcy9zZWxlY3RlZC1vYmplY3RzLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQW1CLE1BQU0sOEJBQThCLENBQUM7QUFDckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDckMsT0FBTyxFQUVMLGNBQWMsR0FDZixNQUFNLHlEQUF5RCxDQUFDOztBQUVqRSw2REFBNkQ7QUFFN0QsTUFBTSxPQUFPLDJCQUEyQjtJQXVEdEM7UUF0REEsa0RBQWtEO1FBQ2xDLFVBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQWtDLENBQUMsQ0FBQztRQUMxRSw0Q0FBNEM7UUFDNUIsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzNDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFOUYsT0FBTyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FB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QUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7WUFDM0MsQ0FBQztpQkFBTSxJQUFJLElBQUksS0FBSyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzNDLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDakUsQ0FBQztZQUVELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQS9JVSwyQkFBMkI7bUhBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEZXN0cm95UmVmLCBpbmplY3QsIEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2NhbGFyVVVJRCB9IGZyb20gJ2hhc3VyYSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIHNraXAsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBFUmVnaXN0ZXJPYmplY3RTdGF0ZSwgSVJlZ2lzdGVyT2JqZWN0IH0gZnJvbSAnLi4vdHlwZXMvcmVnaXN0ZXItYmFzZS50eXBlcyc7XG5pbXBvcnQgeyBpbnZlcnRTdGF0ZSB9IGZyb20gJy4uL2NvbnN0cy9yZWdpc3Rlci1iYXNlLmNvbnN0cyc7XG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge1xuICBBcHBseVNlbGVjdGlvblR5cGVzLFxuICBTZWxlY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9jaGVja2JveC1zZWxlY3Rvci9jaGVja2JveC1zZWxlY3Rvci50eXBlcyc7XG5cbi8qKiDQodC10YDQstC40YEg0YXRgNCw0L3QtdC90LjRjyDRgdC+0YHRgtC+0Y/QvdC40Y8g0LLRi9Cx0YDQsNC90L3Ri9GFINCyINGA0LXQtdGB0YLRgNC1INC+0LHRitC10LrRgtC+0LIgKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWxlY3RlZE9iamVjdHNTdGF0ZVNlcnZpY2U8VCBleHRlbmRzIHsgaWQ6IFNjYWxhclVVSUQgfSA9IGFueT4ge1xuICAvKiog0KHQvtGB0YLQvtGP0L3QuNC1INCy0YHQtdGFINC30LDQs9GA0YPQttC10L3QvdGL0YUg0L7QsdGK0LXQutGC0L7QsiDRgNC10LXRgdGC0YDQsCAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGUgPSBzaWduYWwobmV3IE1hcDxTY2FsYXJVVUlELCBJUmVnaXN0ZXJPYmplY3Q8VD4+KCkpO1xuICAvKiog0JrQu9GO0YfQuCDQstGB0LXRhSDQstGL0LHRgNCw0L3QvdGL0YUg0L7QsdGK0LXQutGC0L7QsiDRgNC10LXRgdGC0YDQsCAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRLZXlzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5fZmlsdGVyU3RhdGVPYmplY3RzQnlTdGF0ZSh0aGlzLnN0YXRlKCksIEVSZWdpc3Rlck9iamVjdFN0YXRlLlNFTEVDVEVEKTtcblxuICAgIHJldHVybiBuZXcgU2V0KHNlbGVjdGVkLmtleXMoKSk7XG4gIH0pO1xuICAvKiog0JrQu9GO0YfQuCDQstGB0LXRhSDQstGL0LHRgNCw0L3QvdGL0YUg0LjQu9C4INC90LUg0LLRi9Cx0YDQsNC90L3Ri9GFINC+0LHRitC10LrRgtC+0LIg0YDQtdC10YHRgtGA0LAgKNC30LDQstC40YHQuNGCINC+0YIgc3RhdGVVbmZldGNoZWRPYmplY3RzKSAqL1xuICBwdWJsaWMgcmVhZG9ubHkga2V5cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB1bmZldGNoZWRTdGF0ZSA9IHRoaXMuc3RhdGVVbmZldGNoZWRPYmplY3RzKCk7XG5cbiAgICByZXR1cm4gbmV3IFNldChcbiAgICAgIHRoaXMuX2ZpbHRlclN0YXRlT2JqZWN0c0J5U3RhdGUodGhpcy5zdGF0ZSgpLCBpbnZlcnRTdGF0ZSh1bmZldGNoZWRTdGF0ZSkpLmtleXMoKVxuICAgICk7XG4gIH0pO1xuICAvKiog0JfQvdCw0YfQtdC90LjRjyDQstGB0LXRhSDQstGL0LHRgNCw0L3QvdGL0YUg0L7QsdGK0LXQutGC0L7QsiDRgNC10LXRgdGC0YDQsCAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRWYWx1ZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLl9maWx0ZXJTdGF0ZU9iamVjdHNCeVN0YXRlKHRoaXMuc3RhdGUoKSwgRVJlZ2lzdGVyT2JqZWN0U3RhdGUuU0VMRUNURUQpO1xuXG4gICAgcmV0dXJuIG5ldyBTZXQoXG4gICAgICBbLi4uc2VsZWN0ZWQudmFsdWVzKCldLm1hcCgoeyBvYmplY3QgfSkgPT4gb2JqZWN0KS5maWx0ZXIoKG9iamVjdCkgPT4gaXNEZWZpbmVkKG9iamVjdCkpXG4gICAgKTtcbiAgfSk7XG4gIC8qKiDQl9C90LDRh9C10L3QuNGPINCy0YHQtdGFINC90LUg0LLRi9Cx0YDQsNC90L3Ri9GFINC+0LHRitC10LrRgtC+0LIg0YDQtdC10YHRgtGA0LAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVuc2VsZWN0ZWRWYWx1ZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLl9maWx0ZXJTdGF0ZU9iamVjdHNCeVN0YXRlKHRoaXMuc3RhdGUoKSwgRVJlZ2lzdGVyT2JqZWN0U3RhdGUuVU5TRUxFQ1RFRCk7XG5cbiAgICByZXR1cm4gbmV3IFNldChcbiAgICAgIFsuLi5zZWxlY3RlZC52YWx1ZXMoKV0ubWFwKCh7IG9iamVjdCB9KSA9PiBvYmplY3QpLmZpbHRlcigob2JqZWN0KSA9PiBpc0RlZmluZWQob2JqZWN0KSlcbiAgICApO1xuICB9KTtcbiAgLyoqINCX0L3QsNGH0LXQvdC40Y8g0LLRgdC10YUg0LLRi9Cx0YDQsNC90L3Ri9GFINC40LvQuCDQvdC1INCy0YvQsdGA0LDQvdC90YvRhSDQvtCx0YrQtdC60YLQvtCyINGA0LXQtdGB0YLRgNCwICjQt9Cw0LLQuNGB0LjRgiDQvtGCIHN0YXRlVW5mZXRjaGVkT2JqZWN0cykgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB1bmZldGNoZWRTdGF0ZSA9IHRoaXMuc3RhdGVVbmZldGNoZWRPYmplY3RzKCk7XG5cbiAgICByZXR1cm4gbmV3IFNldChcbiAgICAgIFsuLi50aGlzLl9maWx0ZXJTdGF0ZU9iamVjdHNCeVN0YXRlKHRoaXMuc3RhdGUoKSwgaW52ZXJ0U3RhdGUodW5mZXRjaGVkU3RhdGUpKS52YWx1ZXMoKV1cbiAgICAgICAgLm1hcCgoeyBvYmplY3QgfSkgPT4gb2JqZWN0KVxuICAgICAgICAuZmlsdGVyKChvYmplY3QpID0+IGlzRGVmaW5lZChvYmplY3QpKVxuICAgICk7XG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25UeXBlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXBwbHlTZWxlY3Rpb25UeXBlcz4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZVVuZmV0Y2hlZE9iamVjdHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFUmVnaXN0ZXJPYmplY3RTdGF0ZT4oXG4gICAgRVJlZ2lzdGVyT2JqZWN0U3RhdGUuVU5TRUxFQ1RFRFxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZVVuZmV0Y2hlZE9iamVjdHMgPSB0b1NpZ25hbCh0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyQuYXNPYnNlcnZhYmxlKCksIHtcbiAgICBpbml0aWFsVmFsdWU6IEVSZWdpc3Rlck9iamVjdFN0YXRlLlVOU0VMRUNURUQsXG4gIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RyID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX3N1YnNjcmliZU9uU2VsZWN0aW9uVHlwZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqINCj0YHRgtCw0L3QvtCy0LjRgtGMINGB0L7RgdGC0L7Rj9C90LjQtSDQstGB0LXQvCDQt9Cw0LPRgNGD0LbQtdC90L3Ri9C8INC+0LHRitC10LrRgtCw0LxcbiAgICpcbiAgICogQHBhcmFtIG5leHRTdGF0ZSAtINGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC80L7QtSDRgdC+0YHRgtC+0Y/QvdC40LVcbiAgICogKi9cbiAgcHVibGljIHNldEFsbFN0YXRlT2JqZWN0c0J5U3RhdGUobmV4dFN0YXRlOiBFUmVnaXN0ZXJPYmplY3RTdGF0ZSk6IHZvaWQge1xuICAgIGlmIChuZXh0U3RhdGUgPT09IEVSZWdpc3Rlck9iamVjdFN0YXRlLlVOU0VMRUNURUQpIHtcbiAgICAgIHRoaXMuc3RhdGVVbmZldGNoZWRPYmplY3RzJC5uZXh0KEVSZWdpc3Rlck9iamVjdFN0YXRlLlVOU0VMRUNURUQpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMuc3RhdGUoKS5rZXlzKCkpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGVPYmplY3RCeUtleShrZXksIHsgc3RhdGU6IG5leHRTdGF0ZSB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl9yZWZyZXNoKCk7XG4gIH1cblxuICAvKipcbiAgICog0J7QsdC90L7QstC40YLRjCDRgdCy0L7QudGB0YLQstCwINC30LDQs9GA0YPQttC10L3QvdC+0LPQviDQvtCx0YrQtdC60YLQsCDQv9C+INC60LvRjtGH0YNcbiAgICpcbiAgICogQHBhcmFtIGtleSAtINC60LvRjtGHINC30LDQs9GA0YPQttC10L3QvdC+0LPQviDQvtCx0YrQtdC60YLQsFxuICAgKiBAcGFyYW0gdXBkYXRlcyAtINC+0LHQvdC+0LLQu9C10L3QuNC1LCDRgdC+0LTQtdGA0LbQsNGJ0LXQtSDRgdCy0L7QudGB0YLQstCwINC60L7RgtC+0YDRi9C1INC90YPQttC90L4g0L7QsdC90L7QstC40YLRjFxuICAgKiAqL1xuICBwdWJsaWMgc2V0U3RhdGVPYmplY3RCeUtleShrZXk6IFNjYWxhclVVSUQsIHVwZGF0ZXM6IFBhcnRpYWw8SVJlZ2lzdGVyT2JqZWN0PFQ+Pik6IHZvaWQge1xuICAgIGNvbnN0IG9iamVjdHMgPSBuZXcgTWFwKHRoaXMuc3RhdGUoKSk7XG5cbiAgICBjb25zdCBzdGF0ZU9iamVjdCA9IG9iamVjdHMuZ2V0KGtleSkgPz8geyBzdGF0ZTogRVJlZ2lzdGVyT2JqZWN0U3RhdGUuVU5TRUxFQ1RFRCB9O1xuICAgIG9iamVjdHMuc2V0KGtleSwgeyAuLi5zdGF0ZU9iamVjdCwgLi4udXBkYXRlcyB9KTtcblxuICAgIHRoaXMuc3RhdGUuc2V0KG9iamVjdHMpO1xuICB9XG5cbiAgcHVibGljIGxvYWRTdGF0ZU9iamVjdHMoZGF0YTogVFtdKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyQ/LmdldFZhbHVlKCk7XG5cbiAgICBmb3IgKGNvbnN0IG9iamVjdCBvZiBkYXRhKSB7XG4gICAgICBpZiAoIXRoaXMuc3RhdGUoKS5oYXMob2JqZWN0LmlkKSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlT2JqZWN0QnlLZXkob2JqZWN0LmlkLCB7IG9iamVjdCwgc3RhdGUgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fcmVmcmVzaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+IG5ldyBNYXAoc3RhdGUpKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFN0YXRlKGRhdGE/OiBUW10pOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoc2tpcCgxKSwgdGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlLnNldChuZXcgTWFwKCkpO1xuXG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgdGhpcy5sb2FkU3RhdGVPYmplY3RzKGRhdGEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGlvblR5cGUkLm5leHQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJTdGF0ZU9iamVjdHNCeVN0YXRlKFxuICAgIHN0YXRlT2JqZWN0czogTWFwPFNjYWxhclVVSUQsIElSZWdpc3Rlck9iamVjdDxUPj4sXG4gICAgZmlsdGVyU3RhdGU6IEVSZWdpc3Rlck9iamVjdFN0YXRlXG4gICkge1xuICAgIHJldHVybiBuZXcgTWFwKFsuLi5zdGF0ZU9iamVjdHNdLmZpbHRlcigoW18sIHsgc3RhdGUgfV0pID0+IHN0YXRlID09PSBmaWx0ZXJTdGF0ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlT25TZWxlY3Rpb25UeXBlKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uVHlwZSRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2RyKSlcbiAgICAgIC5zdWJzY3JpYmUoKHR5cGUpID0+IHtcbiAgICAgICAgbGV0IG5ld1N0YXRlID0gRVJlZ2lzdGVyT2JqZWN0U3RhdGUuVU5TRUxFQ1RFRDtcblxuICAgICAgICBpZiAodHlwZSA9PT0gU2VsZWN0aW9uVHlwZXMuQUxMKSB7XG4gICAgICAgICAgbmV3U3RhdGUgPSBFUmVnaXN0ZXJPYmplY3RTdGF0ZS5TRUxFQ1RFRDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBTZWxlY3Rpb25UeXBlcy5JTlZFUlNFKSB7XG4gICAgICAgICAgbmV3U3RhdGUgPSBpbnZlcnRTdGF0ZSh0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyQuZ2V0VmFsdWUoKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyQubmV4dChuZXdTdGF0ZSk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19
|