@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,199 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { EventEmitter, Inject, Output } from '@angular/core';
|
|
3
|
-
import { Directive, Input } from '@angular/core';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../shared/filters-table.service";
|
|
6
|
-
export class TableColumnHeader {
|
|
7
|
-
set headerName(value) {
|
|
8
|
-
this._headerName = value;
|
|
9
|
-
this.setHeaderName();
|
|
10
|
-
}
|
|
11
|
-
get headerName() {
|
|
12
|
-
return this._headerName;
|
|
13
|
-
}
|
|
14
|
-
constructor(currentCell, renderer, document, filtersTableService) {
|
|
15
|
-
this.currentCell = currentCell;
|
|
16
|
-
this.renderer = renderer;
|
|
17
|
-
this.document = document;
|
|
18
|
-
this.filtersTableService = filtersTableService;
|
|
19
|
-
this._headerName = '';
|
|
20
|
-
this.filterRouting = false; // Optional. Set to true to use Filter Routing.
|
|
21
|
-
this.onSortChange = new EventEmitter(); // Emit the sort value (true, false, undefuned) of the current sort icon when clicking
|
|
22
|
-
this.tableFiltersChange = new EventEmitter();
|
|
23
|
-
this.centerCellValue = ['left', 'center', 'right'];
|
|
24
|
-
this.subscriptions = [];
|
|
25
|
-
}
|
|
26
|
-
ngOnInit() {
|
|
27
|
-
if (this.tableName && this.sortName) {
|
|
28
|
-
if (this.filterRouting) {
|
|
29
|
-
this.handleSortRouting();
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
this.handleSortBasic();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
ngAfterViewInit() {
|
|
37
|
-
this.applyCustomStylesOnCell();
|
|
38
|
-
this.renderHeaderColumn();
|
|
39
|
-
}
|
|
40
|
-
handleSortRouting() {
|
|
41
|
-
this.filterGroup = this.filtersTableService.getTableFilterGroup(this.tableName);
|
|
42
|
-
const filterGroupChangeSub = this.filterGroup.valuesChange$.subscribe((filters) => {
|
|
43
|
-
if (!filters || !filters.length) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
const filterSort = filters.filter(filter => filter.key === 'sort')[0];
|
|
47
|
-
if (this.sortName !== filterSort.value) {
|
|
48
|
-
this.resetSortIcon();
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
this.subscriptions.push(filterGroupChangeSub);
|
|
52
|
-
}
|
|
53
|
-
handleSortBasic() {
|
|
54
|
-
const sortChangeSub = this.filtersTableService.getSortChangeListner().subscribe(sort => {
|
|
55
|
-
if (this.tableName === sort.dataTableName && this.sortName !== sort.sortName) {
|
|
56
|
-
// Reset the current sort icon
|
|
57
|
-
this.resetSortIcon();
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
this.subscriptions.push(sortChangeSub);
|
|
61
|
-
}
|
|
62
|
-
resetSortIcon() {
|
|
63
|
-
// Replace current icon with default icon
|
|
64
|
-
this.contentHeader.className = this.contentHeader.className.replace(this.getCurrentSortIcon(), 'idle');
|
|
65
|
-
}
|
|
66
|
-
applyCustomStylesOnCell() {
|
|
67
|
-
this.currentCell.nativeElement.style.flexGrow = typeof this.columnSize !== 'undefined' ? this.columnSize : '1';
|
|
68
|
-
this.renderer.addClass(this.currentCell.nativeElement, 'wac-table__head__cell');
|
|
69
|
-
if (this.centerCell) {
|
|
70
|
-
if (this.centerCellValue.indexOf(this.centerCell) === -1) {
|
|
71
|
-
throw 'Error : The centerCell directive has no matched value. The value must be one of the following : left, center, right.';
|
|
72
|
-
}
|
|
73
|
-
let className = 'wac-table__head__cell--center' + '--' + this.centerCell;
|
|
74
|
-
this.renderer.addClass(this.currentCell.nativeElement, className);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
renderHeaderColumn() {
|
|
78
|
-
this.createHeaderContent();
|
|
79
|
-
this.renderer.appendChild(this.currentCell.nativeElement, this.contentHeader);
|
|
80
|
-
}
|
|
81
|
-
createHeaderContent() {
|
|
82
|
-
this.contentHeader = document.createElement('a');
|
|
83
|
-
this.contentHeader.className = 'wac-table__head__cell__search';
|
|
84
|
-
this.setHeaderName();
|
|
85
|
-
if (this.tableName && this.sortName) {
|
|
86
|
-
this.handleSort();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
setHeaderName() {
|
|
90
|
-
if (!this.contentHeader) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
this.contentHeader.innerHTML = this.headerName;
|
|
94
|
-
}
|
|
95
|
-
handleSort() {
|
|
96
|
-
// Set icon in the header column cell
|
|
97
|
-
this.contentHeader.className += ' wac-table__head__cell__search--' + this.getInitialSortIcon();
|
|
98
|
-
// On click on the content header, change the icon and emit event
|
|
99
|
-
this.renderer.listen(this.contentHeader, 'click', () => {
|
|
100
|
-
const currentIcon = this.getCurrentSortIcon();
|
|
101
|
-
let newIcon;
|
|
102
|
-
let newSort, newOrder;
|
|
103
|
-
switch (currentIcon) {
|
|
104
|
-
case 'idle':
|
|
105
|
-
newIcon = 'up';
|
|
106
|
-
newSort = this.sortName;
|
|
107
|
-
newOrder = true;
|
|
108
|
-
break;
|
|
109
|
-
case 'up':
|
|
110
|
-
newIcon = 'down';
|
|
111
|
-
newSort = this.sortName;
|
|
112
|
-
newOrder = false;
|
|
113
|
-
break;
|
|
114
|
-
case 'down':
|
|
115
|
-
newIcon = 'idle';
|
|
116
|
-
break;
|
|
117
|
-
default:
|
|
118
|
-
newIcon = 'idle';
|
|
119
|
-
break;
|
|
120
|
-
}
|
|
121
|
-
// Replace the icon
|
|
122
|
-
this.contentHeader.className = this.contentHeader.className.replace(currentIcon, newIcon);
|
|
123
|
-
this.emitEvents(newSort, newOrder);
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
getInitialSortIcon() {
|
|
127
|
-
if (!this.filterRouting) {
|
|
128
|
-
return 'idle';
|
|
129
|
-
}
|
|
130
|
-
// Get Initial Sort Icon for Routing Filter
|
|
131
|
-
let initialSortIcon = 'idle';
|
|
132
|
-
if (this.filterGroup.get('sort') === this.sortName) {
|
|
133
|
-
initialSortIcon = this.filterGroup.get('order') == 'true' ? 'up' : 'down';
|
|
134
|
-
}
|
|
135
|
-
return initialSortIcon;
|
|
136
|
-
}
|
|
137
|
-
getCurrentSortIcon() {
|
|
138
|
-
const regexp = /wac-table__head__cell__search--(?<icon>\w+)/;
|
|
139
|
-
const { groups } = regexp.exec(this.contentHeader.className);
|
|
140
|
-
return groups.icon;
|
|
141
|
-
}
|
|
142
|
-
emitEvents(newSort, newOrder) {
|
|
143
|
-
if (this.filterRouting) {
|
|
144
|
-
// Will send the filter routing value has changes event
|
|
145
|
-
this.filterGroup.setValues({
|
|
146
|
-
sort: newSort,
|
|
147
|
-
order: newOrder,
|
|
148
|
-
currentPage: 1
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
// Send the event sort change
|
|
153
|
-
this.filtersTableService.emitSortChange(this.tableName, this.sortName, newOrder);
|
|
154
|
-
}
|
|
155
|
-
if (this.tableFilters) {
|
|
156
|
-
this.tableFilters.sort = this.sortName;
|
|
157
|
-
this.tableFilters.order = newOrder;
|
|
158
|
-
this.tableFilters.currentPage = 1;
|
|
159
|
-
this.tableFiltersChange.emit(this.tableFilters);
|
|
160
|
-
}
|
|
161
|
-
this.onSortChange.emit(newOrder);
|
|
162
|
-
}
|
|
163
|
-
ngOnDestroy() {
|
|
164
|
-
this.subscriptions.forEach(subscription => {
|
|
165
|
-
subscription.unsubscribe();
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
TableColumnHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableColumnHeader, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }, { token: i1.FiltersTableService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
170
|
-
TableColumnHeader.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: TableColumnHeader, selector: "[headerCell]", inputs: { headerName: "headerName", columnSize: "columnSize", filterRouting: "filterRouting", tableName: "tableName", sortName: "sortName", centerCell: "centerCell", tableFilters: "tableFilters" }, outputs: { onSortChange: "onSortChange", tableFiltersChange: "tableFiltersChange" }, ngImport: i0 });
|
|
171
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableColumnHeader, decorators: [{
|
|
172
|
-
type: Directive,
|
|
173
|
-
args: [{
|
|
174
|
-
// The selector has the same name as the headerCell selector in table.component.html
|
|
175
|
-
selector: '[headerCell]'
|
|
176
|
-
}]
|
|
177
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
178
|
-
type: Inject,
|
|
179
|
-
args: [DOCUMENT]
|
|
180
|
-
}] }, { type: i1.FiltersTableService }]; }, propDecorators: { headerName: [{
|
|
181
|
-
type: Input
|
|
182
|
-
}], columnSize: [{
|
|
183
|
-
type: Input
|
|
184
|
-
}], filterRouting: [{
|
|
185
|
-
type: Input
|
|
186
|
-
}], tableName: [{
|
|
187
|
-
type: Input
|
|
188
|
-
}], sortName: [{
|
|
189
|
-
type: Input
|
|
190
|
-
}], centerCell: [{
|
|
191
|
-
type: Input
|
|
192
|
-
}], onSortChange: [{
|
|
193
|
-
type: Output
|
|
194
|
-
}], tableFilters: [{
|
|
195
|
-
type: Input
|
|
196
|
-
}], tableFiltersChange: [{
|
|
197
|
-
type: Output
|
|
198
|
-
}] } });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uSGVhZGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvZGlyZWN0aXZlcy9jb2x1bW5IZWFkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVU3RCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLElBQ0ksVUFBVSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQWlCRCxZQUNVLFdBQXVCLEVBQ3ZCLFFBQW1CLEVBQ0QsUUFBUSxFQUMxQixtQkFBd0M7UUFIeEMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNELGFBQVEsR0FBUixRQUFRLENBQUE7UUFDMUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQXhCbEQsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFLaEIsa0JBQWEsR0FBWSxLQUFLLENBQUMsQ0FBQywrQ0FBK0M7UUFJOUUsaUJBQVksR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQyxDQUFDLHNGQUFzRjtRQUVoSix1QkFBa0IsR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RSxvQkFBZSxHQUFhLENBQUMsTUFBTSxF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OzhHQWxNVSxpQkFBaUIscUVBNkJsQixRQUFRO2tHQTdCUCxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxvRkFBb0Y7b0JBQ3BGLFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjs7MEJBOEJJLE1BQU07MkJBQUMsUUFBUTs4RUEzQmQsVUFBVTtzQkFEYixLQUFLO2dCQVNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE53YkZpbHRlciwgTndiRmlsdGVyR3JvdXAgfSBmcm9tICdAd2l6aXNob3Avbmctd2l6aS1idWxtYSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJzVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2ZpbHRlcnMtdGFibGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFRhYmxlRmlsdGVycyB9IGZyb20gJy4uL3NoYXJlZC90YWJsZS1maWx0ZXJzLm1vZGVsJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIC8vIFRoZSBzZWxlY3RvciBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgaGVhZGVyQ2VsbCBzZWxlY3RvciBpbiB0YWJsZS5jb21wb25lbnQuaHRtbFxyXG4gIHNlbGVjdG9yOiAnW2hlYWRlckNlbGxdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5IZWFkZXIge1xyXG4gIEBJbnB1dCgpIC8vIE9wdGlvbmFsLlxyXG4gIHNldCBoZWFkZXJOYW1lKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2hlYWRlck5hbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0SGVhZGVyTmFtZSgpO1xyXG4gIH1cclxuICBfaGVhZGVyTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgZ2V0IGhlYWRlck5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9oZWFkZXJOYW1lO1xyXG4gIH1cclxuICBASW5wdXQoKSBjb2x1bW5TaXplOiBzdHJpbmc7IC8vIE9wdGlvbmFsLlxyXG4gIEBJbnB1dCgpIGZpbHRlclJvdXRpbmc6IGJvb2xlYW4gPSBmYWxzZTsgLy8gT3B0aW9uYWwuIFNldCB0byB0cnVlIHRvIHVzZSBGaWx0ZXIgUm91dGluZy5cclxuICBASW5wdXQoKSB0YWJsZU5hbWU6IHN0cmluZzsgLy8gT3B0aW9uYWwsIGJ1dCBtYW5kYXRvcnkgdG8gaGFuZGxlIHNvcnRpbmdcclxuICBASW5wdXQoKSBzb3J0TmFtZTogc3RyaW5nOyAvLyBPcHRpb25hbCwgYnV0IG1hbmRhdG9yeSB0byBoYW5kbGUgc29ydGluZ1xyXG4gIEBJbnB1dCgpIGNlbnRlckNlbGw6ICdsZWZ0J3wnY2VudGVyJ3wncmlnaHQnOyAvLyBPcHRpb25hbC4gbGVmdHxjZW50ZXJ8cmlnaHRcclxuICBAT3V0cHV0KCkgb25Tb3J0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7IC8vIEVtaXQgdGhlIHNvcnQgdmFsdWUgKHRydWUsIGZhbHNlLCB1bmRlZnVuZWQpIG9mIHRoZSBjdXJyZW50IHNvcnQgaWNvbiB3aGVuIGNsaWNraW5nXHJcbiAgQElucHV0KCkgdGFibGVGaWx0ZXJzOiBUYWJsZUZpbHRlcnM7XHJcbiAgQE91dHB1dCgpIHRhYmxlRmlsdGVyc0NoYW5nZTogRXZlbnRFbWl0dGVyPFRhYmxlRmlsdGVycz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHByaXZhdGUgY2VudGVyQ2VsbFZhbHVlOiBzdHJpbmdbXSA9IFsnbGVmdCcsICdjZW50ZXInLCAncmlnaHQnXTtcclxuXHJcbiAgcHJpdmF0ZSBjb250ZW50SGVhZGVyOiBIVE1MQW5jaG9yRWxlbWVudDtcclxuICBwcml2YXRlIGZpbHRlckdyb3VwOiBOd2JGaWx0ZXJHcm91cDtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY3VycmVudENlbGw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50LFxyXG4gICAgcHJpdmF0ZSBmaWx0ZXJzVGFibGVTZXJ2aWNlOiBGaWx0ZXJzVGFibGVTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnRhYmxlTmFtZSAmJiB0aGlzLnNvcnROYW1lKSB7XHJcbiAgICAgIGlmICh0aGlzLmZpbHRlclJvdXRpbmcpIHtcclxuICAgICAgICB0aGlzLmhhbmRsZVNvcnRSb3V0aW5nKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVTb3J0QmFzaWMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5hcHBseUN1c3RvbVN0eWxlc09uQ2VsbCgpO1xyXG4gICAgdGhpcy5yZW5kZXJIZWFkZXJDb2x1bW4oKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNvcnRSb3V0aW5nKCkge1xyXG4gICAgdGhpcy5maWx0ZXJHcm91cCA9IHRoaXMuZmlsdGVyc1RhYmxlU2VydmljZS5nZXRUYWJsZUZpbHRlckdyb3VwKHRoaXMudGFibGVOYW1lKTtcclxuXHJcbiAgICBjb25zdCBmaWx0ZXJHcm91cENoYW5nZVN1YiA9IHRoaXMuZmlsdGVyR3JvdXAudmFsdWVzQ2hhbmdlJC5zdWJzY3JpYmUoKGZpbHRlcnM6TndiRmlsdGVyW10pID0+IHtcclxuICAgICAgaWYgKCFmaWx0ZXJzIHx8ICFmaWx0ZXJzLmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBmaWx0ZXJTb3J0ID0gZmlsdGVycy5maWx0ZXIoZmlsdGVyID0+IGZpbHRlci5rZXkgPT09ICdzb3J0JylbMF07XHJcbiAgICAgIGlmICh0aGlzLnNvcnROYW1lICE9PSBmaWx0ZXJTb3J0LnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5yZXNldFNvcnRJY29uKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZmlsdGVyR3JvdXBDaGFuZ2VTdWIpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU29ydEJhc2ljKCkge1xyXG4gICAgY29uc3Qgc29ydENoYW5nZVN1YiA9IHRoaXMuZmlsdGVyc1RhYmxlU2VydmljZS5nZXRTb3J0Q2hhbmdlTGlzdG5lcigpLnN1YnNjcmliZShzb3J0ID0+IHtcclxuICAgICAgaWYgKHRoaXMudGFibGVOYW1lID09PSBzb3J0LmRhdGFUYWJsZU5hbWUgJiYgdGhpcy5zb3J0TmFtZSAhPT0gc29ydC5zb3J0TmFtZSkge1xyXG4gICAgICAgIC8vIFJlc2V0IHRoZSBjdXJyZW50IHNvcnQgaWNvblxyXG4gICAgICAgIHRoaXMucmVzZXRTb3J0SWNvbigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHNvcnRDaGFuZ2VTdWIpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRTb3J0SWNvbigpIHtcclxuICAgIC8vIFJlcGxhY2UgY3VycmVudCBpY29uIHdpdGggZGVmYXVsdCBpY29uXHJcbiAgICB0aGlzLmNvbnRlbnRIZWFkZXIuY2xhc3NOYW1lID0gdGhpcy5jb250ZW50SGVhZGVyLmNsYXNzTmFtZS5yZXBsYWNlKHRoaXMuZ2V0Q3VycmVudFNvcnRJY29uKCksICdpZGxlJyk7XHJcbiAgfVxyXG5cclxuICBhcHBseUN1c3RvbVN0eWxlc09uQ2VsbCgpIHtcclxuICAgIHRoaXMuY3VycmVudENlbGwubmF0aXZlRWxlbWVudC5zdHlsZS5mbGV4R3JvdyA9IHR5cGVvZiB0aGlzLmNvbHVtblNpemUgIT09ICd1bmRlZmluZWQnID8gdGhpcy5jb2x1bW5TaXplIDogJzEnO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmN1cnJlbnRDZWxsLm5hdGl2ZUVsZW1lbnQsICd3YWMtdGFibGVfX2hlYWRfX2NlbGwnKTtcclxuXHJcbiAgICBpZiAodGhpcy5jZW50ZXJDZWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLmNlbnRlckNlbGxWYWx1ZS5pbmRleE9mKHRoaXMuY2VudGVyQ2VsbCkgPT09IC0xKSB7XHJcbiAgICAgICAgdGhyb3cgJ0Vycm9yIDogVGhlIGNlbnRlckNlbGwgZGlyZWN0aXZlIGhhcyBubyBtYXRjaGVkIHZhbHVlLiBUaGUgdmFsdWUgbXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZyA6IGxlZnQsIGNlbnRlciwgcmlnaHQuJztcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGNsYXNzTmFtZSA9ICd3YWMtdGFibGVfX2hlYWRfX2NlbGwtLWNlbnRlcicgKyAnLS0nICsgdGhpcy5jZW50ZXJDZWxsO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuY3VycmVudENlbGwubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlckhlYWRlckNvbHVtbigpIHtcclxuICAgIHRoaXMuY3JlYXRlSGVhZGVyQ29udGVudCgpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmN1cnJlbnRDZWxsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY29udGVudEhlYWRlcik7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVIZWFkZXJDb250ZW50KCkge1xyXG4gICAgdGhpcy5jb250ZW50SGVhZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgdGhpcy5jb250ZW50SGVhZGVyLmNsYXNzTmFtZSA9ICd3YWMtdGFibGVfX2hlYWRfX2NlbGxfX3NlYXJjaCc7XHJcbiAgICB0aGlzLnNldEhlYWRlck5hbWUoKTtcclxuICAgIGlmICh0aGlzLnRhYmxlTmFtZSAmJiB0aGlzLnNvcnROYW1lKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlU29ydCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRIZWFkZXJOYW1lKCkge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRlbnRIZWFkZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZW50SGVhZGVyLmlubmVySFRNTCA9IHRoaXMuaGVhZGVyTmFtZTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNvcnQoKSB7XHJcbiAgICAvLyBTZXQgaWNvbiBpbiB0aGUgaGVhZGVyIGNvbHVtbiBjZWxsXHJcbiAgICB0aGlzLmNvbnRlbnRIZWFkZXIuY2xhc3NOYW1lICs9ICcgd2FjLXRhYmxlX19oZWFkX19jZWxsX19zZWFyY2gtLScgKyB0aGlzLmdldEluaXRpYWxTb3J0SWNvbigpO1xyXG5cclxuICAgIC8vIE9uIGNsaWNrIG9uIHRoZSBjb250ZW50IGhlYWRlciwgY2hhbmdlIHRoZSBpY29uIGFuZCBlbWl0IGV2ZW50XHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmNvbnRlbnRIZWFkZXIsICdjbGljaycsICgpID0+IHtcclxuICAgICAgY29uc3QgY3VycmVudEljb24gPSB0aGlzLmdldEN1cnJlbnRTb3J0SWNvbigpO1xyXG4gICAgICBsZXQgbmV3SWNvbjogc3RyaW5nO1xyXG4gICAgICBsZXQgbmV3U29ydDogc3RyaW5nLCBuZXdPcmRlcjogYm9vbGVhbjtcclxuXHJcbiAgICAgIHN3aXRjaCAoY3VycmVudEljb24pIHtcclxuICAgICAgICBjYXNlICdpZGxlJzpcclxuICAgICAgICAgIG5ld0ljb24gPSAndXAnO1xyXG4gICAgICAgICAgbmV3U29ydCA9IHRoaXMuc29ydE5hbWU7XHJcbiAgICAgICAgICBuZXdPcmRlciA9IHRydWU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAndXAnOlxyXG4gICAgICAgICAgbmV3SWNvbiA9ICdkb3duJztcclxuICAgICAgICAgIG5ld1NvcnQgPSB0aGlzLnNvcnROYW1lO1xyXG4gICAgICAgICAgbmV3T3JkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlICdkb3duJzpcclxuICAgICAgICAgIG5ld0ljb24gPSAnaWRsZSc7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIG5ld0ljb24gPSAnaWRsZSc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICAvLyBSZXBsYWNlIHRoZSBpY29uXHJcbiAgICAgIHRoaXMuY29udGVudEhlYWRlci5jbGFzc05hbWUgPSB0aGlzLmNvbnRlbnRIZWFkZXIuY2xhc3NOYW1lLnJlcGxhY2UoY3VycmVudEljb24sIG5ld0ljb24pO1xyXG5cclxuICAgICAgdGhpcy5lbWl0RXZlbnRzKG5ld1NvcnQsIG5ld09yZGVyKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5pdGlhbFNvcnRJY29uKCkge1xyXG4gICAgaWYgKCF0aGlzLmZpbHRlclJvdXRpbmcpIHtcclxuICAgICAgcmV0dXJuICdpZGxlJztcclxuICAgIH1cclxuICAgIC8vIEdldCBJbml0aWFsIFNvcnQgSWNvbiBmb3IgUm91dGluZyBGaWx0ZXJcclxuICAgIGxldCBpbml0aWFsU29ydEljb24gPSAnaWRsZSc7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJHcm91cC5nZXQoJ3NvcnQnKSA9PT0gdGhpcy5zb3J0TmFtZSkge1xyXG4gICAgICBpbml0aWFsU29ydEljb24gPSB0aGlzLmZpbHRlckdyb3VwLmdldCgnb3JkZXInKSA9PSAndHJ1ZScgPyAndXAnIDogJ2Rvd24nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGluaXRpYWxTb3J0SWNvbjtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnRTb3J0SWNvbigpIHtcclxuICAgIGNvbnN0IHJlZ2V4cCA9IC93YWMtdGFibGVfX2hlYWRfX2NlbGxfX3NlYXJjaC0tKD88aWNvbj5cXHcrKS87XHJcbiAgICBjb25zdCB7IGdyb3VwcyB9ID0gcmVnZXhwLmV4ZWModGhpcy5jb250ZW50SGVhZGVyLmNsYXNzTmFtZSk7XHJcbiAgICByZXR1cm4gZ3JvdXBzLmljb247XHJcbiAgfVxyXG5cclxuICBlbWl0RXZlbnRzKG5ld1NvcnQsIG5ld09yZGVyKSB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJSb3V0aW5nKSB7XHJcbiAgICAgIC8vIFdpbGwgc2VuZCB0aGUgZmlsdGVyIHJvdXRpbmcgdmFsdWUgaGFzIGNoYW5nZXMgZXZlbnRcclxuICAgICAgdGhpcy5maWx0ZXJHcm91cC5zZXRWYWx1ZXMoe1xyXG4gICAgICAgIHNvcnQ6IG5ld1NvcnQsXHJcbiAgICAgICAgb3JkZXI6IG5ld09yZGVyLFxyXG4gICAgICAgIGN1cnJlbnRQYWdlOiAxXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gU2VuZCB0aGUgZXZlbnQgc29ydCBjaGFuZ2VcclxuICAgICAgdGhpcy5maWx0ZXJzVGFibGVTZXJ2aWNlLmVtaXRTb3J0Q2hhbmdlKHRoaXMudGFibGVOYW1lLCB0aGlzLnNvcnROYW1lLCBuZXdPcmRlcik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZUZpbHRlcnMpIHtcclxuICAgICAgdGhpcy50YWJsZUZpbHRlcnMuc29ydCA9IHRoaXMuc29ydE5hbWU7XHJcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJzLm9yZGVyID0gbmV3T3JkZXI7XHJcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgdGhpcy50YWJsZUZpbHRlcnNDaGFuZ2UuZW1pdCh0aGlzLnRhYmxlRmlsdGVycyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uU29ydENoYW5nZS5lbWl0KG5ld09yZGVyKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHtcclxuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { ReplaySubject, Subject } from 'rxjs';
|
|
3
|
-
import { debounceTime } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@wizishop/ng-wizi-bulma";
|
|
6
|
-
export class FiltersTableService {
|
|
7
|
-
constructor(filterRoutingBuilder) {
|
|
8
|
-
this.filterRoutingBuilder = filterRoutingBuilder;
|
|
9
|
-
this.filterGroups = new Map();
|
|
10
|
-
this.sortSubject = new Subject();
|
|
11
|
-
}
|
|
12
|
-
getTableFilterGroup(dataTableName) {
|
|
13
|
-
if (this.filterGroups.has(dataTableName)) {
|
|
14
|
-
return this.filterGroups.get(dataTableName);
|
|
15
|
-
}
|
|
16
|
-
const dataTableFilters = {
|
|
17
|
-
sort: undefined,
|
|
18
|
-
order: undefined,
|
|
19
|
-
searchValue: undefined,
|
|
20
|
-
totalItems: 0,
|
|
21
|
-
itemsPerPage: 0,
|
|
22
|
-
currentPage: 0
|
|
23
|
-
};
|
|
24
|
-
const filterGroup = this.filterRoutingBuilder.group(dataTableFilters, dataTableName);
|
|
25
|
-
filterGroup.tableFiltersValuesChange$ = new ReplaySubject(1);
|
|
26
|
-
filterGroup.tableFiltersValuesDebouncedChange$ = filterGroup.tableFiltersValuesChange$.pipe(debounceTime(300));
|
|
27
|
-
this.filterGroups.set(dataTableName, filterGroup);
|
|
28
|
-
return filterGroup;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Use to reset the others sorts of the table
|
|
32
|
-
* @param dataTableName
|
|
33
|
-
* @param sortName
|
|
34
|
-
* @param order
|
|
35
|
-
*/
|
|
36
|
-
emitSortChange(dataTableName, sortName, order) {
|
|
37
|
-
this.sortSubject.next({ dataTableName, sortName, order });
|
|
38
|
-
}
|
|
39
|
-
getSortChangeListner() {
|
|
40
|
-
return this.sortSubject.asObservable();
|
|
41
|
-
}
|
|
42
|
-
setPaginationFilters(dataTableName, totalItems, itemsPerPage, currentPage) {
|
|
43
|
-
const filterGroup = this.getTableFilterGroup(dataTableName);
|
|
44
|
-
filterGroup.setValues({
|
|
45
|
-
itemsPerPage,
|
|
46
|
-
currentPage
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
/*
|
|
50
|
-
Add defaults filters in the URL if they not exists.
|
|
51
|
-
*/
|
|
52
|
-
setInitialPaginationFiltersIfNotExist(dataTableName, itemsPerPage, currentPage) {
|
|
53
|
-
const filterGroup = this.getTableFilterGroup(dataTableName);
|
|
54
|
-
filterGroup.setValues({
|
|
55
|
-
itemsPerPage: filterGroup.get('itemsPerPage') ? parseInt(filterGroup.get('itemsPerPage')) : itemsPerPage,
|
|
56
|
-
currentPage: filterGroup.get('currentPage') ? parseInt(filterGroup.get('currentPage')) : currentPage
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
FiltersTableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: FiltersTableService, deps: [{ token: i1.NwbFilterRoutingBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
61
|
-
FiltersTableService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: FiltersTableService, providedIn: 'root' });
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: FiltersTableService, decorators: [{
|
|
63
|
-
type: Injectable,
|
|
64
|
-
args: [{
|
|
65
|
-
providedIn: 'root'
|
|
66
|
-
}]
|
|
67
|
-
}], ctorParameters: function () { return [{ type: i1.NwbFilterRoutingBuilder }]; } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy10YWJsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zaGFyZWQvZmlsdGVycy10YWJsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPOUMsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUFvQixvQkFBNkM7UUFBN0MseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtRQUpqRSxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFDO1FBRXpDLGdCQUFXLEdBQWlCLElBQUksT0FBTyxFQUFPLENBQUM7SUFFYSxDQUFDO0lBRXJFLG1CQUFtQixDQUFDLGFBQXFCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQXNCLENBQUM7U0FDbEU7UUFFRCxNQUFNLGdCQUFnQixHQUFpQjtZQUNyQyxJQUFJLEVBQUUsU0FBUztZQUNmLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFVBQVUsRUFBRSxDQUFDO1lBQ2IsWUFBWSxFQUFFLENBQUM7WUFDZixXQUFXLEVBQUUsQ0FBQztTQUNmLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBc0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQXNCLENBQUM7UUFDN0gsV0FBVyxDQUFDLHlCQUF5QixHQUFHLElBQUksYUFBYSxDQUFlLENBQUMsQ0FBQyxDQUFDO1FBQzNFLFdBQVcsQ0FBQyxrQ0FBa0MsR0FBRyxXQUFXLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRS9HLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUMsYUFBcUIsRUFBRSxRQUFnQixFQUFFLEtBQWM7UUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELG9CQUFvQixDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVc7UUFDdkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVELFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDcEIsWUFBWTtZQUNaLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O01BRUU7SUFDRixxQ0FBcUMsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLFdBQVc7UUFDNUUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVELFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDcEIsWUFBWSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVk7WUFDeEcsV0FBVyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVc7U0FDckcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBNURVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTndiRmlsdGVyR3JvdXAsIE53YkZpbHRlclJvdXRpbmdCdWlsZGVyIH0gZnJvbSAnQHdpemlzaG9wL25nLXdpemktYnVsbWEnO1xyXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGFibGVGaWx0ZXJzR3JvdXAgfSBmcm9tICcuL3RhYmxlLWZpbHRlcnMtZ3JvdXAubW9kZWwnO1xyXG5pbXBvcnQgeyBUYWJsZUZpbHRlcnMgfSBmcm9tICcuL3RhYmxlLWZpbHRlcnMubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc1RhYmxlU2VydmljZSB7XHJcbiAgZmlsdGVyR3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIE53YkZpbHRlckdyb3VwPigpO1xyXG5cclxuICBwcml2YXRlIHNvcnRTdWJqZWN0OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlsdGVyUm91dGluZ0J1aWxkZXI6IE53YkZpbHRlclJvdXRpbmdCdWlsZGVyKSB7fVxyXG5cclxuICBnZXRUYWJsZUZpbHRlckdyb3VwKGRhdGFUYWJsZU5hbWU6IHN0cmluZyk6IFRhYmxlRmlsdGVyc0dyb3VwIHtcclxuICAgIGlmICh0aGlzLmZpbHRlckdyb3Vwcy5oYXMoZGF0YVRhYmxlTmFtZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyR3JvdXBzLmdldChkYXRhVGFibGVOYW1lKSBhcyBUYWJsZUZpbHRlcnNHcm91cDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkYXRhVGFibGVGaWx0ZXJzOiBUYWJsZUZpbHRlcnMgPSB7XHJcbiAgICAgIHNvcnQ6IHVuZGVmaW5lZCxcclxuICAgICAgb3JkZXI6IHVuZGVmaW5lZCxcclxuICAgICAgc2VhcmNoVmFsdWU6IHVuZGVmaW5lZCxcclxuICAgICAgdG90YWxJdGVtczogMCxcclxuICAgICAgaXRlbXNQZXJQYWdlOiAwLFxyXG4gICAgICBjdXJyZW50UGFnZTogMFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBmaWx0ZXJHcm91cDogVGFibGVGaWx0ZXJzR3JvdXAgPSB0aGlzLmZpbHRlclJvdXRpbmdCdWlsZGVyLmdyb3VwKGRhdGFUYWJsZUZpbHRlcnMsIGRhdGFUYWJsZU5hbWUpIGFzIFRhYmxlRmlsdGVyc0dyb3VwO1xyXG4gICAgZmlsdGVyR3JvdXAudGFibGVGaWx0ZXJzVmFsdWVzQ2hhbmdlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFRhYmxlRmlsdGVycz4oMSk7XHJcbiAgICBmaWx0ZXJHcm91cC50YWJsZUZpbHRlcnNWYWx1ZXNEZWJvdW5jZWRDaGFuZ2UkID0gZmlsdGVyR3JvdXAudGFibGVGaWx0ZXJzVmFsdWVzQ2hhbmdlJC5waXBlKGRlYm91bmNlVGltZSgzMDApKTtcclxuXHJcbiAgICB0aGlzLmZpbHRlckdyb3Vwcy5zZXQoZGF0YVRhYmxlTmFtZSwgZmlsdGVyR3JvdXApO1xyXG4gICAgcmV0dXJuIGZpbHRlckdyb3VwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXNlIHRvIHJlc2V0IHRoZSBvdGhlcnMgc29ydHMgb2YgdGhlIHRhYmxlXHJcbiAgICogQHBhcmFtIGRhdGFUYWJsZU5hbWVcclxuICAgKiBAcGFyYW0gc29ydE5hbWVcclxuICAgKiBAcGFyYW0gb3JkZXJcclxuICAgKi9cclxuICBlbWl0U29ydENoYW5nZShkYXRhVGFibGVOYW1lOiBzdHJpbmcsIHNvcnROYW1lOiBzdHJpbmcsIG9yZGVyOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNvcnRTdWJqZWN0Lm5leHQoeyBkYXRhVGFibGVOYW1lLCBzb3J0TmFtZSwgb3JkZXIgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTb3J0Q2hhbmdlTGlzdG5lcigpIHtcclxuICAgIHJldHVybiB0aGlzLnNvcnRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnaW5hdGlvbkZpbHRlcnMoZGF0YVRhYmxlTmFtZSwgdG90YWxJdGVtcywgaXRlbXNQZXJQYWdlLCBjdXJyZW50UGFnZSkge1xyXG4gICAgY29uc3QgZmlsdGVyR3JvdXAgPSB0aGlzLmdldFRhYmxlRmlsdGVyR3JvdXAoZGF0YVRhYmxlTmFtZSk7XHJcbiAgICBmaWx0ZXJHcm91cC5zZXRWYWx1ZXMoe1xyXG4gICAgICBpdGVtc1BlclBhZ2UsXHJcbiAgICAgIGN1cnJlbnRQYWdlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICBBZGQgZGVmYXVsdHMgZmlsdGVycyBpbiB0aGUgVVJMIGlmIHRoZXkgbm90IGV4aXN0cy5cclxuICAqL1xyXG4gIHNldEluaXRpYWxQYWdpbmF0aW9uRmlsdGVyc0lmTm90RXhpc3QoZGF0YVRhYmxlTmFtZSwgaXRlbXNQZXJQYWdlLCBjdXJyZW50UGFnZSkge1xyXG4gICAgY29uc3QgZmlsdGVyR3JvdXAgPSB0aGlzLmdldFRhYmxlRmlsdGVyR3JvdXAoZGF0YVRhYmxlTmFtZSk7XHJcbiAgICBmaWx0ZXJHcm91cC5zZXRWYWx1ZXMoe1xyXG4gICAgICBpdGVtc1BlclBhZ2U6IGZpbHRlckdyb3VwLmdldCgnaXRlbXNQZXJQYWdlJykgPyBwYXJzZUludChmaWx0ZXJHcm91cC5nZXQoJ2l0ZW1zUGVyUGFnZScpKSA6IGl0ZW1zUGVyUGFnZSxcclxuICAgICAgY3VycmVudFBhZ2U6IGZpbHRlckdyb3VwLmdldCgnY3VycmVudFBhZ2UnKSA/IHBhcnNlSW50KGZpbHRlckdyb3VwLmdldCgnY3VycmVudFBhZ2UnKSkgOiBjdXJyZW50UGFnZVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class TableCheckboxIdService {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.nbCheckboxInstances = 0;
|
|
6
|
-
TableCheckboxIdService.tableInstance++;
|
|
7
|
-
this.currentTableInstance = TableCheckboxIdService.tableInstance;
|
|
8
|
-
}
|
|
9
|
-
getUniqueId() {
|
|
10
|
-
this.nbCheckboxInstances++;
|
|
11
|
-
return `wac-table-${this.currentTableInstance}-${this.nbCheckboxInstances}`;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
TableCheckboxIdService.tableInstance = 0;
|
|
15
|
-
TableCheckboxIdService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableCheckboxIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16
|
-
TableCheckboxIdService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableCheckboxIdService });
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableCheckboxIdService, decorators: [{
|
|
18
|
-
type: Injectable
|
|
19
|
-
}], ctorParameters: function () { return []; } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2hlY2tib3gtaWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvc2hhcmVkL3RhYmxlLWNoZWNrYm94LWlkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0MsTUFBTSxPQUFPLHNCQUFzQjtJQU8vQjtRQUZBLHdCQUFtQixHQUFXLENBQUMsQ0FBQztRQUc1QixzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsc0JBQXNCLENBQUMsYUFBYSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsT0FBTyxhQUFhLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUNoRixDQUFDOztBQWJNLG9DQUFhLEdBQUcsQ0FBQyxDQUFDO21IQUZoQixzQkFBc0I7dUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ2hlY2tib3hJZFNlcnZpY2Uge1xyXG5cclxuICAgIHN0YXRpYyB0YWJsZUluc3RhbmNlID0gMDtcclxuXHJcbiAgICBjdXJyZW50VGFibGVJbnN0YW5jZTpudW1iZXI7XHJcbiAgICBuYkNoZWNrYm94SW5zdGFuY2VzOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIFRhYmxlQ2hlY2tib3hJZFNlcnZpY2UudGFibGVJbnN0YW5jZSsrO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYmxlSW5zdGFuY2UgPSBUYWJsZUNoZWNrYm94SWRTZXJ2aWNlLnRhYmxlSW5zdGFuY2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VW5pcXVlSWQoKSB7XHJcbiAgICAgICAgdGhpcy5uYkNoZWNrYm94SW5zdGFuY2VzKys7XHJcbiAgICAgICAgcmV0dXJuIGB3YWMtdGFibGUtJHt0aGlzLmN1cnJlbnRUYWJsZUluc3RhbmNlfS0ke3RoaXMubmJDaGVja2JveEluc3RhbmNlc31gO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { Component, ContentChildren, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { CheckBoxRow } from './directives/checkBoxRow.directive';
|
|
3
|
-
import { MultiSelectionService } from '../../services/multiple-selection.service';
|
|
4
|
-
import { TableCheckboxIdService } from './shared/table-checkbox-id.service';
|
|
5
|
-
import { TableRow } from './directives/raw.directive';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./shared/filters-table.service";
|
|
8
|
-
import * as i2 from "./shared/table-checkbox-id.service";
|
|
9
|
-
import * as i3 from "../../services/multiple-selection.service";
|
|
10
|
-
import * as i4 from "@angular/common";
|
|
11
|
-
import * as i5 from "@angular/forms";
|
|
12
|
-
import * as i6 from "../inputs/input-search/input-search.component";
|
|
13
|
-
import * as i7 from "../loader/loader.component";
|
|
14
|
-
import * as i8 from "../checkbox/checkbox.component";
|
|
15
|
-
import * as i9 from "../pagination/pagination.component";
|
|
16
|
-
export class TableComponent {
|
|
17
|
-
constructor(filtersTableService, tableCheckboxIdService, multiSelectionService) {
|
|
18
|
-
this.filtersTableService = filtersTableService;
|
|
19
|
-
this.tableCheckboxIdService = tableCheckboxIdService;
|
|
20
|
-
this.multiSelectionService = multiSelectionService;
|
|
21
|
-
this.tableFiltersChange = new EventEmitter();
|
|
22
|
-
this.placeholder = '';
|
|
23
|
-
/// Input/Output of checkbox ///
|
|
24
|
-
/** Pass to true to display checkbox in the header table */
|
|
25
|
-
this.checkbox = false;
|
|
26
|
-
this.toggleAllCheckBox = new EventEmitter(); // todo replace by checkBoxSelectionChange
|
|
27
|
-
this.checkBoxSelectionChange = new EventEmitter(); // todo add to doc
|
|
28
|
-
/// Input to disable section ///
|
|
29
|
-
/** Pass to true to hide search input */
|
|
30
|
-
this.disableSearch = false;
|
|
31
|
-
/** Pass to true to hide the pagniator */
|
|
32
|
-
this.disablePagniation = false;
|
|
33
|
-
/// Input for loader on table body ///
|
|
34
|
-
this.isLoading = false;
|
|
35
|
-
}
|
|
36
|
-
ngOnInit() {
|
|
37
|
-
this.headerCheckBoxId = this.tableCheckboxIdService.getUniqueId(); // Create checkbox unique id
|
|
38
|
-
/* Handle routing filters */
|
|
39
|
-
if (this.tableRoutingName) {
|
|
40
|
-
this.filtersTableService.setInitialPaginationFiltersIfNotExist(this.tableRoutingName, this.tableFilters.itemsPerPage, this.tableFilters.currentPage);
|
|
41
|
-
this._tableFiltersGroup = this.filtersTableService.getTableFilterGroup(this.tableRoutingName);
|
|
42
|
-
this.setTablesFilters();
|
|
43
|
-
// Listen to filters changes with debounced time to limit multiple api calls
|
|
44
|
-
this.filterGroupChangeSub = this._tableFiltersGroup.valuesChange$.subscribe(() => {
|
|
45
|
-
this.setTablesFilters();
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
this.multiSelectionService.activeChanges$.subscribe(selectionIndexRawCheckChange => {
|
|
49
|
-
this.checkBoxSelectionChange.emit(selectionIndexRawCheckChange);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
ngAfterViewInit() {
|
|
53
|
-
this.multiSelectionService.handle(this.checkBoxRows);
|
|
54
|
-
this.checkBoxRows.changes.subscribe(() => {
|
|
55
|
-
this.multiSelectionService.handle(this.checkBoxRows);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
onToggleAllCheckBox(event) {
|
|
59
|
-
this.toggleAllCheckBox.emit(event.target.checked);
|
|
60
|
-
}
|
|
61
|
-
searchChange() {
|
|
62
|
-
// Reset table filters
|
|
63
|
-
this.tableFilters.sort = undefined;
|
|
64
|
-
this.tableFilters.order = undefined;
|
|
65
|
-
this.tableFilters.currentPage = 1;
|
|
66
|
-
this.tableFiltersChange.emit(this.tableFilters);
|
|
67
|
-
// Reset routing filters
|
|
68
|
-
if (this._tableFiltersGroup) {
|
|
69
|
-
this._tableFiltersGroup.setValues({
|
|
70
|
-
searchValue: this.tableFilters.searchValue,
|
|
71
|
-
sort: undefined,
|
|
72
|
-
order: undefined,
|
|
73
|
-
currentPage: 1
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
pageChange() {
|
|
78
|
-
this.tableFiltersChange.emit(this.tableFilters);
|
|
79
|
-
if (this._tableFiltersGroup) {
|
|
80
|
-
this._tableFiltersGroup.setValues({
|
|
81
|
-
itemsPerPage: this.tableFilters.itemsPerPage,
|
|
82
|
-
currentPage: this.tableFilters.currentPage
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Set tableFilters from routing data existing in the url
|
|
88
|
-
* */
|
|
89
|
-
setTablesFilters() {
|
|
90
|
-
this.tableFilters = {
|
|
91
|
-
sort: this._tableFiltersGroup.get('sort'),
|
|
92
|
-
order: this._tableFiltersGroup.get('order') ? this._tableFiltersGroup.get('order') === 'true' : undefined,
|
|
93
|
-
searchValue: this._tableFiltersGroup.get('searchValue'),
|
|
94
|
-
itemsPerPage: this._tableFiltersGroup.get('itemsPerPage') ? parseInt(this._tableFiltersGroup.get('itemsPerPage')) : 0,
|
|
95
|
-
currentPage: this._tableFiltersGroup.get('currentPage') ? parseInt(this._tableFiltersGroup.get('currentPage')) : 0,
|
|
96
|
-
totalItems: this.tableFilters.totalItems
|
|
97
|
-
};
|
|
98
|
-
this.tableFiltersChange.emit(this.tableFilters);
|
|
99
|
-
this._tableFiltersGroup.tableFiltersValuesChange$.next(this.tableFilters);
|
|
100
|
-
}
|
|
101
|
-
ngOnDestroy() {
|
|
102
|
-
if (this.filterGroupChangeSub) {
|
|
103
|
-
this.filterGroupChangeSub.unsubscribe();
|
|
104
|
-
}
|
|
105
|
-
this.multiSelectionService.destroy();
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableComponent, deps: [{ token: i1.FiltersTableService }, { token: i2.TableCheckboxIdService }, { token: i3.MultiSelectionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
109
|
-
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: TableComponent, selector: "wac-table", inputs: { tableFilters: "tableFilters", tableRoutingName: "tableRoutingName", placeholder: "placeholder", checkbox: "checkbox", disableSearch: "disableSearch", disablePagniation: "disablePagniation", isLoading: "isLoading" }, outputs: { tableFiltersChange: "tableFiltersChange", toggleAllCheckBox: "toggleAllCheckBox", checkBoxSelectionChange: "checkBoxSelectionChange" }, providers: [
|
|
110
|
-
TableCheckboxIdService,
|
|
111
|
-
MultiSelectionService
|
|
112
|
-
], queries: [{ propertyName: "checkBoxRows", predicate: CheckBoxRow }, { propertyName: "tableRows", predicate: TableRow }], ngImport: i0, template: "<div class=\"wac-table\">\r\n <!-- Header section -->\r\n <div class=\"wac-table__head\" id=\"headerTable\">\r\n <div *ngIf=\"checkbox\" class=\"wac-table__head__cell wac-table__head__cell--checkbox\">\r\n <wac-checkbox [id]=\"headerCheckBoxId\" (change)=\"onToggleAllCheckBox($event)\" [alone]=\"true\"></wac-checkbox>\r\n </div>\r\n\r\n <!-- Header contents are added with the headerCell directive -->\r\n <ng-content select=\"[headerCell]\"></ng-content>\r\n </div>\r\n\r\n <!-- Search section -->\r\n <div *ngIf=\"!disableSearch\" class=\"wac-table__search\">\r\n <wac-input-search\r\n [(ngModel)]=\"tableFilters.searchValue\"\r\n (changeDebounced)=\"searchChange()\"\r\n [placeholder]=\"placeholder\"\r\n [smallPadding]=\"true\"\r\n ></wac-input-search>\r\n </div>\r\n\r\n <!-- Body section -->\r\n <div class=\"wac-table__body\">\r\n <!-- Loader on body -->\r\n <div class=\"wac-table__body__loader\" *ngIf=\"isLoading\">\r\n <wac-loader [small]=\"true\"></wac-loader>\r\n </div>\r\n <!-- Body contents are added with the tableRow directive -->\r\n <ng-content select=\".complex-table\" *ngIf=\"!isLoading\"></ng-content>\r\n <ng-content select=\"[tableRow]\" *ngIf=\"!isLoading\"></ng-content>\r\n </div>\r\n\r\n <!-- Pagination section -->\r\n <wac-pagination *ngIf=\"!disablePagniation\" [pagination]=\"tableFilters\" (pageChange)=\"pageChange()\"></wac-pagination>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.InputSearchComponent, selector: "wac-input-search", inputs: ["placeholder", "withoutgrey", "smallPadding", "id"], outputs: ["changeDebounced"] }, { kind: "component", type: i7.LoaderComponent, selector: "wac-loader", inputs: ["text", "small"] }, { kind: "component", type: i8.CheckboxComponent, selector: "wac-checkbox", inputs: ["label", "value", "type", "alone", "checked", "hasInput", "inputPlaceholder", "id", "name", "whiteSpace", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: i9.PaginationComponent, selector: "wac-pagination", inputs: ["pagination"], outputs: ["pageChange"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableComponent, decorators: [{
|
|
114
|
-
type: Component,
|
|
115
|
-
args: [{ selector: 'wac-table', encapsulation: ViewEncapsulation.None, providers: [
|
|
116
|
-
TableCheckboxIdService,
|
|
117
|
-
MultiSelectionService
|
|
118
|
-
], template: "<div class=\"wac-table\">\r\n <!-- Header section -->\r\n <div class=\"wac-table__head\" id=\"headerTable\">\r\n <div *ngIf=\"checkbox\" class=\"wac-table__head__cell wac-table__head__cell--checkbox\">\r\n <wac-checkbox [id]=\"headerCheckBoxId\" (change)=\"onToggleAllCheckBox($event)\" [alone]=\"true\"></wac-checkbox>\r\n </div>\r\n\r\n <!-- Header contents are added with the headerCell directive -->\r\n <ng-content select=\"[headerCell]\"></ng-content>\r\n </div>\r\n\r\n <!-- Search section -->\r\n <div *ngIf=\"!disableSearch\" class=\"wac-table__search\">\r\n <wac-input-search\r\n [(ngModel)]=\"tableFilters.searchValue\"\r\n (changeDebounced)=\"searchChange()\"\r\n [placeholder]=\"placeholder\"\r\n [smallPadding]=\"true\"\r\n ></wac-input-search>\r\n </div>\r\n\r\n <!-- Body section -->\r\n <div class=\"wac-table__body\">\r\n <!-- Loader on body -->\r\n <div class=\"wac-table__body__loader\" *ngIf=\"isLoading\">\r\n <wac-loader [small]=\"true\"></wac-loader>\r\n </div>\r\n <!-- Body contents are added with the tableRow directive -->\r\n <ng-content select=\".complex-table\" *ngIf=\"!isLoading\"></ng-content>\r\n <ng-content select=\"[tableRow]\" *ngIf=\"!isLoading\"></ng-content>\r\n </div>\r\n\r\n <!-- Pagination section -->\r\n <wac-pagination *ngIf=\"!disablePagniation\" [pagination]=\"tableFilters\" (pageChange)=\"pageChange()\"></wac-pagination>\r\n</div>\r\n" }]
|
|
119
|
-
}], ctorParameters: function () { return [{ type: i1.FiltersTableService }, { type: i2.TableCheckboxIdService }, { type: i3.MultiSelectionService }]; }, propDecorators: { checkBoxRows: [{
|
|
120
|
-
type: ContentChildren,
|
|
121
|
-
args: [CheckBoxRow]
|
|
122
|
-
}], tableRows: [{
|
|
123
|
-
type: ContentChildren,
|
|
124
|
-
args: [TableRow]
|
|
125
|
-
}], tableFilters: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], tableFiltersChange: [{
|
|
128
|
-
type: Output
|
|
129
|
-
}], tableRoutingName: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], placeholder: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}], checkbox: [{
|
|
134
|
-
type: Input
|
|
135
|
-
}], toggleAllCheckBox: [{
|
|
136
|
-
type: Output
|
|
137
|
-
}], checkBoxSelectionChange: [{
|
|
138
|
-
type: Output
|
|
139
|
-
}], disableSearch: [{
|
|
140
|
-
type: Input
|
|
141
|
-
}], disablePagniation: [{
|
|
142
|
-
type: Input
|
|
143
|
-
}], isLoading: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}] } });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUEyQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs1SSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7OztBQVd0RCxNQUFNLE9BQU8sY0FBYztJQXlDekIsWUFBb0IsbUJBQXdDLEVBQVUsc0JBQThDLEVBQVUscUJBQTRDO1FBQXRKLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBVSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQS9CaEssdUJBQWtCLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHckUsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFJbEMsZ0NBQWdDO1FBRWhDLDJEQUEyRDtRQUNsRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWhCLHNCQUFpQixHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDLENBQUMsMENBQTBDO1FBRXpHLDRC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QUFDO0lBQzVFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZDLENBQUM7OzJHQWhJVSxjQUFjOytGQUFkLGNBQWMseVpBTGQ7UUFDVCxzQkFBc0I7UUFDdEIscUJBQXFCO0tBQ3RCLHVEQUlnQixXQUFXLDRDQUNYLFFBQVEsNkJDdEIzQiwyN0NBbUNBOzJGRGhCYSxjQUFjO2tCQVQxQixTQUFTOytCQUNFLFdBQVcsaUJBRU4saUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVCxzQkFBc0I7d0JBQ3RCLHFCQUFxQjtxQkFDdEI7bUxBSTZCLFlBQVk7c0JBQXpDLGVBQWU7dUJBQUMsV0FBVztnQkFDRCxTQUFTO3NCQUFuQyxlQUFlO3VCQUFDLFFBQVE7Z0JBTWhCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksaUJBQWlCO3NCQUExQixNQUFNO2dCQUVHLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFLRSxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsdGVyc1RhYmxlU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL2ZpbHRlcnMtdGFibGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUYWJsZUZpbHRlcnMgfSBmcm9tICcuL3NoYXJlZC90YWJsZS1maWx0ZXJzLm1vZGVsJztcclxuaW1wb3J0IHsgVGFibGVGaWx0ZXJzR3JvdXAgfSBmcm9tICcuL3NoYXJlZC90YWJsZS1maWx0ZXJzLWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHsgQ2hlY2tCb3hSb3cgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY2hlY2tCb3hSb3cuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTXVsdGlTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbXVsdGlwbGUtc2VsZWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUYWJsZUNoZWNrYm94SWRTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvdGFibGUtY2hlY2tib3gtaWQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRhYmxlUm93IH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Jhdy5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3YWMtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFRhYmxlQ2hlY2tib3hJZFNlcnZpY2UsXHJcbiAgICBNdWx0aVNlbGVjdGlvblNlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oQ2hlY2tCb3hSb3cpIGNoZWNrQm94Um93czogUXVlcnlMaXN0PENoZWNrQm94Um93PjtcclxuICBAQ29udGVudENoaWxkcmVuKFRhYmxlUm93KSB0YWJsZVJvd3M6IFF1ZXJ5TGlzdDxUYWJsZVJvdz47XHJcblxyXG4gIC8vIHRvZG8gZmluZCBhIHdheSB0byBzcG90bGlnaHQgdGhlIHdhYy10YWJsZSBkb2Mgd2hlbiB1c2VkIG9uIHdpemktYWRtaW4gb25seSBpbiBkZXZcclxuICAvLyB0b2RvIHRyeSB0byB1c2UgYnJpZGdlIHBhdHRlcm5lIGluIG9yZGVyIHRvIGFkZCBjaGVja2JveCBhbmQgcmVtb3ZlIGNoZWNrYm93cm94IGRpcmVjdGl2ZS5cclxuICAvLy8gSW5wdXQvT3V0cHV0IG9mIHRhYmxlIGZpbHRlcnMgLy8vXHJcblxyXG4gIEBJbnB1dCgpIHRhYmxlRmlsdGVyczogVGFibGVGaWx0ZXJzO1xyXG4gIEBPdXRwdXQoKSB0YWJsZUZpbHRlcnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUYWJsZUZpbHRlcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSB0YWJsZVJvdXRpbmdOYW1lOiBzdHJpbmc7IC8vIE5hbWUgb2YgdGhlIHRhYmxlXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwcml2YXRlIF90YWJsZUZpbHRlcnNHcm91cDogVGFibGVGaWx0ZXJzR3JvdXA7XHJcblxyXG4gIC8vLyBJbnB1dC9PdXRwdXQgb2YgY2hlY2tib3ggLy8vXHJcblxyXG4gIC8qKiBQYXNzIHRvIHRydWUgdG8gZGlzcGxheSBjaGVja2JveCBpbiB0aGUgaGVhZGVyIHRhYmxlICovXHJcbiAgQElucHV0KCkgY2hlY2tib3ggPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIHRvZ2dsZUFsbENoZWNrQm94OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7IC8vIHRvZG8gcmVwbGFjZSBieSBjaGVja0JveFNlbGVjdGlvbkNoYW5nZVxyXG5cclxuICBAT3V0cHV0KCkgY2hlY2tCb3hTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXJbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7IC8vIHRvZG8gYWRkIHRvIGRvY1xyXG5cclxuICAvLy8gSW5wdXQgdG8gZGlzYWJsZSBzZWN0aW9uIC8vL1xyXG5cclxuICAvKiogUGFzcyB0byB0cnVlIHRvIGhpZGUgc2VhcmNoIGlucHV0ICovXHJcbiAgQElucHV0KCkgZGlzYWJsZVNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBQYXNzIHRvIHRydWUgdG8gaGlkZSB0aGUgcGFnbmlhdG9yICovXHJcbiAgQElucHV0KCkgZGlzYWJsZVBhZ25pYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8vIElucHV0IGZvciBsb2FkZXIgb24gdGFibGUgYm9keSAvLy9cclxuXHJcbiAgQElucHV0KCkgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIC8vLyBQcml2YXRlIHZhcmlhYmxlcyAvLy9cclxuICBoZWFkZXJDaGVja0JveElkOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBmaWx0ZXJHcm91cENoYW5nZVN1YjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpbHRlcnNUYWJsZVNlcnZpY2U6IEZpbHRlcnNUYWJsZVNlcnZpY2UsIHByaXZhdGUgdGFibGVDaGVja2JveElkU2VydmljZTogVGFibGVDaGVja2JveElkU2VydmljZSwgcHJpdmF0ZSBtdWx0aVNlbGVjdGlvblNlcnZpY2U6IE11bHRpU2VsZWN0aW9uU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhlYWRlckNoZWNrQm94SWQgPSB0aGlzLnRhYmxlQ2hlY2tib3hJZFNlcnZpY2UuZ2V0VW5pcXVlSWQoKTsgLy8gQ3JlYXRlIGNoZWNrYm94IHVuaXF1ZSBpZFxyXG5cclxuICAgIC8qIEhhbmRsZSByb3V0aW5nIGZpbHRlcnMgKi9cclxuICAgIGlmICh0aGlzLnRhYmxlUm91dGluZ05hbWUpIHtcclxuXHJcbiAgICAgIHRoaXMuZmlsdGVyc1RhYmxlU2VydmljZS5zZXRJbml0aWFsUGFnaW5hdGlvbkZpbHRlcnNJZk5vdEV4aXN0KFxyXG4gICAgICAgIHRoaXMudGFibGVSb3V0aW5nTmFtZSxcclxuICAgICAgICB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UsXHJcbiAgICAgICAgdGhpcy50YWJsZUZpbHRlcnMuY3VycmVudFBhZ2VcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwID0gdGhpcy5maWx0ZXJzVGFibGVTZXJ2aWNlLmdldFRhYmxlRmlsdGVyR3JvdXAodGhpcy50YWJsZVJvdXRpbmdOYW1lKTtcclxuICAgICAgdGhpcy5zZXRUYWJsZXNGaWx0ZXJzKCk7XHJcbiAgICAgIC8vIExpc3RlbiB0byBmaWx0ZXJzIGNoYW5nZXMgd2l0aCBkZWJvdW5jZWQgdGltZSB0byBsaW1pdCBtdWx0aXBsZSBhcGkgY2FsbHNcclxuICAgICAgdGhpcy5maWx0ZXJHcm91cENoYW5nZVN1YiA9IHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLnZhbHVlc0NoYW5nZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNldFRhYmxlc0ZpbHRlcnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5tdWx0aVNlbGVjdGlvblNlcnZpY2UuYWN0aXZlQ2hhbmdlcyQuc3Vic2NyaWJlKHNlbGVjdGlvbkluZGV4UmF3Q2hlY2tDaGFuZ2UgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrQm94U2VsZWN0aW9uQ2hhbmdlLmVtaXQoc2VsZWN0aW9uSW5kZXhSYXdDaGVja0NoYW5nZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMubXVsdGlTZWxlY3Rpb25TZXJ2aWNlLmhhbmRsZSh0aGlzLmNoZWNrQm94Um93cyk7XHJcbiAgICB0aGlzLmNoZWNrQm94Um93cy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubXVsdGlTZWxlY3Rpb25TZXJ2aWNlLmhhbmRsZSh0aGlzLmNoZWNrQm94Um93cyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uVG9nZ2xlQWxsQ2hlY2tCb3goZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50b2dnbGVBbGxDaGVja0JveC5lbWl0KGV2ZW50LnRhcmdldC5jaGVja2VkKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaENoYW5nZSgpIHtcclxuICAgIC8vIFJlc2V0IHRhYmxlIGZpbHRlcnNcclxuICAgIHRoaXMudGFibGVGaWx0ZXJzLnNvcnQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRhYmxlRmlsdGVycy5vcmRlciA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudGFibGVGaWx0ZXJzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIHRoaXMudGFibGVGaWx0ZXJzQ2hhbmdlLmVtaXQodGhpcy50YWJsZUZpbHRlcnMpO1xyXG5cclxuICAgIC8vIFJlc2V0IHJvdXRpbmcgZmlsdGVyc1xyXG4gICAgaWYgKHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwKSB7XHJcbiAgICAgIHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLnNldFZhbHVlcyh7XHJcbiAgICAgICAgc2VhcmNoVmFsdWU6IHRoaXMudGFibGVGaWx0ZXJzLnNlYXJjaFZhbHVlLFxyXG4gICAgICAgIHNvcnQ6IHVuZGVmaW5lZCxcclxuICAgICAgICBvcmRlcjogdW5kZWZpbmVkLFxyXG4gICAgICAgIGN1cnJlbnRQYWdlOiAxXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcGFnZUNoYW5nZSgpIHtcclxuICAgIHRoaXMudGFibGVGaWx0ZXJzQ2hhbmdlLmVtaXQodGhpcy50YWJsZUZpbHRlcnMpO1xyXG4gICAgaWYgKHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwKSB7XHJcbiAgICAgIHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLnNldFZhbHVlcyh7XHJcbiAgICAgICAgaXRlbXNQZXJQYWdlOiB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UsXHJcbiAgICAgICAgY3VycmVudFBhZ2U6IHRoaXMudGFibGVGaWx0ZXJzLmN1cnJlbnRQYWdlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIFNldCB0YWJsZUZpbHRlcnMgZnJvbSByb3V0aW5nIGRhdGEgZXhpc3RpbmcgaW4gdGhlIHVybFxyXG4gICAqICovXHJcbiAgcHJpdmF0ZSBzZXRUYWJsZXNGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy50YWJsZUZpbHRlcnMgPSB7XHJcbiAgICAgIHNvcnQ6IHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLmdldCgnc29ydCcpLFxyXG4gICAgICBvcmRlcjogdGhpcy5fdGFibGVGaWx0ZXJzR3JvdXAuZ2V0KCdvcmRlcicpID8gdGhpcy5fdGFibGVGaWx0ZXJzR3JvdXAuZ2V0KCdvcmRlcicpID09PSAndHJ1ZScgOiB1bmRlZmluZWQsXHJcbiAgICAgIHNlYXJjaFZhbHVlOiB0aGlzLl90YWJsZUZpbHRlcnNHcm91cC5nZXQoJ3NlYXJjaFZhbHVlJyksXHJcbiAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5fdGFibGVGaWx0ZXJzR3JvdXAuZ2V0KCdpdGVtc1BlclBhZ2UnKSA/IHBhcnNlSW50KHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLmdldCgnaXRlbXNQZXJQYWdlJykpIDogMCxcclxuICAgICAgY3VycmVudFBhZ2U6IHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLmdldCgnY3VycmVudFBhZ2UnKSA/IHBhcnNlSW50KHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLmdldCgnY3VycmVudFBhZ2UnKSkgOiAwLFxyXG4gICAgICB0b3RhbEl0ZW1zOiB0aGlzLnRhYmxlRmlsdGVycy50b3RhbEl0ZW1zXHJcbiAgICB9O1xyXG4gICAgdGhpcy50YWJsZUZpbHRlcnNDaGFuZ2UuZW1pdCh0aGlzLnRhYmxlRmlsdGVycyk7XHJcbiAgICB0aGlzLl90YWJsZUZpbHRlcnNHcm91cC50YWJsZUZpbHRlcnNWYWx1ZXNDaGFuZ2UkLm5leHQodGhpcy50YWJsZUZpbHRlcnMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJHcm91cENoYW5nZVN1Yikge1xyXG4gICAgICB0aGlzLmZpbHRlckdyb3VwQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm11bHRpU2VsZWN0aW9uU2VydmljZS5kZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ3YWMtdGFibGVcIj5cclxuICA8IS0tIEhlYWRlciBzZWN0aW9uIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJ3YWMtdGFibGVfX2hlYWRcIiBpZD1cImhlYWRlclRhYmxlXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiY2hlY2tib3hcIiBjbGFzcz1cIndhYy10YWJsZV9faGVhZF9fY2VsbCB3YWMtdGFibGVfX2hlYWRfX2NlbGwtLWNoZWNrYm94XCI+XHJcbiAgICAgIDx3YWMtY2hlY2tib3ggW2lkXT1cImhlYWRlckNoZWNrQm94SWRcIiAoY2hhbmdlKT1cIm9uVG9nZ2xlQWxsQ2hlY2tCb3goJGV2ZW50KVwiIFthbG9uZV09XCJ0cnVlXCI+PC93YWMtY2hlY2tib3g+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIEhlYWRlciBjb250ZW50cyBhcmUgYWRkZWQgd2l0aCB0aGUgaGVhZGVyQ2VsbCBkaXJlY3RpdmUgLS0+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyQ2VsbF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gU2VhcmNoIHNlY3Rpb24gLS0+XHJcbiAgPGRpdiAqbmdJZj1cIiFkaXNhYmxlU2VhcmNoXCIgY2xhc3M9XCJ3YWMtdGFibGVfX3NlYXJjaFwiPlxyXG4gICAgPHdhYy1pbnB1dC1zZWFyY2hcclxuICAgICAgWyhuZ01vZGVsKV09XCJ0YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWVcIlxyXG4gICAgICAoY2hhbmdlRGVib3VuY2VkKT1cInNlYXJjaENoYW5nZSgpXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW3NtYWxsUGFkZGluZ109XCJ0cnVlXCJcclxuICAgID48L3dhYy1pbnB1dC1zZWFyY2g+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gQm9keSBzZWN0aW9uIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJ3YWMtdGFibGVfX2JvZHlcIj5cclxuICAgIDwhLS0gTG9hZGVyIG9uIGJvZHkgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwid2FjLXRhYmxlX19ib2R5X19sb2FkZXJcIiAqbmdJZj1cImlzTG9hZGluZ1wiPlxyXG4gICAgICA8d2FjLWxvYWRlciBbc21hbGxdPVwidHJ1ZVwiPjwvd2FjLWxvYWRlcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBCb2R5IGNvbnRlbnRzIGFyZSBhZGRlZCB3aXRoIHRoZSB0YWJsZVJvdyBkaXJlY3RpdmUgLS0+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCIuY29tcGxleC10YWJsZVwiICpuZ0lmPVwiIWlzTG9hZGluZ1wiPjwvbmctY29udGVudD5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZVJvd11cIiAqbmdJZj1cIiFpc0xvYWRpbmdcIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gUGFnaW5hdGlvbiBzZWN0aW9uIC0tPlxyXG4gIDx3YWMtcGFnaW5hdGlvbiAqbmdJZj1cIiFkaXNhYmxlUGFnbmlhdGlvblwiIFtwYWdpbmF0aW9uXT1cInRhYmxlRmlsdGVyc1wiIChwYWdlQ2hhbmdlKT1cInBhZ2VDaGFuZ2UoKVwiPjwvd2FjLXBhZ2luYXRpb24+XHJcbjwvZGl2PlxyXG4iXX0=
|