@energycap/components 0.41.1-ECAP-26841-date-input-features.20250108-1149 → 0.42.1
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/{esm2020 → esm2022}/energycap-components.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components.module.mjs +423 -423
- package/esm2022/lib/controls/banner/banner.component.mjs +109 -0
- package/esm2022/lib/controls/button/button.component.mjs +106 -0
- package/esm2022/lib/controls/button/copy-button-base.directive.mjs +67 -0
- package/{esm2020 → esm2022}/lib/controls/button/copy-button.directive.mjs +28 -28
- package/esm2022/lib/controls/button/copy-table-button.directive.mjs +43 -0
- package/esm2022/lib/controls/calendar/calendar-item.component.mjs +91 -0
- package/esm2022/lib/controls/calendar/calendar.component.mjs +248 -0
- package/{esm2020 → esm2022}/lib/controls/calendar/calendar.types.mjs +1 -1
- package/esm2022/lib/controls/checkbox/checkbox.component.mjs +140 -0
- package/{esm2020 → esm2022}/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -38
- package/esm2022/lib/controls/combobox/combobox.component.mjs +879 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +57 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +62 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +100 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +101 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +76 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +79 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +210 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +81 -0
- package/esm2022/lib/controls/date-input/date-input.component.mjs +465 -0
- package/{esm2020 → esm2022}/lib/controls/date-input/date-input.types.mjs +44 -44
- package/esm2022/lib/controls/dropdown/dropdown.component.mjs +243 -0
- package/esm2022/lib/controls/file-upload/file-upload.component.mjs +261 -0
- package/esm2022/lib/controls/form-control/form-control.component.mjs +98 -0
- package/esm2022/lib/controls/form-control-base.mjs +151 -0
- package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +136 -0
- package/esm2022/lib/controls/form-group/form-group.component.mjs +261 -0
- package/{esm2020 → esm2022}/lib/controls/help-popover/help-popover.component.mjs +31 -31
- package/esm2022/lib/controls/item-picker/item-picker.component.mjs +329 -0
- package/{esm2020 → esm2022}/lib/controls/link-button/link-button.component.mjs +11 -11
- package/esm2022/lib/controls/menu/menu.component.mjs +485 -0
- package/{esm2020 → esm2022}/lib/controls/navigation/link-item.mjs +1 -1
- package/esm2022/lib/controls/navigation/nav-group.mjs +39 -0
- package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +92 -0
- package/{esm2020 → esm2022}/lib/controls/navigation/nav-item.mjs +1 -1
- package/esm2022/lib/controls/numericbox/numericbox.component.mjs +372 -0
- package/esm2022/lib/controls/popover/popover.component.mjs +117 -0
- package/{esm2020 → esm2022}/lib/controls/radio-button/radio-button-option.mjs +2 -2
- package/esm2022/lib/controls/radio-button/radio-button.component.mjs +82 -0
- package/esm2022/lib/controls/select/select.component.mjs +88 -0
- package/esm2022/lib/controls/tabs/tabs.component.mjs +47 -0
- package/esm2022/lib/controls/textbox/textbox.component.mjs +155 -0
- package/esm2022/lib/core/cache.service.mjs +105 -0
- package/esm2022/lib/core/custom-validators.mjs +29 -0
- package/esm2022/lib/core/date-time-helper.mjs +228 -0
- package/esm2022/lib/core/error.service.mjs +61 -0
- package/esm2022/lib/core/router-helper.service.mjs +111 -0
- package/esm2022/lib/core/scroll.service.mjs +89 -0
- package/{esm2020 → esm2022}/lib/core/telemetry-tracker.service.mjs +16 -16
- package/{esm2020 → esm2022}/lib/core/telemetry.service.mjs +38 -38
- package/esm2022/lib/core/validation-message.service.mjs +185 -0
- package/{esm2020 → esm2022}/lib/core/validation-patterns.mjs +30 -30
- package/esm2022/lib/core/window.service.mjs +186 -0
- package/esm2022/lib/display/app-bar/app-bar.component.mjs +46 -0
- package/esm2022/lib/display/avatar/avatar.component.mjs +67 -0
- package/esm2022/lib/display/avatar/avatar.service.mjs +64 -0
- package/esm2022/lib/display/confirm/confirm.component.mjs +168 -0
- package/{esm2020 → esm2022}/lib/display/dialog/dialog-content.mjs +1 -1
- package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -0
- package/{esm2020 → esm2022}/lib/display/dialog/dialog-types.mjs +76 -76
- package/esm2022/lib/display/dialog/dialog.component.mjs +281 -0
- package/{esm2020 → esm2022}/lib/display/dialog/dialog.service.mjs +71 -71
- package/{esm2020 → esm2022}/lib/display/help/help-types.mjs +1 -1
- package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +111 -0
- package/{esm2020 → esm2022}/lib/display/hierarchy/hierarchy-mocks.spec.mjs +53 -53
- package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +61 -0
- package/esm2022/lib/display/item-display/item-display.component.mjs +81 -0
- package/esm2022/lib/display/json-display/json-display.component.mjs +47 -0
- package/esm2022/lib/display/resizable/resizable-base.mjs +120 -0
- package/{esm2020 → esm2022}/lib/display/resizable/resizable.component.mjs +52 -52
- package/{esm2020 → esm2022}/lib/display/spinner/spinner.component.mjs +12 -12
- package/esm2022/lib/display/splash/splash.component.mjs +42 -0
- package/{esm2020 → esm2022}/lib/display/splash/splash.service.mjs +35 -35
- package/{esm2020 → esm2022}/lib/display/table/resizable-column.component.mjs +20 -20
- package/esm2022/lib/display/table/resizable-table.directive.mjs +227 -0
- package/esm2022/lib/display/table/searchable-table.component.mjs +342 -0
- package/{esm2020 → esm2022}/lib/display/table/table-detail-row.component.mjs +19 -19
- package/esm2022/lib/display/table/table-locked-column.component.mjs +58 -0
- package/{esm2020 → esm2022}/lib/display/table/table-master-header-row.component.mjs +14 -14
- package/esm2022/lib/display/table/table-master-row.component.mjs +163 -0
- package/esm2022/lib/display/table/table-pagination.component.mjs +155 -0
- package/esm2022/lib/display/table/table-selectable-row.component.mjs +235 -0
- package/esm2022/lib/display/table/table.component.mjs +249 -0
- package/esm2022/lib/display/tags/tag.mjs +18 -0
- package/esm2022/lib/display/tags/tags.component.mjs +77 -0
- package/esm2022/lib/display/toast/toast/toast.component.mjs +77 -0
- package/{esm2020 → esm2022}/lib/display/toast/toast-types.mjs +7 -7
- package/{esm2020 → esm2022}/lib/display/toast/toast.service.mjs +35 -35
- package/esm2022/lib/display/toast/toaster/toaster.component.mjs +114 -0
- package/{esm2020 → esm2022}/lib/display/tooltip/tooltip.component.mjs +28 -28
- package/{esm2020 → esm2022}/lib/display/tooltip/tooltip.service.mjs +78 -78
- package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +173 -0
- package/{esm2020 → esm2022}/lib/display/tour/tour-types.mjs +33 -33
- package/esm2022/lib/display/tour/tour.component.mjs +398 -0
- package/esm2022/lib/display/tour/tour.service.mjs +75 -0
- package/esm2022/lib/display/tree/tree.component.mjs +135 -0
- package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +58 -0
- package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -0
- package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -0
- package/{esm2020 → esm2022}/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +100 -100
- package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +166 -0
- package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +50 -0
- package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -0
- package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +62 -0
- package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +48 -0
- package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +41 -0
- package/esm2022/lib/shared/display.mjs +6 -0
- package/esm2022/lib/shared/form-group.helper.mjs +67 -0
- package/esm2022/lib/shared/json-helper.mjs +19 -0
- package/esm2022/lib/shared/lodash-helper.mjs +52 -0
- package/esm2022/lib/shared/page/page-base/page-base.component.mjs +387 -0
- package/{esm2020 → esm2022}/lib/shared/page/page-statuses.mjs +22 -22
- package/{esm2020 → esm2022}/lib/shared/page/page-title/page-title.component.mjs +23 -23
- package/esm2022/lib/shared/page/page-view/page-view.component.mjs +147 -0
- package/{esm2020 → esm2022}/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +16 -16
- package/{esm2020 → esm2022}/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +16 -16
- package/{esm2020 → esm2022}/lib/shared/testing/page-base-component-test-helper.spec.mjs +37 -37
- package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +98 -0
- package/{esm2020 → esm2022}/lib/shared/testing/public-mocks.spec.mjs +148 -148
- package/{esm2020 → esm2022}/lib/shared/testing/spy-factory.spec.mjs +39 -39
- package/{esm2020 → esm2022}/lib/shared/testing/translation-mocks.spec.mjs +56 -56
- package/{esm2020 → esm2022}/lib/shared/user-preference.service.mjs +17 -17
- package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -0
- package/{esm2020 → esm2022}/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -68
- package/{esm2020 → esm2022}/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -18
- package/{esm2020 → esm2022}/public-api.mjs +116 -116
- package/{fesm2020 → fesm2022}/energycap-components.mjs +12956 -12952
- package/fesm2022/energycap-components.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/components.module.d.ts +92 -92
- package/lib/controls/banner/banner.component.d.ts +50 -50
- package/lib/controls/button/button.component.d.ts +78 -78
- package/lib/controls/button/copy-button-base.directive.d.ts +20 -20
- package/lib/controls/button/copy-button.directive.d.ts +14 -14
- package/lib/controls/button/copy-table-button.directive.d.ts +19 -19
- package/lib/controls/calendar/calendar-item.component.d.ts +22 -22
- package/lib/controls/calendar/calendar.component.d.ts +52 -52
- package/lib/controls/calendar/calendar.types.d.ts +11 -11
- package/lib/controls/checkbox/checkbox.component.d.ts +65 -65
- package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +25 -25
- package/lib/controls/combobox/combobox.component.d.ts +418 -418
- package/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.d.ts +42 -42
- package/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.d.ts +21 -21
- package/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.d.ts +21 -21
- package/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.d.ts +21 -21
- package/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.d.ts +18 -18
- package/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.d.ts +18 -18
- package/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.d.ts +21 -21
- package/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.d.ts +20 -20
- package/lib/controls/date-input/date-input.component.d.ts +115 -115
- package/lib/controls/date-input/date-input.types.d.ts +62 -62
- package/lib/controls/dropdown/dropdown.component.d.ts +161 -161
- package/lib/controls/file-upload/file-upload.component.d.ts +124 -124
- package/lib/controls/form-control/form-control.component.d.ts +28 -28
- package/lib/controls/form-control-base.d.ts +110 -110
- package/lib/controls/form-control-label/form-control-label.component.d.ts +73 -73
- package/lib/controls/form-group/form-group.component.d.ts +105 -105
- package/lib/controls/help-popover/help-popover.component.d.ts +11 -11
- package/lib/controls/item-picker/item-picker.component.d.ts +164 -164
- package/lib/controls/link-button/link-button.component.d.ts +5 -5
- package/lib/controls/menu/menu.component.d.ts +255 -255
- package/lib/controls/navigation/link-item.d.ts +32 -32
- package/lib/controls/navigation/nav-group.d.ts +18 -18
- package/lib/controls/navigation/nav-item-active.directive.d.ts +42 -42
- package/lib/controls/navigation/nav-item.d.ts +31 -31
- package/lib/controls/numericbox/numericbox.component.d.ts +148 -148
- package/lib/controls/popover/popover.component.d.ts +51 -51
- package/lib/controls/radio-button/radio-button-option.d.ts +19 -19
- package/lib/controls/radio-button/radio-button.component.d.ts +53 -53
- package/lib/controls/select/select.component.d.ts +44 -44
- package/lib/controls/tabs/tabs.component.d.ts +30 -30
- package/lib/controls/textbox/textbox.component.d.ts +107 -107
- package/lib/core/cache.service.d.ts +33 -33
- package/lib/core/custom-validators.d.ts +20 -20
- package/lib/core/date-time-helper.d.ts +101 -101
- package/lib/core/error.service.d.ts +20 -20
- package/lib/core/router-helper.service.d.ts +48 -48
- package/lib/core/scroll.service.d.ts +36 -36
- package/lib/core/telemetry-tracker.service.d.ts +13 -13
- package/lib/core/telemetry.service.d.ts +31 -31
- package/lib/core/validation-message.service.d.ts +26 -26
- package/lib/core/validation-patterns.d.ts +22 -22
- package/lib/core/window.service.d.ts +116 -116
- package/lib/display/app-bar/app-bar.component.d.ts +20 -20
- package/lib/display/avatar/avatar.component.d.ts +35 -35
- package/lib/display/avatar/avatar.service.d.ts +24 -24
- package/lib/display/confirm/confirm.component.d.ts +123 -123
- package/lib/display/dialog/dialog-content.d.ts +19 -19
- package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +32 -32
- package/lib/display/dialog/dialog-types.d.ts +130 -130
- package/lib/display/dialog/dialog.component.d.ts +120 -120
- package/lib/display/dialog/dialog.service.d.ts +48 -48
- package/lib/display/help/help-types.d.ts +33 -33
- package/lib/display/hierarchy/hierarchy-base.d.ts +97 -97
- package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +53 -53
- package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +34 -34
- package/lib/display/item-display/item-display.component.d.ts +43 -43
- package/lib/display/json-display/json-display.component.d.ts +16 -16
- package/lib/display/resizable/resizable-base.d.ts +67 -67
- package/lib/display/resizable/resizable.component.d.ts +31 -31
- package/lib/display/spinner/spinner.component.d.ts +5 -5
- package/lib/display/splash/splash.component.d.ts +16 -16
- package/lib/display/splash/splash.service.d.ts +22 -22
- package/lib/display/table/resizable-column.component.d.ts +10 -10
- package/lib/display/table/resizable-table.directive.d.ts +93 -93
- package/lib/display/table/searchable-table.component.d.ts +206 -206
- package/lib/display/table/table-detail-row.component.d.ts +8 -8
- package/lib/display/table/table-locked-column.component.d.ts +20 -20
- package/lib/display/table/table-master-header-row.component.d.ts +9 -9
- package/lib/display/table/table-master-row.component.d.ts +113 -113
- package/lib/display/table/table-pagination.component.d.ts +91 -91
- package/lib/display/table/table-selectable-row.component.d.ts +102 -102
- package/lib/display/table/table.component.d.ts +121 -121
- package/lib/display/tags/tag.d.ts +18 -18
- package/lib/display/tags/tags.component.d.ts +48 -48
- package/lib/display/toast/toast/toast.component.d.ts +23 -23
- package/lib/display/toast/toast-types.d.ts +24 -24
- package/lib/display/toast/toast.service.d.ts +20 -20
- package/lib/display/toast/toaster/toaster.component.d.ts +35 -35
- package/lib/display/tooltip/tooltip.component.d.ts +70 -70
- package/lib/display/tooltip/tooltip.service.d.ts +16 -16
- package/lib/display/tooltip-directive/tooltip.directive.d.ts +44 -44
- package/lib/display/tour/tour-types.d.ts +70 -70
- package/lib/display/tour/tour.component.d.ts +147 -147
- package/lib/display/tour/tour.service.d.ts +38 -38
- package/lib/display/tree/tree.component.d.ts +75 -75
- package/lib/display/view-overlay/view-overlay.component.d.ts +38 -38
- package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +14 -14
- package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +60 -60
- package/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.d.ts +23 -23
- package/lib/shared/directives/popup/popup-container.directive.d.ts +101 -101
- package/lib/shared/display/pipes/date-display.pipe.d.ts +21 -21
- package/lib/shared/display/pipes/highlight-text.pipe.d.ts +9 -9
- package/lib/shared/display/pipes/relative-date.pipe.d.ts +36 -36
- package/lib/shared/display/pipes/row-count.pipe.d.ts +23 -23
- package/lib/shared/display/pipes/time-display.pipe.d.ts +18 -18
- package/lib/shared/display.d.ts +42 -42
- package/lib/shared/form-group.helper.d.ts +31 -31
- package/lib/shared/json-helper.d.ts +7 -7
- package/lib/shared/lodash-helper.d.ts +18 -18
- package/lib/shared/page/page-base/page-base.component.d.ts +259 -259
- package/lib/shared/page/page-statuses.d.ts +13 -13
- package/lib/shared/page/page-title/page-title.component.d.ts +9 -9
- package/lib/shared/page/page-view/page-view.component.d.ts +102 -102
- package/lib/shared/testing/copy-button-base-test-injector-factory.spec.d.ts +4 -4
- package/lib/shared/testing/hierarchy-base-test-injector-factory.spec.d.ts +4 -4
- package/lib/shared/testing/page-base-component-test-helper.spec.d.ts +30 -30
- package/lib/shared/testing/page-base-component-test-injector-factory.spec.d.ts +28 -28
- package/lib/shared/testing/public-mocks.spec.d.ts +90 -90
- package/lib/shared/testing/spy-factory.spec.d.ts +27 -27
- package/lib/shared/testing/translation-mocks.spec.d.ts +30 -30
- package/lib/shared/user-preference.service.d.ts +13 -13
- package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +134 -134
- package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +27 -27
- package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +10 -10
- package/package.json +12 -18
- package/public-api.d.ts +113 -113
- package/schematics/rxjs-7-upgrade/index.d.ts +3 -3
- package/schematics/rxjs-7-upgrade/index.js +67 -67
- package/schematics/rxjs-7-upgrade/index.js.map +1 -1
- package/schematics/rxjs-7-upgrade/schema.d.ts +4 -4
- package/schematics/rxjs-7-upgrade/schema.js +2 -2
- package/schematics/utilities/typescript.d.ts +7 -7
- package/schematics/utilities/typescript.js +41 -41
- package/schematics/utilities/workspace.d.ts +8 -8
- package/schematics/utilities/workspace.js +71 -71
- package/schematics/utilities/workspace.js.map +1 -1
- package/esm2020/lib/controls/banner/banner.component.mjs +0 -109
- package/esm2020/lib/controls/button/button.component.mjs +0 -106
- package/esm2020/lib/controls/button/copy-button-base.directive.mjs +0 -67
- package/esm2020/lib/controls/button/copy-table-button.directive.mjs +0 -43
- package/esm2020/lib/controls/calendar/calendar-item.component.mjs +0 -91
- package/esm2020/lib/controls/calendar/calendar.component.mjs +0 -248
- package/esm2020/lib/controls/checkbox/checkbox.component.mjs +0 -140
- package/esm2020/lib/controls/combobox/combobox.component.mjs +0 -879
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +0 -57
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +0 -62
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +0 -100
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +0 -101
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +0 -76
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +0 -79
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +0 -210
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +0 -81
- package/esm2020/lib/controls/date-input/date-input.component.mjs +0 -465
- package/esm2020/lib/controls/dropdown/dropdown.component.mjs +0 -243
- package/esm2020/lib/controls/file-upload/file-upload.component.mjs +0 -261
- package/esm2020/lib/controls/form-control/form-control.component.mjs +0 -98
- package/esm2020/lib/controls/form-control-base.mjs +0 -151
- package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +0 -136
- package/esm2020/lib/controls/form-group/form-group.component.mjs +0 -261
- package/esm2020/lib/controls/item-picker/item-picker.component.mjs +0 -329
- package/esm2020/lib/controls/menu/menu.component.mjs +0 -485
- package/esm2020/lib/controls/navigation/nav-group.mjs +0 -39
- package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +0 -92
- package/esm2020/lib/controls/numericbox/numericbox.component.mjs +0 -372
- package/esm2020/lib/controls/popover/popover.component.mjs +0 -117
- package/esm2020/lib/controls/radio-button/radio-button.component.mjs +0 -82
- package/esm2020/lib/controls/select/select.component.mjs +0 -88
- package/esm2020/lib/controls/tabs/tabs.component.mjs +0 -47
- package/esm2020/lib/controls/textbox/textbox.component.mjs +0 -155
- package/esm2020/lib/core/cache.service.mjs +0 -105
- package/esm2020/lib/core/custom-validators.mjs +0 -29
- package/esm2020/lib/core/date-time-helper.mjs +0 -228
- package/esm2020/lib/core/error.service.mjs +0 -61
- package/esm2020/lib/core/router-helper.service.mjs +0 -111
- package/esm2020/lib/core/scroll.service.mjs +0 -89
- package/esm2020/lib/core/validation-message.service.mjs +0 -185
- package/esm2020/lib/core/window.service.mjs +0 -186
- package/esm2020/lib/display/app-bar/app-bar.component.mjs +0 -46
- package/esm2020/lib/display/avatar/avatar.component.mjs +0 -67
- package/esm2020/lib/display/avatar/avatar.service.mjs +0 -64
- package/esm2020/lib/display/confirm/confirm.component.mjs +0 -168
- package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +0 -63
- package/esm2020/lib/display/dialog/dialog.component.mjs +0 -281
- package/esm2020/lib/display/hierarchy/hierarchy-base.mjs +0 -111
- package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +0 -61
- package/esm2020/lib/display/item-display/item-display.component.mjs +0 -81
- package/esm2020/lib/display/json-display/json-display.component.mjs +0 -47
- package/esm2020/lib/display/resizable/resizable-base.mjs +0 -120
- package/esm2020/lib/display/splash/splash.component.mjs +0 -42
- package/esm2020/lib/display/table/resizable-table.directive.mjs +0 -227
- package/esm2020/lib/display/table/searchable-table.component.mjs +0 -342
- package/esm2020/lib/display/table/table-locked-column.component.mjs +0 -58
- package/esm2020/lib/display/table/table-master-row.component.mjs +0 -163
- package/esm2020/lib/display/table/table-pagination.component.mjs +0 -155
- package/esm2020/lib/display/table/table-selectable-row.component.mjs +0 -235
- package/esm2020/lib/display/table/table.component.mjs +0 -249
- package/esm2020/lib/display/tags/tag.mjs +0 -18
- package/esm2020/lib/display/tags/tags.component.mjs +0 -77
- package/esm2020/lib/display/toast/toast/toast.component.mjs +0 -77
- package/esm2020/lib/display/toast/toaster/toaster.component.mjs +0 -114
- package/esm2020/lib/display/tooltip-directive/tooltip.directive.mjs +0 -173
- package/esm2020/lib/display/tour/tour.component.mjs +0 -398
- package/esm2020/lib/display/tour/tour.service.mjs +0 -75
- package/esm2020/lib/display/tree/tree.component.mjs +0 -135
- package/esm2020/lib/display/view-overlay/view-overlay.component.mjs +0 -58
- package/esm2020/lib/shared/directives/click-area-for/click-area-for.directive.mjs +0 -32
- package/esm2020/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +0 -111
- package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +0 -163
- package/esm2020/lib/shared/display/pipes/date-display.pipe.mjs +0 -50
- package/esm2020/lib/shared/display/pipes/highlight-text.pipe.mjs +0 -30
- package/esm2020/lib/shared/display/pipes/relative-date.pipe.mjs +0 -62
- package/esm2020/lib/shared/display/pipes/row-count.pipe.mjs +0 -48
- package/esm2020/lib/shared/display/pipes/time-display.pipe.mjs +0 -41
- package/esm2020/lib/shared/display.mjs +0 -6
- package/esm2020/lib/shared/form-group.helper.mjs +0 -67
- package/esm2020/lib/shared/json-helper.mjs +0 -19
- package/esm2020/lib/shared/lodash-helper.mjs +0 -51
- package/esm2020/lib/shared/page/page-base/page-base.component.mjs +0 -387
- package/esm2020/lib/shared/page/page-view/page-view.component.mjs +0 -147
- package/esm2020/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
- package/esm2020/lib/shared/wizard/wizard-base/wizard-base.component.mjs +0 -246
- package/fesm2015/energycap-components.mjs +0 -13373
- package/fesm2015/energycap-components.mjs.map +0 -1
- package/fesm2020/energycap-components.mjs.map +0 -1
@@ -1,135 +0,0 @@
|
|
1
|
-
import { Component, Input, HostBinding, Output, EventEmitter, ViewChild } from '@angular/core';
|
2
|
-
import { MenuComponent } from '../../controls/menu/menu.component';
|
3
|
-
import { HierarchyTreeComponent } from '../hierarchy/hierarchy-tree/hierarchy-tree.component';
|
4
|
-
import { Overlay } from '../view-overlay/view-overlay.component';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "@angular/common";
|
7
|
-
import * as i2 from "../view-overlay/view-overlay.component";
|
8
|
-
import * as i3 from "../../controls/menu/menu.component";
|
9
|
-
import * as i4 from "../../controls/dropdown/dropdown.component";
|
10
|
-
import * as i5 from "../hierarchy/hierarchy-tree/hierarchy-tree.component";
|
11
|
-
import * as i6 from "@ngx-translate/core";
|
12
|
-
export class TreeComponent {
|
13
|
-
/**
|
14
|
-
* The ID of the component, bound to the host element's id attribute and passed
|
15
|
-
* to child components
|
16
|
-
*/
|
17
|
-
set id(value) {
|
18
|
-
this._id = value;
|
19
|
-
this.attrId = value;
|
20
|
-
}
|
21
|
-
;
|
22
|
-
get id() {
|
23
|
-
return this._id;
|
24
|
-
}
|
25
|
-
constructor() {
|
26
|
-
/** The value of the host elements id attribute */
|
27
|
-
this.attrId = '';
|
28
|
-
this._id = '';
|
29
|
-
/** The tree's title displayed in the header */
|
30
|
-
this.treeTitle = '';
|
31
|
-
/** Hides the tree header when set to true */
|
32
|
-
this.hideTreeHeader = false;
|
33
|
-
/** Used when the tree is in menu mode to tell the menu if it should maintain the selected item
|
34
|
-
* Useful in side nav components where this tree component may exist alongside other trees or menus
|
35
|
-
* used for navigation. If this tree is in menu mode you would want this set to false so when you select an item
|
36
|
-
* from a sibling navigation element the selection will not be maintained.
|
37
|
-
*/
|
38
|
-
this.treeMenuMaintainSelectedItem = true;
|
39
|
-
/** Tree overlay */
|
40
|
-
this.status = new Overlay('hasData');
|
41
|
-
/** Display the tree items with a MenuComponent or a HierarchyTreeComponent */
|
42
|
-
this.type = 'hierarchy';
|
43
|
-
/** Tree dropdown menu overlay */
|
44
|
-
this.menuStatus = new Overlay('hasData');
|
45
|
-
/** The menu item template */
|
46
|
-
this.menuTemplateType = "checkAndLabel";
|
47
|
-
/**
|
48
|
-
* When true, the space for the icon is preserved for menu items that do not have icons.
|
49
|
-
* Only applicable for iconAndLabel menus. Not applicable to hierarchy trees.
|
50
|
-
*/
|
51
|
-
this.preserveIconSpace = false;
|
52
|
-
/** Emits the item currently selected item in the tree */
|
53
|
-
this.treeSelection = new EventEmitter();
|
54
|
-
/** Emits when a hierarchy tree item is expanded as a hook to load the item's children */
|
55
|
-
this.getTreeItemChildren = new EventEmitter();
|
56
|
-
/** Emits when a hierarchy tree item is expanded or collapsed */
|
57
|
-
this.treeItemToggled = new EventEmitter();
|
58
|
-
this.templateType = 'label';
|
59
|
-
}
|
60
|
-
/** Emits when a tree item is selected */
|
61
|
-
onItemSelected(item) {
|
62
|
-
this.treeSelection.emit(item);
|
63
|
-
}
|
64
|
-
/** Emits when a hierarchy tree item is expanded to load the item's children */
|
65
|
-
onHierarchyGetItemChildren(item) {
|
66
|
-
this.getTreeItemChildren.emit(item);
|
67
|
-
}
|
68
|
-
/** Emits when a hierarchy tree item is expanded or collapsed */
|
69
|
-
onHierarchyItemToggled(item) {
|
70
|
-
this.treeItemToggled.emit(item);
|
71
|
-
}
|
72
|
-
/** Scroll to the tree item that is currently selected. */
|
73
|
-
scrollToSelectedItem() {
|
74
|
-
if (this.menuComponent) {
|
75
|
-
this.menuComponent.scrollToSelectedItem();
|
76
|
-
}
|
77
|
-
if (this.hierarchyTreeComponent) {
|
78
|
-
this.hierarchyTreeComponent.scrollToSelectedItem();
|
79
|
-
}
|
80
|
-
}
|
81
|
-
}
|
82
|
-
TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
83
|
-
TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TreeComponent, selector: "ec-tree", inputs: { id: "id", treeTitle: "treeTitle", hideTreeHeader: "hideTreeHeader", treeItems: "treeItems", treeHierarchyHideRootNode: "treeHierarchyHideRootNode", treeHierarchy: "treeHierarchy", treeMenuMaintainSelectedItem: "treeMenuMaintainSelectedItem", customTreeMenuTemplate: "customTreeMenuTemplate", customHierarchyItemTemplate: "customHierarchyItemTemplate", status: "status", type: "type", menuItems: "menuItems", menuStatus: "menuStatus", menuTemplateType: "menuTemplateType", preserveIconSpace: "preserveIconSpace", templateType: "templateType" }, outputs: { treeSelection: "treeSelection", getTreeItemChildren: "getTreeItemChildren", treeItemToggled: "treeItemToggled" }, host: { properties: { "attr.id": "this.attrId" } }, viewQueries: [{ propertyName: "menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "hierarchyTreeComponent", first: true, predicate: HierarchyTreeComponent, descendants: true }], ngImport: i0, template: "<header *ngIf=\"!hideTreeHeader\"\r\n class=\"flex-shrink d-flex align-items-center\">\r\n <h2 id=\"{{id}}_title\"\r\n class=\"flex-grow mr-2 text-heading-1\">{{treeTitle | translate}}</h2>\r\n <ec-dropdown *ngIf=\"menuItems?.length\"\r\n id=\"{{id}}_dropdown\"\r\n class=\"flex-shrink\"\r\n icon=\"icon-menu\"\r\n [menuTemplateType]=\"menuTemplateType\"\r\n menuPosition=\"left\"\r\n [status]=\"menuStatus\"\r\n [popupFixed]=\"true\"\r\n [showArrow]=\"false\"\r\n [menuMinWidth]=\"240\"\r\n [items]=\"menuItems\">\r\n </ec-dropdown>\r\n</header>\r\n\r\n<div class=\"flex-grow d-flex\"\r\n ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-container *ngIf=\"type === 'menu'\">\r\n <ec-menu [id]=\"id\"\r\n [items]=\"treeItems\"\r\n [templateType]=\"templateType\"\r\n [maintainSelectedItem]=\"treeMenuMaintainSelectedItem\"\r\n [truncateItems]=\"true\"\r\n (selectedChanged)=\"onItemSelected($event)\"\r\n [customMenuTemplate]=\"customTreeMenuTemplate ? customTreeMenuTemplate : undefined\"\r\n [preserveIconSpace]=\"preserveIconSpace\"\r\n class=\"flex-grow\">\r\n </ec-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"type === 'hierarchy'\">\r\n <ec-hierarchy-tree [id]=\"id\"\r\n [rootNode]=\"treeHierarchy\"\r\n [hideRootNode]=\"treeHierarchyHideRootNode\"\r\n (getItemChildren)=\"onHierarchyGetItemChildren($event)\"\r\n (itemToggled)=\"onHierarchyItemToggled($event)\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n [customItemTemplate]=\"customHierarchyItemTemplate\"\r\n class=\"flex-grow d-flex\">\r\n </ec-hierarchy-tree>\r\n </ng-container>\r\n</div>", styles: [":host{display:flex;flex-direction:column}header{height:var(--ec-tree-height-header, 3rem);background-color:var(--ec-tree-background-color, var(--ec-background-color));padding:var(--ec-tree-padding-header, 0 .25rem 0 .5rem);border-bottom:var(--ec-tree-border-bottom-header, var(--ec-border-width) solid var(--ec-border-color))}ec-dropdown.fill{height:var(--ec-tree-height-header, 3rem);width:var(--ec-tree-height-header, 3rem)}ec-menu,ec-hierarchy-tree{--ec-menu-background-color: var(--ec-tree-background-color)}[ecOverlay]{--ec-overlay-background-color: var(--ec-tree-background-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ViewOverlayComponent, selector: "[ecOverlay]", inputs: ["status", "message", "action", "noDataTemplate", "displayAsMask", "overlayClassList"] }, { kind: "component", type: i3.MenuComponent, selector: "ec-menu", inputs: ["id", "items", "selected", "parent", "templateType", "customMenuTemplate", "title", "showNoItems", "noDataText", "enableKeyNav", "highlightedItem", "maintainSelectedItem", "truncateItems", "preserveIconSpace", "dropdownToggleButton"], outputs: ["selectedChanged", "menuClosed"] }, { kind: "component", type: i4.DropdownComponent, selector: "ec-dropdown", inputs: ["id", "autofocus", "status", "disabled", "label", "icon", "buttonType", "buttonAlignment", "buttonTitle", "tabindex", "showArrow", "items", "menuTemplateType", "menuTitle", "menuHeight", "menuWidth", "menuMinWidth", "menuPosition", "menuFooter", "popupFixed", "buttonCustomTemplate", "pending"], outputs: ["itemSelected", "popupOpened"] }, { kind: "component", type: i5.HierarchyTreeComponent, selector: "ec-hierarchy-tree", inputs: ["id", "hideRootNode", "customItemTemplate"], outputs: ["itemSelected"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeComponent, decorators: [{
|
85
|
-
type: Component,
|
86
|
-
args: [{ selector: 'ec-tree', template: "<header *ngIf=\"!hideTreeHeader\"\r\n class=\"flex-shrink d-flex align-items-center\">\r\n <h2 id=\"{{id}}_title\"\r\n class=\"flex-grow mr-2 text-heading-1\">{{treeTitle | translate}}</h2>\r\n <ec-dropdown *ngIf=\"menuItems?.length\"\r\n id=\"{{id}}_dropdown\"\r\n class=\"flex-shrink\"\r\n icon=\"icon-menu\"\r\n [menuTemplateType]=\"menuTemplateType\"\r\n menuPosition=\"left\"\r\n [status]=\"menuStatus\"\r\n [popupFixed]=\"true\"\r\n [showArrow]=\"false\"\r\n [menuMinWidth]=\"240\"\r\n [items]=\"menuItems\">\r\n </ec-dropdown>\r\n</header>\r\n\r\n<div class=\"flex-grow d-flex\"\r\n ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-container *ngIf=\"type === 'menu'\">\r\n <ec-menu [id]=\"id\"\r\n [items]=\"treeItems\"\r\n [templateType]=\"templateType\"\r\n [maintainSelectedItem]=\"treeMenuMaintainSelectedItem\"\r\n [truncateItems]=\"true\"\r\n (selectedChanged)=\"onItemSelected($event)\"\r\n [customMenuTemplate]=\"customTreeMenuTemplate ? customTreeMenuTemplate : undefined\"\r\n [preserveIconSpace]=\"preserveIconSpace\"\r\n class=\"flex-grow\">\r\n </ec-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"type === 'hierarchy'\">\r\n <ec-hierarchy-tree [id]=\"id\"\r\n [rootNode]=\"treeHierarchy\"\r\n [hideRootNode]=\"treeHierarchyHideRootNode\"\r\n (getItemChildren)=\"onHierarchyGetItemChildren($event)\"\r\n (itemToggled)=\"onHierarchyItemToggled($event)\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n [customItemTemplate]=\"customHierarchyItemTemplate\"\r\n class=\"flex-grow d-flex\">\r\n </ec-hierarchy-tree>\r\n </ng-container>\r\n</div>", styles: [":host{display:flex;flex-direction:column}header{height:var(--ec-tree-height-header, 3rem);background-color:var(--ec-tree-background-color, var(--ec-background-color));padding:var(--ec-tree-padding-header, 0 .25rem 0 .5rem);border-bottom:var(--ec-tree-border-bottom-header, var(--ec-border-width) solid var(--ec-border-color))}ec-dropdown.fill{height:var(--ec-tree-height-header, 3rem);width:var(--ec-tree-height-header, 3rem)}ec-menu,ec-hierarchy-tree{--ec-menu-background-color: var(--ec-tree-background-color)}[ecOverlay]{--ec-overlay-background-color: var(--ec-tree-background-color)}\n"] }]
|
87
|
-
}], ctorParameters: function () { return []; }, propDecorators: { attrId: [{
|
88
|
-
type: HostBinding,
|
89
|
-
args: ['attr.id']
|
90
|
-
}], id: [{
|
91
|
-
type: Input
|
92
|
-
}], treeTitle: [{
|
93
|
-
type: Input
|
94
|
-
}], hideTreeHeader: [{
|
95
|
-
type: Input
|
96
|
-
}], treeItems: [{
|
97
|
-
type: Input
|
98
|
-
}], treeHierarchyHideRootNode: [{
|
99
|
-
type: Input
|
100
|
-
}], treeHierarchy: [{
|
101
|
-
type: Input
|
102
|
-
}], treeMenuMaintainSelectedItem: [{
|
103
|
-
type: Input
|
104
|
-
}], customTreeMenuTemplate: [{
|
105
|
-
type: Input
|
106
|
-
}], customHierarchyItemTemplate: [{
|
107
|
-
type: Input
|
108
|
-
}], status: [{
|
109
|
-
type: Input
|
110
|
-
}], type: [{
|
111
|
-
type: Input
|
112
|
-
}], menuItems: [{
|
113
|
-
type: Input
|
114
|
-
}], menuStatus: [{
|
115
|
-
type: Input
|
116
|
-
}], menuTemplateType: [{
|
117
|
-
type: Input
|
118
|
-
}], preserveIconSpace: [{
|
119
|
-
type: Input
|
120
|
-
}], treeSelection: [{
|
121
|
-
type: Output
|
122
|
-
}], getTreeItemChildren: [{
|
123
|
-
type: Output
|
124
|
-
}], treeItemToggled: [{
|
125
|
-
type: Output
|
126
|
-
}], menuComponent: [{
|
127
|
-
type: ViewChild,
|
128
|
-
args: [MenuComponent]
|
129
|
-
}], hierarchyTreeComponent: [{
|
130
|
-
type: ViewChild,
|
131
|
-
args: [HierarchyTreeComponent]
|
132
|
-
}], templateType: [{
|
133
|
-
type: Input
|
134
|
-
}] } });
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLG9DQUFvQyxDQUFDO0FBRS9GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7QUFTakUsTUFBTSxPQUFPLGFBQWE7SUFLeEI7OztPQUdHO0lBQ0gsSUFDVyxFQUFFLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQUEsQ0FBQztJQUNGLElBQVcsRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBcUVEO1FBbkZBLGtEQUFrRDtRQUNuQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBYzNDLFFBQUcsR0FBVyxFQUFFLENBQUM7UUFFekIsK0NBQStDO1FBQy9CLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkMsNkNBQTZDO1FBQzdCLG1CQUFjLEdBQWEsS0FBSyxDQUFDO1FBV2pEOzs7O1dBSUc7UUFDYSxpQ0FBNEIsR0FBWSxJQUFJLENBQUM7UUFRN0QsbUJBQW1CO1FBQ0gsV0FBTSxHQUFhLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTFELDhFQUE4RTtRQUM5RCxTQUFJLEdBQWMsV0FBVyxDQUFDO1FBSzlDLGlDQUFpQztRQUNqQixlQUFVLEdBQWEsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUQsNkJBQTZCO1FBQ2IscUJBQWdCLEdBQXNCLGVBQWUsQ0FBQztRQUV0RTs7O1dBR0c7UUFDYSxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFFbkQseURBQXlEO1FBQ3hDLGtCQUFhLEdBQTJDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUYseUZBQXlGO1FBQ3hFLHdCQUFtQixHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZGLGdFQUFnRTtRQUMvQyxvQkFBZSxHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQVFoRyxpQkFBWSxHQUFxQixPQUFPLENBQUM7SUFFekMsQ0FBQztJQUVqQix5Q0FBeUM7SUFDbEMsY0FBYyxDQUFDLElBQThCO1FBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCwrRUFBK0U7SUFDeEUsMEJBQTBCLENBQUMsSUFBbUI7UUFDbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZ0VBQWdFO0lBQ3pELHNCQUFzQixDQUFDLElBQTBCO1FBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCwwREFBMEQ7SUFDbkQsb0JBQW9CO1FBQ3pCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDM0M7UUFFRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUNwRDtJQUNILENBQUM7OzBHQS9HVSxhQUFhOzhGQUFiLGFBQWEseXpCQThFYixhQUFhLHlGQUdiLHNCQUFzQixnREM5Rm5DLDBoRUErQ007MkZEbENPLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsU0FBUzswRUFPWSxNQUFNO3NCQUFwQyxXQUFXO3VCQUFDLFNBQVM7Z0JBT1gsRUFBRTtzQkFEWixLQUFLO2dCQVdVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBR1UsY0FBYztzQkFBN0IsS0FBSztnQkFHVSxTQUFTO3NCQUF4QixLQUFLO2dCQUdVLHlCQUF5QjtzQkFBeEMsS0FBSztnQkFHVSxhQUFhO3NCQUE1QixLQUFLO2dCQU9VLDRCQUE0QjtzQkFBM0MsS0FBSztnQkFHVSxzQkFBc0I7c0JBQXJDLEtBQUs7Z0JBR1UsMkJBQTJCO3NCQUExQyxLQUFLO2dCQUdVLE1BQU07c0JBQXJCLEtBQUs7Z0JBR1UsSUFBSTtzQkFBbkIsS0FBSztnQkFHVSxTQUFTO3NCQUF4QixLQUFLO2dCQUdVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBR1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQU1VLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFHVyxhQUFhO3NCQUE3QixNQUFNO2dCQUdVLG1CQUFtQjtzQkFBbkMsTUFBTTtnQkFHVSxlQUFlO3NCQUEvQixNQUFNO2dCQUcwQixhQUFhO3NCQUE3QyxTQUFTO3VCQUFDLGFBQWE7Z0JBR2tCLHNCQUFzQjtzQkFBL0QsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBRWpCLFlBQVk7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCwgTWVudUl0ZW0sIE1lbnVUZW1wbGF0ZVR5cGUgfSBmcm9tICcuLi8uLi9jb250cm9scy9tZW51L21lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlZEhpZXJhcmNoeUl0ZW0sIEhpZXJhcmNoeUl0ZW0gfSBmcm9tICcuLi9oaWVyYXJjaHkvaGllcmFyY2h5LWJhc2UnO1xyXG5pbXBvcnQgeyBIaWVyYXJjaHlUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi4vaGllcmFyY2h5L2hpZXJhcmNoeS10cmVlL2hpZXJhcmNoeS10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICcuLi92aWV3LW92ZXJsYXkvdmlldy1vdmVybGF5LmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgdHlwZSBUcmVlVHlwZSA9ICdoaWVyYXJjaHknIHwgJ21lbnUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy10cmVlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmVlQ29tcG9uZW50IHtcclxuXHJcbiAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaG9zdCBlbGVtZW50cyBpZCBhdHRyaWJ1dGUgKi9cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBwdWJsaWMgYXR0cklkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIElEIG9mIHRoZSBjb21wb25lbnQsIGJvdW5kIHRvIHRoZSBob3N0IGVsZW1lbnQncyBpZCBhdHRyaWJ1dGUgYW5kIHBhc3NlZFxyXG4gICAqIHRvIGNoaWxkIGNvbXBvbmVudHNcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5faWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuYXR0cklkID0gdmFsdWU7XHJcbiAgfTtcclxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5faWQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2lkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIFRoZSB0cmVlJ3MgdGl0bGUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZVRpdGxlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIEhpZGVzIHRoZSB0cmVlIGhlYWRlciB3aGVuIHNldCB0byB0cnVlICovXHJcbiAgQElucHV0KCkgcHVibGljIGhpZGVUcmVlSGVhZGVyPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogSXRlbXMgdG8gZGlzcGxheSBpbiB0aGUgdHJlZSB3aGVuIHR5cGUgaXMgJ21lbnUnICovXHJcbiAgQElucHV0KCkgcHVibGljIHRyZWVJdGVtcz86IE1lbnVJdGVtW107XHJcblxyXG4gIC8qKiBIaWRlIHRoZSByb290IHRyZWUgaXRlbSB3aGVuIHR5cGUgaXMgJ2hpZXJhcmNoeScgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZUhpZXJhcmNoeUhpZGVSb290Tm9kZT86IGJvb2xlYW47XHJcblxyXG4gIC8qKiBJdGVtcyB0byBkaXNwbGF5IGluIHRoZSB0cmVlIHdoZW4gdHlwZSBpcyAnaGllcmFyY2h5JyAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0cmVlSGllcmFyY2h5PzogSGllcmFyY2h5SXRlbTtcclxuXHJcbiAgLyoqIFVzZWQgd2hlbiB0aGUgdHJlZSBpcyBpbiBtZW51IG1vZGUgdG8gdGVsbCB0aGUgbWVudSBpZiBpdCBzaG91bGQgbWFpbnRhaW4gdGhlIHNlbGVjdGVkIGl0ZW1cclxuICAgKiAgVXNlZnVsIGluIHNpZGUgbmF2IGNvbXBvbmVudHMgd2hlcmUgdGhpcyB0cmVlIGNvbXBvbmVudCBtYXkgZXhpc3QgYWxvbmdzaWRlIG90aGVyIHRyZWVzIG9yIG1lbnVzXHJcbiAgICogIHVzZWQgZm9yIG5hdmlnYXRpb24uIElmIHRoaXMgdHJlZSBpcyBpbiBtZW51IG1vZGUgeW91IHdvdWxkIHdhbnQgdGhpcyBzZXQgdG8gZmFsc2Ugc28gd2hlbiB5b3Ugc2VsZWN0IGFuIGl0ZW1cclxuICAgKiAgZnJvbSBhIHNpYmxpbmcgbmF2aWdhdGlvbiBlbGVtZW50IHRoZSBzZWxlY3Rpb24gd2lsbCBub3QgYmUgbWFpbnRhaW5lZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZU1lbnVNYWludGFpblNlbGVjdGVkSXRlbTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKiBVc2VkIHdoZW4gYSBjdXN0b20gdGVtcGxhdGUgaXMgbmVlZGVkIGZvciB0aGUgbWVudSBpdGVtcyB3aGVuIHRoZSB0cmVlIGlzIGluIG1lbnUgbW9kZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21UcmVlTWVudVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqIFVzZWQgd2hlbiBhIGN1c3RvbSB0ZW1wbGF0ZSBpcyBuZWVkZWQgZm9yIHRoZSBoaWVyYXJjaHkgaXRlbXMgd2hlbiB0aGUgdHJlZSBpcyBpbiBoaWVyYXJjaHkgbW9kZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21IaWVyYXJjaHlJdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKiogVHJlZSBvdmVybGF5ICovXHJcbiAgQElucHV0KCkgcHVibGljIHN0YXR1cz86IE92ZXJsYXkgPSBuZXcgT3ZlcmxheSgnaGFzRGF0YScpO1xyXG5cclxuICAvKiogRGlzcGxheSB0aGUgdHJlZSBpdGVtcyB3aXRoIGEgTWVudUNvbXBvbmVudCBvciBhIEhpZXJhcmNoeVRyZWVDb21wb25lbnQgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHlwZT86IFRyZWVUeXBlID0gJ2hpZXJhcmNoeSc7XHJcblxyXG4gIC8qKiBJdGVtcyB0byBkaXNwbGF5IGluIHRoZSBkcm9wZG93biBtZW51ICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVJdGVtcz86IE1lbnVJdGVtW107XHJcblxyXG4gIC8qKiBUcmVlIGRyb3Bkb3duIG1lbnUgb3ZlcmxheSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51U3RhdHVzPzogT3ZlcmxheSA9IG5ldyBPdmVybGF5KCdoYXNEYXRhJyk7XHJcblxyXG4gIC8qKiBUaGUgbWVudSBpdGVtIHRlbXBsYXRlICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVUZW1wbGF0ZVR5cGU/OiBNZW51VGVtcGxhdGVUeXBlID0gXCJjaGVja0FuZExhYmVsXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIHNwYWNlIGZvciB0aGUgaWNvbiBpcyBwcmVzZXJ2ZWQgZm9yIG1lbnUgaXRlbXMgdGhhdCBkbyBub3QgaGF2ZSBpY29ucy5cclxuICAgKiBPbmx5IGFwcGxpY2FibGUgZm9yIGljb25BbmRMYWJlbCBtZW51cy4gTm90IGFwcGxpY2FibGUgdG8gaGllcmFyY2h5IHRyZWVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwcmVzZXJ2ZUljb25TcGFjZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogRW1pdHMgdGhlIGl0ZW0gY3VycmVudGx5IHNlbGVjdGVkIGl0ZW0gaW4gdGhlIHRyZWUgKi9cclxuICBAT3V0cHV0KCkgcHVibGljIHRyZWVTZWxlY3Rpb246IEV2ZW50RW1pdHRlcjxNZW51SXRlbSB8IEhpZXJhcmNoeUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGhpZXJhcmNoeSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQgYXMgYSBob29rIHRvIGxvYWQgdGhlIGl0ZW0ncyBjaGlsZHJlbiAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZ2V0VHJlZUl0ZW1DaGlsZHJlbjogRXZlbnRFbWl0dGVyPEhpZXJhcmNoeUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGhpZXJhcmNoeSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyB0cmVlSXRlbVRvZ2dsZWQ6IEV2ZW50RW1pdHRlcjxUb2dnbGVkSGllcmFyY2h5SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRvZ2dsZWRIaWVyYXJjaHlJdGVtPigpO1xyXG5cclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBNZW51Q29tcG9uZW50IGluc3RhbmNlIGluIHRoZSB0ZW1wbGF0ZSAqL1xyXG4gIEBWaWV3Q2hpbGQoTWVudUNvbXBvbmVudCkgcHVibGljIG1lbnVDb21wb25lbnQ/OiBNZW51Q29tcG9uZW50O1xyXG5cclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBIaWVyYXJjaHlUcmVlQ29tcG9uZW50IGluc3RhbmNlIGluIHRoZSB0ZW1wbGF0ZSAqL1xyXG4gIEBWaWV3Q2hpbGQoSGllcmFyY2h5VHJlZUNvbXBvbmVudCkgcHVibGljIGhpZXJhcmNoeVRyZWVDb21wb25lbnQ/OiBIaWVyYXJjaHlUcmVlQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgdGVtcGxhdGVUeXBlOiBNZW51VGVtcGxhdGVUeXBlID0gJ2xhYmVsJztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gYSB0cmVlIGl0ZW0gaXMgc2VsZWN0ZWQgKi9cclxuICBwdWJsaWMgb25JdGVtU2VsZWN0ZWQoaXRlbTogTWVudUl0ZW0gfCBIaWVyYXJjaHlJdGVtKSB7XHJcbiAgICB0aGlzLnRyZWVTZWxlY3Rpb24uZW1pdChpdGVtKTtcclxuICB9XHJcblxyXG4gIC8qKiBFbWl0cyB3aGVuIGEgaGllcmFyY2h5IHRyZWUgaXRlbSBpcyBleHBhbmRlZCB0byBsb2FkIHRoZSBpdGVtJ3MgY2hpbGRyZW4gKi9cclxuICBwdWJsaWMgb25IaWVyYXJjaHlHZXRJdGVtQ2hpbGRyZW4oaXRlbTogSGllcmFyY2h5SXRlbSkge1xyXG4gICAgdGhpcy5nZXRUcmVlSXRlbUNoaWxkcmVuLmVtaXQoaXRlbSk7XHJcbiAgfVxyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGhpZXJhcmNoeSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkICovXHJcbiAgcHVibGljIG9uSGllcmFyY2h5SXRlbVRvZ2dsZWQoaXRlbTogVG9nZ2xlZEhpZXJhcmNoeUl0ZW0pIHtcclxuICAgIHRoaXMudHJlZUl0ZW1Ub2dnbGVkLmVtaXQoaXRlbSk7XHJcbiAgfVxyXG5cclxuICAvKiogU2Nyb2xsIHRvIHRoZSB0cmVlIGl0ZW0gdGhhdCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQuICovXHJcbiAgcHVibGljIHNjcm9sbFRvU2VsZWN0ZWRJdGVtKCkge1xyXG4gICAgaWYgKHRoaXMubWVudUNvbXBvbmVudCkge1xyXG4gICAgICB0aGlzLm1lbnVDb21wb25lbnQuc2Nyb2xsVG9TZWxlY3RlZEl0ZW0oKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oaWVyYXJjaHlUcmVlQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMuaGllcmFyY2h5VHJlZUNvbXBvbmVudC5zY3JvbGxUb1NlbGVjdGVkSXRlbSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyICpuZ0lmPVwiIWhpZGVUcmVlSGVhZGVyXCJcclxuICAgICAgICBjbGFzcz1cImZsZXgtc2hyaW5rIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICA8aDIgaWQ9XCJ7e2lkfX1fdGl0bGVcIlxyXG4gICAgICBjbGFzcz1cImZsZXgtZ3JvdyBtci0yIHRleHQtaGVhZGluZy0xXCI+e3t0cmVlVGl0bGUgfCB0cmFuc2xhdGV9fTwvaDI+XHJcbiAgPGVjLWRyb3Bkb3duICpuZ0lmPVwibWVudUl0ZW1zPy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICBpZD1cInt7aWR9fV9kcm9wZG93blwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmtcIlxyXG4gICAgICAgICAgICAgICBpY29uPVwiaWNvbi1tZW51XCJcclxuICAgICAgICAgICAgICAgW21lbnVUZW1wbGF0ZVR5cGVdPVwibWVudVRlbXBsYXRlVHlwZVwiXHJcbiAgICAgICAgICAgICAgIG1lbnVQb3NpdGlvbj1cImxlZnRcIlxyXG4gICAgICAgICAgICAgICBbc3RhdHVzXT1cIm1lbnVTdGF0dXNcIlxyXG4gICAgICAgICAgICAgICBbcG9wdXBGaXhlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgW3Nob3dBcnJvd109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgIFttZW51TWluV2lkdGhdPVwiMjQwXCJcclxuICAgICAgICAgICAgICAgW2l0ZW1zXT1cIm1lbnVJdGVtc1wiPlxyXG4gIDwvZWMtZHJvcGRvd24+XHJcbjwvaGVhZGVyPlxyXG5cclxuPGRpdiBjbGFzcz1cImZsZXgtZ3JvdyBkLWZsZXhcIlxyXG4gICAgIGVjT3ZlcmxheVxyXG4gICAgIFtzdGF0dXNdPVwic3RhdHVzPy5zdGF0dXNcIlxyXG4gICAgIFttZXNzYWdlXT1cInN0YXR1cz8ubWVzc2FnZVwiXHJcbiAgICAgW2Rpc3BsYXlBc01hc2tdPVwidHJ1ZVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnbWVudSdcIj5cclxuICAgIDxlYy1tZW51IFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICBbaXRlbXNdPVwidHJlZUl0ZW1zXCJcclxuICAgICAgICAgICAgIFt0ZW1wbGF0ZVR5cGVdPVwidGVtcGxhdGVUeXBlXCJcclxuICAgICAgICAgICAgIFttYWludGFpblNlbGVjdGVkSXRlbV09XCJ0cmVlTWVudU1haW50YWluU2VsZWN0ZWRJdGVtXCJcclxuICAgICAgICAgICAgIFt0cnVuY2F0ZUl0ZW1zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlZCk9XCJvbkl0ZW1TZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIFtjdXN0b21NZW51VGVtcGxhdGVdPVwiY3VzdG9tVHJlZU1lbnVUZW1wbGF0ZSA/IGN1c3RvbVRyZWVNZW51VGVtcGxhdGUgOiB1bmRlZmluZWRcIlxyXG4gICAgICAgICAgICAgW3ByZXNlcnZlSWNvblNwYWNlXT1cInByZXNlcnZlSWNvblNwYWNlXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93XCI+XHJcbiAgICA8L2VjLW1lbnU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnaGllcmFyY2h5J1wiPlxyXG4gICAgPGVjLWhpZXJhcmNoeS10cmVlIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3Jvb3ROb2RlXT1cInRyZWVIaWVyYXJjaHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtoaWRlUm9vdE5vZGVdPVwidHJlZUhpZXJhcmNoeUhpZGVSb290Tm9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGdldEl0ZW1DaGlsZHJlbik9XCJvbkhpZXJhcmNoeUdldEl0ZW1DaGlsZHJlbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoaXRlbVRvZ2dsZWQpPVwib25IaWVyYXJjaHlJdGVtVG9nZ2xlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoaXRlbVNlbGVjdGVkKT1cIm9uSXRlbVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21JdGVtVGVtcGxhdGVdPVwiY3VzdG9tSGllcmFyY2h5SXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3JvdyBkLWZsZXhcIj5cclxuICAgIDwvZWMtaGllcmFyY2h5LXRyZWU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==
|
@@ -1,58 +0,0 @@
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
import * as i1 from "@angular/common";
|
4
|
-
import * as i2 from "../../controls/button/button.component";
|
5
|
-
import * as i3 from "../spinner/spinner.component";
|
6
|
-
import * as i4 from "@ngx-translate/core";
|
7
|
-
export class Overlay {
|
8
|
-
constructor(status, message) {
|
9
|
-
this.status = 'hasData';
|
10
|
-
this.message = '';
|
11
|
-
this.setStatus(status, message);
|
12
|
-
}
|
13
|
-
setStatus(status, message, action, noDataTemplate, overlayClassList) {
|
14
|
-
this.status = status;
|
15
|
-
this.message = message || '';
|
16
|
-
this.action = action || undefined;
|
17
|
-
this.noDataTemplate = noDataTemplate || undefined;
|
18
|
-
this.overlayClassList = overlayClassList || '';
|
19
|
-
}
|
20
|
-
}
|
21
|
-
/**
|
22
|
-
* Wraps content in order to show pending, error, and no data states with an optional message/noDataTemplate
|
23
|
-
*/
|
24
|
-
export class ViewOverlayComponent {
|
25
|
-
constructor() {
|
26
|
-
this.status = 'hasData';
|
27
|
-
}
|
28
|
-
setStatus(status, message, action, noDataTemplate) {
|
29
|
-
this.status = status;
|
30
|
-
this.message = message || '';
|
31
|
-
this.action = action || undefined;
|
32
|
-
this.noDataTemplate = noDataTemplate || undefined;
|
33
|
-
}
|
34
|
-
actionClicked(event) {
|
35
|
-
if (this.action && this.action.onClick) {
|
36
|
-
this.action.onClick(event);
|
37
|
-
}
|
38
|
-
}
|
39
|
-
}
|
40
|
-
ViewOverlayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
41
|
-
ViewOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ViewOverlayComponent, selector: "[ecOverlay]", inputs: { status: "status", message: "message", action: "action", noDataTemplate: "noDataTemplate", displayAsMask: "displayAsMask", overlayClassList: "overlayClassList" }, ngImport: i0, template: "<!-- Transcluded Content -->\r\n<ng-content *ngIf=\"displayAsMask || (!displayAsMask && status === 'hasData')\"></ng-content>\r\n<!--Used by GI tests to know the overlay status whether we use ngIf or mask version. No visual impact-->\r\n<span [hidden]=\"true\"\r\n\t class=\"overlay-status-{{status}}\"></span>\r\n<!-- Overlay goes last so it is rendered on top of preceding content due to source order -->\r\n<div *ngIf=\"status !== 'hasData'\"\r\n\t class=\"overlay flex-grow {{overlayClassList}}\"\r\n\t [ngClass]=\"{'not-mask': !displayAsMask,\r\n\t\t\t\t'overlay-error': status === 'error',\r\n\t\t\t\t'overlay-nodata': status === 'noData',\r\n\t\t\t\t'overlay-pending': status === 'pending'}\">\r\n\r\n\t<!--Pending Spinner-->\r\n\t<ec-spinner [hidden]=\"status !== 'pending'\"></ec-spinner>\r\n\r\n\t<ng-template [ngIf]=\"status === 'noData' && noDataTemplate\">\r\n\t\t<ng-container *ngTemplateOutlet=\"noDataTemplate\"></ng-container>\r\n\t</ng-template>\r\n\r\n\t<ng-container *ngIf=\"(status === 'noData' && !noDataTemplate) || status !== 'noData'\">\r\n\t\t<!--Status Message-->\r\n\t\t<div id=\"statusMessage\"\r\n\t\t\t class=\"message\"\r\n\t\t\t *ngIf=\"message\"\r\n\t\t\t [ngClass]=\"{'error': status === 'error', 'mt-1': status === 'pending'}\"\r\n\t\t\t [innerHtml]=\"message | translate\">\r\n\t\t</div>\r\n\r\n\t\t<!-- Action -->\r\n\t\t<ec-button type=\"common\"\r\n\t\t\t\t class=\"mt-3\"\r\n\t\t\t\t *ngIf=\"action?.onClick\"\r\n\t\t\t\t [icon]=\"action?.icon\"\r\n\t\t\t\t (clicked)=\"actionClicked($event)\"\r\n\t\t\t\t [label]=\"action?.label\"\r\n\t\t\t\t [hidden]=\"status === 'pending'\">\r\n\t\t</ec-button>\r\n\t</ng-container>\r\n\r\n</div>", styles: [":host{position:relative}:host(.bg-body)>.overlay{background-color:var(--ec-background-color-body)}:host(.bg-body).is-translucent>.overlay{background-color:var(--ec-background-color-overlay)}:host(.bg-content)>.overlay{background-color:var(--ec-background-color)}:host(.bg-content).is-translucent>.overlay{background-color:var(--ec-background-color-overlay)}.overlay{align-items:center;background-color:var(--ec-overlay-background-color, var(--ec-background-color));display:flex;flex-direction:column;justify-content:center;padding:3rem 4rem;z-index:var(--ec-z-index-overlay);position:absolute;inset:0}.overlay.not-mask{position:relative;min-height:100%}.message{color:var(--ec-color-secondary-dark);font-size:var(--ec-font-size-title)}.message.error{color:var(--ec-color-danger);font-size:var(--ec-font-size-title)}\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.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "ec-button", inputs: ["id", "disabled", "icon", "label", "badge", "tabindex", "type", "pending", "pendingIcon", "customTemplate", "isSubmit", "autofocus"], outputs: ["clicked"] }, { kind: "component", type: i3.SpinnerComponent, selector: "ec-spinner" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewOverlayComponent, decorators: [{
|
43
|
-
type: Component,
|
44
|
-
args: [{ selector: '[ecOverlay]', template: "<!-- Transcluded Content -->\r\n<ng-content *ngIf=\"displayAsMask || (!displayAsMask && status === 'hasData')\"></ng-content>\r\n<!--Used by GI tests to know the overlay status whether we use ngIf or mask version. No visual impact-->\r\n<span [hidden]=\"true\"\r\n\t class=\"overlay-status-{{status}}\"></span>\r\n<!-- Overlay goes last so it is rendered on top of preceding content due to source order -->\r\n<div *ngIf=\"status !== 'hasData'\"\r\n\t class=\"overlay flex-grow {{overlayClassList}}\"\r\n\t [ngClass]=\"{'not-mask': !displayAsMask,\r\n\t\t\t\t'overlay-error': status === 'error',\r\n\t\t\t\t'overlay-nodata': status === 'noData',\r\n\t\t\t\t'overlay-pending': status === 'pending'}\">\r\n\r\n\t<!--Pending Spinner-->\r\n\t<ec-spinner [hidden]=\"status !== 'pending'\"></ec-spinner>\r\n\r\n\t<ng-template [ngIf]=\"status === 'noData' && noDataTemplate\">\r\n\t\t<ng-container *ngTemplateOutlet=\"noDataTemplate\"></ng-container>\r\n\t</ng-template>\r\n\r\n\t<ng-container *ngIf=\"(status === 'noData' && !noDataTemplate) || status !== 'noData'\">\r\n\t\t<!--Status Message-->\r\n\t\t<div id=\"statusMessage\"\r\n\t\t\t class=\"message\"\r\n\t\t\t *ngIf=\"message\"\r\n\t\t\t [ngClass]=\"{'error': status === 'error', 'mt-1': status === 'pending'}\"\r\n\t\t\t [innerHtml]=\"message | translate\">\r\n\t\t</div>\r\n\r\n\t\t<!-- Action -->\r\n\t\t<ec-button type=\"common\"\r\n\t\t\t\t class=\"mt-3\"\r\n\t\t\t\t *ngIf=\"action?.onClick\"\r\n\t\t\t\t [icon]=\"action?.icon\"\r\n\t\t\t\t (clicked)=\"actionClicked($event)\"\r\n\t\t\t\t [label]=\"action?.label\"\r\n\t\t\t\t [hidden]=\"status === 'pending'\">\r\n\t\t</ec-button>\r\n\t</ng-container>\r\n\r\n</div>", styles: [":host{position:relative}:host(.bg-body)>.overlay{background-color:var(--ec-background-color-body)}:host(.bg-body).is-translucent>.overlay{background-color:var(--ec-background-color-overlay)}:host(.bg-content)>.overlay{background-color:var(--ec-background-color)}:host(.bg-content).is-translucent>.overlay{background-color:var(--ec-background-color-overlay)}.overlay{align-items:center;background-color:var(--ec-overlay-background-color, var(--ec-background-color));display:flex;flex-direction:column;justify-content:center;padding:3rem 4rem;z-index:var(--ec-z-index-overlay);position:absolute;inset:0}.overlay.not-mask{position:relative;min-height:100%}.message{color:var(--ec-color-secondary-dark);font-size:var(--ec-font-size-title)}.message.error{color:var(--ec-color-danger);font-size:var(--ec-font-size-title)}\n"] }]
|
45
|
-
}], propDecorators: { status: [{
|
46
|
-
type: Input
|
47
|
-
}], message: [{
|
48
|
-
type: Input
|
49
|
-
}], action: [{
|
50
|
-
type: Input
|
51
|
-
}], noDataTemplate: [{
|
52
|
-
type: Input
|
53
|
-
}], displayAsMask: [{
|
54
|
-
type: Input
|
55
|
-
}], overlayClassList: [{
|
56
|
-
type: Input
|
57
|
-
}] } });
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3ZpZXctb3ZlcmxheS92aWV3LW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdmlldy1vdmVybGF5L3ZpZXctb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBSTlELE1BQU0sT0FBTyxPQUFPO0lBV2xCLFlBQVksTUFBa0IsRUFBRSxPQUFnQjtRQU5oRCxXQUFNLEdBQWUsU0FBUyxDQUFDO1FBQy9CLFlBQU8sR0FBWSxFQUFFLENBQUM7UUFNcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELFNBQVMsQ0FBQyxNQUFrQixFQUFFLE9BQWdCLEVBQUUsTUFBZ0IsRUFBRSxjQUFpQyxFQUFFLGdCQUF5QjtRQUM1SCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxJQUFJLFNBQVMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksRUFBRSxDQUFDO0lBQ2pELENBQUM7Q0FDRjtBQUdEOztHQUVHO0FBTUgsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQU1XLFdBQU0sR0FBZSxTQUFTLENBQUM7S0E2QnpDO0lBWkMsU0FBUyxDQUFDLE1BQWtCLEVBQUUsT0FBZ0IsRUFBRSxNQUFnQixFQUFFLGNBQWlDO1FBQ2pHLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLElBQUksU0FBUyxDQUFDO0lBQ3BELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDOztpSEE3QlUsb0JBQW9CO3FHQUFwQixvQkFBb0IsK05DcENqQyx5cERBd0NNOzJGREpPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxhQUFhOzhCQUtkLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFLRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZJdGVtIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvbmF2aWdhdGlvbi9uYXYtaXRlbSc7XHJcbmltcG9ydCB7IERpc3BsYXlTdGF0dXMsIFZpZXdTdGF0dXMgfSBmcm9tICcuLi8uLi9zaGFyZWQvZGlzcGxheSc7XHJcblxyXG5leHBvcnQgY2xhc3MgT3ZlcmxheSBpbXBsZW1lbnRzIERpc3BsYXlTdGF0dXMge1xyXG4gIC8qKiAgQGRlcHJlY2F0ZWQgRGVwcmVjYXRlZCBkdWUgdG8gbm9EYXRhVGVtcGxhdGUgYmVpbmcgcHJlZmVyZWQgKi9cclxuICBhY3Rpb24/OiBOYXZJdGVtO1xyXG4gIG5vRGF0YVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICBkaXNwbGF5QXNNYXNrPzogYm9vbGVhbjtcclxuICBzdGF0dXM6IFZpZXdTdGF0dXMgPSAnaGFzRGF0YSc7XHJcbiAgbWVzc2FnZT86IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKiogQWRkaXRpb24gY3NzIGNsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIC5vdmVybGF5IGVsZW1lbnQgKi9cclxuICBvdmVybGF5Q2xhc3NMaXN0Pzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihzdGF0dXM6IFZpZXdTdGF0dXMsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2V0U3RhdHVzKHN0YXR1cywgbWVzc2FnZSk7XHJcbiAgfVxyXG4gIHNldFN0YXR1cyhzdGF0dXM6IFZpZXdTdGF0dXMsIG1lc3NhZ2U/OiBzdHJpbmcsIGFjdGlvbj86IE5hdkl0ZW0sIG5vRGF0YVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55Piwgb3ZlcmxheUNsYXNzTGlzdD86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XHJcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlIHx8ICcnO1xyXG4gICAgdGhpcy5hY3Rpb24gPSBhY3Rpb24gfHwgdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5ub0RhdGFUZW1wbGF0ZSA9IG5vRGF0YVRlbXBsYXRlIHx8IHVuZGVmaW5lZDtcclxuICAgIHRoaXMub3ZlcmxheUNsYXNzTGlzdCA9IG92ZXJsYXlDbGFzc0xpc3QgfHwgJyc7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFdyYXBzIGNvbnRlbnQgaW4gb3JkZXIgdG8gc2hvdyBwZW5kaW5nLCBlcnJvciwgYW5kIG5vIGRhdGEgc3RhdGVzIHdpdGggYW4gb3B0aW9uYWwgbWVzc2FnZS9ub0RhdGFUZW1wbGF0ZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdbZWNPdmVybGF5XScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdmlldy1vdmVybGF5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFZpZXdPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgT3ZlcmxheSB7XHJcbiAgQElucHV0KCkgc3RhdHVzOiBWaWV3U3RhdHVzID0gJ2hhc0RhdGEnO1xyXG4gIEBJbnB1dCgpIG1lc3NhZ2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKiAgQGRlcHJlY2F0ZWQgRGVwcmVjYXRlZCBkdWUgdG8gbm9EYXRhVGVtcGxhdGUgYmVpbmcgcHJlZmVyZWQgKi9cclxuICBASW5wdXQoKSBhY3Rpb24/OiBOYXZJdGVtIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIG5vRGF0YVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqXHJcbiAgICogTWFzayAobm90IHJlbW92ZSkgdGhlIHRyYW5zY2x1ZGVkIGNvbnRlbnQgZnJvbSB0aGUgZG9tIHdoaWxlIG5vdCBoYXNEYXRhIHN0YXR1cy5cclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5QXNNYXNrPzogYm9vbGVhbjtcclxuXHJcbiAgLyoqIFxyXG4gICAqIEFkZGl0aW9uYWwgY3NzIGNsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIC5vdmVybGF5IGVsZW1lbnQgXHJcbiAgICovXHJcbiAgQElucHV0KCkgb3ZlcmxheUNsYXNzTGlzdD86IHN0cmluZztcclxuXHJcbiAgc2V0U3RhdHVzKHN0YXR1czogVmlld1N0YXR1cywgbWVzc2FnZT86IHN0cmluZywgYWN0aW9uPzogTmF2SXRlbSwgbm9EYXRhVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcclxuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2UgfHwgJyc7XHJcbiAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbiB8fCB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLm5vRGF0YVRlbXBsYXRlID0gbm9EYXRhVGVtcGxhdGUgfHwgdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgYWN0aW9uQ2xpY2tlZChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hY3Rpb24gJiYgdGhpcy5hY3Rpb24ub25DbGljaykge1xyXG4gICAgICB0aGlzLmFjdGlvbi5vbkNsaWNrKGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPCEtLSBUcmFuc2NsdWRlZCBDb250ZW50IC0tPlxyXG48bmctY29udGVudCAqbmdJZj1cImRpc3BsYXlBc01hc2sgfHwgKCFkaXNwbGF5QXNNYXNrICYmIHN0YXR1cyA9PT0gJ2hhc0RhdGEnKVwiPjwvbmctY29udGVudD5cclxuPCEtLVVzZWQgYnkgR0kgdGVzdHMgdG8ga25vdyB0aGUgb3ZlcmxheSBzdGF0dXMgd2hldGhlciB3ZSB1c2UgbmdJZiBvciBtYXNrIHZlcnNpb24uIE5vIHZpc3VhbCBpbXBhY3QtLT5cclxuPHNwYW4gW2hpZGRlbl09XCJ0cnVlXCJcclxuXHQgIGNsYXNzPVwib3ZlcmxheS1zdGF0dXMte3tzdGF0dXN9fVwiPjwvc3Bhbj5cclxuPCEtLSBPdmVybGF5IGdvZXMgbGFzdCBzbyBpdCBpcyByZW5kZXJlZCBvbiB0b3Agb2YgcHJlY2VkaW5nIGNvbnRlbnQgZHVlIHRvIHNvdXJjZSBvcmRlciAtLT5cclxuPGRpdiAqbmdJZj1cInN0YXR1cyAhPT0gJ2hhc0RhdGEnXCJcclxuXHQgY2xhc3M9XCJvdmVybGF5IGZsZXgtZ3JvdyB7e292ZXJsYXlDbGFzc0xpc3R9fVwiXHJcblx0IFtuZ0NsYXNzXT1cInsnbm90LW1hc2snOiAhZGlzcGxheUFzTWFzayxcclxuXHRcdFx0XHQnb3ZlcmxheS1lcnJvcic6IHN0YXR1cyA9PT0gJ2Vycm9yJyxcclxuXHRcdFx0XHQnb3ZlcmxheS1ub2RhdGEnOiBzdGF0dXMgPT09ICdub0RhdGEnLFxyXG5cdFx0XHRcdCdvdmVybGF5LXBlbmRpbmcnOiBzdGF0dXMgPT09ICdwZW5kaW5nJ31cIj5cclxuXHJcblx0PCEtLVBlbmRpbmcgU3Bpbm5lci0tPlxyXG5cdDxlYy1zcGlubmVyIFtoaWRkZW5dPVwic3RhdHVzICE9PSAncGVuZGluZydcIj48L2VjLXNwaW5uZXI+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzdGF0dXMgPT09ICdub0RhdGEnICYmIG5vRGF0YVRlbXBsYXRlXCI+XHJcblx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9EYXRhVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHQ8bmctY29udGFpbmVyICpuZ0lmPVwiKHN0YXR1cyA9PT0gJ25vRGF0YScgJiYgIW5vRGF0YVRlbXBsYXRlKSB8fCBzdGF0dXMgIT09ICdub0RhdGEnXCI+XHJcblx0XHQ8IS0tU3RhdHVzIE1lc3NhZ2UtLT5cclxuXHRcdDxkaXYgaWQ9XCJzdGF0dXNNZXNzYWdlXCJcclxuXHRcdFx0IGNsYXNzPVwibWVzc2FnZVwiXHJcblx0XHRcdCAqbmdJZj1cIm1lc3NhZ2VcIlxyXG5cdFx0XHQgW25nQ2xhc3NdPVwieydlcnJvcic6IHN0YXR1cyA9PT0gJ2Vycm9yJywgJ210LTEnOiBzdGF0dXMgPT09ICdwZW5kaW5nJ31cIlxyXG5cdFx0XHQgW2lubmVySHRtbF09XCJtZXNzYWdlIHwgdHJhbnNsYXRlXCI+XHJcblx0XHQ8L2Rpdj5cclxuXHJcblx0XHQ8IS0tIEFjdGlvbiAtLT5cclxuXHRcdDxlYy1idXR0b24gdHlwZT1cImNvbW1vblwiXHJcblx0XHRcdFx0ICAgY2xhc3M9XCJtdC0zXCJcclxuXHRcdFx0XHQgICAqbmdJZj1cImFjdGlvbj8ub25DbGlja1wiXHJcblx0XHRcdFx0ICAgW2ljb25dPVwiYWN0aW9uPy5pY29uXCJcclxuXHRcdFx0XHQgICAoY2xpY2tlZCk9XCJhY3Rpb25DbGlja2VkKCRldmVudClcIlxyXG5cdFx0XHRcdCAgIFtsYWJlbF09XCJhY3Rpb24/LmxhYmVsXCJcclxuXHRcdFx0XHQgICBbaGlkZGVuXT1cInN0YXR1cyA9PT0gJ3BlbmRpbmcnXCI+XHJcblx0XHQ8L2VjLWJ1dHRvbj5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcbjwvZGl2PiJdfQ==
|
@@ -1,32 +0,0 @@
|
|
1
|
-
import { Directive, Input, HostListener, HostBinding } from '@angular/core';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
export class ClickAreaForDirective {
|
4
|
-
constructor() { }
|
5
|
-
ngOnInit() {
|
6
|
-
this.isTargetClickable = typeof this.targetEl?.dispatchEvent === 'function';
|
7
|
-
}
|
8
|
-
onClick(event) {
|
9
|
-
if (this.isTargetClickable) {
|
10
|
-
event.preventDefault();
|
11
|
-
this.targetEl.dispatchEvent(new Event('click'));
|
12
|
-
}
|
13
|
-
}
|
14
|
-
}
|
15
|
-
ClickAreaForDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ClickAreaForDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
16
|
-
ClickAreaForDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ClickAreaForDirective, selector: "[ecClickAreaFor]", inputs: { targetEl: ["ecClickAreaFor", "targetEl"] }, host: { listeners: { "click": "onClick($event)" }, properties: { "class.cursor-pointer": "this.targetEl" } }, ngImport: i0 });
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ClickAreaForDirective, decorators: [{
|
18
|
-
type: Directive,
|
19
|
-
args: [{
|
20
|
-
selector: '[ecClickAreaFor]'
|
21
|
-
}]
|
22
|
-
}], ctorParameters: function () { return []; }, propDecorators: { targetEl: [{
|
23
|
-
type: HostBinding,
|
24
|
-
args: ['class.cursor-pointer']
|
25
|
-
}, {
|
26
|
-
type: Input,
|
27
|
-
args: ['ecClickAreaFor']
|
28
|
-
}], onClick: [{
|
29
|
-
type: HostListener,
|
30
|
-
args: ['click', ['$event']]
|
31
|
-
}] } });
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stYXJlYS1mb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC9kaXJlY3RpdmVzL2NsaWNrLWFyZWEtZm9yL2NsaWNrLWFyZWEtZm9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQVNwRixNQUFNLE9BQU8scUJBQXFCO0lBUWhDLGdCQUFlLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsYUFBYSxLQUFLLFVBQVUsQ0FBQztJQUM5RSxDQUFDO0lBRWtDLE9BQU8sQ0FBQyxLQUFZO1FBQ3JELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQzs7a0hBbkJVLHFCQUFxQjtzR0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7MEVBS1EsUUFBUTtzQkFGZCxXQUFXO3VCQUFDLHNCQUFzQjs7c0JBQ2xDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQVdZLE9BQU87c0JBQXpDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgSG9zdExpc3RlbmVyLCBIb3N0QmluZGluZywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENsaWNrYWJsZUVsZW1lbnQge1xyXG4gIGRpc3BhdGNoRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZDtcclxufVxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZWNDbGlja0FyZWFGb3JdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2xpY2tBcmVhRm9yRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jdXJzb3ItcG9pbnRlcicpXHJcbiAgQElucHV0KCdlY0NsaWNrQXJlYUZvcicpIFxyXG4gIHB1YmxpYyB0YXJnZXRFbD86IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBpc1RhcmdldENsaWNrYWJsZSE6IGJvb2xlYW47XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaXNUYXJnZXRDbGlja2FibGUgPSB0eXBlb2YgdGhpcy50YXJnZXRFbD8uZGlzcGF0Y2hFdmVudCA9PT0gJ2Z1bmN0aW9uJztcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSkgb25DbGljayhldmVudDogRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmlzVGFyZ2V0Q2xpY2thYmxlKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMudGFyZ2V0RWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NsaWNrJykpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -1,111 +0,0 @@
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
2
|
-
import { Subject } from 'rxjs';
|
3
|
-
import { debounceTime, takeUntil } from 'rxjs/operators';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "../../../core/window.service";
|
6
|
-
/**
|
7
|
-
* Conditionally include content in the DOM based on the width of the viewport. Use to programmatically implement reponsive layouts and prevent duplicate markup and listeners.
|
8
|
-
* In most scenarios CSS media queries is sufficient to hide/show elements responsively. However, in some cases media queries would result in duplicate markup and listeners
|
9
|
-
* that could cause undesired side effects and it is preferred to us programmatic elements to achieve the layout.
|
10
|
-
*/
|
11
|
-
export class IfViewportWidthDirective {
|
12
|
-
constructor(viewContainer, templateRef, windowService) {
|
13
|
-
this.viewContainer = viewContainer;
|
14
|
-
this.templateRef = templateRef;
|
15
|
-
this.windowService = windowService;
|
16
|
-
/**
|
17
|
-
* Used to unsubscribe when the directive is removed from the DOM
|
18
|
-
*/
|
19
|
-
this.destroyed = new Subject();
|
20
|
-
/**
|
21
|
-
* Internally tracks whether the directive and its content is included in the DOM
|
22
|
-
*/
|
23
|
-
this.isVisible = false;
|
24
|
-
}
|
25
|
-
ngOnInit() {
|
26
|
-
// Window may not available if this code is not being run on a browser platform.
|
27
|
-
// If there is no window or innerWidth abort initialization
|
28
|
-
if (this.windowService.innerWidth === undefined) {
|
29
|
-
return;
|
30
|
-
}
|
31
|
-
// Check for required values. If none are set, log error and abort initialization
|
32
|
-
if (!this.width) {
|
33
|
-
console.error(`A min or max width was not provided. Provide a value for 'min' or 'max' by assigning a single value or object to the directive. E.g. *ecIfViewportWidth="800" (assigned to min) or *ecIfViewportWidth="{min: 800, max: 1280}"`);
|
34
|
-
return;
|
35
|
-
}
|
36
|
-
else if (typeof this.width === 'number') {
|
37
|
-
this.minWidth = this.width;
|
38
|
-
}
|
39
|
-
else if (this.width !== undefined) {
|
40
|
-
this.minWidth = this.width.min;
|
41
|
-
this.maxWidth = this.width.max;
|
42
|
-
}
|
43
|
-
if (this.windowService.resized) {
|
44
|
-
this.windowService.resized.pipe(debounceTime(100), takeUntil(this.destroyed)).subscribe(() => {
|
45
|
-
this.updateVisibility();
|
46
|
-
});
|
47
|
-
}
|
48
|
-
this.updateVisibility();
|
49
|
-
}
|
50
|
-
/**
|
51
|
-
* Get the current viewport width and determin if the directive's content should be
|
52
|
-
* included in the DOM based on the min and max width settings
|
53
|
-
*/
|
54
|
-
updateVisibility() {
|
55
|
-
const viewportWidth = this.windowService.innerWidth;
|
56
|
-
if (this.minWidth !== undefined && this.maxWidth !== undefined) {
|
57
|
-
if (viewportWidth >= this.minWidth && viewportWidth <= this.maxWidth) {
|
58
|
-
this.show();
|
59
|
-
}
|
60
|
-
else {
|
61
|
-
this.hide();
|
62
|
-
}
|
63
|
-
}
|
64
|
-
else if (this.minWidth !== undefined) {
|
65
|
-
if (viewportWidth >= this.minWidth) {
|
66
|
-
this.show();
|
67
|
-
}
|
68
|
-
else {
|
69
|
-
this.hide();
|
70
|
-
}
|
71
|
-
}
|
72
|
-
else if (this.maxWidth !== undefined) {
|
73
|
-
if (viewportWidth <= this.maxWidth) {
|
74
|
-
this.show();
|
75
|
-
}
|
76
|
-
else {
|
77
|
-
this.hide();
|
78
|
-
}
|
79
|
-
}
|
80
|
-
}
|
81
|
-
/**
|
82
|
-
* Add the directive's content to the DOM
|
83
|
-
*/
|
84
|
-
show() {
|
85
|
-
if (!this.isVisible) {
|
86
|
-
this.viewContainer.createEmbeddedView(this.templateRef);
|
87
|
-
this.isVisible = true;
|
88
|
-
}
|
89
|
-
}
|
90
|
-
/**
|
91
|
-
* Remove the directive's content from the DOM
|
92
|
-
*/
|
93
|
-
hide() {
|
94
|
-
if (this.isVisible) {
|
95
|
-
this.viewContainer.clear();
|
96
|
-
this.isVisible = false;
|
97
|
-
}
|
98
|
-
}
|
99
|
-
}
|
100
|
-
IfViewportWidthDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IfViewportWidthDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i1.WindowService }], target: i0.ɵɵFactoryTarget.Directive });
|
101
|
-
IfViewportWidthDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: IfViewportWidthDirective, selector: "[ecIfViewportWidth]", inputs: { width: ["ecIfViewportWidth", "width"] }, ngImport: i0 });
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IfViewportWidthDirective, decorators: [{
|
103
|
-
type: Directive,
|
104
|
-
args: [{
|
105
|
-
selector: '[ecIfViewportWidth]'
|
106
|
-
}]
|
107
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i1.WindowService }]; }, propDecorators: { width: [{
|
108
|
-
type: Input,
|
109
|
-
args: ['ecIfViewportWidth']
|
110
|
-
}] } });
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtdmlld3BvcnQtd2lkdGguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC9kaXJlY3RpdmVzL2lmLXZpZXdwb3J0LXdpZHRoL2lmLXZpZXdwb3J0LXdpZHRoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBeUMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHekQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyx3QkFBd0I7SUFrQ25DLFlBQ1UsYUFBK0IsRUFDL0IsV0FBNkIsRUFDN0IsYUFBNEI7UUFGNUIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWJ0Qzs7V0FFRztRQUNLLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVqRDs7V0FFRztRQUNLLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFNL0IsQ0FBQztJQUVFLFFBQVE7UUFDYixpRkFBaUY7UUFDakYsMkRBQTJEO1FBQzNELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQy9DLE9BQU87U0FDUjtRQUVELGlGQUFpRjtRQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLCtOQUErTixDQUFDLENBQUM7WUFDL08sT0FBTztTQUNSO2FBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUM1QjthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRTtZQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUUsR0FBRyxFQUFFO2dCQUM1RixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQTtTQUNIO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQjtRQUN0QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVcsQ0FBQztRQUVyRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzlELElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3BFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO1NBQ0Y7SUFFSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxJQUFJO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxJQUFJO1FBQ1YsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDeEI7SUFDSCxDQUFDOztxSEFqSFUsd0JBQXdCO3lHQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs2SkFhb0MsS0FBSztzQkFBdkMsS0FBSzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFdpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3dpbmRvdy5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBDb25kaXRpb25hbGx5IGluY2x1ZGUgY29udGVudCBpbiB0aGUgRE9NIGJhc2VkIG9uIHRoZSB3aWR0aCBvZiB0aGUgdmlld3BvcnQuIFVzZSB0byBwcm9ncmFtbWF0aWNhbGx5IGltcGxlbWVudCByZXBvbnNpdmUgbGF5b3V0cyBhbmQgcHJldmVudCBkdXBsaWNhdGUgbWFya3VwIGFuZCBsaXN0ZW5lcnMuXHJcbiAqIEluIG1vc3Qgc2NlbmFyaW9zIENTUyBtZWRpYSBxdWVyaWVzIGlzIHN1ZmZpY2llbnQgdG8gaGlkZS9zaG93IGVsZW1lbnRzIHJlc3BvbnNpdmVseS4gSG93ZXZlciwgaW4gc29tZSBjYXNlcyBtZWRpYSBxdWVyaWVzIHdvdWxkIHJlc3VsdCBpbiBkdXBsaWNhdGUgbWFya3VwIGFuZCBsaXN0ZW5lcnNcclxuICogdGhhdCBjb3VsZCBjYXVzZSB1bmRlc2lyZWQgc2lkZSBlZmZlY3RzIGFuZCBpdCBpcyBwcmVmZXJyZWQgdG8gdXMgcHJvZ3JhbW1hdGljIGVsZW1lbnRzIHRvIGFjaGlldmUgdGhlIGxheW91dC5cclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2VjSWZWaWV3cG9ydFdpZHRoXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIElmVmlld3BvcnRXaWR0aERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdHtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG1pbiBhbmQsIG9wdGlvbmFsbHksIG1heCB3aWR0aCBpbiBwaXhlbHMgdGhhdCB0aGUgdmlld3BvcnQgbXVzdCBiZSBpbiBvcmRlciB0byBpbmNsdWRlIHRoZSBkaXJlY3RpdmUgYW5kIGl0cyBjb250ZW50IGluIHRoZSBET00uXHJcbiAgICogQSBzaW5nbGUgbnVtYmVyIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgbWluIHdpZHRoLCBidXQgYW4gb2JqZWN0IHdpdGggbWluIGFuZCBtYXggbXVzdCBiZSB1c2VkIHRvIHNldCBhIG1pbiBhbmQgbWF4IHdpZHRoIG9yIGp1c3QgYSBtYXggd2lkdGguXHJcbiAgICogXHJcbiAgICogYGBgaHRtbFxyXG4gICAqIDxkaXYgKmVjSWZWaWV3cG9ydFdpZHRoPVwiNTAwXCI+Q29udGVudCB0byByZW5kZXIgaWYgdmlld3BvcnQgd2lkdGggaXMgPj0gNTAwcHg8L2Rpdj5cclxuICAgKiA8ZGl2ICplY0lmVmlld3BvcnRXaWR0aD1cInttYXg6IDgwMH1cIj5Db250ZW50IHRvIHJlbmRlciBpZiB0aGUgdmlld3BvcnQgd2lkdGggaXMgPD0gODAwcHg8L2Rpdj5cclxuICAgKiA8ZGl2ICplY0lmVmlld3BvcnRXaWR0aD1cInttaW46IDUwMCwgbWF4OiA4MDB9XCI+Q29udGVudCB0byByZW5kZXIgaWYgdGhlIHZpZXdwb3J0IHdpZHRoIGlzIGJldHdlZW4gNTAwcHggYW5kIDgwMHB4PC9kaXY+XHJcbiAgICogYGBgXHJcbiAgICovXHJcbiAgQElucHV0KCdlY0lmVmlld3BvcnRXaWR0aCcpIHB1YmxpYyB3aWR0aCE6IG51bWJlciB8IHttaW4/OiBudW1iZXI7IG1heD86IG51bWJlcn07XHJcblxyXG4gIC8qKiBcclxuICAgKiBJZiBkZWZpbmVkLCB0aGUgd2lkdGggaW4gcGl4ZWxzIHRoYXQgdGhlIHZpZXdwb3J0IG11c3QgYmUgdG8gaW5jbHVkZSB0aGUgZGlyZWN0aXZlIGFuZCBpdHMgY29udGVudCBpbiB0aGUgRE9NXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtaW5XaWR0aD86IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogSWYgZGVmaW5lZCwgdGhlIHdpZHRoIGluIHBpeGVscyB0aGF0IHRoZSB2aWV3cG9ydCBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHRvIGluY2x1ZGUgdGhlIGRpcmVjdGl2ZSBhbmQgaXRzIGNvbnRlbiBpbiB0aGUgRE9NXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtYXhXaWR0aD86IG51bWJlcjtcclxuXHJcbiAgLyoqIFxyXG4gICAqIFVzZWQgdG8gdW5zdWJzY3JpYmUgd2hlbiB0aGUgZGlyZWN0aXZlIGlzIHJlbW92ZWQgZnJvbSB0aGUgRE9NXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAvKipcclxuICAgKiBJbnRlcm5hbGx5IHRyYWNrcyB3aGV0aGVyIHRoZSBkaXJlY3RpdmUgYW5kIGl0cyBjb250ZW50IGlzIGluY2x1ZGVkIGluIHRoZSBET01cclxuICAgKi9cclxuICBwcml2YXRlIGlzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiwgXHJcbiAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LCBcclxuICAgIHByaXZhdGUgd2luZG93U2VydmljZTogV2luZG93U2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIFdpbmRvdyBtYXkgbm90IGF2YWlsYWJsZSBpZiB0aGlzIGNvZGUgaXMgbm90IGJlaW5nIHJ1biBvbiBhIGJyb3dzZXIgcGxhdGZvcm0uIFxyXG4gICAgLy8gSWYgdGhlcmUgaXMgbm8gd2luZG93IG9yIGlubmVyV2lkdGggYWJvcnQgaW5pdGlhbGl6YXRpb25cclxuICAgIGlmICh0aGlzLndpbmRvd1NlcnZpY2UuaW5uZXJXaWR0aCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDaGVjayBmb3IgcmVxdWlyZWQgdmFsdWVzLiBJZiBub25lIGFyZSBzZXQsIGxvZyBlcnJvciBhbmQgYWJvcnQgaW5pdGlhbGl6YXRpb25cclxuICAgIGlmICghdGhpcy53aWR0aCkgIHtcclxuICAgICAgY29uc29sZS5lcnJvcihgQSBtaW4gb3IgbWF4IHdpZHRoIHdhcyBub3QgcHJvdmlkZWQuIFByb3ZpZGUgYSB2YWx1ZSBmb3IgJ21pbicgb3IgJ21heCcgYnkgYXNzaWduaW5nIGEgc2luZ2xlIHZhbHVlIG9yIG9iamVjdCB0byB0aGUgZGlyZWN0aXZlLiBFLmcuICplY0lmVmlld3BvcnRXaWR0aD1cIjgwMFwiIChhc3NpZ25lZCB0byBtaW4pIG9yICplY0lmVmlld3BvcnRXaWR0aD1cInttaW46IDgwMCwgbWF4OiAxMjgwfVwiYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMud2lkdGggPT09ICdudW1iZXInKSB7XHJcbiAgICAgIHRoaXMubWluV2lkdGggPSB0aGlzLndpZHRoO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLndpZHRoICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5taW5XaWR0aCA9IHRoaXMud2lkdGgubWluO1xyXG4gICAgICB0aGlzLm1heFdpZHRoID0gdGhpcy53aWR0aC5tYXg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMud2luZG93U2VydmljZS5yZXNpemVkKSB7XHJcbiAgICAgIHRoaXMud2luZG93U2VydmljZS5yZXNpemVkLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpLnN1YnNjcmliZSggKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudXBkYXRlVmlzaWJpbGl0eSgpO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVWaXNpYmlsaXR5KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIGN1cnJlbnQgdmlld3BvcnQgd2lkdGggYW5kIGRldGVybWluIGlmIHRoZSBkaXJlY3RpdmUncyBjb250ZW50IHNob3VsZCBiZVxyXG4gICAqIGluY2x1ZGVkIGluIHRoZSBET00gYmFzZWQgb24gdGhlIG1pbiBhbmQgbWF4IHdpZHRoIHNldHRpbmdzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1cGRhdGVWaXNpYmlsaXR5KCk6IHZvaWQge1xyXG4gICAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IHRoaXMud2luZG93U2VydmljZS5pbm5lcldpZHRoITtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMubWluV2lkdGggIT09IHVuZGVmaW5lZCAmJiB0aGlzLm1heFdpZHRoICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHZpZXdwb3J0V2lkdGggPj0gdGhpcy5taW5XaWR0aCAmJiB2aWV3cG9ydFdpZHRoIDw9IHRoaXMubWF4V2lkdGgpIHtcclxuICAgICAgICB0aGlzLnNob3coKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLm1pbldpZHRoICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHZpZXdwb3J0V2lkdGggPj0gdGhpcy5taW5XaWR0aCkge1xyXG4gICAgICAgIHRoaXMuc2hvdygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubWF4V2lkdGggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAodmlld3BvcnRXaWR0aCA8PSB0aGlzLm1heFdpZHRoKSB7XHJcbiAgICAgICAgdGhpcy5zaG93KCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICAgXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgdGhlIGRpcmVjdGl2ZSdzIGNvbnRlbnQgdG8gdGhlIERPTVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2hvdygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcclxuICAgICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBkaXJlY3RpdmUncyBjb250ZW50IGZyb20gdGhlIERPTVxyXG4gICAqL1xyXG4gIHByaXZhdGUgaGlkZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzVmlzaWJsZSkge1xyXG4gICAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcclxuICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
@@ -1,163 +0,0 @@
|
|
1
|
-
import { Directive, Input, Inject, EventEmitter } from '@angular/core';
|
2
|
-
import { DOCUMENT } from '@angular/common';
|
3
|
-
import { fromEvent } from "rxjs";
|
4
|
-
import Popper from 'popper.js';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
/**
|
7
|
-
* Primitive directive that popups a container using PopperJS
|
8
|
-
*
|
9
|
-
* @export
|
10
|
-
*/
|
11
|
-
export class PopupContainerDirective {
|
12
|
-
/**
|
13
|
-
* Creates an instance of PopupContainerDirective.
|
14
|
-
* @param templateRef Reference to the popup template
|
15
|
-
* @param viewContainer Reference to the view container
|
16
|
-
* @param document Reference to Document
|
17
|
-
* @memberof PopupContainerDirective
|
18
|
-
*/
|
19
|
-
constructor(templateRef, viewContainer, document, renderer) {
|
20
|
-
this.templateRef = templateRef;
|
21
|
-
this.viewContainer = viewContainer;
|
22
|
-
this.document = document;
|
23
|
-
this.renderer = renderer;
|
24
|
-
/**
|
25
|
-
* Emit the {@link PopupStatus} when it changes
|
26
|
-
*/
|
27
|
-
this.popperStatusChange = new EventEmitter();
|
28
|
-
}
|
29
|
-
/**
|
30
|
-
* Angular onInit lifecycle hook
|
31
|
-
* @see https://angular.io/guide/lifecycle-hooks
|
32
|
-
*/
|
33
|
-
ngOnInit() {
|
34
|
-
this.templateViewRef = this.viewContainer.createEmbeddedView(this.templateRef);
|
35
|
-
}
|
36
|
-
/**
|
37
|
-
* Angular onDestroy lifecycle hook. Close and delete references. Unsubscribe observables
|
38
|
-
* @see https://angular.io/guide/lifecycle-hooks
|
39
|
-
*/
|
40
|
-
ngOnDestroy() {
|
41
|
-
this.hide();
|
42
|
-
}
|
43
|
-
/**
|
44
|
-
* Displays the templateRef as a popup
|
45
|
-
*
|
46
|
-
* @memberof PopupContainerDirective
|
47
|
-
*/
|
48
|
-
show() {
|
49
|
-
if (PopupContainerDirective.GlobalPopupRef) {
|
50
|
-
if (PopupContainerDirective.GlobalPopupRef != this) {
|
51
|
-
PopupContainerDirective.GlobalPopupRef.hide();
|
52
|
-
PopupContainerDirective.GlobalPopupRef = undefined;
|
53
|
-
}
|
54
|
-
}
|
55
|
-
if (!this.globalCloseSubscription) {
|
56
|
-
this.globalCloseSubscription = fromEvent(this.document.body, "click").subscribe((event) => {
|
57
|
-
this.hide();
|
58
|
-
});
|
59
|
-
}
|
60
|
-
if (!this.popperRef) {
|
61
|
-
// Add the popper template as an embedded view since PopperJS
|
62
|
-
// manipulates DOM elements.
|
63
|
-
this.popupViewRef = this.viewContainer.createEmbeddedView(this.popup);
|
64
|
-
// Since popper needs real DOM elements, grab the first non-comment
|
65
|
-
// DOM element to use as our anchor.
|
66
|
-
let anchorElement = this.popupViewRef.rootNodes.find(elem => { return elem.nodeName !== "#text"; });
|
67
|
-
// Use the parents elements as our DOM elements to Popper
|
68
|
-
this.popperRef = new Popper(this.templateViewRef.rootNodes[0], anchorElement, this.popperOptions);
|
69
|
-
PopupContainerDirective.GlobalPopupRef = this;
|
70
|
-
this.popperStatusChange.emit('visible');
|
71
|
-
}
|
72
|
-
}
|
73
|
-
/**
|
74
|
-
* Hides the templateRef
|
75
|
-
*
|
76
|
-
* @memberof PopupContainerDirective
|
77
|
-
*/
|
78
|
-
hide() {
|
79
|
-
if (this.globalCloseSubscription) {
|
80
|
-
this.globalCloseSubscription.unsubscribe();
|
81
|
-
this.globalCloseSubscription = undefined;
|
82
|
-
}
|
83
|
-
if (this.popperRef && this.popupViewRef) {
|
84
|
-
this.popupViewRef.destroy();
|
85
|
-
this.popperRef.destroy();
|
86
|
-
this.popperRef = undefined;
|
87
|
-
this.popperStatusChange.emit('hidden');
|
88
|
-
}
|
89
|
-
}
|
90
|
-
/**
|
91
|
-
* Updates the popup container position
|
92
|
-
*/
|
93
|
-
update() {
|
94
|
-
if (this.popperRef) {
|
95
|
-
this.popperRef.update();
|
96
|
-
}
|
97
|
-
}
|
98
|
-
fixPosition(minWidthNone, appendToBody = false) {
|
99
|
-
if (this.popperRef && this.popperRef['reference'] && this.popperRef['popper']) {
|
100
|
-
let popupEl = this.popperRef['popper'];
|
101
|
-
// Reset width style previously assigned because the content may have
|
102
|
-
// changed and the auto width would be different
|
103
|
-
this.renderer.removeStyle(popupEl, 'width');
|
104
|
-
this.renderer.setStyle(popupEl, 'position', 'fixed');
|
105
|
-
if (appendToBody) {
|
106
|
-
const bodyEl = this.document.querySelector('body');
|
107
|
-
const popupParent = this.renderer.parentNode(popupEl);
|
108
|
-
if (popupParent !== bodyEl) {
|
109
|
-
this.renderer.appendChild(bodyEl, popupEl);
|
110
|
-
}
|
111
|
-
}
|
112
|
-
let toggleEl = this.popperRef['reference'];
|
113
|
-
let width = popupEl.offsetWidth;
|
114
|
-
let boundaries = popupEl.getBoundingClientRect();
|
115
|
-
let left = boundaries.left;
|
116
|
-
let coords = toggleEl.getBoundingClientRect();
|
117
|
-
// Set the top of our menu to the bottom of the toggle element
|
118
|
-
let top = coords.bottom;
|
119
|
-
if (this.popperOptions && this.popperOptions.placement) {
|
120
|
-
if (this.popperOptions.placement === 'bottom-start' || this.popperOptions.placement === 'top-start') {
|
121
|
-
left = coords.left;
|
122
|
-
}
|
123
|
-
else {
|
124
|
-
left = coords.right - ((minWidthNone || width > coords.width) ? width : coords.width);
|
125
|
-
}
|
126
|
-
}
|
127
|
-
// if it won't fit (with 10px space before hitting the window edge), flip it
|
128
|
-
if (boundaries.height + top + 10 > window.innerHeight) {
|
129
|
-
top = coords.top - boundaries.height;
|
130
|
-
}
|
131
|
-
this.renderer.setStyle(popupEl, 'transform', 'none');
|
132
|
-
this.renderer.setStyle(popupEl, 'left', left + 'px');
|
133
|
-
this.renderer.setStyle(popupEl, 'top', top + 'px');
|
134
|
-
this.renderer.setStyle(popupEl, 'width', width + 'px');
|
135
|
-
if (!minWidthNone) {
|
136
|
-
this.renderer.setStyle(popupEl, 'min-width', coords.width + 'px');
|
137
|
-
}
|
138
|
-
}
|
139
|
-
}
|
140
|
-
}
|
141
|
-
/**
|
142
|
-
* Global reference to the currently displayed popup; only
|
143
|
-
* one popup directive can be in `show` state at a given time.
|
144
|
-
*
|
145
|
-
* @memberof PopupContainerDirective
|
146
|
-
*/
|
147
|
-
PopupContainerDirective.GlobalPopupRef = undefined;
|
148
|
-
PopupContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PopupContainerDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: DOCUMENT }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
149
|
-
PopupContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: PopupContainerDirective, selector: "[ecPopup]", inputs: { popup: ["ecPopup", "popup"], popperOptions: ["options", "popperOptions"] }, ngImport: i0 });
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PopupContainerDirective, decorators: [{
|
151
|
-
type: Directive,
|
152
|
-
args: [{ selector: '[ecPopup]' }]
|
153
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
154
|
-
type: Inject,
|
155
|
-
args: [DOCUMENT]
|
156
|
-
}] }, { type: i0.Renderer2 }]; }, propDecorators: { popup: [{
|
157
|
-
type: Input,
|
158
|
-
args: ['ecPopup']
|
159
|
-
}], popperOptions: [{
|
160
|
-
type: Input,
|
161
|
-
args: ['options']
|
162
|
-
}] } });
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtY29udGFpbmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9wb3B1cC9wb3B1cC1jb250YWluZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFnRixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JKLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLE1BQU0sTUFBTSxXQUFXLENBQUE7O0FBSzlCOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBcURoQzs7Ozs7O09BTUc7SUFDSCxZQUNZLFdBQTZCLEVBQzdCLGFBQStCLEVBQ2IsUUFBYSxFQUMvQixRQUFtQjtRQUhuQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQ2IsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBcUIvQjs7V0FFRztRQUNJLHVCQUFrQixHQUE4QixJQUFJLFlBQVksRUFBZSxDQUFDO0lBdkJwRixDQUFDO0lBRUo7OztPQUdHO0lBQ0gsUUFBUTtRQUNKLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUdEOzs7T0FHRztJQUNILFdBQVc7UUFDUCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQVNEOzs7O09BSUc7SUFDSSxJQUFJO1FBQ1AsSUFBSSx1QkFBdUIsQ0FBQyxjQUFjLEVBQUU7WUFDeEMsSUFBSSx1QkFBdUIsQ0FBQyxjQUFjLElBQUksSUFBSSxFQUFFO2dCQUNoRCx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzlDLHVCQUF1QixDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7YUFDdEQ7U0FDSjtRQUVELElBQUcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDOUIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDdEYsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQiw2REFBNkQ7WUFDN0QsNEJBQTRCO1lBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFdEUsbUVBQW1FO1lBQ25FLG9DQUFvQztZQUNwQyxJQUFJLGFBQWEsR0FBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRzlHLHlEQUF5RDtZQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksTUFBTSxDQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFDakMsYUFBYSxFQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUd4Qix1QkFBdUIsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBRTlDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDM0M7SUFDTCxDQUFDO0lBR0Q7Ozs7T0FJRztJQUNJLElBQUk7UUFDUCxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUM5QixJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFNBQVMsQ0FBQztTQUM1QztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTTtRQUNULElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVNLFdBQVcsQ0FBQyxZQUFxQixFQUFFLFlBQVksR0FBQyxLQUFLO1FBQ3hELElBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDMUUsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV2QyxxRUFBcUU7WUFDckUsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUU1QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXJELElBQUksWUFBWSxFQUFFO2dCQUNkLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNuRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxXQUFXLEtBQUssTUFBTSxFQUFFO29CQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQzlDO2FBQ0o7WUFFRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNDLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7WUFDaEMsSUFBSSxVQUFVLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDakQsSUFBSSxJQUFJLEdBQVUsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNsQyxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUU5Qyw4REFBOEQ7WUFDOUQsSUFBSSxHQUFHLEdBQVUsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUUvQixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUU7Z0JBQ3BELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEtBQUssY0FBYyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxLQUFLLFdBQVcsRUFBRTtvQkFDakcsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7aUJBQ3RCO3FCQUFNO29CQUNILElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxZQUFZLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3pGO2FBQ0o7WUFFRCw0RUFBNEU7WUFDNUUsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRTtnQkFDbkQsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQzthQUN4QztZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFFdkQsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDckU7U0FDSjtJQUNMLENBQUM7O0FBak5EOzs7OztHQUtHO0FBQ1csc0NBQWMsR0FBNkIsU0FBUyxDQUFDO29IQVIxRCx1QkFBdUIsNkVBK0RwQixRQUFRO3dHQS9EWCx1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7OzBCQWdFM0IsTUFBTTsyQkFBQyxRQUFRO29FQWpESyxLQUFLO3NCQUE3QixLQUFLO3VCQUFDLFNBQVM7Z0JBT1MsYUFBYTtzQkFBckMsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYsIE9uSW5pdCwgRW1iZWRkZWRWaWV3UmVmLCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgSW5qZWN0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCBQb3BwZXIgZnJvbSAncG9wcGVyLmpzJ1xyXG5cclxuZXhwb3J0IHR5cGUgUG9wdXBQbGFjZW1lbnQgPSAndG9wJyB8ICdyaWdodCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICd0b3Atc3RhcnQnIHwgJ3RvcC1lbmQnIHwgJ2JvdHRvbS1zdGFydCcgfCAnYm90dG9tLWVuZCc7XHJcbmV4cG9ydCB0eXBlIFBvcHVwU3RhdHVzID0gJ3Zpc2libGUnIHwgJ2hpZGRlbic7XHJcblxyXG4vKipcclxuICogUHJpbWl0aXZlIGRpcmVjdGl2ZSB0aGF0IHBvcHVwcyBhIGNvbnRhaW5lciB1c2luZyBQb3BwZXJKU1xyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqL1xyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbZWNQb3B1cF0nIH0pXHJcbmV4cG9ydCBjbGFzcyBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogIEdsb2JhbCByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnRseSBkaXNwbGF5ZWQgcG9wdXA7IG9ubHlcclxuICAgICAqICBvbmUgcG9wdXAgZGlyZWN0aXZlIGNhbiBiZSBpbiBgc2hvd2Agc3RhdGUgYXQgYSBnaXZlbiB0aW1lLlxyXG4gICAgICpcclxuICAgICAqIEBtZW1iZXJvZiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIEdsb2JhbFBvcHVwUmVmPzogUG9wdXBDb250YWluZXJEaXJlY3RpdmUgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZW1wbGF0ZVJlZiBvZiBjb250YWluZXIgdG8gcG9wdXBcclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgnZWNQb3B1cCcpIHB1YmxpYyBwb3B1cCE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3BwZXIgb3B0aW9uc1xyXG4gICAgICpcclxuICAgICAqIEBtZW1iZXJvZiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoJ29wdGlvbnMnKSBwdWJsaWMgcG9wcGVyT3B0aW9ucz86IFBvcHBlci5Qb3BwZXJPcHRpb25zO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGVtcGxhdGUgVmlldyBSZWZlcmVuY2VcclxuICAgICAqXHJcbiAgICAgKiBAbWVtYmVyb2YgUG9wdXBDb250YWluZXJEaXJlY3RpdmVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVZpZXdSZWYhOiBFbWJlZGRlZFZpZXdSZWY8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvcHVwIFZpZXcgUmVmZXJlbmNlIChjb250YWluZXIpXHJcbiAgICAgKlxyXG4gICAgICogQG1lbWJlcm9mIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcG9wdXBWaWV3UmVmPzogRW1iZWRkZWRWaWV3UmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3BwZXIgUmVmZXJlbmNlXHJcbiAgICAgKlxyXG4gICAgICogQG1lbWJlcm9mIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcG9wcGVyUmVmPzogUG9wcGVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xvc2UtdG8tY2xpY2sgU3Vic2NyaXB0aW9uLiBUaGlzIGFsbG93cyB1cyB0byBjbG9zZSB0aGUgbWVudSB3aGVuIHlvdSBjbGljayBvbiB0aGUgYm9keS5cclxuICAgICAqIFdlIGF0dGFjaCBpdCB3aGVuIHRoZSBtZW51IGlzIG9wZW4gYW5kIGRldGFjaCBpdCBvbiBjbG9zZSwgdG8gbGltaXQgdGhlIGxpZmV0aW1lIG9mIHRoZSBjbGljayBoYW5kbGVyXHJcbiAgICAgKiB3aGljaCBoZWxwcyB3aXRoIHBlcmZvcm1hbmNlIG9uIGEgcGFnZSB3aXRoIG1hbnkgcG9wdXAgY29udGFpbmVyc1xyXG4gICAgICpcclxuICAgICAqIEBtZW1iZXJvZiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdsb2JhbENsb3NlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZS5cclxuICAgICAqIEBwYXJhbSB0ZW1wbGF0ZVJlZiBSZWZlcmVuY2UgdG8gdGhlIHBvcHVwIHRlbXBsYXRlXHJcbiAgICAgKiBAcGFyYW0gdmlld0NvbnRhaW5lciBSZWZlcmVuY2UgdG8gdGhlIHZpZXcgY29udGFpbmVyXHJcbiAgICAgKiBAcGFyYW0gZG9jdW1lbnQgUmVmZXJlbmNlIHRvIERvY3VtZW50XHJcbiAgICAgKiBAbWVtYmVyb2YgUG9wdXBDb250YWluZXJEaXJlY3RpdmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxyXG4gICAgKSB7fVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW5ndWxhciBvbkluaXQgbGlmZWN5Y2xlIGhvb2tcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2xpZmVjeWNsZS1ob29rc1xyXG4gICAgICovXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlVmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW5ndWxhciBvbkRlc3Ryb3kgbGlmZWN5Y2xlIGhvb2suIENsb3NlIGFuZCBkZWxldGUgcmVmZXJlbmNlcy4gVW5zdWJzY3JpYmUgb2JzZXJ2YWJsZXNcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2xpZmVjeWNsZS1ob29rc1xyXG4gICAgICovXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbWl0IHRoZSB7QGxpbmsgUG9wdXBTdGF0dXN9IHdoZW4gaXQgY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcG9wcGVyU3RhdHVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UG9wdXBTdGF0dXM+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb3B1cFN0YXR1cz4oKTtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXNwbGF5cyB0aGUgdGVtcGxhdGVSZWYgYXMgYSBwb3B1cFxyXG4gICAgICpcclxuICAgICAqIEBtZW1iZXJvZiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2hvdygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoUG9wdXBDb250YWluZXJEaXJlY3RpdmUuR2xvYmFsUG9wdXBSZWYpIHtcclxuICAgICAgICAgICAgaWYgKFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlLkdsb2JhbFBvcHVwUmVmICE9IHRoaXMpIHtcclxuICAgICAgICAgICAgICAgIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlLkdsb2JhbFBvcHVwUmVmLmhpZGUoKTtcclxuICAgICAgICAgICAgICAgIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlLkdsb2JhbFBvcHVwUmVmID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZighdGhpcy5nbG9iYWxDbG9zZVN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmdsb2JhbENsb3NlU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHRoaXMuZG9jdW1lbnQuYm9keSwgXCJjbGlja1wiKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMucG9wcGVyUmVmKSB7XHJcbiAgICAgICAgICAgIC8vIEFkZCB0aGUgcG9wcGVyIHRlbXBsYXRlIGFzIGFuIGVtYmVkZGVkIHZpZXcgc2luY2UgUG9wcGVySlNcclxuICAgICAgICAgICAgLy8gbWFuaXB1bGF0ZXMgRE9NIGVsZW1lbnRzLlxyXG4gICAgICAgICAgICB0aGlzLnBvcHVwVmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5wb3B1cCk7XHJcblxyXG4gICAgICAgICAgICAvLyBTaW5jZSBwb3BwZXIgbmVlZHMgcmVhbCBET00gZWxlbWVudHMsIGdyYWIgdGhlIGZpcnN0IG5vbi1jb21tZW50XHJcbiAgICAgICAgICAgIC8vIERPTSBlbGVtZW50IHRvIHVzZSBhcyBvdXIgYW5jaG9yLlxyXG4gICAgICAgICAgICBsZXQgYW5jaG9yRWxlbWVudCA9ICh0aGlzLnBvcHVwVmlld1JlZi5yb290Tm9kZXMgYXMgYW55W10pLmZpbmQoZWxlbSA9PiB7IHJldHVybiBlbGVtLm5vZGVOYW1lICE9PSBcIiN0ZXh0XCIgfSk7XHJcblxyXG5cclxuICAgICAgICAgICAgLy8gVXNlIHRoZSBwYXJlbnRzIGVsZW1lbnRzIGFzIG91ciBET00gZWxlbWVudHMgdG8gUG9wcGVyXHJcbiAgICAgICAgICAgIHRoaXMucG9wcGVyUmVmID0gbmV3IFBvcHBlcihcclxuICAgICAgICAgICAgICAgIHRoaXMudGVtcGxhdGVWaWV3UmVmLnJvb3ROb2Rlc1swXSxcclxuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvcHBlck9wdGlvbnMpO1xyXG5cclxuXHJcbiAgICAgICAgICAgIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlLkdsb2JhbFBvcHVwUmVmID0gdGhpcztcclxuXHJcbiAgICAgICAgICAgIHRoaXMucG9wcGVyU3RhdHVzQ2hhbmdlLmVtaXQoJ3Zpc2libGUnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGlkZXMgdGhlIHRlbXBsYXRlUmVmXHJcbiAgICAgKlxyXG4gICAgICogQG1lbWJlcm9mIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmdsb2JhbENsb3NlU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsQ2xvc2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgdGhpcy5nbG9iYWxDbG9zZVN1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnBvcHBlclJlZiAmJiB0aGlzLnBvcHVwVmlld1JlZikge1xyXG4gICAgICAgICAgICB0aGlzLnBvcHVwVmlld1JlZi5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMucG9wcGVyUmVmLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgdGhpcy5wb3BwZXJSZWYgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMucG9wcGVyU3RhdHVzQ2hhbmdlLmVtaXQoJ2hpZGRlbicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIHBvcHVwIGNvbnRhaW5lciBwb3NpdGlvblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdXBkYXRlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnBvcHBlclJlZikge1xyXG4gICAgICAgICAgICB0aGlzLnBvcHBlclJlZi51cGRhdGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZpeFBvc2l0aW9uKG1pbldpZHRoTm9uZT86Ym9vbGVhbiwgYXBwZW5kVG9Cb2R5PWZhbHNlICk6dm9pZCB7XHJcbiAgICAgICAgaWYodGhpcy5wb3BwZXJSZWYgJiYgdGhpcy5wb3BwZXJSZWZbJ3JlZmVyZW5jZSddICYmIHRoaXMucG9wcGVyUmVmWydwb3BwZXInXSkge1xyXG4gICAgICAgICAgICBsZXQgcG9wdXBFbCA9IHRoaXMucG9wcGVyUmVmWydwb3BwZXInXTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJlc2V0IHdpZHRoIHN0eWxlIHByZXZpb3VzbHkgYXNzaWduZWQgYmVjYXVzZSB0aGUgY29udGVudCBtYXkgaGF2ZVxyXG4gICAgICAgICAgICAvLyBjaGFuZ2VkIGFuZCB0aGUgYXV0byB3aWR0aCB3b3VsZCBiZSBkaWZmZXJlbnRcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShwb3B1cEVsLCAnd2lkdGgnKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocG9wdXBFbCwgJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoYXBwZW5kVG9Cb2R5KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5RWwgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBvcHVwUGFyZW50ID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKHBvcHVwRWwpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHBvcHVwUGFyZW50ICE9PSBib2R5RWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGJvZHlFbCwgcG9wdXBFbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCB0b2dnbGVFbCA9IHRoaXMucG9wcGVyUmVmWydyZWZlcmVuY2UnXTtcclxuICAgICAgICAgICAgbGV0IHdpZHRoID0gcG9wdXBFbC5vZmZzZXRXaWR0aDtcclxuICAgICAgICAgICAgbGV0IGJvdW5kYXJpZXMgPSBwb3B1cEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICBsZXQgbGVmdDpudW1iZXIgPSBib3VuZGFyaWVzLmxlZnQ7XHJcbiAgICAgICAgICAgIGxldCBjb29yZHMgPSB0b2dnbGVFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIFNldCB0aGUgdG9wIG9mIG91ciBtZW51IHRvIHRoZSBib3R0b20gb2YgdGhlIHRvZ2dsZSBlbGVtZW50XHJcbiAgICAgICAgICAgIGxldCB0b3A6bnVtYmVyID0gY29vcmRzLmJvdHRvbTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBvcHBlck9wdGlvbnMgJiYgdGhpcy5wb3BwZXJPcHRpb25zLnBsYWNlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucG9wcGVyT3B0aW9ucy5wbGFjZW1lbnQgPT09ICdib3R0b20tc3RhcnQnIHx8IHRoaXMucG9wcGVyT3B0aW9ucy5wbGFjZW1lbnQgPT09ICd0b3Atc3RhcnQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IGNvb3Jkcy5sZWZ0O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gY29vcmRzLnJpZ2h0IC0gKChtaW5XaWR0aE5vbmUgfHwgd2lkdGggPiBjb29yZHMud2lkdGgpID8gd2lkdGggOiBjb29yZHMud2lkdGgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBpZiBpdCB3b24ndCBmaXQgKHdpdGggMTBweCBzcGFjZSBiZWZvcmUgaGl0dGluZyB0aGUgd2luZG93IGVkZ2UpLCBmbGlwIGl0XHJcbiAgICAgICAgICAgIGlmIChib3VuZGFyaWVzLmhlaWdodCArIHRvcCArIDEwID4gd2luZG93LmlubmVySGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICB0b3AgPSBjb29yZHMudG9wIC0gYm91bmRhcmllcy5oZWlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocG9wdXBFbCwgJ3RyYW5zZm9ybScsICdub25lJyk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocG9wdXBFbCwgJ2xlZnQnLCBsZWZ0ICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocG9wdXBFbCwgJ3RvcCcsIHRvcCArICdweCcpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHBvcHVwRWwsICd3aWR0aCcsIHdpZHRoICsgJ3B4Jyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIW1pbldpZHRoTm9uZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShwb3B1cEVsLCAnbWluLXdpZHRoJywgY29vcmRzLndpZHRoICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|