@wizishop/angular-components 15.1.114 → 18.2.0-beta
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/README.md +87 -87
- package/angular-components.scss +1679 -1681
- package/assets/images/upload/icon_picture.svg +11 -11
- package/{esm2020 → esm2022}/lib/animations/in-out/in-out-x.animation.mjs +1 -1
- package/{esm2020 → esm2022}/lib/animations/in-out/in-out-y.animation.mjs +1 -1
- package/{esm2020 → esm2022}/lib/animations/list/animate-list-from-bottom.animation.mjs +1 -1
- package/{esm2020 → esm2022}/lib/animations/list/animate-list-from-left.animation.mjs +1 -1
- package/{esm2020 → esm2022}/lib/animations/list/animate-list-from-right.animation.mjs +1 -1
- package/{esm2020 → esm2022}/lib/animations/list/animate-list-from-top.animation.mjs +1 -1
- package/{esm2020 → esm2022}/lib/animations/show/show-from-bottom.animation.mjs +1 -1
- package/{esm2020 → esm2022}/lib/animations/show/show-from-left.animation.mjs +1 -1
- package/{esm2020 → esm2022}/lib/animations/show/show-from-right.animation.mjs +1 -1
- package/{esm2020 → esm2022}/lib/animations/show/show-from-top.animation.mjs +1 -1
- package/{esm2020 → esm2022}/lib/animations/switch/switch-in-out.animation.mjs +1 -1
- package/{esm2020 → esm2022}/lib/components/ai-express/ai-express.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/alert/alert.component.mjs +5 -5
- package/esm2022/lib/components/alert-popup/alert-popup-module.mjs +20 -0
- package/esm2022/lib/components/alert-popup/alert-popup.component.mjs +41 -0
- package/{esm2020 → esm2022}/lib/components/alert-popup/alert-popup.service.mjs +5 -5
- package/esm2022/lib/components/back/back.component.mjs +12 -0
- package/{esm2020 → esm2022}/lib/components/block/block-title-legacy/block-title-legacy.component.mjs +5 -5
- package/esm2022/lib/components/block/block.component.mjs +124 -0
- package/{esm2020 → esm2022}/lib/components/block/separator/block-separator.component.mjs +5 -5
- package/esm2022/lib/components/block-with-checkbox/block-with-checkbox.component.mjs +46 -0
- package/{esm2020 → esm2022}/lib/components/breadcrumbs/breadcrumbs.component.mjs +5 -5
- package/esm2022/lib/components/button/button.component.mjs +200 -0
- package/esm2022/lib/components/calendar/calendar.component.mjs +237 -0
- package/{esm2020 → esm2022}/lib/components/card-price/card-price.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/charging-bar/charging-bar.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/checkbox/checkbox.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/checkbox/checkbox.module.mjs +7 -7
- package/{esm2020 → esm2022}/lib/components/column/column.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/common/label/label.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/common/placeholder/placeholder.component.mjs +5 -5
- package/esm2022/lib/components/confirm-delete/confirm-delete.component.mjs +64 -0
- package/{esm2020 → esm2022}/lib/components/content-with-buttons/content-with-buttons.component.mjs +4 -4
- package/esm2022/lib/components/delete/delete.component.mjs +12 -0
- package/esm2022/lib/components/draganddrop-list/draganddrop-list.component.mjs +61 -0
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +26 -0
- package/esm2022/lib/components/edit-in-place/edit-in-place.component.mjs +202 -0
- package/{esm2020 → esm2022}/lib/components/expanded-panel/expanded-panel.component.mjs +5 -5
- package/esm2022/lib/components/expansion/accordion/accordion.component.mjs +74 -0
- package/{esm2020 → esm2022}/lib/components/expansion/expansion-panel/expansion-panel.component.mjs +5 -5
- package/esm2022/lib/components/expansion/expansion-panel/expansion-panel.directive.mjs +88 -0
- package/{esm2020 → esm2022}/lib/components/expansion/expansion-panel-header/expansion-panel-header.component.mjs +5 -5
- package/esm2022/lib/components/expansion/expansion-panel-header/expansion-panel-header.directive.mjs +49 -0
- package/{esm2020 → esm2022}/lib/components/expansion/expansion.module.mjs +11 -11
- package/{esm2020 → esm2022}/lib/components/filters/filter-item.dto.mjs +1 -1
- package/esm2022/lib/components/filters/filters.component.mjs +41 -0
- package/esm2022/lib/components/free-popin/free-popin.component.mjs +66 -0
- package/{esm2020 → esm2022}/lib/components/google-preview/google-preview.component.mjs +5 -5
- package/esm2022/lib/components/header-page/header-page.component.mjs +42 -0
- package/{esm2020 → esm2022}/lib/components/hn/h1/h1.component.mjs +5 -5
- package/esm2022/lib/components/hn/h2/h2.component.mjs +13 -0
- package/esm2022/lib/components/hn/h3/h3.component.mjs +18 -0
- package/esm2022/lib/components/hn/h4/h4.component.mjs +18 -0
- package/esm2022/lib/components/image/image.component.mjs +17 -0
- package/esm2022/lib/components/info/info.component.mjs +12 -0
- package/esm2022/lib/components/inputs/input/input.component.mjs +184 -0
- package/esm2022/lib/components/inputs/input-search/input-search.component.mjs +65 -0
- package/{esm2020 → esm2022}/lib/components/inputs/input-with-select/input-with-select.component.mjs +4 -4
- package/esm2022/lib/components/link/link.component.mjs +57 -0
- package/{esm2020 → esm2022}/lib/components/loader/loader.component.mjs +4 -4
- package/esm2022/lib/components/logo/logo.component.mjs +20 -0
- package/esm2022/lib/components/mosaic/mosaic.component.mjs +81 -0
- package/esm2022/lib/components/multiple-search/multiple-search.component.mjs +115 -0
- package/esm2022/lib/components/multiple-search-plus/multiple-search-plus.component.mjs +97 -0
- package/{esm2020 → esm2022}/lib/components/multiple-search-plus/shared/multiple-search-plus-option.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/components/multiple-search-plus/shared/multiple-search-plus-results.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/components/optional-disable-container/optional-disable-container.component.mjs +5 -5
- package/esm2022/lib/components/pagination/pagination.component.mjs +50 -0
- package/esm2022/lib/components/pagination/pagination.module.mjs +33 -0
- package/esm2022/lib/components/pagination/pipes/array-pages.pipe.mjs +28 -0
- package/esm2022/lib/components/pagination/pipes/custom-text.pipe.mjs +34 -0
- package/esm2022/lib/components/pagination/pipes/is-last-page.pipe.mjs +25 -0
- package/esm2022/lib/components/popin/popin.component.mjs +73 -0
- package/esm2022/lib/components/progress-bar/progress-bar.component.mjs +75 -0
- package/{esm2020 → esm2022}/lib/components/radio/option/option.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/radio/radio-group.directive.mjs +8 -8
- package/esm2022/lib/components/radio/radio.component.mjs +38 -0
- package/{esm2020 → esm2022}/lib/components/radio-legacy/radio-directive.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/radio-legacy/radio-group.directive.mjs +8 -8
- package/esm2022/lib/components/radio-legacy/radio.component.mjs +58 -0
- package/esm2022/lib/components/row/row.component.mjs +144 -0
- package/esm2022/lib/components/search/search.component.mjs +86 -0
- package/{esm2020 → esm2022}/lib/components/search/shared/search-option.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/components/select/option/option.component.mjs +5 -5
- package/esm2022/lib/components/select/option/select-option.directive.mjs +98 -0
- package/{esm2020 → esm2022}/lib/components/select/option-call-to-action/option-call-to-action.component.mjs +5 -5
- package/esm2022/lib/components/select/select/select.component.mjs +198 -0
- package/esm2022/lib/components/select/select/select.directive.mjs +175 -0
- package/esm2022/lib/components/select/select/value-change.service.mjs +190 -0
- package/{esm2020 → esm2022}/lib/components/select/select-search-trigger/select-search-trigger.component.mjs +5 -5
- package/esm2022/lib/components/select-in-text/select-in-text.component.mjs +103 -0
- package/esm2022/lib/components/selected-list/selected-list.component.mjs +62 -0
- package/{esm2020 → esm2022}/lib/components/selected-list/shared/selected-list-option.model.mjs +1 -1
- package/esm2022/lib/components/separator/separator.component.mjs +17 -0
- package/esm2022/lib/components/settings/settings.component.mjs +12 -0
- package/esm2022/lib/components/shared-components.module.mjs +443 -0
- package/esm2022/lib/components/snackbar/snackbar.component.mjs +85 -0
- package/esm2022/lib/components/state/state.component.mjs +16 -0
- package/esm2022/lib/components/summary/summary.component.mjs +41 -0
- package/esm2022/lib/components/switch/switch.component.mjs +89 -0
- package/esm2022/lib/components/table/directives/checkBoxRow.directive.mjs +92 -0
- package/esm2022/lib/components/table/directives/column.directive.mjs +42 -0
- package/esm2022/lib/components/table/directives/columnHeader.directive.mjs +199 -0
- package/{esm2020 → esm2022}/lib/components/table/directives/raw.directive.mjs +6 -6
- package/esm2022/lib/components/table/shared/filters-table.service.mjs +68 -0
- package/esm2022/lib/components/table/shared/table-checkbox-id.service.mjs +20 -0
- package/{esm2020 → esm2022}/lib/components/table/shared/table-filters-group.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/components/table/shared/table-filters.model.mjs +1 -1
- package/esm2022/lib/components/table/table.component.mjs +146 -0
- package/{esm2020 → esm2022}/lib/components/table/table.module.mjs +15 -15
- package/{esm2020 → esm2022}/lib/components/tabs/tab/tab.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/tabs/tab-body/tab-body.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/tabs/tab-body/tab-body.directive.mjs +6 -6
- package/esm2022/lib/components/tabs/tabs.component.mjs +99 -0
- package/{esm2020 → esm2022}/lib/components/tag/tag.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/tag-dropdown/tag-dropdown.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/tag-label/tag-label.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/text/text.component.mjs +5 -5
- package/esm2022/lib/components/text-area/text-area.component.mjs +99 -0
- package/{esm2020 → esm2022}/lib/components/token-check/token-check.component.mjs +5 -5
- package/esm2022/lib/components/tooltip/tooltip.component.mjs +30 -0
- package/{esm2020 → esm2022}/lib/components/tooltip/tooltip.module.mjs +7 -7
- package/{esm2020 → esm2022}/lib/components/tree/tree.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/tree/tree.module.mjs +9 -9
- package/esm2022/lib/components/upload/upload.component.mjs +36 -0
- package/esm2022/lib/components/wrapper/wrapper.component.mjs +18 -0
- package/esm2022/lib/components/wrapper-blocs/wrapper-blocs.component.mjs +19 -0
- package/{esm2020 → esm2022}/lib/components/wrapper-multiple-block/wrapper-multiple-block.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/wrapper-sidebar/wrapper-sidebar.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +5 -5
- package/{esm2020 → esm2022}/lib/directives/abstract-debounce/debounce-keyup.directive.mjs +5 -5
- package/esm2022/lib/directives/auto-hide/auto-hide.directive.mjs +50 -0
- package/{esm2020 → esm2022}/lib/directives/copy-to-clipboard/copy-to-clipboard.directive.mjs +5 -5
- package/esm2022/lib/directives/keyboard-events/keypress-enter.directive.mjs +25 -0
- package/esm2022/lib/directives/keyboard-events/only-numbers.directive.mjs +45 -0
- package/esm2022/lib/directives/keyboard-events/two-digital-decimal-number.directive.mjs +36 -0
- package/esm2022/lib/directives/ng-var.directive.mjs +32 -0
- package/{esm2020 → esm2022}/lib/directives/scroll-to/scroll-to.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/directives/shared-directives.module.mjs +27 -27
- package/{esm2020 → esm2022}/lib/directives/watch-dom-tree/watch-dom-tree.directive.mjs +5 -5
- package/esm2022/lib/directives/zindex-toggle/zindex-toggle.directive.mjs +44 -0
- package/{esm2020 → esm2022}/lib/pipes/call-component-function.pipe.mjs +4 -4
- package/esm2022/lib/pipes/find-option-selected-field.pipe.mjs +29 -0
- package/{esm2020 → esm2022}/lib/pipes/select/filter-options.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/select/select-filters.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/selected-list/are-all-options-selected.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/shared-pipes.module.mjs +13 -13
- package/esm2022/lib/pipes/tree/format-object-to-recursif-tree.pipe.mjs +41 -0
- package/esm2022/lib/pipes/tree/format-object-to-simple-tree.pipe.mjs +49 -0
- package/esm2022/lib/services/dom.service.mjs +59 -0
- package/esm2022/lib/services/history.service.mjs +53 -0
- package/esm2022/lib/services/multiple-selection.service.mjs +62 -0
- package/esm2022/lib/utils/html-container.class.mjs +30 -0
- package/{esm2020 → esm2022}/lib/utils/slection-item.interface.mjs +1 -1
- package/esm2022/lib/utils/uuid.mjs +8 -0
- package/esm2022/lib/wizi-components.module.mjs +34 -0
- package/{fesm2020 → fesm2022}/wizishop-angular-components.mjs +900 -903
- package/fesm2022/wizishop-angular-components.mjs.map +1 -0
- package/lib/components/ai-express/ai-express.component.d.ts +1 -1
- package/lib/components/alert/alert.component.d.ts +1 -1
- package/lib/components/block/block-title-legacy/block-title-legacy.component.d.ts +1 -1
- package/lib/components/block/block.component.d.ts +1 -1
- package/lib/components/block-with-checkbox/block-with-checkbox.component.d.ts +1 -1
- package/lib/components/breadcrumbs/breadcrumbs.component.d.ts +1 -1
- package/lib/components/button/button.component.d.ts +1 -1
- package/lib/components/calendar/calendar.component.d.ts +1 -1
- package/lib/components/card-price/card-price.component.d.ts +1 -1
- package/lib/components/charging-bar/charging-bar.component.d.ts +1 -1
- package/lib/components/checkbox/checkbox.component.d.ts +1 -1
- package/lib/components/confirm-delete/confirm-delete.component.d.ts +1 -1
- package/lib/components/content-with-buttons/content-with-buttons.component.d.ts +1 -1
- package/lib/components/draganddrop-list/draganddrop-list.component.d.ts +1 -1
- package/lib/components/dropdown/dropdown.component.d.ts +1 -1
- package/lib/components/edit-in-place/edit-in-place.component.d.ts +1 -1
- package/lib/components/expanded-panel/expanded-panel.component.d.ts +1 -1
- package/lib/components/expansion/accordion/accordion.component.d.ts +1 -1
- package/lib/components/expansion/expansion-panel/expansion-panel.directive.d.ts +1 -1
- package/lib/components/expansion/expansion-panel-header/expansion-panel-header.directive.d.ts +1 -1
- package/lib/components/filters/filters.component.d.ts +1 -1
- package/lib/components/free-popin/free-popin.component.d.ts +1 -1
- package/lib/components/google-preview/google-preview.component.d.ts +1 -1
- package/lib/components/header-page/header-page.component.d.ts +1 -1
- package/lib/components/hn/h1/h1.component.d.ts +1 -1
- package/lib/components/hn/h3/h3.component.d.ts +1 -1
- package/lib/components/hn/h4/h4.component.d.ts +1 -1
- package/lib/components/image/image.component.d.ts +1 -1
- package/lib/components/inputs/input/input.component.d.ts +1 -1
- package/lib/components/inputs/input-search/input-search.component.d.ts +1 -1
- package/lib/components/link/link.component.d.ts +1 -1
- package/lib/components/loader/loader.component.d.ts +1 -1
- package/lib/components/logo/logo.component.d.ts +1 -1
- package/lib/components/mosaic/mosaic.component.d.ts +3 -3
- package/lib/components/multiple-search/multiple-search.component.d.ts +1 -1
- package/lib/components/multiple-search-plus/multiple-search-plus.component.d.ts +1 -2
- package/lib/components/optional-disable-container/optional-disable-container.component.d.ts +1 -1
- package/lib/components/pagination/pagination.component.d.ts +1 -1
- package/lib/components/popin/popin.component.d.ts +1 -1
- package/lib/components/progress-bar/progress-bar.component.d.ts +1 -1
- package/lib/components/radio-legacy/radio.component.d.ts +1 -1
- package/lib/components/row/row.component.d.ts +1 -1
- package/lib/components/search/search.component.d.ts +1 -1
- package/lib/components/select/option/select-option.directive.d.ts +1 -1
- package/lib/components/select/select/select.component.d.ts +1 -1
- package/lib/components/select/select/select.directive.d.ts +1 -1
- package/lib/components/select/select-search-trigger/select-search-trigger.component.d.ts +1 -1
- package/lib/components/select-in-text/select-in-text.component.d.ts +1 -1
- package/lib/components/selected-list/selected-list.component.d.ts +1 -1
- package/lib/components/separator/separator.component.d.ts +1 -1
- package/lib/components/shared-components.module.d.ts +34 -35
- package/lib/components/snackbar/snackbar.component.d.ts +1 -1
- package/lib/components/state/state.component.d.ts +1 -1
- package/lib/components/summary/summary.component.d.ts +1 -1
- package/lib/components/switch/switch.component.d.ts +1 -1
- package/lib/components/table/directives/checkBoxRow.directive.d.ts +1 -1
- package/lib/components/table/directives/column.directive.d.ts +1 -1
- package/lib/components/table/directives/columnHeader.directive.d.ts +1 -1
- package/lib/components/table/table.component.d.ts +1 -1
- package/lib/components/tabs/tab/tab.component.d.ts +1 -1
- package/lib/components/tabs/tab-body/tab-body.component.d.ts +1 -1
- package/lib/components/tabs/tabs.component.d.ts +1 -1
- package/lib/components/tag/tag.component.d.ts +1 -1
- package/lib/components/tag-dropdown/tag-dropdown.component.d.ts +1 -1
- package/lib/components/tag-label/tag-label.component.d.ts +1 -1
- package/lib/components/text/text.component.d.ts +1 -1
- package/lib/components/text-area/text-area.component.d.ts +1 -1
- package/lib/components/token-check/token-check.component.d.ts +1 -1
- package/lib/components/tooltip/tooltip.component.d.ts +1 -1
- package/lib/components/tree/tree.component.d.ts +1 -1
- package/lib/components/upload/upload.component.d.ts +1 -1
- package/lib/components/wrapper/wrapper.component.d.ts +1 -1
- package/lib/components/wrapper-blocs/wrapper-blocs.component.d.ts +1 -1
- package/lib/components/wrapper-sidebar/wrapper-sidebar.component.d.ts +1 -1
- package/lib/directives/abstract-debounce/abstract-debounce.directive.d.ts +1 -1
- package/lib/directives/auto-hide/auto-hide.directive.d.ts +1 -1
- package/lib/directives/keyboard-events/only-numbers.directive.d.ts +1 -1
- package/lib/directives/keyboard-events/two-digital-decimal-number.directive.d.ts +1 -1
- package/lib/directives/ng-var.directive.d.ts +1 -1
- package/lib/directives/scroll-to/scroll-to.directive.d.ts +1 -1
- package/lib/directives/zindex-toggle/zindex-toggle.directive.d.ts +1 -1
- package/package.json +31 -35
- package/esm2020/lib/components/alert-popup/alert-popup-module.mjs +0 -21
- package/esm2020/lib/components/alert-popup/alert-popup.component.mjs +0 -41
- package/esm2020/lib/components/back/back.component.mjs +0 -12
- package/esm2020/lib/components/block/block.component.mjs +0 -124
- package/esm2020/lib/components/block-with-checkbox/block-with-checkbox.component.mjs +0 -46
- package/esm2020/lib/components/button/button.component.mjs +0 -200
- package/esm2020/lib/components/calendar/calendar.component.mjs +0 -237
- package/esm2020/lib/components/confirm-delete/confirm-delete.component.mjs +0 -64
- package/esm2020/lib/components/delete/delete.component.mjs +0 -12
- package/esm2020/lib/components/draganddrop-list/draganddrop-list.component.mjs +0 -61
- package/esm2020/lib/components/dropdown/dropdown.component.mjs +0 -26
- package/esm2020/lib/components/edit-in-place/edit-in-place.component.mjs +0 -202
- package/esm2020/lib/components/expansion/accordion/accordion.component.mjs +0 -74
- package/esm2020/lib/components/expansion/expansion-panel/expansion-panel.directive.mjs +0 -88
- package/esm2020/lib/components/expansion/expansion-panel-header/expansion-panel-header.directive.mjs +0 -49
- package/esm2020/lib/components/filters/filters.component.mjs +0 -41
- package/esm2020/lib/components/free-popin/free-popin.component.mjs +0 -66
- package/esm2020/lib/components/header-page/header-page.component.mjs +0 -42
- package/esm2020/lib/components/hn/h2/h2.component.mjs +0 -13
- package/esm2020/lib/components/hn/h3/h3.component.mjs +0 -18
- package/esm2020/lib/components/hn/h4/h4.component.mjs +0 -18
- package/esm2020/lib/components/image/image.component.mjs +0 -17
- package/esm2020/lib/components/info/info.component.mjs +0 -12
- package/esm2020/lib/components/inputs/input/input.component.mjs +0 -184
- package/esm2020/lib/components/inputs/input-search/input-search.component.mjs +0 -65
- package/esm2020/lib/components/link/link.component.mjs +0 -57
- package/esm2020/lib/components/logo/logo.component.mjs +0 -20
- package/esm2020/lib/components/mosaic/mosaic.component.mjs +0 -84
- package/esm2020/lib/components/multiple-search/multiple-search.component.mjs +0 -115
- package/esm2020/lib/components/multiple-search-plus/multiple-search-plus.component.mjs +0 -100
- package/esm2020/lib/components/pagination/pagination.component.mjs +0 -50
- package/esm2020/lib/components/pagination/pagination.module.mjs +0 -33
- package/esm2020/lib/components/pagination/pipes/array-pages.pipe.mjs +0 -28
- package/esm2020/lib/components/pagination/pipes/custom-text.pipe.mjs +0 -34
- package/esm2020/lib/components/pagination/pipes/is-last-page.pipe.mjs +0 -25
- package/esm2020/lib/components/popin/popin.component.mjs +0 -73
- package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +0 -75
- package/esm2020/lib/components/radio/radio.component.mjs +0 -38
- package/esm2020/lib/components/radio-legacy/radio.component.mjs +0 -58
- package/esm2020/lib/components/row/row.component.mjs +0 -144
- package/esm2020/lib/components/search/search.component.mjs +0 -86
- package/esm2020/lib/components/select/option/select-option.directive.mjs +0 -98
- package/esm2020/lib/components/select/select/select.component.mjs +0 -198
- package/esm2020/lib/components/select/select/select.directive.mjs +0 -175
- package/esm2020/lib/components/select/select/value-change.service.mjs +0 -190
- package/esm2020/lib/components/select-in-text/select-in-text.component.mjs +0 -103
- package/esm2020/lib/components/selected-list/selected-list.component.mjs +0 -62
- package/esm2020/lib/components/separator/separator.component.mjs +0 -17
- package/esm2020/lib/components/settings/settings.component.mjs +0 -12
- package/esm2020/lib/components/shared-components.module.mjs +0 -438
- package/esm2020/lib/components/snackbar/snackbar.component.mjs +0 -85
- package/esm2020/lib/components/state/state.component.mjs +0 -16
- package/esm2020/lib/components/summary/summary.component.mjs +0 -41
- package/esm2020/lib/components/switch/switch.component.mjs +0 -89
- package/esm2020/lib/components/table/directives/checkBoxRow.directive.mjs +0 -92
- package/esm2020/lib/components/table/directives/column.directive.mjs +0 -42
- package/esm2020/lib/components/table/directives/columnHeader.directive.mjs +0 -199
- package/esm2020/lib/components/table/shared/filters-table.service.mjs +0 -68
- package/esm2020/lib/components/table/shared/table-checkbox-id.service.mjs +0 -20
- package/esm2020/lib/components/table/table.component.mjs +0 -146
- package/esm2020/lib/components/tabs/tabs.component.mjs +0 -99
- package/esm2020/lib/components/text-area/text-area.component.mjs +0 -99
- package/esm2020/lib/components/tooltip/tooltip.component.mjs +0 -30
- package/esm2020/lib/components/upload/upload.component.mjs +0 -36
- package/esm2020/lib/components/wrapper/wrapper.component.mjs +0 -18
- package/esm2020/lib/components/wrapper-blocs/wrapper-blocs.component.mjs +0 -19
- package/esm2020/lib/directives/auto-hide/auto-hide.directive.mjs +0 -50
- package/esm2020/lib/directives/keyboard-events/keypress-enter.directive.mjs +0 -25
- package/esm2020/lib/directives/keyboard-events/only-numbers.directive.mjs +0 -45
- package/esm2020/lib/directives/keyboard-events/two-digital-decimal-number.directive.mjs +0 -36
- package/esm2020/lib/directives/ng-var.directive.mjs +0 -32
- package/esm2020/lib/directives/zindex-toggle/zindex-toggle.directive.mjs +0 -44
- package/esm2020/lib/pipes/find-option-selected-field.pipe.mjs +0 -29
- package/esm2020/lib/pipes/tree/format-object-to-recursif-tree.pipe.mjs +0 -41
- package/esm2020/lib/pipes/tree/format-object-to-simple-tree.pipe.mjs +0 -49
- package/esm2020/lib/services/dom.service.mjs +0 -59
- package/esm2020/lib/services/history.service.mjs +0 -53
- package/esm2020/lib/services/multiple-selection.service.mjs +0 -62
- package/esm2020/lib/utils/html-container.class.mjs +0 -30
- package/esm2020/lib/utils/uuid.mjs +0 -8
- package/esm2020/lib/wizi-components.module.mjs +0 -34
- package/fesm2015/wizishop-angular-components.mjs +0 -7029
- package/fesm2015/wizishop-angular-components.mjs.map +0 -1
- package/fesm2020/wizishop-angular-components.mjs.map +0 -1
- package/wizishop-angular-components-15.1.114.tgz +0 -0
- /package/{esm2020 → esm2022}/lib/animations/show/opacity.animation.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/breadcrumbs/breadcrumbs.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/expansion/accordion/accordion-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/expansion/accordion/accordion-item.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/expansion/expansion-panel-header/expansion-panel-header.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/expansion/expansion-panel-header/expansion-panel-header.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/inputs/input-with-select/option-item.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/select/call-to-action.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/select/option/option-selection-handler.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/select/option/option-selection-handler.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/select/select-items.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/table/shared/distinct-until-table-filters-changed.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/tree/tree.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/array.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/wizishop-angular-components.mjs +0 -0
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import { DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, A, Z, ZERO, NINE, TAB } from '@angular/cdk/keycodes';
|
|
2
|
-
import { ContentChildren, Directive, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';
|
|
3
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { startWith, Subject, takeUntil } from 'rxjs';
|
|
5
|
-
import { OPTION_SELECTION_HANDLER } from '../option/option-selection-handler.token';
|
|
6
|
-
import { ValueChangeService } from './value-change.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "./value-change.service";
|
|
9
|
-
export class SelectDirective {
|
|
10
|
-
get tabindex() {
|
|
11
|
-
return this.tabIndex;
|
|
12
|
-
}
|
|
13
|
-
get isSelectDisabled() {
|
|
14
|
-
return this.disabled;
|
|
15
|
-
}
|
|
16
|
-
/** Handles all keydown events on the select. */
|
|
17
|
-
onKeydown(event) {
|
|
18
|
-
if (event.keyCode === TAB) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
if (this.disabled) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
this.handleKeyboardAction(event);
|
|
25
|
-
}
|
|
26
|
-
set value(value) {
|
|
27
|
-
this._value = value;
|
|
28
|
-
if (!this.optionChildren) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
this.valueChangeService.assignValue(value);
|
|
32
|
-
}
|
|
33
|
-
get value() {
|
|
34
|
-
return this._value;
|
|
35
|
-
}
|
|
36
|
-
get multiple() {
|
|
37
|
-
return this._multiple;
|
|
38
|
-
}
|
|
39
|
-
set multiple(value) {
|
|
40
|
-
this._multiple = value;
|
|
41
|
-
this.valueChangeService.setMultiple(value);
|
|
42
|
-
}
|
|
43
|
-
set disabled(disabled) {
|
|
44
|
-
this._disabled = disabled;
|
|
45
|
-
this.valueChangeService.setDisabledState(disabled);
|
|
46
|
-
}
|
|
47
|
-
get disabled() {
|
|
48
|
-
return this._disabled;
|
|
49
|
-
}
|
|
50
|
-
get searchByTyping() {
|
|
51
|
-
return this._searchByTyping;
|
|
52
|
-
}
|
|
53
|
-
set searchByTyping(value) {
|
|
54
|
-
this._searchByTyping = value;
|
|
55
|
-
}
|
|
56
|
-
constructor(valueChangeService) {
|
|
57
|
-
this.valueChangeService = valueChangeService;
|
|
58
|
-
this.valueChange = new EventEmitter();
|
|
59
|
-
this._multiple = false;
|
|
60
|
-
this._disabled = false;
|
|
61
|
-
this.tabIndex = 0;
|
|
62
|
-
this._searchByTyping = false;
|
|
63
|
-
this.isDestroyed$ = new Subject();
|
|
64
|
-
// ControlValueAccessor methods
|
|
65
|
-
this.onChange = () => { };
|
|
66
|
-
this.onTouch = () => { };
|
|
67
|
-
}
|
|
68
|
-
ngOnInit() {
|
|
69
|
-
this.handleValueChange();
|
|
70
|
-
}
|
|
71
|
-
ngAfterViewInit() {
|
|
72
|
-
this.handleOptionChildren();
|
|
73
|
-
}
|
|
74
|
-
handleValueChange() {
|
|
75
|
-
this.valueChangeService.valueChange$.pipe(takeUntil(this.isDestroyed$)).subscribe(value => {
|
|
76
|
-
this._value = value;
|
|
77
|
-
this.valueChange.emit(this.value);
|
|
78
|
-
this.onChange(this.value);
|
|
79
|
-
this.onTouch(this.value);
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
handleOptionChildren() {
|
|
83
|
-
this.optionChildren.changes.pipe(takeUntil(this.isDestroyed$), startWith(this.optionChildren)).subscribe(optionChildren => {
|
|
84
|
-
this.valueChangeService.handleSelectOptionsChange(optionChildren, this.value);
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
/** Handles keyboard events when the selected is open. */
|
|
88
|
-
handleKeyboardAction(event) {
|
|
89
|
-
if (!this.searchByTyping) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
const keyCode = event.keyCode;
|
|
93
|
-
const isArrowKey = keyCode === DOWN_ARROW ||
|
|
94
|
-
keyCode === UP_ARROW ||
|
|
95
|
-
keyCode === LEFT_ARROW ||
|
|
96
|
-
keyCode === RIGHT_ARROW;
|
|
97
|
-
const isTyping = (keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE);
|
|
98
|
-
if (isArrowKey) {
|
|
99
|
-
event.preventDefault(); // prevents the page from scrolling
|
|
100
|
-
// select the next option on arrow key down
|
|
101
|
-
if (keyCode === DOWN_ARROW || keyCode === RIGHT_ARROW) {
|
|
102
|
-
this.valueChangeService.selectNextOption();
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
this.valueChangeService.selectPreviousOption();
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
if (isTyping) {
|
|
109
|
-
this.valueChangeService.searchOptionByFirstLetter(event.key);
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
writeValue(value) {
|
|
114
|
-
if (typeof value === 'undefined') {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
this.value = value;
|
|
118
|
-
}
|
|
119
|
-
registerOnChange(fn) {
|
|
120
|
-
this.onChange = fn;
|
|
121
|
-
}
|
|
122
|
-
registerOnTouched(fn) {
|
|
123
|
-
this.onTouch = fn;
|
|
124
|
-
}
|
|
125
|
-
setDisabledState(isDisabled) {
|
|
126
|
-
this.disabled = isDisabled;
|
|
127
|
-
}
|
|
128
|
-
;
|
|
129
|
-
ngOnDestroy() {
|
|
130
|
-
this.isDestroyed$.next();
|
|
131
|
-
this.isDestroyed$.complete();
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
SelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SelectDirective, deps: [{ token: i1.ValueChangeService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
135
|
-
SelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: SelectDirective, isStandalone: true, selector: "[wacSelect]", inputs: { value: "value", multiple: "multiple", disabled: "disabled", tabIndex: "tabIndex", searchByTyping: "searchByTyping" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.tabindex": "this.tabindex", "class.wac-select-disabled": "this.isSelectDisabled" } }, providers: [
|
|
136
|
-
{ provide: NG_VALUE_ACCESSOR, useExisting: SelectDirective, multi: true },
|
|
137
|
-
ValueChangeService
|
|
138
|
-
], queries: [{ propertyName: "optionChildren", predicate: OPTION_SELECTION_HANDLER, descendants: true }], exportAs: ["wacSelect"], ngImport: i0 });
|
|
139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SelectDirective, decorators: [{
|
|
140
|
-
type: Directive,
|
|
141
|
-
args: [{
|
|
142
|
-
selector: '[wacSelect]',
|
|
143
|
-
providers: [
|
|
144
|
-
{ provide: NG_VALUE_ACCESSOR, useExisting: SelectDirective, multi: true },
|
|
145
|
-
ValueChangeService
|
|
146
|
-
],
|
|
147
|
-
exportAs: 'wacSelect',
|
|
148
|
-
standalone: true
|
|
149
|
-
}]
|
|
150
|
-
}], ctorParameters: function () { return [{ type: i1.ValueChangeService }]; }, propDecorators: { tabindex: [{
|
|
151
|
-
type: HostBinding,
|
|
152
|
-
args: ['attr.tabindex']
|
|
153
|
-
}], isSelectDisabled: [{
|
|
154
|
-
type: HostBinding,
|
|
155
|
-
args: ['class.wac-select-disabled']
|
|
156
|
-
}], onKeydown: [{
|
|
157
|
-
type: HostListener,
|
|
158
|
-
args: ['keydown', ['$event']]
|
|
159
|
-
}], optionChildren: [{
|
|
160
|
-
type: ContentChildren,
|
|
161
|
-
args: [OPTION_SELECTION_HANDLER, { descendants: true }]
|
|
162
|
-
}], value: [{
|
|
163
|
-
type: Input
|
|
164
|
-
}], valueChange: [{
|
|
165
|
-
type: Output
|
|
166
|
-
}], multiple: [{
|
|
167
|
-
type: Input
|
|
168
|
-
}], disabled: [{
|
|
169
|
-
type: Input
|
|
170
|
-
}], tabIndex: [{
|
|
171
|
-
type: Input
|
|
172
|
-
}], searchByTyping: [{
|
|
173
|
-
type: Input
|
|
174
|
-
}] } });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC9zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdHLE9BQU8sRUFBaUIsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNoSyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFZNUQsTUFBTSxPQUFPLGVBQWU7SUFFeEIsSUFBa0MsUUFBUTtRQUN4QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQThDLGdCQUFnQjtRQUM1RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELGdEQUFnRDtJQUNYLFNBQVMsQ0FBQyxLQUFvQjtRQUNqRSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFO1lBQ3pCLE9BQU87U0FDUjtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixPQUFPO1NBQ1I7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S0FBSztnQkFXRixRQUFRO3NCQURYLEtBQUs7Z0JBV0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRixjQUFjO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9XTl9BUlJPVywgVVBfQVJST1csIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBBLCBaLCBaRVJPLCBOSU5FLCBUQUIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgc3RhcnRXaXRoLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgT3B0aW9uU2VsZWN0aW9uSGFuZGxlciB9IGZyb20gJy4uL29wdGlvbi9vcHRpb24tc2VsZWN0aW9uLWhhbmRsZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgT1BUSU9OX1NFTEVDVElPTl9IQU5ETEVSIH0gZnJvbSAnLi4vb3B0aW9uL29wdGlvbi1zZWxlY3Rpb24taGFuZGxlci50b2tlbic7XHJcbmltcG9ydCB7IFZhbHVlQ2hhbmdlU2VydmljZSB9IGZyb20gJy4vdmFsdWUtY2hhbmdlLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZShcclxuICB7XHJcbiAgICBzZWxlY3RvcjogJ1t3YWNTZWxlY3RdJyxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBTZWxlY3REaXJlY3RpdmUsIG11bHRpOiB0cnVlIH0sXHJcbiAgICAgICAgVmFsdWVDaGFuZ2VTZXJ2aWNlXHJcbiAgICAgIF0sXHJcbiAgICBleHBvcnRBczogJ3dhY1NlbGVjdCcsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3REaXJlY3RpdmU8VE9wdGlvblZhbHVlPiBpbXBsZW1lbnRzICBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpIGdldCB0YWJpbmRleCgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudGFiSW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy53YWMtc2VsZWN0LWRpc2FibGVkJykgZ2V0IGlzU2VsZWN0RGlzYWJsZWQoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBIYW5kbGVzIGFsbCBrZXlkb3duIGV2ZW50cyBvbiB0aGUgc2VsZWN0LiAqL1xyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gVEFCKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaGFuZGxlS2V5Ym9hcmRBY3Rpb24oZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oT1BUSU9OX1NFTEVDVElPTl9IQU5ETEVSIGFzIGFueSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBvcHRpb25DaGlsZHJlbiE6IFF1ZXJ5TGlzdDxPcHRpb25TZWxlY3Rpb25IYW5kbGVyPFRPcHRpb25WYWx1ZT4+O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgdmFsdWUodmFsdWU6IFRPcHRpb25WYWx1ZSB8IFRPcHRpb25WYWx1ZVtdKSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcblxyXG4gICAgICBpZiAoIXRoaXMub3B0aW9uQ2hpbGRyZW4pIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VTZXJ2aWNlLmFzc2lnblZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmFsdWUoKSA6IFRPcHRpb25WYWx1ZSB8IFRPcHRpb25WYWx1ZVtdIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG4gICAgX3ZhbHVlOiBUT3B0aW9uVmFsdWUgfCBUT3B0aW9uVmFsdWVbXTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBtdWx0aXBsZSgpOiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xyXG4gICAgfVxyXG4gICAgc2V0IG11bHRpcGxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgIHRoaXMuX211bHRpcGxlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VTZXJ2aWNlLnNldE11bHRpcGxlKHZhbHVlKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX211bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgICB0aGlzLl9kaXNhYmxlZCA9IGRpc2FibGVkO1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlU2VydmljZS5zZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkKTtcclxuICAgIH1cclxuICAgIGdldCBkaXNhYmxlZCgpIDogYm9vbGVhbiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICAgIH1cclxuICAgIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHJcbiAgICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyID0gMDtcclxuXHJcbiAgICBASW5wdXQoKSBcclxuICAgIGdldCBzZWFyY2hCeVR5cGluZygpOiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaEJ5VHlwaW5nO1xyXG4gICAgfVxyXG4gICAgc2V0IHNlYXJjaEJ5VHlwaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgIHRoaXMuX3NlYXJjaEJ5VHlwaW5nID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBfc2VhcmNoQnlUeXBpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBpc0Rlc3Ryb3llZCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB2YWx1ZUNoYW5nZVNlcnZpY2U6IFZhbHVlQ2hhbmdlU2VydmljZTxUT3B0aW9uVmFsdWU+KSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuaGFuZGxlVmFsdWVDaGFuZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlT3B0aW9uQ2hpbGRyZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZVZhbHVlQ2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VTZXJ2aWNlLnZhbHVlQ2hhbmdlJC5waXBlKHRha2VVbnRpbCh0aGlzLmlzRGVzdHJveWVkJCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgIHRoaXMub25Ub3VjaCh0aGlzLnZhbHVlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZU9wdGlvbkNoaWxkcmVuKCkge1xyXG4gICAgICAgIHRoaXMub3B0aW9uQ2hpbGRyZW4uY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmlzRGVzdHJveWVkJCksIHN0YXJ0V2l0aCh0aGlzLm9wdGlvbkNoaWxkcmVuKSkuc3Vic2NyaWJlKG9wdGlvbkNoaWxkcmVuID0+IHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZVNlcnZpY2UuaGFuZGxlU2VsZWN0T3B0aW9uc0NoYW5nZShvcHRpb25DaGlsZHJlbiwgdGhpcy52YWx1ZSk7XHJcblxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBIYW5kbGVzIGtleWJvYXJkIGV2ZW50cyB3aGVuIHRoZSBzZWxlY3RlZCBpcyBvcGVuLiAqL1xyXG4gICAgcHJvdGVjdGVkIGhhbmRsZUtleWJvYXJkQWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAgIGlmICghdGhpcy5zZWFyY2hCeVR5cGluZykge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBrZXlDb2RlID0gZXZlbnQua2V5Q29kZTtcclxuICAgICAgY29uc3QgaXNBcnJvd0tleSA9XHJcbiAgICAgICAga2V5Q29kZSA9PT0gRE9XTl9BUlJPVyB8fFxyXG4gICAgICAgIGtleUNvZGUgPT09IFVQX0FSUk9XIHx8XHJcbiAgICAgICAga2V5Q29kZSA9PT0gTEVGVF9BUlJPVyB8fFxyXG4gICAgICAgIGtleUNvZGUgPT09IFJJR0hUX0FSUk9XO1xyXG4gICAgICBjb25zdCBpc1R5cGluZyA9IChrZXlDb2RlID49IEEgJiYga2V5Q29kZSA8PSBaKSB8fCAoa2V5Q29kZSA+PSBaRVJPICYmIGtleUNvZGUgPD0gTklORSk7XHJcbiAgICAgIGlmIChpc0Fycm93S2V5KSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gcHJldmVudHMgdGhlIHBhZ2UgZnJvbSBzY3JvbGxpbmdcclxuICAgICAgICAvLyBzZWxlY3QgdGhlIG5leHQgb3B0aW9uIG9uIGFycm93IGtleSBkb3duXHJcbiAgICAgICAgaWYgKGtleUNvZGUgPT09IERPV05fQVJST1cgfHwga2V5Q29kZSA9PT0gUklHSFRfQVJST1cpIHtcclxuICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2VTZXJ2aWNlLnNlbGVjdE5leHRPcHRpb24oKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZVNlcnZpY2Uuc2VsZWN0UHJldmlvdXNPcHRpb24oKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpc1R5cGluZykge1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VTZXJ2aWNlLnNlYXJjaE9wdGlvbkJ5Rmlyc3RMZXR0ZXIoZXZlbnQua2V5KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgbWV0aG9kc1xyXG5cclxuICAgIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICAgIG9uVG91Y2g6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KXtcclxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpe1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KXtcclxuICAgICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgfTtcclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgdGhpcy5pc0Rlc3Ryb3llZCQubmV4dCgpO1xyXG4gICAgICB0aGlzLmlzRGVzdHJveWVkJC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { merge, Subject } from 'rxjs';
|
|
3
|
-
import { filter, map, takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { compareArrays } from '../../../utils/array';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class ValueChangeService {
|
|
7
|
-
set value(value) {
|
|
8
|
-
this._value = value;
|
|
9
|
-
this.handleValueChange();
|
|
10
|
-
this.valueChange$.next(value);
|
|
11
|
-
}
|
|
12
|
-
get value() {
|
|
13
|
-
return this._value;
|
|
14
|
-
}
|
|
15
|
-
constructor(changeDetectorRef) {
|
|
16
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
17
|
-
this.valueChange$ = new Subject();
|
|
18
|
-
this.multiple = false;
|
|
19
|
-
this.indexSelectedOption = null; // todo update to array
|
|
20
|
-
this.resetListeners$ = new Subject();
|
|
21
|
-
this.indexOfMatchedOption = (option, index, letter) => {
|
|
22
|
-
const textOption = option.getContentRef().nativeElement.textContent.trim().toLowerCase();
|
|
23
|
-
return textOption.startsWith(letter) ? index : null;
|
|
24
|
-
};
|
|
25
|
-
this.isNotNull = (index) => {
|
|
26
|
-
return index !== null;
|
|
27
|
-
};
|
|
28
|
-
this.highestAndClosestIndex = (index) => {
|
|
29
|
-
if (isNaN(this.indexSelectedOption)) {
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
if (index > this.indexSelectedOption) {
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
return false;
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
handleSelectOptionsChange(optionChildren, value) {
|
|
39
|
-
this.resetListeners$.next();
|
|
40
|
-
this.optionChildren = optionChildren;
|
|
41
|
-
this._value = value;
|
|
42
|
-
this.indexSelectedOption = null;
|
|
43
|
-
this.handleMultipleSelection();
|
|
44
|
-
this.handleInitialSelectedOption();
|
|
45
|
-
this.handleSelectedOptionsEvent();
|
|
46
|
-
}
|
|
47
|
-
assignValue(value) {
|
|
48
|
-
this._value = value;
|
|
49
|
-
this.handleValueChange();
|
|
50
|
-
}
|
|
51
|
-
handleValueChange() {
|
|
52
|
-
this.changeSelectedOption();
|
|
53
|
-
this.updateSelectPlaceholder();
|
|
54
|
-
this.changeDetectorRef.markForCheck();
|
|
55
|
-
}
|
|
56
|
-
setDisabledState(isDisabled) {
|
|
57
|
-
this.disabled = isDisabled;
|
|
58
|
-
this.optionChildren?.forEach((option) => option.setDisabledState(isDisabled));
|
|
59
|
-
}
|
|
60
|
-
selectNextOption() {
|
|
61
|
-
// TODO : Handle multiple selection
|
|
62
|
-
if (this.indexSelectedOption + 1 >= this.optionChildren.length) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
if (this.indexSelectedOption === null) {
|
|
66
|
-
this.indexSelectedOption = 0;
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
this.indexSelectedOption = this.indexSelectedOption + 1;
|
|
70
|
-
}
|
|
71
|
-
this.value = this.optionChildren.get(this.indexSelectedOption).value;
|
|
72
|
-
}
|
|
73
|
-
selectPreviousOption() {
|
|
74
|
-
// TODO : Handle multiple selection
|
|
75
|
-
if (!this.indexSelectedOption) {
|
|
76
|
-
this.indexSelectedOption = null;
|
|
77
|
-
this.assignValue(null);
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
this.indexSelectedOption = this.indexSelectedOption - 1;
|
|
81
|
-
this.value = this.optionChildren.get(this.indexSelectedOption).value;
|
|
82
|
-
}
|
|
83
|
-
searchOptionByFirstLetter(letter) {
|
|
84
|
-
// TODO : Handle multiple selectiong
|
|
85
|
-
const matchedOptionsIndex = this.optionChildren
|
|
86
|
-
.map((option, index) => this.indexOfMatchedOption(option, index, letter))
|
|
87
|
-
.filter(this.isNotNull);
|
|
88
|
-
if (!matchedOptionsIndex.length) { // reset the selection
|
|
89
|
-
this.indexSelectedOption = null;
|
|
90
|
-
this.value = null;
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
// find the next option after the current selected option, or the first option
|
|
94
|
-
const validOptionIndex = matchedOptionsIndex.find(this.highestAndClosestIndex);
|
|
95
|
-
this.indexSelectedOption = isNaN(validOptionIndex) ? matchedOptionsIndex[0] : validOptionIndex;
|
|
96
|
-
this.value = this.optionChildren.get(this.indexSelectedOption).value;
|
|
97
|
-
}
|
|
98
|
-
setMultiple(value) {
|
|
99
|
-
this.multiple = value;
|
|
100
|
-
}
|
|
101
|
-
handleMultipleSelection() {
|
|
102
|
-
if (this.multiple) {
|
|
103
|
-
setTimeout(() => {
|
|
104
|
-
this.optionChildren.forEach((option) => option.setMultiple(true));
|
|
105
|
-
}, 0);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
handleInitialSelectedOption() {
|
|
109
|
-
setTimeout(() => {
|
|
110
|
-
if (this.mustUpdateValueWithInitialSelectedOptionValues()) { // initial option value selected win against initial value or ngModel value
|
|
111
|
-
this.value = this.multiple ? this.getSelectedOptionsValues() : this.getSelectedOptionsValues()[0];
|
|
112
|
-
}
|
|
113
|
-
if (this.disabled) {
|
|
114
|
-
this.optionChildren.forEach((option) => option.setDisabledState(true));
|
|
115
|
-
}
|
|
116
|
-
this.handleValueChange();
|
|
117
|
-
}, 0);
|
|
118
|
-
}
|
|
119
|
-
mustUpdateValueWithInitialSelectedOptionValues() {
|
|
120
|
-
if (!this.getSelectedOptionComponents().length) {
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
if (this.multiple && Array.isArray(this.value)) {
|
|
124
|
-
return !compareArrays(this.value, this.getSelectedOptionsValues());
|
|
125
|
-
}
|
|
126
|
-
return this.value !== this.getSelectedOptionsValues()[0];
|
|
127
|
-
}
|
|
128
|
-
handleSelectedOptionsEvent() {
|
|
129
|
-
this.optionSelectedChangeListeners().subscribe((option) => {
|
|
130
|
-
const selectedOptionsValues = this.getSelectedOptionsValues();
|
|
131
|
-
if (this.multiple) {
|
|
132
|
-
this.value = selectedOptionsValues;
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
this.value = option.selected ? option.value : undefined;
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
updateSelectPlaceholder() {
|
|
139
|
-
if (!this.value && typeof this.value !== 'number') {
|
|
140
|
-
this.selectedOptionContent = null;
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
this.selectedOptionContent = this.getSelectedOptionsContent();
|
|
144
|
-
}
|
|
145
|
-
getSelectedOptionsContent() {
|
|
146
|
-
if (this.multiple) {
|
|
147
|
-
return this.getSelectedOptionComponents().reduce((acc, option) => (acc ? acc + ', ' : '') + option.getContentRef().nativeElement.textContent.trim(), ''); // todo improve for multiple
|
|
148
|
-
}
|
|
149
|
-
return this.getSelectedOptionComponents()[0]?.getContentRef().nativeElement.innerHTML;
|
|
150
|
-
}
|
|
151
|
-
getSelectedOptionComponents() {
|
|
152
|
-
return this.optionChildren.filter((option) => option.selected);
|
|
153
|
-
}
|
|
154
|
-
getSelectedOptionsValues() {
|
|
155
|
-
return this.getSelectedOptionComponents().map((option) => option.value);
|
|
156
|
-
}
|
|
157
|
-
optionSelectedChangeListeners() {
|
|
158
|
-
const selectedChange$ = this.optionChildren.map((option) => {
|
|
159
|
-
return option.selectedChange.pipe(filter(() => !this.disabled), map(() => option));
|
|
160
|
-
});
|
|
161
|
-
return merge(...selectedChange$).pipe(takeUntil(this.resetListeners$));
|
|
162
|
-
}
|
|
163
|
-
changeSelectedOption() {
|
|
164
|
-
this.optionChildren.forEach((optionComponent, index) => {
|
|
165
|
-
optionComponent.setSelected(this.isSelectedValue(optionComponent.value));
|
|
166
|
-
if (optionComponent.selected) {
|
|
167
|
-
this.indexSelectedOption = index;
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* May not work with objects values
|
|
173
|
-
*/
|
|
174
|
-
isSelectedValue(value2) {
|
|
175
|
-
if (this.multiple && Array.isArray(this.value)) {
|
|
176
|
-
return this.value.includes(value2);
|
|
177
|
-
}
|
|
178
|
-
return this.value === value2;
|
|
179
|
-
}
|
|
180
|
-
ngOnDestroy() {
|
|
181
|
-
this.resetListeners$.next();
|
|
182
|
-
this.resetListeners$.complete();
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
ValueChangeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ValueChangeService, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
186
|
-
ValueChangeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ValueChangeService });
|
|
187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ValueChangeService, decorators: [{
|
|
188
|
-
type: Injectable
|
|
189
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtY2hhbmdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QvdmFsdWUtY2hhbmdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixVQUFVLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFJckQsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixJQUFJLEtBQUssQ0FBQyxLQUFvQztRQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFnQkQsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUExQnhELGlCQUFZLEdBQTJDLElBQUksT0FBTyxFQUFFLENBQUM7UUFZckUsYUFBUSxHQUFZLEtBQUssQ0FBQztRQVUxQix3QkFBbUIsR0FBVyxJQUFJLENBQUMsQ0FBQyx1QkFBdUI7UUFFM0Qsb0JBQWUsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQW9GdkMseUJBQW9CLEdBQUcsQ0FBQyxNQUFxQyxFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsRUFBRTtZ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O0lBQ00sZUFBZSxDQUFDLE1BQW9CO1FBQ3hDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzsrR0ExT1Esa0JBQWtCO21IQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBjb21wYXJlQXJyYXlzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYXJyYXknO1xyXG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBWYWx1ZUNoYW5nZVNlcnZpY2U8VE9wdGlvblZhbHVlPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgdmFsdWVDaGFuZ2UkOiBTdWJqZWN0PFRPcHRpb25WYWx1ZSB8IFRPcHRpb25WYWx1ZVtdPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBUT3B0aW9uVmFsdWUgfCBUT3B0aW9uVmFsdWVbXSkge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVWYWx1ZUNoYW5nZSgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UkLm5leHQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB2YWx1ZSgpOiBUT3B0aW9uVmFsdWUgfCBUT3B0aW9uVmFsdWVbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfdmFsdWU6IFRPcHRpb25WYWx1ZSB8IFRPcHRpb25WYWx1ZVtdO1xyXG5cclxuICAgIGRpc2FibGVkOiBib29sZWFuO1xyXG5cclxuICAgIG9wdGlvbkNoaWxkcmVuOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PFRPcHRpb25WYWx1ZT4+O1xyXG5cclxuICAgIHNlbGVjdGVkT3B0aW9uQ29udGVudDogYW55O1xyXG5cclxuICAgIGluZGV4U2VsZWN0ZWRPcHRpb246IG51bWJlciA9IG51bGw7IC8vIHRvZG8gdXBkYXRlIHRvIGFycmF5XHJcblxyXG4gICAgcmVzZXRMaXN0ZW5lcnMkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVNlbGVjdE9wdGlvbnNDaGFuZ2Uob3B0aW9uQ2hpbGRyZW46IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VE9wdGlvblZhbHVlPj4sIHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnJlc2V0TGlzdGVuZXJzJC5uZXh0KCk7XHJcblxyXG4gICAgICAgIHRoaXMub3B0aW9uQ2hpbGRyZW4gPSBvcHRpb25DaGlsZHJlbjtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuaGFuZGxlTXVsdGlwbGVTZWxlY3Rpb24oKTtcclxuICAgICAgICB0aGlzLmhhbmRsZUluaXRpYWxTZWxlY3RlZE9wdGlvbigpO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlU2VsZWN0ZWRPcHRpb25zRXZlbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3NpZ25WYWx1ZSh2YWx1ZTogVE9wdGlvblZhbHVlIHwgVE9wdGlvblZhbHVlW10pIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlVmFsdWVDaGFuZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVWYWx1ZUNoYW5nZSgpIHtcclxuICAgICAgICB0aGlzLmNoYW5nZVNlbGVjdGVkT3B0aW9uKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RQbGFjZWhvbGRlcigpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICAgICAgdGhpcy5vcHRpb25DaGlsZHJlbj8uZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0TmV4dE9wdGlvbigpIHtcclxuICAgICAgICAvLyBUT0RPIDogSGFuZGxlIG11bHRpcGxlIHNlbGVjdGlvblxyXG4gICAgICAgIGlmICh0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24gKzEgPj0gdGhpcy5vcHRpb25DaGlsZHJlbi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24gPSAwO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiA9IHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiArIDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5vcHRpb25DaGlsZHJlbi5nZXQodGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uKS52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RQcmV2aW91c09wdGlvbigpIHtcclxuICAgICAgICAvLyBUT0RPIDogSGFuZGxlIG11bHRpcGxlIHNlbGVjdGlvblxyXG4gICAgICAgIGlmICghdGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuYXNzaWduVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiA9IHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiAtIDE7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMub3B0aW9uQ2hpbGRyZW4uZ2V0KHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbikudmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2VhcmNoT3B0aW9uQnlGaXJzdExldHRlcihsZXR0ZXI6IHN0cmluZykge1xyXG4gICAgICAgIC8vIFRPRE8gOiBIYW5kbGUgbXVsdGlwbGUgc2VsZWN0aW9uZ1xyXG4gICAgICAgIGNvbnN0IG1hdGNoZWRPcHRpb25zSW5kZXggPSB0aGlzLm9wdGlvbkNoaWxkcmVuXHJcbiAgICAgICAgICAgIC5tYXAoKG9wdGlvbiwgaW5kZXgpID0+IHRoaXMuaW5kZXhPZk1hdGNoZWRPcHRpb24ob3B0aW9uLCBpbmRleCwgbGV0dGVyKSlcclxuICAgICAgICAgICAgLmZpbHRlcih0aGlzLmlzTm90TnVsbCk7XHJcblxyXG4gICAgICAgIGlmICghbWF0Y2hlZE9wdGlvbnNJbmRleC5sZW5ndGgpIHsgLy8gcmVzZXQgdGhlIHNlbGVjdGlvblxyXG4gICAgICAgICAgICB0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24gPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gZmluZCB0aGUgbmV4dCBvcHRpb24gYWZ0ZXIgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgb3B0aW9uLCBvciB0aGUgZmlyc3Qgb3B0aW9uXHJcblxyXG4gICAgICAgIGNvbnN0IHZhbGlkT3B0aW9uSW5kZXggPSBtYXRjaGVkT3B0aW9uc0luZGV4LmZpbmQodGhpcy5oaWdoZXN0QW5kQ2xvc2VzdEluZGV4KTtcclxuXHJcbiAgICAgICAgdGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uID0gaXNOYU4odmFsaWRPcHRpb25JbmRleCkgPyBtYXRjaGVkT3B0aW9uc0luZGV4WzBdIDogdmFsaWRPcHRpb25JbmRleDtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5vcHRpb25DaGlsZHJlbi5nZXQodGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uKS52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRNdWx0aXBsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluZGV4T2ZNYXRjaGVkT3B0aW9uID0gKG9wdGlvbjogT3B0aW9uQ29tcG9uZW50PFRPcHRpb25WYWx1ZT4sIGluZGV4OiBudW1iZXIsIGxldHRlcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGV4dE9wdGlvbiA9IG9wdGlvbi5nZXRDb250ZW50UmVmKCkubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudC50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICByZXR1cm4gdGV4dE9wdGlvbi5zdGFydHNXaXRoKGxldHRlcikgPyBpbmRleCA6IG51bGw7XHJcbiAgICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzTm90TnVsbCA9IChpbmRleDogbnVtYmVyIHwgbnVsbCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBpbmRleCAhPT0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhpZ2hlc3RBbmRDbG9zZXN0SW5kZXggPSAoaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmIChpc05hTih0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kZXggPiB0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVNdWx0aXBsZVNlbGVjdGlvbigpIHtcclxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uQ2hpbGRyZW4uZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uc2V0TXVsdGlwbGUodHJ1ZSkpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVJbml0aWFsU2VsZWN0ZWRPcHRpb24oKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IC8vICEgQXZvaWQgRXhwcmVzc2lvbiBoYXMgY2hhbmdlZC4uLlxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubXVzdFVwZGF0ZVZhbHVlV2l0aEluaXRpYWxTZWxlY3RlZE9wdGlvblZhbHVlcygpKSB7IC8vIGluaXRpYWwgb3B0aW9uIHZhbHVlIHNlbGVjdGVkIHdpbiBhZ2FpbnN0IGluaXRpYWwgdmFsdWUgb3IgbmdNb2RlbCB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubXVsdGlwbGUgPyB0aGlzLmdldFNlbGVjdGVkT3B0aW9uc1ZhbHVlcygpIDogdGhpcy5nZXRTZWxlY3RlZE9wdGlvbnNWYWx1ZXMoKVswXTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uQ2hpbGRyZW4uZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uc2V0RGlzYWJsZWRTdGF0ZSh0cnVlKSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlVmFsdWVDaGFuZ2UoKTtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbXVzdFVwZGF0ZVZhbHVlV2l0aEluaXRpYWxTZWxlY3RlZE9wdGlvblZhbHVlcygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZ2V0U2VsZWN0ZWRPcHRpb25Db21wb25lbnRzKCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuICFjb21wYXJlQXJyYXlzKHRoaXMudmFsdWUsIHRoaXMuZ2V0U2VsZWN0ZWRPcHRpb25zVmFsdWVzKCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgIT09IHRoaXMuZ2V0U2VsZWN0ZWRPcHRpb25zVmFsdWVzKClbMF07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVTZWxlY3RlZE9wdGlvbnNFdmVudCgpIHtcclxuICAgICAgICB0aGlzLm9wdGlvblNlbGVjdGVkQ2hhbmdlTGlzdGVuZXJzKCkuc3Vic2NyaWJlKChvcHRpb24pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zVmFsdWVzID0gdGhpcy5nZXRTZWxlY3RlZE9wdGlvbnNWYWx1ZXMoKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBzZWxlY3RlZE9wdGlvbnNWYWx1ZXM7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG9wdGlvbi5zZWxlY3RlZCA/IG9wdGlvbi52YWx1ZSA6IHVuZGVmaW5lZDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZVNlbGVjdFBsYWNlaG9sZGVyKCkge1xyXG4gICAgICAgIGlmICghdGhpcy52YWx1ZSAmJiB0eXBlb2YgdGhpcy52YWx1ZSAhPT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbkNvbnRlbnQgPSBudWxsO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uQ29udGVudCA9IHRoaXMuZ2V0U2VsZWN0ZWRPcHRpb25zQ29udGVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWRPcHRpb25zQ29udGVudCgpIHtcclxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3RlZE9wdGlvbkNvbXBvbmVudHMoKS5yZWR1Y2UoKGFjYywgb3B0aW9uKSA9PiAoYWNjID8gYWNjICsgJywgJyA6ICcnKSArIG9wdGlvbi5nZXRDb250ZW50UmVmKCkubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudC50cmltKCksICcnKTsgLy8gdG9kbyBpbXByb3ZlIGZvciBtdWx0aXBsZVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3RlZE9wdGlvbkNvbXBvbmVudHMoKVswXT8uZ2V0Q29udGVudFJlZigpLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWRPcHRpb25Db21wb25lbnRzKCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uQ2hpbGRyZW4uZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3RlZE9wdGlvbnNWYWx1ZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0ZWRPcHRpb25Db21wb25lbnRzKCkubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvcHRpb25TZWxlY3RlZENoYW5nZUxpc3RlbmVycygpIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZENoYW5nZSQgPSAgdGhpcy5vcHRpb25DaGlsZHJlbi5tYXAoKG9wdGlvbikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uLnNlbGVjdGVkQ2hhbmdlLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuZGlzYWJsZWQpLFxyXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IG9wdGlvbilcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG1lcmdlKC4uLnNlbGVjdGVkQ2hhbmdlJCkucGlwZSh0YWtlVW50aWwodGhpcy5yZXNldExpc3RlbmVycyQpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoYW5nZVNlbGVjdGVkT3B0aW9uKCkge1xyXG4gICAgICAgIHRoaXMub3B0aW9uQ2hpbGRyZW4uZm9yRWFjaCgob3B0aW9uQ29tcG9uZW50LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBvcHRpb25Db21wb25lbnQuc2V0U2VsZWN0ZWQodGhpcy5pc1NlbGVjdGVkVmFsdWUob3B0aW9uQ29tcG9uZW50LnZhbHVlKSk7XHJcblxyXG4gICAgICAgICAgICBpZiAob3B0aW9uQ29tcG9uZW50LnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24gPSBpbmRleDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICAqIE1heSBub3Qgd29yayB3aXRoIG9iamVjdHMgdmFsdWVzXHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBpc1NlbGVjdGVkVmFsdWUodmFsdWUyOiBUT3B0aW9uVmFsdWUpIHtcclxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlLmluY2x1ZGVzKHZhbHVlMik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlID09PSB2YWx1ZTI7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5yZXNldExpc3RlbmVycyQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMucmVzZXRMaXN0ZW5lcnMkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "../../directives/auto-hide/auto-hide.directive";
|
|
5
|
-
import * as i3 from "../../directives/zindex-toggle/zindex-toggle.directive";
|
|
6
|
-
import * as i4 from "ngx-perfect-scrollbar";
|
|
7
|
-
export class SelectInTextComponent {
|
|
8
|
-
set items(items) {
|
|
9
|
-
this._items = items;
|
|
10
|
-
this.setInitialValues();
|
|
11
|
-
}
|
|
12
|
-
get items() {
|
|
13
|
-
return this._items;
|
|
14
|
-
}
|
|
15
|
-
constructor() {
|
|
16
|
-
this.type = 'default';
|
|
17
|
-
this.alwaysOpen = false;
|
|
18
|
-
this.openCategories = false;
|
|
19
|
-
this.currentLabel = '';
|
|
20
|
-
this.currentLabelIcon = '';
|
|
21
|
-
this.maxWidth = '100%';
|
|
22
|
-
this.selectValue = new EventEmitter();
|
|
23
|
-
this.clickOnCallToAction = new EventEmitter();
|
|
24
|
-
}
|
|
25
|
-
ngOnInit() {
|
|
26
|
-
this.currentLabel = this.placeholder;
|
|
27
|
-
this.setInitialValues();
|
|
28
|
-
}
|
|
29
|
-
setInitialValues() {
|
|
30
|
-
if (!this.items.length) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
const itemSelected = this.getItemSelected();
|
|
34
|
-
this.setCurrentItem(itemSelected);
|
|
35
|
-
}
|
|
36
|
-
onClose() {
|
|
37
|
-
this.openCategories = false;
|
|
38
|
-
}
|
|
39
|
-
customTB(index, item) {
|
|
40
|
-
return item.id;
|
|
41
|
-
}
|
|
42
|
-
onSelectItem(index) {
|
|
43
|
-
this.unselectAll();
|
|
44
|
-
const itemSelected = this.items[index];
|
|
45
|
-
this.setCurrentItem(itemSelected);
|
|
46
|
-
this.selectValue.emit(index);
|
|
47
|
-
}
|
|
48
|
-
onClickCallToAction() {
|
|
49
|
-
this.clickOnCallToAction.emit(this.callToAction.value);
|
|
50
|
-
}
|
|
51
|
-
getItemSelected() {
|
|
52
|
-
let itemSelected = null;
|
|
53
|
-
this.items.forEach(item => {
|
|
54
|
-
if (!item.selected) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
itemSelected = item;
|
|
58
|
-
});
|
|
59
|
-
return itemSelected;
|
|
60
|
-
}
|
|
61
|
-
setCurrentItem(itemSelected) {
|
|
62
|
-
if (!itemSelected) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
itemSelected.selected = true;
|
|
66
|
-
this.currentLabel = itemSelected.name;
|
|
67
|
-
this.currentLabelIcon = itemSelected.icon;
|
|
68
|
-
}
|
|
69
|
-
unselectAll() {
|
|
70
|
-
this.items.forEach(item => item.selected = false);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
SelectInTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SelectInTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
-
SelectInTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: SelectInTextComponent, selector: "wac-select-in-text", inputs: { items: "items", placeholder: "placeholder", label: "label", maxWidthItems: "maxWidthItems", type: "type", callToAction: "callToAction", preText: "preText", postText: "postText", alwaysOpen: "alwaysOpen", maxWidth: "maxWidth" }, outputs: { selectValue: "selectValue", clickOnCallToAction: "clickOnCallToAction" }, ngImport: i0, template: "<div class=\"wac-select-in-text\" wzAutoHide (clickOutside)=\"onClose()\" [ngStyle]=\"{ 'max-width': maxWidth }\" [zIndexToggle]=\"openCategories\">\r\n <div class=\"wac-select-in-text__prepend\" [innerHTML]=\"preText\" *ngIf=\"preText\"></div>\r\n <div #current class=\"wac-select-in-text__current\" (click)=\"openCategories = !openCategories\">\r\n <span>{{ currentLabel }}</span>\r\n <div\r\n class=\"wac-select-in-text__content\"\r\n [ngClass]=\"{ hidden: !openCategories && !alwaysOpen, open: type === 'open' }\"\r\n [ngStyle]=\"{ 'max-width': maxWidthItems }\"\r\n >\r\n <perfect-scrollbar [config]=\"{ suppressScrollX: true }\" *ngIf=\"items.length > 0\">\r\n <div class=\"wac-select-in-text__content__item\" *ngFor=\"let item of items; trackBy : customTB; let index = index;\">\r\n <div [ngClass]=\"{ selected: item.selected }\" (click)=\"onSelectItem(index)\">\r\n <span class=\"icon\" [innerHTML]=\"item.icon\" *ngIf=\"item.icon\"></span>{{ item.name }}\r\n </div>\r\n </div>\r\n </perfect-scrollbar>\r\n </div>\r\n </div>\r\n <div class=\"wac-select-in-text__after\" [innerHTML]=\"postText\" *ngIf=\"postText\"></div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.AutoHideDirective, selector: "[wzAutoHide]", inputs: ["triggerElement", "forceOn"], outputs: ["clickOutside"] }, { kind: "directive", type: i3.ZindexToggleDirective, selector: "[zIndexToggle]", inputs: ["zIndexToggle"], outputs: ["onEventChange"] }, { kind: "component", type: i4.PerfectScrollbarComponent, selector: "perfect-scrollbar", inputs: ["disabled", "usePSClass", "autoPropagation", "scrollIndicators", "config"], outputs: ["psScrollY", "psScrollX", "psScrollUp", "psScrollDown", "psScrollLeft", "psScrollRight", "psYReachEnd", "psYReachStart", "psXReachEnd", "psXReachStart"], exportAs: ["ngxPerfectScrollbar"] }] });
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SelectInTextComponent, decorators: [{
|
|
76
|
-
type: Component,
|
|
77
|
-
args: [{ selector: 'wac-select-in-text', template: "<div class=\"wac-select-in-text\" wzAutoHide (clickOutside)=\"onClose()\" [ngStyle]=\"{ 'max-width': maxWidth }\" [zIndexToggle]=\"openCategories\">\r\n <div class=\"wac-select-in-text__prepend\" [innerHTML]=\"preText\" *ngIf=\"preText\"></div>\r\n <div #current class=\"wac-select-in-text__current\" (click)=\"openCategories = !openCategories\">\r\n <span>{{ currentLabel }}</span>\r\n <div\r\n class=\"wac-select-in-text__content\"\r\n [ngClass]=\"{ hidden: !openCategories && !alwaysOpen, open: type === 'open' }\"\r\n [ngStyle]=\"{ 'max-width': maxWidthItems }\"\r\n >\r\n <perfect-scrollbar [config]=\"{ suppressScrollX: true }\" *ngIf=\"items.length > 0\">\r\n <div class=\"wac-select-in-text__content__item\" *ngFor=\"let item of items; trackBy : customTB; let index = index;\">\r\n <div [ngClass]=\"{ selected: item.selected }\" (click)=\"onSelectItem(index)\">\r\n <span class=\"icon\" [innerHTML]=\"item.icon\" *ngIf=\"item.icon\"></span>{{ item.name }}\r\n </div>\r\n </div>\r\n </perfect-scrollbar>\r\n </div>\r\n </div>\r\n <div class=\"wac-select-in-text__after\" [innerHTML]=\"postText\" *ngIf=\"postText\"></div>\r\n</div>\r\n" }]
|
|
78
|
-
}], ctorParameters: function () { return []; }, propDecorators: { items: [{
|
|
79
|
-
type: Input
|
|
80
|
-
}], placeholder: [{
|
|
81
|
-
type: Input
|
|
82
|
-
}], label: [{
|
|
83
|
-
type: Input
|
|
84
|
-
}], maxWidthItems: [{
|
|
85
|
-
type: Input
|
|
86
|
-
}], type: [{
|
|
87
|
-
type: Input
|
|
88
|
-
}], callToAction: [{
|
|
89
|
-
type: Input
|
|
90
|
-
}], preText: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], postText: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}], alwaysOpen: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], maxWidth: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], selectValue: [{
|
|
99
|
-
type: Output
|
|
100
|
-
}], clickOnCallToAction: [{
|
|
101
|
-
type: Output
|
|
102
|
-
}] } });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWluLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QtaW4tdGV4dC9zZWxlY3QtaW4tdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1pbi10ZXh0L3NlbGVjdC1pbi10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVEvRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLElBQ0ksS0FBSyxDQUFDLEtBQW1CO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQXNDRDtRQXpCQSxTQUFJLEdBQUcsU0FBUyxDQUFDO1FBWWpCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFNUIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdkIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBRXJCLGFBQVEsR0FBRyxNQUFNLENBQUM7UUFFakIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXpDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFekMsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBRUQsTUFBTSxZQUFZLEdBQWUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWEsRUFBRSxJQUFnQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixNQUFNLFlBQVksR0FBZSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxZQUFZLEdBQWUsSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsQixPQUFPO2FBQ1I7WUFDRCxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxZQUF3QjtRQUM3QyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUNELFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztRQUN0QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7a0hBdkdVLHFCQUFxQjtzR0FBckIscUJBQXFCLDZYQ1JsQyw0c0NBb0JBOzJGRFphLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDRSxvQkFBb0I7MEVBSzFCLEtBQUs7c0JBRFIsS0FBSztnQkFXTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQVFHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxtQkFBbUI7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENhbGxsVG9BY3Rpb24gfSBmcm9tICcuLi9zZWxlY3QvY2FsbC10by1hY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBTZWxlY3RJdGVtIH0gZnJvbSAnLi4vc2VsZWN0L3NlbGVjdC1pdGVtcy5kdG8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3YWMtc2VsZWN0LWluLXRleHQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtaW4tdGV4dC5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RJblRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGl0ZW1zKGl0ZW1zOiBTZWxlY3RJdGVtW10pIHtcclxuICAgIHRoaXMuX2l0ZW1zID0gaXRlbXM7XHJcbiAgICB0aGlzLnNldEluaXRpYWxWYWx1ZXMoKTtcclxuICB9XHJcbiAgZ2V0IGl0ZW1zKCk6IFNlbGVjdEl0ZW1bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2l0ZW1zOiBTZWxlY3RJdGVtW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBsYWJlbDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1heFdpZHRoSXRlbXM6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICB0eXBlID0gJ2RlZmF1bHQnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNhbGxUb0FjdGlvbjogQ2FsbGxUb0FjdGlvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwcmVUZXh0OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcG9zdFRleHQ6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBhbHdheXNPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG9wZW5DYXRlZ29yaWVzID0gZmFsc2U7XHJcblxyXG4gIGN1cnJlbnRMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgY3VycmVudExhYmVsSWNvbjogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIG1heFdpZHRoID0gJzEwMCUnO1xyXG5cclxuICBAT3V0cHV0KCkgc2VsZWN0VmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgQE91dHB1dCgpIGNsaWNrT25DYWxsVG9BY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudExhYmVsID0gdGhpcy5wbGFjZWhvbGRlcjtcclxuICAgIHRoaXMuc2V0SW5pdGlhbFZhbHVlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5pdGlhbFZhbHVlcygpIHtcclxuICAgIGlmICghdGhpcy5pdGVtcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGl0ZW1TZWxlY3RlZDogU2VsZWN0SXRlbSA9IHRoaXMuZ2V0SXRlbVNlbGVjdGVkKCk7XHJcbiAgICB0aGlzLnNldEN1cnJlbnRJdGVtKGl0ZW1TZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlKCkge1xyXG4gICAgdGhpcy5vcGVuQ2F0ZWdvcmllcyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY3VzdG9tVEIoaW5kZXg6IG51bWJlciwgaXRlbTogU2VsZWN0SXRlbSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdEl0ZW0oaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy51bnNlbGVjdEFsbCgpO1xyXG4gICAgY29uc3QgaXRlbVNlbGVjdGVkOiBTZWxlY3RJdGVtID0gdGhpcy5pdGVtc1tpbmRleF07XHJcbiAgICB0aGlzLnNldEN1cnJlbnRJdGVtKGl0ZW1TZWxlY3RlZCk7XHJcbiAgICB0aGlzLnNlbGVjdFZhbHVlLmVtaXQoaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0NhbGxUb0FjdGlvbigpIHtcclxuICAgIHRoaXMuY2xpY2tPbkNhbGxUb0FjdGlvbi5lbWl0KHRoaXMuY2FsbFRvQWN0aW9uLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SXRlbVNlbGVjdGVkKCk6U2VsZWN0SXRlbSB7XHJcbiAgICBsZXQgaXRlbVNlbGVjdGVkOiBTZWxlY3RJdGVtID0gbnVsbDtcclxuICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaWYgKCFpdGVtLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGl0ZW1TZWxlY3RlZCA9IGl0ZW07XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBpdGVtU2VsZWN0ZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEN1cnJlbnRJdGVtKGl0ZW1TZWxlY3RlZDogU2VsZWN0SXRlbSkge1xyXG4gICAgaWYgKCFpdGVtU2VsZWN0ZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaXRlbVNlbGVjdGVkLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuY3VycmVudExhYmVsID0gaXRlbVNlbGVjdGVkLm5hbWU7XHJcbiAgICB0aGlzLmN1cnJlbnRMYWJlbEljb24gPSBpdGVtU2VsZWN0ZWQuaWNvbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdW5zZWxlY3RBbGwoKSB7XHJcbiAgICB0aGlzLml0ZW1zLmZvckVhY2goaXRlbSA9PiBpdGVtLnNlbGVjdGVkID0gZmFsc2UpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwid2FjLXNlbGVjdC1pbi10ZXh0XCIgd3pBdXRvSGlkZSAoY2xpY2tPdXRzaWRlKT1cIm9uQ2xvc2UoKVwiIFtuZ1N0eWxlXT1cInsgJ21heC13aWR0aCc6IG1heFdpZHRoIH1cIiBbekluZGV4VG9nZ2xlXT1cIm9wZW5DYXRlZ29yaWVzXCI+XHJcbiAgPGRpdiBjbGFzcz1cIndhYy1zZWxlY3QtaW4tdGV4dF9fcHJlcGVuZFwiIFtpbm5lckhUTUxdPVwicHJlVGV4dFwiICpuZ0lmPVwicHJlVGV4dFwiPjwvZGl2PlxyXG4gIDxkaXYgI2N1cnJlbnQgY2xhc3M9XCJ3YWMtc2VsZWN0LWluLXRleHRfX2N1cnJlbnRcIiAoY2xpY2spPVwib3BlbkNhdGVnb3JpZXMgPSAhb3BlbkNhdGVnb3JpZXNcIj5cclxuICAgIDxzcGFuPnt7IGN1cnJlbnRMYWJlbCB9fTwvc3Bhbj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ3YWMtc2VsZWN0LWluLXRleHRfX2NvbnRlbnRcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7IGhpZGRlbjogIW9wZW5DYXRlZ29yaWVzICYmICFhbHdheXNPcGVuLCBvcGVuOiB0eXBlID09PSAnb3BlbicgfVwiXHJcbiAgICAgIFtuZ1N0eWxlXT1cInsgJ21heC13aWR0aCc6IG1heFdpZHRoSXRlbXMgfVwiXHJcbiAgICA+XHJcbiAgICAgIDxwZXJmZWN0LXNjcm9sbGJhciBbY29uZmlnXT1cInsgc3VwcHJlc3NTY3JvbGxYOiB0cnVlIH1cIiAqbmdJZj1cIml0ZW1zLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLXNlbGVjdC1pbi10ZXh0X19jb250ZW50X19pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IHRyYWNrQnkgOiBjdXN0b21UQjsgbGV0IGluZGV4ID0gaW5kZXg7XCI+XHJcbiAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IGl0ZW0uc2VsZWN0ZWQgfVwiIChjbGljayk9XCJvblNlbGVjdEl0ZW0oaW5kZXgpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvblwiIFtpbm5lckhUTUxdPVwiaXRlbS5pY29uXCIgKm5nSWY9XCJpdGVtLmljb25cIj48L3NwYW4+e3sgaXRlbS5uYW1lIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9wZXJmZWN0LXNjcm9sbGJhcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ3YWMtc2VsZWN0LWluLXRleHRfX2FmdGVyXCIgW2lubmVySFRNTF09XCJwb3N0VGV4dFwiICpuZ0lmPVwicG9zdFRleHRcIj48L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|