@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
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewChild, HostBinding } 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 ButtonComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
/**
|
|
8
|
+
* Is the button disabled?
|
|
9
|
+
*/
|
|
10
|
+
this.disabled = false;
|
|
11
|
+
/**
|
|
12
|
+
* The tabindex of the control
|
|
13
|
+
*/
|
|
14
|
+
this.tabindex = 0;
|
|
15
|
+
/**
|
|
16
|
+
* The type of button
|
|
17
|
+
*/
|
|
18
|
+
this.type = "common";
|
|
19
|
+
/**
|
|
20
|
+
* The pending status of the control, can be used to provide feedback to the user that something is in process or (in combination with `[pendingIcon]`) some other status, e.g success.
|
|
21
|
+
*/
|
|
22
|
+
this.pending = false;
|
|
23
|
+
/** The icon to display when the button is in the pending state. Defaults to 'icon-ui-loading' */
|
|
24
|
+
this.pendingIcon = 'icon-loading';
|
|
25
|
+
/**
|
|
26
|
+
* If true, the button element's type will be set to submit so that hitting "enter"
|
|
27
|
+
* on a form will trigger the button's action.
|
|
28
|
+
*/
|
|
29
|
+
this.isSubmit = false;
|
|
30
|
+
/** Focuses the button on init when set to true */
|
|
31
|
+
this.autofocus = false;
|
|
32
|
+
/**
|
|
33
|
+
* Emit an event when the button element is clicked (not the icon)
|
|
34
|
+
*/
|
|
35
|
+
this.clicked = new EventEmitter();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Ensure label or icon is set
|
|
39
|
+
*
|
|
40
|
+
*/
|
|
41
|
+
ngOnInit() {
|
|
42
|
+
if (!this.label && !this.icon && !this.customTemplate) {
|
|
43
|
+
throw new Error('ButtonComponent requires an icon, a label, or both');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
ngAfterViewInit() {
|
|
47
|
+
if (this.autofocus) {
|
|
48
|
+
this.focus();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Event handler for click event on the button element.
|
|
53
|
+
* Blur the button so focus style does not persist
|
|
54
|
+
*
|
|
55
|
+
*/
|
|
56
|
+
onClick(event) {
|
|
57
|
+
if (this.pending || this.disabled) {
|
|
58
|
+
event.stopImmediatePropagation();
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
this.clicked.emit(event);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
focus() {
|
|
65
|
+
this.buttonElement.nativeElement.focus();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
+
ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ButtonComponent, selector: "ec-button", inputs: { id: "id", disabled: "disabled", icon: "icon", label: "label", badge: "badge", tabindex: "tabindex", type: "type", pending: "pending", pendingIcon: "pendingIcon", customTemplate: "customTemplate", isSubmit: "isSubmit", autofocus: "autofocus" }, outputs: { clicked: "clicked" }, host: { properties: { "attr.id": "this.id" } }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["element"], descendants: true, static: true }], ngImport: i0, template: "<button id=\"{{id}}_button\"\r\n class=\"ec-button-{{customTemplate ? 'custom' : type}}\"\r\n [class.has-badge]=\"badge !== undefined\"\r\n tabindex=\"{{tabindex}}\"\r\n [type]=\"type === 'submit' || isSubmit ? 'submit' : 'button'\"\r\n [disabled]=\"disabled\"\r\n (click)=\"onClick($event)\"\r\n #element\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <ng-container *ngIf=\"customTemplate; else defaultTemplate\">\r\n <ng-container *ngTemplateOutlet=\"customTemplate\"></ng-container>\r\n </ng-container>\r\n</button>\r\n\r\n<ng-template #defaultTemplate>\r\n <!-- Hidden when the button is not pending -->\r\n <div class=\"pending-container\" *ngIf=\"pending\">\r\n <i class=\"ec-icon {{pendingIcon}}\" id=\"{{id}}_pending\"></i>\r\n </div>\r\n\r\n <i class=\"ec-icon {{icon}}\" id=\"{{id}}_icon\" *ngIf=\"icon\"></i>\r\n\r\n <ng-container *ngIf=\"label\">\r\n <span id=\"{{id}}_label\" class=\"label\">{{label | translate}}</span>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"badge !== undefined\">\r\n <span id=\"{{id}}_badge\" class=\"badge\">{{badge}}</span>\r\n </ng-container>\r\n</ng-template>", 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{color:var(--ec-color-primary-dark);font-size:var(--ec-font-size-action);font-family:var(--ec-font-family);padding:0;margin:0;display:inline-block;-webkit-appearance:none;vertical-align:top}:host(.font-size-inherit){font-size:inherit}:host(.font-size-inherit) button{font-size:inherit}:host(.text-left) button{justify-content:flex-start}:host(.text-right) button{justify-content:flex-end}:host(.active) .ec-button-icon,:host(.active) .ec-button-text,:host(.active) .ec-button-link,:host(.active) .ec-button-danger-text,:host(.active) .ec-button-custom,:host(.active) .ec-button-secondary{background-color:var(--ec-background-color-hover)}:host(.active) button:focus{border-color:transparent;box-shadow:none}:host(.active) .ec-button-secondary:focus{border-color:var(--ec-border-color-legacy)}:host(.d-block) button{width:100%}:host(.border-0) button:not(:focus){border-color:transparent}:host(.is-action-icon) .ec-button-icon{color:var(--ec-color-interactive)}:host(.is-success) .ec-button-icon,:host(.is-success) .ec-button-secondary,:host(.is-success) .ec-button-text{color:var(--ec-color-success)}:host(.is-error) .ec-button-icon,:host(.is-error) .ec-button-secondary,:host(.is-error) .ec-button-text{color:var(--ec-color-danger)}:host-context(.btn-stack) button{height:1rem}:host-context(.btn-stack) .ec-icon{width:calc(var(--ec-font-size-icon) * .625);height:calc(var(--ec-font-size-icon) * .625)}:host-context(.actions-col) button{border-radius:0}.ec-button-primary,.ec-button-submit{background-color:#cfd856;border-color:#c1cd23;color:var(--ec-color-primary-dark)}.ec-button-primary:active:enabled,.ec-button-submit:active:enabled{background-color:#c1cd23;color:var(--ec-color-primary-dark)}.ec-button-primary .ec-icon,.ec-button-submit .ec-icon{color:var(--ec-button-color-icon, var(--ec-color-icon))}.ec-button-secondary{background-color:var(--ec-background-color);border-color:var(--ec-border-color-legacy);color:var(--ec-color-primary-dark)}.ec-button-secondary:active:enabled{background-color:var(--ec-background-color);color:var(--ec-color-primary-dark)}.ec-button-secondary .ec-icon{color:var(--ec-button-color-icon, var(--ec-color-icon))}.ec-button-common{background-color:#2d9ab8;border-color:#0084a9;color:var(--ec-color-primary-light)}.ec-button-common .ec-icon{color:var(--ec-button-color-icon, inherit)}.ec-button-common:active:enabled{background-color:#0084a9;border-color:#005f7a}.ec-button-icon{background-color:transparent;color:var(--ec-color-icon);width:2rem;padding:0}.ec-button-icon .ec-icon{height:1rem;margin:0;padding:0;color:var(--ec-button-color-icon, var(--ec-color-icon))}.ec-button-icon:hover{background-color:#bfe0e9}.ec-button-icon:disabled{background-color:transparent;border-color:transparent}.ec-button-icon:disabled .ec-icon{opacity:.5}.ec-button-icon.has-badge{width:auto;min-width:2rem;padding-right:0;padding-left:.375rem}.ec-button-icon .badge{margin-left:-.5rem}.ec-button-text{background-color:transparent;color:var(--ec-color-primary-dark)}.ec-button-text .ec-icon{color:var(--ec-button-color-icon, var(--ec-color-secondary-dark))}.ec-button-text:active:enabled{background-color:transparent;color:var(--ec-color-primary-dark)}.ec-button-text:disabled{background-color:transparent;border-color:transparent}.ec-button-link{background-color:transparent;color:var(--ec-color-interactive)}.ec-button-link .ec-icon{color:var(--ec-button-color-icon, inherit)}.ec-button-link:active:enabled{background-color:transparent;color:var(--ec-color-interactive)}.ec-button-link:disabled{background-color:transparent;border-color:transparent}.ec-button-danger{background-color:var(--ec-color-danger);border-color:#e33436;color:var(--ec-color-primary-light)}.ec-button-danger .ec-icon{color:var(--ec-button-color-icon, inherit)}.ec-button-danger:active:enabled{background-color:#e33436}.ec-button-danger-text{background-color:transparent;color:var(--ec-color-danger)}.ec-button-danger-text .ec-icon{color:var(--ec-button-color-icon, inherit)}.ec-button-danger-text:active:enabled{background-color:transparent;color:var(--ec-color-danger)}.ec-button-danger-text:disabled{background-color:transparent;border-color:transparent}.ec-button-custom{padding:0;background-color:transparent;height:auto}.ec-button-custom:disabled{background-color:transparent;border:0}button{height:2rem;line-height:1.25;padding:.3125rem .5rem;align-items:center;background-color:var(--ec-background-color);display:flex;cursor:pointer;font-size:var(--ec-font-size-action);line-height:1.25rem;justify-content:center;border:.0625rem solid transparent;border-radius:var(--ec-border-radius);position:relative}button.is-selected,button.is-highlighted{background-color:#d9edf2}button:focus{border-color:var(--ec-color-interactive);box-shadow:0 0 0 .0625rem var(--ec-color-interactive);position:relative;z-index:1;outline:none}button:active{background-color:var(--ec-color-interactive);color:var(--ec-color-primary-light)}button:disabled,button.is-disabled{background-color:var(--ec-background-color-disabled);border-color:var(--ec-border-color-legacy);color:var(--ec-color-secondary-dark);opacity:.65;cursor:default}button .label{align-items:center;display:flex;flex:auto}button .ec-icon{flex:0 0 auto}button .ec-icon+.label{margin:0 .375rem}button .label{white-space:nowrap;justify-content:center}button .ec-icon+.label{flex:none;margin-left:.25rem}button.has-badge{padding-right:.0625rem}:host(.textbox-group-btn-right){position:relative}:host(.textbox-group-btn-right) button{padding-left:.4375rem;padding-right:.4375rem;border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.badge{border:.125rem solid #ffffff;display:inline-block;line-height:.875rem;color:var(--ec-color-primary-light);text-align:center;vertical-align:baseline;white-space:nowrap;font-size:.625rem;font-weight:700;padding:0 .25rem;border-radius:.5625rem;min-width:1rem;background-color:#7e579b;margin-left:-.25rem;margin-top:-.75rem}:host(.is-tab) button{border-radius:var(--ec-border-radius);align-items:center;border:1px solid transparent;color:var(--ec-color-secondary-dark);cursor:pointer;font-size:var(--ec-font-size-label);display:flex;height:1.5rem;min-width:1.5rem;padding-left:.5rem;padding-right:.5rem;justify-content:center}:host(.is-tab) button:hover{color:#354751}:host(.is-tab) button.active{color:#354751;background-color:#d2d7d9}:host(.is-tab) button:focus{outline:none}:host(.is-tab) button:focus:not(.active):not(.is-disabled){border-color:var(--ec-color-interactive);box-shadow:0 0 0 .0625rem var(--ec-color-interactive);position:relative;z-index:1;box-shadow:none}:host(.is-tab) button.is-disabled{color:var(--ec-color-hint-dark);cursor:default}:host(.is-tab) button.ec-button-icon{padding:0;justify-content:center;width:auto}:host(.is-tab) button:hover{background-color:transparent}:host(.is-tab).active button{color:#354751;background-color:#d2d7d9}.pending-container{display:flex;align-items:center;justify-content:center;position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.pending-container>.ec-icon{flex:none;color:inherit}.pending-container~.ec-icon,.pending-container~.label,.pending-container~.badge{opacity:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
71
|
+
type: Component,
|
|
72
|
+
args: [{ selector: 'ec-button', template: "<button id=\"{{id}}_button\"\r\n class=\"ec-button-{{customTemplate ? 'custom' : type}}\"\r\n [class.has-badge]=\"badge !== undefined\"\r\n tabindex=\"{{tabindex}}\"\r\n [type]=\"type === 'submit' || isSubmit ? 'submit' : 'button'\"\r\n [disabled]=\"disabled\"\r\n (click)=\"onClick($event)\"\r\n #element\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <ng-container *ngIf=\"customTemplate; else defaultTemplate\">\r\n <ng-container *ngTemplateOutlet=\"customTemplate\"></ng-container>\r\n </ng-container>\r\n</button>\r\n\r\n<ng-template #defaultTemplate>\r\n <!-- Hidden when the button is not pending -->\r\n <div class=\"pending-container\" *ngIf=\"pending\">\r\n <i class=\"ec-icon {{pendingIcon}}\" id=\"{{id}}_pending\"></i>\r\n </div>\r\n\r\n <i class=\"ec-icon {{icon}}\" id=\"{{id}}_icon\" *ngIf=\"icon\"></i>\r\n\r\n <ng-container *ngIf=\"label\">\r\n <span id=\"{{id}}_label\" class=\"label\">{{label | translate}}</span>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"badge !== undefined\">\r\n <span id=\"{{id}}_badge\" class=\"badge\">{{badge}}</span>\r\n </ng-container>\r\n</ng-template>", 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{color:var(--ec-color-primary-dark);font-size:var(--ec-font-size-action);font-family:var(--ec-font-family);padding:0;margin:0;display:inline-block;-webkit-appearance:none;vertical-align:top}:host(.font-size-inherit){font-size:inherit}:host(.font-size-inherit) button{font-size:inherit}:host(.text-left) button{justify-content:flex-start}:host(.text-right) button{justify-content:flex-end}:host(.active) .ec-button-icon,:host(.active) .ec-button-text,:host(.active) .ec-button-link,:host(.active) .ec-button-danger-text,:host(.active) .ec-button-custom,:host(.active) .ec-button-secondary{background-color:var(--ec-background-color-hover)}:host(.active) button:focus{border-color:transparent;box-shadow:none}:host(.active) .ec-button-secondary:focus{border-color:var(--ec-border-color-legacy)}:host(.d-block) button{width:100%}:host(.border-0) button:not(:focus){border-color:transparent}:host(.is-action-icon) .ec-button-icon{color:var(--ec-color-interactive)}:host(.is-success) .ec-button-icon,:host(.is-success) .ec-button-secondary,:host(.is-success) .ec-button-text{color:var(--ec-color-success)}:host(.is-error) .ec-button-icon,:host(.is-error) .ec-button-secondary,:host(.is-error) .ec-button-text{color:var(--ec-color-danger)}:host-context(.btn-stack) button{height:1rem}:host-context(.btn-stack) .ec-icon{width:calc(var(--ec-font-size-icon) * .625);height:calc(var(--ec-font-size-icon) * .625)}:host-context(.actions-col) button{border-radius:0}.ec-button-primary,.ec-button-submit{background-color:#cfd856;border-color:#c1cd23;color:var(--ec-color-primary-dark)}.ec-button-primary:active:enabled,.ec-button-submit:active:enabled{background-color:#c1cd23;color:var(--ec-color-primary-dark)}.ec-button-primary .ec-icon,.ec-button-submit .ec-icon{color:var(--ec-button-color-icon, var(--ec-color-icon))}.ec-button-secondary{background-color:var(--ec-background-color);border-color:var(--ec-border-color-legacy);color:var(--ec-color-primary-dark)}.ec-button-secondary:active:enabled{background-color:var(--ec-background-color);color:var(--ec-color-primary-dark)}.ec-button-secondary .ec-icon{color:var(--ec-button-color-icon, var(--ec-color-icon))}.ec-button-common{background-color:#2d9ab8;border-color:#0084a9;color:var(--ec-color-primary-light)}.ec-button-common .ec-icon{color:var(--ec-button-color-icon, inherit)}.ec-button-common:active:enabled{background-color:#0084a9;border-color:#005f7a}.ec-button-icon{background-color:transparent;color:var(--ec-color-icon);width:2rem;padding:0}.ec-button-icon .ec-icon{height:1rem;margin:0;padding:0;color:var(--ec-button-color-icon, var(--ec-color-icon))}.ec-button-icon:hover{background-color:#bfe0e9}.ec-button-icon:disabled{background-color:transparent;border-color:transparent}.ec-button-icon:disabled .ec-icon{opacity:.5}.ec-button-icon.has-badge{width:auto;min-width:2rem;padding-right:0;padding-left:.375rem}.ec-button-icon .badge{margin-left:-.5rem}.ec-button-text{background-color:transparent;color:var(--ec-color-primary-dark)}.ec-button-text .ec-icon{color:var(--ec-button-color-icon, var(--ec-color-secondary-dark))}.ec-button-text:active:enabled{background-color:transparent;color:var(--ec-color-primary-dark)}.ec-button-text:disabled{background-color:transparent;border-color:transparent}.ec-button-link{background-color:transparent;color:var(--ec-color-interactive)}.ec-button-link .ec-icon{color:var(--ec-button-color-icon, inherit)}.ec-button-link:active:enabled{background-color:transparent;color:var(--ec-color-interactive)}.ec-button-link:disabled{background-color:transparent;border-color:transparent}.ec-button-danger{background-color:var(--ec-color-danger);border-color:#e33436;color:var(--ec-color-primary-light)}.ec-button-danger .ec-icon{color:var(--ec-button-color-icon, inherit)}.ec-button-danger:active:enabled{background-color:#e33436}.ec-button-danger-text{background-color:transparent;color:var(--ec-color-danger)}.ec-button-danger-text .ec-icon{color:var(--ec-button-color-icon, inherit)}.ec-button-danger-text:active:enabled{background-color:transparent;color:var(--ec-color-danger)}.ec-button-danger-text:disabled{background-color:transparent;border-color:transparent}.ec-button-custom{padding:0;background-color:transparent;height:auto}.ec-button-custom:disabled{background-color:transparent;border:0}button{height:2rem;line-height:1.25;padding:.3125rem .5rem;align-items:center;background-color:var(--ec-background-color);display:flex;cursor:pointer;font-size:var(--ec-font-size-action);line-height:1.25rem;justify-content:center;border:.0625rem solid transparent;border-radius:var(--ec-border-radius);position:relative}button.is-selected,button.is-highlighted{background-color:#d9edf2}button:focus{border-color:var(--ec-color-interactive);box-shadow:0 0 0 .0625rem var(--ec-color-interactive);position:relative;z-index:1;outline:none}button:active{background-color:var(--ec-color-interactive);color:var(--ec-color-primary-light)}button:disabled,button.is-disabled{background-color:var(--ec-background-color-disabled);border-color:var(--ec-border-color-legacy);color:var(--ec-color-secondary-dark);opacity:.65;cursor:default}button .label{align-items:center;display:flex;flex:auto}button .ec-icon{flex:0 0 auto}button .ec-icon+.label{margin:0 .375rem}button .label{white-space:nowrap;justify-content:center}button .ec-icon+.label{flex:none;margin-left:.25rem}button.has-badge{padding-right:.0625rem}:host(.textbox-group-btn-right){position:relative}:host(.textbox-group-btn-right) button{padding-left:.4375rem;padding-right:.4375rem;border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.badge{border:.125rem solid #ffffff;display:inline-block;line-height:.875rem;color:var(--ec-color-primary-light);text-align:center;vertical-align:baseline;white-space:nowrap;font-size:.625rem;font-weight:700;padding:0 .25rem;border-radius:.5625rem;min-width:1rem;background-color:#7e579b;margin-left:-.25rem;margin-top:-.75rem}:host(.is-tab) button{border-radius:var(--ec-border-radius);align-items:center;border:1px solid transparent;color:var(--ec-color-secondary-dark);cursor:pointer;font-size:var(--ec-font-size-label);display:flex;height:1.5rem;min-width:1.5rem;padding-left:.5rem;padding-right:.5rem;justify-content:center}:host(.is-tab) button:hover{color:#354751}:host(.is-tab) button.active{color:#354751;background-color:#d2d7d9}:host(.is-tab) button:focus{outline:none}:host(.is-tab) button:focus:not(.active):not(.is-disabled){border-color:var(--ec-color-interactive);box-shadow:0 0 0 .0625rem var(--ec-color-interactive);position:relative;z-index:1;box-shadow:none}:host(.is-tab) button.is-disabled{color:var(--ec-color-hint-dark);cursor:default}:host(.is-tab) button.ec-button-icon{padding:0;justify-content:center;width:auto}:host(.is-tab) button:hover{background-color:transparent}:host(.is-tab).active button{color:#354751;background-color:#d2d7d9}.pending-container{display:flex;align-items:center;justify-content:center;position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.pending-container>.ec-icon{flex:none;color:inherit}.pending-container~.ec-icon,.pending-container~.label,.pending-container~.badge{opacity:0}\n"] }]
|
|
73
|
+
}], ctorParameters: function () { return []; }, propDecorators: { id: [{
|
|
74
|
+
type: HostBinding,
|
|
75
|
+
args: ['attr.id']
|
|
76
|
+
}, {
|
|
77
|
+
type: Input
|
|
78
|
+
}], disabled: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], icon: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], label: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], badge: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], tabindex: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], type: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], pending: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], pendingIcon: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], customTemplate: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], isSubmit: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], autofocus: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], clicked: [{
|
|
101
|
+
type: Output
|
|
102
|
+
}], buttonElement: [{
|
|
103
|
+
type: ViewChild,
|
|
104
|
+
args: ['element', { static: true }]
|
|
105
|
+
}] } });
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsU0FBUyxFQUFjLFdBQVcsRUFBd0QsTUFBTSxlQUFlLENBQUM7Ozs7QUFnQnpLLE1BQU0sT0FBTyxlQUFlO0lBb0V4QjtRQTVEQTs7V0FFRztRQUNhLGFBQVEsR0FBYSxLQUFLLENBQUM7UUFpQjNDOztXQUVHO1FBQ2EsYUFBUSxHQUFZLENBQUMsQ0FBQztRQUV0Qzs7V0FFRztRQUNhLFNBQUksR0FBZ0IsUUFBUSxDQUFDO1FBRTdDOztXQUVHO1FBQ2EsWUFBTyxHQUFhLEtBQUssQ0FBQztRQUUxQyxpR0FBaUc7UUFDakYsZ0JBQVcsR0FBRyxjQUFjLENBQUM7UUFRN0M7OztXQUdHO1FBQ2EsYUFBUSxHQUFhLEtBQUssQ0FBQztRQUUzQyxrREFBa0Q7UUFDbEMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQzs7V0FFRztRQUNjLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUl0RCxDQUFDO0lBRWpCOzs7T0FHRztJQUNJLFFBQVE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztTQUN6RTtJQUNMLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE9BQU8sQ0FBQyxLQUFVO1FBQ3JCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQy9CLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ3BDO2FBQU07WUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0MsQ0FBQzs7NEdBckdRLGVBQWU7Z0dBQWYsZUFBZSx3ZkNoQjVCLDhzQ0E2QmM7MkZEYkQsZUFBZTtrQkFOM0IsU0FBUzsrQkFDSSxXQUFXOzBFQVdMLEVBQUU7c0JBRGpCLFdBQVc7dUJBQUMsU0FBUzs7c0JBQ3JCLEtBQUs7Z0JBS1UsUUFBUTtzQkFBdkIsS0FBSztnQkFLVSxJQUFJO3NCQUFuQixLQUFLO2dCQUtVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBS1UsS0FBSztzQkFBcEIsS0FBSztnQkFLVSxRQUFRO3NCQUF2QixLQUFLO2dCQUtVLElBQUk7c0JBQW5CLEtBQUs7Z0JBS1UsT0FBTztzQkFBdEIsS0FBSztnQkFHVSxXQUFXO3NCQUExQixLQUFLO2dCQU1VLGNBQWM7c0JBQTdCLEtBQUs7Z0JBTVUsUUFBUTtzQkFBdkIsS0FBSztnQkFHVSxTQUFTO3NCQUF4QixLQUFLO2dCQUtXLE9BQU87c0JBQXZCLE1BQU07Z0JBRXlDLGFBQWE7c0JBQTVELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcywgVGVtcGxhdGVSZWYsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKiBcclxuICogXCJTdWJtaXRcIiBidXR0b24gdHlwZSBpcyBkZXByZWNhdGVkLiBVc2UgdGhlIGlzU3VibWl0IGlucHV0IGluc3RlYWQuXHJcbiAqIFRoaXMgYWxsb3dzIHlvdSB0byBtYWtlIGFueSBidXR0b24gdHlwZSBhIHN1Ym1pdCBidXR0b24uXHJcbiAqIFxyXG4gKiBcIkxpbmtcIiBidXR0b24gdHlwZSBpcyBkZXByZWNhdGVkLiBVc2UgdGhlIExpbmtCdXR0b25Db21wb25lbnQgaW5zdGVhZC5cclxuICovXHJcbmV4cG9ydCB0eXBlIEJ1dHRvblR5cGUgPSBcInByaW1hcnlcIiB8IFwic2Vjb25kYXJ5XCIgfCBcImNvbW1vblwiIHwgXCJpY29uXCIgfCBcImxpbmtcIiB8IFwidGV4dFwiIHwgXCJzdWJtaXRcIiB8IFwiZGFuZ2VyXCIgfCBcImRhbmdlci10ZXh0XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnZWMtYnV0dG9uJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2J1dHRvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIElkIHRvIHNldFxyXG4gICAgICovXHJcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxyXG4gICAgQElucHV0KCkgcHVibGljIGlkPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXMgdGhlIGJ1dHRvbiBkaXNhYmxlZD9cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGljb24gY2xhc3MgZm9yIGEgYnV0dG9uIHRoYXQgaGFzIGFuIGltYWdlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBpY29uPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHRleHQgb24gdGhlIGJ1dHRvblxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZXh0IHRvIHBsYWNlIGluIGEgYmFkZ2UgdG8gdGhlIHJpZ2h0IG9mIHRoZSBidXR0b25cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGJhZGdlPzogc3RyaW5nIHwgbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHRhYmluZGV4IG9mIHRoZSBjb250cm9sXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB0YWJpbmRleD86IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdHlwZSBvZiBidXR0b25cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHR5cGU/OiBCdXR0b25UeXBlID0gXCJjb21tb25cIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBwZW5kaW5nIHN0YXR1cyBvZiB0aGUgY29udHJvbCwgY2FuIGJlIHVzZWQgdG8gcHJvdmlkZSBmZWVkYmFjayB0byB0aGUgdXNlciB0aGF0IHNvbWV0aGluZyBpcyBpbiBwcm9jZXNzIG9yIChpbiBjb21iaW5hdGlvbiB3aXRoIGBbcGVuZGluZ0ljb25dYCkgc29tZSBvdGhlciBzdGF0dXMsIGUuZyBzdWNjZXNzLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgcGVuZGluZz86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogVGhlIGljb24gdG8gZGlzcGxheSB3aGVuIHRoZSBidXR0b24gaXMgaW4gdGhlIHBlbmRpbmcgc3RhdGUuIERlZmF1bHRzIHRvICdpY29uLXVpLWxvYWRpbmcnICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgcGVuZGluZ0ljb24gPSAnaWNvbi1sb2FkaW5nJztcclxuXHJcbiAgICAvKiogXHJcbiAgICAgKiBQcm92aWRlIGEgY3VzdG9tIHRlbXBsYXRlIGZvciB0aGUgYnV0dG9uLiBUaGlzIHdpbGwgb3ZlcnJpZGUgaWNvbiwgbGFiZWwgYW5kIGJhZGdlXHJcbiAgICAgKiBpZiBzcGVjaWZpZWQuIEZvY3VzLCBob3ZlciBhbmQgZGlzYWJsZWQgc3R5bGVzIHN0aWxsIGFwcGx5LlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWYgdHJ1ZSwgdGhlIGJ1dHRvbiBlbGVtZW50J3MgdHlwZSB3aWxsIGJlIHNldCB0byBzdWJtaXQgc28gdGhhdCBoaXR0aW5nIFwiZW50ZXJcIlxyXG4gICAgICogb24gYSBmb3JtIHdpbGwgdHJpZ2dlciB0aGUgYnV0dG9uJ3MgYWN0aW9uLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNTdWJtaXQ/OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEZvY3VzZXMgdGhlIGJ1dHRvbiBvbiBpbml0IHdoZW4gc2V0IHRvIHRydWUgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBhdXRvZm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVtaXQgYW4gZXZlbnQgd2hlbiB0aGUgYnV0dG9uIGVsZW1lbnQgaXMgY2xpY2tlZCAobm90IHRoZSBpY29uKVxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgcHVibGljIGNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnZWxlbWVudCcsIHtzdGF0aWM6IHRydWV9KSBwcm90ZWN0ZWQgYnV0dG9uRWxlbWVudCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVuc3VyZSBsYWJlbCBvciBpY29uIGlzIHNldFxyXG4gICAgICogXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMubGFiZWwgJiYgIXRoaXMuaWNvbiAmJiAhdGhpcy5jdXN0b21UZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0J1dHRvbkNvbXBvbmVudCByZXF1aXJlcyBhbiBpY29uLCBhIGxhYmVsLCBvciBib3RoJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuYXV0b2ZvY3VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCBoYW5kbGVyIGZvciBjbGljayBldmVudCBvbiB0aGUgYnV0dG9uIGVsZW1lbnQuIFxyXG4gICAgICogQmx1ciB0aGUgYnV0dG9uIHNvIGZvY3VzIHN0eWxlIGRvZXMgbm90IHBlcnNpc3RcclxuICAgICAqIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25DbGljayhldmVudDogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGVuZGluZyB8fCB0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpY2tlZC5lbWl0KGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbn0iLCI8YnV0dG9uIGlkPVwie3tpZH19X2J1dHRvblwiXHJcbiAgICAgICAgY2xhc3M9XCJlYy1idXR0b24te3tjdXN0b21UZW1wbGF0ZSA/ICdjdXN0b20nIDogdHlwZX19XCJcclxuICAgICAgICBbY2xhc3MuaGFzLWJhZGdlXT1cImJhZGdlICE9PSB1bmRlZmluZWRcIlxyXG4gICAgICAgIHRhYmluZGV4PVwie3t0YWJpbmRleH19XCJcclxuICAgICAgICBbdHlwZV09XCJ0eXBlID09PSAnc3VibWl0JyB8fCBpc1N1Ym1pdCA/ICdzdWJtaXQnIDogJ2J1dHRvbidcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgI2VsZW1lbnRcclxuICAgICAgICBbYXR0ci5jZGtGb2N1c0luaXRpYWxdPVwiYXV0b2ZvY3VzIHx8IG51bGxcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21UZW1wbGF0ZTsgZWxzZSBkZWZhdWx0VGVtcGxhdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2J1dHRvbj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlPlxyXG4gICAgPCEtLSBIaWRkZW4gd2hlbiB0aGUgYnV0dG9uIGlzIG5vdCBwZW5kaW5nIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInBlbmRpbmctY29udGFpbmVyXCIgKm5nSWY9XCJwZW5kaW5nXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJlYy1pY29uIHt7cGVuZGluZ0ljb259fVwiIGlkPVwie3tpZH19X3BlbmRpbmdcIj48L2k+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8aSBjbGFzcz1cImVjLWljb24ge3tpY29ufX1cIiBpZD1cInt7aWR9fV9pY29uXCIgKm5nSWY9XCJpY29uXCI+PC9pPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPlxyXG4gICAgICAgIDxzcGFuIGlkPVwie3tpZH19X2xhYmVsXCIgY2xhc3M9XCJsYWJlbFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJiYWRnZSAhPT0gdW5kZWZpbmVkXCI+XHJcbiAgICAgICAgPHNwYW4gaWQ9XCJ7e2lkfX1fYmFkZ2VcIiBjbGFzcz1cImJhZGdlXCI+e3tiYWRnZX19PC9zcGFuPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Directive, Input, HostBinding } 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 "./button.component";
|
|
6
|
+
import * as i2 from "ngx-clipboard";
|
|
7
|
+
export class CopyButtonDirective {
|
|
8
|
+
constructor(control, clipboardService) {
|
|
9
|
+
this.control = control;
|
|
10
|
+
this.clipboardService = clipboardService;
|
|
11
|
+
this.copySuccess = false;
|
|
12
|
+
this.copyFailed = false;
|
|
13
|
+
/**
|
|
14
|
+
* Used to unsubscribe when the directive is removed from the DOM
|
|
15
|
+
*/
|
|
16
|
+
this.destroyed = new Subject();
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
this.control.clicked.pipe(takeUntil(this.destroyed)).subscribe(() => {
|
|
20
|
+
this.onClick();
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
ngOnDestroy() {
|
|
24
|
+
this.destroyed.next();
|
|
25
|
+
this.destroyed.unsubscribe();
|
|
26
|
+
}
|
|
27
|
+
onClick() {
|
|
28
|
+
let success = this.clipboardService.copyFromContent(this.copyFormModel?.value);
|
|
29
|
+
let defaultPendingIcon = this.control.pendingIcon;
|
|
30
|
+
if (success) {
|
|
31
|
+
this.copySuccess = true;
|
|
32
|
+
this.control.pendingIcon = 'icon-check';
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.copyFailed = true;
|
|
36
|
+
this.control.pendingIcon = 'icon-cancel';
|
|
37
|
+
}
|
|
38
|
+
this.control.pending = true;
|
|
39
|
+
// After 500ms shut the pending overlay down
|
|
40
|
+
setTimeout(() => {
|
|
41
|
+
this.control.pending = false;
|
|
42
|
+
this.copySuccess = false;
|
|
43
|
+
this.copyFailed = false;
|
|
44
|
+
this.control.pendingIcon = defaultPendingIcon;
|
|
45
|
+
}, 500);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
CopyButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: CopyButtonDirective, deps: [{ token: i1.ButtonComponent }, { token: i2.ClipboardService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
49
|
+
CopyButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: CopyButtonDirective, selector: "[ecCopyButton]", inputs: { copyFormModel: ["ecCopyButton", "copyFormModel"] }, host: { properties: { "class.is-success": "this.copySuccess", "class.is-error": "this.copyFailed" } }, ngImport: i0 });
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: CopyButtonDirective, decorators: [{
|
|
51
|
+
type: Directive,
|
|
52
|
+
args: [{
|
|
53
|
+
selector: '[ecCopyButton]'
|
|
54
|
+
}]
|
|
55
|
+
}], ctorParameters: function () { return [{ type: i1.ButtonComponent }, { type: i2.ClipboardService }]; }, propDecorators: { copyFormModel: [{
|
|
56
|
+
type: Input,
|
|
57
|
+
args: ['ecCopyButton']
|
|
58
|
+
}], copySuccess: [{
|
|
59
|
+
type: HostBinding,
|
|
60
|
+
args: ['class.is-success']
|
|
61
|
+
}], copyFailed: [{
|
|
62
|
+
type: HostBinding,
|
|
63
|
+
args: ['class.is-error']
|
|
64
|
+
}] } });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS1idXR0b24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2J1dHRvbi9jb3B5LWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXdCLFdBQVcsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUkvRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUszQyxNQUFNLE9BQU8sbUJBQW1CO0lBYTlCLFlBQ1MsT0FBd0IsRUFDdkIsZ0JBQWtDO1FBRG5DLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3ZCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFWSixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUN0QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRXpEOztVQUVFO1FBQ00sY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSzdDLENBQUM7SUFFRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUN2QixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0UsSUFBSSxrQkFBa0IsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUUxRCxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztTQUN6QzthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDO1NBQzFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRTVCLDRDQUE0QztRQUM1QyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLGtCQUFrQixDQUFDO1FBQ2hELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7O2dIQXBEVSxtQkFBbUI7b0dBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCO3FJQUlRLGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMsY0FBYztnQkFHbUIsV0FBVztzQkFBbEQsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBQ08sVUFBVTtzQkFBL0MsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkluaXQsIEhvc3RMaXN0ZW5lciwgSG9zdEJpbmRpbmcsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENsaXBib2FyZFNlcnZpY2UgfSBmcm9tICduZ3gtY2xpcGJvYXJkJztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tlY0NvcHlCdXR0b25dJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29weUJ1dHRvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KCdlY0NvcHlCdXR0b24nKSBcclxuICBwdWJsaWMgY29weUZvcm1Nb2RlbCE6IEFic3RyYWN0Q29udHJvbDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1zdWNjZXNzJykgcHVibGljIGNvcHlTdWNjZXNzID0gZmFsc2U7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1lcnJvcicpIHB1YmxpYyBjb3B5RmFpbGVkID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICogVXNlZCB0byB1bnN1YnNjcmliZSB3aGVuIHRoZSBkaXJlY3RpdmUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBET01cclxuICAqL1xyXG4gIHByaXZhdGUgZGVzdHJveWVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29udHJvbDogQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBjbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250cm9sLmNsaWNrZWQucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxyXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLm9uQ2xpY2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DbGljaygpIHtcclxuICAgIGxldCBzdWNjZXNzID0gdGhpcy5jbGlwYm9hcmRTZXJ2aWNlLmNvcHlGcm9tQ29udGVudCh0aGlzLmNvcHlGb3JtTW9kZWw/LnZhbHVlKTtcclxuICAgIGxldCBkZWZhdWx0UGVuZGluZ0ljb246IHN0cmluZyA9IHRoaXMuY29udHJvbC5wZW5kaW5nSWNvbjtcclxuXHJcbiAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICB0aGlzLmNvcHlTdWNjZXNzID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jb250cm9sLnBlbmRpbmdJY29uID0gJ2ljb24tY2hlY2snO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb3B5RmFpbGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jb250cm9sLnBlbmRpbmdJY29uID0gJ2ljb24tY2FuY2VsJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbnRyb2wucGVuZGluZyA9IHRydWU7XHJcblxyXG4gICAgLy8gQWZ0ZXIgNTAwbXMgc2h1dCB0aGUgcGVuZGluZyBvdmVybGF5IGRvd25cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNvbnRyb2wucGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNvcHlTdWNjZXNzID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY29weUZhaWxlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNvbnRyb2wucGVuZGluZ0ljb24gPSBkZWZhdWx0UGVuZGluZ0ljb247XHJcbiAgICB9LCA1MDApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { FormControlBase } from "../form-control-base";
|
|
3
|
+
import { takeUntil, distinctUntilChanged } from 'rxjs/operators';
|
|
4
|
+
import { Subject, merge } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../core/validation-message.service";
|
|
7
|
+
import * as i2 from "../../shared/form-group.helper";
|
|
8
|
+
import * as i3 from "@angular/common";
|
|
9
|
+
import * as i4 from "@angular/forms";
|
|
10
|
+
import * as i5 from "@ngx-translate/core";
|
|
11
|
+
export class CheckboxComponent extends FormControlBase {
|
|
12
|
+
constructor(validationMessageService, formGroupHelper) {
|
|
13
|
+
super(validationMessageService, formGroupHelper);
|
|
14
|
+
this.validationMessageService = validationMessageService;
|
|
15
|
+
this.formGroupHelper = formGroupHelper;
|
|
16
|
+
/**
|
|
17
|
+
* The name of the checkbox input element
|
|
18
|
+
*/
|
|
19
|
+
this.name = '';
|
|
20
|
+
/**
|
|
21
|
+
* Determines whether to ignore or include disabled dependent checkboxes in the check to determine the checkbox state.
|
|
22
|
+
*/
|
|
23
|
+
this.ignoreDisabledDependents = true;
|
|
24
|
+
/**
|
|
25
|
+
* If the checkbox is a master checkbox (i.e. it has a dependentCheckboxesGroup),
|
|
26
|
+
* indeterminate is true if there are some checked dependents and some unchecked dependents.
|
|
27
|
+
*/
|
|
28
|
+
this.indeterminate = false;
|
|
29
|
+
//Used to prevent valueChanges loops in the master checkbox and dependent checkboxes value changes.
|
|
30
|
+
this.ignoreCall = false;
|
|
31
|
+
/** Fired whenever the dependent checkboxes are changed to clear out subscriptions to the previous dependents */
|
|
32
|
+
this.resetDependentSubscriptions = new Subject();
|
|
33
|
+
}
|
|
34
|
+
ngAfterViewInit() {
|
|
35
|
+
if (this.autofocus) {
|
|
36
|
+
this.inputElement.nativeElement.focus();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
ngOnChanges(changes) {
|
|
40
|
+
if (changes.dependentCheckboxesGroup) {
|
|
41
|
+
this.setupDependents();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
dispatchEvent(event) {
|
|
45
|
+
if (event.type === 'click' && !this.formModel.disabled) {
|
|
46
|
+
this.formModel.patchValue(!this.formModel.value);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create watchers that allow the master and dependent checkbox states to stay in sync as the user interacts with them.
|
|
51
|
+
* Dependents can update the master when their values change and the master updates dependents when the value changes.
|
|
52
|
+
*/
|
|
53
|
+
setupDependents() {
|
|
54
|
+
if (!this.dependentCheckboxesGroup) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
// Remove any subscriptions to previous dependents
|
|
58
|
+
this.resetDependentSubscriptions.next();
|
|
59
|
+
//Extract the values (i.e. the checkboxes) from the FormGroup controls key-value map and return them.
|
|
60
|
+
let dependentCheckboxes = Object.values(this.dependentCheckboxesGroup.controls);
|
|
61
|
+
this.updateMasterState(dependentCheckboxes);
|
|
62
|
+
//When the master value changes, we set all its dependents to that value.
|
|
63
|
+
//We also set indeterminate to false since we know that all dependents will either be checked or unchecked.
|
|
64
|
+
this.formModel.valueChanges.pipe(distinctUntilChanged(), takeUntil(merge(this.componentDestroyed, this.resetDependentSubscriptions))).subscribe((value) => {
|
|
65
|
+
if (!this.ignoreCall) {
|
|
66
|
+
this.ignoreCall = true; //Ignore any value changes calls on the dependents to prevent a loop.
|
|
67
|
+
dependentCheckboxes.forEach(checkbox => {
|
|
68
|
+
if (!checkbox.disabled || !this.ignoreDisabledDependents) {
|
|
69
|
+
checkbox.setValue(value);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
this.indeterminate = false;
|
|
73
|
+
this.ignoreCall = false;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
//When a dependent value changes, we need to reevaluate the master state.
|
|
77
|
+
//We are subscribing to the form models directly instead of the entire group because we found that adding checkboxes to
|
|
78
|
+
// more than one form group causes only the last group to emit valueChanges events.
|
|
79
|
+
//That prevented combined row-master and table-master setups from working properly.
|
|
80
|
+
dependentCheckboxes.forEach(checkbox => {
|
|
81
|
+
checkbox.valueChanges.pipe(distinctUntilChanged(), takeUntil(merge(this.componentDestroyed, this.resetDependentSubscriptions))).subscribe((value) => {
|
|
82
|
+
if (value !== true && value !== false) {
|
|
83
|
+
console.error(`The value ${value} is not true or false, which are the only supported values for FormControls in the dependentCheckboxesGroup`);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (!this.ignoreCall) {
|
|
87
|
+
this.ignoreCall = true; //Ignore any value changes calls on the master to prevent a loop.
|
|
88
|
+
this.updateMasterState(dependentCheckboxes);
|
|
89
|
+
this.ignoreCall = false;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* If all dependents are true, the master should be true and determinate.
|
|
96
|
+
* If all dependents are false, the master should be false and determinate.
|
|
97
|
+
* If some dependents are true and some dependents are false, the master should be false and indeterminate.
|
|
98
|
+
*
|
|
99
|
+
* If ignoreDisabledDependents is true, does not include the disabled dependents when checking values
|
|
100
|
+
*/
|
|
101
|
+
updateMasterState(dependentCheckboxes) {
|
|
102
|
+
let dependentsToCheck = [];
|
|
103
|
+
if (this.ignoreDisabledDependents) {
|
|
104
|
+
dependentsToCheck = dependentCheckboxes.filter(checkbox => checkbox.enabled);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
dependentsToCheck = dependentCheckboxes;
|
|
108
|
+
}
|
|
109
|
+
let isTrue = (checkbox) => { return checkbox.value === true; };
|
|
110
|
+
if (dependentsToCheck.every(isTrue)) {
|
|
111
|
+
this.formModel.setValue(true);
|
|
112
|
+
this.indeterminate = false;
|
|
113
|
+
}
|
|
114
|
+
else if (dependentsToCheck.some(isTrue)) {
|
|
115
|
+
this.formModel.setValue(false);
|
|
116
|
+
this.indeterminate = true;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this.formModel.setValue(false);
|
|
120
|
+
this.indeterminate = false;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: CheckboxComponent, deps: [{ token: i1.ValidationMessageService }, { token: i2.FormGroupHelper }], target: i0.ɵɵFactoryTarget.Component });
|
|
125
|
+
CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: CheckboxComponent, selector: "ec-checkbox", inputs: { name: "name", dependentCheckboxesGroup: "dependentCheckboxesGroup", ignoreDisabledDependents: "ignoreDisabledDependents" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["checkboxInput"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"control\">\r\n <label class=\"checkbox\"\r\n [ngClass]=\"{'is-disabled': formModel.disabled, 'no-label': !label, 'is-readonly': readonly}\">\r\n <input id=\"{{id}}_input\"\r\n #checkboxInput\r\n class='input'\r\n [class.indeterminate]=\"indeterminate\"\r\n [attr.id]=\"inputId\"\r\n [attr.name]=\"name\"\r\n type=\"checkbox\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <i class=\"ec-icon icon-check\"></i>\r\n <span id=\"{{id}}_label\"\r\n *ngIf=\"label\"\r\n class=\"label\"\r\n [innerHtml]=\"label | translate\">\r\n </span>\r\n </label>\r\n</div>\r\n", 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{color:var(--ec-color-primary-dark);font-family:var(--ec-font-family);font-size:var(--ec-font-size-body);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select{border-color:transparent;background-color:#1a1a231f;background-clip:border-box;background-image:none;color:var(--ec-color-primary-dark);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-background-color-caution);background-image:url('data:image/svg+xml;charset=utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"rgba(26, 26, 35, 0.66)\" d=\"M20.21 20.21h-8.42L10.95 0h10.1l-.84 20.21zm-8.42 3.37h8.42V32h-8.42z\"/></svg>');background-repeat:no-repeat;background-position:.25rem center;background-size:1rem,1rem;padding-left:1.5rem}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:not(:focus),:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:not(:focus){border-color:var(--ec-color-caution)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-background-color-caution)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-color-caution)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host(.w-auto){width:auto}.checkbox{cursor:pointer;display:inline-flex;margin-bottom:0;position:relative}.checkbox.is-disabled{cursor:default}.input{margin-top:.5rem;opacity:0;position:absolute;z-index:-1}.input:not(:checked)+.ec-icon{color:var(--ec-border-color)}.input:not(:checked)+.ec-icon:before{display:none}.input.indeterminate+.ec-icon,.input:indeterminate+.ec-icon{color:var(--ec-color-interactive)}.input.indeterminate+.ec-icon:before,.input:indeterminate+.ec-icon:before{content:\"\";background-color:currentColor;display:block;width:10px;height:3px}.input:focus+.ec-icon{color:var(--ec-color-interactive);box-shadow:0 0 0 .0625rem var(--ec-color-interactive)}.input:disabled+.ec-icon{color:var(--ec-color-secondary-dark);background-color:var(--ec-background-color-disabled);border-color:var(--ec-border-color);opacity:.65}.input:disabled~.label{color:var(--ec-color-secondary-dark);opacity:.65}.ec-icon{background-color:var(--ec-background-color);background-clip:padding-box;border:1px solid currentColor;color:var(--ec-color-interactive);margin-top:.5rem;flex:none;pointer-events:none;display:inline-flex;align-items:center;justify-content:center;height:1em;width:1em;border-radius:.125rem}.ec-icon:before{font-size:.6875em}.label{height:2rem;line-height:1.25;padding:.375rem .5rem;padding-left:0;padding-right:0;margin-left:.5rem;min-height:2rem;height:auto}.checkbox.is-readonly{pointer-events:none}.checkbox.is-readonly .input{opacity:0}.checkbox.is-readonly .ec-icon{background-color:#1a1a231f;border:0}.checkbox.is-readonly .label,.checkbox.is-readonly .ec-icon{opacity:1;color:var(--ec-color-primary-dark)}.no-label .input,.no-label .icon-check{margin-top:0}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
127
|
+
type: Component,
|
|
128
|
+
args: [{ selector: 'ec-checkbox', template: "<div class=\"control\">\r\n <label class=\"checkbox\"\r\n [ngClass]=\"{'is-disabled': formModel.disabled, 'no-label': !label, 'is-readonly': readonly}\">\r\n <input id=\"{{id}}_input\"\r\n #checkboxInput\r\n class='input'\r\n [class.indeterminate]=\"indeterminate\"\r\n [attr.id]=\"inputId\"\r\n [attr.name]=\"name\"\r\n type=\"checkbox\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <i class=\"ec-icon icon-check\"></i>\r\n <span id=\"{{id}}_label\"\r\n *ngIf=\"label\"\r\n class=\"label\"\r\n [innerHtml]=\"label | translate\">\r\n </span>\r\n </label>\r\n</div>\r\n", 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{color:var(--ec-color-primary-dark);font-family:var(--ec-font-family);font-size:var(--ec-font-size-body);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select{border-color:transparent;background-color:#1a1a231f;background-clip:border-box;background-image:none;color:var(--ec-color-primary-dark);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-background-color-caution);background-image:url('data:image/svg+xml;charset=utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"rgba(26, 26, 35, 0.66)\" d=\"M20.21 20.21h-8.42L10.95 0h10.1l-.84 20.21zm-8.42 3.37h8.42V32h-8.42z\"/></svg>');background-repeat:no-repeat;background-position:.25rem center;background-size:1rem,1rem;padding-left:1.5rem}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:not(:focus),:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:not(:focus){border-color:var(--ec-color-caution)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-background-color-caution)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-color-caution)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host(.w-auto){width:auto}.checkbox{cursor:pointer;display:inline-flex;margin-bottom:0;position:relative}.checkbox.is-disabled{cursor:default}.input{margin-top:.5rem;opacity:0;position:absolute;z-index:-1}.input:not(:checked)+.ec-icon{color:var(--ec-border-color)}.input:not(:checked)+.ec-icon:before{display:none}.input.indeterminate+.ec-icon,.input:indeterminate+.ec-icon{color:var(--ec-color-interactive)}.input.indeterminate+.ec-icon:before,.input:indeterminate+.ec-icon:before{content:\"\";background-color:currentColor;display:block;width:10px;height:3px}.input:focus+.ec-icon{color:var(--ec-color-interactive);box-shadow:0 0 0 .0625rem var(--ec-color-interactive)}.input:disabled+.ec-icon{color:var(--ec-color-secondary-dark);background-color:var(--ec-background-color-disabled);border-color:var(--ec-border-color);opacity:.65}.input:disabled~.label{color:var(--ec-color-secondary-dark);opacity:.65}.ec-icon{background-color:var(--ec-background-color);background-clip:padding-box;border:1px solid currentColor;color:var(--ec-color-interactive);margin-top:.5rem;flex:none;pointer-events:none;display:inline-flex;align-items:center;justify-content:center;height:1em;width:1em;border-radius:.125rem}.ec-icon:before{font-size:.6875em}.label{height:2rem;line-height:1.25;padding:.375rem .5rem;padding-left:0;padding-right:0;margin-left:.5rem;min-height:2rem;height:auto}.checkbox.is-readonly{pointer-events:none}.checkbox.is-readonly .input{opacity:0}.checkbox.is-readonly .ec-icon{background-color:#1a1a231f;border:0}.checkbox.is-readonly .label,.checkbox.is-readonly .ec-icon{opacity:1;color:var(--ec-color-primary-dark)}.no-label .input,.no-label .icon-check{margin-top:0}\n"] }]
|
|
129
|
+
}], ctorParameters: function () { return [{ type: i1.ValidationMessageService }, { type: i2.FormGroupHelper }]; }, propDecorators: { name: [{
|
|
130
|
+
type: Input
|
|
131
|
+
}], dependentCheckboxesGroup: [{
|
|
132
|
+
type: Input
|
|
133
|
+
}], ignoreDisabledDependents: [{
|
|
134
|
+
type: Input
|
|
135
|
+
}], inputElement: [{
|
|
136
|
+
type: ViewChild,
|
|
137
|
+
args: ['checkboxInput', { static: true }]
|
|
138
|
+
}] } });
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUd6SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBVXRDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO0lBd0NwRCxZQUNZLHdCQUFrRCxFQUNsRCxlQUFnQztRQUUxQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFIdkMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUF4QzVDOztXQUVHO1FBQ2EsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQWFsQzs7V0FFRztRQUNhLDZCQUF3QixHQUFZLElBQUksQ0FBQztRQU96RDs7O1dBR0c7UUFDSSxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUV0QyxtR0FBbUc7UUFDM0YsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVwQyxnSEFBZ0g7UUFDeEcsZ0NBQTJCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQU9wRCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsd0JBQXdCLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFZO1FBQy9CLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtZQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZUFBZTtRQUNuQixJQUFHLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQUMsT0FBTTtTQUFDO1FBRTNDLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEMsc0dBQXNHO1FBQ3RHLElBQUksbUJBQW1CLEdBQXNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRW5HLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTVDLHlFQUF5RTtRQUN6RSwyR0FBMkc7UUFDM0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUM5QixvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUM1RSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFO1lBQzdCLElBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLHFFQUFxRTtnQkFDN0YsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTt3QkFDeEQsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDMUI7Z0JBQ0gsQ0FBQyxDQUFDLENBQUE7Z0JBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFRix5RUFBeUU7UUFDekUsd0hBQXdIO1FBQ3hILHFGQUFxRjtRQUNyRixtRkFBbUY7UUFDbkYsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25DLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN4QixvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUM1RSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNwQixJQUFHLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRTtvQkFDbEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLEtBQUssNkdBQTZHLENBQUMsQ0FBQztvQkFDL0ksT0FBTztpQkFDVjtnQkFDRCxJQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQyxpRUFBaUU7b0JBQ3pGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO29CQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztpQkFDekI7WUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVEOzs7Ozs7TUFNRTtJQUNNLGlCQUFpQixDQUFDLG1CQUFzQztRQUM5RCxJQUFJLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNqQyxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUU7YUFBTTtZQUNMLGlCQUFpQixHQUFHLG1CQUFtQixDQUFDO1NBQ3pDO1FBRUQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxRQUF5QixFQUFFLEVBQUUsR0FBRSxPQUFPLFFBQVEsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFBLENBQUEsQ0FBQyxDQUFDO1FBQzdFLElBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQzlCO2FBQU0sSUFBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDN0I7YUFBTTtZQUNILElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQzs7OEdBbEpVLGlCQUFpQjtrR0FBakIsaUJBQWlCLGtXQ2pCOUIsOHdCQXFCQTsyRkRKYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsYUFBYTs2SUFVUCxJQUFJO3NCQUFuQixLQUFLO2dCQVdVLHdCQUF3QjtzQkFBdkMsS0FBSztnQkFLVSx3QkFBd0I7c0JBQXZDLEtBQUs7Z0JBS2tELFlBQVk7c0JBQW5FLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cEhlbHBlciB9IGZyb20gJy4uLy4uL3NoYXJlZC9mb3JtLWdyb3VwLmhlbHBlcic7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sQmFzZSB9IGZyb20gXCIuLi9mb3JtLWNvbnRyb2wtYmFzZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ2xpY2thYmxlRWxlbWVudCB9IGZyb20gJy4uLy4uL3NoYXJlZC9kaXJlY3RpdmVzL2NsaWNrLWFyZWEtZm9yL2NsaWNrLWFyZWEtZm9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgdHlwZSBDaGVja2JveFN0YXRlID0gJ3VuY2hlY2tlZCcgfCAnaW5kZXRlcm1pbmF0ZScgfCAnY2hlY2tlZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWNoZWNrYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBleHRlbmRzIEZvcm1Db250cm9sQmFzZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENsaWNrYWJsZUVsZW1lbnQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjaGVja2JveCBpbnB1dCBlbGVtZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG5hbWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBBbiBvYmplY3Qgd2l0aCBhIGNvbGxlY3Rpb24gb2YgRm9ybUNvbnRyb2xzIHdobyBjYW4gb25seSBoYXZlIGEgdmFsdWUgb2YgdHJ1ZSBvciBmYWxzZS5cclxuICAgKiBBIEZvcm1Hcm91cCBvciBGb3JtQXJyYXkgd29yayBmaW5lLCBvciBhIGN1c3RvbSBvYmplY3QgcmVmZXJlbmNlIGlzIHBvc3NpYmxlIHRvb1xyXG4gICAqIFRoZSBtYXN0ZXIgY2hlY2tib3ggd2lsbCByZWF0dGFjaCB0byBkZXBlbmRlbnQgY29udHJvbHMgYW55IHRpbWUgdGhpcyByZWZlcmVuY2UgY2hhbmdlc1xyXG4gICAqIFRoZSBjb250cm9scyBzaG91bGQgYmUgZmxhdCAoaS5lLiBpZiB1c2luZyBhIEZvcm1Hcm91cCB0aGVuIGl0IGNhbm5vdCBoYXZlIG5lc3RlZCBGb3JtR3JvdXBzIHdpdGhpbiBpdCkuXHJcbiAgICogXHJcbiAgICogRm9yIGV4YW1wbGU6IFxyXG4gICAqIGRlcGVuZGVudENoZWNrYm94ZXNHcm91cCA9IG5ldyBGb3JtR3JvdXAoe2NoaWxkMTogbmV3IEZvcm1Db250cm9sKGZhbHNlKSwgY2hpbGQyOiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLCBjaGlsZDM6IG5ldyBGb3JtQ29udHJvbChmYWxzZSl9KVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkZXBlbmRlbnRDaGVja2JveGVzR3JvdXA/OiB7Y29udHJvbHM6IEFic3RyYWN0Q29udHJvbFtdIHwge1trZXk6IHN0cmluZ106IEFic3RyYWN0Q29udHJvbH19O1xyXG5cclxuICAvKipcclxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gaWdub3JlIG9yIGluY2x1ZGUgZGlzYWJsZWQgZGVwZW5kZW50IGNoZWNrYm94ZXMgaW4gdGhlIGNoZWNrIHRvIGRldGVybWluZSB0aGUgY2hlY2tib3ggc3RhdGUuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlnbm9yZURpc2FibGVkRGVwZW5kZW50czogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgY2hlY2tib3ggaW5wdXQgY29udHJvbFxyXG4gICovXHJcbiAgQFZpZXdDaGlsZCgnY2hlY2tib3hJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIHByb3RlY3RlZCBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xyXG5cclxuICAvKipcclxuICAgKiBJZiB0aGUgY2hlY2tib3ggaXMgYSBtYXN0ZXIgY2hlY2tib3ggKGkuZS4gaXQgaGFzIGEgZGVwZW5kZW50Q2hlY2tib3hlc0dyb3VwKSxcclxuICAgKiBpbmRldGVybWluYXRlIGlzIHRydWUgaWYgdGhlcmUgYXJlIHNvbWUgY2hlY2tlZCBkZXBlbmRlbnRzIGFuZCBzb21lIHVuY2hlY2tlZCBkZXBlbmRlbnRzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbmRldGVybWluYXRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vVXNlZCB0byBwcmV2ZW50IHZhbHVlQ2hhbmdlcyBsb29wcyBpbiB0aGUgbWFzdGVyIGNoZWNrYm94IGFuZCBkZXBlbmRlbnQgY2hlY2tib3hlcyB2YWx1ZSBjaGFuZ2VzLlxyXG4gIHByaXZhdGUgaWdub3JlQ2FsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogRmlyZWQgd2hlbmV2ZXIgdGhlIGRlcGVuZGVudCBjaGVja2JveGVzIGFyZSBjaGFuZ2VkIHRvIGNsZWFyIG91dCBzdWJzY3JpcHRpb25zIHRvIHRoZSBwcmV2aW91cyBkZXBlbmRlbnRzICovXHJcbiAgcHJpdmF0ZSByZXNldERlcGVuZGVudFN1YnNjcmlwdGlvbnMgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCB2YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2U6IFZhbGlkYXRpb25NZXNzYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBmb3JtR3JvdXBIZWxwZXI6IEZvcm1Hcm91cEhlbHBlclxyXG4gICkge1xyXG4gICAgc3VwZXIodmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlLCBmb3JtR3JvdXBIZWxwZXIpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuYXV0b2ZvY3VzKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLmRlcGVuZGVudENoZWNrYm94ZXNHcm91cCkge1xyXG4gICAgICB0aGlzLnNldHVwRGVwZW5kZW50cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRpc3BhdGNoRXZlbnQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2NsaWNrJyAmJiAhdGhpcy5mb3JtTW9kZWwuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5mb3JtTW9kZWwucGF0Y2hWYWx1ZSghdGhpcy5mb3JtTW9kZWwudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHdhdGNoZXJzIHRoYXQgYWxsb3cgdGhlIG1hc3RlciBhbmQgZGVwZW5kZW50IGNoZWNrYm94IHN0YXRlcyB0byBzdGF5IGluIHN5bmMgYXMgdGhlIHVzZXIgaW50ZXJhY3RzIHdpdGggdGhlbS4gXHJcbiAgICogRGVwZW5kZW50cyBjYW4gdXBkYXRlIHRoZSBtYXN0ZXIgd2hlbiB0aGVpciB2YWx1ZXMgY2hhbmdlIGFuZCB0aGUgbWFzdGVyIHVwZGF0ZXMgZGVwZW5kZW50cyB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLiBcclxuICAgKi9cclxuICBwcml2YXRlIHNldHVwRGVwZW5kZW50cygpIHtcclxuICAgICAgaWYoIXRoaXMuZGVwZW5kZW50Q2hlY2tib3hlc0dyb3VwKSB7cmV0dXJufVxyXG5cclxuICAgICAgLy8gUmVtb3ZlIGFueSBzdWJzY3JpcHRpb25zIHRvIHByZXZpb3VzIGRlcGVuZGVudHNcclxuICAgICAgdGhpcy5yZXNldERlcGVuZGVudFN1YnNjcmlwdGlvbnMubmV4dCgpO1xyXG5cclxuICAgICAgLy9FeHRyYWN0IHRoZSB2YWx1ZXMgKGkuZS4gdGhlIGNoZWNrYm94ZXMpIGZyb20gdGhlIEZvcm1Hcm91cCBjb250cm9scyBrZXktdmFsdWUgbWFwIGFuZCByZXR1cm4gdGhlbS4gXHJcbiAgICAgIGxldCBkZXBlbmRlbnRDaGVja2JveGVzOiBBYnN0cmFjdENvbnRyb2xbXSA9IE9iamVjdC52YWx1ZXModGhpcy5kZXBlbmRlbnRDaGVja2JveGVzR3JvdXAuY29udHJvbHMpO1xyXG5cclxuICAgICAgdGhpcy51cGRhdGVNYXN0ZXJTdGF0ZShkZXBlbmRlbnRDaGVja2JveGVzKTtcclxuXHJcbiAgICAgIC8vV2hlbiB0aGUgbWFzdGVyIHZhbHVlIGNoYW5nZXMsIHdlIHNldCBhbGwgaXRzIGRlcGVuZGVudHMgdG8gdGhhdCB2YWx1ZS5cclxuICAgICAgLy9XZSBhbHNvIHNldCBpbmRldGVybWluYXRlIHRvIGZhbHNlIHNpbmNlIHdlIGtub3cgdGhhdCBhbGwgZGVwZW5kZW50cyB3aWxsIGVpdGhlciBiZSBjaGVja2VkIG9yIHVuY2hlY2tlZC5cclxuICAgICAgdGhpcy5mb3JtTW9kZWwudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICB0YWtlVW50aWwobWVyZ2UodGhpcy5jb21wb25lbnREZXN0cm95ZWQsIHRoaXMucmVzZXREZXBlbmRlbnRTdWJzY3JpcHRpb25zKSlcclxuICAgICAgKS5zdWJzY3JpYmUoKHZhbHVlOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYoIXRoaXMuaWdub3JlQ2FsbCkge1xyXG4gICAgICAgICAgdGhpcy5pZ25vcmVDYWxsID0gdHJ1ZTsgLy9JZ25vcmUgYW55IHZhbHVlIGNoYW5nZXMgY2FsbHMgb24gdGhlIGRlcGVuZGVudHMgdG8gcHJldmVudCBhIGxvb3AuXHJcbiAgICAgICAgICBkZXBlbmRlbnRDaGVja2JveGVzLmZvckVhY2goY2hlY2tib3ggPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWNoZWNrYm94LmRpc2FibGVkIHx8ICF0aGlzLmlnbm9yZURpc2FibGVkRGVwZW5kZW50cykge1xyXG4gICAgICAgICAgICAgIGNoZWNrYm94LnNldFZhbHVlKHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pZ25vcmVDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG5cclxuICAgICAgLy9XaGVuIGEgZGVwZW5kZW50IHZhbHVlIGNoYW5nZXMsIHdlIG5lZWQgdG8gcmVldmFsdWF0ZSB0aGUgbWFzdGVyIHN0YXRlLlxyXG4gICAgICAvL1dlIGFyZSBzdWJzY3JpYmluZyB0byB0aGUgZm9ybSBtb2RlbHMgZGlyZWN0bHkgaW5zdGVhZCBvZiB0aGUgZW50aXJlIGdyb3VwIGJlY2F1c2Ugd2UgZm91bmQgdGhhdCBhZGRpbmcgY2hlY2tib3hlcyB0byBcclxuICAgICAgLy8gIG1vcmUgdGhhbiBvbmUgZm9ybSBncm91cCBjYXVzZXMgb25seSB0aGUgbGFzdCBncm91cCB0byBlbWl0IHZhbHVlQ2hhbmdlcyBldmVudHMuIFxyXG4gICAgICAvL1RoYXQgcHJldmVudGVkIGNvbWJpbmVkIHJvdy1tYXN0ZXIgYW5kIHRhYmxlLW1hc3RlciBzZXR1cHMgZnJvbSB3b3JraW5nIHByb3Blcmx5LlxyXG4gICAgICBkZXBlbmRlbnRDaGVja2JveGVzLmZvckVhY2goY2hlY2tib3ggPT4ge1xyXG4gICAgICAgICAgY2hlY2tib3gudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgIHRha2VVbnRpbChtZXJnZSh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCwgdGhpcy5yZXNldERlcGVuZGVudFN1YnNjcmlwdGlvbnMpKVxyXG4gICAgICAgICAgKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHZhbHVlICE9PSB0cnVlICYmIHZhbHVlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgVGhlIHZhbHVlICR7dmFsdWV9IGlzIG5vdCB0cnVlIG9yIGZhbHNlLCB3aGljaCBhcmUgdGhlIG9ubHkgc3VwcG9ydGVkIHZhbHVlcyBmb3IgRm9ybUNvbnRyb2xzIGluIHRoZSBkZXBlbmRlbnRDaGVja2JveGVzR3JvdXBgKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZighdGhpcy5pZ25vcmVDYWxsKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pZ25vcmVDYWxsID0gdHJ1ZTsgLy9JZ25vcmUgYW55IHZhbHVlIGNoYW5nZXMgY2FsbHMgb24gdGhlIG1hc3RlciB0byBwcmV2ZW50IGEgbG9vcC5cclxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZU1hc3RlclN0YXRlKGRlcGVuZGVudENoZWNrYm94ZXMpO1xyXG4gICAgICAgICAgICAgIHRoaXMuaWdub3JlQ2FsbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgLyoqIFxyXG4gICAqIElmIGFsbCBkZXBlbmRlbnRzIGFyZSB0cnVlLCB0aGUgbWFzdGVyIHNob3VsZCBiZSB0cnVlIGFuZCBkZXRlcm1pbmF0ZS5cclxuICAgKiBJZiBhbGwgZGVwZW5kZW50cyBhcmUgZmFsc2UsIHRoZSBtYXN0ZXIgc2hvdWxkIGJlIGZhbHNlIGFuZCBkZXRlcm1pbmF0ZS5cclxuICAgKiBJZiBzb21lIGRlcGVuZGVudHMgYXJlIHRydWUgYW5kIHNvbWUgZGVwZW5kZW50cyBhcmUgZmFsc2UsIHRoZSBtYXN0ZXIgc2hvdWxkIGJlIGZhbHNlIGFuZCBpbmRldGVybWluYXRlLlxyXG4gICAqIFxyXG4gICAqIElmIGlnbm9yZURpc2FibGVkRGVwZW5kZW50cyBpcyB0cnVlLCBkb2VzIG5vdCBpbmNsdWRlIHRoZSBkaXNhYmxlZCBkZXBlbmRlbnRzIHdoZW4gY2hlY2tpbmcgdmFsdWVzXHJcbiAgKi9cclxuICBwcml2YXRlIHVwZGF0ZU1hc3RlclN0YXRlKGRlcGVuZGVudENoZWNrYm94ZXM6IEFic3RyYWN0Q29udHJvbFtdKSB7XHJcbiAgICBsZXQgZGVwZW5kZW50c1RvQ2hlY2sgPSBbXTtcclxuICAgIGlmICh0aGlzLmlnbm9yZURpc2FibGVkRGVwZW5kZW50cykge1xyXG4gICAgICBkZXBlbmRlbnRzVG9DaGVjayA9IGRlcGVuZGVudENoZWNrYm94ZXMuZmlsdGVyKGNoZWNrYm94ID0+IGNoZWNrYm94LmVuYWJsZWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVwZW5kZW50c1RvQ2hlY2sgPSBkZXBlbmRlbnRDaGVja2JveGVzO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpc1RydWUgPSAoY2hlY2tib3g6IEFic3RyYWN0Q29udHJvbCkgPT4ge3JldHVybiBjaGVja2JveC52YWx1ZSA9PT0gdHJ1ZX07XHJcbiAgICBpZihkZXBlbmRlbnRzVG9DaGVjay5ldmVyeShpc1RydWUpKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtTW9kZWwuc2V0VmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYoZGVwZW5kZW50c1RvQ2hlY2suc29tZShpc1RydWUpKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtTW9kZWwuc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZm9ybU1vZGVsLnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG59IiwiPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cclxuICA8bGFiZWwgY2xhc3M9XCJjaGVja2JveFwiXHJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtZGlzYWJsZWQnOiBmb3JtTW9kZWwuZGlzYWJsZWQsICduby1sYWJlbCc6ICFsYWJlbCwgJ2lzLXJlYWRvbmx5JzogcmVhZG9ubHl9XCI+XHJcbiAgICA8aW5wdXQgaWQ9XCJ7e2lkfX1faW5wdXRcIlxyXG4gICAgICAgICAgICNjaGVja2JveElucHV0XHJcbiAgICAgICAgICAgY2xhc3M9J2lucHV0J1xyXG4gICAgICAgICAgIFtjbGFzcy5pbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxyXG4gICAgICAgICAgIFthdHRyLmlkXT1cImlucHV0SWRcIlxyXG4gICAgICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICB0YWJpbmRleD1cInt7dGFiaW5kZXh9fVwiXHJcbiAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Nb2RlbFwiXHJcbiAgICAgICAgICAgW2F0dHIuY2RrRm9jdXNJbml0aWFsXT1cImF1dG9mb2N1cyB8fCBudWxsXCI+XHJcbiAgICA8aSBjbGFzcz1cImVjLWljb24gaWNvbi1jaGVja1wiPjwvaT5cclxuICAgIDxzcGFuIGlkPVwie3tpZH19X2xhYmVsXCJcclxuICAgICAgICAgICpuZ0lmPVwibGFiZWxcIlxyXG4gICAgICAgICAgY2xhc3M9XCJsYWJlbFwiXHJcbiAgICAgICAgICBbaW5uZXJIdG1sXT1cImxhYmVsIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgIDwvc3Bhbj5cclxuICA8L2xhYmVsPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Component, Input, EventEmitter, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../button/button.component";
|
|
4
|
+
export class CollapsibleToggleComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
/**
|
|
7
|
+
* The expanded state.
|
|
8
|
+
* The toggle icon is changed in the template based on the value of expanded.
|
|
9
|
+
*/
|
|
10
|
+
this.expanded = false;
|
|
11
|
+
/**
|
|
12
|
+
* Emits the value of expanded to the parent component for two-way binding
|
|
13
|
+
*/
|
|
14
|
+
this.expandedChange = new EventEmitter();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* On click, toggle the value of exanded and emit the current value
|
|
18
|
+
*/
|
|
19
|
+
onToggle() {
|
|
20
|
+
this.expanded = !this.expanded;
|
|
21
|
+
this.expandedChange.emit(this.expanded);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
CollapsibleToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: CollapsibleToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
CollapsibleToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: CollapsibleToggleComponent, selector: "ec-collapsible-toggle", inputs: { id: "id", expanded: "expanded", tabindex: "tabindex" }, outputs: { expandedChange: "expandedChange" }, ngImport: i0, template: `<ec-button id="{{id}}_button" type="icon" icon="icon-angle-down {{expanded ? '' : 'rotate-270'}}" tabindex="{{tabindex}}" (clicked)="onToggle()"></ec-button>`, isInline: true, 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{width:1.5rem;height:1.5rem;display:inline-flex;justify-content:center;align-items:center}ec-button::ng-deep .ec-button-icon{width:1.25rem;height:1.25rem}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "ec-button", inputs: ["id", "disabled", "icon", "label", "badge", "tabindex", "type", "pending", "pendingIcon", "customTemplate", "isSubmit", "autofocus"], outputs: ["clicked"] }] });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: CollapsibleToggleComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{ selector: 'ec-collapsible-toggle', template: `<ec-button id="{{id}}_button" type="icon" icon="icon-angle-down {{expanded ? '' : 'rotate-270'}}" tabindex="{{tabindex}}" (clicked)="onToggle()"></ec-button>`, 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{width:1.5rem;height:1.5rem;display:inline-flex;justify-content:center;align-items:center}ec-button::ng-deep .ec-button-icon{width:1.25rem;height:1.25rem}\n"] }]
|
|
29
|
+
}], propDecorators: { id: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], expanded: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], tabindex: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], expandedChange: [{
|
|
36
|
+
type: Output
|
|
37
|
+
}] } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2libGUtdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9jb2xsYXBzaWJsZS10b2dnbGUvY29sbGFwc2libGUtdG9nZ2xlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkUsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQVlFOzs7V0FHRztRQUNhLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFLMUM7O1dBRUc7UUFDYyxtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0tBU3RGO0lBUEM7O09BRUc7SUFDSSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O3VIQTNCVSwwQkFBMEI7MkdBQTFCLDBCQUEwQiw4S0FIM0IsK0pBQStKOzJGQUc5SiwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsdUJBQXVCLFlBQ3ZCLCtKQUErSjs4QkFRekosRUFBRTtzQkFBakIsS0FBSztnQkFNVSxRQUFRO3NCQUF2QixLQUFLO2dCQUdVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBS1csY0FBYztzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWNvbGxhcHNpYmxlLXRvZ2dsZScsXHJcbiAgdGVtcGxhdGU6IGA8ZWMtYnV0dG9uIGlkPVwie3tpZH19X2J1dHRvblwiIHR5cGU9XCJpY29uXCIgaWNvbj1cImljb24tYW5nbGUtZG93biB7e2V4cGFuZGVkID8gJycgOiAncm90YXRlLTI3MCd9fVwiIHRhYmluZGV4PVwie3t0YWJpbmRleH19XCIgKGNsaWNrZWQpPVwib25Ub2dnbGUoKVwiPjwvZWMtYnV0dG9uPmAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sbGFwc2libGUtdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbGxhcHNpYmxlVG9nZ2xlQ29tcG9uZW50IHtcclxuXHJcbiAgLyoqIFxyXG4gICAqIElkZW50aWZpZXIgdG8gcGFzcyB0byB0aGUgYnV0dG9uIFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZD86IHN0cmluZztcclxuXHJcbiAgLyoqIFxyXG4gICAqIFRoZSBleHBhbmRlZCBzdGF0ZS4gXHJcbiAgICogVGhlIHRvZ2dsZSBpY29uIGlzIGNoYW5nZWQgaW4gdGhlIHRlbXBsYXRlIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBleHBhbmRlZC4gXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBCdXR0b24gdGFiaW5kZXggKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdGFiaW5kZXg/OiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSB2YWx1ZSBvZiBleHBhbmRlZCB0byB0aGUgcGFyZW50IGNvbXBvbmVudCBmb3IgdHdvLXdheSBiaW5kaW5nXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBleHBhbmRlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIE9uIGNsaWNrLCB0b2dnbGUgdGhlIHZhbHVlIG9mIGV4YW5kZWQgYW5kIGVtaXQgdGhlIGN1cnJlbnQgdmFsdWVcclxuICAgKi9cclxuICBwdWJsaWMgb25Ub2dnbGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7XHJcbiAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|