@energycap/components 0.41.1-ECAP-27592-angular-17.20241223-1643 → 0.41.1-ECAP-26841-date-input-features.20250106-0847
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2022 → esm2020}/energycap-components.mjs +4 -4
- package/esm2020/lib/components.module.mjs +423 -0
- package/esm2020/lib/controls/banner/banner.component.mjs +109 -0
- package/esm2020/lib/controls/button/button.component.mjs +106 -0
- package/esm2020/lib/controls/button/copy-button-base.directive.mjs +67 -0
- package/{esm2022 → esm2020}/lib/controls/button/copy-button.directive.mjs +28 -28
- package/esm2020/lib/controls/button/copy-table-button.directive.mjs +43 -0
- package/esm2020/lib/controls/calendar/calendar-item.component.mjs +91 -0
- package/esm2020/lib/controls/calendar/calendar.component.mjs +248 -0
- package/esm2020/lib/controls/calendar/calendar.types.mjs +2 -0
- package/esm2020/lib/controls/checkbox/checkbox.component.mjs +140 -0
- package/{esm2022 → esm2020}/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -38
- package/esm2020/lib/controls/combobox/combobox.component.mjs +879 -0
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +57 -0
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +62 -0
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +100 -0
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +101 -0
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +76 -0
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +79 -0
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +210 -0
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +81 -0
- package/esm2020/lib/controls/date-input/date-input.component.mjs +462 -0
- package/esm2020/lib/controls/date-input/date-input.types.mjs +44 -0
- package/esm2020/lib/controls/dropdown/dropdown.component.mjs +243 -0
- package/esm2020/lib/controls/file-upload/file-upload.component.mjs +261 -0
- package/esm2020/lib/controls/form-control/form-control.component.mjs +98 -0
- package/esm2020/lib/controls/form-control-base.mjs +151 -0
- package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +136 -0
- package/esm2020/lib/controls/form-group/form-group.component.mjs +261 -0
- package/{esm2022 → esm2020}/lib/controls/help-popover/help-popover.component.mjs +31 -31
- package/esm2020/lib/controls/item-picker/item-picker.component.mjs +329 -0
- package/{esm2022 → esm2020}/lib/controls/link-button/link-button.component.mjs +11 -11
- package/esm2020/lib/controls/menu/menu.component.mjs +485 -0
- package/{esm2022 → esm2020}/lib/controls/navigation/link-item.mjs +1 -1
- package/esm2020/lib/controls/navigation/nav-group.mjs +39 -0
- package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +92 -0
- package/{esm2022 → esm2020}/lib/controls/navigation/nav-item.mjs +1 -1
- package/esm2020/lib/controls/numericbox/numericbox.component.mjs +372 -0
- package/esm2020/lib/controls/popover/popover.component.mjs +117 -0
- package/{esm2022 → esm2020}/lib/controls/radio-button/radio-button-option.mjs +2 -2
- package/esm2020/lib/controls/radio-button/radio-button.component.mjs +82 -0
- package/esm2020/lib/controls/select/select.component.mjs +88 -0
- package/esm2020/lib/controls/tabs/tabs.component.mjs +47 -0
- package/esm2020/lib/controls/textbox/textbox.component.mjs +155 -0
- package/esm2020/lib/core/cache.service.mjs +105 -0
- package/esm2020/lib/core/custom-validators.mjs +29 -0
- package/esm2020/lib/core/date-time-helper.mjs +228 -0
- package/esm2020/lib/core/error.service.mjs +61 -0
- package/esm2020/lib/core/router-helper.service.mjs +111 -0
- package/esm2020/lib/core/scroll.service.mjs +89 -0
- package/{esm2022 → esm2020}/lib/core/telemetry-tracker.service.mjs +16 -16
- package/{esm2022 → esm2020}/lib/core/telemetry.service.mjs +38 -38
- package/esm2020/lib/core/validation-message.service.mjs +185 -0
- package/{esm2022 → esm2020}/lib/core/validation-patterns.mjs +30 -30
- package/esm2020/lib/core/window.service.mjs +186 -0
- package/esm2020/lib/display/app-bar/app-bar.component.mjs +46 -0
- package/esm2020/lib/display/avatar/avatar.component.mjs +67 -0
- package/esm2020/lib/display/avatar/avatar.service.mjs +64 -0
- package/esm2020/lib/display/confirm/confirm.component.mjs +168 -0
- package/{esm2022 → esm2020}/lib/display/dialog/dialog-content.mjs +1 -1
- package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -0
- package/{esm2022 → esm2020}/lib/display/dialog/dialog-types.mjs +76 -76
- package/esm2020/lib/display/dialog/dialog.component.mjs +281 -0
- package/{esm2022 → esm2020}/lib/display/dialog/dialog.service.mjs +71 -71
- package/{esm2022 → esm2020}/lib/display/help/help-types.mjs +1 -1
- package/esm2020/lib/display/hierarchy/hierarchy-base.mjs +111 -0
- package/{esm2022 → esm2020}/lib/display/hierarchy/hierarchy-mocks.spec.mjs +53 -53
- package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +61 -0
- package/esm2020/lib/display/item-display/item-display.component.mjs +81 -0
- package/esm2020/lib/display/json-display/json-display.component.mjs +47 -0
- package/esm2020/lib/display/resizable/resizable-base.mjs +120 -0
- package/{esm2022 → esm2020}/lib/display/resizable/resizable.component.mjs +52 -52
- package/{esm2022 → esm2020}/lib/display/spinner/spinner.component.mjs +12 -12
- package/esm2020/lib/display/splash/splash.component.mjs +42 -0
- package/{esm2022 → esm2020}/lib/display/splash/splash.service.mjs +35 -35
- package/{esm2022 → esm2020}/lib/display/table/resizable-column.component.mjs +20 -20
- package/esm2020/lib/display/table/resizable-table.directive.mjs +227 -0
- package/esm2020/lib/display/table/searchable-table.component.mjs +342 -0
- package/{esm2022 → esm2020}/lib/display/table/table-detail-row.component.mjs +19 -19
- package/esm2020/lib/display/table/table-locked-column.component.mjs +58 -0
- package/{esm2022 → esm2020}/lib/display/table/table-master-header-row.component.mjs +14 -14
- package/esm2020/lib/display/table/table-master-row.component.mjs +163 -0
- package/esm2020/lib/display/table/table-pagination.component.mjs +155 -0
- package/esm2020/lib/display/table/table-selectable-row.component.mjs +235 -0
- package/esm2020/lib/display/table/table.component.mjs +249 -0
- package/esm2020/lib/display/tags/tag.mjs +18 -0
- package/esm2020/lib/display/tags/tags.component.mjs +77 -0
- package/esm2020/lib/display/toast/toast/toast.component.mjs +77 -0
- package/{esm2022 → esm2020}/lib/display/toast/toast-types.mjs +7 -7
- package/{esm2022 → esm2020}/lib/display/toast/toast.service.mjs +35 -35
- package/esm2020/lib/display/toast/toaster/toaster.component.mjs +114 -0
- package/{esm2022 → esm2020}/lib/display/tooltip/tooltip.component.mjs +28 -28
- package/{esm2022 → esm2020}/lib/display/tooltip/tooltip.service.mjs +78 -78
- package/esm2020/lib/display/tooltip-directive/tooltip.directive.mjs +173 -0
- package/{esm2022 → esm2020}/lib/display/tour/tour-types.mjs +33 -33
- package/esm2020/lib/display/tour/tour.component.mjs +398 -0
- package/esm2020/lib/display/tour/tour.service.mjs +75 -0
- package/esm2020/lib/display/tree/tree.component.mjs +135 -0
- package/esm2020/lib/display/view-overlay/view-overlay.component.mjs +58 -0
- package/esm2020/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -0
- package/esm2020/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -0
- package/esm2020/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +100 -0
- package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +163 -0
- package/esm2020/lib/shared/display/pipes/date-display.pipe.mjs +50 -0
- package/esm2020/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -0
- package/esm2020/lib/shared/display/pipes/relative-date.pipe.mjs +62 -0
- package/esm2020/lib/shared/display/pipes/row-count.pipe.mjs +48 -0
- package/esm2020/lib/shared/display/pipes/time-display.pipe.mjs +41 -0
- package/esm2020/lib/shared/display.mjs +6 -0
- package/esm2020/lib/shared/form-group.helper.mjs +67 -0
- package/esm2020/lib/shared/json-helper.mjs +19 -0
- package/esm2020/lib/shared/lodash-helper.mjs +51 -0
- package/esm2020/lib/shared/page/page-base/page-base.component.mjs +387 -0
- package/{esm2022 → esm2020}/lib/shared/page/page-statuses.mjs +22 -22
- package/{esm2022 → esm2020}/lib/shared/page/page-title/page-title.component.mjs +23 -23
- package/esm2020/lib/shared/page/page-view/page-view.component.mjs +147 -0
- package/{esm2022 → esm2020}/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +16 -16
- package/{esm2022 → esm2020}/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +16 -16
- package/{esm2022 → esm2020}/lib/shared/testing/page-base-component-test-helper.spec.mjs +37 -37
- package/esm2020/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +98 -0
- package/{esm2022 → esm2020}/lib/shared/testing/public-mocks.spec.mjs +148 -148
- package/{esm2022 → esm2020}/lib/shared/testing/spy-factory.spec.mjs +39 -39
- package/{esm2022 → esm2020}/lib/shared/testing/translation-mocks.spec.mjs +56 -56
- package/{esm2022 → esm2020}/lib/shared/user-preference.service.mjs +17 -17
- package/esm2020/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -0
- package/{esm2022 → esm2020}/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -68
- package/{esm2022 → esm2020}/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -18
- package/esm2020/public-api.mjs +117 -0
- package/fesm2015/energycap-components.mjs +13370 -0
- package/fesm2015/energycap-components.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/energycap-components.mjs +12971 -11819
- package/fesm2020/energycap-components.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/components.module.d.ts +92 -91
- 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 -17
- package/lib/controls/calendar/calendar.component.d.ts +52 -54
- package/lib/controls/calendar/calendar.types.d.ts +11 -7
- 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 -0
- package/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.d.ts +21 -0
- package/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.d.ts +21 -0
- package/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.d.ts +21 -0
- package/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.d.ts +18 -0
- package/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.d.ts +18 -0
- package/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.d.ts +21 -0
- package/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.d.ts +20 -0
- package/lib/controls/date-input/date-input.component.d.ts +115 -80
- package/lib/controls/date-input/date-input.types.d.ts +62 -0
- 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 -30
- 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 -0
- 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 +18 -12
- package/public-api.d.ts +113 -111
- 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/src/assets/locales/en_US.json +9 -1
- package/esm2022/lib/components.module.mjs +0 -418
- package/esm2022/lib/controls/banner/banner.component.mjs +0 -109
- package/esm2022/lib/controls/button/button.component.mjs +0 -106
- package/esm2022/lib/controls/button/copy-button-base.directive.mjs +0 -67
- package/esm2022/lib/controls/button/copy-table-button.directive.mjs +0 -43
- package/esm2022/lib/controls/calendar/calendar-item.component.mjs +0 -59
- package/esm2022/lib/controls/calendar/calendar.component.mjs +0 -200
- package/esm2022/lib/controls/calendar/calendar.types.mjs +0 -4
- package/esm2022/lib/controls/checkbox/checkbox.component.mjs +0 -140
- package/esm2022/lib/controls/combobox/combobox.component.mjs +0 -879
- package/esm2022/lib/controls/date-input/date-input.component.mjs +0 -256
- package/esm2022/lib/controls/dropdown/dropdown.component.mjs +0 -243
- package/esm2022/lib/controls/file-upload/file-upload.component.mjs +0 -261
- package/esm2022/lib/controls/form-control/form-control.component.mjs +0 -104
- package/esm2022/lib/controls/form-control-base.mjs +0 -151
- package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +0 -136
- package/esm2022/lib/controls/form-group/form-group.component.mjs +0 -261
- package/esm2022/lib/controls/item-picker/item-picker.component.mjs +0 -329
- package/esm2022/lib/controls/menu/menu.component.mjs +0 -485
- package/esm2022/lib/controls/navigation/nav-group.mjs +0 -39
- package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +0 -92
- package/esm2022/lib/controls/numericbox/numericbox.component.mjs +0 -372
- package/esm2022/lib/controls/popover/popover.component.mjs +0 -117
- package/esm2022/lib/controls/radio-button/radio-button.component.mjs +0 -82
- package/esm2022/lib/controls/select/select.component.mjs +0 -88
- package/esm2022/lib/controls/tabs/tabs.component.mjs +0 -47
- package/esm2022/lib/controls/textbox/textbox.component.mjs +0 -155
- package/esm2022/lib/core/cache.service.mjs +0 -105
- package/esm2022/lib/core/custom-validators.mjs +0 -29
- package/esm2022/lib/core/date-time-helper.mjs +0 -220
- package/esm2022/lib/core/error.service.mjs +0 -61
- package/esm2022/lib/core/router-helper.service.mjs +0 -111
- package/esm2022/lib/core/scroll.service.mjs +0 -89
- package/esm2022/lib/core/validation-message.service.mjs +0 -185
- package/esm2022/lib/core/window.service.mjs +0 -186
- package/esm2022/lib/display/app-bar/app-bar.component.mjs +0 -46
- package/esm2022/lib/display/avatar/avatar.component.mjs +0 -67
- package/esm2022/lib/display/avatar/avatar.service.mjs +0 -64
- package/esm2022/lib/display/confirm/confirm.component.mjs +0 -168
- package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +0 -63
- package/esm2022/lib/display/dialog/dialog.component.mjs +0 -281
- package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +0 -111
- package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +0 -61
- package/esm2022/lib/display/item-display/item-display.component.mjs +0 -81
- package/esm2022/lib/display/json-display/json-display.component.mjs +0 -47
- package/esm2022/lib/display/resizable/resizable-base.mjs +0 -120
- package/esm2022/lib/display/splash/splash.component.mjs +0 -42
- package/esm2022/lib/display/table/resizable-table.directive.mjs +0 -227
- package/esm2022/lib/display/table/searchable-table.component.mjs +0 -342
- package/esm2022/lib/display/table/table-locked-column.component.mjs +0 -58
- package/esm2022/lib/display/table/table-master-row.component.mjs +0 -163
- package/esm2022/lib/display/table/table-pagination.component.mjs +0 -155
- package/esm2022/lib/display/table/table-selectable-row.component.mjs +0 -235
- package/esm2022/lib/display/table/table.component.mjs +0 -249
- package/esm2022/lib/display/tags/tag.mjs +0 -18
- package/esm2022/lib/display/tags/tags.component.mjs +0 -77
- package/esm2022/lib/display/toast/toast/toast.component.mjs +0 -77
- package/esm2022/lib/display/toast/toaster/toaster.component.mjs +0 -114
- package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +0 -173
- package/esm2022/lib/display/tour/tour.component.mjs +0 -398
- package/esm2022/lib/display/tour/tour.service.mjs +0 -75
- package/esm2022/lib/display/tree/tree.component.mjs +0 -135
- package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +0 -58
- package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +0 -32
- package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +0 -111
- package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +0 -166
- package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +0 -50
- package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +0 -30
- package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +0 -62
- package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +0 -48
- package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +0 -41
- package/esm2022/lib/shared/display.mjs +0 -6
- package/esm2022/lib/shared/form-group.helper.mjs +0 -67
- package/esm2022/lib/shared/json-helper.mjs +0 -19
- package/esm2022/lib/shared/lodash-helper.mjs +0 -52
- package/esm2022/lib/shared/page/page-base/page-base.component.mjs +0 -387
- package/esm2022/lib/shared/page/page-view/page-view.component.mjs +0 -147
- package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
- package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +0 -246
- package/esm2022/public-api.mjs +0 -115
- package/fesm2022/energycap-components.mjs.map +0 -1
@@ -1,281 +0,0 @@
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
2
|
-
import { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, ViewContainerRef, TemplateRef, Inject } from '@angular/core';
|
3
|
-
import { timer, lastValueFrom } from 'rxjs';
|
4
|
-
import { take, takeUntil, tap } from 'rxjs/operators';
|
5
|
-
import { DialogOpenEndEvent, DialogCloseEvent, DialogResult } from './dialog-types';
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
import * as i1 from "../../core/window.service";
|
8
|
-
import * as i2 from "./dialog.service";
|
9
|
-
import * as i3 from "@angular/cdk/a11y";
|
10
|
-
/** These values need to be kept in sync with dialog-base.scss */
|
11
|
-
export const DialogOpenDuration = 125;
|
12
|
-
export const DialogCloseDuration = 100;
|
13
|
-
export const PanelOpenDuration = 250;
|
14
|
-
export const PanelCloseDuration = 225;
|
15
|
-
export class DialogComponent {
|
16
|
-
onOverlayClick(event) {
|
17
|
-
if (event.target.tagName === 'EC-DIALOG' && this.displayAsPanel) {
|
18
|
-
this.close(new DialogResult(false));
|
19
|
-
}
|
20
|
-
}
|
21
|
-
/**
|
22
|
-
* Defines the width of the dialog (height is auto). Can be a number that will be converted to pixels, or xsmall(320px), small(480px), medium(640px), or large(1024px)
|
23
|
-
*/
|
24
|
-
set size(value) {
|
25
|
-
this._size = value;
|
26
|
-
// If the size is a string, set the dialog class. Otherwise, clear it.
|
27
|
-
if (typeof value == 'string') {
|
28
|
-
this.dialogSizeClass = `dialog-${value}`;
|
29
|
-
}
|
30
|
-
else {
|
31
|
-
this.dialogSizeClass = undefined;
|
32
|
-
}
|
33
|
-
}
|
34
|
-
;
|
35
|
-
get size() {
|
36
|
-
return this._size;
|
37
|
-
}
|
38
|
-
constructor(componentFactoryResolver, windowService, dialogService, documentRef) {
|
39
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
40
|
-
this.windowService = windowService;
|
41
|
-
this.dialogService = dialogService;
|
42
|
-
this.documentRef = documentRef;
|
43
|
-
/**
|
44
|
-
* Add/remove the is-open css class to the host element when the dialog is opened/closed.
|
45
|
-
* Styles use the is-open class to show/hide the dialog.
|
46
|
-
*/
|
47
|
-
this.isOpen = false;
|
48
|
-
/**
|
49
|
-
* Add the fade-in css class to the host element when the dialog is opening. Remove when transition is complete.
|
50
|
-
* Styles use the fade-in class to apply a fade-in transition while the dialog is opening.
|
51
|
-
*/
|
52
|
-
this.fadeIn = false;
|
53
|
-
/**
|
54
|
-
* Add the fade-out css class to the host element when the dialog is closing. Remove when transition is complete.
|
55
|
-
* Styles use the fade-out class to apply a fade-out transition while the dialog is closing.
|
56
|
-
*/
|
57
|
-
this.fadeOut = false;
|
58
|
-
this.displayAsPanel = false;
|
59
|
-
this.alignToTop = false;
|
60
|
-
this.transparentMask = false;
|
61
|
-
this.noMask = false;
|
62
|
-
/**
|
63
|
-
* Defines the width of the dialog (height is auto). Can be a number that will be converted to pixels, or xsmall(320px), small(480px), medium(640px), or large(1024px)
|
64
|
-
*/
|
65
|
-
this._size = 'small';
|
66
|
-
/**
|
67
|
-
* Bound to the host. The classes set the --ec-dialog-width variable to our default 'small', 'medium', etc. sizes.
|
68
|
-
* Undefined when the size is a number, which is used for custom sizes.
|
69
|
-
*/
|
70
|
-
this.dialogSizeClass = `dialog-${this._size}`;
|
71
|
-
/**
|
72
|
-
* Emits an event when the dialog is opened
|
73
|
-
*/
|
74
|
-
this.opened = new EventEmitter();
|
75
|
-
/**
|
76
|
-
* Emits an event when the dialog is closed
|
77
|
-
*/
|
78
|
-
this.closed = new EventEmitter();
|
79
|
-
this.previouslyFocusedElement = null;
|
80
|
-
}
|
81
|
-
ngOnInit() {
|
82
|
-
if (this.content) {
|
83
|
-
this.open(this.content, this.context, this.options);
|
84
|
-
}
|
85
|
-
}
|
86
|
-
ngOnDestroy() {
|
87
|
-
// Restore focus to the previously focused element when the dialog is destroyed.
|
88
|
-
// Need to do this here and not in close() because cdkTrapFocusAutoCapture's re-focus happens in ngOnDestroy.
|
89
|
-
// This doesn't work for dialog implementations outside of the dialog service because ngOnDestroy isn't called when
|
90
|
-
// the dialog is closed in those cases.
|
91
|
-
if (this.previouslyFocusedElement) {
|
92
|
-
this.previouslyFocusedElement.focus();
|
93
|
-
}
|
94
|
-
}
|
95
|
-
/**
|
96
|
-
* Clear and previously loaded content
|
97
|
-
* Load the component
|
98
|
-
* Save a reference of the loaded component
|
99
|
-
* Show the dialog and fade in
|
100
|
-
*/
|
101
|
-
async open(component, context, options) {
|
102
|
-
if (!this.isOpen) {
|
103
|
-
// Capture the currently focused element, also looking in the shadow dom. Focus is restored to this element once the dialog is
|
104
|
-
// destroyed. See ngOnDestroy(). We need to do this here in addition to the cdkTrapFocusAutoCapture because sometimes the dialog's
|
105
|
-
// content is drawn and grabs focus before the cdkTrapFocusAutoCapture is able to read the previously focused element.
|
106
|
-
const activeElement = this.documentRef?.activeElement;
|
107
|
-
this.previouslyFocusedElement = activeElement?.shadowRoot?.activeElement || activeElement;
|
108
|
-
if (options) {
|
109
|
-
if (options.alignToTop) {
|
110
|
-
this.alignToTop = true;
|
111
|
-
}
|
112
|
-
if (options.alignToTopMargin) {
|
113
|
-
this.alignToTopMargin = options.alignToTopMargin;
|
114
|
-
}
|
115
|
-
;
|
116
|
-
if (options.displayAsPanel) {
|
117
|
-
this.displayAsPanel = true;
|
118
|
-
this.transparentMask = true;
|
119
|
-
}
|
120
|
-
if (options.transparentMask !== undefined) {
|
121
|
-
this.transparentMask = options.transparentMask;
|
122
|
-
}
|
123
|
-
if (options.noMask !== undefined) {
|
124
|
-
this.noMask = options.noMask;
|
125
|
-
}
|
126
|
-
if (options.canOpenDialog !== undefined) {
|
127
|
-
const canOpen = await options.canOpenDialog();
|
128
|
-
if (!canOpen) {
|
129
|
-
this.close(new DialogResult(false));
|
130
|
-
return;
|
131
|
-
}
|
132
|
-
}
|
133
|
-
}
|
134
|
-
// set the size before opening
|
135
|
-
if (typeof this.size === 'number') {
|
136
|
-
this.width = this.size;
|
137
|
-
}
|
138
|
-
else {
|
139
|
-
// Reset the width if the size is not a number. This is to prevent the width property conflicting with the size.
|
140
|
-
this.width = undefined;
|
141
|
-
}
|
142
|
-
this.minWidth = options?.minWidth;
|
143
|
-
this.fadeIn = true;
|
144
|
-
if (component instanceof TemplateRef) {
|
145
|
-
this.contentContainer.createEmbeddedView(component);
|
146
|
-
}
|
147
|
-
else {
|
148
|
-
let componentFactory = this.componentFactoryResolver.resolveComponentFactory(component);
|
149
|
-
this.componentRef = this.contentContainer.createComponent(componentFactory);
|
150
|
-
}
|
151
|
-
this.isOpen = true;
|
152
|
-
this.openDialogComponent(context);
|
153
|
-
// Once the animation is complete we can remove the animation class and
|
154
|
-
// emit the opened event, both to the hosting component and via DialogService
|
155
|
-
await lastValueFrom(timer(this.displayAsPanel ? PanelOpenDuration : DialogOpenDuration).pipe(take(1), tap(() => {
|
156
|
-
const dialogId = this.getDialogId();
|
157
|
-
this.fadeIn = false;
|
158
|
-
this.opened.emit(dialogId);
|
159
|
-
this.dialogService.triggerEvent(new DialogOpenEndEvent(this.dialogOpenStartEventId, dialogId));
|
160
|
-
})));
|
161
|
-
this.handleCloseOnResize();
|
162
|
-
}
|
163
|
-
}
|
164
|
-
/**
|
165
|
-
* Fade the dialog out and hide
|
166
|
-
*/
|
167
|
-
close(result) {
|
168
|
-
this.fadeOut = true;
|
169
|
-
const dialogId = this.getDialogId(); //call before wiping out the content
|
170
|
-
// When the fade out animation is complete we will hide the dialog
|
171
|
-
// and remove the animation class as well as let the world know that
|
172
|
-
// we're closed so they can complete any other cleanup
|
173
|
-
setTimeout(() => {
|
174
|
-
this.isOpen = false;
|
175
|
-
this.fadeOut = false;
|
176
|
-
this.contentContainer?.clear();
|
177
|
-
this.componentRef = undefined;
|
178
|
-
this.closed.emit(result);
|
179
|
-
this.dialogService.triggerEvent(new DialogCloseEvent(this.dialogOpenStartEventId, dialogId, result?.save, result?.context));
|
180
|
-
this.resetOptions();
|
181
|
-
}, this.displayAsPanel ? PanelCloseDuration : DialogCloseDuration);
|
182
|
-
}
|
183
|
-
/**Open the dialog and attach handlers to the cancel and save events to close it and notify the hosting page */
|
184
|
-
openDialogComponent(context) {
|
185
|
-
if (this.componentRef && this.componentRef.instance) {
|
186
|
-
const dialogContent = this.componentRef.instance;
|
187
|
-
// OnOpen is optional - create dialogs don't necessarily define it
|
188
|
-
if (dialogContent.onOpen) {
|
189
|
-
dialogContent.onOpen(context);
|
190
|
-
}
|
191
|
-
dialogContent.onDialogCancel.pipe(takeUntil(this.closed)).subscribe(() => {
|
192
|
-
this.close(new DialogResult(false));
|
193
|
-
});
|
194
|
-
dialogContent.onDialogSave.pipe(takeUntil(this.closed)).subscribe(val => {
|
195
|
-
this.close(new DialogResult(true, val));
|
196
|
-
});
|
197
|
-
}
|
198
|
-
}
|
199
|
-
/**
|
200
|
-
* Reset options so they don't persist next time the
|
201
|
-
* root dialog is opened
|
202
|
-
* @deprecated
|
203
|
-
*/
|
204
|
-
resetOptions() {
|
205
|
-
this.alignToTop = false;
|
206
|
-
this.displayAsPanel = false;
|
207
|
-
}
|
208
|
-
/** If they turned on closeOnResize, automatically close the dialog any time somebody resizes the window.
|
209
|
-
* This is useful for responsive layouts to prevent having the dialogContent on the screen twice */
|
210
|
-
handleCloseOnResize() {
|
211
|
-
if (this.options && this.options.closeOnResize) {
|
212
|
-
this.windowService.resized.pipe(takeUntil(this.closed), take(1)).subscribe(() => {
|
213
|
-
this.close(new DialogResult(false));
|
214
|
-
});
|
215
|
-
}
|
216
|
-
}
|
217
|
-
/**Extract the dialogId from the dialog content, if it has one. Template-based dialogs generally don't.
|
218
|
-
* We fall back to empty string to allow anybody listening for dialogEvents to still record the open/close even if
|
219
|
-
* the dialog itself does not say what the name is.
|
220
|
-
*/
|
221
|
-
getDialogId() {
|
222
|
-
return this.componentRef?.instance.dialogId || '';
|
223
|
-
}
|
224
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.WindowService }, { token: i2.DialogService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
225
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DialogComponent, selector: "ec-dialog", inputs: { size: "size", content: "content", context: "context", options: "options", dialogOpenStartEventId: "dialogOpenStartEventId" }, outputs: { opened: "opened", closed: "closed" }, host: { listeners: { "click": "onOverlayClick($event)" }, properties: { "class": "dialogSizeClass", "style.--ec-dialog-width.px": "width", "class.is-open": "this.isOpen", "class.fade-in": "this.fadeIn", "class.fade-out": "this.fadeOut", "class.is-panel": "this.displayAsPanel", "class.is-top-aligned": "this.alignToTop", "style.--ec-dialog-margin-align-to-top": "this.alignToTopMargin", "class.is-transparent": "this.transparentMask", "class.no-mask": "this.noMask" } }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<article [style.min-width]="minWidth" cdkTrapFocus cdkTrapFocusAutoCapture><ng-template #content></ng-template></article>', isInline: true, styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panelMaskFadeIn{0%{background-color:transparent}to{background-color:var(--ec-dialog-background-color)}}:host{--ec-dialog-background-color: var(--ec-background-color-dialog);align-items:center;background-color:var(--ec-dialog-background-color);justify-content:center;position:fixed;z-index:var(--ec-z-index-dialog);inset:0;display:none}:host.is-open{display:flex}:host.fade-in{animation-name:fadeIn;animation-duration:125ms;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.fade-out{animation-name:fadeIn;animation-duration:.1s;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.is-panel article{position:absolute;top:0;bottom:0;right:0;max-height:none;border-right:0;border-top:0;border-bottom:0;border-radius:0;box-shadow:0 0 .5rem var(--ec-color-shadow)}:host.is-panel.fade-in{animation-name:panelMaskFadeIn;animation-duration:.25s;animation-fill-mode:forwards}:host.is-panel.fade-in article{animation-name:slideIn;animation-duration:.25s;animation-fill-mode:forwards;animation-timing-function:ease-out}:host.is-panel.fade-out{animation-name:panelMaskFadeIn;animation-direction:reverse;animation-fill-mode:forwards}:host.is-panel.fade-out article{animation-name:slideIn;animation-duration:225ms;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in}:host.is-panel.no-mask{left:auto;width:var(--ec-dialog-width)}:host.is-top-aligned{align-items:flex-start}:host.is-top-aligned article{min-height:auto;margin-top:var(--ec-dialog-margin-align-to-top, 20vh);max-height:calc(100vh - var(--ec-dialog-margin-align-to-top, 20vh) - 5vh)}:host.is-transparent{--ec-dialog-background-color: transparent}article{background-color:var(--ec-background-color-body);background-clip:padding-box;box-shadow:0 0 .625rem #1a1a2333;border-radius:var(--ec-border-radius-dialog);overflow:hidden;display:flex;flex:none;min-height:9rem;max-height:90vh;max-width:90vw;width:var(--ec-dialog-width)}:host.dialog-xsmall{--ec-dialog-width: 20rem}:host.dialog-small{--ec-dialog-width: 30rem}:host.dialog-medium{--ec-dialog-width: 40rem}:host.dialog-large{--ec-dialog-width: 50rem}:host.dialog-xlarge{--ec-dialog-width: 60rem}:host.dialog-full{--ec-dialog-width: 90vw}\n"], dependencies: [{ kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] }); }
|
226
|
-
}
|
227
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogComponent, decorators: [{
|
228
|
-
type: Component,
|
229
|
-
args: [{ selector: 'ec-dialog', template: '<article [style.min-width]="minWidth" cdkTrapFocus cdkTrapFocusAutoCapture><ng-template #content></ng-template></article>', host: {
|
230
|
-
'[class]': 'dialogSizeClass',
|
231
|
-
'[style.--ec-dialog-width.px]': 'width'
|
232
|
-
}, styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panelMaskFadeIn{0%{background-color:transparent}to{background-color:var(--ec-dialog-background-color)}}:host{--ec-dialog-background-color: var(--ec-background-color-dialog);align-items:center;background-color:var(--ec-dialog-background-color);justify-content:center;position:fixed;z-index:var(--ec-z-index-dialog);inset:0;display:none}:host.is-open{display:flex}:host.fade-in{animation-name:fadeIn;animation-duration:125ms;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.fade-out{animation-name:fadeIn;animation-duration:.1s;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.is-panel article{position:absolute;top:0;bottom:0;right:0;max-height:none;border-right:0;border-top:0;border-bottom:0;border-radius:0;box-shadow:0 0 .5rem var(--ec-color-shadow)}:host.is-panel.fade-in{animation-name:panelMaskFadeIn;animation-duration:.25s;animation-fill-mode:forwards}:host.is-panel.fade-in article{animation-name:slideIn;animation-duration:.25s;animation-fill-mode:forwards;animation-timing-function:ease-out}:host.is-panel.fade-out{animation-name:panelMaskFadeIn;animation-direction:reverse;animation-fill-mode:forwards}:host.is-panel.fade-out article{animation-name:slideIn;animation-duration:225ms;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in}:host.is-panel.no-mask{left:auto;width:var(--ec-dialog-width)}:host.is-top-aligned{align-items:flex-start}:host.is-top-aligned article{min-height:auto;margin-top:var(--ec-dialog-margin-align-to-top, 20vh);max-height:calc(100vh - var(--ec-dialog-margin-align-to-top, 20vh) - 5vh)}:host.is-transparent{--ec-dialog-background-color: transparent}article{background-color:var(--ec-background-color-body);background-clip:padding-box;box-shadow:0 0 .625rem #1a1a2333;border-radius:var(--ec-border-radius-dialog);overflow:hidden;display:flex;flex:none;min-height:9rem;max-height:90vh;max-width:90vw;width:var(--ec-dialog-width)}:host.dialog-xsmall{--ec-dialog-width: 20rem}:host.dialog-small{--ec-dialog-width: 30rem}:host.dialog-medium{--ec-dialog-width: 40rem}:host.dialog-large{--ec-dialog-width: 50rem}:host.dialog-xlarge{--ec-dialog-width: 60rem}:host.dialog-full{--ec-dialog-width: 90vw}\n"] }]
|
233
|
-
}], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i1.WindowService }, { type: i2.DialogService }, { type: Document, decorators: [{
|
234
|
-
type: Inject,
|
235
|
-
args: [DOCUMENT]
|
236
|
-
}] }], propDecorators: { isOpen: [{
|
237
|
-
type: HostBinding,
|
238
|
-
args: ['class.is-open']
|
239
|
-
}], fadeIn: [{
|
240
|
-
type: HostBinding,
|
241
|
-
args: ['class.fade-in']
|
242
|
-
}], fadeOut: [{
|
243
|
-
type: HostBinding,
|
244
|
-
args: ['class.fade-out']
|
245
|
-
}], displayAsPanel: [{
|
246
|
-
type: HostBinding,
|
247
|
-
args: ['class.is-panel']
|
248
|
-
}], alignToTop: [{
|
249
|
-
type: HostBinding,
|
250
|
-
args: ['class.is-top-aligned']
|
251
|
-
}], alignToTopMargin: [{
|
252
|
-
type: HostBinding,
|
253
|
-
args: ['style.--ec-dialog-margin-align-to-top']
|
254
|
-
}], transparentMask: [{
|
255
|
-
type: HostBinding,
|
256
|
-
args: ['class.is-transparent']
|
257
|
-
}], noMask: [{
|
258
|
-
type: HostBinding,
|
259
|
-
args: ['class.no-mask']
|
260
|
-
}], onOverlayClick: [{
|
261
|
-
type: HostListener,
|
262
|
-
args: ['click', ['$event']]
|
263
|
-
}], size: [{
|
264
|
-
type: Input
|
265
|
-
}], content: [{
|
266
|
-
type: Input
|
267
|
-
}], context: [{
|
268
|
-
type: Input
|
269
|
-
}], options: [{
|
270
|
-
type: Input
|
271
|
-
}], dialogOpenStartEventId: [{
|
272
|
-
type: Input
|
273
|
-
}], opened: [{
|
274
|
-
type: Output
|
275
|
-
}], closed: [{
|
276
|
-
type: Output
|
277
|
-
}], contentContainer: [{
|
278
|
-
type: ViewChild,
|
279
|
-
args: ['content', { read: ViewContainerRef, static: true }]
|
280
|
-
}] } });
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUEwQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFRLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xNLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBNkIsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRy9HLGlFQUFpRTtBQUNqRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBVyxHQUFHLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQVcsR0FBRyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFXLEdBQUcsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBVyxHQUFHLENBQUM7QUFXOUMsTUFBTSxPQUFPLGVBQWU7SUE2QmdCLGNBQWMsQ0FBQyxLQUFpQjtRQUN4RSxJQUFrQixLQUFLLENBQUMsTUFBTyxDQUFDLE9BQU8sS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQy9FLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMs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QUEySCxRQUUvSDt3QkFDSixTQUFTLEVBQUUsaUJBQWlCO3dCQUM1Qiw4QkFBOEIsRUFBRSxPQUFPO3FCQUN4Qzs7MEJBZ0hFLE1BQU07MkJBQUMsUUFBUTt5Q0F6R21CLE1BQU07c0JBQTFDLFdBQVc7dUJBQUMsZUFBZTtnQkFNUyxNQUFNO3NCQUExQyxXQUFXO3VCQUFDLGVBQWU7Z0JBTVUsT0FBTztzQkFBNUMsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBRVMsY0FBYztzQkFBbkQsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBRWUsVUFBVTtzQkFBckQsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBRTBCLGdCQUFnQjtzQkFBNUUsV0FBVzt1QkFBQyx1Q0FBdUM7Z0JBRVIsZUFBZTtzQkFBMUQsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBRUUsTUFBTTtzQkFBMUMsV0FBVzt1QkFBQyxlQUFlO2dCQUVjLGNBQWM7c0JBQXZELFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVNiLElBQUk7c0JBQXZCLEtBQUs7Z0JBdUJHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQU9HLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFLVyxNQUFNO3NCQUF0QixNQUFNO2dCQUtVLE1BQU07c0JBQXRCLE1BQU07Z0JBS2dFLGdCQUFnQjtzQkFBdEYsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIFRlbXBsYXRlUmVmLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGltZXIsIGxhc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFdpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3dpbmRvdy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nQ29udGVudCB9IGZyb20gJy4vZGlhbG9nLWNvbnRlbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dPcGVuRW5kRXZlbnQsIERpYWxvZ0Nsb3NlRXZlbnQsIERpYWxvZ1NpemUsIERpYWxvZ09wdGlvbnMsIERpYWxvZ1Jlc3VsdCB9IGZyb20gJy4vZGlhbG9nLXR5cGVzJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4vZGlhbG9nLnNlcnZpY2UnO1xyXG5cclxuLyoqIFRoZXNlIHZhbHVlcyBuZWVkIHRvIGJlIGtlcHQgaW4gc3luYyB3aXRoIGRpYWxvZy1iYXNlLnNjc3MgKi9cclxuZXhwb3J0IGNvbnN0IERpYWxvZ09wZW5EdXJhdGlvbjogbnVtYmVyID0gMTI1O1xyXG5leHBvcnQgY29uc3QgRGlhbG9nQ2xvc2VEdXJhdGlvbjogbnVtYmVyID0gMTAwO1xyXG5leHBvcnQgY29uc3QgUGFuZWxPcGVuRHVyYXRpb246IG51bWJlciA9IDI1MDtcclxuZXhwb3J0IGNvbnN0IFBhbmVsQ2xvc2VEdXJhdGlvbjogbnVtYmVyID0gMjI1O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlOiAnPGFydGljbGUgW3N0eWxlLm1pbi13aWR0aF09XCJtaW5XaWR0aFwiIGNka1RyYXBGb2N1cyBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZT48bmctdGVtcGxhdGUgI2NvbnRlbnQ+PC9uZy10ZW1wbGF0ZT48L2FydGljbGU+JyxcclxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICAnW2NsYXNzXSc6ICdkaWFsb2dTaXplQ2xhc3MnLFxyXG4gICAgJ1tzdHlsZS4tLWVjLWRpYWxvZy13aWR0aC5weF0nOiAnd2lkdGgnXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nQ29tcG9uZW50IHtcclxuICAvKipcclxuICAgKiBBZGQvcmVtb3ZlIHRoZSBpcy1vcGVuIGNzcyBjbGFzcyB0byB0aGUgaG9zdCBlbGVtZW50IHdoZW4gdGhlIGRpYWxvZyBpcyBvcGVuZWQvY2xvc2VkLlxyXG4gICAqIFN0eWxlcyB1c2UgdGhlIGlzLW9wZW4gY2xhc3MgdG8gc2hvdy9oaWRlIHRoZSBkaWFsb2cuXHJcbiAgICovXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1vcGVuJykgcHVibGljIGlzT3BlbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBBZGQgdGhlIGZhZGUtaW4gY3NzIGNsYXNzIHRvIHRoZSBob3N0IGVsZW1lbnQgd2hlbiB0aGUgZGlhbG9nIGlzIG9wZW5pbmcuIFJlbW92ZSB3aGVuIHRyYW5zaXRpb24gaXMgY29tcGxldGUuXHJcbiAgICogU3R5bGVzIHVzZSB0aGUgZmFkZS1pbiBjbGFzcyB0byBhcHBseSBhIGZhZGUtaW4gdHJhbnNpdGlvbiB3aGlsZSB0aGUgZGlhbG9nIGlzIG9wZW5pbmcuXHJcbiAgICovXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mYWRlLWluJykgcHVibGljIGZhZGVJbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBBZGQgdGhlIGZhZGUtb3V0IGNzcyBjbGFzcyB0byB0aGUgaG9zdCBlbGVtZW50IHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zaW5nLiBSZW1vdmUgd2hlbiB0cmFuc2l0aW9uIGlzIGNvbXBsZXRlLlxyXG4gICAqIFN0eWxlcyB1c2UgdGhlIGZhZGUtb3V0IGNsYXNzIHRvIGFwcGx5IGEgZmFkZS1vdXQgdHJhbnNpdGlvbiB3aGlsZSB0aGUgZGlhbG9nIGlzIGNsb3NpbmcuXHJcbiAgICovXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mYWRlLW91dCcpIHB1YmxpYyBmYWRlT3V0ID0gZmFsc2U7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtcGFuZWwnKSBwdWJsaWMgZGlzcGxheUFzUGFuZWwgPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy10b3AtYWxpZ25lZCcpIHB1YmxpYyBhbGlnblRvVG9wID0gZmFsc2U7XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS1lYy1kaWFsb2ctbWFyZ2luLWFsaWduLXRvLXRvcCcpIHB1YmxpYyBhbGlnblRvVG9wTWFyZ2luPzogc3RyaW5nO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXRyYW5zcGFyZW50JykgcHVibGljIHRyYW5zcGFyZW50TWFzayA9IGZhbHNlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5vLW1hc2snKSBwdWJsaWMgbm9NYXNrID0gZmFsc2U7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSkgcHVibGljIG9uT3ZlcmxheUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAoKDxIVE1MRWxlbWVudD5ldmVudC50YXJnZXQpLnRhZ05hbWUgPT09ICdFQy1ESUFMT0cnICYmIHRoaXMuZGlzcGxheUFzUGFuZWwpIHtcclxuICAgICAgdGhpcy5jbG9zZShuZXcgRGlhbG9nUmVzdWx0KGZhbHNlKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSB3aWR0aCBvZiB0aGUgZGlhbG9nIChoZWlnaHQgaXMgYXV0bykuIENhbiBiZSBhIG51bWJlciB0aGF0IHdpbGwgYmUgY29udmVydGVkIHRvIHBpeGVscywgb3IgeHNtYWxsKDMyMHB4KSwgc21hbGwoNDgwcHgpLCBtZWRpdW0oNjQwcHgpLCBvciBsYXJnZSgxMDI0cHgpXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHNldCBzaXplKHZhbHVlOiBEaWFsb2dTaXplKSB7XHJcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XHJcbiAgICAvLyBJZiB0aGUgc2l6ZSBpcyBhIHN0cmluZywgc2V0IHRoZSBkaWFsb2cgY2xhc3MuIE90aGVyd2lzZSwgY2xlYXIgaXQuXHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nU2l6ZUNsYXNzID0gYGRpYWxvZy0ke3ZhbHVlfWA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRpYWxvZ1NpemVDbGFzcyA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9O1xyXG4gIHB1YmxpYyBnZXQgc2l6ZSgpOiBEaWFsb2dTaXplIHtcclxuICAgIHJldHVybiB0aGlzLl9zaXplO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSB3aWR0aCBvZiB0aGUgZGlhbG9nIChoZWlnaHQgaXMgYXV0bykuIENhbiBiZSBhIG51bWJlciB0aGF0IHdpbGwgYmUgY29udmVydGVkIHRvIHBpeGVscywgb3IgeHNtYWxsKDMyMHB4KSwgc21hbGwoNDgwcHgpLCBtZWRpdW0oNjQwcHgpLCBvciBsYXJnZSgxMDI0cHgpXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfc2l6ZTogRGlhbG9nU2l6ZSA9ICdzbWFsbCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEJvdW5kIHRvIHRoZSBob3N0LiBUaGUgY2xhc3NlcyBzZXQgdGhlIC0tZWMtZGlhbG9nLXdpZHRoIHZhcmlhYmxlIHRvIG91ciBkZWZhdWx0ICdzbWFsbCcsICdtZWRpdW0nLCBldGMuIHNpemVzLlxyXG4gICAqIFVuZGVmaW5lZCB3aGVuIHRoZSBzaXplIGlzIGEgbnVtYmVyLCB3aGljaCBpcyB1c2VkIGZvciBjdXN0b20gc2l6ZXMuXHJcbiAgICovXHJcbiAgZGlhbG9nU2l6ZUNsYXNzPzogc3RyaW5nID0gYGRpYWxvZy0ke3RoaXMuX3NpemV9YDtcclxuXHJcbiAgQElucHV0KCkgY29udGVudD86IFR5cGU8RGlhbG9nQ29udGVudDxhbnk+PiB8IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgY29udGV4dD86IGFueTtcclxuICBASW5wdXQoKSBvcHRpb25zPzogRGlhbG9nT3B0aW9ucztcclxuXHJcbiAgLyoqT25seSBzZXQgaWYgdGhpcyBwYXJ0aWN1bGFyIGluc3RhbmNlIG9mIGEgZGlhbG9nIHNob3VsZCBiZSBpZGVudGlmaWVkIHNlcGFyYXRlbHkgZnJvbSBvdGhlcnMuXHJcbiAgICogSWYgcHJvdmlkZWQsIHRoaXMgaXMgZW1pdHRlZCB0byB0aGUgZGlhbG9nIHNlcnZpY2Ugd2l0aCBPcGVuRW5kIGFuZCBDbG9zZSBldmVudHMuIERpcmVjdCB1c2FnZVxyXG4gICAqIG9mIHRoZSBEaWFsb2dDb21wb25lbnQgZnJvbSBvdXRzaWRlIGEgRGlhbG9nR3JvdXAgZG9lcyBub3QgdXN1YWxseSByZXF1aXJlIHVzaW5nIHRoaXMgcGFyYW1ldGVyIGFzXHJcbiAgICogdGhlIGRpYWxvZyByZWZlcmVuY2UgaXRzZWxmIGZ1bmN0aW9ucyBhcyB0aGUgaWRlbnRpZmllclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpYWxvZ09wZW5TdGFydEV2ZW50SWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGRpYWxvZyBpcyBvcGVuZWRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcHVibGljIG9wZW5lZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcHVibGljIGNsb3NlZDogRXZlbnRFbWl0dGVyPERpYWxvZ1Jlc3VsdDxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGNvbnRhaW5lciB3aGVyZSB0aGUgY29tcG9uZW50IHdpbGwgYmUgbG9hZGVkXHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBjb250ZW50Q29udGFpbmVyITogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3VzdG9tIHdpZHRoIG9mIHRoZSBkaWFsb2cgaW4gcGl4ZWxzLiBTZXQgYnkgZGVmaW5pbmcgdGhlIHNpemUgcHJvcGVydHlcclxuICAgKiBhcyBhIG51bWJlciB2YWx1ZS5cclxuICAgKi9cclxuICBwdWJsaWMgd2lkdGg/OiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEN1c3RvbSBtaW4td2lkdGggb2YgdGhlIGRpYWxvZy4gT25seSB0YWtlcyBlZmZlY3QgaWYgc2l6ZSBpcyBzZXQgdG8gZHluYW1pYy5cclxuICAgKiBNdXN0IGluY2x1ZGUgdW5pdHMsIGkuZS4gXCIzMnJlbVwiIG9yIFwiNjQwcHhcIlxyXG4gICAqL1xyXG4gIHB1YmxpYyBtaW5XaWR0aD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogQSByZWZlcmVuY2Ugb2YgdGhlIGNvbXBvbmVudCBvbmNlIGl0IGhhcyBiZWVuIGxvYWRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBjb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8YW55PjtcclxuXHJcbiAgcHJpdmF0ZSBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgd2luZG93U2VydmljZTogV2luZG93U2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnRSZWY6IERvY3VtZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb250ZW50KSB7XHJcbiAgICAgIHRoaXMub3Blbih0aGlzLmNvbnRlbnQsIHRoaXMuY29udGV4dCwgdGhpcy5vcHRpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8gUmVzdG9yZSBmb2N1cyB0byB0aGUgcHJldmlvdXNseSBmb2N1c2VkIGVsZW1lbnQgd2hlbiB0aGUgZGlhbG9nIGlzIGRlc3Ryb3llZC5cclxuICAgIC8vIE5lZWQgdG8gZG8gdGhpcyBoZXJlIGFuZCBub3QgaW4gY2xvc2UoKSBiZWNhdXNlIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlJ3MgcmUtZm9jdXMgaGFwcGVucyBpbiBuZ09uRGVzdHJveS5cclxuICAgIC8vIFRoaXMgZG9lc24ndCB3b3JrIGZvciBkaWFsb2cgaW1wbGVtZW50YXRpb25zIG91dHNpZGUgb2YgdGhlIGRpYWxvZyBzZXJ2aWNlIGJlY2F1c2UgbmdPbkRlc3Ryb3kgaXNuJ3QgY2FsbGVkIHdoZW5cclxuICAgIC8vIHRoZSBkaWFsb2cgaXMgY2xvc2VkIGluIHRob3NlIGNhc2VzLlxyXG4gICAgaWYgKHRoaXMucHJldmlvdXNseUZvY3VzZWRFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMucHJldmlvdXNseUZvY3VzZWRFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhciBhbmQgcHJldmlvdXNseSBsb2FkZWQgY29udGVudFxyXG4gICAqIExvYWQgdGhlIGNvbXBvbmVudFxyXG4gICAqIFNhdmUgYSByZWZlcmVuY2Ugb2YgdGhlIGxvYWRlZCBjb21wb25lbnRcclxuICAgKiBTaG93IHRoZSBkaWFsb2cgYW5kIGZhZGUgaW5cclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgb3BlbjxUPihjb21wb25lbnQ6IFR5cGU8RGlhbG9nQ29udGVudDxUPj4gfCBUZW1wbGF0ZVJlZjxhbnk+LCBjb250ZXh0PzogVCwgb3B0aW9ucz86IERpYWxvZ09wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5pc09wZW4pIHtcclxuICAgICAgXHJcbiAgICAgIC8vIENhcHR1cmUgdGhlIGN1cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQsIGFsc28gbG9va2luZyBpbiB0aGUgc2hhZG93IGRvbS4gRm9jdXMgaXMgcmVzdG9yZWQgdG8gdGhpcyBlbGVtZW50IG9uY2UgdGhlIGRpYWxvZyBpc1xyXG4gICAgICAvLyBkZXN0cm95ZWQuIFNlZSBuZ09uRGVzdHJveSgpLiBXZSBuZWVkIHRvIGRvIHRoaXMgaGVyZSBpbiBhZGRpdGlvbiB0byB0aGUgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUgYmVjYXVzZSBzb21ldGltZXMgdGhlIGRpYWxvZydzXHJcbiAgICAgIC8vIGNvbnRlbnQgaXMgZHJhd24gYW5kIGdyYWJzIGZvY3VzIGJlZm9yZSB0aGUgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUgaXMgYWJsZSB0byByZWFkIHRoZSBwcmV2aW91c2x5IGZvY3VzZWQgZWxlbWVudC5cclxuICAgICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IDxIVE1MRWxlbWVudCB8IG51bGw+dGhpcy5kb2N1bWVudFJlZj8uYWN0aXZlRWxlbWVudDtcclxuICAgICAgdGhpcy5wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+YWN0aXZlRWxlbWVudD8uc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCB8fCBhY3RpdmVFbGVtZW50O1xyXG5cclxuICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICBpZiAob3B0aW9ucy5hbGlnblRvVG9wKSB7XHJcbiAgICAgICAgICB0aGlzLmFsaWduVG9Ub3AgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuYWxpZ25Ub1RvcE1hcmdpbikge1xyXG4gICAgICAgICAgdGhpcy5hbGlnblRvVG9wTWFyZ2luID0gb3B0aW9ucy5hbGlnblRvVG9wTWFyZ2luO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmRpc3BsYXlBc1BhbmVsKSB7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlBc1BhbmVsID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudHJhbnNwYXJlbnRNYXNrID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnRyYW5zcGFyZW50TWFzayAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLnRyYW5zcGFyZW50TWFzayA9IG9wdGlvbnMudHJhbnNwYXJlbnRNYXNrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMubm9NYXNrICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMubm9NYXNrID0gb3B0aW9ucy5ub01hc2s7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5jYW5PcGVuRGlhbG9nICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGNvbnN0IGNhbk9wZW4gPSBhd2FpdCBvcHRpb25zLmNhbk9wZW5EaWFsb2coKTtcclxuICAgICAgICAgIGlmICghY2FuT3Blbikge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKG5ldyBEaWFsb2dSZXN1bHQoZmFsc2UpKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gc2V0IHRoZSBzaXplIGJlZm9yZSBvcGVuaW5nXHJcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5zaXplID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHRoaXMud2lkdGggPSB0aGlzLnNpemU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gUmVzZXQgdGhlIHdpZHRoIGlmIHRoZSBzaXplIGlzIG5vdCBhIG51bWJlci4gVGhpcyBpcyB0byBwcmV2ZW50IHRoZSB3aWR0aCBwcm9wZXJ0eSBjb25mbGljdGluZyB3aXRoIHRoZSBzaXplLlxyXG4gICAgICAgIHRoaXMud2lkdGggPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMubWluV2lkdGggPSBvcHRpb25zPy5taW5XaWR0aDtcclxuXHJcbiAgICAgIHRoaXMuZmFkZUluID0gdHJ1ZTtcclxuICAgICAgaWYgKGNvbXBvbmVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XHJcbiAgICAgICAgdGhpcy5jb250ZW50Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyhjb21wb25lbnQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KTtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29udGVudENvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMub3BlbkRpYWxvZ0NvbXBvbmVudDxUPihjb250ZXh0KTtcclxuXHJcbiAgICAgIC8vIE9uY2UgdGhlIGFuaW1hdGlvbiBpcyBjb21wbGV0ZSB3ZSBjYW4gcmVtb3ZlIHRoZSBhbmltYXRpb24gY2xhc3MgYW5kXHJcbiAgICAgIC8vIGVtaXQgdGhlIG9wZW5lZCBldmVudCwgYm90aCB0byB0aGUgaG9zdGluZyBjb21wb25lbnQgYW5kIHZpYSBEaWFsb2dTZXJ2aWNlXHJcbiAgICAgIGF3YWl0IGxhc3RWYWx1ZUZyb20odGltZXIodGhpcy5kaXNwbGF5QXNQYW5lbCA/IFBhbmVsT3BlbkR1cmF0aW9uIDogRGlhbG9nT3BlbkR1cmF0aW9uKS5waXBlKHRha2UoMSksIHRhcCgoKSA9PiB7XHJcbiAgICBjb25zdCBkaWFsb2dJZCA9IHRoaXMuZ2V0RGlhbG9nSWQoKTtcclxuICAgIHRoaXMuZmFkZUluID0gZmFsc2U7XHJcbiAgICB0aGlzLm9wZW5lZC5lbWl0KGRpYWxvZ0lkKTtcclxuICAgIHRoaXMuZGlhbG9nU2VydmljZS50cmlnZ2VyRXZlbnQobmV3IERpYWxvZ09wZW5FbmRFdmVudCh0aGlzLmRpYWxvZ09wZW5TdGFydEV2ZW50SWQsIGRpYWxvZ0lkKSk7XHJcbn0pKSk7XHJcblxyXG4gICAgICB0aGlzLmhhbmRsZUNsb3NlT25SZXNpemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZhZGUgdGhlIGRpYWxvZyBvdXQgYW5kIGhpZGVcclxuICAgKi9cclxuICBwdWJsaWMgY2xvc2U8VD4ocmVzdWx0PzogRGlhbG9nUmVzdWx0PFQ+KTogdm9pZCB7XHJcbiAgICB0aGlzLmZhZGVPdXQgPSB0cnVlO1xyXG4gICAgY29uc3QgZGlhbG9nSWQgPSB0aGlzLmdldERpYWxvZ0lkKCk7ICAvL2NhbGwgYmVmb3JlIHdpcGluZyBvdXQgdGhlIGNvbnRlbnRcclxuXHJcbiAgICAvLyBXaGVuIHRoZSBmYWRlIG91dCBhbmltYXRpb24gaXMgY29tcGxldGUgd2Ugd2lsbCBoaWRlIHRoZSBkaWFsb2dcclxuICAgIC8vIGFuZCByZW1vdmUgdGhlIGFuaW1hdGlvbiBjbGFzcyBhcyB3ZWxsIGFzIGxldCB0aGUgd29ybGQga25vdyB0aGF0XHJcbiAgICAvLyB3ZSdyZSBjbG9zZWQgc28gdGhleSBjYW4gY29tcGxldGUgYW55IG90aGVyIGNsZWFudXBcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmZhZGVPdXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jb250ZW50Q29udGFpbmVyPy5jbGVhcigpO1xyXG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5jbG9zZWQuZW1pdChyZXN1bHQpO1xyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UudHJpZ2dlckV2ZW50KG5ldyBEaWFsb2dDbG9zZUV2ZW50KHRoaXMuZGlhbG9nT3BlblN0YXJ0RXZlbnRJZCwgZGlhbG9nSWQsIHJlc3VsdD8uc2F2ZSwgcmVzdWx0Py5jb250ZXh0KSk7XHJcbiAgICAgIHRoaXMucmVzZXRPcHRpb25zKCk7XHJcbiAgICB9LCB0aGlzLmRpc3BsYXlBc1BhbmVsID8gUGFuZWxDbG9zZUR1cmF0aW9uIDogRGlhbG9nQ2xvc2VEdXJhdGlvbilcclxuICB9XHJcblxyXG4gIC8qKk9wZW4gdGhlIGRpYWxvZyBhbmQgYXR0YWNoIGhhbmRsZXJzIHRvIHRoZSBjYW5jZWwgYW5kIHNhdmUgZXZlbnRzIHRvIGNsb3NlIGl0IGFuZCBub3RpZnkgdGhlIGhvc3RpbmcgcGFnZSAqL1xyXG4gIHByaXZhdGUgb3BlbkRpYWxvZ0NvbXBvbmVudDxUPihjb250ZXh0PzogVCkge1xyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICYmIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKSB7XHJcbiAgICAgIGNvbnN0IGRpYWxvZ0NvbnRlbnQgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBEaWFsb2dDb250ZW50PFQ+O1xyXG5cclxuICAgICAgLy8gT25PcGVuIGlzIG9wdGlvbmFsIC0gY3JlYXRlIGRpYWxvZ3MgZG9uJ3QgbmVjZXNzYXJpbHkgZGVmaW5lIGl0XHJcbiAgICAgIGlmIChkaWFsb2dDb250ZW50Lm9uT3Blbikge1xyXG4gICAgICAgIGRpYWxvZ0NvbnRlbnQub25PcGVuKGNvbnRleHQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkaWFsb2dDb250ZW50Lm9uRGlhbG9nQ2FuY2VsLnBpcGUodGFrZVVudGlsKHRoaXMuY2xvc2VkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmNsb3NlPFQ+KG5ldyBEaWFsb2dSZXN1bHQ8VD4oZmFsc2UpKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBkaWFsb2dDb250ZW50Lm9uRGlhbG9nU2F2ZS5waXBlKHRha2VVbnRpbCh0aGlzLmNsb3NlZCkpLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICAgIHRoaXMuY2xvc2U8VD4obmV3IERpYWxvZ1Jlc3VsdDxUPih0cnVlLCB2YWwpKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNldCBvcHRpb25zIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCBuZXh0IHRpbWUgdGhlXHJcbiAgICogcm9vdCBkaWFsb2cgaXMgb3BlbmVkXHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICBwcml2YXRlIHJlc2V0T3B0aW9ucygpIHtcclxuICAgIHRoaXMuYWxpZ25Ub1RvcCA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaXNwbGF5QXNQYW5lbCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqIElmIHRoZXkgdHVybmVkIG9uIGNsb3NlT25SZXNpemUsIGF1dG9tYXRpY2FsbHkgY2xvc2UgdGhlIGRpYWxvZyBhbnkgdGltZSBzb21lYm9keSByZXNpemVzIHRoZSB3aW5kb3cuXHJcbiAgICAqIFRoaXMgaXMgdXNlZnVsIGZvciByZXNwb25zaXZlIGxheW91dHMgdG8gcHJldmVudCBoYXZpbmcgdGhlIGRpYWxvZ0NvbnRlbnQgb24gdGhlIHNjcmVlbiB0d2ljZSAqL1xyXG4gIHByaXZhdGUgaGFuZGxlQ2xvc2VPblJlc2l6ZSgpIHtcclxuICAgIGlmKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuY2xvc2VPblJlc2l6ZSl7XHJcbiAgICAgIHRoaXMud2luZG93U2VydmljZS5yZXNpemVkIS5waXBlKHRha2VVbnRpbCh0aGlzLmNsb3NlZCksIHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbG9zZShuZXcgRGlhbG9nUmVzdWx0KGZhbHNlKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqRXh0cmFjdCB0aGUgZGlhbG9nSWQgZnJvbSB0aGUgZGlhbG9nIGNvbnRlbnQsIGlmIGl0IGhhcyBvbmUuIFRlbXBsYXRlLWJhc2VkIGRpYWxvZ3MgZ2VuZXJhbGx5IGRvbid0LlxyXG4gICAqIFdlIGZhbGwgYmFjayB0byBlbXB0eSBzdHJpbmcgdG8gYWxsb3cgYW55Ym9keSBsaXN0ZW5pbmcgZm9yIGRpYWxvZ0V2ZW50cyB0byBzdGlsbCByZWNvcmQgdGhlIG9wZW4vY2xvc2UgZXZlbiBpZlxyXG4gICAqIHRoZSBkaWFsb2cgaXRzZWxmIGRvZXMgbm90IHNheSB3aGF0IHRoZSBuYW1lIGlzLiBcclxuICAgKi9cclxuICBwcml2YXRlIGdldERpYWxvZ0lkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZS5kaWFsb2dJZCB8fCAnJztcclxuICB9XHJcbn1cclxuIl19
|
@@ -1,111 +0,0 @@
|
|
1
|
-
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
2
|
-
import { Subject } from 'rxjs';
|
3
|
-
import { TelemetryService } from '../../core/telemetry.service';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
export class HierarchyItem {
|
6
|
-
constructor() {
|
7
|
-
this.id = '';
|
8
|
-
/** Label to display for the item */
|
9
|
-
this.label = '';
|
10
|
-
/** Indicates how many levels deep the item is in the parent structure */
|
11
|
-
this.level = 0;
|
12
|
-
/** Display item as a link, a heading, or with a divider line below it */
|
13
|
-
this.display = 'default';
|
14
|
-
/** Set to hide toggle, even if item has children */
|
15
|
-
this.hideToggle = false;
|
16
|
-
/** Flag to indicate whether the item has children or not, mostly drives
|
17
|
-
* whether you get the expand/collapse button
|
18
|
-
*/
|
19
|
-
this.hasChildren = false;
|
20
|
-
/** Array of children if any for the item */
|
21
|
-
this.children = [];
|
22
|
-
/** Flag to indicate if the item has been expanded */
|
23
|
-
this.expanded = false;
|
24
|
-
/** Flag to indicate if the item is selected */
|
25
|
-
this.selected = false;
|
26
|
-
/** Flag to indicate if the item can be selected */
|
27
|
-
this.selectable = false;
|
28
|
-
this.readonly = false;
|
29
|
-
/** Status of each item to indicate whether children lookup is pending or
|
30
|
-
* if an error occurred retrieving data
|
31
|
-
*/
|
32
|
-
this.status = "hasData";
|
33
|
-
/** Indicates if the item is a top level entity, e.g. Organization or Cost Center */
|
34
|
-
this.topLevel = false;
|
35
|
-
/**
|
36
|
-
* When checking the url for activeness, the url must match exactly or partially
|
37
|
-
* @see https://angular.io/guide/router#active-router-links
|
38
|
-
*/
|
39
|
-
this.isActiveExactMatch = true;
|
40
|
-
}
|
41
|
-
}
|
42
|
-
export class HierarchyBase {
|
43
|
-
get destroyed() {
|
44
|
-
return this._destroyed;
|
45
|
-
}
|
46
|
-
constructor(injector) {
|
47
|
-
/** Event emitter to request children for a given item */
|
48
|
-
this.getItemChildren = new EventEmitter();
|
49
|
-
/** Event emitted when an item is toggled. */
|
50
|
-
this.itemToggled = new EventEmitter();
|
51
|
-
/**
|
52
|
-
* Used to unsubscribe from observables
|
53
|
-
*/
|
54
|
-
this._destroyed = new Subject();
|
55
|
-
this.telemetryService = injector.get(TelemetryService);
|
56
|
-
}
|
57
|
-
ngOnChanges(changes) {
|
58
|
-
if (changes && changes.rootNode && changes.rootNode.currentValue) {
|
59
|
-
/** If the rootNode has children and we don't know about them yet we must be loading
|
60
|
-
* the view without the new hierarchy api
|
61
|
-
*/
|
62
|
-
if (this.rootNode.hasChildren && this.rootNode.children.length === 0) {
|
63
|
-
this.getItemChildren.emit(this.rootNode);
|
64
|
-
}
|
65
|
-
}
|
66
|
-
}
|
67
|
-
/**
|
68
|
-
* Function called when the component is destroyed
|
69
|
-
*/
|
70
|
-
ngOnDestroy() {
|
71
|
-
this.destroyed.next();
|
72
|
-
this.destroyed.unsubscribe();
|
73
|
-
}
|
74
|
-
/** Handler for the toggle button */
|
75
|
-
toggleItemClicked(item, expanded) {
|
76
|
-
item.expanded = expanded;
|
77
|
-
this.telemetryService.trackEvent('toggle-tree-node', {
|
78
|
-
newExpandState: item.expanded ? 'expanded' : 'collapsed',
|
79
|
-
itemDepth: `${item.level}`,
|
80
|
-
});
|
81
|
-
this.itemToggled.emit({ item, expanded });
|
82
|
-
if (item.expanded && item.hasChildren && item.children.length === 0) {
|
83
|
-
item.status = "pending";
|
84
|
-
this.getItemChildren.emit(item);
|
85
|
-
}
|
86
|
-
}
|
87
|
-
/** Method exposed to the parent component to set the items children once they are available
|
88
|
-
*/
|
89
|
-
setItemChildren(parentItem, items) {
|
90
|
-
parentItem.children = items;
|
91
|
-
parentItem.status = "hasData";
|
92
|
-
}
|
93
|
-
/** Method exposed to the parent component to indicate that something happened on the
|
94
|
-
* item that caused an error, could be retrieving children
|
95
|
-
*/
|
96
|
-
setItemError(parentItem) {
|
97
|
-
parentItem.status = "error";
|
98
|
-
}
|
99
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HierarchyBase, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
100
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: HierarchyBase, inputs: { rootNode: "rootNode" }, outputs: { getItemChildren: "getItemChildren", itemToggled: "itemToggled" }, usesOnChanges: true, ngImport: i0 }); }
|
101
|
-
}
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HierarchyBase, decorators: [{
|
103
|
-
type: Directive
|
104
|
-
}], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { rootNode: [{
|
105
|
-
type: Input
|
106
|
-
}], getItemChildren: [{
|
107
|
-
type: Output
|
108
|
-
}], itemToggled: [{
|
109
|
-
type: Output
|
110
|
-
}] } });
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2h5LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9oaWVyYXJjaHkvaGllcmFyY2h5LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUF3QixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXRILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR2hFLE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBQ0UsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUVoQixvQ0FBb0M7UUFDcEMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQVFuQix5RUFBeUU7UUFDekUsVUFBSyxHQUFXLENBQUMsQ0FBQztRQVVsQix5RUFBeUU7UUFDekUsWUFBTyxHQUF1QyxTQUFTLENBQUM7UUFFeEQsb0RBQW9EO1FBQ3BELGVBQVUsR0FBYSxLQUFLLENBQUM7UUFFN0I7O1dBRUc7UUFDSCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU3Qiw0Q0FBNEM7UUFDNUMsYUFBUSxHQUF5QixFQUFFLENBQUM7UUFFcEMscURBQXFEO1FBQ3JELGFBQVEsR0FBYSxLQUFLLENBQUM7UUFFM0IsK0NBQStDO1FBQy9DLGFBQVEsR0FBYSxLQUFLLENBQUM7UUFFM0IsbURBQW1EO1FBQ25ELGVBQVUsR0FBYSxLQUFLLENBQUM7UUFFN0IsYUFBUSxHQUFhLEtBQUssQ0FBQztRQUUzQjs7V0FFRztRQUNILFdBQU0sR0FBZ0IsU0FBUyxDQUFDO1FBRWhDLG9GQUFvRjtRQUNwRixhQUFRLEdBQWEsS0FBSyxDQUFDO1FBRTNCOzs7V0FHRztRQUNILHVCQUFrQixHQUFhLElBQUksQ0FBQztJQVl0QyxDQUFDO0NBQUE7QUFXRCxNQUFNLE9BQWdCLGFBQWE7SUFlakMsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBSUQsWUFBWSxRQUFrQjtRQWhCOUIseURBQXlEO1FBQ3hDLG9CQUFlLEdBQWdDLElBQUksWUFBWSxFQUFpQixDQUFDO1FBRWxHLDZDQUE2QztRQUM1QixnQkFBVyxHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUU1Rzs7VUFFRTtRQUNNLGVBQVUsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVF0RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2pFOztjQUVFO1lBQ0YsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7TUFFRTtJQUNLLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxvQ0FBb0M7SUFDN0IsaUJBQWlCLENBQUMsSUFBbUIsRUFBRSxRQUFpQjtRQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFO1lBQ25ELGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVc7WUFDeEQsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtTQUMzQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7T0FDRztJQUNJLGVBQWUsQ0FBQyxVQUF5QixFQUFFLEtBQTJCO1FBQzNFLFVBQVUsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzVCLFVBQVUsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7TUFFRTtJQUNLLFlBQVksQ0FBQyxVQUF5QjtRQUMzQyxVQUFVLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUM5QixDQUFDOytHQXhFbUIsYUFBYTttR0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQURsQyxTQUFTOzZFQUlRLFFBQVE7c0JBQXZCLEtBQUs7Z0JBR1csZUFBZTtzQkFBL0IsTUFBTTtnQkFHVSxXQUFXO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYXJhbXMsIFF1ZXJ5UGFyYW1zSGFuZGxpbmcgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExpbmtJdGVtIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvbmF2aWdhdGlvbi9saW5rLWl0ZW0nO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90ZWxlbWV0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IFZpZXdTdGF0dXMgfSBmcm9tICcuLi8uLi9zaGFyZWQvZGlzcGxheSc7XHJcblxyXG5leHBvcnQgY2xhc3MgSGllcmFyY2h5SXRlbSBpbXBsZW1lbnRzIExpbmtJdGVtIHtcclxuICBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKiBMYWJlbCB0byBkaXNwbGF5IGZvciB0aGUgaXRlbSAqL1xyXG4gIGxhYmVsOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIFRleHQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBpdGVtJ3MgdG9vbHRpcC4gV2hlbiBub3QgcHJvdmlkZWQsIHRoZSBsYWJlbCB3aWxsIGJlIGRpc3BsYXllZC4gKi9cclxuICB0b29sdGlwPzogc3RyaW5nO1xyXG5cclxuICAvKiogVGV4dCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGl0ZW0ncyBpY29uIHRvb2x0aXAuICovXHJcbiAgaWNvblRvb2x0aXA/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBJbmRpY2F0ZXMgaG93IG1hbnkgbGV2ZWxzIGRlZXAgdGhlIGl0ZW0gaXMgaW4gdGhlIHBhcmVudCBzdHJ1Y3R1cmUgKi9cclxuICBsZXZlbDogbnVtYmVyID0gMDtcclxuXHJcbiAgdXJsPzogc3RyaW5nO1xyXG5cclxuICBxdWVyeVBhcmFtcz86IFBhcmFtcyB8IG51bGw7XHJcblxyXG4gIHF1ZXJ5UGFyYW1zSGFuZGxpbmc/OiBRdWVyeVBhcmFtc0hhbmRsaW5nO1xyXG5cclxuICBpY29uPzogc3RyaW5nO1xyXG5cclxuICAvKiogRGlzcGxheSBpdGVtIGFzIGEgbGluaywgYSBoZWFkaW5nLCBvciB3aXRoIGEgZGl2aWRlciBsaW5lIGJlbG93IGl0ICovXHJcbiAgZGlzcGxheT86ICdkZWZhdWx0JyB8ICdoZWFkaW5nJyB8ICdkaXZpZGVyJyA9ICdkZWZhdWx0JztcclxuXHJcbiAgLyoqIFNldCB0byBoaWRlIHRvZ2dsZSwgZXZlbiBpZiBpdGVtIGhhcyBjaGlsZHJlbiAqL1xyXG4gIGhpZGVUb2dnbGU/OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBGbGFnIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIGl0ZW0gaGFzIGNoaWxkcmVuIG9yIG5vdCwgbW9zdGx5IGRyaXZlc1xyXG4gICAqICB3aGV0aGVyIHlvdSBnZXQgdGhlIGV4cGFuZC9jb2xsYXBzZSBidXR0b25cclxuICAgKi9cclxuICBoYXNDaGlsZHJlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogQXJyYXkgb2YgY2hpbGRyZW4gaWYgYW55IGZvciB0aGUgaXRlbSAqL1xyXG4gIGNoaWxkcmVuOiBBcnJheTxIaWVyYXJjaHlJdGVtPiA9IFtdO1xyXG5cclxuICAvKiogRmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgaXRlbSBoYXMgYmVlbiBleHBhbmRlZCAqL1xyXG4gIGV4cGFuZGVkPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogRmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgaXRlbSBpcyBzZWxlY3RlZCAqL1xyXG4gIHNlbGVjdGVkPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogRmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgaXRlbSBjYW4gYmUgc2VsZWN0ZWQgKi9cclxuICBzZWxlY3RhYmxlPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICByZWFkb25seT86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFN0YXR1cyBvZiBlYWNoIGl0ZW0gdG8gaW5kaWNhdGUgd2hldGhlciBjaGlsZHJlbiBsb29rdXAgaXMgcGVuZGluZyBvclxyXG4gICAqICBpZiBhbiBlcnJvciBvY2N1cnJlZCByZXRyaWV2aW5nIGRhdGFcclxuICAgKi9cclxuICBzdGF0dXM/OiBWaWV3U3RhdHVzID0gXCJoYXNEYXRhXCI7XHJcblxyXG4gIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGl0ZW0gaXMgYSB0b3AgbGV2ZWwgZW50aXR5LCBlLmcuIE9yZ2FuaXphdGlvbiBvciBDb3N0IENlbnRlciAqL1xyXG4gIHRvcExldmVsPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBXaGVuIGNoZWNraW5nIHRoZSB1cmwgZm9yIGFjdGl2ZW5lc3MsIHRoZSB1cmwgbXVzdCBtYXRjaCBleGFjdGx5IG9yIHBhcnRpYWxseVxyXG4gICAqIEBzZWUgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3JvdXRlciNhY3RpdmUtcm91dGVyLWxpbmtzXHJcbiAgICovXHJcbiAgaXNBY3RpdmVFeGFjdE1hdGNoPzogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgcGFyZW50IGl0ZW0uIFVzZWZ1bCBpZiB5b3UgbmVlZCB0byB3YWxrIHRoZSB0cmVlIGluIHJldmVyc2UuIEFuIGV4YW1wbGUgdXNhZ2VcclxuICAgKiB3b3VsZCBiZSB0byBleHBhbmQgYWxsIHBhcmVudCBpdGVtcyBhYm92ZSBhIG5vZGUgdGhhdCBpcyB0aGUgY3VycmVudCBzZWxlY3Rpb24uXHJcbiAgICovXHJcbiAgcGFyZW50SXRlbT86IEhpZXJhcmNoeUl0ZW07XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0byBoYXZlIG5vIGxldmVsIGluZGVudGF0aW9uIGZvciB0aGUgaXRlbS4gVXNlZnVsIGZvciB0b3AgbGV2ZWwgaXRlbXMgaW4gYSB0cmVlIHRoYXQgaXMgbm90IGhpZXJhcmNoaWNhbFxyXG4gICAqL1xyXG4gIG5vSW5kZW50PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSBIaWVyYXJjaHlJdGVtIHRoYXQgaGFzIGJlZW4gY2xpY2tlZCB0byB0b2dnbGUgaXRzIGV4cGFuc2lvbiBzdGF0ZS5cclxuICovXHJcbmV4cG9ydCB0eXBlIFRvZ2dsZWRIaWVyYXJjaHlJdGVtID0ge1xyXG4gIGl0ZW06IEhpZXJhcmNoeUl0ZW07XHJcbiAgZXhwYW5kZWQ6IGJvb2xlYW47XHJcbn07XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEhpZXJhcmNoeUJhc2UgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblxyXG4gIC8qKiBGaXJzdCBpdGVtIHRvIHN0YXJ0IHRoZSBoaWVyYXJjaHkgc3RydWN0dXJlICovXHJcbiAgQElucHV0KCkgcHVibGljIHJvb3ROb2RlITogSGllcmFyY2h5SXRlbTtcclxuXHJcbiAgLyoqIEV2ZW50IGVtaXR0ZXIgdG8gcmVxdWVzdCBjaGlsZHJlbiBmb3IgYSBnaXZlbiBpdGVtICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBnZXRJdGVtQ2hpbGRyZW46IEV2ZW50RW1pdHRlcjxIaWVyYXJjaHlJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8SGllcmFyY2h5SXRlbT4oKTtcclxuXHJcbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhbiBpdGVtIGlzIHRvZ2dsZWQuICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBpdGVtVG9nZ2xlZDogRXZlbnRFbWl0dGVyPFRvZ2dsZWRIaWVyYXJjaHlJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8VG9nZ2xlZEhpZXJhcmNoeUl0ZW0+KCk7XHJcblxyXG4gIC8qKlxyXG4gICogVXNlZCB0byB1bnN1YnNjcmliZSBmcm9tIG9ic2VydmFibGVzXHJcbiAgKi9cclxuICBwcml2YXRlIF9kZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHB1YmxpYyBnZXQgZGVzdHJveWVkKCk6IFN1YmplY3Q8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rlc3Ryb3llZDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0ZWxlbWV0cnlTZXJ2aWNlOiBUZWxlbWV0cnlTZXJ2aWNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZSA9IGluamVjdG9yLmdldChUZWxlbWV0cnlTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzLnJvb3ROb2RlICYmIGNoYW5nZXMucm9vdE5vZGUuY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIC8qKiBJZiB0aGUgcm9vdE5vZGUgaGFzIGNoaWxkcmVuIGFuZCB3ZSBkb24ndCBrbm93IGFib3V0IHRoZW0geWV0IHdlIG11c3QgYmUgbG9hZGluZ1xyXG4gICAgICAqICB0aGUgdmlldyB3aXRob3V0IHRoZSBuZXcgaGllcmFyY2h5IGFwaVxyXG4gICAgICAqL1xyXG4gICAgICBpZiAodGhpcy5yb290Tm9kZS5oYXNDaGlsZHJlbiAmJiB0aGlzLnJvb3ROb2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuZ2V0SXRlbUNoaWxkcmVuLmVtaXQodGhpcy5yb290Tm9kZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogRnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cm95ZWRcclxuICAqL1xyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveWVkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKiogSGFuZGxlciBmb3IgdGhlIHRvZ2dsZSBidXR0b24gKi9cclxuICBwdWJsaWMgdG9nZ2xlSXRlbUNsaWNrZWQoaXRlbTogSGllcmFyY2h5SXRlbSwgZXhwYW5kZWQ6IGJvb2xlYW4pIHtcclxuICAgIGl0ZW0uZXhwYW5kZWQgPSBleHBhbmRlZDtcclxuICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZS50cmFja0V2ZW50KCd0b2dnbGUtdHJlZS1ub2RlJywge1xyXG4gICAgICBuZXdFeHBhbmRTdGF0ZTogaXRlbS5leHBhbmRlZCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJyxcclxuICAgICAgaXRlbURlcHRoOiBgJHtpdGVtLmxldmVsfWAsXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLml0ZW1Ub2dnbGVkLmVtaXQoeyBpdGVtLCBleHBhbmRlZCB9KTtcclxuXHJcbiAgICBpZiAoaXRlbS5leHBhbmRlZCAmJiBpdGVtLmhhc0NoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGl0ZW0uc3RhdHVzID0gXCJwZW5kaW5nXCI7XHJcbiAgICAgIHRoaXMuZ2V0SXRlbUNoaWxkcmVuLmVtaXQoaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogTWV0aG9kIGV4cG9zZWQgdG8gdGhlIHBhcmVudCBjb21wb25lbnQgdG8gc2V0IHRoZSBpdGVtcyBjaGlsZHJlbiBvbmNlIHRoZXkgYXJlIGF2YWlsYWJsZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRJdGVtQ2hpbGRyZW4ocGFyZW50SXRlbTogSGllcmFyY2h5SXRlbSwgaXRlbXM6IEFycmF5PEhpZXJhcmNoeUl0ZW0+KTogdm9pZCB7XHJcbiAgICBwYXJlbnRJdGVtLmNoaWxkcmVuID0gaXRlbXM7XHJcbiAgICBwYXJlbnRJdGVtLnN0YXR1cyA9IFwiaGFzRGF0YVwiO1xyXG4gIH1cclxuXHJcbiAgLyoqIE1ldGhvZCBleHBvc2VkIHRvIHRoZSBwYXJlbnQgY29tcG9uZW50IHRvIGluZGljYXRlIHRoYXQgc29tZXRoaW5nIGhhcHBlbmVkIG9uIHRoZVxyXG4gICAqICBpdGVtIHRoYXQgY2F1c2VkIGFuIGVycm9yLCBjb3VsZCBiZSByZXRyaWV2aW5nIGNoaWxkcmVuXHJcbiAgKi9cclxuICBwdWJsaWMgc2V0SXRlbUVycm9yKHBhcmVudEl0ZW06IEhpZXJhcmNoeUl0ZW0pOiB2b2lkIHtcclxuICAgIHBhcmVudEl0ZW0uc3RhdHVzID0gXCJlcnJvclwiO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -1,61 +0,0 @@
|
|
1
|
-
import { Component, Input, Output } from '@angular/core';
|
2
|
-
import { Subject } from 'rxjs';
|
3
|
-
import { HierarchyBase } from '../hierarchy-base';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "../../../core/scroll.service";
|
6
|
-
import * as i2 from "@angular/common";
|
7
|
-
import * as i3 from "@angular/router";
|
8
|
-
import * as i4 from "../../../controls/navigation/nav-item-active.directive";
|
9
|
-
import * as i5 from "../../../controls/collapsible-toggle/collapsible-toggle.component";
|
10
|
-
export class HierarchyTreeComponent extends HierarchyBase {
|
11
|
-
constructor(scrollService, injector) {
|
12
|
-
super(injector);
|
13
|
-
this.scrollService = scrollService;
|
14
|
-
/** The value of the id attribute of the tree's root HTMLUListElement, suffixed with '_root' */
|
15
|
-
this.id = 'HierarchyTree';
|
16
|
-
/** Emits a HierarchyItem whenever one is selected by clicking */
|
17
|
-
this.itemSelected = new Subject();
|
18
|
-
/** The width of the spacing before a tree node, multipled by a HierarchyItem's level. Value is in pixels */
|
19
|
-
this.indent = 16;
|
20
|
-
/** The value of the id attribute of the tree's scroll container element, used to scroll a selected item into view. */
|
21
|
-
this.scrollContainerId = '';
|
22
|
-
}
|
23
|
-
ngOnInit() {
|
24
|
-
this.scrollContainerId = `${this.id}_root`;
|
25
|
-
}
|
26
|
-
/**
|
27
|
-
* Scroll to the item currently marked as is-selected. Wait a tick for the
|
28
|
-
* NavItemActiveDirective to update the selected class.
|
29
|
-
*/
|
30
|
-
scrollToSelectedItem() {
|
31
|
-
window.setTimeout(() => {
|
32
|
-
const linkSelector = `.item-wrapper.is-selected`;
|
33
|
-
this.scrollService.scrollToItem(`#${this.scrollContainerId}`, linkSelector);
|
34
|
-
});
|
35
|
-
}
|
36
|
-
/**
|
37
|
-
* When a HierarchyItem is selected, update the value of the activeUrl property with the value
|
38
|
-
* of that item's url property and emit the item to any subscribers.
|
39
|
-
*/
|
40
|
-
selectItem(item) {
|
41
|
-
this.itemSelected.next(item);
|
42
|
-
if (item.display === 'heading' && !item.hideToggle) {
|
43
|
-
this.toggleItemClicked(item, !item.expanded);
|
44
|
-
}
|
45
|
-
}
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HierarchyTreeComponent, deps: [{ token: i1.ScrollService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HierarchyTreeComponent, selector: "ec-hierarchy-tree", inputs: { id: "id", hideRootNode: "hideRootNode", customItemTemplate: "customItemTemplate" }, outputs: { itemSelected: "itemSelected" }, usesInheritance: true, ngImport: i0, template: "<ul id=\"{{scrollContainerId}}\"\r\n class=\"flex-grow scroll-y py-1\">\r\n\r\n <li *ngIf=\"!hideRootNode && rootNode\">\r\n <div class=\"item-wrapper\"\r\n title=\"{{rootNode?.tooltip ?? rootNode?.label}}\"\r\n [ngClass]=\"{'is-heading': rootNode?.display === 'heading'}\"\r\n ecNavItemActive=\"is-selected\"\r\n [ecNavItemActiveUrl]=\"rootNode?.url\"\r\n [ecNavItemActiveExactMatch]='rootNode?.isActiveExactMatch'>\r\n <a id=\"rootNode_{{rootNode?.id}}_link\"\r\n class=\"item flex-grow d-flex align-items-center\"\r\n routerLink=\"{{rootNode?.url}}\"\r\n [queryParams]=\"rootNode?.queryParams\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: rootNode }\"></ng-container>\r\n </a>\r\n </div>\r\n </li>\r\n\r\n <ng-template #hierarchyView\r\n let-items>\r\n <li *ngFor=\"let item of items; index as index; first as isFirst\"\r\n [ngClass]=\"{'divider': item.display === 'divider'}\"\r\n id=\"treeItem_{{item.id}}\">\r\n <div class=\"item-wrapper\"\r\n title=\"{{item.tooltip ?? item.label}}\"\r\n [ngClass]=\"{'is-heading': item.display === 'heading'}\"\r\n ecNavItemActive=\"is-selected\"\r\n [ecNavItemActiveUrl]=\"item.url\"\r\n [ecNavItemActiveExactMatch]=\"item.isActiveExactMatch\"\r\n [ecNavItemActiveQueryParams]=\"item.queryParams\">\r\n\r\n <!-- This element provides the indentation for each level -->\r\n <span id=\"indent_{{item.id}}\"\r\n *ngIf=\"!item.noIndent\"\r\n class=\"d-block h-100\"\r\n [style.width.px]=\"(indent) * (item.level - 1) + (item.level * 4) + (item.hasChildren ? 0 : indent)\">\r\n </span>\r\n\r\n <!-- Toggle the button icon to be a spinner when item.status is pending -->\r\n <ec-collapsible-toggle id=\"toggle_{{item.id}}\"\r\n class=\"flex-shrink\"\r\n [style.width.px]=\"indent\"\r\n *ngIf=\"item.hasChildren && !item.hideToggle\"\r\n [hidden]=\"item.status === 'pending'\"\r\n [expanded]=\"item.expanded\"\r\n (expandedChange)=\"toggleItemClicked(item, $event)\">\r\n </ec-collapsible-toggle>\r\n\r\n <i class=\"ec-icon icon-loading my-1\"\r\n [hidden]=\"item.status !== 'pending'\"></i>\r\n\r\n <a id=\"treeItem_{{item.id}}_link\"\r\n class=\"item\"\r\n *ngIf=\"item.url\"\r\n (click)=\"selectItem(item)\"\r\n [routerLink]=\"item.url\"\r\n [queryParams]=\"item.queryParams\"\r\n [queryParamsHandling]=\"item.queryParamsHandling || ''\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: item }\"></ng-container>\r\n </a>\r\n <div id=\"treeItem_{{item.id}}_heading\"\r\n class=\"item\"\r\n *ngIf=\"!item.url\"\r\n (click)=\"selectItem(item)\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n\r\n <ul *ngIf=\"item.children.length > 0 && item.expanded\">\r\n <ng-container *ngTemplateOutlet=\"hierarchyView; context:{ $implicit: item.children }\"></ng-container>\r\n </ul>\r\n </li>\r\n </ng-template>\r\n\r\n <ng-container *ngTemplateOutlet=\"hierarchyView; context:{ $implicit: rootNode?.children }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #defaultItemTemplate\r\n let-item>\r\n <i class=\"ec-icon {{item.icon}} mx-1 flex-shrink\"\r\n [attr.title]=\"item.iconTooltip\"\r\n *ngIf=\"item.icon\"></i>\r\n <span class=\"mx-1 text-truncate\">{{item.label}}</span>\r\n</ng-template>", styles: [":host{display:block;font-size:var(--ec-menu-font-size, var(--ec-font-size-action));background-color:var(--ec-menu-background-color, var(--ec-background-color))}ul{padding:0;margin:0;list-style:none;overflow-x:hidden}ul li{white-space:nowrap;padding:0}ul li.divider{border-bottom:1px solid var(--ec-border-color);padding-bottom:.25rem;margin-bottom:.25rem}ul .item-wrapper{display:flex;align-items:center;padding:0 .25rem;margin:0 .25rem;height:1.75rem;border-radius:var(--ec-border-radius)}ul .item-wrapper.is-heading{cursor:pointer;color:var(--ec-color-hint-dark);text-transform:uppercase;font-weight:var(--ec-font-weight-bold);font-size:var(--ec-font-size-label)}ul .item-wrapper:hover{background-color:var(--ec-background-color-hover)}ul .item-wrapper.is-selected{font-weight:700}ul .item-wrapper a{text-decoration:none}ul .item{color:inherit;display:flex;align-items:center;flex:1 1;min-height:0;min-width:0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.NavItemActiveDirective, selector: "[ecNavItemActive]", inputs: ["ecNavItemActive", "ecNavItemActiveExactMatch", "ecNavItemActiveQueryParams", "ecNavItemActiveUrl"], outputs: ["routerLinkActivated"] }, { kind: "component", type: i5.CollapsibleToggleComponent, selector: "ec-collapsible-toggle", inputs: ["id", "expanded", "tabindex"], outputs: ["expandedChange"] }] }); }
|
48
|
-
}
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HierarchyTreeComponent, decorators: [{
|
50
|
-
type: Component,
|
51
|
-
args: [{ selector: 'ec-hierarchy-tree', template: "<ul id=\"{{scrollContainerId}}\"\r\n class=\"flex-grow scroll-y py-1\">\r\n\r\n <li *ngIf=\"!hideRootNode && rootNode\">\r\n <div class=\"item-wrapper\"\r\n title=\"{{rootNode?.tooltip ?? rootNode?.label}}\"\r\n [ngClass]=\"{'is-heading': rootNode?.display === 'heading'}\"\r\n ecNavItemActive=\"is-selected\"\r\n [ecNavItemActiveUrl]=\"rootNode?.url\"\r\n [ecNavItemActiveExactMatch]='rootNode?.isActiveExactMatch'>\r\n <a id=\"rootNode_{{rootNode?.id}}_link\"\r\n class=\"item flex-grow d-flex align-items-center\"\r\n routerLink=\"{{rootNode?.url}}\"\r\n [queryParams]=\"rootNode?.queryParams\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: rootNode }\"></ng-container>\r\n </a>\r\n </div>\r\n </li>\r\n\r\n <ng-template #hierarchyView\r\n let-items>\r\n <li *ngFor=\"let item of items; index as index; first as isFirst\"\r\n [ngClass]=\"{'divider': item.display === 'divider'}\"\r\n id=\"treeItem_{{item.id}}\">\r\n <div class=\"item-wrapper\"\r\n title=\"{{item.tooltip ?? item.label}}\"\r\n [ngClass]=\"{'is-heading': item.display === 'heading'}\"\r\n ecNavItemActive=\"is-selected\"\r\n [ecNavItemActiveUrl]=\"item.url\"\r\n [ecNavItemActiveExactMatch]=\"item.isActiveExactMatch\"\r\n [ecNavItemActiveQueryParams]=\"item.queryParams\">\r\n\r\n <!-- This element provides the indentation for each level -->\r\n <span id=\"indent_{{item.id}}\"\r\n *ngIf=\"!item.noIndent\"\r\n class=\"d-block h-100\"\r\n [style.width.px]=\"(indent) * (item.level - 1) + (item.level * 4) + (item.hasChildren ? 0 : indent)\">\r\n </span>\r\n\r\n <!-- Toggle the button icon to be a spinner when item.status is pending -->\r\n <ec-collapsible-toggle id=\"toggle_{{item.id}}\"\r\n class=\"flex-shrink\"\r\n [style.width.px]=\"indent\"\r\n *ngIf=\"item.hasChildren && !item.hideToggle\"\r\n [hidden]=\"item.status === 'pending'\"\r\n [expanded]=\"item.expanded\"\r\n (expandedChange)=\"toggleItemClicked(item, $event)\">\r\n </ec-collapsible-toggle>\r\n\r\n <i class=\"ec-icon icon-loading my-1\"\r\n [hidden]=\"item.status !== 'pending'\"></i>\r\n\r\n <a id=\"treeItem_{{item.id}}_link\"\r\n class=\"item\"\r\n *ngIf=\"item.url\"\r\n (click)=\"selectItem(item)\"\r\n [routerLink]=\"item.url\"\r\n [queryParams]=\"item.queryParams\"\r\n [queryParamsHandling]=\"item.queryParamsHandling || ''\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: item }\"></ng-container>\r\n </a>\r\n <div id=\"treeItem_{{item.id}}_heading\"\r\n class=\"item\"\r\n *ngIf=\"!item.url\"\r\n (click)=\"selectItem(item)\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n\r\n <ul *ngIf=\"item.children.length > 0 && item.expanded\">\r\n <ng-container *ngTemplateOutlet=\"hierarchyView; context:{ $implicit: item.children }\"></ng-container>\r\n </ul>\r\n </li>\r\n </ng-template>\r\n\r\n <ng-container *ngTemplateOutlet=\"hierarchyView; context:{ $implicit: rootNode?.children }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #defaultItemTemplate\r\n let-item>\r\n <i class=\"ec-icon {{item.icon}} mx-1 flex-shrink\"\r\n [attr.title]=\"item.iconTooltip\"\r\n *ngIf=\"item.icon\"></i>\r\n <span class=\"mx-1 text-truncate\">{{item.label}}</span>\r\n</ng-template>", styles: [":host{display:block;font-size:var(--ec-menu-font-size, var(--ec-font-size-action));background-color:var(--ec-menu-background-color, var(--ec-background-color))}ul{padding:0;margin:0;list-style:none;overflow-x:hidden}ul li{white-space:nowrap;padding:0}ul li.divider{border-bottom:1px solid var(--ec-border-color);padding-bottom:.25rem;margin-bottom:.25rem}ul .item-wrapper{display:flex;align-items:center;padding:0 .25rem;margin:0 .25rem;height:1.75rem;border-radius:var(--ec-border-radius)}ul .item-wrapper.is-heading{cursor:pointer;color:var(--ec-color-hint-dark);text-transform:uppercase;font-weight:var(--ec-font-weight-bold);font-size:var(--ec-font-size-label)}ul .item-wrapper:hover{background-color:var(--ec-background-color-hover)}ul .item-wrapper.is-selected{font-weight:700}ul .item-wrapper a{text-decoration:none}ul .item{color:inherit;display:flex;align-items:center;flex:1 1;min-height:0;min-width:0}\n"] }]
|
52
|
-
}], ctorParameters: () => [{ type: i1.ScrollService }, { type: i0.Injector }], propDecorators: { id: [{
|
53
|
-
type: Input
|
54
|
-
}], hideRootNode: [{
|
55
|
-
type: Input
|
56
|
-
}], customItemTemplate: [{
|
57
|
-
type: Input
|
58
|
-
}], itemSelected: [{
|
59
|
-
type: Output
|
60
|
-
}] } });
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2h5LXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvaGllcmFyY2h5L2hpZXJhcmNoeS10cmVlL2hpZXJhcmNoeS10cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2hpZXJhcmNoeS9oaWVyYXJjaHktdHJlZS9oaWVyYXJjaHktdHJlZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFZLEtBQUssRUFBVSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsYUFBYSxFQUFpQixNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0FBT2pFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBb0J2RCxZQUNVLGFBQTRCLEVBQ3BDLFFBQWtCO1FBQ2hCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZWLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBbkJ0QywrRkFBK0Y7UUFDL0UsT0FBRSxHQUFXLGVBQWUsQ0FBQztRQVE3QyxpRUFBaUU7UUFDaEQsaUJBQVksR0FBMkIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV0RSw0R0FBNEc7UUFDckcsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUVuQix1SEFBdUg7UUFDaEgsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO0lBS1QsQ0FBQztJQUVmLFFBQVE7UUFDYixJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLG9CQUFvQjtRQUN6QixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNyQixNQUFNLFlBQVksR0FBRywyQkFBMkIsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxJQUFtQjtRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7K0dBakRVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHlOQ1ZuQyx3NkhBcUZjOzs0RkQzRUQsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG1CQUFtQjt5R0FPYixFQUFFO3NCQUFqQixLQUFLO2dCQUdVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBR1Usa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUdXLFlBQVk7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2Nyb2xsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2Nyb2xsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaWVyYXJjaHlCYXNlLCBIaWVyYXJjaHlJdGVtIH0gZnJvbSAnLi4vaGllcmFyY2h5LWJhc2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy1oaWVyYXJjaHktdHJlZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpZXJhcmNoeS10cmVlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oaWVyYXJjaHktdHJlZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaWVyYXJjaHlUcmVlQ29tcG9uZW50IGV4dGVuZHMgSGllcmFyY2h5QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8qKiBUaGUgdmFsdWUgb2YgdGhlIGlkIGF0dHJpYnV0ZSBvZiB0aGUgdHJlZSdzIHJvb3QgSFRNTFVMaXN0RWxlbWVudCwgc3VmZml4ZWQgd2l0aCAnX3Jvb3QnICovXHJcbiAgQElucHV0KCkgcHVibGljIGlkOiBzdHJpbmcgPSAnSGllcmFyY2h5VHJlZSc7XHJcblxyXG4gIC8qKiBIaWRlIHRoZSByb290IG5vZGUgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaGlkZVJvb3ROb2RlPzogYm9vbGVhbjtcclxuXHJcbiAgLyoqIEN1c3RvbSBpdGVtIHRlbXBsYXRlIHRvIHVzZSBpbiBwbGFjZSBvZiB0aGUgZGVmYXVsdCBvbmUgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tSXRlbVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqIEVtaXRzIGEgSGllcmFyY2h5SXRlbSB3aGVuZXZlciBvbmUgaXMgc2VsZWN0ZWQgYnkgY2xpY2tpbmcgKi9cclxuICBAT3V0cHV0KCkgcHVibGljIGl0ZW1TZWxlY3RlZDogU3ViamVjdDxIaWVyYXJjaHlJdGVtPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIC8qKiBUaGUgd2lkdGggb2YgdGhlIHNwYWNpbmcgYmVmb3JlIGEgdHJlZSBub2RlLCBtdWx0aXBsZWQgYnkgYSBIaWVyYXJjaHlJdGVtJ3MgbGV2ZWwuIFZhbHVlIGlzIGluIHBpeGVscyAqL1xyXG4gIHB1YmxpYyBpbmRlbnQgPSAxNjtcclxuXHJcbiAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaWQgYXR0cmlidXRlIG9mIHRoZSB0cmVlJ3Mgc2Nyb2xsIGNvbnRhaW5lciBlbGVtZW50LCB1c2VkIHRvIHNjcm9sbCBhIHNlbGVjdGVkIGl0ZW0gaW50byB2aWV3LiAgKi9cclxuICBwdWJsaWMgc2Nyb2xsQ29udGFpbmVySWQgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNjcm9sbFNlcnZpY2U6IFNjcm9sbFNlcnZpY2UsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgKSB7IHN1cGVyKGluamVjdG9yKTsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNjcm9sbENvbnRhaW5lcklkID0gYCR7dGhpcy5pZH1fcm9vdGA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTY3JvbGwgdG8gdGhlIGl0ZW0gY3VycmVudGx5IG1hcmtlZCBhcyBpcy1zZWxlY3RlZC4gV2FpdCBhIHRpY2sgZm9yIHRoZVxyXG4gICAqIE5hdkl0ZW1BY3RpdmVEaXJlY3RpdmUgdG8gdXBkYXRlIHRoZSBzZWxlY3RlZCBjbGFzcy5cclxuICAgKi9cclxuICBwdWJsaWMgc2Nyb2xsVG9TZWxlY3RlZEl0ZW0oKTogdm9pZCB7XHJcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGxpbmtTZWxlY3RvciA9IGAuaXRlbS13cmFwcGVyLmlzLXNlbGVjdGVkYDtcclxuICAgICAgdGhpcy5zY3JvbGxTZXJ2aWNlLnNjcm9sbFRvSXRlbShgIyR7dGhpcy5zY3JvbGxDb250YWluZXJJZH1gLCBsaW5rU2VsZWN0b3IpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIGEgSGllcmFyY2h5SXRlbSBpcyBzZWxlY3RlZCwgdXBkYXRlIHRoZSB2YWx1ZSBvZiB0aGUgYWN0aXZlVXJsIHByb3BlcnR5IHdpdGggdGhlIHZhbHVlXHJcbiAgICogb2YgdGhhdCBpdGVtJ3MgdXJsIHByb3BlcnR5IGFuZCBlbWl0IHRoZSBpdGVtIHRvIGFueSBzdWJzY3JpYmVycy5cclxuICAgKi9cclxuICBwdWJsaWMgc2VsZWN0SXRlbShpdGVtOiBIaWVyYXJjaHlJdGVtKTogdm9pZCB7XHJcbiAgICB0aGlzLml0ZW1TZWxlY3RlZC5uZXh0KGl0ZW0pO1xyXG4gICAgaWYgKGl0ZW0uZGlzcGxheSA9PT0gJ2hlYWRpbmcnICYmICFpdGVtLmhpZGVUb2dnbGUpIHtcclxuICAgICAgdGhpcy50b2dnbGVJdGVtQ2xpY2tlZChpdGVtLCAhaXRlbS5leHBhbmRlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjx1bCBpZD1cInt7c2Nyb2xsQ29udGFpbmVySWR9fVwiXHJcbiAgICBjbGFzcz1cImZsZXgtZ3JvdyBzY3JvbGwteSBweS0xXCI+XHJcblxyXG4gIDxsaSAqbmdJZj1cIiFoaWRlUm9vdE5vZGUgJiYgcm9vdE5vZGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpdGVtLXdyYXBwZXJcIlxyXG4gICAgICAgICB0aXRsZT1cInt7cm9vdE5vZGU/LnRvb2x0aXAgPz8gcm9vdE5vZGU/LmxhYmVsfX1cIlxyXG4gICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWhlYWRpbmcnOiByb290Tm9kZT8uZGlzcGxheSA9PT0gJ2hlYWRpbmcnfVwiXHJcbiAgICAgICAgIGVjTmF2SXRlbUFjdGl2ZT1cImlzLXNlbGVjdGVkXCJcclxuICAgICAgICAgW2VjTmF2SXRlbUFjdGl2ZVVybF09XCJyb290Tm9kZT8udXJsXCJcclxuICAgICAgICAgW2VjTmF2SXRlbUFjdGl2ZUV4YWN0TWF0Y2hdPSdyb290Tm9kZT8uaXNBY3RpdmVFeGFjdE1hdGNoJz5cclxuICAgICAgPGEgaWQ9XCJyb290Tm9kZV97e3Jvb3ROb2RlPy5pZH19X2xpbmtcIlxyXG4gICAgICAgICBjbGFzcz1cIml0ZW0gZmxleC1ncm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICByb3V0ZXJMaW5rPVwie3tyb290Tm9kZT8udXJsfX1cIlxyXG4gICAgICAgICBbcXVlcnlQYXJhbXNdPVwicm9vdE5vZGU/LnF1ZXJ5UGFyYW1zXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUl0ZW1UZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm9vdE5vZGUgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2E+XHJcbiAgICA8L2Rpdj5cclxuICA8L2xpPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2hpZXJhcmNoeVZpZXdcclxuICAgICAgICAgICAgICAgbGV0LWl0ZW1zPlxyXG4gICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBpbmRleCBhcyBpbmRleDsgZmlyc3QgYXMgaXNGaXJzdFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydkaXZpZGVyJzogaXRlbS5kaXNwbGF5ID09PSAnZGl2aWRlcid9XCJcclxuICAgICAgICBpZD1cInRyZWVJdGVtX3t7aXRlbS5pZH19XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXdyYXBwZXJcIlxyXG4gICAgICAgICAgIHRpdGxlPVwie3tpdGVtLnRvb2x0aXAgPz8gaXRlbS5sYWJlbH19XCJcclxuICAgICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWhlYWRpbmcnOiBpdGVtLmRpc3BsYXkgPT09ICdoZWFkaW5nJ31cIlxyXG4gICAgICAgICAgIGVjTmF2SXRlbUFjdGl2ZT1cImlzLXNlbGVjdGVkXCJcclxuICAgICAgICAgICBbZWNOYXZJdGVtQWN0aXZlVXJsXT1cIml0ZW0udXJsXCJcclxuICAgICAgICAgICBbZWNOYXZJdGVtQWN0aXZlRXhhY3RNYXRjaF09XCJpdGVtLmlzQWN0aXZlRXhhY3RNYXRjaFwiXHJcbiAgICAgICAgICAgW2VjTmF2SXRlbUFjdGl2ZVF1ZXJ5UGFyYW1zXT1cIml0ZW0ucXVlcnlQYXJhbXNcIj5cclxuXHJcbiAgICAgICAgPCEtLSBUaGlzIGVsZW1lbnQgcHJvdmlkZXMgdGhlIGluZGVudGF0aW9uIGZvciBlYWNoIGxldmVsIC0tPlxyXG4gICAgICAgIDxzcGFuIGlkPVwiaW5kZW50X3t7aXRlbS5pZH19XCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFpdGVtLm5vSW5kZW50XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImQtYmxvY2sgaC0xMDBcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCIoaW5kZW50KSAqIChpdGVtLmxldmVsIC0gMSkgKyAoaXRlbS5sZXZlbCAqIDQpICsgKGl0ZW0uaGFzQ2hpbGRyZW4gPyAwIDogaW5kZW50KVwiPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgPCEtLSBUb2dnbGUgdGhlIGJ1dHRvbiBpY29uIHRvIGJlIGEgc3Bpbm5lciB3aGVuIGl0ZW0uc3RhdHVzIGlzIHBlbmRpbmcgLS0+XHJcbiAgICAgICAgPGVjLWNvbGxhcHNpYmxlLXRvZ2dsZSBpZD1cInRvZ2dsZV97e2l0ZW0uaWR9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtc2hyaW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJpbmRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmhhc0NoaWxkcmVuICYmICFpdGVtLmhpZGVUb2dnbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCJpdGVtLnN0YXR1cyA9PT0gJ3BlbmRpbmcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleHBhbmRlZF09XCJpdGVtLmV4cGFuZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChleHBhbmRlZENoYW5nZSk9XCJ0b2dnbGVJdGVtQ2xpY2tlZChpdGVtLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9lYy1jb2xsYXBzaWJsZS10b2dnbGU+XHJcblxyXG4gICAgICAgIDxpIGNsYXNzPVwiZWMtaWNvbiBpY29uLWxvYWRpbmcgbXktMVwiXHJcbiAgICAgICAgICAgW2hpZGRlbl09XCJpdGVtLnN0YXR1cyAhPT0gJ3BlbmRpbmcnXCI+PC9pPlxyXG5cclxuICAgICAgICA8YSBpZD1cInRyZWVJdGVtX3t7aXRlbS5pZH19X2xpbmtcIlxyXG4gICAgICAgICAgIGNsYXNzPVwiaXRlbVwiXHJcbiAgICAgICAgICAgKm5nSWY9XCJpdGVtLnVybFwiXHJcbiAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIlxyXG4gICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0udXJsXCJcclxuICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwiaXRlbS5xdWVyeVBhcmFtc1wiXHJcbiAgICAgICAgICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwiaXRlbS5xdWVyeVBhcmFtc0hhbmRsaW5nIHx8ICcnXCI+XHJcbiAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUl0ZW1UZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJ0cmVlSXRlbV97e2l0ZW0uaWR9fV9oZWFkaW5nXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiaXRlbVwiXHJcbiAgICAgICAgICAgICAqbmdJZj1cIiFpdGVtLnVybFwiXHJcbiAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUl0ZW1UZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgIDx1bCAqbmdJZj1cIml0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCAmJiBpdGVtLmV4cGFuZGVkXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhpZXJhcmNoeVZpZXc7IGNvbnRleHQ6eyAkaW1wbGljaXQ6IGl0ZW0uY2hpbGRyZW4gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9saT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGllcmFyY2h5VmlldzsgY29udGV4dDp7ICRpbXBsaWNpdDogcm9vdE5vZGU/LmNoaWxkcmVuIH1cIj48L25nLWNvbnRhaW5lcj5cclxuPC91bD5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEl0ZW1UZW1wbGF0ZVxyXG4gICAgICAgICAgICAgbGV0LWl0ZW0+XHJcbiAgPGkgY2xhc3M9XCJlYy1pY29uIHt7aXRlbS5pY29ufX0gbXgtMSBmbGV4LXNocmlua1wiXHJcbiAgICAgW2F0dHIudGl0bGVdPVwiaXRlbS5pY29uVG9vbHRpcFwiXHJcbiAgICAgKm5nSWY9XCJpdGVtLmljb25cIj48L2k+XHJcbiAgPHNwYW4gY2xhc3M9XCJteC0xIHRleHQtdHJ1bmNhdGVcIj57e2l0ZW0ubGFiZWx9fTwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|