@wizishop/angular-components 15.1.112 → 18.2.0
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 +1717 -1719
- 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/esm2022/lib/components/ai-express/ai-express.component.mjs +83 -0
- 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 +444 -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/{esm2020 → esm2022}/lib/components/text-area/text-area.component.mjs +4 -4
- 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 +888 -884
- 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 +1 -1
- 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 -1
- 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 +26 -32
- package/esm2020/lib/components/ai-express/ai-express.component.mjs +0 -83
- 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 -81
- 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 -97
- 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/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 -7023
- package/fesm2015/wizishop-angular-components.mjs.map +0 -1
- package/fesm2020/wizishop-angular-components.mjs.map +0 -1
- package/wizishop-angular-components-15.1.112.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,200 +0,0 @@
|
|
|
1
|
-
import { Attribute, Component, EventEmitter, Inject, Input, Optional, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { FormGroupDirective } from '@angular/forms';
|
|
3
|
-
import { interval } from 'rxjs';
|
|
4
|
-
import { takeWhile } from 'rxjs/operators';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "../../directives/auto-hide/auto-hide.directive";
|
|
8
|
-
import * as i3 from "@angular/forms";
|
|
9
|
-
export class ButtonComponent {
|
|
10
|
-
set isLoading(isLoading) {
|
|
11
|
-
this._isLoading = isLoading;
|
|
12
|
-
this.isLoadingChange.next(isLoading);
|
|
13
|
-
this.toggleLoading();
|
|
14
|
-
}
|
|
15
|
-
get isLoading() {
|
|
16
|
-
return this._isLoading;
|
|
17
|
-
}
|
|
18
|
-
constructor(type, formGroup) {
|
|
19
|
-
this.type = type;
|
|
20
|
-
this.formGroup = formGroup;
|
|
21
|
-
// todo add button type (ex: for submit and check if it works with template driven forms)
|
|
22
|
-
this.extraClasses = 'is-info'; // todo make a list of existing class
|
|
23
|
-
this.label = '';
|
|
24
|
-
this.icon = '';
|
|
25
|
-
this.isLoadingSvg = false;
|
|
26
|
-
this.textcolor = null;
|
|
27
|
-
this.widthAuto = false;
|
|
28
|
-
this.contentHorizontalPosition = 'center';
|
|
29
|
-
this.iconFontSize = 12;
|
|
30
|
-
this.hasLoader = false;
|
|
31
|
-
this.disabled = false;
|
|
32
|
-
this.whiteSpaceNowrap = false;
|
|
33
|
-
this.opacity = false;
|
|
34
|
-
// TODO MAKE ANNIMATION AVAILABLE FOR MOBILE as CONFIRM DELETE DO (because, its doeant show the text and trigger click)
|
|
35
|
-
this.animation = false;
|
|
36
|
-
this.animationRight = false;
|
|
37
|
-
this.animationText = '';
|
|
38
|
-
this.confirmDelete = false;
|
|
39
|
-
this.confirmDeleteText = '';
|
|
40
|
-
this.noPadding = false;
|
|
41
|
-
this.tooltipPosition = 'top-center';
|
|
42
|
-
this.tooltipOneline = false;
|
|
43
|
-
this.confirmDeletePosition = 'right';
|
|
44
|
-
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
45
|
-
this.click = new EventEmitter();
|
|
46
|
-
this.isLoadingChange = new EventEmitter();
|
|
47
|
-
this._isLoading = false;
|
|
48
|
-
this.interval = null;
|
|
49
|
-
this.waitForConfirmDelete = false;
|
|
50
|
-
this.buttonMaxWidth = '0px';
|
|
51
|
-
this.buttonWidth = '0px';
|
|
52
|
-
this.buttonMaxWidthDelete = '0px';
|
|
53
|
-
this.buttonWidthDelete = '0px';
|
|
54
|
-
this.currentLoading = 0;
|
|
55
|
-
}
|
|
56
|
-
ngOnInit() {
|
|
57
|
-
if (this.confirmDelete) {
|
|
58
|
-
this.waitForConfirmDelete = true;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
toggleLoading() {
|
|
62
|
-
this.currentLoading = this.isLoading ? 10 : 100;
|
|
63
|
-
interval(200).pipe(takeWhile(time => this.isLoading)).subscribe(() => {
|
|
64
|
-
if (this.currentLoading < 85) {
|
|
65
|
-
this.currentLoading += Math.floor(Math.random() * 15);
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
onButtonClickLoader() {
|
|
70
|
-
this.isLoadingSvg = true;
|
|
71
|
-
}
|
|
72
|
-
addMaxWidth() {
|
|
73
|
-
this.buttonMaxWidth = this.buttonWidth + 'px';
|
|
74
|
-
}
|
|
75
|
-
resetMaxWidth() {
|
|
76
|
-
this.buttonMaxWidth = '0px';
|
|
77
|
-
}
|
|
78
|
-
addMaxWidthDelete() {
|
|
79
|
-
this.buttonMaxWidthDelete = this.buttonWidthDelete + 'px';
|
|
80
|
-
}
|
|
81
|
-
resetMaxWidthDelete() {
|
|
82
|
-
this.buttonMaxWidthDelete = '0px';
|
|
83
|
-
this.waitForConfirmDelete = true;
|
|
84
|
-
}
|
|
85
|
-
onButtonClick(event) {
|
|
86
|
-
event.stopPropagation();
|
|
87
|
-
if (this.disabled) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
if (this.type === 'submit' && this.formGroup) { // Maybe there is a better way to handle submit
|
|
91
|
-
this.formGroup.onSubmit(this.formGroup.value);
|
|
92
|
-
}
|
|
93
|
-
if (this.hasLoader) {
|
|
94
|
-
this.isLoading = false;
|
|
95
|
-
setTimeout(() => {
|
|
96
|
-
this.isLoading = true;
|
|
97
|
-
}, 0);
|
|
98
|
-
}
|
|
99
|
-
if (!this.waitForConfirmDelete) {
|
|
100
|
-
this.click.emit(event);
|
|
101
|
-
if (this.confirmDelete) {
|
|
102
|
-
this.resetMaxWidthDelete();
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
this.waitForConfirmDelete = false;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
ngAfterViewInit() {
|
|
110
|
-
setTimeout(() => {
|
|
111
|
-
if (this.animation) {
|
|
112
|
-
this.buttonWidth = this.calculWidth.nativeElement.offsetWidth;
|
|
113
|
-
}
|
|
114
|
-
if (this.confirmDelete) {
|
|
115
|
-
this.buttonWidthDelete = this.calculWidthDelete.nativeElement.offsetWidth;
|
|
116
|
-
}
|
|
117
|
-
}, 1000);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ButtonComponent, deps: [{ token: 'type', attribute: true }, { token: FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
121
|
-
ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: ButtonComponent, selector: "wac-button", inputs: { extraClasses: "extraClasses", label: "label", icon: "icon", isLoadingSvg: "isLoadingSvg", iconNext: "iconNext", textcolor: "textcolor", colorIcon: "colorIcon", widthAuto: "widthAuto", contentHorizontalPosition: "contentHorizontalPosition", iconFontSize: "iconFontSize", hasLoader: "hasLoader", disabled: "disabled", whiteSpaceNowrap: "whiteSpaceNowrap", opacity: "opacity", animation: "animation", animationRight: "animationRight", animationText: "animationText", confirmDelete: "confirmDelete", confirmDeleteText: "confirmDeleteText", coin: "coin", tooltip: "tooltip", tooltipWidth: "tooltipWidth", borderColor: "borderColor", noPadding: "noPadding", tooltipPosition: "tooltipPosition", tooltipOneline: "tooltipOneline", confirmDeletePosition: "confirmDeletePosition", isLoading: "isLoading" }, outputs: { click: "click", isLoadingChange: "isLoadingChange" }, viewQueries: [{ propertyName: "calculWidth", first: true, predicate: ["calculWidth"], descendants: true }, { propertyName: "calculWidthDelete", first: true, predicate: ["calculWidthDelete"], descendants: true }], ngImport: i0, template: "<a\r\n [class]=\"'wac-button ' + extraClasses\"\r\n [style.borderColor]=\"borderColor ? borderColor + '!important' : ''\"\r\n (click)=\"confirmDelete && waitForConfirmDelete ? addMaxWidthDelete() : '';onButtonClick($event);\"\r\n (mouseleave)=\"animation ? resetMaxWidth() : '';\"\r\n (mouseenter)=\"animation ? addMaxWidth() : '';\"\r\n wzAutoHide (clickOutside)=\"confirmDelete && !waitForConfirmDelete ? resetMaxWidthDelete() : ''\"\r\n [ngClass]=\"[\r\n label === '' ? 'alone' : '',\r\n coin ? 'has-coin width-auto' : '',\r\n animationRight ? 'animation-right' : '',\r\n animation ? 'animationText' : '',\r\n isLoading ? 'is-loading' : '',\r\n opacity ? 'opacity' : '',\r\n disabled ? 'disabled' : '',\r\n widthAuto ? 'width-auto' : '',\r\n noPadding ? 'no-padding' : '',\r\n whiteSpaceNowrap ? 'white-space-no-wrap' : '',\r\n !waitForConfirmDelete && confirmDelete ? 'step-delete' : '',\r\n confirmDelete ? 'deletePosition-' + confirmDeletePosition : ''\r\n ]\"\r\n [ngStyle]=\"{\r\n 'text-align': contentHorizontalPosition\r\n }\"\r\n>\r\n <span class=\"wac-button__wrapper\" [style.color]=\"textcolor ? textcolor : ''\" [ngClass]=\"{'loading-class': isLoadingSvg}\">\r\n <svg *ngIf=\"isLoadingSvg; else iconTemplate\" version=\"1.1\" id=\"loader-1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\r\n width=\"20px\" height=\"20px\" viewBox=\"0 0 50 50\" style=\"enable-background:new 0 0 50 50;\" xml:space=\"preserve\">\r\n <path fill=\"#fff\" d=\"M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z\">\r\n <animateTransform attributeType=\"xml\"\r\n attributeName=\"transform\"\r\n type=\"rotate\"\r\n from=\"0 25 25\"\r\n to=\"360 25 25\"\r\n dur=\"0.6s\"\r\n repeatCount=\"indefinite\"/>\r\n </path>\r\n </svg>\r\n <ng-template #iconTemplate>\r\n <i *ngIf=\"icon\" [ngClass]=\"icon\" [style.color]=\"colorIcon\" [style.font-size.px]=\"iconFontSize\"></i>\r\n </ng-template>\r\n {{ label }}\r\n <i *ngIf=\"iconNext\" [style.color]=\"colorIcon\" [ngClass]=\"iconNext\" [style.font-size.px]=\"iconFontSize\"></i>\r\n </span>\r\n <span class=\"wac-button__animation\" [style.maxWidth]=\"buttonMaxWidth\" [style.width]=\"buttonWidth + 'px'\">\r\n <span #calculWidth class=\"wac-button__animation__text\" [innerHTML]=\"animationText\"></span>\r\n </span>\r\n <span class=\"wac-button__confirmDelete\" [style.maxWidth]=\"buttonMaxWidthDelete\" [style.width]=\"buttonWidthDelete + 'px'\">\r\n <span #calculWidthDelete class=\"wac-button__confirmDelete__text\" [innerHTML]=\"confirmDeleteText\"></span>\r\n </span>\r\n <span *ngIf=\"coin\" class=\"wac-button__coin\"><i class=\"fa-solid fa-coin-front\"></i><span [innerHTML]=\"coin\"></span></span>\r\n <span\r\n class=\"wac-button__loader\"\r\n [ngClass]=\"extraClasses.includes('is-outlined') ? 'outlined' : ''\"\r\n *ngIf=\"isLoading\"\r\n [style.width]=\"currentLoading + '%'\"\r\n >\r\n </span>\r\n <span class=\"wac-button__tooltips {{ tooltipPosition }}\" [ngClass]=\"{'oneline': tooltipOneline}\" [style.minWidth]=\"tooltipWidth\" *ngIf=\"tooltip\">\r\n {{ tooltip }}\r\n </span>\r\n</a>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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"] }] });
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
123
|
-
type: Component,
|
|
124
|
-
args: [{ selector: 'wac-button', template: "<a\r\n [class]=\"'wac-button ' + extraClasses\"\r\n [style.borderColor]=\"borderColor ? borderColor + '!important' : ''\"\r\n (click)=\"confirmDelete && waitForConfirmDelete ? addMaxWidthDelete() : '';onButtonClick($event);\"\r\n (mouseleave)=\"animation ? resetMaxWidth() : '';\"\r\n (mouseenter)=\"animation ? addMaxWidth() : '';\"\r\n wzAutoHide (clickOutside)=\"confirmDelete && !waitForConfirmDelete ? resetMaxWidthDelete() : ''\"\r\n [ngClass]=\"[\r\n label === '' ? 'alone' : '',\r\n coin ? 'has-coin width-auto' : '',\r\n animationRight ? 'animation-right' : '',\r\n animation ? 'animationText' : '',\r\n isLoading ? 'is-loading' : '',\r\n opacity ? 'opacity' : '',\r\n disabled ? 'disabled' : '',\r\n widthAuto ? 'width-auto' : '',\r\n noPadding ? 'no-padding' : '',\r\n whiteSpaceNowrap ? 'white-space-no-wrap' : '',\r\n !waitForConfirmDelete && confirmDelete ? 'step-delete' : '',\r\n confirmDelete ? 'deletePosition-' + confirmDeletePosition : ''\r\n ]\"\r\n [ngStyle]=\"{\r\n 'text-align': contentHorizontalPosition\r\n }\"\r\n>\r\n <span class=\"wac-button__wrapper\" [style.color]=\"textcolor ? textcolor : ''\" [ngClass]=\"{'loading-class': isLoadingSvg}\">\r\n <svg *ngIf=\"isLoadingSvg; else iconTemplate\" version=\"1.1\" id=\"loader-1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\r\n width=\"20px\" height=\"20px\" viewBox=\"0 0 50 50\" style=\"enable-background:new 0 0 50 50;\" xml:space=\"preserve\">\r\n <path fill=\"#fff\" d=\"M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z\">\r\n <animateTransform attributeType=\"xml\"\r\n attributeName=\"transform\"\r\n type=\"rotate\"\r\n from=\"0 25 25\"\r\n to=\"360 25 25\"\r\n dur=\"0.6s\"\r\n repeatCount=\"indefinite\"/>\r\n </path>\r\n </svg>\r\n <ng-template #iconTemplate>\r\n <i *ngIf=\"icon\" [ngClass]=\"icon\" [style.color]=\"colorIcon\" [style.font-size.px]=\"iconFontSize\"></i>\r\n </ng-template>\r\n {{ label }}\r\n <i *ngIf=\"iconNext\" [style.color]=\"colorIcon\" [ngClass]=\"iconNext\" [style.font-size.px]=\"iconFontSize\"></i>\r\n </span>\r\n <span class=\"wac-button__animation\" [style.maxWidth]=\"buttonMaxWidth\" [style.width]=\"buttonWidth + 'px'\">\r\n <span #calculWidth class=\"wac-button__animation__text\" [innerHTML]=\"animationText\"></span>\r\n </span>\r\n <span class=\"wac-button__confirmDelete\" [style.maxWidth]=\"buttonMaxWidthDelete\" [style.width]=\"buttonWidthDelete + 'px'\">\r\n <span #calculWidthDelete class=\"wac-button__confirmDelete__text\" [innerHTML]=\"confirmDeleteText\"></span>\r\n </span>\r\n <span *ngIf=\"coin\" class=\"wac-button__coin\"><i class=\"fa-solid fa-coin-front\"></i><span [innerHTML]=\"coin\"></span></span>\r\n <span\r\n class=\"wac-button__loader\"\r\n [ngClass]=\"extraClasses.includes('is-outlined') ? 'outlined' : ''\"\r\n *ngIf=\"isLoading\"\r\n [style.width]=\"currentLoading + '%'\"\r\n >\r\n </span>\r\n <span class=\"wac-button__tooltips {{ tooltipPosition }}\" [ngClass]=\"{'oneline': tooltipOneline}\" [style.minWidth]=\"tooltipWidth\" *ngIf=\"tooltip\">\r\n {{ tooltip }}\r\n </span>\r\n</a>\r\n" }]
|
|
125
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
126
|
-
type: Attribute,
|
|
127
|
-
args: ['type']
|
|
128
|
-
}] }, { type: i3.FormGroupDirective, decorators: [{
|
|
129
|
-
type: Optional
|
|
130
|
-
}, {
|
|
131
|
-
type: Inject,
|
|
132
|
-
args: [FormGroupDirective]
|
|
133
|
-
}] }]; }, propDecorators: { extraClasses: [{
|
|
134
|
-
type: Input
|
|
135
|
-
}], label: [{
|
|
136
|
-
type: Input
|
|
137
|
-
}], icon: [{
|
|
138
|
-
type: Input
|
|
139
|
-
}], isLoadingSvg: [{
|
|
140
|
-
type: Input
|
|
141
|
-
}], iconNext: [{
|
|
142
|
-
type: Input
|
|
143
|
-
}], textcolor: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}], colorIcon: [{
|
|
146
|
-
type: Input
|
|
147
|
-
}], widthAuto: [{
|
|
148
|
-
type: Input
|
|
149
|
-
}], contentHorizontalPosition: [{
|
|
150
|
-
type: Input
|
|
151
|
-
}], iconFontSize: [{
|
|
152
|
-
type: Input
|
|
153
|
-
}], hasLoader: [{
|
|
154
|
-
type: Input
|
|
155
|
-
}], disabled: [{
|
|
156
|
-
type: Input
|
|
157
|
-
}], whiteSpaceNowrap: [{
|
|
158
|
-
type: Input
|
|
159
|
-
}], opacity: [{
|
|
160
|
-
type: Input
|
|
161
|
-
}], animation: [{
|
|
162
|
-
type: Input
|
|
163
|
-
}], animationRight: [{
|
|
164
|
-
type: Input
|
|
165
|
-
}], animationText: [{
|
|
166
|
-
type: Input
|
|
167
|
-
}], confirmDelete: [{
|
|
168
|
-
type: Input
|
|
169
|
-
}], confirmDeleteText: [{
|
|
170
|
-
type: Input
|
|
171
|
-
}], coin: [{
|
|
172
|
-
type: Input
|
|
173
|
-
}], tooltip: [{
|
|
174
|
-
type: Input
|
|
175
|
-
}], tooltipWidth: [{
|
|
176
|
-
type: Input
|
|
177
|
-
}], borderColor: [{
|
|
178
|
-
type: Input
|
|
179
|
-
}], noPadding: [{
|
|
180
|
-
type: Input
|
|
181
|
-
}], tooltipPosition: [{
|
|
182
|
-
type: Input
|
|
183
|
-
}], tooltipOneline: [{
|
|
184
|
-
type: Input
|
|
185
|
-
}], confirmDeletePosition: [{
|
|
186
|
-
type: Input
|
|
187
|
-
}], click: [{
|
|
188
|
-
type: Output
|
|
189
|
-
}], isLoading: [{
|
|
190
|
-
type: Input
|
|
191
|
-
}], isLoadingChange: [{
|
|
192
|
-
type: Output
|
|
193
|
-
}], calculWidth: [{
|
|
194
|
-
type: ViewChild,
|
|
195
|
-
args: ['calculWidth']
|
|
196
|
-
}], calculWidthDelete: [{
|
|
197
|
-
type: ViewChild,
|
|
198
|
-
args: ['calculWidthDelete']
|
|
199
|
-
}] } });
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hKLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU0zQyxNQUFNLE9BQU8sZUFBZTtJQXNGMUIsSUFBYSxTQUFTLENBQUMsU0FBbUI7UUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFJRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQXVCRCxZQUM2QixJQUFZLEVBQ1MsU0FBNkI7UUFEbEQsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNTLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBeEgvRSx5RkFBeUY7UUFFekYsaUJBQVksR0FBRyxTQUFTLENBQUMsQ0FBQyxxQ0FBcUM7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bmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3YWMtYnV0dG9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICAvLyB0b2RvIGFkZCBidXR0b24gdHlwZSAoZXg6IGZvciBzdWJtaXQgYW5kIGNoZWNrIGlmIGl0IHdvcmtzIHdpdGggdGVtcGxhdGUgZHJpdmVuIGZvcm1zKVxyXG4gIEBJbnB1dCgpXHJcbiAgZXh0cmFDbGFzc2VzID0gJ2lzLWluZm8nOyAvLyB0b2RvIG1ha2UgYSBsaXN0IG9mIGV4aXN0aW5nIGNsYXNzXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbGFiZWwgPSAnJztcclxuXHJcbiAgQElucHV0KClcclxuICBpY29uID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIFxyXG4gIGlzTG9hZGluZ1N2ZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGljb25OZXh0OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGV4dGNvbG9yID0gbnVsbDtcclxuXHJcbiAgQElucHV0KClcclxuICBjb2xvckljb246IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICB3aWR0aEF1dG8gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBjb250ZW50SG9yaXpvbnRhbFBvc2l0aW9uOiAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCcgPSAnY2VudGVyJztcclxuXHJcbiAgQElucHV0KClcclxuICBpY29uRm9udFNpemUgPSAxMjtcclxuXHJcbiAgQElucHV0KClcclxuICBoYXNMb2FkZXIgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBkaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHdoaXRlU3BhY2VOb3dyYXAgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBvcGFjaXR5ID0gZmFsc2U7XHJcbiAgLy8gVE9ETyBNQUtFIEFOTklNQVRJT04gQVZBSUxBQkxFIEZPUiBNT0JJTEUgYXMgQ09ORklSTSBERUxFVEUgRE8gKGJlY2F1c2UsIGl0cyBkb2VhbnQgc2hvdyB0aGUgdGV4dCBhbmQgdHJpZ2dlciBjbGljaylcclxuICBASW5wdXQoKVxyXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGFuaW1hdGlvblJpZ2h0ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYW5pbWF0aW9uVGV4dCA9ICcnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvbmZpcm1EZWxldGUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBjb25maXJtRGVsZXRlVGV4dCA9ICcnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvaW46IG51bWJlciB8IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICB0b29sdGlwOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdG9vbHRpcFdpZHRoOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYm9yZGVyQ29sb3I6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBub1BhZGRpbmcgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICB0b29sdGlwUG9zaXRpb246ICd0b3AtY2VudGVyJyB8ICd0b3AtcmlnaHQnIHwgJ3RvcC1sZWZ0JyB8ICdib3R0b20tY2VudGVyJyB8ICdib3R0b20tcmlnaHQnIHwgJ2JvdHRvbS1sZWZ0JyB8ICdsZWZ0JyB8ICdyaWdodCcgPSAndG9wLWNlbnRlcic7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdG9vbHRpcE9uZWxpbmUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBjb25maXJtRGVsZXRlUG9zaXRpb24gPSAncmlnaHQnO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcclxuICBAT3V0cHV0KCkgcHVibGljIGNsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBpc0xvYWRpbmcoaXNMb2FkaW5nIDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faXNMb2FkaW5nID0gaXNMb2FkaW5nO1xyXG4gICAgdGhpcy5pc0xvYWRpbmdDaGFuZ2UubmV4dChpc0xvYWRpbmcpO1xyXG4gICAgdGhpcy50b2dnbGVMb2FkaW5nKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgaXNMb2FkaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBnZXQgaXNMb2FkaW5nKCkgOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0xvYWRpbmc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIGludGVydmFsID0gbnVsbDtcclxuXHJcbiAgd2FpdEZvckNvbmZpcm1EZWxldGUgPSBmYWxzZTtcclxuXHJcbiAgYnV0dG9uTWF4V2lkdGggPSAnMHB4JztcclxuICBidXR0b25XaWR0aCA9ICcwcHgnO1xyXG5cclxuICBidXR0b25NYXhXaWR0aERlbGV0ZSA9ICcwcHgnO1xyXG4gIGJ1dHRvbldpZHRoRGVsZXRlID0gJzBweCc7XHJcblxyXG4gIGN1cnJlbnRMb2FkaW5nID0gMDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY2FsY3VsV2lkdGgnKVxyXG4gIGNhbGN1bFdpZHRoOiBFbGVtZW50UmVmO1xyXG5cclxuICBAVmlld0NoaWxkKCdjYWxjdWxXaWR0aERlbGV0ZScpXHJcbiAgY2FsY3VsV2lkdGhEZWxldGU6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEF0dHJpYnV0ZSgndHlwZScpIHByaXZhdGUgdHlwZTogc3RyaW5nLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGb3JtR3JvdXBEaXJlY3RpdmUpIHByaXZhdGUgZm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmVcclxuICAgICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5jb25maXJtRGVsZXRlKSB7XHJcbiAgICAgIHRoaXMud2FpdEZvckNvbmZpcm1EZWxldGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTG9hZGluZygpIHtcclxuICAgIHRoaXMuY3VycmVudExvYWRpbmcgPSB0aGlzLmlzTG9hZGluZyA/IDEwIDogMTAwO1xyXG5cclxuICAgIGludGVydmFsKDIwMCkucGlwZSh0YWtlV2hpbGUoIHRpbWU9PiB0aGlzLmlzTG9hZGluZykpLnN1YnNjcmliZShcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRMb2FkaW5nIDwgODUpIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudExvYWRpbmcgKz0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uQnV0dG9uQ2xpY2tMb2FkZXIoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZ1N2ZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBhZGRNYXhXaWR0aCgpIHtcclxuICAgIHRoaXMuYnV0dG9uTWF4V2lkdGggPSB0aGlzLmJ1dHRvbldpZHRoICsgJ3B4JztcclxuICB9XHJcblxyXG4gIHJlc2V0TWF4V2lkdGgoKSB7XHJcbiAgICB0aGlzLmJ1dHRvbk1heFdpZHRoID0gJzBweCc7XHJcbiAgfVxyXG5cclxuICBhZGRNYXhXaWR0aERlbGV0ZSgpIHtcclxuICAgIHRoaXMuYnV0dG9uTWF4V2lkdGhEZWxldGUgPSB0aGlzLmJ1dHRvbldpZHRoRGVsZXRlICsgJ3B4JztcclxuICB9XHJcblxyXG4gIHJlc2V0TWF4V2lkdGhEZWxldGUoKSB7XHJcbiAgICB0aGlzLmJ1dHRvbk1heFdpZHRoRGVsZXRlID0gJzBweCc7XHJcbiAgICB0aGlzLndhaXRGb3JDb25maXJtRGVsZXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uQnV0dG9uQ2xpY2soZXZlbnQpe1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnc3VibWl0JyAmJiB0aGlzLmZvcm1Hcm91cCkgeyAvLyBNYXliZSB0aGVyZSBpcyBhIGJldHRlciB3YXkgdG8gaGFuZGxlIHN1Ym1pdFxyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5vblN1Ym1pdCh0aGlzLmZvcm1Hcm91cC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5oYXNMb2FkZXIpIHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7IC8vIHRyaWNrIHRvIHJlc2V0IHRoZSBhbmltYXRpb24gbG9hZGluZ1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLndhaXRGb3JDb25maXJtRGVsZXRlKSB7XHJcbiAgICAgIHRoaXMuY2xpY2suZW1pdChldmVudCk7XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpcm1EZWxldGUpIHtcclxuICAgICAgICB0aGlzLnJlc2V0TWF4V2lkdGhEZWxldGUoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53YWl0Rm9yQ29uZmlybURlbGV0ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmFuaW1hdGlvbikge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uV2lkdGggPSB0aGlzLmNhbGN1bFdpZHRoLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuY29uZmlybURlbGV0ZSkge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uV2lkdGhEZWxldGUgPSB0aGlzLmNhbGN1bFdpZHRoRGVsZXRlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxufVxyXG4iLCI8YVxyXG4gIFtjbGFzc109XCInd2FjLWJ1dHRvbiAnICsgZXh0cmFDbGFzc2VzXCJcclxuICBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiYm9yZGVyQ29sb3IgPyBib3JkZXJDb2xvciArICchaW1wb3J0YW50JyA6ICcnXCJcclxuICAoY2xpY2spPVwiY29uZmlybURlbGV0ZSAmJiB3YWl0Rm9yQ29uZmlybURlbGV0ZSA/IGFkZE1heFdpZHRoRGVsZXRlKCkgOiAnJztvbkJ1dHRvbkNsaWNrKCRldmVudCk7XCJcclxuICAobW91c2VsZWF2ZSk9XCJhbmltYXRpb24gPyByZXNldE1heFdpZHRoKCkgOiAnJztcIlxyXG4gIChtb3VzZWVudGVyKT1cImFuaW1hdGlvbiA/IGFkZE1heFdpZHRoKCkgOiAnJztcIlxyXG4gIHd6QXV0b0hpZGUgKGNsaWNrT3V0c2lkZSk9XCJjb25maXJtRGVsZXRlICYmICF3YWl0Rm9yQ29uZmlybURlbGV0ZSA/IHJlc2V0TWF4V2lkdGhEZWxldGUoKSA6ICcnXCJcclxuICBbbmdDbGFzc109XCJbXHJcbiAgICBsYWJlbCA9PT0gJycgPyAnYWxvbmUnIDogJycsXHJcbiAgICBjb2luID8gJ2hhcy1jb2luIHdpZHRoLWF1dG8nIDogJycsXHJcbiAgICBhbmltYXRpb25SaWdodCA/ICdhbmltYXRpb24tcmlnaHQnIDogJycsXHJcbiAgICBhbmltYXRpb24gPyAnYW5pbWF0aW9uVGV4dCcgOiAnJyxcclxuICAgIGlzTG9hZGluZyA/ICdpcy1sb2FkaW5nJyA6ICcnLFxyXG4gICAgb3BhY2l0eSA/ICdvcGFjaXR5JyA6ICcnLFxyXG4gICAgZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogJycsXHJcbiAgICB3aWR0aEF1dG8gPyAnd2lkdGgtYXV0bycgOiAnJyxcclxuICAgIG5vUGFkZGluZyA/ICduby1wYWRkaW5nJyA6ICcnLFxyXG4gICAgd2hpdGVTcGFjZU5vd3JhcCA/ICd3aGl0ZS1zcGFjZS1uby13cmFwJyA6ICcnLFxyXG4gICAgIXdhaXRGb3JDb25maXJtRGVsZXRlICYmIGNvbmZpcm1EZWxldGUgPyAnc3RlcC1kZWxldGUnIDogJycsXHJcbiAgICBjb25maXJtRGVsZXRlID8gJ2RlbGV0ZVBvc2l0aW9uLScgKyBjb25maXJtRGVsZXRlUG9zaXRpb24gOiAnJ1xyXG4gICAgXVwiXHJcbiAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICd0ZXh0LWFsaWduJzogY29udGVudEhvcml6b250YWxQb3NpdGlvblxyXG4gICAgfVwiXHJcbj5cclxuICA8c3BhbiBjbGFzcz1cIndhYy1idXR0b25fX3dyYXBwZXJcIiBbc3R5bGUuY29sb3JdPVwidGV4dGNvbG9yID8gdGV4dGNvbG9yIDogJydcIiBbbmdDbGFzc109XCJ7J2xvYWRpbmctY2xhc3MnOiBpc0xvYWRpbmdTdmd9XCI+XHJcbiAgICA8c3ZnICpuZ0lmPVwiaXNMb2FkaW5nU3ZnOyBlbHNlIGljb25UZW1wbGF0ZVwiIHZlcnNpb249XCIxLjFcIiBpZD1cImxvYWRlci0xXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHg9XCIwcHhcIiB5PVwiMHB4XCJcclxuICAgICB3aWR0aD1cIjIwcHhcIiBoZWlnaHQ9XCIyMHB4XCIgdmlld0JveD1cIjAgMCA1MCA1MFwiIHN0eWxlPVwiZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MCA1MDtcIiB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiPlxyXG4gICAgICA8cGF0aCBmaWxsPVwiI2ZmZlwiIGQ9XCJNNDMuOTM1LDI1LjE0NWMwLTEwLjMxOC04LjM2NC0xOC42ODMtMTguNjgzLTE4LjY4M2MtMTAuMzE4LDAtMTguNjgzLDguMzY1LTE4LjY4MywxOC42ODNoNC4wNjhjMC04LjA3MSw2LjU0My0xNC42MTUsMTQuNjE1LTE0LjYxNWM4LjA3MiwwLDE0LjYxNSw2LjU0MywxNC42MTUsMTQuNjE1SDQzLjkzNXpcIj5cclxuICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVUeXBlPVwieG1sXCJcclxuICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9XCJ0cmFuc2Zvcm1cIlxyXG4gICAgICAgICAgdHlwZT1cInJvdGF0ZVwiXHJcbiAgICAgICAgICBmcm9tPVwiMCAyNSAyNVwiXHJcbiAgICAgICAgICB0bz1cIjM2MCAyNSAyNVwiXHJcbiAgICAgICAgICBkdXI9XCIwLjZzXCJcclxuICAgICAgICAgIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz5cclxuICAgICAgPC9wYXRoPlxyXG4gICAgPC9zdmc+XHJcbiAgICA8bmctdGVtcGxhdGUgI2ljb25UZW1wbGF0ZT5cclxuICAgICAgPGkgKm5nSWY9XCJpY29uXCIgW25nQ2xhc3NdPVwiaWNvblwiIFtzdHlsZS5jb2xvcl09XCJjb2xvckljb25cIiBbc3R5bGUuZm9udC1zaXplLnB4XT1cImljb25Gb250U2l6ZVwiPjwvaT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICB7eyBsYWJlbCB9fVxyXG4gICAgPGkgKm5nSWY9XCJpY29uTmV4dFwiIFtzdHlsZS5jb2xvcl09XCJjb2xvckljb25cIiBbbmdDbGFzc109XCJpY29uTmV4dFwiIFtzdHlsZS5mb250LXNpemUucHhdPVwiaWNvbkZvbnRTaXplXCI+PC9pPlxyXG4gIDwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cIndhYy1idXR0b25fX2FuaW1hdGlvblwiIFtzdHlsZS5tYXhXaWR0aF09XCJidXR0b25NYXhXaWR0aFwiIFtzdHlsZS53aWR0aF09XCJidXR0b25XaWR0aCArICdweCdcIj5cclxuICAgIDxzcGFuICNjYWxjdWxXaWR0aCBjbGFzcz1cIndhYy1idXR0b25fX2FuaW1hdGlvbl9fdGV4dFwiIFtpbm5lckhUTUxdPVwiYW5pbWF0aW9uVGV4dFwiPjwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJ3YWMtYnV0dG9uX19jb25maXJtRGVsZXRlXCIgW3N0eWxlLm1heFdpZHRoXT1cImJ1dHRvbk1heFdpZHRoRGVsZXRlXCIgW3N0eWxlLndpZHRoXT1cImJ1dHRvbldpZHRoRGVsZXRlICsgJ3B4J1wiPlxyXG4gICAgPHNwYW4gI2NhbGN1bFdpZHRoRGVsZXRlIGNsYXNzPVwid2FjLWJ1dHRvbl9fY29uZmlybURlbGV0ZV9fdGV4dFwiIFtpbm5lckhUTUxdPVwiY29uZmlybURlbGV0ZVRleHRcIj48L3NwYW4+XHJcbiAgPC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwiY29pblwiIGNsYXNzPVwid2FjLWJ1dHRvbl9fY29pblwiPjxpIGNsYXNzPVwiZmEtc29saWQgZmEtY29pbi1mcm9udFwiPjwvaT48c3BhbiBbaW5uZXJIVE1MXT1cImNvaW5cIj48L3NwYW4+PC9zcGFuPlxyXG4gIDxzcGFuXHJcbiAgICBjbGFzcz1cIndhYy1idXR0b25fX2xvYWRlclwiXHJcbiAgICBbbmdDbGFzc109XCJleHRyYUNsYXNzZXMuaW5jbHVkZXMoJ2lzLW91dGxpbmVkJykgPyAnb3V0bGluZWQnIDogJydcIlxyXG4gICAgKm5nSWY9XCJpc0xvYWRpbmdcIlxyXG4gICAgW3N0eWxlLndpZHRoXT1cImN1cnJlbnRMb2FkaW5nICsgJyUnXCJcclxuICA+XHJcbiAgPC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwid2FjLWJ1dHRvbl9fdG9vbHRpcHMge3sgdG9vbHRpcFBvc2l0aW9uIH19XCIgW25nQ2xhc3NdPVwieydvbmVsaW5lJzogdG9vbHRpcE9uZWxpbmV9XCIgW3N0eWxlLm1pbldpZHRoXT1cInRvb2x0aXBXaWR0aFwiICpuZ0lmPVwidG9vbHRpcFwiPlxyXG4gICAge3sgdG9vbHRpcCB9fVxyXG4gIDwvc3Bhbj5cclxuPC9hPlxyXG4iXX0=
|
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
import { DatePipe } from '@angular/common';
|
|
2
|
-
import { Component, Input, EventEmitter, Output, ChangeDetectionStrategy, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { opacityAnimation } from '../../animations/show/opacity.animation';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "@angular/forms";
|
|
8
|
-
import * as i3 from "@wizishop/ng-wizi-bulma";
|
|
9
|
-
import * as i4 from "../../directives/auto-hide/auto-hide.directive";
|
|
10
|
-
import * as i5 from "../../directives/zindex-toggle/zindex-toggle.directive";
|
|
11
|
-
import * as i6 from "../../directives/keyboard-events/only-numbers.directive";
|
|
12
|
-
import * as i7 from "../optional-disable-container/optional-disable-container.component";
|
|
13
|
-
import * as i8 from "@ngx-translate/core";
|
|
14
|
-
export class CalendarComponent {
|
|
15
|
-
set options(options) {
|
|
16
|
-
this._options = options;
|
|
17
|
-
if (this.isBulmaDatePickerExists()) {
|
|
18
|
-
this.updateBulmaDatePickerOptions(options);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
get options() {
|
|
22
|
-
return this._options;
|
|
23
|
-
}
|
|
24
|
-
set dateSelected(dateSelected) {
|
|
25
|
-
if (this.disabled) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
this._dateSelected = new Date(dateSelected); // trigger change detection for pure pipe
|
|
29
|
-
}
|
|
30
|
-
get dateSelected() {
|
|
31
|
-
return this._dateSelected;
|
|
32
|
-
}
|
|
33
|
-
set calendarMinutes(calendarMinutes) {
|
|
34
|
-
if (!this.dateSelected) {
|
|
35
|
-
this.dateSelected = new Date();
|
|
36
|
-
}
|
|
37
|
-
const minutes = this.formatTime(calendarMinutes, 0, 59);
|
|
38
|
-
this.dateSelected.setMinutes(minutes);
|
|
39
|
-
this.dateSelected = this.dateSelected; // trigger change detection
|
|
40
|
-
this.minutes.nativeElement.value = this.datePipe.transform(this.dateSelected, 'mm'); // force to update the input value
|
|
41
|
-
this.triggerDateSelectedChange();
|
|
42
|
-
}
|
|
43
|
-
get calendarMinutes() {
|
|
44
|
-
return this.datePipe.transform(this.dateSelected ?? new Date(), 'mm');
|
|
45
|
-
}
|
|
46
|
-
set calendarHours(calendarHours) {
|
|
47
|
-
if (!this.dateSelected) {
|
|
48
|
-
this.dateSelected = new Date();
|
|
49
|
-
}
|
|
50
|
-
const hours = this.formatTime(calendarHours, 0, 23);
|
|
51
|
-
this.dateSelected.setHours(hours);
|
|
52
|
-
this.dateSelected = this.dateSelected; // trigger change detection
|
|
53
|
-
this.hours.nativeElement.value = this.datePipe.transform(this.dateSelected, 'HH'); // force to update the input value
|
|
54
|
-
this.triggerDateSelectedChange();
|
|
55
|
-
}
|
|
56
|
-
get calendarHours() {
|
|
57
|
-
return this.datePipe.transform(this.dateSelected ?? new Date(), 'HH');
|
|
58
|
-
}
|
|
59
|
-
constructor(datePipe) {
|
|
60
|
-
this.datePipe = datePipe;
|
|
61
|
-
this.boldLabel = false; // todo remove when label will be a ng-content
|
|
62
|
-
this.type = 'input';
|
|
63
|
-
this._options = {
|
|
64
|
-
displayMode: 'inline',
|
|
65
|
-
showHeader: false,
|
|
66
|
-
showFooter: true,
|
|
67
|
-
};
|
|
68
|
-
this.position = 'bottom';
|
|
69
|
-
this.dateSelectedChange = new EventEmitter();
|
|
70
|
-
this.typeDate = 'datetime-local';
|
|
71
|
-
this.noMargin = false;
|
|
72
|
-
this.disabled = false;
|
|
73
|
-
this.changeData = new EventEmitter();
|
|
74
|
-
this.open = false;
|
|
75
|
-
this.startLabel = '';
|
|
76
|
-
this.endLabel = '';
|
|
77
|
-
// ControlValueAccessor methods
|
|
78
|
-
this.onChange = () => { };
|
|
79
|
-
this.onTouch = () => { };
|
|
80
|
-
}
|
|
81
|
-
ngOnChanges(changes) {
|
|
82
|
-
if (changes.label || changes.type) {
|
|
83
|
-
this.setCalendarLabel();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
onChangeDate(selectedDates) {
|
|
87
|
-
if (this.disabled) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
if (!this.dateSelected) {
|
|
91
|
-
this.dateSelected = new Date();
|
|
92
|
-
}
|
|
93
|
-
selectedDates.startDate.setHours(this.dateSelected.getHours());
|
|
94
|
-
selectedDates.startDate.setMinutes(this.dateSelected.getMinutes());
|
|
95
|
-
this.dateSelected = selectedDates.startDate;
|
|
96
|
-
this.triggerDateSelectedChange();
|
|
97
|
-
}
|
|
98
|
-
triggerDateSelectedChange() {
|
|
99
|
-
this.onChange(this.dateSelected);
|
|
100
|
-
this.dateSelectedChange.emit(this.dateSelected);
|
|
101
|
-
this.triggerChange({
|
|
102
|
-
startDate: this.dateSelected,
|
|
103
|
-
endDate: this.dateSelected
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
triggerChange(event) {
|
|
107
|
-
this.changeData.emit(event);
|
|
108
|
-
}
|
|
109
|
-
openCalendar(value = null) {
|
|
110
|
-
if (this.disabled) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
if (value === 'close') {
|
|
114
|
-
if (this.open) {
|
|
115
|
-
this.open = false;
|
|
116
|
-
this.onTouch();
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
this.open = !this.open;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
setCalendarLabel() {
|
|
124
|
-
if (this.type === 'edit' && this.label) {
|
|
125
|
-
const splitLabel = this.label.split('{x}');
|
|
126
|
-
if (splitLabel.length > 1) {
|
|
127
|
-
this.startLabel = splitLabel[0];
|
|
128
|
-
this.endLabel = splitLabel[1];
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
this.startLabel = this.label;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
incrementMinutes($event) {
|
|
136
|
-
this.calendarMinutes = parseInt(this.calendarMinutes, 10) + 1 + '';
|
|
137
|
-
$event.preventDefault();
|
|
138
|
-
}
|
|
139
|
-
decrementsMinutes($event) {
|
|
140
|
-
this.calendarMinutes = parseInt(this.calendarMinutes, 10) - 1 + '';
|
|
141
|
-
$event.preventDefault();
|
|
142
|
-
}
|
|
143
|
-
incrementHours($event) {
|
|
144
|
-
this.calendarHours = parseInt(this.calendarHours, 10) + 1 + '';
|
|
145
|
-
$event.preventDefault();
|
|
146
|
-
}
|
|
147
|
-
decrementHours($event) {
|
|
148
|
-
this.calendarHours = parseInt(this.calendarHours, 10) - 1 + '';
|
|
149
|
-
$event.preventDefault();
|
|
150
|
-
}
|
|
151
|
-
/*
|
|
152
|
-
Ensure that the input value is a number and that it is between min and max
|
|
153
|
-
*/
|
|
154
|
-
formatTime(time, min = 0, max = 59) {
|
|
155
|
-
let timeNumber = typeof time === 'string' ? parseInt(time, 10) : time;
|
|
156
|
-
timeNumber = timeNumber > max ? min : timeNumber;
|
|
157
|
-
timeNumber = timeNumber < min ? max : timeNumber;
|
|
158
|
-
timeNumber = parseInt(('' + timeNumber).slice(-2)); // keeps only the last 2 digits
|
|
159
|
-
return timeNumber;
|
|
160
|
-
}
|
|
161
|
-
updateBulmaDatePickerOptions(options) {
|
|
162
|
-
const bulmaCalendarDatePicker = this.datePicker['bulmaCalendar'].datePicker;
|
|
163
|
-
bulmaCalendarDatePicker.min = options.minDate;
|
|
164
|
-
bulmaCalendarDatePicker.max = options.maxDate;
|
|
165
|
-
bulmaCalendarDatePicker.refresh();
|
|
166
|
-
}
|
|
167
|
-
isBulmaDatePickerExists() {
|
|
168
|
-
return this.datePicker && this.datePicker['bulmaCalendar'] && this.datePicker['bulmaCalendar'].datePicker;
|
|
169
|
-
}
|
|
170
|
-
writeValue(date) {
|
|
171
|
-
if (!date) {
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
this.dateSelected = date;
|
|
175
|
-
}
|
|
176
|
-
registerOnChange(fn) {
|
|
177
|
-
this.onChange = fn;
|
|
178
|
-
}
|
|
179
|
-
registerOnTouched(fn) {
|
|
180
|
-
this.onTouch = fn;
|
|
181
|
-
}
|
|
182
|
-
setDisabledState(isDisabled) {
|
|
183
|
-
this.disabled = isDisabled;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
187
|
-
CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: CalendarComponent, selector: "wac-calendar", inputs: { label: "label", boldLabel: "boldLabel", type: "type", options: "options", position: "position", dateSelected: "dateSelected", typeDate: "typeDate", noMargin: "noMargin", disabled: "disabled" }, outputs: { dateSelectedChange: "dateSelectedChange", changeData: "changeData" }, providers: [
|
|
188
|
-
{
|
|
189
|
-
provide: NG_VALUE_ACCESSOR,
|
|
190
|
-
useExisting: CalendarComponent,
|
|
191
|
-
multi: true
|
|
192
|
-
},
|
|
193
|
-
DatePipe
|
|
194
|
-
], viewQueries: [{ propertyName: "minutes", first: true, predicate: ["minutes"], descendants: true }, { propertyName: "hours", first: true, predicate: ["hours"], descendants: true }, { propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"wac-calendar\"\r\n [ngClass]=\"{\r\n 'wac-calendar--input': type === 'input',\r\n 'wac-calendar--onlyDate': typeDate === 'date',\r\n 'wac-calendar--edit': type === 'edit',\r\n 'wac-calendar--select': type === 'select',\r\n 'wac-calendar--no-margin': noMargin,\r\n 'wac-calendar--open': open\r\n }\"\r\n [zIndexToggle]=\"open\"\r\n>\r\n <p [class]=\"'wac-calendar__label' + (boldLabel ? ' bold' : '')\" *ngIf=\"label && (type === 'input' || type === 'select')\" (click)=\"openCalendar()\">{{ label }}</p>\r\n <p class=\"wac-calendar__startLabel\" *ngIf=\"type === 'edit'\">{{ startLabel }}</p>\r\n <wac-optional-disable-container [disabled]=\"disabled\">\r\n <div class=\"wac-calendar__autoHide\" wzAutoHide (clickOutside)=\"openCalendar('close')\">\r\n <div class=\"wac-calendar__wrapper\">\r\n <div class=\"wac-calendar__wrapper__input\" *ngIf=\"type === 'input'\" (click)=\"openCalendar()\">\r\n <div class=\"wac-calendar__wrapper__input__icon\">\r\n <i class=\"far fa-calendar-alt\"></i>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__input__date\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy'}}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/mm/yyyy' | translate }}</span>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__input__time\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'HH:mm' }}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.HH:mm' | translate }}</span>\r\n </div>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__editInPlace\" *ngIf=\"type === 'edit'\" (click)=\"openCalendar()\">\r\n <div class=\"wac-calendar__wrapper__editInPlace__icon\">\r\n <i class=\"fal fa-calendar-alt\"></i>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__editInPlace__date\">\r\n <div class=\"wac-calendar__wrapper__input__time\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__select\" *ngIf=\"type === 'select'\" (click)=\"openCalendar()\">\r\n <div class=\"wac-calendar__wrapper__select__icon\">\r\n <i class=\"fal fa-calendar-alt\"></i>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__select__date\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"wac-calendar__absolute\"\r\n [ngClass]=\"{\r\n top: position === 'top',\r\n bottom: position === 'bottom',\r\n left: position === 'left',\r\n right: position === 'right',\r\n 'right-top': position === 'right-top',\r\n 'right-bottom': position === 'right-bottom',\r\n 'left-top': position === 'left-top',\r\n 'left-bottom': position === 'left-bottom',\r\n 'with-time': typeDate === 'datetime-local' || typeDate === 'datetime'\r\n }\"\r\n >\r\n <nwb-date-picker #datePicker (change)=\"onChangeDate($event)\" [options]=\"options\">\r\n <input [nwbDatepickerStart]=\"datePicker\" type=\"text\" [nwbDateType]=\"'date'\" [value]=\"dateSelected?.toISOString()\" />\r\n </nwb-date-picker>\r\n <div class=\"wac-calendar__absolute__time\" *ngIf=\"typeDate === 'datetime-local' || typeDate === 'datetime'\">\r\n <div class=\"wac-calendar__absolute__time__wrapper\">\r\n <div class=\"wac-calendar__absolute__time__wrapper__hours\">\r\n <div class=\"wac-calendar__absolute__time__wrapper__hours__left\">\r\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"incrementHours($event)\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"decrementHours($event)\">\r\n <i class=\"fas fa-minus\"></i>\r\n </button>\r\n </div>\r\n <div class=\"wac-calendar__absolute__time__wrapper__hours__right\">\r\n <input #hours type=\"text\" [(ngModel)]=\"calendarHours\" [wacOnlyNumber]=\"true\"/>\r\n </div>\r\n </div>\r\n <div class=\"wac-calendar__absolute__time__wrapper__minutes\">\r\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__left\">\r\n <input #minutes type=\"text\" [(ngModel)]=\"calendarMinutes\" [wacOnlyNumber]=\"true\"/>\r\n </div>\r\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__right\">\r\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"incrementMinutes($event)\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"decrementsMinutes($event)\">\r\n <i class=\"fas fa-minus\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </wac-optional-disable-container>\r\n <p class=\"wac-calendar__endLabel\" *ngIf=\"type === 'edit'\">{{ endLabel }}</p>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.NwbDatePickerComponent, selector: "nwb-date-picker", inputs: ["options"], outputs: ["change", "clear"] }, { kind: "directive", type: i3.NwbDatePickerInputStartDirective, selector: "input[nwbDatepickerStart]", inputs: ["nwbDatepickerStart"] }, { kind: "directive", type: i3.NwbDatePickerInputDateTypeDirective, selector: "input[nwbDateType]", inputs: ["nwbDateType"] }, { kind: "directive", type: i4.AutoHideDirective, selector: "[wzAutoHide]", inputs: ["triggerElement", "forceOn"], outputs: ["clickOutside"] }, { kind: "directive", type: i5.ZindexToggleDirective, selector: "[zIndexToggle]", inputs: ["zIndexToggle"], outputs: ["onEventChange"] }, { kind: "directive", type: i6.OnlyNumberDirective, selector: "[wacOnlyNumber]", inputs: ["wacOnlyNumber"] }, { kind: "component", type: i7.OptionalDisableContainerComponent, selector: "wac-optional-disable-container", inputs: ["disabled"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], animations: [opacityAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
195
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: CalendarComponent, decorators: [{
|
|
196
|
-
type: Component,
|
|
197
|
-
args: [{ selector: 'wac-calendar', providers: [
|
|
198
|
-
{
|
|
199
|
-
provide: NG_VALUE_ACCESSOR,
|
|
200
|
-
useExisting: CalendarComponent,
|
|
201
|
-
multi: true
|
|
202
|
-
},
|
|
203
|
-
DatePipe
|
|
204
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [opacityAnimation], template: "<div\r\n class=\"wac-calendar\"\r\n [ngClass]=\"{\r\n 'wac-calendar--input': type === 'input',\r\n 'wac-calendar--onlyDate': typeDate === 'date',\r\n 'wac-calendar--edit': type === 'edit',\r\n 'wac-calendar--select': type === 'select',\r\n 'wac-calendar--no-margin': noMargin,\r\n 'wac-calendar--open': open\r\n }\"\r\n [zIndexToggle]=\"open\"\r\n>\r\n <p [class]=\"'wac-calendar__label' + (boldLabel ? ' bold' : '')\" *ngIf=\"label && (type === 'input' || type === 'select')\" (click)=\"openCalendar()\">{{ label }}</p>\r\n <p class=\"wac-calendar__startLabel\" *ngIf=\"type === 'edit'\">{{ startLabel }}</p>\r\n <wac-optional-disable-container [disabled]=\"disabled\">\r\n <div class=\"wac-calendar__autoHide\" wzAutoHide (clickOutside)=\"openCalendar('close')\">\r\n <div class=\"wac-calendar__wrapper\">\r\n <div class=\"wac-calendar__wrapper__input\" *ngIf=\"type === 'input'\" (click)=\"openCalendar()\">\r\n <div class=\"wac-calendar__wrapper__input__icon\">\r\n <i class=\"far fa-calendar-alt\"></i>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__input__date\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy'}}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/mm/yyyy' | translate }}</span>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__input__time\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'HH:mm' }}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.HH:mm' | translate }}</span>\r\n </div>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__editInPlace\" *ngIf=\"type === 'edit'\" (click)=\"openCalendar()\">\r\n <div class=\"wac-calendar__wrapper__editInPlace__icon\">\r\n <i class=\"fal fa-calendar-alt\"></i>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__editInPlace__date\">\r\n <div class=\"wac-calendar__wrapper__input__time\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__select\" *ngIf=\"type === 'select'\" (click)=\"openCalendar()\">\r\n <div class=\"wac-calendar__wrapper__select__icon\">\r\n <i class=\"fal fa-calendar-alt\"></i>\r\n </div>\r\n <div class=\"wac-calendar__wrapper__select__date\">\r\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\r\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"wac-calendar__absolute\"\r\n [ngClass]=\"{\r\n top: position === 'top',\r\n bottom: position === 'bottom',\r\n left: position === 'left',\r\n right: position === 'right',\r\n 'right-top': position === 'right-top',\r\n 'right-bottom': position === 'right-bottom',\r\n 'left-top': position === 'left-top',\r\n 'left-bottom': position === 'left-bottom',\r\n 'with-time': typeDate === 'datetime-local' || typeDate === 'datetime'\r\n }\"\r\n >\r\n <nwb-date-picker #datePicker (change)=\"onChangeDate($event)\" [options]=\"options\">\r\n <input [nwbDatepickerStart]=\"datePicker\" type=\"text\" [nwbDateType]=\"'date'\" [value]=\"dateSelected?.toISOString()\" />\r\n </nwb-date-picker>\r\n <div class=\"wac-calendar__absolute__time\" *ngIf=\"typeDate === 'datetime-local' || typeDate === 'datetime'\">\r\n <div class=\"wac-calendar__absolute__time__wrapper\">\r\n <div class=\"wac-calendar__absolute__time__wrapper__hours\">\r\n <div class=\"wac-calendar__absolute__time__wrapper__hours__left\">\r\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"incrementHours($event)\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"decrementHours($event)\">\r\n <i class=\"fas fa-minus\"></i>\r\n </button>\r\n </div>\r\n <div class=\"wac-calendar__absolute__time__wrapper__hours__right\">\r\n <input #hours type=\"text\" [(ngModel)]=\"calendarHours\" [wacOnlyNumber]=\"true\"/>\r\n </div>\r\n </div>\r\n <div class=\"wac-calendar__absolute__time__wrapper__minutes\">\r\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__left\">\r\n <input #minutes type=\"text\" [(ngModel)]=\"calendarMinutes\" [wacOnlyNumber]=\"true\"/>\r\n </div>\r\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__right\">\r\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"incrementMinutes($event)\">\r\n <i class=\"fas fa-plus\"></i>\r\n </button>\r\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"decrementsMinutes($event)\">\r\n <i class=\"fas fa-minus\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </wac-optional-disable-container>\r\n <p class=\"wac-calendar__endLabel\" *ngIf=\"type === 'edit'\">{{ endLabel }}</p>\r\n</div>\r\n" }]
|
|
205
|
-
}], ctorParameters: function () { return [{ type: i1.DatePipe }]; }, propDecorators: { minutes: [{
|
|
206
|
-
type: ViewChild,
|
|
207
|
-
args: ['minutes']
|
|
208
|
-
}], hours: [{
|
|
209
|
-
type: ViewChild,
|
|
210
|
-
args: ['hours']
|
|
211
|
-
}], datePicker: [{
|
|
212
|
-
type: ViewChild,
|
|
213
|
-
args: ['datePicker']
|
|
214
|
-
}], label: [{
|
|
215
|
-
type: Input
|
|
216
|
-
}], boldLabel: [{
|
|
217
|
-
type: Input
|
|
218
|
-
}], type: [{
|
|
219
|
-
type: Input
|
|
220
|
-
}], options: [{
|
|
221
|
-
type: Input
|
|
222
|
-
}], position: [{
|
|
223
|
-
type: Input
|
|
224
|
-
}], dateSelected: [{
|
|
225
|
-
type: Input
|
|
226
|
-
}], dateSelectedChange: [{
|
|
227
|
-
type: Output
|
|
228
|
-
}], typeDate: [{
|
|
229
|
-
type: Input
|
|
230
|
-
}], noMargin: [{
|
|
231
|
-
type: Input
|
|
232
|
-
}], disabled: [{
|
|
233
|
-
type: Input
|
|
234
|
-
}], changeData: [{
|
|
235
|
-
type: Output
|
|
236
|
-
}] } });
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUE0Qix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEssT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7O0FBaUIzRSxNQUFNLE9BQU8saUJBQWlCO0lBZTVCLElBQ0ksT0FBTyxDQUFDLE9BQXVDO1FBQ2pELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBV0QsSUFDSSxZQUFZLENBQUMsWUFBa0I7UUFDakMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxJQUFJLENBQUMs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QUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsQ0FBQyxnQkFBZ0IsQ0FBQzsrRkFJUixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0EsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNPLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFHdkIsS0FBSztzQkFESixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLO2dCQW1CTixRQUFRO3NCQURQLEtBQUs7Z0JBSUYsWUFBWTtzQkFEZixLQUFLO2dCQVlJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFHUCxRQUFRO3NCQURQLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOd2JEYXRlUGlja2VyQ29tcG9uZW50LCBOd2JEYXRlUGlja2VyRXZlbnQsIE53YkRhdGVQaWNrZXJPcHRpb25zIH0gZnJvbSAnQHdpemlzaG9wL25nLXdpemktYnVsbWEnO1xyXG5pbXBvcnQgeyBvcGFjaXR5QW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9ucy9zaG93L29wYWNpdHkuYW5pbWF0aW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd2FjLWNhbGVuZGFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IENhbGVuZGFyQ29tcG9uZW50LFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIERhdGVQaXBlXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGFuaW1hdGlvbnM6IFtvcGFjaXR5QW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICAvLyEgQXQgdGhlIG1vbWVudCwgdGhlIGNvbXBvbmVudCBoYW5kbGUgb25seSBvbmUgZGF0ZSAobm90IGEgcmFuZ2UpXHJcbiAgQFZpZXdDaGlsZCgnbWludXRlcycpIG1pbnV0ZXM6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaG91cnMnKSBob3VyczogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJykgZGF0ZVBpY2tlcjogTndiRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBsYWJlbDogc3RyaW5nIHwgbnVsbDsgLy8gdG9kbyB1c2UgbmctY29udGVudCBpbnN0ZWFkXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYm9sZExhYmVsOiBib29sZWFuID0gZmFsc2U7IC8vIHRvZG8gcmVtb3ZlIHdoZW4gbGFiZWwgd2lsbCBiZSBhIG5nLWNvbnRlbnRcclxuXHJcbiAgQElucHV0KClcclxuICB0eXBlOiAnaW5wdXQnIHwgJ2VkaXQnIHwgJ3NlbGVjdCcgPSAnaW5wdXQnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBvcHRpb25zKG9wdGlvbnM6IFJlYWRvbmx5PE53YkRhdGVQaWNrZXJPcHRpb25zPikge1xyXG4gICAgdGhpcy5fb3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICBpZiAodGhpcy5pc0J1bG1hRGF0ZVBpY2tlckV4aXN0cygpKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlQnVsbWFEYXRlUGlja2VyT3B0aW9ucyhvcHRpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBvcHRpb25zKCkgOiBSZWFkb25seTxOd2JEYXRlUGlja2VyT3B0aW9ucz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBfb3B0aW9uczogUmVhZG9ubHk8TndiRGF0ZVBpY2tlck9wdGlvbnM+ICA9IHtcclxuICAgIGRpc3BsYXlNb2RlOiAnaW5saW5lJyxcclxuICAgIHNob3dIZWFkZXI6IGZhbHNlLFxyXG4gICAgc2hvd0Zvb3RlcjogdHJ1ZSxcclxuICB9O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBvc2l0aW9uID0gJ2JvdHRvbSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRhdGVTZWxlY3RlZChkYXRlU2VsZWN0ZWQ6IERhdGUpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX2RhdGVTZWxlY3RlZCA9IG5ldyBEYXRlKGRhdGVTZWxlY3RlZCk7IC8vIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiBmb3IgcHVyZSBwaXBlXHJcbiAgfVxyXG4gIGdldCBkYXRlU2VsZWN0ZWQoKSA6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGVTZWxlY3RlZDtcclxuICB9XHJcbiAgX2RhdGVTZWxlY3RlZDogRGF0ZTtcclxuXHJcbiAgQE91dHB1dCgpIGRhdGVTZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICB0eXBlRGF0ZTogJ2RhdGV0aW1lJyB8ICdkYXRldGltZS1sb2NhbCcgfCAnZGF0ZScgPSAnZGF0ZXRpbWUtbG9jYWwnO1xyXG4gIEBJbnB1dCgpXHJcbiAgbm9NYXJnaW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIGNoYW5nZURhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPHsgc3RhcnREYXRlOiBEYXRlOyBlbmREYXRlOiBEYXRlOyB9PigpO1xyXG4gIG9wZW4gPSBmYWxzZTtcclxuICBzdGFydExhYmVsID0gJyc7XHJcbiAgZW5kTGFiZWwgPSAnJztcclxuXHJcbiAgc2V0IGNhbGVuZGFyTWludXRlcyhjYWxlbmRhck1pbnV0ZXM6IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmRhdGVTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLmRhdGVTZWxlY3RlZCA9IG5ldyBEYXRlKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBtaW51dGVzID0gdGhpcy5mb3JtYXRUaW1lKGNhbGVuZGFyTWludXRlcywgMCwgNTkpO1xyXG4gICAgdGhpcy5kYXRlU2VsZWN0ZWQuc2V0TWludXRlcyhtaW51dGVzKTtcclxuXHJcbiAgICB0aGlzLmRhdGVTZWxlY3RlZCA9IHRoaXMuZGF0ZVNlbGVjdGVkOyAvLyB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cclxuICAgIHRoaXMubWludXRlcy5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kYXRlU2VsZWN0ZWQsICdtbScpOyAvLyBmb3JjZSB0byB1cGRhdGUgdGhlIGlucHV0IHZhbHVlXHJcbiAgICB0aGlzLnRyaWdnZXJEYXRlU2VsZWN0ZWRDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldCBjYWxlbmRhck1pbnV0ZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmRhdGVTZWxlY3RlZCA/PyBuZXcgRGF0ZSgpLCAnbW0nKTtcclxuICB9XHJcblxyXG4gIHNldCBjYWxlbmRhckhvdXJzKGNhbGVuZGFySG91cnM6IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmRhdGVTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLmRhdGVTZWxlY3RlZCA9IG5ldyBEYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaG91cnMgPSB0aGlzLmZvcm1hdFRpbWUoY2FsZW5kYXJIb3VycywgMCwgMjMpO1xyXG5cclxuICAgIHRoaXMuZGF0ZVNlbGVjdGVkLnNldEhvdXJzKGhvdXJzKTtcclxuICAgIHRoaXMuZGF0ZVNlbGVjdGVkID0gdGhpcy5kYXRlU2VsZWN0ZWQ7IC8vIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxyXG4gICAgdGhpcy5ob3Vycy5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kYXRlU2VsZWN0ZWQsICdISCcpOyAvLyBmb3JjZSB0byB1cGRhdGUgdGhlIGlucHV0IHZhbHVlXHJcbiAgICB0aGlzLnRyaWdnZXJEYXRlU2VsZWN0ZWRDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldCBjYWxlbmRhckhvdXJzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kYXRlU2VsZWN0ZWQgPz8gbmV3IERhdGUoKSwgJ0hIJyk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSkge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMubGFiZWwgfHwgY2hhbmdlcy50eXBlKSB7XHJcbiAgICAgIHRoaXMuc2V0Q2FsZW5kYXJMYWJlbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VEYXRlKHNlbGVjdGVkRGF0ZXM6IE53YkRhdGVQaWNrZXJFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5kYXRlU2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5kYXRlU2VsZWN0ZWQgPSBuZXcgRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdGVkRGF0ZXMuc3RhcnREYXRlLnNldEhvdXJzKHRoaXMuZGF0ZVNlbGVjdGVkLmdldEhvdXJzKCkpO1xyXG4gICAgc2VsZWN0ZWREYXRlcy5zdGFydERhdGUuc2V0TWludXRlcyh0aGlzLmRhdGVTZWxlY3RlZC5nZXRNaW51dGVzKCkpO1xyXG5cclxuICAgIHRoaXMuZGF0ZVNlbGVjdGVkID0gc2VsZWN0ZWREYXRlcy5zdGFydERhdGU7XHJcbiAgICB0aGlzLnRyaWdnZXJEYXRlU2VsZWN0ZWRDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJpZ2dlckRhdGVTZWxlY3RlZENoYW5nZSgpIHtcclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5kYXRlU2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5kYXRlU2VsZWN0ZWRDaGFuZ2UuZW1pdCh0aGlzLmRhdGVTZWxlY3RlZCk7XHJcbiAgICB0aGlzLnRyaWdnZXJDaGFuZ2Uoe1xyXG4gICAgICBzdGFydERhdGU6IHRoaXMuZGF0ZVNlbGVjdGVkLFxyXG4gICAgICBlbmREYXRlOiB0aGlzLmRhdGVTZWxlY3RlZFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0cmlnZ2VyQ2hhbmdlKGV2ZW50OiB7IHN0YXJ0RGF0ZTogRGF0ZTsgZW5kRGF0ZTogRGF0ZTsgfSkge1xyXG4gICAgdGhpcy5jaGFuZ2VEYXRhLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNhbGVuZGFyKHZhbHVlID0gbnVsbCkge1xyXG5cclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodmFsdWUgPT09ICdjbG9zZScpIHtcclxuICAgICAgaWYgKHRoaXMub3Blbikge1xyXG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDYWxlbmRhckxhYmVsKCkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2VkaXQnICYmIHRoaXMubGFiZWwpIHtcclxuICAgICAgY29uc3Qgc3BsaXRMYWJlbCA9IHRoaXMubGFiZWwuc3BsaXQoJ3t4fScpO1xyXG4gICAgICBpZiAoc3BsaXRMYWJlbC5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgdGhpcy5zdGFydExhYmVsID0gc3BsaXRMYWJlbFswXTtcclxuICAgICAgICB0aGlzLmVuZExhYmVsID0gc3BsaXRMYWJlbFsxXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnN0YXJ0TGFiZWwgPSB0aGlzLmxhYmVsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbmNyZW1lbnRNaW51dGVzKCRldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMuY2FsZW5kYXJNaW51dGVzID0gcGFyc2VJbnQodGhpcy5jYWxlbmRhck1pbnV0ZXMsIDEwKSArIDEgKyAnJztcclxuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbiAgZGVjcmVtZW50c01pbnV0ZXMoJGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5jYWxlbmRhck1pbnV0ZXMgPSBwYXJzZUludCh0aGlzLmNhbGVuZGFyTWludXRlcywgMTApIC0gMSArICcnO1xyXG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBpbmNyZW1lbnRIb3VycygkZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLmNhbGVuZGFySG91cnMgPSBwYXJzZUludCh0aGlzLmNhbGVuZGFySG91cnMsIDEwKSArIDEgKyAnJztcclxuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbiAgZGVjcmVtZW50SG91cnMoJGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5jYWxlbmRhckhvdXJzID0gcGFyc2VJbnQodGhpcy5jYWxlbmRhckhvdXJzLCAxMCkgLSAxICsgJyc7XHJcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICBFbnN1cmUgdGhhdCB0aGUgaW5wdXQgdmFsdWUgaXMgYSBudW1iZXIgYW5kIHRoYXQgaXQgaXMgYmV0d2VlbiBtaW4gYW5kIG1heFxyXG4gICovXHJcbiAgcHJpdmF0ZSBmb3JtYXRUaW1lKHRpbWU6IHN0cmluZyB8IG51bWJlciwgbWluID0gMCwgbWF4ID0gNTkpIHtcclxuICAgIGxldCB0aW1lTnVtYmVyID0gdHlwZW9mIHRpbWUgPT09ICdzdHJpbmcnID8gcGFyc2VJbnQodGltZSwgMTApIDogdGltZTtcclxuICAgIHRpbWVOdW1iZXIgPSB0aW1lTnVtYmVyID4gbWF4ID8gbWluIDogdGltZU51bWJlcjtcclxuICAgIHRpbWVOdW1iZXIgPSB0aW1lTnVtYmVyIDwgbWluID8gbWF4IDogdGltZU51bWJlcjtcclxuICAgIHRpbWVOdW1iZXIgPSBwYXJzZUludCgoJycgKyB0aW1lTnVtYmVyKS5zbGljZSgtMikpOyAvLyBrZWVwcyBvbmx5IHRoZSBsYXN0IDIgZGlnaXRzXHJcbiAgICByZXR1cm4gdGltZU51bWJlcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQnVsbWFEYXRlUGlja2VyT3B0aW9ucyhvcHRpb25zOiBSZWFkb25seTxOd2JEYXRlUGlja2VyT3B0aW9ucz4pIHtcclxuICAgIGNvbnN0IGJ1bG1hQ2FsZW5kYXJEYXRlUGlja2VyID0gdGhpcy5kYXRlUGlja2VyWydidWxtYUNhbGVuZGFyJ10uZGF0ZVBpY2tlcjtcclxuICAgIGJ1bG1hQ2FsZW5kYXJEYXRlUGlja2VyLm1pbiA9IG9wdGlvbnMubWluRGF0ZTtcclxuICAgIGJ1bG1hQ2FsZW5kYXJEYXRlUGlja2VyLm1heCA9IG9wdGlvbnMubWF4RGF0ZTtcclxuICAgIGJ1bG1hQ2FsZW5kYXJEYXRlUGlja2VyLnJlZnJlc2goKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNCdWxtYURhdGVQaWNrZXJFeGlzdHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlUGlja2VyICYmIHRoaXMuZGF0ZVBpY2tlclsnYnVsbWFDYWxlbmRhciddICYmIHRoaXMuZGF0ZVBpY2tlclsnYnVsbWFDYWxlbmRhciddLmRhdGVQaWNrZXI7XHJcbiAgfVxyXG5cclxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBtZXRob2RzXHJcblxyXG4gIG9uQ2hhbmdlOiAodmFsdWU6IERhdGUpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgb25Ub3VjaDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICB3cml0ZVZhbHVlKGRhdGU6IERhdGUpOiB2b2lkIHtcclxuICAgIGlmICghZGF0ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVTZWxlY3RlZCA9IGRhdGU7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSl7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpe1xyXG4gICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwid2FjLWNhbGVuZGFyXCJcclxuICBbbmdDbGFzc109XCJ7XHJcbiAgICAnd2FjLWNhbGVuZGFyLS1pbnB1dCc6IHR5cGUgPT09ICdpbnB1dCcsXHJcbiAgICAnd2FjLWNhbGVuZGFyLS1vbmx5RGF0ZSc6IHR5cGVEYXRlID09PSAnZGF0ZScsXHJcbiAgICAnd2FjLWNhbGVuZGFyLS1lZGl0JzogdHlwZSA9PT0gJ2VkaXQnLFxyXG4gICAgJ3dhYy1jYWxlbmRhci0tc2VsZWN0JzogdHlwZSA9PT0gJ3NlbGVjdCcsXHJcbiAgICAnd2FjLWNhbGVuZGFyLS1uby1tYXJnaW4nOiBub01hcmdpbixcclxuICAgICd3YWMtY2FsZW5kYXItLW9wZW4nOiBvcGVuXHJcbiAgfVwiXHJcbiAgW3pJbmRleFRvZ2dsZV09XCJvcGVuXCJcclxuPlxyXG4gIDxwIFtjbGFzc109XCInd2FjLWNhbGVuZGFyX19sYWJlbCcgKyAoYm9sZExhYmVsID8gJyBib2xkJyA6ICcnKVwiICpuZ0lmPVwibGFiZWwgJiYgKHR5cGUgPT09ICdpbnB1dCcgfHwgdHlwZSA9PT0gJ3NlbGVjdCcpXCIgKGNsaWNrKT1cIm9wZW5DYWxlbmRhcigpXCI+e3sgbGFiZWwgfX08L3A+XHJcbiAgPHAgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3N0YXJ0TGFiZWxcIiAqbmdJZj1cInR5cGUgPT09ICdlZGl0J1wiPnt7IHN0YXJ0TGFiZWwgfX08L3A+XHJcbiAgPHdhYy1vcHRpb25hbC1kaXNhYmxlLWNvbnRhaW5lciBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2F1dG9IaWRlXCIgd3pBdXRvSGlkZSAoY2xpY2tPdXRzaWRlKT1cIm9wZW5DYWxlbmRhcignY2xvc2UnKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fd3JhcHBlcl9faW5wdXRcIiAqbmdJZj1cInR5cGUgPT09ICdpbnB1dCdcIiAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX2lucHV0X19pY29uXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWNhbGVuZGFyLWFsdFwiPjwvaT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fd3JhcHBlcl9faW5wdXRfX2RhdGVcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRlU2VsZWN0ZWRcIiBAb3BhY2l0eUFuaW1hdGlvbj57eyBkYXRlU2VsZWN0ZWQgfCBkYXRlOiAnZGQvTU0veXl5eSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlci1kYXRlXCIgKm5nSWY9XCIhZGF0ZVNlbGVjdGVkXCIgQG9wYWNpdHlBbmltYXRpb24+e3sgJ3dhYy5EYXRlLlBsYWNlSG9sZGVyLmRkL21tL3l5eXknIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19pbnB1dF9fdGltZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7IGRhdGVTZWxlY3RlZCB8IGRhdGU6ICdISDptbScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGxhY2Vob2xkZXItZGF0ZVwiICpuZ0lmPVwiIWRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7ICd3YWMuRGF0ZS5QbGFjZUhvbGRlci5ISDptbScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19lZGl0SW5QbGFjZVwiICpuZ0lmPVwidHlwZSA9PT0gJ2VkaXQnXCIgKGNsaWNrKT1cIm9wZW5DYWxlbmRhcigpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19lZGl0SW5QbGFjZV9faWNvblwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS1jYWxlbmRhci1hbHRcIj48L2k+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX2VkaXRJblBsYWNlX19kYXRlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX2lucHV0X190aW1lXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRlU2VsZWN0ZWRcIiBAb3BhY2l0eUFuaW1hdGlvbj57eyBkYXRlU2VsZWN0ZWQgfCBkYXRlOiAnZGQvTU0veXl5eSBISDptbScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlci1kYXRlXCIgKm5nSWY9XCIhZGF0ZVNlbGVjdGVkXCIgQG9wYWNpdHlBbmltYXRpb24+e3sgJ3dhYy5EYXRlLlBsYWNlSG9sZGVyLmRkL01NL3l5eXlfSEg6bW0nIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX3NlbGVjdFwiICpuZ0lmPVwidHlwZSA9PT0gJ3NlbGVjdCdcIiAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX3NlbGVjdF9faWNvblwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS1jYWxlbmRhci1hbHRcIj48L2k+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX3NlbGVjdF9fZGF0ZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7IGRhdGVTZWxlY3RlZCB8IGRhdGU6ICdkZC9NTS95eXl5IEhIOm1tJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlci1kYXRlXCIgKm5nSWY9XCIhZGF0ZVNlbGVjdGVkXCIgQG9wYWNpdHlBbmltYXRpb24+e3sgJ3dhYy5EYXRlLlBsYWNlSG9sZGVyLmRkL01NL3l5eXlfSEg6bW0nIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICB0b3A6IHBvc2l0aW9uID09PSAndG9wJyxcclxuICAgICAgICAgIGJvdHRvbTogcG9zaXRpb24gPT09ICdib3R0b20nLFxyXG4gICAgICAgICAgbGVmdDogcG9zaXRpb24gPT09ICdsZWZ0JyxcclxuICAgICAgICAgIHJpZ2h0OiBwb3NpdGlvbiA9PT0gJ3JpZ2h0JyxcclxuICAgICAgICAgICdyaWdodC10b3AnOiBwb3NpdGlvbiA9PT0gJ3JpZ2h0LXRvcCcsXHJcbiAgICAgICAgICAncmlnaHQtYm90dG9tJzogcG9zaXRpb24gPT09ICdyaWdodC1ib3R0b20nLFxyXG4gICAgICAgICAgJ2xlZnQtdG9wJzogcG9zaXRpb24gPT09ICdsZWZ0LXRvcCcsXHJcbiAgICAgICAgICAnbGVmdC1ib3R0b20nOiBwb3NpdGlvbiA9PT0gJ2xlZnQtYm90dG9tJyxcclxuICAgICAgICAgICd3aXRoLXRpbWUnOiB0eXBlRGF0ZSA9PT0gJ2RhdGV0aW1lLWxvY2FsJyB8fCB0eXBlRGF0ZSA9PT0gJ2RhdGV0aW1lJ1xyXG4gICAgICAgIH1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG53Yi1kYXRlLXBpY2tlciAjZGF0ZVBpY2tlciAoY2hhbmdlKT1cIm9uQ2hhbmdlRGF0ZSgkZXZlbnQpXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiPlxyXG4gICAgICAgICAgPGlucHV0IFtud2JEYXRlcGlja2VyU3RhcnRdPVwiZGF0ZVBpY2tlclwiIHR5cGU9XCJ0ZXh0XCIgW253YkRhdGVUeXBlXT1cIidkYXRlJ1wiIFt2YWx1ZV09XCJkYXRlU2VsZWN0ZWQ/LnRvSVNPU3RyaW5nKClcIiAvPlxyXG4gICAgICAgIDwvbndiLWRhdGUtcGlja2VyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lXCIgKm5nSWY9XCJ0eXBlRGF0ZSA9PT0gJ2RhdGV0aW1lLWxvY2FsJyB8fCB0eXBlRGF0ZSA9PT0gJ2RhdGV0aW1lJ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYWJzb2x1dGVfX3RpbWVfX3dyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYWJzb2x1dGVfX3RpbWVfX3dyYXBwZXJfX2hvdXJzXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYWJzb2x1dGVfX3RpbWVfX3dyYXBwZXJfX2hvdXJzX19sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlcl9faG91cnNfX2J0blwiIChjbGljayk9XCJpbmNyZW1lbnRIb3VycygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19ob3Vyc19fYnRuXCIgKGNsaWNrKT1cImRlY3JlbWVudEhvdXJzKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtbWludXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlcl9faG91cnNfX3JpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgI2hvdXJzIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJjYWxlbmRhckhvdXJzXCIgW3dhY09ubHlOdW1iZXJdPVwidHJ1ZVwiLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19taW51dGVzXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYWJzb2x1dGVfX3RpbWVfX3dyYXBwZXJfX21pbnV0ZXNfX2xlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCAjbWludXRlcyB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiY2FsZW5kYXJNaW51dGVzXCIgW3dhY09ubHlOdW1iZXJdPVwidHJ1ZVwiLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlcl9fbWludXRlc19fcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19taW51dGVzX19idG5cIiAoY2xpY2spPVwiaW5jcmVtZW50TWludXRlcygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19taW51dGVzX19idG5cIiAoY2xpY2spPVwiZGVjcmVtZW50c01pbnV0ZXMoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1taW51c1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvd2FjLW9wdGlvbmFsLWRpc2FibGUtY29udGFpbmVyPlxyXG4gIDxwIGNsYXNzPVwid2FjLWNhbGVuZGFyX19lbmRMYWJlbFwiICpuZ0lmPVwidHlwZSA9PT0gJ2VkaXQnXCI+e3sgZW5kTGFiZWwgfX08L3A+XHJcbjwvZGl2PlxyXG4iXX0=
|