@energycap/components 0.31.0 → 0.31.1-ECAP-12439-angular-14.20220901-1019
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/energycap-components.d.ts +1 -3
- package/energycap-components.min.css +2 -2
- package/esm2020/energycap-components.mjs +5 -0
- package/esm2020/lib/components.module.mjs +383 -0
- package/esm2020/lib/controls/banner/banner.component.mjs +106 -0
- package/esm2020/lib/controls/button/button.component.mjs +106 -0
- package/esm2020/lib/controls/button/copy-button.directive.mjs +65 -0
- package/esm2020/lib/controls/checkbox/checkbox.component.mjs +139 -0
- package/esm2020/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -0
- package/esm2020/lib/controls/combobox/combobox.component.mjs +840 -0
- package/esm2020/lib/controls/dropdown/dropdown.component.mjs +237 -0
- package/esm2020/lib/controls/file-upload/file-upload.component.mjs +169 -0
- package/esm2020/lib/controls/form-control/form-control.component.mjs +86 -0
- package/esm2020/lib/controls/form-control-base.mjs +143 -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 +252 -0
- package/esm2020/lib/controls/help-popover/help-popover.component.mjs +28 -0
- package/esm2020/lib/controls/item-picker/item-picker.component.mjs +233 -0
- package/esm2020/lib/controls/link-button/link-button.component.mjs +11 -0
- package/esm2020/lib/controls/menu/menu.component.mjs +443 -0
- package/{esm2015/lib/controls/navigation/link-item.js → esm2020/lib/controls/navigation/link-item.mjs} +0 -0
- package/{esm2015/lib/controls/navigation/nav-group.js → esm2020/lib/controls/navigation/nav-group.mjs} +0 -0
- package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +92 -0
- package/{esm2015/lib/controls/navigation/nav-item.js → esm2020/lib/controls/navigation/nav-item.mjs} +0 -0
- package/esm2020/lib/controls/numericbox/numericbox.component.mjs +371 -0
- package/esm2020/lib/controls/popover/popover.component.mjs +84 -0
- package/{esm2015/lib/controls/radio-button/radio-button-option.js → esm2020/lib/controls/radio-button/radio-button-option.mjs} +0 -0
- package/esm2020/lib/controls/radio-button/radio-button.component.mjs +81 -0
- package/esm2020/lib/controls/select/select.component.mjs +87 -0
- package/esm2020/lib/controls/tabs/tabs.component.mjs +47 -0
- package/esm2020/lib/controls/textbox/textbox.component.mjs +154 -0
- package/{esm2015/lib/core/cache.service.js → esm2020/lib/core/cache.service.mjs} +9 -8
- package/{esm2015/lib/core/custom-validators.js → esm2020/lib/core/custom-validators.mjs} +0 -0
- package/{esm2015/lib/core/date-time-helper.js → esm2020/lib/core/date-time-helper.mjs} +0 -0
- package/esm2020/lib/core/error.service.mjs +57 -0
- package/esm2020/lib/core/scroll.service.mjs +89 -0
- package/esm2020/lib/core/telemetry-tracker.service.mjs +16 -0
- package/esm2020/lib/core/telemetry.service.mjs +38 -0
- package/esm2020/lib/core/validation-message.service.mjs +181 -0
- package/{esm2015/lib/core/validation-patterns.js → esm2020/lib/core/validation-patterns.mjs} +0 -0
- package/esm2020/lib/core/window.service.mjs +182 -0
- package/esm2020/lib/display/app-bar/app-bar.component.mjs +46 -0
- package/esm2020/lib/display/avatar/avatar.component.mjs +67 -0
- package/{esm2015/lib/display/avatar/avatar.service.js → esm2020/lib/display/avatar/avatar.service.mjs} +9 -7
- package/esm2020/lib/display/confirm/confirm.component.mjs +131 -0
- package/{esm2015/lib/display/dialog/dialog-content.js → esm2020/lib/display/dialog/dialog-content.mjs} +0 -0
- package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -0
- package/{esm2015/lib/display/dialog/dialog-types.js → esm2020/lib/display/dialog/dialog-types.mjs} +0 -0
- package/esm2020/lib/display/dialog/dialog.component.mjs +242 -0
- package/esm2020/lib/display/dialog/dialog.service.mjs +71 -0
- package/{esm2015/lib/display/help/help-types.js → esm2020/lib/display/help/help-types.mjs} +0 -0
- package/esm2020/lib/display/hierarchy/hierarchy-base.mjs +106 -0
- package/{esm2015/lib/display/hierarchy/hierarchy-mocks.spec.js → esm2020/lib/display/hierarchy/hierarchy-mocks.spec.mjs} +5 -9
- package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +59 -0
- package/esm2020/lib/display/item-display/item-display.component.mjs +67 -0
- package/esm2020/lib/display/json-display/json-display.component.mjs +47 -0
- package/esm2020/lib/display/resizable/resizable-base.mjs +120 -0
- package/esm2020/lib/display/resizable/resizable.component.mjs +57 -0
- package/esm2020/lib/display/spinner/spinner.component.mjs +12 -0
- package/esm2020/lib/display/splash/splash.component.mjs +42 -0
- package/esm2020/lib/display/splash/splash.service.mjs +35 -0
- package/esm2020/lib/display/table/resizable-column.component.mjs +20 -0
- package/esm2020/lib/display/table/resizable-table.directive.mjs +227 -0
- package/esm2020/lib/display/table/searchable-table.component.mjs +338 -0
- package/esm2020/lib/display/table/table-detail-row.component.mjs +27 -0
- package/esm2020/lib/display/table/table-locked-column.component.mjs +58 -0
- package/esm2020/lib/display/table/table-master-header-row.component.mjs +11 -0
- package/esm2020/lib/display/table/table-master-row.component.mjs +150 -0
- package/esm2020/lib/display/table/table-pagination.component.mjs +150 -0
- package/esm2020/lib/display/table/table-selectable-row.component.mjs +235 -0
- package/esm2020/lib/display/table/table.component.mjs +244 -0
- package/esm2020/lib/display/tags/tag.mjs +15 -0
- package/esm2020/lib/display/tags/tags.component.mjs +77 -0
- package/esm2020/lib/display/toast/toast/toast.component.mjs +77 -0
- package/{esm2015/lib/display/toast/toast-types.js → esm2020/lib/display/toast/toast-types.mjs} +0 -0
- package/esm2020/lib/display/toast/toast.service.mjs +35 -0
- package/esm2020/lib/display/toast/toaster/toaster.component.mjs +114 -0
- package/esm2020/lib/display/tree/tree.component.mjs +125 -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/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 +48 -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/{esm2015/lib/shared/display.js → esm2020/lib/shared/display.mjs} +0 -0
- package/esm2020/lib/shared/form-group.helper.mjs +67 -0
- package/{esm2015/lib/shared/json-helper.js → esm2020/lib/shared/json-helper.mjs} +0 -0
- package/{esm2015/lib/shared/lodash-helper.js → esm2020/lib/shared/lodash-helper.mjs} +0 -0
- package/esm2020/lib/shared/page/page-base/page-base.component.mjs +339 -0
- package/{esm2015/lib/shared/page/page-statuses.js → esm2020/lib/shared/page/page-statuses.mjs} +0 -0
- package/esm2020/lib/shared/page/page-title/page-title.component.mjs +23 -0
- package/esm2020/lib/shared/page/page-view/page-view.component.mjs +115 -0
- package/{esm2015/lib/shared/testing/hierarchy-base-test-injector-factory.spec.js → esm2020/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs} +0 -0
- package/esm2020/lib/shared/testing/page-base-component-test-helper.spec.mjs +30 -0
- package/{esm2015/lib/shared/testing/page-base-component-test-injector-factory.spec.js → esm2020/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs} +0 -0
- package/esm2020/lib/shared/testing/public-mocks.spec.mjs +132 -0
- package/{esm2015/lib/shared/testing/spy-factory.spec.js → esm2020/lib/shared/testing/spy-factory.spec.mjs} +0 -0
- package/{esm2015/lib/shared/testing/translation-mocks.spec.js → esm2020/lib/shared/testing/translation-mocks.spec.mjs} +0 -0
- package/esm2020/lib/shared/user-preference.service.mjs +17 -0
- package/esm2020/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -0
- package/esm2020/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -0
- package/esm2020/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/energycap-components.mjs +10002 -0
- package/fesm2015/energycap-components.mjs.map +1 -0
- package/fesm2020/energycap-components.mjs +9912 -0
- package/fesm2020/energycap-components.mjs.map +1 -0
- package/lib/components.module.d.ts +71 -0
- package/lib/controls/banner/banner.component.d.ts +3 -0
- package/lib/controls/button/button.component.d.ts +3 -0
- package/lib/controls/button/copy-button.directive.d.ts +3 -0
- package/lib/controls/checkbox/checkbox.component.d.ts +3 -0
- package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +3 -0
- package/lib/controls/combobox/combobox.component.d.ts +3 -0
- package/lib/controls/dropdown/dropdown.component.d.ts +3 -0
- package/lib/controls/file-upload/file-upload.component.d.ts +3 -0
- package/lib/controls/form-control/form-control.component.d.ts +3 -0
- package/lib/controls/form-control-base.d.ts +3 -0
- package/lib/controls/form-control-label/form-control-label.component.d.ts +3 -0
- package/lib/controls/form-group/form-group.component.d.ts +3 -0
- package/lib/controls/help-popover/help-popover.component.d.ts +3 -0
- package/lib/controls/item-picker/item-picker.component.d.ts +3 -0
- package/lib/controls/link-button/link-button.component.d.ts +3 -0
- package/lib/controls/menu/menu.component.d.ts +3 -0
- package/lib/controls/navigation/nav-item-active.directive.d.ts +3 -0
- package/lib/controls/numericbox/numericbox.component.d.ts +3 -0
- package/lib/controls/popover/popover.component.d.ts +3 -0
- package/lib/controls/radio-button/radio-button.component.d.ts +3 -0
- package/lib/controls/select/select.component.d.ts +3 -0
- package/lib/controls/tabs/tabs.component.d.ts +3 -0
- package/lib/controls/textbox/textbox.component.d.ts +3 -0
- package/lib/core/cache.service.d.ts +3 -0
- package/lib/core/error.service.d.ts +3 -0
- package/lib/core/scroll.service.d.ts +3 -0
- package/lib/core/telemetry-tracker.service.d.ts +3 -0
- package/lib/core/telemetry.service.d.ts +3 -0
- package/lib/core/validation-message.service.d.ts +3 -0
- package/lib/core/window.service.d.ts +3 -0
- package/lib/display/app-bar/app-bar.component.d.ts +3 -0
- package/lib/display/avatar/avatar.component.d.ts +3 -0
- package/lib/display/avatar/avatar.service.d.ts +3 -0
- package/lib/display/confirm/confirm.component.d.ts +3 -0
- package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +3 -0
- package/lib/display/dialog/dialog.component.d.ts +3 -0
- package/lib/display/dialog/dialog.service.d.ts +3 -0
- package/lib/display/hierarchy/hierarchy-base.d.ts +3 -0
- package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +3 -0
- package/lib/display/item-display/item-display.component.d.ts +3 -0
- package/lib/display/json-display/json-display.component.d.ts +3 -0
- package/lib/display/resizable/resizable-base.d.ts +3 -0
- package/lib/display/resizable/resizable.component.d.ts +3 -0
- package/lib/display/spinner/spinner.component.d.ts +3 -0
- package/lib/display/splash/splash.component.d.ts +3 -0
- package/lib/display/splash/splash.service.d.ts +3 -0
- package/lib/display/table/resizable-column.component.d.ts +3 -0
- package/lib/display/table/resizable-table.directive.d.ts +3 -0
- package/lib/display/table/searchable-table.component.d.ts +3 -0
- package/lib/display/table/table-detail-row.component.d.ts +3 -0
- package/lib/display/table/table-locked-column.component.d.ts +3 -0
- package/lib/display/table/table-master-header-row.component.d.ts +3 -0
- package/lib/display/table/table-master-row.component.d.ts +3 -0
- package/lib/display/table/table-pagination.component.d.ts +3 -0
- package/lib/display/table/table-selectable-row.component.d.ts +3 -0
- package/lib/display/table/table.component.d.ts +3 -0
- package/lib/display/tags/tags.component.d.ts +3 -0
- package/lib/display/toast/toast/toast.component.d.ts +3 -0
- package/lib/display/toast/toast.service.d.ts +3 -0
- package/lib/display/toast/toaster/toaster.component.d.ts +3 -0
- package/lib/display/tree/tree.component.d.ts +3 -0
- package/lib/display/view-overlay/view-overlay.component.d.ts +3 -0
- package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +3 -0
- package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +3 -0
- package/lib/shared/directives/popup/popup-container.directive.d.ts +3 -0
- package/lib/shared/display/pipes/date-display.pipe.d.ts +3 -0
- package/lib/shared/display/pipes/highlight-text.pipe.d.ts +3 -0
- package/lib/shared/display/pipes/relative-date.pipe.d.ts +3 -0
- package/lib/shared/display/pipes/row-count.pipe.d.ts +3 -0
- package/lib/shared/display/pipes/time-display.pipe.d.ts +3 -0
- package/lib/shared/form-group.helper.d.ts +3 -0
- package/lib/shared/page/page-base/page-base.component.d.ts +3 -0
- package/lib/shared/page/page-title/page-title.component.d.ts +3 -0
- package/lib/shared/page/page-view/page-view.component.d.ts +3 -0
- package/lib/shared/testing/public-mocks.spec.d.ts +7 -0
- package/lib/shared/user-preference.service.d.ts +3 -0
- package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +3 -0
- package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +3 -0
- package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +3 -0
- package/package.json +25 -13
- package/src/styles/_functions.scss +6 -4
- package/src/styles/_global-variables.scss +1 -0
- package/src/styles/mixins/_control-base.scss +2 -2
- package/src/styles/mixins/_form-control-base.scss +3 -1
- package/src/styles/mixins/_spinner-base.scss +3 -1
- package/bundles/energycap-components.umd.js +0 -10552
- package/bundles/energycap-components.umd.js.map +0 -1
- package/bundles/energycap-components.umd.min.js +0 -17
- package/bundles/energycap-components.umd.min.js.map +0 -1
- package/energycap-components.metadata.json +0 -1
- package/esm2015/energycap-components.js +0 -8
- package/esm2015/lib/components.module.js +0 -235
- package/esm2015/lib/controls/banner/banner.component.js +0 -94
- package/esm2015/lib/controls/button/button.component.js +0 -89
- package/esm2015/lib/controls/button/copy-button.directive.js +0 -63
- package/esm2015/lib/controls/checkbox/checkbox.component.js +0 -137
- package/esm2015/lib/controls/collapsible-toggle/collapsible-toggle.component.js +0 -35
- package/esm2015/lib/controls/combobox/combobox.component.js +0 -818
- package/esm2015/lib/controls/dropdown/dropdown.component.js +0 -207
- package/esm2015/lib/controls/file-upload/file-upload.component.js +0 -172
- package/esm2015/lib/controls/form-control/form-control.component.js +0 -65
- package/esm2015/lib/controls/form-control-base.js +0 -140
- package/esm2015/lib/controls/form-control-label/form-control-label.component.js +0 -139
- package/esm2015/lib/controls/form-group/form-group.component.js +0 -254
- package/esm2015/lib/controls/help-popover/help-popover.component.js +0 -22
- package/esm2015/lib/controls/item-picker/item-picker.component.js +0 -216
- package/esm2015/lib/controls/link-button/link-button.component.js +0 -12
- package/esm2015/lib/controls/menu/menu.component.js +0 -424
- package/esm2015/lib/controls/navigation/nav-item-active.directive.js +0 -86
- package/esm2015/lib/controls/numericbox/numericbox.component.js +0 -362
- package/esm2015/lib/controls/popover/popover.component.js +0 -85
- package/esm2015/lib/controls/radio-button/radio-button.component.js +0 -78
- package/esm2015/lib/controls/select/select.component.js +0 -89
- package/esm2015/lib/controls/tabs/tabs.component.js +0 -42
- package/esm2015/lib/controls/textbox/textbox.component.js +0 -149
- package/esm2015/lib/core/error.service.js +0 -56
- package/esm2015/lib/core/scroll.service.js +0 -88
- package/esm2015/lib/core/telemetry-tracker.service.js +0 -14
- package/esm2015/lib/core/telemetry.service.js +0 -40
- package/esm2015/lib/core/validation-message.service.js +0 -185
- package/esm2015/lib/core/window.service.js +0 -191
- package/esm2015/lib/display/app-bar/app-bar.component.js +0 -42
- package/esm2015/lib/display/avatar/avatar.component.js +0 -73
- package/esm2015/lib/display/confirm/confirm.component.js +0 -127
- package/esm2015/lib/display/dialog/dialog-group/dialog-group.component.js +0 -65
- package/esm2015/lib/display/dialog/dialog.component.js +0 -229
- package/esm2015/lib/display/dialog/dialog.service.js +0 -69
- package/esm2015/lib/display/hierarchy/hierarchy-base.js +0 -106
- package/esm2015/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.js +0 -58
- package/esm2015/lib/display/item-display/item-display.component.js +0 -57
- package/esm2015/lib/display/json-display/json-display.component.js +0 -44
- package/esm2015/lib/display/resizable/resizable-base.js +0 -119
- package/esm2015/lib/display/resizable/resizable.component.js +0 -57
- package/esm2015/lib/display/spinner/spinner.component.js +0 -12
- package/esm2015/lib/display/splash/splash.component.js +0 -45
- package/esm2015/lib/display/splash/splash.service.js +0 -34
- package/esm2015/lib/display/table/resizable-column.component.js +0 -23
- package/esm2015/lib/display/table/resizable-table.directive.js +0 -223
- package/esm2015/lib/display/table/searchable-table.component.js +0 -303
- package/esm2015/lib/display/table/table-detail-row.component.js +0 -21
- package/esm2015/lib/display/table/table-locked-column.component.js +0 -53
- package/esm2015/lib/display/table/table-master-header-row.component.js +0 -11
- package/esm2015/lib/display/table/table-master-row.component.js +0 -141
- package/esm2015/lib/display/table/table-pagination.component.js +0 -146
- package/esm2015/lib/display/table/table-selectable-row.component.js +0 -216
- package/esm2015/lib/display/table/table.component.js +0 -210
- package/esm2015/lib/display/tags/tag.js +0 -15
- package/esm2015/lib/display/tags/tags.component.js +0 -73
- package/esm2015/lib/display/toast/toast/toast.component.js +0 -70
- package/esm2015/lib/display/toast/toast.service.js +0 -34
- package/esm2015/lib/display/toast/toaster/toaster.component.js +0 -117
- package/esm2015/lib/display/tree/tree.component.js +0 -100
- package/esm2015/lib/display/view-overlay/view-overlay.component.js +0 -50
- package/esm2015/lib/shared/directives/click-area-for/click-area-for.directive.js +0 -25
- package/esm2015/lib/shared/directives/if-viewport-width/if-viewport-width.directive.js +0 -112
- package/esm2015/lib/shared/directives/popup/popup-container.directive.js +0 -160
- package/esm2015/lib/shared/display/pipes/date-display.pipe.js +0 -49
- package/esm2015/lib/shared/display/pipes/highlight-text.pipe.js +0 -26
- package/esm2015/lib/shared/display/pipes/relative-date.pipe.js +0 -49
- package/esm2015/lib/shared/display/pipes/row-count.pipe.js +0 -47
- package/esm2015/lib/shared/display/pipes/time-display.pipe.js +0 -40
- package/esm2015/lib/shared/form-group.helper.js +0 -65
- package/esm2015/lib/shared/page/page-base/page-base.component.js +0 -356
- package/esm2015/lib/shared/page/page-title/page-title.component.js +0 -19
- package/esm2015/lib/shared/page/page-view/page-view.component.js +0 -89
- package/esm2015/lib/shared/testing/page-base-component-test-helper.spec.js +0 -35
- package/esm2015/lib/shared/testing/public-mocks.spec.js +0 -126
- package/esm2015/lib/shared/user-preference.service.js +0 -15
- package/esm2015/lib/shared/wizard/wizard-base/wizard-base.component.js +0 -260
- package/esm2015/lib/shared/wizard/wizard-buttons/wizard-buttons.component.js +0 -54
- package/esm2015/lib/shared/wizard/wizard-progress/wizard-progress.component.js +0 -18
- package/fesm2015/energycap-components.js +0 -9549
- package/fesm2015/energycap-components.js.map +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Tag contains a label and type. Type is default by default */
|
|
2
|
+
export class Tag {
|
|
3
|
+
constructor(label, type, classList, icon, isDismissable, tooltip) {
|
|
4
|
+
this.label = label;
|
|
5
|
+
this.type = type || 'info';
|
|
6
|
+
this.icon = icon;
|
|
7
|
+
this.isDismissable = isDismissable ?? false;
|
|
8
|
+
this.tooltip = tooltip;
|
|
9
|
+
if (classList) {
|
|
10
|
+
this.classList = classList;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdGFncy90YWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsZ0VBQWdFO0FBQ2hFLE1BQU0sT0FBTyxHQUFHO0lBY2QsWUFBWSxLQUFhLEVBQUUsSUFBYyxFQUFFLFNBQWtCLEVBQUUsSUFBYSxFQUFFLGFBQXVCLEVBQUUsT0FBZ0I7UUFDckgsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxJQUFJLEtBQUssQ0FBQztRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2QixJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztDQUNGO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBUYWcgdHlwZSB1c2VkIHRvIHN0eWxlIHRoZSB0YWcgKi9cclxuZXhwb3J0IHR5cGUgVGFnVHlwZSA9IFwiaW5mb1wiIHwgXCJzdWNjZXNzXCIgfCBcIndhcm5pbmdcIiB8IFwiZGFuZ2VyXCIgfCBcImFjY2VudFwiIHwgXCJjaGFyZ2ViYWNrXCIgfCBcImFjY3J1YWxcIjtcclxuXHJcbi8qKiBUYWcgY29udGFpbnMgYSBsYWJlbCBhbmQgdHlwZS4gVHlwZSBpcyBkZWZhdWx0IGJ5IGRlZmF1bHQgKi9cclxuZXhwb3J0IGNsYXNzIFRhZyB7XHJcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyB0eXBlOiBUYWdUeXBlO1xyXG5cclxuICBwdWJsaWMgaWNvbj86IHN0cmluZztcclxuXHJcbiAgcHVibGljIGlzRGlzbWlzc2FibGU/OiBib29sZWFuO1xyXG5cclxuICAvKiogQ1NTIGNsYXNzZXMgdG8gYXBwbHkgdG8gdGFnIGZvciBjdXN0b20gc3R5bGluZyAqL1xyXG4gIHB1YmxpYyBjbGFzc0xpc3Q/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyB0b29sdGlwPzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihsYWJlbDogc3RyaW5nLCB0eXBlPzogVGFnVHlwZSwgY2xhc3NMaXN0Pzogc3RyaW5nLCBpY29uPzogc3RyaW5nLCBpc0Rpc21pc3NhYmxlPzogYm9vbGVhbiwgdG9vbHRpcD86IHN0cmluZykge1xyXG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xyXG4gICAgdGhpcy50eXBlID0gdHlwZSB8fCAnaW5mbyc7XHJcbiAgICB0aGlzLmljb24gPSBpY29uO1xyXG4gICAgdGhpcy5pc0Rpc21pc3NhYmxlID0gaXNEaXNtaXNzYWJsZSA/PyBmYWxzZTtcclxuICAgIHRoaXMudG9vbHRpcCA9IHRvb2x0aXA7XHJcblxyXG4gICAgaWYgKGNsYXNzTGlzdCkge1xyXG4gICAgICB0aGlzLmNsYXNzTGlzdCA9IGNsYXNzTGlzdDtcclxuICAgIH1cclxuICB9XHJcbn07Il19
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@ngx-translate/core";
|
|
5
|
+
export class TagsComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
/**The ID of this set of tags */
|
|
8
|
+
this.id = '';
|
|
9
|
+
/**
|
|
10
|
+
* Determines whether the tags will wrap or not
|
|
11
|
+
*
|
|
12
|
+
* @type {boolean}
|
|
13
|
+
* @memberof TagsComponent
|
|
14
|
+
*/
|
|
15
|
+
this.wrap = true;
|
|
16
|
+
/**
|
|
17
|
+
* Displays the tags in condensed mode
|
|
18
|
+
*/
|
|
19
|
+
this.isCondensed = false;
|
|
20
|
+
/**
|
|
21
|
+
* Emits the tag item when the tag's close button is clicked
|
|
22
|
+
*/
|
|
23
|
+
this.tagClosed = new EventEmitter();
|
|
24
|
+
/**
|
|
25
|
+
* Tags to be displayed
|
|
26
|
+
*
|
|
27
|
+
* @type {Tag[]}
|
|
28
|
+
* @memberof TagsComponent
|
|
29
|
+
*/
|
|
30
|
+
this.tagsArray = [];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Angular onChanges lifecycle hook
|
|
34
|
+
* @see {@link https://angular.io/guide/lifecycle-hooks | Life-cycle hooks}
|
|
35
|
+
*
|
|
36
|
+
* @param {SimpleChanges} changes
|
|
37
|
+
* @memberof TagsComponent
|
|
38
|
+
*/
|
|
39
|
+
ngOnChanges(changes) {
|
|
40
|
+
if (changes.tags) {
|
|
41
|
+
if (this.tags) {
|
|
42
|
+
// If only given a single item, put it in an array so it works in the template
|
|
43
|
+
if (Array.isArray(this.tags)) {
|
|
44
|
+
this.tagsArray = this.tags;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.tagsArray = [this.tags];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// reset array if tags becomes undefined
|
|
52
|
+
this.tagsArray = [];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
closeTag(tag) {
|
|
57
|
+
this.tagsArray = this.tagsArray.filter(t => t !== tag);
|
|
58
|
+
this.tagClosed.emit(tag);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
TagsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TagsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
+
TagsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: TagsComponent, selector: "ec-tags", inputs: { id: "id", tags: "tags", wrap: "wrap", isCondensed: "isCondensed" }, outputs: { tagClosed: "tagClosed" }, usesOnChanges: true, ngImport: i0, template: "<ul class=\"tags\" [class.is-wrapped]=\"wrap\">\r\n <li *ngFor=\"let tag of tagsArray; index as i\"\r\n id=\"{{id}}_tag_{{i}}\"\r\n class=\"tag is-{{tag.type}} {{tag.classList}} mr-1\"\r\n [ngClass]=\"{'text-caption-1': !isCondensed, 'text-caption-2': isCondensed, 'is-condensed': isCondensed, 'pr-0': tag.isDismissable}\"\r\n title=\"{{tag.tooltip | translate}}\">\r\n <i *ngIf=\"tag.icon\" class=\"ec-icon {{tag.icon}} font-color-muted ec-icon-sm\"></i>\r\n {{tag.label | translate}}\r\n <button id=\"{{id}}_tag_{{i}}_dismissButton\"\r\n *ngIf=\"tag.isDismissable\"\r\n (click)=\"closeTag(tag)\">\r\n <i class=\"ec-icon ec-icon-sm icon-cancel\"></i>\r\n </button>\r\n </li>\r\n</ul>", styles: [":root{--ec-font-size-icon: 1rem;--ec-color-icon: rgba(26, 26, 35, .66)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{display:block}.tags{padding:0;margin:0;list-style:none;display:flex}.tags.is-wrapped{flex-wrap:wrap;margin-top:.25rem}.tags.is-wrapped>.tag{margin-bottom:.25rem}.tag{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#acbcc340;border:2px solid #acbcc3;display:inline-flex;align-items:center;border-radius:calc(var(--ec-border-radius, .25rem) * 3);height:1.5rem;line-height:1.25rem;padding:0 .4375rem;vertical-align:top}.tag>.ec-icon:first-child{margin-right:.1875rem}.tag .ec-icon{display:flex;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;width:auto;height:auto;min-width:1em;justify-content:center}.tag .ec-icon:before,.tag .ec-icon:after{width:auto;height:auto}.tag.is-info{background-color:#acbcc340;border-color:#acbcc3}.tag.is-success{background-color:#c1cd2340;border-color:#c1cd23}.tag.is-warning{background-color:#f5d40040;border-color:#f5d400}.tag.is-danger{background-color:#e3343640;border-color:#e33436}.tag.is-accent{background-color:#906ea840;border-color:#906ea8}.tag.is-chargeback{background-color:#fa7b2e40;border-color:#fa7b2e}.tag.is-accrual{background-color:#23c3cd40;border-color:#23c3cd}button{background-color:transparent;border:0;display:flex;align-items:center;padding:0 .4375rem 0 .1875rem;height:100%;cursor:pointer}button:hover,button:focus{background-color:#1a1a231a;outline:none}.is-condensed{border-radius:var(--ec-border-radius);border:0;padding:0 .25rem;height:1.125rem;line-height:1.125rem;min-width:1.125rem;justify-content:center}.is-condensed>.ec-icon:first-child{margin-right:.125rem}.is-condensed button{padding-right:.25rem;padding-left:.125rem}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i2.TranslatePipe } });
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TagsComponent, decorators: [{
|
|
64
|
+
type: Component,
|
|
65
|
+
args: [{ selector: 'ec-tags', template: "<ul class=\"tags\" [class.is-wrapped]=\"wrap\">\r\n <li *ngFor=\"let tag of tagsArray; index as i\"\r\n id=\"{{id}}_tag_{{i}}\"\r\n class=\"tag is-{{tag.type}} {{tag.classList}} mr-1\"\r\n [ngClass]=\"{'text-caption-1': !isCondensed, 'text-caption-2': isCondensed, 'is-condensed': isCondensed, 'pr-0': tag.isDismissable}\"\r\n title=\"{{tag.tooltip | translate}}\">\r\n <i *ngIf=\"tag.icon\" class=\"ec-icon {{tag.icon}} font-color-muted ec-icon-sm\"></i>\r\n {{tag.label | translate}}\r\n <button id=\"{{id}}_tag_{{i}}_dismissButton\"\r\n *ngIf=\"tag.isDismissable\"\r\n (click)=\"closeTag(tag)\">\r\n <i class=\"ec-icon ec-icon-sm icon-cancel\"></i>\r\n </button>\r\n </li>\r\n</ul>", styles: [":root{--ec-font-size-icon: 1rem;--ec-color-icon: rgba(26, 26, 35, .66)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{display:block}.tags{padding:0;margin:0;list-style:none;display:flex}.tags.is-wrapped{flex-wrap:wrap;margin-top:.25rem}.tags.is-wrapped>.tag{margin-bottom:.25rem}.tag{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#acbcc340;border:2px solid #acbcc3;display:inline-flex;align-items:center;border-radius:calc(var(--ec-border-radius, .25rem) * 3);height:1.5rem;line-height:1.25rem;padding:0 .4375rem;vertical-align:top}.tag>.ec-icon:first-child{margin-right:.1875rem}.tag .ec-icon{display:flex;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;width:auto;height:auto;min-width:1em;justify-content:center}.tag .ec-icon:before,.tag .ec-icon:after{width:auto;height:auto}.tag.is-info{background-color:#acbcc340;border-color:#acbcc3}.tag.is-success{background-color:#c1cd2340;border-color:#c1cd23}.tag.is-warning{background-color:#f5d40040;border-color:#f5d400}.tag.is-danger{background-color:#e3343640;border-color:#e33436}.tag.is-accent{background-color:#906ea840;border-color:#906ea8}.tag.is-chargeback{background-color:#fa7b2e40;border-color:#fa7b2e}.tag.is-accrual{background-color:#23c3cd40;border-color:#23c3cd}button{background-color:transparent;border:0;display:flex;align-items:center;padding:0 .4375rem 0 .1875rem;height:100%;cursor:pointer}button:hover,button:focus{background-color:#1a1a231a;outline:none}.is-condensed{border-radius:var(--ec-border-radius);border:0;padding:0 .25rem;height:1.125rem;line-height:1.125rem;min-width:1.125rem;justify-content:center}.is-condensed>.ec-icon:first-child{margin-right:.125rem}.is-condensed button{padding-right:.25rem;padding-left:.125rem}\n"] }]
|
|
66
|
+
}], ctorParameters: function () { return []; }, propDecorators: { id: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], tags: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], wrap: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], isCondensed: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], tagClosed: [{
|
|
75
|
+
type: Output
|
|
76
|
+
}] } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWdzL3RhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdGFncy90YWdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWpHLE1BQU0sT0FBTyxhQUFhO0lBdUN4QjtRQXJDQSxnQ0FBZ0M7UUFDaEIsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQVVoQzs7Ozs7V0FLRztRQUNhLFNBQUksR0FBWSxJQUFJLENBQUM7UUFFckM7O1dBRUc7UUFDYSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU3Qzs7V0FFRztRQUNjLGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV4RTs7Ozs7V0FLRztRQUNJLGNBQVMsR0FBVSxFQUFFLENBQUM7SUFFYixDQUFDO0lBRWpCOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNiLDhFQUE4RTtnQkFDOUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUM1QjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM5QjthQUNGO2lCQUFNO2dCQUNMLHdDQUF3QztnQkFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7YUFDckI7U0FDRjtJQUNILENBQUM7SUFFTSxRQUFRLENBQUMsR0FBUTtRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7OzJHQW5FVSxhQUFhOytGQUFiLGFBQWEsdUxDUjFCLDJ1QkFjSzs0RkROUSxhQUFhO2tCQUx6QixTQUFTOytCQUNFLFNBQVM7MEVBT0gsRUFBRTtzQkFBakIsS0FBSztnQkFRVSxJQUFJO3NCQUFuQixLQUFLO2dCQVFVLElBQUk7c0JBQW5CLEtBQUs7Z0JBS1UsV0FBVztzQkFBMUIsS0FBSztnQkFLVyxTQUFTO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkNoYW5nZXMsIElucHV0LCBTaW1wbGVDaGFuZ2VzLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWcgfSBmcm9tICcuL3RhZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXRhZ3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWdzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWdzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICAvKipUaGUgSUQgb2YgdGhpcyBzZXQgb2YgdGFncyAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uZSBvciBtb3JlIHRhZ3NcclxuICAgKiBcclxuICAgKiBAdHlwZSB7KFRhZyB8IFRhZ1tdKX1cclxuICAgKiBAbWVtYmVyb2YgVGFnc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0YWdzPzogVGFnIHwgVGFnW107XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgdGFncyB3aWxsIHdyYXAgb3Igbm90XHJcbiAgICogXHJcbiAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIFRhZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgd3JhcDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BsYXlzIHRoZSB0YWdzIGluIGNvbmRlbnNlZCBtb2RlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlzQ29uZGVuc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSB0YWcgaXRlbSB3aGVuIHRoZSB0YWcncyBjbG9zZSBidXR0b24gaXMgY2xpY2tlZFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgdGFnQ2xvc2VkOiBFdmVudEVtaXR0ZXI8VGFnPiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFnPigpO1xyXG5cclxuICAvKipcclxuICAgKiBUYWdzIHRvIGJlIGRpc3BsYXllZFxyXG4gICAqIFxyXG4gICAqIEB0eXBlIHtUYWdbXX1cclxuICAgKiBAbWVtYmVyb2YgVGFnc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyB0YWdzQXJyYXk6IFRhZ1tdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFuZ3VsYXIgb25DaGFuZ2VzIGxpZmVjeWNsZSBob29rXHJcbiAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2xpZmVjeWNsZS1ob29rcyB8IExpZmUtY3ljbGUgaG9va3N9XHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtTaW1wbGVDaGFuZ2VzfSBjaGFuZ2VzIFxyXG4gICAqIEBtZW1iZXJvZiBUYWdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMudGFncykge1xyXG4gICAgICBpZiAodGhpcy50YWdzKSB7XHJcbiAgICAgICAgLy8gSWYgb25seSBnaXZlbiBhIHNpbmdsZSBpdGVtLCBwdXQgaXQgaW4gYW4gYXJyYXkgc28gaXQgd29ya3MgaW4gdGhlIHRlbXBsYXRlXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy50YWdzKSkge1xyXG4gICAgICAgICAgdGhpcy50YWdzQXJyYXkgPSB0aGlzLnRhZ3M7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudGFnc0FycmF5ID0gW3RoaXMudGFnc107XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIHJlc2V0IGFycmF5IGlmIHRhZ3MgYmVjb21lcyB1bmRlZmluZWRcclxuICAgICAgICB0aGlzLnRhZ3NBcnJheSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VUYWcodGFnOiBUYWcpIHtcclxuICAgIHRoaXMudGFnc0FycmF5ID0gdGhpcy50YWdzQXJyYXkuZmlsdGVyKHQgPT4gdCAhPT0gdGFnKTtcclxuICAgIHRoaXMudGFnQ2xvc2VkLmVtaXQodGFnKTtcclxuICB9XHJcbn1cclxuIiwiPHVsIGNsYXNzPVwidGFnc1wiIFtjbGFzcy5pcy13cmFwcGVkXT1cIndyYXBcIj5cclxuICA8bGkgKm5nRm9yPVwibGV0IHRhZyBvZiB0YWdzQXJyYXk7IGluZGV4IGFzIGlcIlxyXG4gICAgICBpZD1cInt7aWR9fV90YWdfe3tpfX1cIlxyXG4gICAgICBjbGFzcz1cInRhZyBpcy17e3RhZy50eXBlfX0ge3t0YWcuY2xhc3NMaXN0fX0gbXItMVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsndGV4dC1jYXB0aW9uLTEnOiAhaXNDb25kZW5zZWQsICd0ZXh0LWNhcHRpb24tMic6IGlzQ29uZGVuc2VkLCAnaXMtY29uZGVuc2VkJzogaXNDb25kZW5zZWQsICdwci0wJzogdGFnLmlzRGlzbWlzc2FibGV9XCJcclxuICAgICAgdGl0bGU9XCJ7e3RhZy50b29sdGlwIHwgdHJhbnNsYXRlfX1cIj5cclxuICAgIDxpICpuZ0lmPVwidGFnLmljb25cIiBjbGFzcz1cImVjLWljb24ge3t0YWcuaWNvbn19IGZvbnQtY29sb3ItbXV0ZWQgZWMtaWNvbi1zbVwiPjwvaT5cclxuICAgIHt7dGFnLmxhYmVsIHwgdHJhbnNsYXRlfX1cclxuICAgIDxidXR0b24gaWQ9XCJ7e2lkfX1fdGFnX3t7aX19X2Rpc21pc3NCdXR0b25cIlxyXG4gICAgICAgICAgICAqbmdJZj1cInRhZy5pc0Rpc21pc3NhYmxlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlVGFnKHRhZylcIj5cclxuICAgICAgPGkgY2xhc3M9XCJlYy1pY29uIGVjLWljb24tc20gaWNvbi1jYW5jZWxcIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2xpPlxyXG48L3VsPiJdfQ==
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
|
2
|
+
import { race, Subject, timer } from 'rxjs';
|
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../toast.service";
|
|
6
|
+
import * as i2 from "../../../controls/banner/banner.component";
|
|
7
|
+
import * as i3 from "../../../controls/link-button/link-button.component";
|
|
8
|
+
import * as i4 from "@angular/common";
|
|
9
|
+
import * as i5 from "@ngx-translate/core";
|
|
10
|
+
export class ToastComponent {
|
|
11
|
+
constructor(toastService) {
|
|
12
|
+
this.toastService = toastService;
|
|
13
|
+
this.open = false;
|
|
14
|
+
this.TOAST_ANIMATION_DURATION = 250;
|
|
15
|
+
this.closed = new EventEmitter();
|
|
16
|
+
this.TIMED_TOAST_DURATION = 4000;
|
|
17
|
+
this.destroyed = new Subject();
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
this.toastService.events.pipe(takeUntil(this.destroyed)).subscribe(event => {
|
|
21
|
+
if (event.action == 'remove' && event.toast === this.toastItem) {
|
|
22
|
+
this.close(event);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
ngOnChanges(changes) {
|
|
27
|
+
if (changes.toastItem && this.toastItem) {
|
|
28
|
+
this.id = this.toastItem.id;
|
|
29
|
+
this.open = true;
|
|
30
|
+
if (!this.toastItem.dismissible) {
|
|
31
|
+
this.closeAfterTimer();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
ngOnDestroy() {
|
|
36
|
+
this.destroyed.next();
|
|
37
|
+
this.destroyed.complete();
|
|
38
|
+
}
|
|
39
|
+
closeClicked() {
|
|
40
|
+
if (this.toastItem) {
|
|
41
|
+
this.toastService.dismissToast(this.toastItem, 'user');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
close(event) {
|
|
45
|
+
this.open = false;
|
|
46
|
+
timer(this.TOAST_ANIMATION_DURATION).subscribe(() => {
|
|
47
|
+
this.closed.emit(event);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
closeAfterTimer() {
|
|
51
|
+
timer(this.TIMED_TOAST_DURATION).pipe(takeUntil(race(this.closed, this.destroyed))).subscribe(() => {
|
|
52
|
+
if (this.toastItem) {
|
|
53
|
+
this.toastService.dismissToast(this.toastItem, 'auto');
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
ToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ToastComponent, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
59
|
+
ToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToastComponent, selector: "ec-toast", inputs: { toastItem: "toastItem" }, outputs: { closed: "closed" }, host: { properties: { "attr.id": "this.id", "class.is-open": "this.open", "style.--toast-animation-duration.ms": "this.TOAST_ANIMATION_DURATION" } }, usesOnChanges: true, ngImport: i0, template: "<ec-banner id=\"{{toastItem?.id}}_banner\"\r\n [type]=\"toastItem?.type\"\r\n bannerStyle=\"toast\"\r\n [customIcon]=\"toastItem?.icon\"\r\n [showCloseBtn]=\"toastItem?.dismissible\"\r\n [autoHideOnClose]=\"false\"\r\n (closed)=\"closeClicked()\">\r\n <div class=\"d-flex\">\r\n <div id=\"{{toastItem?.id}}_message\"\r\n [innerHTML]=\"toastItem?.message | translate\"></div>\r\n <button id=\"{{toastItem?.id}}_action\"\r\n ecLinkButton\r\n *ngIf=\"toastItem?.action && toastItem?.actionLabel\"\r\n class=\"font-weight-bold ml-2\"\r\n (click)=\"toastItem!.action!()\">{{toastItem?.actionLabel | translate}}</button>\r\n </div>\r\n</ec-banner>", styles: [":host{display:block;position:fixed;bottom:0;left:50%;transform:translate(-50%,150%);transition:transform var(--toast-animation-duration, .25s);transition-timing-function:ease-in;z-index:var(--ec-z-index-toast)}:host.is-open{transform:translate(-50%,calc(-1 * var(--toast-bottom, 0rem) - 1.5rem));transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}\n"], components: [{ type: i2.BannerComponent, selector: "ec-banner", inputs: ["hidden", "id", "type", "bannerStyle", "title", "text", "list", "showCloseBtn", "autoHideOnClose", "customIcon", "rememberClosed"], outputs: ["closed"] }, { type: i3.LinkButtonComponent, selector: "button[ecLinkButton]" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i5.TranslatePipe } });
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ToastComponent, decorators: [{
|
|
61
|
+
type: Component,
|
|
62
|
+
args: [{ selector: 'ec-toast', template: "<ec-banner id=\"{{toastItem?.id}}_banner\"\r\n [type]=\"toastItem?.type\"\r\n bannerStyle=\"toast\"\r\n [customIcon]=\"toastItem?.icon\"\r\n [showCloseBtn]=\"toastItem?.dismissible\"\r\n [autoHideOnClose]=\"false\"\r\n (closed)=\"closeClicked()\">\r\n <div class=\"d-flex\">\r\n <div id=\"{{toastItem?.id}}_message\"\r\n [innerHTML]=\"toastItem?.message | translate\"></div>\r\n <button id=\"{{toastItem?.id}}_action\"\r\n ecLinkButton\r\n *ngIf=\"toastItem?.action && toastItem?.actionLabel\"\r\n class=\"font-weight-bold ml-2\"\r\n (click)=\"toastItem!.action!()\">{{toastItem?.actionLabel | translate}}</button>\r\n </div>\r\n</ec-banner>", styles: [":host{display:block;position:fixed;bottom:0;left:50%;transform:translate(-50%,150%);transition:transform var(--toast-animation-duration, .25s);transition-timing-function:ease-in;z-index:var(--ec-z-index-toast)}:host.is-open{transform:translate(-50%,calc(-1 * var(--toast-bottom, 0rem) - 1.5rem));transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}\n"] }]
|
|
63
|
+
}], ctorParameters: function () { return [{ type: i1.ToastService }]; }, propDecorators: { toastItem: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], id: [{
|
|
66
|
+
type: HostBinding,
|
|
67
|
+
args: ['attr.id']
|
|
68
|
+
}], open: [{
|
|
69
|
+
type: HostBinding,
|
|
70
|
+
args: ['class.is-open']
|
|
71
|
+
}], TOAST_ANIMATION_DURATION: [{
|
|
72
|
+
type: HostBinding,
|
|
73
|
+
args: ['style.--toast-animation-duration.ms']
|
|
74
|
+
}], closed: [{
|
|
75
|
+
type: Output
|
|
76
|
+
}] } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9hc3QvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9hc3QvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBUzNDLE1BQU0sT0FBTyxjQUFjO0lBYXpCLFlBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUlQsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUNBLDZCQUF3QixHQUFHLEdBQUcsQ0FBQztRQUV6RSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUV4Qyx5QkFBb0IsR0FBVyxJQUFJLENBQUM7UUFDN0MsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFVSxDQUFDO0lBRW5ELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6RSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDOUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNuQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBRWpCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ3hCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsS0FBaUI7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsS0FBSyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZTtRQUNyQixLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxDQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQzdDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN4RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7NEdBNURVLGNBQWM7Z0dBQWQsY0FBYyw4UkNYM0IsMnZCQWdCWTs0RkRMQyxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFVBQVU7bUdBTUosU0FBUztzQkFBeEIsS0FBSztnQkFFeUIsRUFBRTtzQkFBaEMsV0FBVzt1QkFBQyxTQUFTO2dCQUNlLElBQUk7c0JBQXhDLFdBQVc7dUJBQUMsZUFBZTtnQkFDK0Isd0JBQXdCO3NCQUFsRixXQUFXO3VCQUFDLHFDQUFxQztnQkFFakMsTUFBTTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyByYWNlLCBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRvYXN0RXZlbnQsIFRvYXN0SXRlbSB9IGZyb20gJy4uL3RvYXN0LXR5cGVzJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vdG9hc3Quc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXRvYXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RvYXN0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgXHJcbiAgQElucHV0KCkgcHVibGljIHRvYXN0SXRlbT86IFRvYXN0SXRlbTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgcHVibGljIGlkPzogc3RyaW5nO1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtb3BlbicpIHB1YmxpYyBvcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXRvYXN0LWFuaW1hdGlvbi1kdXJhdGlvbi5tcycpIHB1YmxpYyBUT0FTVF9BTklNQVRJT05fRFVSQVRJT04gPSAyNTA7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxUb2FzdEV2ZW50PigpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IFRJTUVEX1RPQVNUX0RVUkFUSU9OOiBudW1iZXIgPSA0MDAwO1xyXG4gIHByaXZhdGUgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50b2FzdFNlcnZpY2UuZXZlbnRzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50LmFjdGlvbiA9PSAncmVtb3ZlJyAmJiBldmVudC50b2FzdCA9PT0gdGhpcy50b2FzdEl0ZW0pIHtcclxuICAgICAgICB0aGlzLmNsb3NlKGV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy50b2FzdEl0ZW0gJiYgdGhpcy50b2FzdEl0ZW0pIHtcclxuICAgICAgdGhpcy5pZCA9IHRoaXMudG9hc3RJdGVtLmlkO1xyXG4gICAgICB0aGlzLm9wZW4gPSB0cnVlO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLnRvYXN0SXRlbS5kaXNtaXNzaWJsZSkge1xyXG4gICAgICAgIHRoaXMuY2xvc2VBZnRlclRpbWVyKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZUNsaWNrZWQoKSB7XHJcbiAgICBpZiAodGhpcy50b2FzdEl0ZW0pIHtcclxuICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZGlzbWlzc1RvYXN0KHRoaXMudG9hc3RJdGVtLCAndXNlcicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9zZShldmVudDogVG9hc3RFdmVudCkge1xyXG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XHJcbiAgICB0aW1lcih0aGlzLlRPQVNUX0FOSU1BVElPTl9EVVJBVElPTikuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZWQuZW1pdChldmVudCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xvc2VBZnRlclRpbWVyKCkge1xyXG4gICAgdGltZXIodGhpcy5USU1FRF9UT0FTVF9EVVJBVElPTikucGlwZShcclxuICAgICAgdGFrZVVudGlsKHJhY2UodGhpcy5jbG9zZWQsIHRoaXMuZGVzdHJveWVkKSlcclxuICAgICkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMudG9hc3RJdGVtKSB7XHJcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZGlzbWlzc1RvYXN0KHRoaXMudG9hc3RJdGVtLCAnYXV0bycpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGVjLWJhbm5lciBpZD1cInt7dG9hc3RJdGVtPy5pZH19X2Jhbm5lclwiXHJcbiAgICAgICAgICAgW3R5cGVdPVwidG9hc3RJdGVtPy50eXBlXCJcclxuICAgICAgICAgICBiYW5uZXJTdHlsZT1cInRvYXN0XCJcclxuICAgICAgICAgICBbY3VzdG9tSWNvbl09XCJ0b2FzdEl0ZW0/Lmljb25cIlxyXG4gICAgICAgICAgIFtzaG93Q2xvc2VCdG5dPVwidG9hc3RJdGVtPy5kaXNtaXNzaWJsZVwiXHJcbiAgICAgICAgICAgW2F1dG9IaWRlT25DbG9zZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgKGNsb3NlZCk9XCJjbG9zZUNsaWNrZWQoKVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgIDxkaXYgaWQ9XCJ7e3RvYXN0SXRlbT8uaWR9fV9tZXNzYWdlXCJcclxuICAgICAgICAgW2lubmVySFRNTF09XCJ0b2FzdEl0ZW0/Lm1lc3NhZ2UgfCB0cmFuc2xhdGVcIj48L2Rpdj5cclxuICAgIDxidXR0b24gaWQ9XCJ7e3RvYXN0SXRlbT8uaWR9fV9hY3Rpb25cIlxyXG4gICAgICAgICAgICBlY0xpbmtCdXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJ0b2FzdEl0ZW0/LmFjdGlvbiAmJiB0b2FzdEl0ZW0/LmFjdGlvbkxhYmVsXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb250LXdlaWdodC1ib2xkIG1sLTJcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwidG9hc3RJdGVtIS5hY3Rpb24hKClcIj57e3RvYXN0SXRlbT8uYWN0aW9uTGFiZWwgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2VjLWJhbm5lcj4iXX0=
|
package/{esm2015/lib/display/toast/toast-types.js → esm2020/lib/display/toast/toast-types.mjs}
RENAMED
|
File without changes
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { ToastEvent } from './toast-types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class ToastService {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._events = new Subject();
|
|
8
|
+
this.events = this._events.asObservable();
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Display a toast.
|
|
12
|
+
* If a toast of the same type is already on screen, the toast is queued until the existing one is dismissed.
|
|
13
|
+
*/
|
|
14
|
+
showToast(toast, source) {
|
|
15
|
+
const event = new ToastEvent('add', toast, source);
|
|
16
|
+
this._events.next(event);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Remove a toast.
|
|
20
|
+
* This will also remove the toast from the queue if it has not already been displayed.
|
|
21
|
+
*/
|
|
22
|
+
dismissToast(toast, source) {
|
|
23
|
+
const event = new ToastEvent('remove', toast, source);
|
|
24
|
+
this._events.next(event);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
ToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
28
|
+
ToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ToastService, providedIn: 'root' });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ToastService, decorators: [{
|
|
30
|
+
type: Injectable,
|
|
31
|
+
args: [{
|
|
32
|
+
providedIn: 'root'
|
|
33
|
+
}]
|
|
34
|
+
}], ctorParameters: function () { return []; } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3RvYXN0L3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQTBCLE1BQU0sZUFBZSxDQUFDOztBQUtuRSxNQUFNLE9BQU8sWUFBWTtJQUt2QjtRQUhRLFlBQU8sR0FBd0IsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUMxRCxXQUFNLEdBQTJCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFcEQsQ0FBQztJQUVqQjs7O09BR0c7SUFDSSxTQUFTLENBQUMsS0FBZ0IsRUFBRSxNQUFvQjtRQUNyRCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQUMsS0FBZ0IsRUFBRSxNQUFvQjtRQUN4RCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7OzBHQXZCVSxZQUFZOzhHQUFaLFlBQVksY0FGWCxNQUFNOzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRvYXN0RXZlbnQsIFRvYXN0SXRlbSwgVG9hc3RTb3VyY2UgfSBmcm9tICcuL3RvYXN0LXR5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvYXN0U2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgX2V2ZW50czogU3ViamVjdDxUb2FzdEV2ZW50PiA9IG5ldyBTdWJqZWN0PFRvYXN0RXZlbnQ+KCk7XHJcbiAgcHVibGljIGV2ZW50czogT2JzZXJ2YWJsZTxUb2FzdEV2ZW50PiA9IHRoaXMuX2V2ZW50cy5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgLyoqIFxyXG4gICAqIERpc3BsYXkgYSB0b2FzdC5cclxuICAgKiBJZiBhIHRvYXN0IG9mIHRoZSBzYW1lIHR5cGUgaXMgYWxyZWFkeSBvbiBzY3JlZW4sIHRoZSB0b2FzdCBpcyBxdWV1ZWQgdW50aWwgdGhlIGV4aXN0aW5nIG9uZSBpcyBkaXNtaXNzZWQuXHJcbiAgICovXHJcbiAgcHVibGljIHNob3dUb2FzdCh0b2FzdDogVG9hc3RJdGVtLCBzb3VyY2U/OiBUb2FzdFNvdXJjZSkge1xyXG4gICAgY29uc3QgZXZlbnQgPSBuZXcgVG9hc3RFdmVudCgnYWRkJywgdG9hc3QsIHNvdXJjZSk7XHJcbiAgICB0aGlzLl9ldmVudHMubmV4dChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYSB0b2FzdC5cclxuICAgKiBUaGlzIHdpbGwgYWxzbyByZW1vdmUgdGhlIHRvYXN0IGZyb20gdGhlIHF1ZXVlIGlmIGl0IGhhcyBub3QgYWxyZWFkeSBiZWVuIGRpc3BsYXllZC5cclxuICAgKi9cclxuICBwdWJsaWMgZGlzbWlzc1RvYXN0KHRvYXN0OiBUb2FzdEl0ZW0sIHNvdXJjZT86IFRvYXN0U291cmNlKSB7XHJcbiAgICBjb25zdCBldmVudCA9IG5ldyBUb2FzdEV2ZW50KCdyZW1vdmUnLCB0b2FzdCwgc291cmNlKTtcclxuICAgIHRoaXMuX2V2ZW50cy5uZXh0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Component, ElementRef, ViewChild } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../toast.service";
|
|
6
|
+
import * as i2 from "../../../core/telemetry.service";
|
|
7
|
+
import * as i3 from "../toast/toast.component";
|
|
8
|
+
export class ToasterComponent {
|
|
9
|
+
constructor(toastService, telemetryService) {
|
|
10
|
+
this.toastService = toastService;
|
|
11
|
+
this.telemetryService = telemetryService;
|
|
12
|
+
this.dismissibleToastBottom = 0;
|
|
13
|
+
this.pendingToasts = [];
|
|
14
|
+
this.destroyed = new Subject();
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
this.toastService.events.pipe(takeUntil(this.destroyed)).subscribe(event => {
|
|
18
|
+
if (event.action == 'add') {
|
|
19
|
+
this.addToast(event.toast);
|
|
20
|
+
this.updateDismissibleToastBottom();
|
|
21
|
+
this.trackEvent(event);
|
|
22
|
+
}
|
|
23
|
+
else if (event.action == 'remove' && event.toast !== this.currentDismissibleToast && event.toast !== this.currentTimedToast) {
|
|
24
|
+
this.removePendingToast(event.toast);
|
|
25
|
+
this.trackEvent(event);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
ngOnDestroy() {
|
|
30
|
+
this.destroyed.next();
|
|
31
|
+
this.destroyed.complete();
|
|
32
|
+
}
|
|
33
|
+
updateVisibleToast(event) {
|
|
34
|
+
if (event.toast.dismissible) {
|
|
35
|
+
this.currentDismissibleToast = this.getNextToast(true);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
this.currentTimedToast = this.getNextToast(false);
|
|
39
|
+
}
|
|
40
|
+
this.updateDismissibleToastBottom();
|
|
41
|
+
this.trackEvent(event);
|
|
42
|
+
}
|
|
43
|
+
addToast(toast) {
|
|
44
|
+
if ((toast.dismissible && this.currentDismissibleToast) || (!toast.dismissible && this.currentTimedToast)) {
|
|
45
|
+
this.addPendingToast(toast);
|
|
46
|
+
}
|
|
47
|
+
else if (toast.dismissible) {
|
|
48
|
+
this.currentDismissibleToast = toast;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this.currentTimedToast = toast;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** Returns the next pending toast of the specified type and removes it from the list of pending toasts. */
|
|
55
|
+
getNextToast(dismissible) {
|
|
56
|
+
const toast = this.pendingToasts.find(t => t.dismissible === dismissible);
|
|
57
|
+
if (toast) {
|
|
58
|
+
this.removePendingToast(toast);
|
|
59
|
+
}
|
|
60
|
+
return toast;
|
|
61
|
+
}
|
|
62
|
+
/** Add a toast to the list of pending toasts */
|
|
63
|
+
addPendingToast(toast) {
|
|
64
|
+
this.pendingToasts.push(toast);
|
|
65
|
+
}
|
|
66
|
+
/** Removes the specified toast from the list of pending toasts */
|
|
67
|
+
removePendingToast(toast) {
|
|
68
|
+
const index = this.pendingToasts.indexOf(toast);
|
|
69
|
+
if (index > -1) {
|
|
70
|
+
this.pendingToasts.splice(index, 1);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* If the timed toast is present, sets the bottom height of the dismissible toast to
|
|
75
|
+
* the current height of the timed toast plus .5rem for spacing.
|
|
76
|
+
* Returns 0 if there isn't a visible timed toast.
|
|
77
|
+
*/
|
|
78
|
+
updateDismissibleToastBottom() {
|
|
79
|
+
if (this.currentTimedToast && this.timedToastEl) {
|
|
80
|
+
this.dismissibleToastBottom = (this.timedToastEl.nativeElement.offsetHeight + 8) / 16;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.dismissibleToastBottom = 0;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
trackEvent(event) {
|
|
87
|
+
const dismissible = this.pendingToasts.filter(t => t.dismissible);
|
|
88
|
+
const transient = this.pendingToasts.filter(t => !t.dismissible);
|
|
89
|
+
this.telemetryService.trackEvent(`${event.action} toast`, {
|
|
90
|
+
action: event.action,
|
|
91
|
+
source: event.source,
|
|
92
|
+
hasDismissiblePending: dismissible.length > 0 ? 'yes' : 'no',
|
|
93
|
+
dismissiblePendingLength: `${dismissible.length}`,
|
|
94
|
+
hasTransientPending: transient.length > 0 ? 'yes' : 'no',
|
|
95
|
+
transientPendingLength: `${transient.length}`,
|
|
96
|
+
toastId: event.toast.id ?? '',
|
|
97
|
+
toastType: event.toast.type,
|
|
98
|
+
toastMessage: event.toast.message,
|
|
99
|
+
toastDismissible: `${event.toast.dismissible}`,
|
|
100
|
+
toastIcon: event.toast.icon ?? '',
|
|
101
|
+
toastAction: event.toast.actionLabel ?? '',
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
ToasterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ToasterComponent, deps: [{ token: i1.ToastService }, { token: i2.TelemetryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
106
|
+
ToasterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ToasterComponent, selector: "ec-toaster", viewQueries: [{ propertyName: "timedToastEl", first: true, predicate: ["timedToast"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ec-toast [toastItem]=\"currentDismissibleToast\"\r\n [style.--toast-bottom.rem]=\"dismissibleToastBottom\"\r\n (closed)=\"updateVisibleToast($event)\">\r\n</ec-toast>\r\n\r\n<ec-toast #timedToast\r\n [toastItem]=\"currentTimedToast\"\r\n (closed)=\"updateVisibleToast($event)\">\r\n</ec-toast>", components: [{ type: i3.ToastComponent, selector: "ec-toast", inputs: ["toastItem"], outputs: ["closed"] }] });
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ToasterComponent, decorators: [{
|
|
108
|
+
type: Component,
|
|
109
|
+
args: [{ selector: 'ec-toaster', template: "<ec-toast [toastItem]=\"currentDismissibleToast\"\r\n [style.--toast-bottom.rem]=\"dismissibleToastBottom\"\r\n (closed)=\"updateVisibleToast($event)\">\r\n</ec-toast>\r\n\r\n<ec-toast #timedToast\r\n [toastItem]=\"currentTimedToast\"\r\n (closed)=\"updateVisibleToast($event)\">\r\n</ec-toast>" }]
|
|
110
|
+
}], ctorParameters: function () { return [{ type: i1.ToastService }, { type: i2.TelemetryService }]; }, propDecorators: { timedToastEl: [{
|
|
111
|
+
type: ViewChild,
|
|
112
|
+
args: ['timedToast', { static: false, read: ElementRef }]
|
|
113
|
+
}] } });
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b2FzdC90b2FzdGVyL3RvYXN0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9hc3QvdG9hc3Rlci90b2FzdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBUzNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFVM0IsWUFDVSxZQUEwQixFQUMxQixnQkFBa0M7UUFEbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVJyQywyQkFBc0IsR0FBVyxDQUFDLENBQUM7UUFHbEMsa0JBQWEsR0FBZ0IsRUFBRSxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSzlCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekUsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssRUFBRTtnQkFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3hCO2lCQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxRQUFRLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsdUJBQXVCLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzdILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxLQUFpQjtRQUN6QyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzNCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hEO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuRDtRQUVELElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFnQjtRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUN6RyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO2FBQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzVCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7U0FDdEM7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQsMkdBQTJHO0lBQ25HLFlBQVksQ0FBQyxXQUFvQjtRQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLENBQUM7UUFDMUUsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxnREFBZ0Q7SUFDeEMsZUFBZSxDQUFDLEtBQWdCO1FBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxrRUFBa0U7SUFDMUQsa0JBQWtCLENBQUMsS0FBZ0I7UUFDekMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLDRCQUE0QjtRQUNsQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQy9DLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdkY7YUFBTTtZQUNMLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQWlCO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLFFBQVEsRUFBRTtZQUN4RCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLHFCQUFxQixFQUFFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDNUQsd0JBQXdCLEVBQUUsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ2pELG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDeEQsc0JBQXNCLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzdDLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFO1lBQzdCLFNBQVMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUk7WUFDM0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTztZQUNqQyxnQkFBZ0IsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzlDLFNBQVMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ2pDLFdBQVcsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhHQTNHVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQix5SUFLcUIsVUFBVSw2QkNoQjVELDRVQVFXOzRGREdFLGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDRSxZQUFZO2tJQVF3QyxZQUFZO3NCQUF6RSxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGVsZW1ldHJ5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdGVsZW1ldHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2FzdEV2ZW50LCBUb2FzdEl0ZW0gfSBmcm9tICcuLi90b2FzdC10eXBlcyc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uL3RvYXN0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy10b2FzdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3Rlci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvYXN0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIHB1YmxpYyBjdXJyZW50VGltZWRUb2FzdD86IFRvYXN0SXRlbTtcclxuICBwdWJsaWMgY3VycmVudERpc21pc3NpYmxlVG9hc3Q/OiBUb2FzdEl0ZW07XHJcbiAgcHVibGljIGRpc21pc3NpYmxlVG9hc3RCb3R0b206IG51bWJlciA9IDA7XHJcbiAgQFZpZXdDaGlsZCgndGltZWRUb2FzdCcsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRWxlbWVudFJlZiB9KSB0aW1lZFRvYXN0RWw/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBcclxuICBwcml2YXRlIHBlbmRpbmdUb2FzdHM6IFRvYXN0SXRlbVtdID0gW107XHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRlbGVtZXRyeVNlcnZpY2U6IFRlbGVtZXRyeVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudG9hc3RTZXJ2aWNlLmV2ZW50cy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChldmVudC5hY3Rpb24gPT0gJ2FkZCcpIHtcclxuICAgICAgICB0aGlzLmFkZFRvYXN0KGV2ZW50LnRvYXN0KTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURpc21pc3NpYmxlVG9hc3RCb3R0b20oKTtcclxuICAgICAgICB0aGlzLnRyYWNrRXZlbnQoZXZlbnQpO1xyXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmFjdGlvbiA9PSAncmVtb3ZlJyAmJiBldmVudC50b2FzdCAhPT0gdGhpcy5jdXJyZW50RGlzbWlzc2libGVUb2FzdCAmJiBldmVudC50b2FzdCAhPT0gdGhpcy5jdXJyZW50VGltZWRUb2FzdCkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlUGVuZGluZ1RvYXN0KGV2ZW50LnRvYXN0KTtcclxuICAgICAgICB0aGlzLnRyYWNrRXZlbnQoZXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVWaXNpYmxlVG9hc3QoZXZlbnQ6IFRvYXN0RXZlbnQpIHtcclxuICAgIGlmIChldmVudC50b2FzdC5kaXNtaXNzaWJsZSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnREaXNtaXNzaWJsZVRvYXN0ID0gdGhpcy5nZXROZXh0VG9hc3QodHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUaW1lZFRvYXN0ID0gdGhpcy5nZXROZXh0VG9hc3QoZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlRGlzbWlzc2libGVUb2FzdEJvdHRvbSgpO1xyXG4gICAgdGhpcy50cmFja0V2ZW50KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkVG9hc3QodG9hc3Q6IFRvYXN0SXRlbSkge1xyXG4gICAgaWYgKCh0b2FzdC5kaXNtaXNzaWJsZSAmJiB0aGlzLmN1cnJlbnREaXNtaXNzaWJsZVRvYXN0KSB8fCAoIXRvYXN0LmRpc21pc3NpYmxlICYmIHRoaXMuY3VycmVudFRpbWVkVG9hc3QpKSB7XHJcbiAgICAgIHRoaXMuYWRkUGVuZGluZ1RvYXN0KHRvYXN0KTtcclxuICAgIH0gZWxzZSBpZiAodG9hc3QuZGlzbWlzc2libGUpIHtcclxuICAgICAgdGhpcy5jdXJyZW50RGlzbWlzc2libGVUb2FzdCA9IHRvYXN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50VGltZWRUb2FzdCA9IHRvYXN0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFJldHVybnMgdGhlIG5leHQgcGVuZGluZyB0b2FzdCBvZiB0aGUgc3BlY2lmaWVkIHR5cGUgYW5kIHJlbW92ZXMgaXQgZnJvbSB0aGUgbGlzdCBvZiBwZW5kaW5nIHRvYXN0cy4gKi9cclxuICBwcml2YXRlIGdldE5leHRUb2FzdChkaXNtaXNzaWJsZTogYm9vbGVhbik6IFRvYXN0SXRlbSB8IHVuZGVmaW5lZCB7XHJcbiAgICBjb25zdCB0b2FzdCA9IHRoaXMucGVuZGluZ1RvYXN0cy5maW5kKHQgPT4gdC5kaXNtaXNzaWJsZSA9PT0gZGlzbWlzc2libGUpO1xyXG4gICAgaWYgKHRvYXN0KSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlUGVuZGluZ1RvYXN0KHRvYXN0KTtcclxuICAgIH1cclxuICAgIHJldHVybiB0b2FzdDtcclxuICB9XHJcblxyXG4gIC8qKiBBZGQgYSB0b2FzdCB0byB0aGUgbGlzdCBvZiBwZW5kaW5nIHRvYXN0cyAqL1xyXG4gIHByaXZhdGUgYWRkUGVuZGluZ1RvYXN0KHRvYXN0OiBUb2FzdEl0ZW0pIHtcclxuICAgIHRoaXMucGVuZGluZ1RvYXN0cy5wdXNoKHRvYXN0KTtcclxuICB9XHJcblxyXG4gIC8qKiBSZW1vdmVzIHRoZSBzcGVjaWZpZWQgdG9hc3QgZnJvbSB0aGUgbGlzdCBvZiBwZW5kaW5nIHRvYXN0cyAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlUGVuZGluZ1RvYXN0KHRvYXN0OiBUb2FzdEl0ZW0pIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wZW5kaW5nVG9hc3RzLmluZGV4T2YodG9hc3QpO1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy5wZW5kaW5nVG9hc3RzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogXHJcbiAgICogSWYgdGhlIHRpbWVkIHRvYXN0IGlzIHByZXNlbnQsIHNldHMgdGhlIGJvdHRvbSBoZWlnaHQgb2YgdGhlIGRpc21pc3NpYmxlIHRvYXN0IHRvXHJcbiAgICogdGhlIGN1cnJlbnQgaGVpZ2h0IG9mIHRoZSB0aW1lZCB0b2FzdCBwbHVzIC41cmVtIGZvciBzcGFjaW5nLlxyXG4gICAqIFJldHVybnMgMCBpZiB0aGVyZSBpc24ndCBhIHZpc2libGUgdGltZWQgdG9hc3QuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1cGRhdGVEaXNtaXNzaWJsZVRvYXN0Qm90dG9tKCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFRpbWVkVG9hc3QgJiYgdGhpcy50aW1lZFRvYXN0RWwpIHtcclxuICAgICAgdGhpcy5kaXNtaXNzaWJsZVRvYXN0Qm90dG9tID0gKHRoaXMudGltZWRUb2FzdEVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgOCkgLyAxNjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzbWlzc2libGVUb2FzdEJvdHRvbSA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRyYWNrRXZlbnQoZXZlbnQ6IFRvYXN0RXZlbnQpIHtcclxuICAgIGNvbnN0IGRpc21pc3NpYmxlID0gdGhpcy5wZW5kaW5nVG9hc3RzLmZpbHRlcih0ID0+IHQuZGlzbWlzc2libGUpO1xyXG4gICAgY29uc3QgdHJhbnNpZW50ID0gdGhpcy5wZW5kaW5nVG9hc3RzLmZpbHRlcih0ID0+ICF0LmRpc21pc3NpYmxlKTtcclxuXHJcbiAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudHJhY2tFdmVudChgJHtldmVudC5hY3Rpb259IHRvYXN0YCwge1xyXG4gICAgICBhY3Rpb246IGV2ZW50LmFjdGlvbixcclxuICAgICAgc291cmNlOiBldmVudC5zb3VyY2UsXHJcbiAgICAgIGhhc0Rpc21pc3NpYmxlUGVuZGluZzogZGlzbWlzc2libGUubGVuZ3RoID4gMCA/ICd5ZXMnIDogJ25vJyxcclxuICAgICAgZGlzbWlzc2libGVQZW5kaW5nTGVuZ3RoOiBgJHtkaXNtaXNzaWJsZS5sZW5ndGh9YCxcclxuICAgICAgaGFzVHJhbnNpZW50UGVuZGluZzogdHJhbnNpZW50Lmxlbmd0aCA+IDAgPyAneWVzJyA6ICdubycsXHJcbiAgICAgIHRyYW5zaWVudFBlbmRpbmdMZW5ndGg6IGAke3RyYW5zaWVudC5sZW5ndGh9YCxcclxuICAgICAgdG9hc3RJZDogZXZlbnQudG9hc3QuaWQgPz8gJycsXHJcbiAgICAgIHRvYXN0VHlwZTogZXZlbnQudG9hc3QudHlwZSxcclxuICAgICAgdG9hc3RNZXNzYWdlOiBldmVudC50b2FzdC5tZXNzYWdlLFxyXG4gICAgICB0b2FzdERpc21pc3NpYmxlOiBgJHtldmVudC50b2FzdC5kaXNtaXNzaWJsZX1gLFxyXG4gICAgICB0b2FzdEljb246IGV2ZW50LnRvYXN0Lmljb24gPz8gJycsXHJcbiAgICAgIHRvYXN0QWN0aW9uOiBldmVudC50b2FzdC5hY3Rpb25MYWJlbCA/PyAnJyxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZWMtdG9hc3QgW3RvYXN0SXRlbV09XCJjdXJyZW50RGlzbWlzc2libGVUb2FzdFwiXHJcbiAgICAgICAgICBbc3R5bGUuLS10b2FzdC1ib3R0b20ucmVtXT1cImRpc21pc3NpYmxlVG9hc3RCb3R0b21cIlxyXG4gICAgICAgICAgKGNsb3NlZCk9XCJ1cGRhdGVWaXNpYmxlVG9hc3QoJGV2ZW50KVwiPlxyXG48L2VjLXRvYXN0PlxyXG5cclxuPGVjLXRvYXN0ICN0aW1lZFRvYXN0XHJcbiAgICAgICAgICBbdG9hc3RJdGVtXT1cImN1cnJlbnRUaW1lZFRvYXN0XCJcclxuICAgICAgICAgIChjbG9zZWQpPVwidXBkYXRlVmlzaWJsZVRvYXN0KCRldmVudClcIj5cclxuPC9lYy10b2FzdD4iXX0=
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { Component, Input, HostBinding, Output, EventEmitter, ViewChild } from '@angular/core';
|
|
2
|
+
import { MenuComponent } from '../../controls/menu/menu.component';
|
|
3
|
+
import { HierarchyTreeComponent } from '../hierarchy/hierarchy-tree/hierarchy-tree.component';
|
|
4
|
+
import { Overlay } from '../view-overlay/view-overlay.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../controls/dropdown/dropdown.component";
|
|
7
|
+
import * as i2 from "../view-overlay/view-overlay.component";
|
|
8
|
+
import * as i3 from "../../controls/menu/menu.component";
|
|
9
|
+
import * as i4 from "../hierarchy/hierarchy-tree/hierarchy-tree.component";
|
|
10
|
+
import * as i5 from "@angular/common";
|
|
11
|
+
import * as i6 from "@ngx-translate/core";
|
|
12
|
+
export class TreeComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
/** The value of the host elements id attribute */
|
|
15
|
+
this.attrId = '';
|
|
16
|
+
this._id = '';
|
|
17
|
+
/** The tree's title displayed in the header */
|
|
18
|
+
this.treeTitle = '';
|
|
19
|
+
/** Hides the tree header when set to true */
|
|
20
|
+
this.hideTreeHeader = false;
|
|
21
|
+
/** Used when the tree is in menu mode to tell the menu if it should maintain the selected item
|
|
22
|
+
* Useful in side nav components where this tree component may exist alongside other trees or menus
|
|
23
|
+
* used for navigation. If this tree is in menu mode you would want this set to false so when you select an item
|
|
24
|
+
* from a sibling navigation element the selection will not be maintained.
|
|
25
|
+
*/
|
|
26
|
+
this.treeMenuMaintainSelectedItem = true;
|
|
27
|
+
/** Tree overlay */
|
|
28
|
+
this.status = new Overlay('hasData');
|
|
29
|
+
/** Display the tree items with a MenuComponent or a HierarchyTreeComponent */
|
|
30
|
+
this.type = 'hierarchy';
|
|
31
|
+
/** Tree dropdown menu overlay */
|
|
32
|
+
this.menuStatus = new Overlay('hasData');
|
|
33
|
+
/** The menu item template */
|
|
34
|
+
this.menuTemplateType = "checkAndLabel";
|
|
35
|
+
/**
|
|
36
|
+
* When true, the space for the icon is preserved for menu items that do not have icons.
|
|
37
|
+
* Only applicable for iconAndLabel menus. Not applicable to hierarchy trees.
|
|
38
|
+
*/
|
|
39
|
+
this.preserveIconSpace = false;
|
|
40
|
+
/** Emits the item currently selected item in the tree */
|
|
41
|
+
this.treeSelection = new EventEmitter();
|
|
42
|
+
/** Emits when a hierarchy tree item is expanded as a hook to load the item's children */
|
|
43
|
+
this.getTreeItemChildren = new EventEmitter();
|
|
44
|
+
this.templateType = 'label';
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The ID of the component, bound to the host element's id attribute and passed
|
|
48
|
+
* to child components
|
|
49
|
+
*/
|
|
50
|
+
set id(value) {
|
|
51
|
+
this._id = value;
|
|
52
|
+
this.attrId = value;
|
|
53
|
+
}
|
|
54
|
+
;
|
|
55
|
+
get id() {
|
|
56
|
+
return this._id;
|
|
57
|
+
}
|
|
58
|
+
/** Emits when a tree item is selected */
|
|
59
|
+
onItemSelected(item) {
|
|
60
|
+
this.treeSelection.emit(item);
|
|
61
|
+
}
|
|
62
|
+
/** Emits when a hierarchy tree item is expanded to load the item's children */
|
|
63
|
+
onHierarchyGetItemChildren(item) {
|
|
64
|
+
this.getTreeItemChildren.emit(item);
|
|
65
|
+
}
|
|
66
|
+
/** Scroll to the tree item that is currently selected. */
|
|
67
|
+
scrollToSelectedItem() {
|
|
68
|
+
if (this.menuComponent) {
|
|
69
|
+
this.menuComponent.scrollToSelectedItem();
|
|
70
|
+
}
|
|
71
|
+
if (this.hierarchyTreeComponent) {
|
|
72
|
+
this.hierarchyTreeComponent.scrollToSelectedItem();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
+
TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: TreeComponent, selector: "ec-tree", inputs: { id: "id", treeTitle: "treeTitle", hideTreeHeader: "hideTreeHeader", treeItems: "treeItems", treeHierarchyHideRootNode: "treeHierarchyHideRootNode", treeHierarchy: "treeHierarchy", treeMenuMaintainSelectedItem: "treeMenuMaintainSelectedItem", customTreeMenuTemplate: "customTreeMenuTemplate", status: "status", type: "type", menuItems: "menuItems", menuStatus: "menuStatus", menuTemplateType: "menuTemplateType", preserveIconSpace: "preserveIconSpace", templateType: "templateType" }, outputs: { treeSelection: "treeSelection", getTreeItemChildren: "getTreeItemChildren" }, host: { properties: { "attr.id": "this.attrId" } }, viewQueries: [{ propertyName: "menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "hierarchyTreeComponent", first: true, predicate: HierarchyTreeComponent, descendants: true }], ngImport: i0, template: "<header *ngIf=\"!hideTreeHeader\"\r\n class=\"flex-shrink d-flex align-items-center border-bottom bg-content pl-2 pr-1\">\r\n <h2 id=\"{{id}}_title\"\r\n class=\"flex-grow mr-2 text-heading-1\">{{treeTitle | translate}}</h2>\r\n <ec-dropdown *ngIf=\"menuItems?.length\"\r\n id=\"{{id}}_dropdown\"\r\n class=\"flex-shrink\"\r\n icon=\"icon-menu\"\r\n [menuTemplateType]=\"menuTemplateType\"\r\n menuPosition=\"left\"\r\n [status]=\"menuStatus\"\r\n [popupFixed]=\"true\"\r\n [showArrow]=\"false\"\r\n [menuMinWidth]=\"240\"\r\n [items]=\"menuItems\">\r\n </ec-dropdown>\r\n</header>\r\n\r\n<div class=\"flex-grow d-flex\"\r\n ecOverlay\r\n [status]=\"status?.status\"\r\n [displayAsMask]=\"true\">\r\n <ng-container *ngIf=\"type === 'menu'\">\r\n <ec-menu [id]=\"id\"\r\n [items]=\"treeItems\"\r\n [templateType]=\"templateType\"\r\n [maintainSelectedItem]=\"treeMenuMaintainSelectedItem\"\r\n [truncateItems]=\"true\"\r\n (selectedChanged)=\"onItemSelected($event)\"\r\n [customMenuTemplate]=\"customTreeMenuTemplate ? customTreeMenuTemplate : undefined\"\r\n [preserveIconSpace]=\"preserveIconSpace\"\r\n class=\"flex-grow\">\r\n </ec-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"type === 'hierarchy'\">\r\n <ec-hierarchy-tree [id]=\"id\"\r\n [rootNode]=\"treeHierarchy\"\r\n [hideRootNode]=\"treeHierarchyHideRootNode\"\r\n (getItemChildren)=\"onHierarchyGetItemChildren($event)\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n class=\"flex-grow d-flex\">\r\n </ec-hierarchy-tree>\r\n </ng-container>\r\n</div>", styles: [":host{display:flex;flex-direction:column}header{height:3rem}ec-dropdown.fill{height:3rem;width:3rem}\n"], components: [{ type: i1.DropdownComponent, selector: "ec-dropdown", inputs: ["id", "autofocus", "status", "disabled", "label", "icon", "buttonType", "buttonAlignment", "buttonTitle", "tabindex", "showArrow", "items", "menuTemplateType", "menuTitle", "menuHeight", "menuWidth", "menuMinWidth", "menuPosition", "menuFooter", "popupFixed", "buttonCustomTemplate", "pending"], outputs: ["itemSelected", "popupOpened"] }, { type: i2.ViewOverlayComponent, selector: "[ecOverlay]", inputs: ["status", "message", "action", "noDataTemplate", "displayAsMask", "overlayClassList"] }, { type: i3.MenuComponent, selector: "ec-menu", inputs: ["id", "items", "selected", "parent", "templateType", "customMenuTemplate", "title", "showNoItems", "noDataText", "enableKeyNav", "highlightedItem", "maintainSelectedItem", "truncateItems", "preserveIconSpace"], outputs: ["selectedChanged", "menuClosed"] }, { type: i4.HierarchyTreeComponent, selector: "ec-hierarchy-tree", inputs: ["id", "hideRootNode"], outputs: ["itemSelected"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i6.TranslatePipe } });
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TreeComponent, decorators: [{
|
|
79
|
+
type: Component,
|
|
80
|
+
args: [{ selector: 'ec-tree', template: "<header *ngIf=\"!hideTreeHeader\"\r\n class=\"flex-shrink d-flex align-items-center border-bottom bg-content pl-2 pr-1\">\r\n <h2 id=\"{{id}}_title\"\r\n class=\"flex-grow mr-2 text-heading-1\">{{treeTitle | translate}}</h2>\r\n <ec-dropdown *ngIf=\"menuItems?.length\"\r\n id=\"{{id}}_dropdown\"\r\n class=\"flex-shrink\"\r\n icon=\"icon-menu\"\r\n [menuTemplateType]=\"menuTemplateType\"\r\n menuPosition=\"left\"\r\n [status]=\"menuStatus\"\r\n [popupFixed]=\"true\"\r\n [showArrow]=\"false\"\r\n [menuMinWidth]=\"240\"\r\n [items]=\"menuItems\">\r\n </ec-dropdown>\r\n</header>\r\n\r\n<div class=\"flex-grow d-flex\"\r\n ecOverlay\r\n [status]=\"status?.status\"\r\n [displayAsMask]=\"true\">\r\n <ng-container *ngIf=\"type === 'menu'\">\r\n <ec-menu [id]=\"id\"\r\n [items]=\"treeItems\"\r\n [templateType]=\"templateType\"\r\n [maintainSelectedItem]=\"treeMenuMaintainSelectedItem\"\r\n [truncateItems]=\"true\"\r\n (selectedChanged)=\"onItemSelected($event)\"\r\n [customMenuTemplate]=\"customTreeMenuTemplate ? customTreeMenuTemplate : undefined\"\r\n [preserveIconSpace]=\"preserveIconSpace\"\r\n class=\"flex-grow\">\r\n </ec-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"type === 'hierarchy'\">\r\n <ec-hierarchy-tree [id]=\"id\"\r\n [rootNode]=\"treeHierarchy\"\r\n [hideRootNode]=\"treeHierarchyHideRootNode\"\r\n (getItemChildren)=\"onHierarchyGetItemChildren($event)\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n class=\"flex-grow d-flex\">\r\n </ec-hierarchy-tree>\r\n </ng-container>\r\n</div>", styles: [":host{display:flex;flex-direction:column}header{height:3rem}ec-dropdown.fill{height:3rem;width:3rem}\n"] }]
|
|
81
|
+
}], ctorParameters: function () { return []; }, propDecorators: { attrId: [{
|
|
82
|
+
type: HostBinding,
|
|
83
|
+
args: ['attr.id']
|
|
84
|
+
}], id: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], treeTitle: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], hideTreeHeader: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], treeItems: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], treeHierarchyHideRootNode: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], treeHierarchy: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], treeMenuMaintainSelectedItem: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], customTreeMenuTemplate: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], status: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], type: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], menuItems: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}], menuStatus: [{
|
|
107
|
+
type: Input
|
|
108
|
+
}], menuTemplateType: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}], preserveIconSpace: [{
|
|
111
|
+
type: Input
|
|
112
|
+
}], treeSelection: [{
|
|
113
|
+
type: Output
|
|
114
|
+
}], getTreeItemChildren: [{
|
|
115
|
+
type: Output
|
|
116
|
+
}], menuComponent: [{
|
|
117
|
+
type: ViewChild,
|
|
118
|
+
args: [MenuComponent]
|
|
119
|
+
}], hierarchyTreeComponent: [{
|
|
120
|
+
type: ViewChild,
|
|
121
|
+
args: [HierarchyTreeComponent]
|
|
122
|
+
}], templateType: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}] } });
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLG9DQUFvQyxDQUFDO0FBRS9GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7QUFTakUsTUFBTSxPQUFPLGFBQWE7SUErRXhCO1FBN0VBLGtEQUFrRDtRQUNuQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBYzNDLFFBQUcsR0FBVyxFQUFFLENBQUM7UUFFekIsK0NBQStDO1FBQy9CLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkMsNkNBQTZDO1FBQzdCLG1CQUFjLEdBQWEsS0FBSyxDQUFDO1FBV2pEOzs7O1dBSUc7UUFDYSxpQ0FBNEIsR0FBWSxJQUFJLENBQUM7UUFLN0QsbUJBQW1CO1FBQ0gsV0FBTSxHQUFhLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTFELDhFQUE4RTtRQUM5RCxTQUFJLEdBQWMsV0FBVyxDQUFDO1FBSzlDLGlDQUFpQztRQUNqQixlQUFVLEdBQWEsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUQsNkJBQTZCO1FBQ2IscUJBQWdCLEdBQXNCLGVBQWUsQ0FBQztRQUV0RTs7O1dBR0c7UUFDYSxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFFbkQseURBQXlEO1FBQ3hDLGtCQUFhLEdBQTJDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUYseUZBQXlGO1FBQ3hFLHdCQUFtQixHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBUXZFLGlCQUFZLEdBQXFCLE9BQU8sQ0FBQztJQUV6QyxDQUFDO0lBMUVqQjs7O09BR0c7SUFDSCxJQUNXLEVBQUUsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFBQSxDQUFDO0lBQ0YsSUFBVyxFQUFFO1FBQ1gsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFpRUQseUNBQXlDO0lBQ2xDLGNBQWMsQ0FBQyxJQUE4QjtRQUNsRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsK0VBQStFO0lBQ3hFLDBCQUEwQixDQUFDLElBQW1CO1FBQ25ELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELDBEQUEwRDtJQUNuRCxvQkFBb0I7UUFDekIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUMzQztRQUVELElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQy9CLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQ3BEO0lBQ0gsQ0FBQzs7MkdBcEdVLGFBQWE7K0ZBQWIsYUFBYSx5dEJBd0ViLGFBQWEseUZBR2Isc0JBQXNCLGdEQ3hGbkMsNjNEQTRDTTs0RkQvQk8sYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxTQUFTOzBFQU9ZLE1BQU07c0JBQXBDLFdBQVc7dUJBQUMsU0FBUztnQkFPWCxFQUFFO3NCQURaLEtBQUs7Z0JBV1UsU0FBUztzQkFBeEIsS0FBSztnQkFHVSxjQUFjO3NCQUE3QixLQUFLO2dCQUdVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBR1UseUJBQXlCO3NCQUF4QyxLQUFLO2dCQUdVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBT1UsNEJBQTRCO3NCQUEzQyxLQUFLO2dCQUdVLHNCQUFzQjtzQkFBckMsS0FBSztnQkFHVSxNQUFNO3NCQUFyQixLQUFLO2dCQUdVLElBQUk7c0JBQW5CLEtBQUs7Z0JBR1UsU0FBUztzQkFBeEIsS0FBSztnQkFHVSxVQUFVO3NCQUF6QixLQUFLO2dCQUdVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFNVSxpQkFBaUI7c0JBQWhDLEtBQUs7Z0JBR1csYUFBYTtzQkFBN0IsTUFBTTtnQkFHVSxtQkFBbUI7c0JBQW5DLE1BQU07Z0JBRzBCLGFBQWE7c0JBQTdDLFNBQVM7dUJBQUMsYUFBYTtnQkFHa0Isc0JBQXNCO3NCQUEvRCxTQUFTO3VCQUFDLHNCQUFzQjtnQkFFakIsWUFBWTtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEhvc3RCaW5kaW5nLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51Q29tcG9uZW50LCBNZW51SXRlbSwgTWVudVRlbXBsYXRlVHlwZSB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL21lbnUvbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIaWVyYXJjaHlJdGVtIH0gZnJvbSAnLi4vaGllcmFyY2h5L2hpZXJhcmNoeS1iYXNlJztcclxuaW1wb3J0IHsgSGllcmFyY2h5VHJlZUNvbXBvbmVudCB9IGZyb20gJy4uL2hpZXJhcmNoeS9oaWVyYXJjaHktdHJlZS9oaWVyYXJjaHktdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnLi4vdmlldy1vdmVybGF5L3ZpZXctb3ZlcmxheS5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IHR5cGUgVHJlZVR5cGUgPSAnaGllcmFyY2h5JyB8ICdtZW51JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtdHJlZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZUNvbXBvbmVudCB7XHJcblxyXG4gIC8qKiBUaGUgdmFsdWUgb2YgdGhlIGhvc3QgZWxlbWVudHMgaWQgYXR0cmlidXRlICovXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgcHVibGljIGF0dHJJZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBJRCBvZiB0aGUgY29tcG9uZW50LCBib3VuZCB0byB0aGUgaG9zdCBlbGVtZW50J3MgaWQgYXR0cmlidXRlIGFuZCBwYXNzZWRcclxuICAgKiB0byBjaGlsZCBjb21wb25lbnRzXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGlkKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2lkID0gdmFsdWU7XHJcbiAgICB0aGlzLmF0dHJJZCA9IHZhbHVlO1xyXG4gIH07XHJcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gIH1cclxuICBwcml2YXRlIF9pZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKiBUaGUgdHJlZSdzIHRpdGxlIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyICovXHJcbiAgQElucHV0KCkgcHVibGljIHRyZWVUaXRsZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKiBIaWRlcyB0aGUgdHJlZSBoZWFkZXIgd2hlbiBzZXQgdG8gdHJ1ZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBoaWRlVHJlZUhlYWRlcj86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIEl0ZW1zIHRvIGRpc3BsYXkgaW4gdGhlIHRyZWUgd2hlbiB0eXBlIGlzICdtZW51JyAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0cmVlSXRlbXM/OiBNZW51SXRlbVtdO1xyXG5cclxuICAvKiogSGlkZSB0aGUgcm9vdCB0cmVlIGl0ZW0gd2hlbiB0eXBlIGlzICdoaWVyYXJjaHknICovXHJcbiAgQElucHV0KCkgcHVibGljIHRyZWVIaWVyYXJjaHlIaWRlUm9vdE5vZGU/OiBib29sZWFuO1xyXG5cclxuICAvKiogSXRlbXMgdG8gZGlzcGxheSBpbiB0aGUgdHJlZSB3aGVuIHR5cGUgaXMgJ2hpZXJhcmNoeScgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZUhpZXJhcmNoeT86IEhpZXJhcmNoeUl0ZW07XHJcblxyXG4gIC8qKiBVc2VkIHdoZW4gdGhlIHRyZWUgaXMgaW4gbWVudSBtb2RlIHRvIHRlbGwgdGhlIG1lbnUgaWYgaXQgc2hvdWxkIG1haW50YWluIHRoZSBzZWxlY3RlZCBpdGVtXHJcbiAgICogIFVzZWZ1bCBpbiBzaWRlIG5hdiBjb21wb25lbnRzIHdoZXJlIHRoaXMgdHJlZSBjb21wb25lbnQgbWF5IGV4aXN0IGFsb25nc2lkZSBvdGhlciB0cmVlcyBvciBtZW51c1xyXG4gICAqICB1c2VkIGZvciBuYXZpZ2F0aW9uLiBJZiB0aGlzIHRyZWUgaXMgaW4gbWVudSBtb2RlIHlvdSB3b3VsZCB3YW50IHRoaXMgc2V0IHRvIGZhbHNlIHNvIHdoZW4geW91IHNlbGVjdCBhbiBpdGVtXHJcbiAgICogIGZyb20gYSBzaWJsaW5nIG5hdmlnYXRpb24gZWxlbWVudCB0aGUgc2VsZWN0aW9uIHdpbGwgbm90IGJlIG1haW50YWluZWQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHRyZWVNZW51TWFpbnRhaW5TZWxlY3RlZEl0ZW06IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKiogVXNlZCB3aGVuIGEgY3VzdG9tIHRlbXBsYXRlIGlzIG5lZWRlZCBmb3IgdGhlIG1lbnUgaXRlbXMgd2hlbiB0aGUgdHJlZSBpcyBpbiBtZW51IG1vZGUgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tVHJlZU1lbnVUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIC8qKiBUcmVlIG92ZXJsYXkgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgc3RhdHVzPzogT3ZlcmxheSA9IG5ldyBPdmVybGF5KCdoYXNEYXRhJyk7XHJcblxyXG4gIC8qKiBEaXNwbGF5IHRoZSB0cmVlIGl0ZW1zIHdpdGggYSBNZW51Q29tcG9uZW50IG9yIGEgSGllcmFyY2h5VHJlZUNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlPzogVHJlZVR5cGUgPSAnaGllcmFyY2h5JztcclxuXHJcbiAgLyoqIEl0ZW1zIHRvIGRpc3BsYXkgaW4gdGhlIGRyb3Bkb3duIG1lbnUgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbWVudUl0ZW1zPzogTWVudUl0ZW1bXTtcclxuXHJcbiAgLyoqIFRyZWUgZHJvcGRvd24gbWVudSBvdmVybGF5ICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVTdGF0dXM/OiBPdmVybGF5ID0gbmV3IE92ZXJsYXkoJ2hhc0RhdGEnKTtcclxuXHJcbiAgLyoqIFRoZSBtZW51IGl0ZW0gdGVtcGxhdGUgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbWVudVRlbXBsYXRlVHlwZT86IE1lbnVUZW1wbGF0ZVR5cGUgPSBcImNoZWNrQW5kTGFiZWxcIjtcclxuXHJcbiAgLyoqIFxyXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIHNwYWNlIGZvciB0aGUgaWNvbiBpcyBwcmVzZXJ2ZWQgZm9yIG1lbnUgaXRlbXMgdGhhdCBkbyBub3QgaGF2ZSBpY29ucy5cclxuICAgKiBPbmx5IGFwcGxpY2FibGUgZm9yIGljb25BbmRMYWJlbCBtZW51cy4gTm90IGFwcGxpY2FibGUgdG8gaGllcmFyY2h5IHRyZWVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwcmVzZXJ2ZUljb25TcGFjZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogRW1pdHMgdGhlIGl0ZW0gY3VycmVudGx5IHNlbGVjdGVkIGl0ZW0gaW4gdGhlIHRyZWUgKi9cclxuICBAT3V0cHV0KCkgcHVibGljIHRyZWVTZWxlY3Rpb246IEV2ZW50RW1pdHRlcjxNZW51SXRlbSB8IEhpZXJhcmNoeUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGhpZXJhcmNoeSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQgYXMgYSBob29rIHRvIGxvYWQgdGhlIGl0ZW0ncyBjaGlsZHJlbiAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZ2V0VHJlZUl0ZW1DaGlsZHJlbjogRXZlbnRFbWl0dGVyPEhpZXJhcmNoeUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBNZW51Q29tcG9uZW50IGluc3RhbmNlIGluIHRoZSB0ZW1wbGF0ZSAqL1xyXG4gIEBWaWV3Q2hpbGQoTWVudUNvbXBvbmVudCkgcHVibGljIG1lbnVDb21wb25lbnQ/OiBNZW51Q29tcG9uZW50O1xyXG5cclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBIaWVyYXJjaHlUcmVlQ29tcG9uZW50IGluc3RhbmNlIGluIHRoZSB0ZW1wbGF0ZSAqL1xyXG4gIEBWaWV3Q2hpbGQoSGllcmFyY2h5VHJlZUNvbXBvbmVudCkgcHVibGljIGhpZXJhcmNoeVRyZWVDb21wb25lbnQ/OiBIaWVyYXJjaHlUcmVlQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgdGVtcGxhdGVUeXBlOiBNZW51VGVtcGxhdGVUeXBlID0gJ2xhYmVsJztcclxuICBcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIHRyZWUgaXRlbSBpcyBzZWxlY3RlZCAqL1xyXG4gIHB1YmxpYyBvbkl0ZW1TZWxlY3RlZChpdGVtOiBNZW51SXRlbSB8IEhpZXJhcmNoeUl0ZW0pIHtcclxuICAgIHRoaXMudHJlZVNlbGVjdGlvbi5lbWl0KGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gYSBoaWVyYXJjaHkgdHJlZSBpdGVtIGlzIGV4cGFuZGVkIHRvIGxvYWQgdGhlIGl0ZW0ncyBjaGlsZHJlbiAqL1xyXG4gIHB1YmxpYyBvbkhpZXJhcmNoeUdldEl0ZW1DaGlsZHJlbihpdGVtOiBIaWVyYXJjaHlJdGVtKSB7XHJcbiAgICB0aGlzLmdldFRyZWVJdGVtQ2hpbGRyZW4uZW1pdChpdGVtKTtcclxuICB9XHJcblxyXG4gIC8qKiBTY3JvbGwgdG8gdGhlIHRyZWUgaXRlbSB0aGF0IGlzIGN1cnJlbnRseSBzZWxlY3RlZC4gKi9cclxuICBwdWJsaWMgc2Nyb2xsVG9TZWxlY3RlZEl0ZW0oKSB7XHJcbiAgICBpZiAodGhpcy5tZW51Q29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMubWVudUNvbXBvbmVudC5zY3JvbGxUb1NlbGVjdGVkSXRlbSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmhpZXJhcmNoeVRyZWVDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5oaWVyYXJjaHlUcmVlQ29tcG9uZW50LnNjcm9sbFRvU2VsZWN0ZWRJdGVtKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxoZWFkZXIgKm5nSWY9XCIhaGlkZVRyZWVIZWFkZXJcIlxyXG4gICAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmsgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBib3JkZXItYm90dG9tIGJnLWNvbnRlbnQgcGwtMiBwci0xXCI+XHJcbiAgPGgyIGlkPVwie3tpZH19X3RpdGxlXCJcclxuICAgICAgY2xhc3M9XCJmbGV4LWdyb3cgbXItMiB0ZXh0LWhlYWRpbmctMVwiPnt7dHJlZVRpdGxlIHwgdHJhbnNsYXRlfX08L2gyPlxyXG4gIDxlYy1kcm9wZG93biAqbmdJZj1cIm1lbnVJdGVtcz8ubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgaWQ9XCJ7e2lkfX1fZHJvcGRvd25cIlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtc2hyaW5rXCJcclxuICAgICAgICAgICAgICAgaWNvbj1cImljb24tbWVudVwiXHJcbiAgICAgICAgICAgICAgIFttZW51VGVtcGxhdGVUeXBlXT1cIm1lbnVUZW1wbGF0ZVR5cGVcIlxyXG4gICAgICAgICAgICAgICBtZW51UG9zaXRpb249XCJsZWZ0XCJcclxuICAgICAgICAgICAgICAgW3N0YXR1c109XCJtZW51U3RhdHVzXCJcclxuICAgICAgICAgICAgICAgW3BvcHVwRml4ZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgIFtzaG93QXJyb3ddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICBbbWVudU1pbldpZHRoXT1cIjI0MFwiXHJcbiAgICAgICAgICAgICAgIFtpdGVtc109XCJtZW51SXRlbXNcIj5cclxuICA8L2VjLWRyb3Bkb3duPlxyXG48L2hlYWRlcj5cclxuXHJcbjxkaXYgY2xhc3M9XCJmbGV4LWdyb3cgZC1mbGV4XCJcclxuICAgICBlY092ZXJsYXlcclxuICAgICBbc3RhdHVzXT1cInN0YXR1cz8uc3RhdHVzXCJcclxuICAgICBbZGlzcGxheUFzTWFza109XCJ0cnVlXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICdtZW51J1wiPlxyXG4gICAgPGVjLW1lbnUgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgIFtpdGVtc109XCJ0cmVlSXRlbXNcIlxyXG4gICAgICAgICAgICAgW3RlbXBsYXRlVHlwZV09XCJ0ZW1wbGF0ZVR5cGVcIlxyXG4gICAgICAgICAgICAgW21haW50YWluU2VsZWN0ZWRJdGVtXT1cInRyZWVNZW51TWFpbnRhaW5TZWxlY3RlZEl0ZW1cIlxyXG4gICAgICAgICAgICAgW3RydW5jYXRlSXRlbXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2VkKT1cIm9uSXRlbVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgW2N1c3RvbU1lbnVUZW1wbGF0ZV09XCJjdXN0b21UcmVlTWVudVRlbXBsYXRlID8gY3VzdG9tVHJlZU1lbnVUZW1wbGF0ZSA6IHVuZGVmaW5lZFwiXHJcbiAgICAgICAgICAgICBbcHJlc2VydmVJY29uU3BhY2VdPVwicHJlc2VydmVJY29uU3BhY2VcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3dcIj5cclxuICAgIDwvZWMtbWVudT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICdoaWVyYXJjaHknXCI+XHJcbiAgICA8ZWMtaGllcmFyY2h5LXRyZWUgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm9vdE5vZGVdPVwidHJlZUhpZXJhcmNoeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVSb290Tm9kZV09XCJ0cmVlSGllcmFyY2h5SGlkZVJvb3ROb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoZ2V0SXRlbUNoaWxkcmVuKT1cIm9uSGllcmFyY2h5R2V0SXRlbUNoaWxkcmVuKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChpdGVtU2VsZWN0ZWQpPVwib25JdGVtU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3cgZC1mbGV4XCI+XHJcbiAgICA8L2VjLWhpZXJhcmNoeS10cmVlPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj4iXX0=
|