@energycap/components 0.31.5 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/energycap-components.min.css +2 -2
- package/energycap-email.min.css +1 -1
- package/esm2020/energycap-components.mjs +5 -0
- package/esm2020/lib/components.module.mjs +386 -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 +841 -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/tooltip/tooltip.component.mjs +25 -0
- package/esm2020/lib/display/tooltip/tooltip.service.mjs +63 -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 +121 -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 +10090 -0
- package/fesm2015/energycap-components.mjs.map +1 -0
- package/fesm2020/energycap-components.mjs +9999 -0
- package/fesm2020/energycap-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components.module.d.ts +72 -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 +5 -2
- package/lib/controls/dropdown/dropdown.component.d.ts +3 -0
- package/lib/controls/file-upload/file-upload.component.d.ts +5 -2
- 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 +6 -3
- package/lib/controls/help-popover/help-popover.component.d.ts +3 -0
- package/lib/controls/item-picker/item-picker.component.d.ts +5 -2
- 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 +5 -2
- 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 +5 -2
- 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 +5 -2
- 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 +6 -3
- 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 +5 -2
- 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/tooltip/tooltip.component.d.ts +3 -0
- package/lib/display/tooltip/tooltip.service.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 +5 -2
- package/lib/shared/page/page-base/page-base.component.d.ts +5 -2
- 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 +27 -15
- package/src/styles/_functions.scss +6 -4
- package/src/styles/_icons.scss +1 -1
- 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 -10646
- 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.d.ts +0 -7
- package/energycap-components.metadata.json +0 -1
- package/esm2015/energycap-components.js +0 -8
- package/esm2015/lib/components.module.js +0 -238
- 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 -819
- 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/tooltip/tooltip.component.js +0 -24
- package/esm2015/lib/display/tooltip/tooltip.service.js +0 -64
- 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 -94
- 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 -9638
- package/fesm2015/energycap-components.js.map +0 -1
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { AvatarService } from '../avatar/avatar.service';
|
|
3
|
-
export class AppBarComponent {
|
|
4
|
-
constructor(avatarService) {
|
|
5
|
-
this.avatarService = avatarService;
|
|
6
|
-
this.userMenuItems = [];
|
|
7
|
-
this.userMenuWidth = 0;
|
|
8
|
-
this.userMenuMinWidth = 160;
|
|
9
|
-
this.userMenuTabindex = 0;
|
|
10
|
-
this.iconPath = '/assets/images/icon.svg';
|
|
11
|
-
this.menuItems = [];
|
|
12
|
-
this.userItem = [];
|
|
13
|
-
}
|
|
14
|
-
ngOnChanges() {
|
|
15
|
-
if (this.user) {
|
|
16
|
-
this.userItem[0] = { label: this.avatarService.getAvatarLabels(this.user).full || '', display: 'heading' };
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
this.userItem = [];
|
|
20
|
-
}
|
|
21
|
-
this.menuItems = [...this.userItem, ...this.userMenuItems];
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
AppBarComponent.decorators = [
|
|
25
|
-
{ type: Component, args: [{
|
|
26
|
-
selector: 'ec-app-bar',
|
|
27
|
-
template: "<section class=\"logo-container\">\r\n <img src=\"{{iconPath}}\"\r\n alt=\"EnergyCAP Platform\">\r\n</section>\r\n\r\n<section class=\"title-container\">\r\n <ng-content select=\".app-bar-title\"></ng-content>\r\n</section>\r\n\r\n<section class=\"actions-container\">\r\n <ng-content select=\".app-bar-actions\"></ng-content>\r\n <ec-dropdown id=\"AppBarUserMenu\"\r\n *ngIf=\"userMenuItems.length; else avatar\"\r\n [items]=\"menuItems\"\r\n [buttonCustomTemplate]=\"avatar\"\r\n [showArrow]=\"false\"\r\n [menuWidth]=\"userMenuWidth\"\r\n [menuMinWidth]=\"userMenuMinWidth\"\r\n [tabindex]=\"userMenuTabindex\"></ec-dropdown>\r\n</section>\r\n\r\n<ng-template #avatar>\r\n <div class=\"p-1\">\r\n <ec-avatar [user]=\"user\"></ec-avatar>\r\n </div>\r\n</ng-template>",
|
|
28
|
-
styles: [":root{--ec-color-icon:rgba(26,26,35,0.66);--ec-font-size-icon:1rem}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{align-items:center;background-color:var(--ec-background-color);display:flex;height:3rem;padding:0 .75rem 0 1rem;position:relative;width:100%;z-index:var(--ec-z-index-navbar)}:host ::ng-deep .app-bar-actions{align-items:center;display:flex;justify-content:flex-end;margin-right:.25rem}section{flex:1 1}.logo-container img{height:2rem;width:2rem}.title-container{text-align:center}.actions-container{display:flex;justify-content:flex-end}"]
|
|
29
|
-
},] }
|
|
30
|
-
];
|
|
31
|
-
AppBarComponent.ctorParameters = () => [
|
|
32
|
-
{ type: AvatarService }
|
|
33
|
-
];
|
|
34
|
-
AppBarComponent.propDecorators = {
|
|
35
|
-
user: [{ type: Input }],
|
|
36
|
-
userMenuItems: [{ type: Input }],
|
|
37
|
-
userMenuWidth: [{ type: Input }],
|
|
38
|
-
userMenuMinWidth: [{ type: Input }],
|
|
39
|
-
userMenuTabindex: [{ type: Input }],
|
|
40
|
-
iconPath: [{ type: Input }]
|
|
41
|
-
};
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9hcHAtYmFyL2FwcC1iYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQU96RCxNQUFNLE9BQU8sZUFBZTtJQVkxQixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVZ2QyxrQkFBYSxHQUFlLEVBQUUsQ0FBQztRQUMvQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixxQkFBZ0IsR0FBRyxHQUFHLENBQUM7UUFDdkIscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLGFBQVEsR0FBRyx5QkFBeUIsQ0FBQztRQUU5QyxjQUFTLEdBQWUsRUFBRSxDQUFBO1FBRWxCLGFBQVEsR0FBZSxFQUFFLENBQUM7SUFFa0IsQ0FBQztJQUU5QyxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxDQUFDO1NBQzFHO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztTQUNwQjtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7O1lBM0JGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsNjNCQUF1Qzs7YUFFeEM7OztZQU5RLGFBQWE7OzttQkFRbkIsS0FBSzs0QkFDTCxLQUFLOzRCQUNMLEtBQUs7K0JBQ0wsS0FBSzsrQkFDTCxLQUFLO3VCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICcuLi8uLi9jb250cm9scy9tZW51L21lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXZhdGFyVXNlciB9IGZyb20gJy4uL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXZhdGFyU2VydmljZSB9IGZyb20gJy4uL2F2YXRhci9hdmF0YXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWFwcC1iYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hcHAtYmFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgdXNlcj86IEF2YXRhclVzZXI7XHJcbiAgQElucHV0KCkgdXNlck1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHVzZXJNZW51V2lkdGggPSAwO1xyXG4gIEBJbnB1dCgpIHVzZXJNZW51TWluV2lkdGggPSAxNjA7XHJcbiAgQElucHV0KCkgdXNlck1lbnVUYWJpbmRleCA9IDA7XHJcbiAgQElucHV0KCkgaWNvblBhdGggPSAnL2Fzc2V0cy9pbWFnZXMvaWNvbi5zdmcnO1xyXG4gIFxyXG4gIG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdXHJcblxyXG4gIHByaXZhdGUgdXNlckl0ZW06IE1lbnVJdGVtW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdmF0YXJTZXJ2aWNlOiBBdmF0YXJTZXJ2aWNlKSB7IH1cclxuXHJcbiAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudXNlcikge1xyXG4gICAgICB0aGlzLnVzZXJJdGVtWzBdID0ge2xhYmVsOiB0aGlzLmF2YXRhclNlcnZpY2UuZ2V0QXZhdGFyTGFiZWxzKHRoaXMudXNlcikuZnVsbCB8fCAnJywgZGlzcGxheTogJ2hlYWRpbmcnfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudXNlckl0ZW0gPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1lbnVJdGVtcyA9IFsuLi50aGlzLnVzZXJJdGVtLCAuLi50aGlzLnVzZXJNZW51SXRlbXNdO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ElementRef, Renderer2 } from '@angular/core';
|
|
2
|
-
import { AvatarService } from './avatar.service';
|
|
3
|
-
export class AvatarComponent {
|
|
4
|
-
constructor(el, renderer, avatarService) {
|
|
5
|
-
this.el = el;
|
|
6
|
-
this.renderer = renderer;
|
|
7
|
-
this.avatarService = avatarService;
|
|
8
|
-
/** Color map base on the first let of the label */
|
|
9
|
-
this.colors = {
|
|
10
|
-
abcde01: 'red',
|
|
11
|
-
fghij23: 'orange',
|
|
12
|
-
klmn15: 'yellow',
|
|
13
|
-
opqr67: 'green',
|
|
14
|
-
stuv8: 'blue',
|
|
15
|
-
wxyz9: 'purple'
|
|
16
|
-
};
|
|
17
|
-
/** Label is defaulted to HI in the rare case the user does not have a first name, last name, email or username */
|
|
18
|
-
this.label = 'HI';
|
|
19
|
-
/** Track the current CSS class so we can remove it if the user changes before setting the next one */
|
|
20
|
-
this.currentCSSClass = '';
|
|
21
|
-
}
|
|
22
|
-
ngOnChanges(changes) {
|
|
23
|
-
if (!changes.user.firstChange && !this.user) {
|
|
24
|
-
console.error(`AvatarComponent expected a value for the [user] input but got ${this.user} instead.`);
|
|
25
|
-
}
|
|
26
|
-
this.updateLabel();
|
|
27
|
-
this.updateColor();
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Update the Avatar label
|
|
31
|
-
*
|
|
32
|
-
*/
|
|
33
|
-
updateLabel() {
|
|
34
|
-
if (this.user) {
|
|
35
|
-
this.label = this.avatarService.getAvatarLabels(this.user).abbreviation;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Sets the color of the Avatar based on the first letter of the label. If the label is HI or is not
|
|
40
|
-
* a letter, default to gray.
|
|
41
|
-
*/
|
|
42
|
-
updateColor() {
|
|
43
|
-
if (this.currentCSSClass) {
|
|
44
|
-
this.renderer.removeClass(this.el.nativeElement, this.currentCSSClass);
|
|
45
|
-
}
|
|
46
|
-
let color = 'gray';
|
|
47
|
-
if (this.label !== 'HI' && this.label) {
|
|
48
|
-
for (let key in this.colors) {
|
|
49
|
-
if (key.includes(this.label[0].toLowerCase())) {
|
|
50
|
-
color = this.colors[key];
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
this.currentCSSClass = `avatar-${color}`;
|
|
55
|
-
this.renderer.addClass(this.el.nativeElement, this.currentCSSClass);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
AvatarComponent.decorators = [
|
|
59
|
-
{ type: Component, args: [{
|
|
60
|
-
selector: 'ec-avatar',
|
|
61
|
-
template: '{{label}}',
|
|
62
|
-
styles: [":host{align-items:center;border-radius:50%;color:var(--ec-color-primary-light);display:flex;font-size:1rem;height:2.25rem;justify-content:center;line-height:1.25rem;text-transform:uppercase;width:2.25rem}:host.avatar-red{background-color:#eb6669}:host.avatar-orange{background-color:#fa9f69}:host.avatar-yellow{background-color:#ffec74}:host.avatar-green{background-color:#dbe280}:host.avatar-blue{background-color:#58afc7}:host.avatar-purple{background-color:#9e82b4}:host.avatar-gray{background-color:#acbcc3}:host.avatar-green,:host.avatar-orange,:host.avatar-yellow{color:var(--ec-color-secondary-dark)}"]
|
|
63
|
-
},] }
|
|
64
|
-
];
|
|
65
|
-
AvatarComponent.ctorParameters = () => [
|
|
66
|
-
{ type: ElementRef },
|
|
67
|
-
{ type: Renderer2 },
|
|
68
|
-
{ type: AvatarService }
|
|
69
|
-
];
|
|
70
|
-
AvatarComponent.propDecorators = {
|
|
71
|
-
user: [{ type: Input }]
|
|
72
|
-
};
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2F2YXRhci9hdmF0YXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQTBELE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWNqRCxNQUFNLE9BQU8sZUFBZTtJQW9CMUIsWUFBb0IsRUFBYyxFQUFVLFFBQW1CLEVBQVUsYUFBNEI7UUFBakYsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWxCckcsbURBQW1EO1FBQzNDLFdBQU0sR0FBRztZQUNmLE9BQU8sRUFBRSxLQUFLO1lBQ2QsT0FBTyxFQUFFLFFBQVE7WUFDakIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsTUFBTSxFQUFFLE9BQU87WUFDZixLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxRQUFRO1NBQ2hCLENBQUE7UUFJRCxrSEFBa0g7UUFDM0csVUFBSyxHQUFHLElBQUksQ0FBQztRQUVwQixzR0FBc0c7UUFDOUYsb0JBQWUsR0FBRyxFQUFFLENBQUM7SUFFMkUsQ0FBQztJQUV6RyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLGlFQUFpRSxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQztTQUN0RztRQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFdBQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDO1NBQ3pFO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFdBQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUN4RTtRQUVELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDckMsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUMzQixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFO29CQUM3QyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDMUI7YUFDRjtTQUNGO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLEtBQUssRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN0RSxDQUFDOzs7WUFqRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixRQUFRLEVBQUUsV0FBVzs7YUFFdEI7OztZQWQwQixVQUFVO1lBQUUsU0FBUztZQUN2QyxhQUFhOzs7bUJBMEJuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXZhdGFyU2VydmljZSB9IGZyb20gJy4vYXZhdGFyLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdmF0YXJVc2VyIHtcclxuICBmaXJzdE5hbWU/OiBzdHJpbmc7XHJcbiAgbGFzdE5hbWU/OiBzdHJpbmc7XHJcbiAgZW1haWw/OiBzdHJpbmc7XHJcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtYXZhdGFyJyxcclxuICB0ZW1wbGF0ZTogJ3t7bGFiZWx9fScsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXZhdGFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEF2YXRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8qKiBDb2xvciBtYXAgYmFzZSBvbiB0aGUgZmlyc3QgbGV0IG9mIHRoZSBsYWJlbCAqL1xyXG4gIHByaXZhdGUgY29sb3JzID0ge1xyXG4gICAgYWJjZGUwMTogJ3JlZCcsXHJcbiAgICBmZ2hpajIzOiAnb3JhbmdlJyxcclxuICAgIGtsbW4xNTogJ3llbGxvdycsXHJcbiAgICBvcHFyNjc6ICdncmVlbicsXHJcbiAgICBzdHV2ODogJ2JsdWUnLFxyXG4gICAgd3h5ejk6ICdwdXJwbGUnXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSB1c2VyITogQXZhdGFyVXNlcjtcclxuXHJcbiAgLyoqIExhYmVsIGlzIGRlZmF1bHRlZCB0byBISSBpbiB0aGUgcmFyZSBjYXNlIHRoZSB1c2VyIGRvZXMgbm90IGhhdmUgYSBmaXJzdCBuYW1lLCBsYXN0IG5hbWUsIGVtYWlsIG9yIHVzZXJuYW1lICovXHJcbiAgcHVibGljIGxhYmVsID0gJ0hJJztcclxuXHJcbiAgLyoqIFRyYWNrIHRoZSBjdXJyZW50IENTUyBjbGFzcyBzbyB3ZSBjYW4gcmVtb3ZlIGl0IGlmIHRoZSB1c2VyIGNoYW5nZXMgYmVmb3JlIHNldHRpbmcgdGhlIG5leHQgb25lICovXHJcbiAgcHJpdmF0ZSBjdXJyZW50Q1NTQ2xhc3MgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGF2YXRhclNlcnZpY2U6IEF2YXRhclNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmICghY2hhbmdlcy51c2VyLmZpcnN0Q2hhbmdlICYmICF0aGlzLnVzZXIpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihgQXZhdGFyQ29tcG9uZW50IGV4cGVjdGVkIGEgdmFsdWUgZm9yIHRoZSBbdXNlcl0gaW5wdXQgYnV0IGdvdCAke3RoaXMudXNlcn0gaW5zdGVhZC5gKTtcclxuICAgIH0gXHJcbiAgICAgIFxyXG4gICAgdGhpcy51cGRhdGVMYWJlbCgpO1xyXG4gICAgdGhpcy51cGRhdGVDb2xvcigpOyAgICBcclxuICB9XHJcblxyXG4gIC8qKiBcclxuICAgKiBVcGRhdGUgdGhlIEF2YXRhciBsYWJlbCBcclxuICAgKiBcclxuICAgKi9cclxuICBwcml2YXRlIHVwZGF0ZUxhYmVsKCkge1xyXG4gICAgaWYgKHRoaXMudXNlcikge1xyXG4gICAgICB0aGlzLmxhYmVsID0gdGhpcy5hdmF0YXJTZXJ2aWNlLmdldEF2YXRhckxhYmVscyh0aGlzLnVzZXIpLmFiYnJldmlhdGlvbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBcclxuICAgKiBTZXRzIHRoZSBjb2xvciBvZiB0aGUgQXZhdGFyIGJhc2VkIG9uIHRoZSBmaXJzdCBsZXR0ZXIgb2YgdGhlIGxhYmVsLiBJZiB0aGUgbGFiZWwgaXMgSEkgb3IgaXMgbm90XHJcbiAgICogYSBsZXR0ZXIsIGRlZmF1bHQgdG8gZ3JheS5cclxuICAgKi9cclxuICBwcml2YXRlIHVwZGF0ZUNvbG9yKCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudENTU0NsYXNzKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnJlbnRDU1NDbGFzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGNvbG9yID0gJ2dyYXknO1xyXG4gICAgaWYgKHRoaXMubGFiZWwgIT09ICdISScgJiYgdGhpcy5sYWJlbCkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5jb2xvcnMpIHtcclxuICAgICAgICBpZiAoa2V5LmluY2x1ZGVzKHRoaXMubGFiZWxbMF0udG9Mb3dlckNhc2UoKSkpIHtcclxuICAgICAgICAgIGNvbG9yID0gdGhpcy5jb2xvcnNba2V5XTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudENTU0NsYXNzID0gYGF2YXRhci0ke2NvbG9yfWA7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJyZW50Q1NTQ2xhc3MpO1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
-
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
|
4
|
-
import { Overlay } from '../view-overlay/view-overlay.component';
|
|
5
|
-
export class ConfirmDialogContext {
|
|
6
|
-
constructor() {
|
|
7
|
-
/** Id to distinguish between confirm component contexts emitted by the dialog service */
|
|
8
|
-
this.id = '';
|
|
9
|
-
/**
|
|
10
|
-
* Optional required flag for the textbox, will set
|
|
11
|
-
* a validator on the input if true
|
|
12
|
-
*/
|
|
13
|
-
this.textboxRequired = false;
|
|
14
|
-
/** Sets the textbox's uppercase parameter */
|
|
15
|
-
this.textboxUppercase = false;
|
|
16
|
-
/**
|
|
17
|
-
* Optional textbox height (in rows).
|
|
18
|
-
* Only applies to multi-line type.
|
|
19
|
-
* Default 3.
|
|
20
|
-
*/
|
|
21
|
-
this.textareaRows = 3;
|
|
22
|
-
/** Optional save button label */
|
|
23
|
-
this.saveLabel = 'Save'; // LOCO
|
|
24
|
-
/** Optional save button type */
|
|
25
|
-
this.saveButtonType = 'primary';
|
|
26
|
-
/** Optional cancel button label */
|
|
27
|
-
this.cancelLabel = 'Cancel'; // LOCO
|
|
28
|
-
/** When true, adds the submit tag to the save button so hitting enter triggers the save */
|
|
29
|
-
this.saveOnEnter = false;
|
|
30
|
-
/** Optional alternate save button label */
|
|
31
|
-
this.alternateSaveLabel = undefined;
|
|
32
|
-
/** Optional alternate save button type */
|
|
33
|
-
this.alternateSaveButtonType = undefined;
|
|
34
|
-
/**
|
|
35
|
-
* Used to know which save button was selected in case the calling component
|
|
36
|
-
* is utilizing the alternate save button
|
|
37
|
-
*/
|
|
38
|
-
this.saveSource = 'primary';
|
|
39
|
-
/** The message to be displayed while inlineConfirmAction is pending. */
|
|
40
|
-
this.inlineConfirmPendingMessage = '';
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
export class ConfirmComponent {
|
|
44
|
-
constructor() {
|
|
45
|
-
this.dialogId = 'Confirm';
|
|
46
|
-
/** Form Group to hold any form controls needed */
|
|
47
|
-
this.formGroup = new FormGroup({});
|
|
48
|
-
this.status = new Overlay('hasData');
|
|
49
|
-
this.onDialogSave = new EventEmitter();
|
|
50
|
-
this.onDialogCancel = new EventEmitter();
|
|
51
|
-
}
|
|
52
|
-
onOpen(openContext) {
|
|
53
|
-
this.context = openContext;
|
|
54
|
-
this.dialogId = openContext.id;
|
|
55
|
-
if (this.context.alternateSaveLabel) {
|
|
56
|
-
this.context.saveOnEnter = false;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
ngOnInit() {
|
|
60
|
-
this.addFormControls();
|
|
61
|
-
}
|
|
62
|
-
onSave(source) {
|
|
63
|
-
this.formGroup.markAllAsTouched();
|
|
64
|
-
if (this.formGroup.valid) {
|
|
65
|
-
let formValues = this.formGroup.getRawValue();
|
|
66
|
-
if (formValues.textbox) {
|
|
67
|
-
this.context.textboxValue = formValues.textbox;
|
|
68
|
-
}
|
|
69
|
-
this.context.saveSource = source;
|
|
70
|
-
if (this.context.inlineConfirmAction) {
|
|
71
|
-
this.doInlineConfirmAction();
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
this.onDialogSave.emit(this.context);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
else if (this.context.validationErrorMessage) {
|
|
78
|
-
this.error = this.context.validationErrorMessage;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
onCancel() {
|
|
82
|
-
this.onDialogCancel.emit();
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Adds the textbox form control to our form group if its configured to be visible
|
|
86
|
-
* Will also add the required validator if requested
|
|
87
|
-
*/
|
|
88
|
-
addFormControls() {
|
|
89
|
-
if (this.context.textboxType) {
|
|
90
|
-
let validators = [];
|
|
91
|
-
if (this.context.textboxRequired) {
|
|
92
|
-
validators.push(Validators.required);
|
|
93
|
-
}
|
|
94
|
-
if (this.context.textboxValidators) {
|
|
95
|
-
validators.push(...this.context.textboxValidators);
|
|
96
|
-
}
|
|
97
|
-
this.formGroup.addControl('textbox', new FormControl('', validators));
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
doInlineConfirmAction() {
|
|
101
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
-
this.status.setStatus('pending', this.context.inlineConfirmPendingMessage);
|
|
103
|
-
let result = yield this.context.inlineConfirmAction();
|
|
104
|
-
this.status.setStatus('noData', result.message, {
|
|
105
|
-
id: 'inlineConfirmClose',
|
|
106
|
-
label: 'Close',
|
|
107
|
-
icon: result.isSuccess ? 'icon-check-circle' : 'icon-error',
|
|
108
|
-
classlist: result.isSuccess ? 'font-color-success' : 'font-color-error',
|
|
109
|
-
onClick: () => { result.isSuccess ? this.onDialogSave.emit(this.context) : this.onDialogCancel.emit(); }
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
ConfirmComponent.decorators = [
|
|
115
|
-
{ type: Component, args: [{
|
|
116
|
-
selector: 'ec-confirm',
|
|
117
|
-
template: "<section ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [action]=\"status?.action\"\r\n [noDataTemplate]=\"inlineConfirmResult\"\r\n overlayClassList=\"p-0\"\r\n class=\"bg-body flex-grow d-flex\">\r\n <form [formGroup]=\"formGroup\" class=\"flex-grow flex-column confirm-content text-body-1\">\r\n <section class=\"flex-grow\">\r\n <h2 class=\"font-weight-bold mb-3\" *ngIf=\"context?.title\">{{context?.title}}</h2>\r\n <ec-banner *ngIf=\"error\" [text]=\"error | translate\" bannerStyle=\"normal\" class=\"mb-3\"></ec-banner>\r\n <div *ngIf=\"context?.message\" [innerHtml]=\"context?.message | translate\" class=\"mb-3\"></div>\r\n <ec-textbox id=\"confirmTextbox\"\r\n *ngIf=\"context?.textboxType\"\r\n [autofocus]=\"true\"\r\n [formModel]=\"formGroup.get('textbox')\"\r\n [required]=\"context?.textboxRequired\"\r\n [label]=\"context?.textboxLabel\"\r\n [type]=\"context?.textboxType\"\r\n [rows]=\"context?.textareaRows\"\r\n [placeholder]=\"context?.textboxPlaceholder\"\r\n [upperCase]=\"context?.textboxUppercase\">\r\n </ec-textbox>\r\n </section>\r\n <footer class=\"mt-auto flex-shrink d-flex py-2 flex-row-reverse\">\r\n <ec-button id=\"saveConfirmButton\"\r\n class=\"ml-2\"\r\n [type]=\"context?.saveButtonType ? context?.saveButtonType : 'primary'\"\r\n [label]=\"context?.saveLabel ? context?.saveLabel : 'Save'\"\r\n [autofocus]=\"!context?.textboxType\"\r\n [isSubmit]=\"context?.saveOnEnter\"\r\n (clicked)=\"onSave('primary')\">\r\n </ec-button>\r\n <ec-button id=\"alternateSaveConfirmButton\"\r\n *ngIf=\"context?.alternateSaveLabel\"\r\n class=\"ml-2\"\r\n [type]=\"context?.alternateSaveButtonType ? context?.alternateSaveButtonType : 'primary'\"\r\n [label]=\"context?.alternateSaveLabel\"\r\n (clicked)=\"onSave('alternate')\">\r\n </ec-button>\r\n <ec-button id=\"cancelConfirmButton\"\r\n class=\"ml-auto\"\r\n type=\"secondary\"\r\n [label]=\"context?.cancelLabel ? context?.cancelLabel : 'Cancel'\"\r\n (clicked)=\"onCancel()\">\r\n </ec-button>\r\n </footer>\r\n </form>\r\n</section>\r\n\r\n<ng-template #inlineConfirmResult>\r\n <section class=\"flex-grow align-self-stretch confirm-content text-body-1\">\r\n <div class=\"d-flex\">\r\n <i class=\"ec-icon {{status?.action?.icon}} {{status?.action?.classlist}} inline-confirm-result-icon\"></i>\r\n <div [innerHTML]=\"status?.message | translate\"></div>\r\n </div>\r\n <div class=\"d-flex pt-2 mt-auto\">\r\n <ec-button id=\"inlineConfirmClose\"\r\n label=\"Close\"\r\n type=\"secondary\"\r\n class=\"ml-auto\"\r\n (clicked)=\"status?.action?.onClick!()\"\r\n [autofocus]=\"true\">\r\n </ec-button>\r\n </div>\r\n </section>\r\n</ng-template>",
|
|
118
|
-
styles: [":host{display:flex;width:100%}.confirm-content{display:flex;flex-direction:column;padding:1.5rem}.inline-confirm-result-icon{margin:.0625rem .25rem .0625rem 0}"]
|
|
119
|
-
},] }
|
|
120
|
-
];
|
|
121
|
-
ConfirmComponent.ctorParameters = () => [];
|
|
122
|
-
ConfirmComponent.propDecorators = {
|
|
123
|
-
context: [{ type: Input }],
|
|
124
|
-
onDialogSave: [{ type: Output }],
|
|
125
|
-
onDialogCancel: [{ type: Output }]
|
|
126
|
-
};
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQVNqRSxNQUFNLE9BQU8sb0JBQW9CO0lBQWpDO1FBQ0UseUZBQXlGO1FBQ2xGLE9BQUUsR0FBVyxFQUFFLENBQUM7UUFpQnZCOzs7V0FHRztRQUNJLG9CQUFlLEdBQWEsS0FBSyxDQUFDO1FBS3pDLDZDQUE2QztRQUN0QyxxQkFBZ0IsR0FBYSxLQUFLLENBQUM7UUFFMUM7Ozs7V0FJRztRQUNJLGlCQUFZLEdBQVksQ0FBQyxDQUFDO1FBV2pDLGlDQUFpQztRQUMxQixjQUFTLEdBQVksTUFBTSxDQUFDLENBQUMsT0FBTztRQUUzQyxnQ0FBZ0M7UUFDekIsbUJBQWMsR0FBZ0IsU0FBUyxDQUFDO1FBRS9DLG1DQUFtQztRQUM1QixnQkFBVyxHQUFZLFFBQVEsQ0FBQyxDQUFDLE9BQU87UUFFL0MsMkZBQTJGO1FBQ3BGLGdCQUFXLEdBQWEsS0FBSyxDQUFDO1FBRXJDLDJDQUEyQztRQUNwQyx1QkFBa0IsR0FBWSxTQUFTLENBQUM7UUFFL0MsMENBQTBDO1FBQ25DLDRCQUF1QixHQUFnQixTQUFTLENBQUM7UUFFeEQ7OztXQUdHO1FBQ0ksZUFBVSxHQUFnQixTQUFTLENBQUM7UUFVM0Msd0VBQXdFO1FBQ2pFLGdDQUEyQixHQUFZLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0NBQUE7QUFPRCxNQUFNLE9BQU8sZ0JBQWdCO0lBOEIzQjtRQTVCTyxhQUFRLEdBQVcsU0FBUyxDQUFDO1FBRXBDLGtEQUFrRDtRQUMzQyxjQUFTLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFekMsV0FBTSxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBUXRCLGlCQUFZLEdBQXVDLElBQUksWUFBWSxFQUF3QixDQUFDO1FBQzVGLG1CQUFjLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFjL0QsQ0FBQztJQVpWLE1BQU0sQ0FBQyxXQUFrQztRQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVksQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVksQ0FBQyxFQUFFLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFO1lBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUNsQztJQUNILENBQUM7SUFPTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBa0I7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRWxDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDeEIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7YUFDaEQ7WUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7WUFFakMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFO2dCQUNwQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQzthQUM5QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdEM7U0FDRjthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtZQUM5QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGVBQWU7UUFDckIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUM1QixJQUFJLFVBQVUsR0FBa0IsRUFBRSxDQUFDO1lBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUU7Z0JBQ2hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3RDO1lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO2dCQUNsQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0gsQ0FBQztJQUVhLHFCQUFxQjs7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUUzRSxJQUFJLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW9CLEVBQUUsQ0FBQztZQUV2RCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDOUMsRUFBRSxFQUFFLG9CQUFvQjtnQkFDeEIsS0FBSyxFQUFFLE9BQU87Z0JBQ2QsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxZQUFZO2dCQUMzRCxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLGtCQUFrQjtnQkFDdkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxDQUFDLENBQUM7YUFDeEcsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBOzs7WUEvRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0QixpdkdBQXVDOzthQUV4Qzs7OztzQkFjRSxLQUFLOzJCQUVMLE1BQU07NkJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25UeXBlIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0Ym94VHlwZSB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dDb250ZW50IH0gZnJvbSAnLi4vZGlhbG9nL2RpYWxvZy1jb250ZW50JztcclxuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJy4uL3ZpZXctb3ZlcmxheS92aWV3LW92ZXJsYXkuY29tcG9uZW50JztcclxuXHJcbnR5cGUgU2F2ZVNvdXJjZSA9ICdwcmltYXJ5J3wnYWx0ZXJuYXRlJztcclxuXHJcbmV4cG9ydCB0eXBlIEN1c3RvbUFjdGlvblJlc3VsdCA9IHtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgaXNTdWNjZXNzOiBib29sZWFuO1xyXG59O1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbmZpcm1EaWFsb2dDb250ZXh0IHtcclxuICAvKiogSWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBjb25maXJtIGNvbXBvbmVudCBjb250ZXh0cyBlbWl0dGVkIGJ5IHRoZSBkaWFsb2cgc2VydmljZSAqL1xyXG4gIHB1YmxpYyBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKiBPcHRpb25hbCB0aXRsZSBvZiB0aGUgY29uZmlybSAqL1xyXG4gIHB1YmxpYyB0aXRsZT86IHN0cmluZztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIG1lc3NhZ2UgKi9cclxuICBwdWJsaWMgbWVzc2FnZT86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgdGV4dGJveCB0eXBlLCB0aGlzIHdpbGwgZGV0ZXJtaW5lIHdoZXRoZXJcclxuICAgKiBhbiBpbnB1dCBpcyB2aXNpYmxlIG9yIG5vdFxyXG4gICAqL1xyXG4gIHB1YmxpYyB0ZXh0Ym94VHlwZT86IFRleHRib3hUeXBlO1xyXG5cclxuICAvKiogT3B0aW9uYWwgdGV4dGJveCBsYWJlbCAqL1xyXG4gIHB1YmxpYyB0ZXh0Ym94TGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsIHJlcXVpcmVkIGZsYWcgZm9yIHRoZSB0ZXh0Ym94LCB3aWxsIHNldFxyXG4gICAqIGEgdmFsaWRhdG9yIG9uIHRoZSBpbnB1dCBpZiB0cnVlXHJcbiAgICovXHJcbiAgcHVibGljIHRleHRib3hSZXF1aXJlZD86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGFycmF5IG9mIHZhbGlkYXRvcnMgdG8gYWRkIHRvIHRoZSB0ZXh0Ym94IGZvcm0gY29udHJvbC4gKi9cclxuICBwdWJsaWMgdGV4dGJveFZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdO1xyXG5cclxuICAvKiogU2V0cyB0aGUgdGV4dGJveCdzIHVwcGVyY2FzZSBwYXJhbWV0ZXIgKi9cclxuICBwdWJsaWMgdGV4dGJveFVwcGVyY2FzZT86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgdGV4dGJveCBoZWlnaHQgKGluIHJvd3MpLlxyXG4gICAqIE9ubHkgYXBwbGllcyB0byBtdWx0aS1saW5lIHR5cGUuXHJcbiAgICogRGVmYXVsdCAzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyB0ZXh0YXJlYVJvd3M/OiBudW1iZXIgPSAzO1xyXG5cclxuICAvKiogT3B0aW9uYWwgdGV4dGJveCBwbGFjZWhvbGRlciB0ZXh0ICovXHJcbiAgcHVibGljIHRleHRib3hQbGFjZWhvbGRlcj86IHN0cmluZztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIHRleHRib3ggKi9cclxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yTWVzc2FnZT86IHN0cmluZztcclxuXHJcbiAgLyoqIFZhbHVlIHJldHVybmVkIGZyb20gdGhlIGlucHV0IGlmIGVuYWJsZWQgKi9cclxuICBwdWJsaWMgdGV4dGJveFZhbHVlPzogc3RyaW5nO1xyXG5cclxuICAvKiogT3B0aW9uYWwgc2F2ZSBidXR0b24gbGFiZWwgKi9cclxuICBwdWJsaWMgc2F2ZUxhYmVsPzogc3RyaW5nID0gJ1NhdmUnOyAvLyBMT0NPXHJcblxyXG4gIC8qKiBPcHRpb25hbCBzYXZlIGJ1dHRvbiB0eXBlICovXHJcbiAgcHVibGljIHNhdmVCdXR0b25UeXBlPzogQnV0dG9uVHlwZSA9ICdwcmltYXJ5JztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGNhbmNlbCBidXR0b24gbGFiZWwgKi9cclxuICBwdWJsaWMgY2FuY2VsTGFiZWw/OiBzdHJpbmcgPSAnQ2FuY2VsJzsgLy8gTE9DT1xyXG5cclxuICAvKiogV2hlbiB0cnVlLCBhZGRzIHRoZSBzdWJtaXQgdGFnIHRvIHRoZSBzYXZlIGJ1dHRvbiBzbyBoaXR0aW5nIGVudGVyIHRyaWdnZXJzIHRoZSBzYXZlICovXHJcbiAgcHVibGljIHNhdmVPbkVudGVyPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogT3B0aW9uYWwgYWx0ZXJuYXRlIHNhdmUgYnV0dG9uIGxhYmVsICovXHJcbiAgcHVibGljIGFsdGVybmF0ZVNhdmVMYWJlbD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGFsdGVybmF0ZSBzYXZlIGJ1dHRvbiB0eXBlICovXHJcbiAgcHVibGljIGFsdGVybmF0ZVNhdmVCdXR0b25UeXBlPzogQnV0dG9uVHlwZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogVXNlZCB0byBrbm93IHdoaWNoIHNhdmUgYnV0dG9uIHdhcyBzZWxlY3RlZCBpbiBjYXNlIHRoZSBjYWxsaW5nIGNvbXBvbmVudFxyXG4gICAqIGlzIHV0aWxpemluZyB0aGUgYWx0ZXJuYXRlIHNhdmUgYnV0dG9uXHJcbiAgICovXHJcbiAgcHVibGljIHNhdmVTb3VyY2U/OiBTYXZlU291cmNlID0gJ3ByaW1hcnknO1xyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHByb3ZpZGVkLCB0aGUgY29uZmlybSB3aWxsIHNob3cgYSBwZW5kaW5nIHN0YXRlIGFuZCBjYWxsIHRoaXMsIHRoZW4gdXBvblxyXG4gICAqIGNvbXBsZXRpb24gZGlzcGxheSB0aGUgcmVzdWx0IG1lc3NhZ2UgYW5kIGEgY2xvc2UgYnV0dG9uLiBJZiB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZFxyXG4gICAqIHN1Y2Nlc3NmdWxseSwgdGhlIGNsb3NlIGJ1dHRvbiB3aWxsIGVtaXQgb25EaWFsb2dTYXZlLiBJZiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZCxcclxuICAgKiB0aGUgY2xvc2UgYnV0dG9uIHdpbGwgZW1pdCBvbkRpYWxvZ0NhbmNlbC5cclxuICAgKi9cclxuICBwdWJsaWMgaW5saW5lQ29uZmlybUFjdGlvbj86ICgpID0+IFByb21pc2U8Q3VzdG9tQWN0aW9uUmVzdWx0PjtcclxuXHJcbiAgLyoqIFRoZSBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCB3aGlsZSBpbmxpbmVDb25maXJtQWN0aW9uIGlzIHBlbmRpbmcuICovXHJcbiAgcHVibGljIGlubGluZUNvbmZpcm1QZW5kaW5nTWVzc2FnZT86IHN0cmluZyA9ICcnO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWNvbmZpcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maXJtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIERpYWxvZ0NvbnRlbnQ8Q29uZmlybURpYWxvZ0NvbnRleHQ+e1xyXG5cclxuICBwdWJsaWMgZGlhbG9nSWQ6IHN0cmluZyA9ICdDb25maXJtJztcclxuXHJcbiAgLyoqIEZvcm0gR3JvdXAgdG8gaG9sZCBhbnkgZm9ybSBjb250cm9scyBuZWVkZWQgKi9cclxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgcHVibGljIHN0YXR1cyA9IG5ldyBPdmVybGF5KCdoYXNEYXRhJyk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFByb3ZpZGVkIGJ5IHRoZSBjYWxsaW5nIGNvbXBvbmVudCB0byB0ZWxsIHRoZSBjb25maXJtIHdoYXQgdG8gc2hvd1xyXG4gICAqIGFuZCBpcyB1c2VkIG9uIHNhdmUgdG8gc2VuZCBiYWNrIGFueSBlbnRlcmVkIHZhbHVlcyBmcm9tIHRoZSB1c2VyXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGNvbnRleHQhOiBDb25maXJtRGlhbG9nQ29udGV4dDtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRpYWxvZ1NhdmU6IEV2ZW50RW1pdHRlcjxDb25maXJtRGlhbG9nQ29udGV4dD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbmZpcm1EaWFsb2dDb250ZXh0PigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25EaWFsb2dDYW5jZWw6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIG9uT3BlbihvcGVuQ29udGV4dD86IENvbmZpcm1EaWFsb2dDb250ZXh0KTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnRleHQgPSBvcGVuQ29udGV4dCE7XHJcbiAgICB0aGlzLmRpYWxvZ0lkID0gb3BlbkNvbnRleHQhLmlkO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbnRleHQuYWx0ZXJuYXRlU2F2ZUxhYmVsKSB7XHJcbiAgICAgIHRoaXMuY29udGV4dC5zYXZlT25FbnRlciA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEVycm9yIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZXJyb3IgYmFubmVyICovXHJcbiAgcHVibGljIGVycm9yPzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFkZEZvcm1Db250cm9scygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2F2ZShzb3VyY2U6IFNhdmVTb3VyY2UpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuXHJcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcclxuICAgICAgbGV0IGZvcm1WYWx1ZXMgPSB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICBpZiAoZm9ybVZhbHVlcy50ZXh0Ym94KSB7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LnRleHRib3hWYWx1ZSA9IGZvcm1WYWx1ZXMudGV4dGJveDtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jb250ZXh0LnNhdmVTb3VyY2UgPSBzb3VyY2U7XHJcblxyXG4gICAgICBpZiAodGhpcy5jb250ZXh0LmlubGluZUNvbmZpcm1BY3Rpb24pIHtcclxuICAgICAgICB0aGlzLmRvSW5saW5lQ29uZmlybUFjdGlvbigpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25EaWFsb2dTYXZlLmVtaXQodGhpcy5jb250ZXh0KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRleHQudmFsaWRhdGlvbkVycm9yTWVzc2FnZSkge1xyXG4gICAgICB0aGlzLmVycm9yID0gdGhpcy5jb250ZXh0LnZhbGlkYXRpb25FcnJvck1lc3NhZ2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uRGlhbG9nQ2FuY2VsLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgdGhlIHRleHRib3ggZm9ybSBjb250cm9sIHRvIG91ciBmb3JtIGdyb3VwIGlmIGl0cyBjb25maWd1cmVkIHRvIGJlIHZpc2libGVcclxuICAgKiBXaWxsIGFsc28gYWRkIHRoZSByZXF1aXJlZCB2YWxpZGF0b3IgaWYgcmVxdWVzdGVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRGb3JtQ29udHJvbHMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb250ZXh0LnRleHRib3hUeXBlKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICAgIGlmICh0aGlzLmNvbnRleHQudGV4dGJveFJlcXVpcmVkKSB7XHJcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmNvbnRleHQudGV4dGJveFZhbGlkYXRvcnMpIHtcclxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goLi4udGhpcy5jb250ZXh0LnRleHRib3hWYWxpZGF0b3JzKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCd0ZXh0Ym94JywgbmV3IEZvcm1Db250cm9sKCcnLCB2YWxpZGF0b3JzKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGRvSW5saW5lQ29uZmlybUFjdGlvbigpIHtcclxuICAgIHRoaXMuc3RhdHVzLnNldFN0YXR1cygncGVuZGluZycsIHRoaXMuY29udGV4dC5pbmxpbmVDb25maXJtUGVuZGluZ01lc3NhZ2UpO1xyXG5cclxuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbnRleHQuaW5saW5lQ29uZmlybUFjdGlvbiEoKTtcclxuXHJcbiAgICB0aGlzLnN0YXR1cy5zZXRTdGF0dXMoJ25vRGF0YScsIHJlc3VsdC5tZXNzYWdlLCB7XHJcbiAgICAgIGlkOiAnaW5saW5lQ29uZmlybUNsb3NlJyxcclxuICAgICAgbGFiZWw6ICdDbG9zZScsXHJcbiAgICAgIGljb246IHJlc3VsdC5pc1N1Y2Nlc3MgPyAnaWNvbi1jaGVjay1jaXJjbGUnIDogJ2ljb24tZXJyb3InLFxyXG4gICAgICBjbGFzc2xpc3Q6IHJlc3VsdC5pc1N1Y2Nlc3MgPyAnZm9udC1jb2xvci1zdWNjZXNzJyA6ICdmb250LWNvbG9yLWVycm9yJyxcclxuICAgICAgb25DbGljazogKCkgPT4geyByZXN1bHQuaXNTdWNjZXNzID8gdGhpcy5vbkRpYWxvZ1NhdmUuZW1pdCh0aGlzLmNvbnRleHQpIDogdGhpcy5vbkRpYWxvZ0NhbmNlbC5lbWl0KCkgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { filter, takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { DialogCloseEvent, DialogCloseLatestEvent, DialogOpenStartEvent } from '../dialog-types';
|
|
5
|
-
import { DialogService } from '../dialog.service';
|
|
6
|
-
export class DialogGroupComponent {
|
|
7
|
-
constructor(dialogService) {
|
|
8
|
-
this.dialogService = dialogService;
|
|
9
|
-
this.activeDialogEvents = [];
|
|
10
|
-
this.destroyed = new Subject();
|
|
11
|
-
}
|
|
12
|
-
/**When the group component is created, start watching for any DialogOpenStart events
|
|
13
|
-
* so that the group can react and make the matching dialog. New dialogs get assigned unique
|
|
14
|
-
* eventIds so that when they close we know exactly which one is done and we can take it
|
|
15
|
-
* out of the list of active dialogs
|
|
16
|
-
*/
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
this.dialogService.events.pipe(filter(event => event instanceof DialogOpenStartEvent || event instanceof DialogCloseLatestEvent), takeUntil(this.destroyed)).subscribe(event => {
|
|
19
|
-
var _a, _b;
|
|
20
|
-
if (event instanceof DialogOpenStartEvent) {
|
|
21
|
-
this.activeDialogEvents.push(event);
|
|
22
|
-
}
|
|
23
|
-
else if (event instanceof DialogCloseLatestEvent && this.activeDialogEvents.length > 0) {
|
|
24
|
-
let sourceEvent = this.activeDialogEvents[this.activeDialogEvents.length - 1];
|
|
25
|
-
this.dialogService.triggerEvent(new DialogCloseEvent(sourceEvent.eventId, sourceEvent.dialogId, (_a = event.dialogResult) === null || _a === void 0 ? void 0 : _a.save, (_b = event.dialogResult) === null || _b === void 0 ? void 0 : _b.context));
|
|
26
|
-
this.dialogClosed(sourceEvent);
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
/** When the dialog group is destroyed we no longer want to listen for any open events. */
|
|
31
|
-
ngOnDestroy() {
|
|
32
|
-
this.destroyed.next();
|
|
33
|
-
this.destroyed.unsubscribe();
|
|
34
|
-
}
|
|
35
|
-
/**The dialog component completed opening (including animation delay) and
|
|
36
|
-
* emits an event that tells us it is ready. The group can then pump out a dialog
|
|
37
|
-
* openEnd event (kinda NavigationEnd in the router) to tell anybody who cares that
|
|
38
|
-
* the dialog is now ready.
|
|
39
|
-
*/
|
|
40
|
-
dialogOpened(dialogOpenEvent, dialogId) {
|
|
41
|
-
dialogOpenEvent.dialogId = dialogId;
|
|
42
|
-
}
|
|
43
|
-
/** The dialog has closed (after animation delay) and emitted an event to tell the hosting component.
|
|
44
|
-
* We handle the event and pump a matching DialogCloseEvent so that anybody who cares can know that the
|
|
45
|
-
* dialog instance referenced by dialogOpenEvent.eventId is gone now. We remove it from our list of
|
|
46
|
-
* active dialogs which pulls it out of the DOM too
|
|
47
|
-
*/
|
|
48
|
-
dialogClosed(dialogOpenEvent) {
|
|
49
|
-
const index = this.activeDialogEvents.findIndex(d => d === dialogOpenEvent);
|
|
50
|
-
if (index >= 0) {
|
|
51
|
-
this.activeDialogEvents.splice(index, 1);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
DialogGroupComponent.decorators = [
|
|
56
|
-
{ type: Component, args: [{
|
|
57
|
-
selector: 'ec-dialog-group',
|
|
58
|
-
template: "<ec-dialog *ngFor=\"let dialog of activeDialogEvents\"\r\n [dialogOpenStartEventId]=\"dialog.eventId\"\r\n [size]=\"dialog.options?.size\"\r\n [content]=\"dialog.content\"\r\n [context]=\"dialog.context\"\r\n [options]=\"dialog.options\"\r\n (opened)=\"dialogOpened(dialog, $event)\"\r\n (closed)=\"dialogClosed(dialog)\">\r\n</ec-dialog>",
|
|
59
|
-
styles: [":root{--ec-color-icon:rgba(26,26,35,0.66);--ec-font-size-icon:1rem}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}ec-dialog:not(:only-child){--ec-dialog-background-color:transparent}ec-dialog:not(:only-child):last-child,ec-dialog:not(:only-child):nth-last-child(2){--ec-dialog-background-color:var(--ec-background-color-dialog-stacked)}"]
|
|
60
|
-
},] }
|
|
61
|
-
];
|
|
62
|
-
DialogGroupComponent.ctorParameters = () => [
|
|
63
|
-
{ type: DialogService }
|
|
64
|
-
];
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2RpYWxvZy9kaWFsb2ctZ3JvdXAvZGlhbG9nLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBT2xELE1BQU0sT0FBTyxvQkFBb0I7SUFLL0IsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFIaEQsdUJBQWtCLEdBQWdDLEVBQUUsQ0FBQztRQUM3QyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVZLENBQUM7SUFFckQ7Ozs7T0FJRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzVCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxvQkFBb0IsSUFBSSxLQUFLLFlBQVksc0JBQXNCLENBQUMsRUFDakcsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7O1lBQ2xCLElBQUcsS0FBSyxZQUFZLG9CQUFvQixFQUFDO2dCQUN2QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQWtDLENBQUMsQ0FBQzthQUNsRTtpQkFBTSxJQUFHLEtBQUssWUFBWSxzQkFBc0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDdkYsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzlFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsUUFBUSxRQUFFLEtBQUssQ0FBQyxZQUFZLDBDQUFFLElBQUksUUFBRSxLQUFLLENBQUMsWUFBWSwwQ0FBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUN4SixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsMEZBQTBGO0lBQzFGLFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsZUFBMEMsRUFBRSxRQUFnQjtRQUN2RSxlQUFlLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxlQUEwQztRQUNyRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLGVBQWUsQ0FBQyxDQUFDO1FBRTVFLElBQUcsS0FBSyxJQUFHLENBQUMsRUFBQztZQUNYLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQzs7O1lBMURGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixvYUFBNEM7O2FBRTdDOzs7WUFOUSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBEaWFsb2dDbG9zZUV2ZW50LCBEaWFsb2dDbG9zZUxhdGVzdEV2ZW50LCBEaWFsb2dPcGVuU3RhcnRFdmVudCB9IGZyb20gJy4uL2RpYWxvZy10eXBlcyc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9kaWFsb2cuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWRpYWxvZy1ncm91cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLWdyb3VwLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ0dyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBhY3RpdmVEaWFsb2dFdmVudHM6IERpYWxvZ09wZW5TdGFydEV2ZW50PGFueT5bXSA9IFtdO1xyXG4gIHByaXZhdGUgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7IH1cclxuXHJcbiAgLyoqV2hlbiB0aGUgZ3JvdXAgY29tcG9uZW50IGlzIGNyZWF0ZWQsIHN0YXJ0IHdhdGNoaW5nIGZvciBhbnkgRGlhbG9nT3BlblN0YXJ0IGV2ZW50c1xyXG4gICAqIHNvIHRoYXQgdGhlIGdyb3VwIGNhbiByZWFjdCBhbmQgbWFrZSB0aGUgbWF0Y2hpbmcgZGlhbG9nLiBOZXcgZGlhbG9ncyBnZXQgYXNzaWduZWQgdW5pcXVlXHJcbiAgICogZXZlbnRJZHMgc28gdGhhdCB3aGVuIHRoZXkgY2xvc2Ugd2Uga25vdyBleGFjdGx5IHdoaWNoIG9uZSBpcyBkb25lIGFuZCB3ZSBjYW4gdGFrZSBpdFxyXG4gICAqIG91dCBvZiB0aGUgbGlzdCBvZiBhY3RpdmUgZGlhbG9nc1xyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmV2ZW50cy5waXBlKFxyXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBEaWFsb2dPcGVuU3RhcnRFdmVudCB8fCBldmVudCBpbnN0YW5jZW9mIERpYWxvZ0Nsb3NlTGF0ZXN0RXZlbnQpLFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXHJcbiAgICApLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmKGV2ZW50IGluc3RhbmNlb2YgRGlhbG9nT3BlblN0YXJ0RXZlbnQpe1xyXG4gICAgICAgIHRoaXMuYWN0aXZlRGlhbG9nRXZlbnRzLnB1c2goZXZlbnQgYXMgRGlhbG9nT3BlblN0YXJ0RXZlbnQ8YW55Pik7XHJcbiAgICAgIH0gZWxzZSBpZihldmVudCBpbnN0YW5jZW9mIERpYWxvZ0Nsb3NlTGF0ZXN0RXZlbnQgJiYgdGhpcy5hY3RpdmVEaWFsb2dFdmVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGxldCBzb3VyY2VFdmVudCA9IHRoaXMuYWN0aXZlRGlhbG9nRXZlbnRzW3RoaXMuYWN0aXZlRGlhbG9nRXZlbnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS50cmlnZ2VyRXZlbnQobmV3IERpYWxvZ0Nsb3NlRXZlbnQoc291cmNlRXZlbnQuZXZlbnRJZCwgc291cmNlRXZlbnQuZGlhbG9nSWQsIGV2ZW50LmRpYWxvZ1Jlc3VsdD8uc2F2ZSwgZXZlbnQuZGlhbG9nUmVzdWx0Py5jb250ZXh0KSk7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dDbG9zZWQoc291cmNlRXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBXaGVuIHRoZSBkaWFsb2cgZ3JvdXAgaXMgZGVzdHJveWVkIHdlIG5vIGxvbmdlciB3YW50IHRvIGxpc3RlbiBmb3IgYW55IG9wZW4gZXZlbnRzLiAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlRoZSBkaWFsb2cgY29tcG9uZW50IGNvbXBsZXRlZCBvcGVuaW5nIChpbmNsdWRpbmcgYW5pbWF0aW9uIGRlbGF5KSBhbmRcclxuICAgKiBlbWl0cyBhbiBldmVudCB0aGF0IHRlbGxzIHVzIGl0IGlzIHJlYWR5LiBUaGUgZ3JvdXAgY2FuIHRoZW4gcHVtcCBvdXQgYSBkaWFsb2dcclxuICAgKiBvcGVuRW5kIGV2ZW50IChraW5kYSBOYXZpZ2F0aW9uRW5kIGluIHRoZSByb3V0ZXIpIHRvIHRlbGwgYW55Ym9keSB3aG8gY2FyZXMgdGhhdFxyXG4gICAqIHRoZSBkaWFsb2cgaXMgbm93IHJlYWR5LlxyXG4gICAqL1xyXG4gIGRpYWxvZ09wZW5lZChkaWFsb2dPcGVuRXZlbnQ6IERpYWxvZ09wZW5TdGFydEV2ZW50PGFueT4sIGRpYWxvZ0lkOiBzdHJpbmcpIHtcclxuICAgIGRpYWxvZ09wZW5FdmVudC5kaWFsb2dJZCA9IGRpYWxvZ0lkO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBkaWFsb2cgaGFzIGNsb3NlZCAoYWZ0ZXIgYW5pbWF0aW9uIGRlbGF5KSBhbmQgZW1pdHRlZCBhbiBldmVudCB0byB0ZWxsIHRoZSBob3N0aW5nIGNvbXBvbmVudC5cclxuICAgKiBXZSBoYW5kbGUgdGhlIGV2ZW50IGFuZCBwdW1wIGEgbWF0Y2hpbmcgRGlhbG9nQ2xvc2VFdmVudCBzbyB0aGF0IGFueWJvZHkgd2hvIGNhcmVzIGNhbiBrbm93IHRoYXQgdGhlXHJcbiAgICogZGlhbG9nIGluc3RhbmNlIHJlZmVyZW5jZWQgYnkgZGlhbG9nT3BlbkV2ZW50LmV2ZW50SWQgaXMgZ29uZSBub3cuIFdlIHJlbW92ZSBpdCBmcm9tIG91ciBsaXN0IG9mXHJcbiAgICogYWN0aXZlIGRpYWxvZ3Mgd2hpY2ggcHVsbHMgaXQgb3V0IG9mIHRoZSBET00gdG9vXHJcbiAgICovXHJcbiAgZGlhbG9nQ2xvc2VkKGRpYWxvZ09wZW5FdmVudDogRGlhbG9nT3BlblN0YXJ0RXZlbnQ8YW55Pikge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmFjdGl2ZURpYWxvZ0V2ZW50cy5maW5kSW5kZXgoZCA9PiBkID09PSBkaWFsb2dPcGVuRXZlbnQpO1xyXG4gICAgXHJcbiAgICBpZihpbmRleCA+PTApe1xyXG4gICAgICB0aGlzLmFjdGl2ZURpYWxvZ0V2ZW50cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|