@energycap/components 0.41.1-ECAP-26841-date-input-features.20250108-1149 → 0.42.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/{esm2020 → esm2022}/energycap-components.mjs +4 -4
- package/esm2022/lib/components.module.mjs +418 -0
- package/esm2022/lib/controls/banner/banner.component.mjs +109 -0
- package/esm2022/lib/controls/button/button.component.mjs +106 -0
- package/esm2022/lib/controls/button/copy-button-base.directive.mjs +67 -0
- package/{esm2020 → esm2022}/lib/controls/button/copy-button.directive.mjs +28 -28
- package/esm2022/lib/controls/button/copy-table-button.directive.mjs +43 -0
- package/esm2022/lib/controls/calendar/calendar-item.component.mjs +59 -0
- package/esm2022/lib/controls/calendar/calendar.component.mjs +200 -0
- package/esm2022/lib/controls/calendar/calendar.types.mjs +4 -0
- package/esm2022/lib/controls/checkbox/checkbox.component.mjs +140 -0
- package/{esm2020 → esm2022}/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -38
- package/esm2022/lib/controls/combobox/combobox.component.mjs +879 -0
- package/esm2022/lib/controls/date-input/date-input.component.mjs +256 -0
- package/esm2022/lib/controls/dropdown/dropdown.component.mjs +243 -0
- package/esm2022/lib/controls/file-upload/file-upload.component.mjs +261 -0
- package/esm2022/lib/controls/form-control/form-control.component.mjs +104 -0
- package/esm2022/lib/controls/form-control-base.mjs +151 -0
- package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +136 -0
- package/esm2022/lib/controls/form-group/form-group.component.mjs +261 -0
- package/{esm2020 → esm2022}/lib/controls/help-popover/help-popover.component.mjs +31 -31
- package/esm2022/lib/controls/item-picker/item-picker.component.mjs +329 -0
- package/{esm2020 → esm2022}/lib/controls/link-button/link-button.component.mjs +11 -11
- package/esm2022/lib/controls/menu/menu.component.mjs +485 -0
- package/{esm2020 → esm2022}/lib/controls/navigation/link-item.mjs +1 -1
- package/esm2022/lib/controls/navigation/nav-group.mjs +39 -0
- package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +92 -0
- package/{esm2020 → esm2022}/lib/controls/navigation/nav-item.mjs +1 -1
- package/esm2022/lib/controls/numericbox/numericbox.component.mjs +372 -0
- package/esm2022/lib/controls/popover/popover.component.mjs +117 -0
- package/{esm2020 → esm2022}/lib/controls/radio-button/radio-button-option.mjs +2 -2
- package/esm2022/lib/controls/radio-button/radio-button.component.mjs +82 -0
- package/esm2022/lib/controls/select/select.component.mjs +88 -0
- package/esm2022/lib/controls/tabs/tabs.component.mjs +47 -0
- package/esm2022/lib/controls/textbox/textbox.component.mjs +155 -0
- package/esm2022/lib/core/cache.service.mjs +105 -0
- package/esm2022/lib/core/custom-validators.mjs +29 -0
- package/esm2022/lib/core/date-time-helper.mjs +220 -0
- package/esm2022/lib/core/error.service.mjs +61 -0
- package/esm2022/lib/core/router-helper.service.mjs +111 -0
- package/esm2022/lib/core/scroll.service.mjs +89 -0
- package/{esm2020 → esm2022}/lib/core/telemetry-tracker.service.mjs +16 -16
- package/{esm2020 → esm2022}/lib/core/telemetry.service.mjs +38 -38
- package/esm2022/lib/core/validation-message.service.mjs +185 -0
- package/{esm2020 → esm2022}/lib/core/validation-patterns.mjs +30 -30
- package/esm2022/lib/core/window.service.mjs +186 -0
- package/esm2022/lib/display/app-bar/app-bar.component.mjs +46 -0
- package/esm2022/lib/display/avatar/avatar.component.mjs +67 -0
- package/esm2022/lib/display/avatar/avatar.service.mjs +64 -0
- package/esm2022/lib/display/confirm/confirm.component.mjs +168 -0
- package/{esm2020 → esm2022}/lib/display/dialog/dialog-content.mjs +1 -1
- package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -0
- package/{esm2020 → esm2022}/lib/display/dialog/dialog-types.mjs +76 -76
- package/esm2022/lib/display/dialog/dialog.component.mjs +281 -0
- package/{esm2020 → esm2022}/lib/display/dialog/dialog.service.mjs +71 -71
- package/{esm2020 → esm2022}/lib/display/help/help-types.mjs +1 -1
- package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +111 -0
- package/{esm2020 → esm2022}/lib/display/hierarchy/hierarchy-mocks.spec.mjs +53 -53
- package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +61 -0
- package/esm2022/lib/display/item-display/item-display.component.mjs +81 -0
- package/esm2022/lib/display/json-display/json-display.component.mjs +47 -0
- package/esm2022/lib/display/resizable/resizable-base.mjs +120 -0
- package/{esm2020 → esm2022}/lib/display/resizable/resizable.component.mjs +52 -52
- package/{esm2020 → esm2022}/lib/display/spinner/spinner.component.mjs +12 -12
- package/esm2022/lib/display/splash/splash.component.mjs +42 -0
- package/{esm2020 → esm2022}/lib/display/splash/splash.service.mjs +35 -35
- package/{esm2020 → esm2022}/lib/display/table/resizable-column.component.mjs +20 -20
- package/esm2022/lib/display/table/resizable-table.directive.mjs +227 -0
- package/esm2022/lib/display/table/searchable-table.component.mjs +342 -0
- package/{esm2020 → esm2022}/lib/display/table/table-detail-row.component.mjs +19 -19
- package/esm2022/lib/display/table/table-locked-column.component.mjs +58 -0
- package/{esm2020 → esm2022}/lib/display/table/table-master-header-row.component.mjs +14 -14
- package/esm2022/lib/display/table/table-master-row.component.mjs +163 -0
- package/esm2022/lib/display/table/table-pagination.component.mjs +155 -0
- package/esm2022/lib/display/table/table-selectable-row.component.mjs +235 -0
- package/esm2022/lib/display/table/table.component.mjs +249 -0
- package/esm2022/lib/display/tags/tag.mjs +18 -0
- package/esm2022/lib/display/tags/tags.component.mjs +77 -0
- package/esm2022/lib/display/toast/toast/toast.component.mjs +77 -0
- package/{esm2020 → esm2022}/lib/display/toast/toast-types.mjs +7 -7
- package/{esm2020 → esm2022}/lib/display/toast/toast.service.mjs +35 -35
- package/esm2022/lib/display/toast/toaster/toaster.component.mjs +114 -0
- package/{esm2020 → esm2022}/lib/display/tooltip/tooltip.component.mjs +28 -28
- package/{esm2020 → esm2022}/lib/display/tooltip/tooltip.service.mjs +78 -78
- package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +173 -0
- package/{esm2020 → esm2022}/lib/display/tour/tour-types.mjs +33 -33
- package/esm2022/lib/display/tour/tour.component.mjs +398 -0
- package/esm2022/lib/display/tour/tour.service.mjs +75 -0
- package/esm2022/lib/display/tree/tree.component.mjs +135 -0
- package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +58 -0
- package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -0
- package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -0
- package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +166 -0
- package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +50 -0
- package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -0
- package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +62 -0
- package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +48 -0
- package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +41 -0
- package/esm2022/lib/shared/display.mjs +6 -0
- package/esm2022/lib/shared/form-group.helper.mjs +67 -0
- package/esm2022/lib/shared/json-helper.mjs +19 -0
- package/esm2022/lib/shared/lodash-helper.mjs +52 -0
- package/esm2022/lib/shared/page/page-base/page-base.component.mjs +387 -0
- package/{esm2020 → esm2022}/lib/shared/page/page-statuses.mjs +22 -22
- package/{esm2020 → esm2022}/lib/shared/page/page-title/page-title.component.mjs +23 -23
- package/esm2022/lib/shared/page/page-view/page-view.component.mjs +147 -0
- package/{esm2020 → esm2022}/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +16 -16
- package/{esm2020 → esm2022}/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +16 -16
- package/{esm2020 → esm2022}/lib/shared/testing/page-base-component-test-helper.spec.mjs +37 -37
- package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +98 -0
- package/{esm2020 → esm2022}/lib/shared/testing/public-mocks.spec.mjs +148 -148
- package/{esm2020 → esm2022}/lib/shared/testing/spy-factory.spec.mjs +39 -39
- package/{esm2020 → esm2022}/lib/shared/testing/translation-mocks.spec.mjs +56 -56
- package/{esm2020 → esm2022}/lib/shared/user-preference.service.mjs +17 -17
- package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -0
- package/{esm2020 → esm2022}/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -68
- package/{esm2020 → esm2022}/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -18
- package/esm2022/public-api.mjs +115 -0
- package/{fesm2020 → fesm2022}/energycap-components.mjs +11819 -12974
- package/fesm2022/energycap-components.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/components.module.d.ts +91 -92
- package/lib/controls/banner/banner.component.d.ts +50 -50
- package/lib/controls/button/button.component.d.ts +78 -78
- package/lib/controls/button/copy-button-base.directive.d.ts +20 -20
- package/lib/controls/button/copy-button.directive.d.ts +14 -14
- package/lib/controls/button/copy-table-button.directive.d.ts +19 -19
- package/lib/controls/calendar/calendar-item.component.d.ts +17 -22
- package/lib/controls/calendar/calendar.component.d.ts +54 -52
- package/lib/controls/calendar/calendar.types.d.ts +7 -11
- package/lib/controls/checkbox/checkbox.component.d.ts +65 -65
- package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +25 -25
- package/lib/controls/combobox/combobox.component.d.ts +418 -418
- package/lib/controls/date-input/date-input.component.d.ts +80 -115
- package/lib/controls/dropdown/dropdown.component.d.ts +161 -161
- package/lib/controls/file-upload/file-upload.component.d.ts +124 -124
- package/lib/controls/form-control/form-control.component.d.ts +30 -28
- package/lib/controls/form-control-base.d.ts +110 -110
- package/lib/controls/form-control-label/form-control-label.component.d.ts +73 -73
- package/lib/controls/form-group/form-group.component.d.ts +105 -105
- package/lib/controls/help-popover/help-popover.component.d.ts +11 -11
- package/lib/controls/item-picker/item-picker.component.d.ts +164 -164
- package/lib/controls/link-button/link-button.component.d.ts +5 -5
- package/lib/controls/menu/menu.component.d.ts +255 -255
- package/lib/controls/navigation/link-item.d.ts +32 -32
- package/lib/controls/navigation/nav-group.d.ts +18 -18
- package/lib/controls/navigation/nav-item-active.directive.d.ts +42 -42
- package/lib/controls/navigation/nav-item.d.ts +31 -31
- package/lib/controls/numericbox/numericbox.component.d.ts +148 -148
- package/lib/controls/popover/popover.component.d.ts +51 -51
- package/lib/controls/radio-button/radio-button-option.d.ts +19 -19
- package/lib/controls/radio-button/radio-button.component.d.ts +53 -53
- package/lib/controls/select/select.component.d.ts +44 -44
- package/lib/controls/tabs/tabs.component.d.ts +30 -30
- package/lib/controls/textbox/textbox.component.d.ts +107 -107
- package/lib/core/cache.service.d.ts +33 -33
- package/lib/core/custom-validators.d.ts +20 -20
- package/lib/core/date-time-helper.d.ts +101 -101
- package/lib/core/error.service.d.ts +20 -20
- package/lib/core/router-helper.service.d.ts +48 -48
- package/lib/core/scroll.service.d.ts +36 -36
- package/lib/core/telemetry-tracker.service.d.ts +13 -13
- package/lib/core/telemetry.service.d.ts +31 -31
- package/lib/core/validation-message.service.d.ts +26 -26
- package/lib/core/validation-patterns.d.ts +22 -22
- package/lib/core/window.service.d.ts +116 -116
- package/lib/display/app-bar/app-bar.component.d.ts +20 -20
- package/lib/display/avatar/avatar.component.d.ts +35 -35
- package/lib/display/avatar/avatar.service.d.ts +24 -24
- package/lib/display/confirm/confirm.component.d.ts +123 -123
- package/lib/display/dialog/dialog-content.d.ts +19 -19
- package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +32 -32
- package/lib/display/dialog/dialog-types.d.ts +130 -130
- package/lib/display/dialog/dialog.component.d.ts +120 -120
- package/lib/display/dialog/dialog.service.d.ts +48 -48
- package/lib/display/help/help-types.d.ts +33 -33
- package/lib/display/hierarchy/hierarchy-base.d.ts +97 -97
- package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +53 -53
- package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +34 -34
- package/lib/display/item-display/item-display.component.d.ts +43 -43
- package/lib/display/json-display/json-display.component.d.ts +16 -16
- package/lib/display/resizable/resizable-base.d.ts +67 -67
- package/lib/display/resizable/resizable.component.d.ts +31 -31
- package/lib/display/spinner/spinner.component.d.ts +5 -5
- package/lib/display/splash/splash.component.d.ts +16 -16
- package/lib/display/splash/splash.service.d.ts +22 -22
- package/lib/display/table/resizable-column.component.d.ts +10 -10
- package/lib/display/table/resizable-table.directive.d.ts +93 -93
- package/lib/display/table/searchable-table.component.d.ts +206 -206
- package/lib/display/table/table-detail-row.component.d.ts +8 -8
- package/lib/display/table/table-locked-column.component.d.ts +20 -20
- package/lib/display/table/table-master-header-row.component.d.ts +9 -9
- package/lib/display/table/table-master-row.component.d.ts +113 -113
- package/lib/display/table/table-pagination.component.d.ts +91 -91
- package/lib/display/table/table-selectable-row.component.d.ts +102 -102
- package/lib/display/table/table.component.d.ts +121 -121
- package/lib/display/tags/tag.d.ts +18 -18
- package/lib/display/tags/tags.component.d.ts +48 -48
- package/lib/display/toast/toast/toast.component.d.ts +23 -23
- package/lib/display/toast/toast-types.d.ts +24 -24
- package/lib/display/toast/toast.service.d.ts +20 -20
- package/lib/display/toast/toaster/toaster.component.d.ts +35 -35
- package/lib/display/tooltip/tooltip.component.d.ts +70 -70
- package/lib/display/tooltip/tooltip.service.d.ts +16 -16
- package/lib/display/tooltip-directive/tooltip.directive.d.ts +44 -44
- package/lib/display/tour/tour-types.d.ts +70 -70
- package/lib/display/tour/tour.component.d.ts +147 -147
- package/lib/display/tour/tour.service.d.ts +38 -38
- package/lib/display/tree/tree.component.d.ts +75 -75
- package/lib/display/view-overlay/view-overlay.component.d.ts +38 -38
- package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +14 -14
- package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +60 -60
- package/lib/shared/directives/popup/popup-container.directive.d.ts +101 -101
- package/lib/shared/display/pipes/date-display.pipe.d.ts +21 -21
- package/lib/shared/display/pipes/highlight-text.pipe.d.ts +9 -9
- package/lib/shared/display/pipes/relative-date.pipe.d.ts +36 -36
- package/lib/shared/display/pipes/row-count.pipe.d.ts +23 -23
- package/lib/shared/display/pipes/time-display.pipe.d.ts +18 -18
- package/lib/shared/display.d.ts +42 -42
- package/lib/shared/form-group.helper.d.ts +31 -31
- package/lib/shared/json-helper.d.ts +7 -7
- package/lib/shared/lodash-helper.d.ts +18 -18
- package/lib/shared/page/page-base/page-base.component.d.ts +259 -259
- package/lib/shared/page/page-statuses.d.ts +13 -13
- package/lib/shared/page/page-title/page-title.component.d.ts +9 -9
- package/lib/shared/page/page-view/page-view.component.d.ts +102 -102
- package/lib/shared/testing/copy-button-base-test-injector-factory.spec.d.ts +4 -4
- package/lib/shared/testing/hierarchy-base-test-injector-factory.spec.d.ts +4 -4
- package/lib/shared/testing/page-base-component-test-helper.spec.d.ts +30 -30
- package/lib/shared/testing/page-base-component-test-injector-factory.spec.d.ts +28 -28
- package/lib/shared/testing/public-mocks.spec.d.ts +90 -90
- package/lib/shared/testing/spy-factory.spec.d.ts +27 -27
- package/lib/shared/testing/translation-mocks.spec.d.ts +30 -30
- package/lib/shared/user-preference.service.d.ts +13 -13
- package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +134 -134
- package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +27 -27
- package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +10 -10
- package/package.json +12 -18
- package/public-api.d.ts +111 -113
- package/schematics/rxjs-7-upgrade/index.d.ts +3 -3
- package/schematics/rxjs-7-upgrade/index.js +67 -67
- package/schematics/rxjs-7-upgrade/index.js.map +1 -1
- package/schematics/rxjs-7-upgrade/schema.d.ts +4 -4
- package/schematics/rxjs-7-upgrade/schema.js +2 -2
- package/schematics/utilities/typescript.d.ts +7 -7
- package/schematics/utilities/typescript.js +41 -41
- package/schematics/utilities/workspace.d.ts +8 -8
- package/schematics/utilities/workspace.js +71 -71
- package/schematics/utilities/workspace.js.map +1 -1
- package/src/assets/locales/en_US.json +1 -9
- package/esm2020/lib/components.module.mjs +0 -423
- package/esm2020/lib/controls/banner/banner.component.mjs +0 -109
- package/esm2020/lib/controls/button/button.component.mjs +0 -106
- package/esm2020/lib/controls/button/copy-button-base.directive.mjs +0 -67
- package/esm2020/lib/controls/button/copy-table-button.directive.mjs +0 -43
- package/esm2020/lib/controls/calendar/calendar-item.component.mjs +0 -91
- package/esm2020/lib/controls/calendar/calendar.component.mjs +0 -248
- package/esm2020/lib/controls/calendar/calendar.types.mjs +0 -2
- package/esm2020/lib/controls/checkbox/checkbox.component.mjs +0 -140
- package/esm2020/lib/controls/combobox/combobox.component.mjs +0 -879
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +0 -57
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +0 -62
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +0 -100
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +0 -101
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +0 -76
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +0 -79
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +0 -210
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +0 -81
- package/esm2020/lib/controls/date-input/date-input.component.mjs +0 -465
- package/esm2020/lib/controls/date-input/date-input.types.mjs +0 -44
- package/esm2020/lib/controls/dropdown/dropdown.component.mjs +0 -243
- package/esm2020/lib/controls/file-upload/file-upload.component.mjs +0 -261
- package/esm2020/lib/controls/form-control/form-control.component.mjs +0 -98
- package/esm2020/lib/controls/form-control-base.mjs +0 -151
- package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +0 -136
- package/esm2020/lib/controls/form-group/form-group.component.mjs +0 -261
- package/esm2020/lib/controls/item-picker/item-picker.component.mjs +0 -329
- package/esm2020/lib/controls/menu/menu.component.mjs +0 -485
- package/esm2020/lib/controls/navigation/nav-group.mjs +0 -39
- package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +0 -92
- package/esm2020/lib/controls/numericbox/numericbox.component.mjs +0 -372
- package/esm2020/lib/controls/popover/popover.component.mjs +0 -117
- package/esm2020/lib/controls/radio-button/radio-button.component.mjs +0 -82
- package/esm2020/lib/controls/select/select.component.mjs +0 -88
- package/esm2020/lib/controls/tabs/tabs.component.mjs +0 -47
- package/esm2020/lib/controls/textbox/textbox.component.mjs +0 -155
- package/esm2020/lib/core/cache.service.mjs +0 -105
- package/esm2020/lib/core/custom-validators.mjs +0 -29
- package/esm2020/lib/core/date-time-helper.mjs +0 -228
- package/esm2020/lib/core/error.service.mjs +0 -61
- package/esm2020/lib/core/router-helper.service.mjs +0 -111
- package/esm2020/lib/core/scroll.service.mjs +0 -89
- package/esm2020/lib/core/validation-message.service.mjs +0 -185
- package/esm2020/lib/core/window.service.mjs +0 -186
- package/esm2020/lib/display/app-bar/app-bar.component.mjs +0 -46
- package/esm2020/lib/display/avatar/avatar.component.mjs +0 -67
- package/esm2020/lib/display/avatar/avatar.service.mjs +0 -64
- package/esm2020/lib/display/confirm/confirm.component.mjs +0 -168
- package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +0 -63
- package/esm2020/lib/display/dialog/dialog.component.mjs +0 -281
- package/esm2020/lib/display/hierarchy/hierarchy-base.mjs +0 -111
- package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +0 -61
- package/esm2020/lib/display/item-display/item-display.component.mjs +0 -81
- package/esm2020/lib/display/json-display/json-display.component.mjs +0 -47
- package/esm2020/lib/display/resizable/resizable-base.mjs +0 -120
- package/esm2020/lib/display/splash/splash.component.mjs +0 -42
- package/esm2020/lib/display/table/resizable-table.directive.mjs +0 -227
- package/esm2020/lib/display/table/searchable-table.component.mjs +0 -342
- package/esm2020/lib/display/table/table-locked-column.component.mjs +0 -58
- package/esm2020/lib/display/table/table-master-row.component.mjs +0 -163
- package/esm2020/lib/display/table/table-pagination.component.mjs +0 -155
- package/esm2020/lib/display/table/table-selectable-row.component.mjs +0 -235
- package/esm2020/lib/display/table/table.component.mjs +0 -249
- package/esm2020/lib/display/tags/tag.mjs +0 -18
- package/esm2020/lib/display/tags/tags.component.mjs +0 -77
- package/esm2020/lib/display/toast/toast/toast.component.mjs +0 -77
- package/esm2020/lib/display/toast/toaster/toaster.component.mjs +0 -114
- package/esm2020/lib/display/tooltip-directive/tooltip.directive.mjs +0 -173
- package/esm2020/lib/display/tour/tour.component.mjs +0 -398
- package/esm2020/lib/display/tour/tour.service.mjs +0 -75
- package/esm2020/lib/display/tree/tree.component.mjs +0 -135
- package/esm2020/lib/display/view-overlay/view-overlay.component.mjs +0 -58
- package/esm2020/lib/shared/directives/click-area-for/click-area-for.directive.mjs +0 -32
- package/esm2020/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +0 -111
- package/esm2020/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +0 -100
- package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +0 -163
- package/esm2020/lib/shared/display/pipes/date-display.pipe.mjs +0 -50
- package/esm2020/lib/shared/display/pipes/highlight-text.pipe.mjs +0 -30
- package/esm2020/lib/shared/display/pipes/relative-date.pipe.mjs +0 -62
- package/esm2020/lib/shared/display/pipes/row-count.pipe.mjs +0 -48
- package/esm2020/lib/shared/display/pipes/time-display.pipe.mjs +0 -41
- package/esm2020/lib/shared/display.mjs +0 -6
- package/esm2020/lib/shared/form-group.helper.mjs +0 -67
- package/esm2020/lib/shared/json-helper.mjs +0 -19
- package/esm2020/lib/shared/lodash-helper.mjs +0 -51
- package/esm2020/lib/shared/page/page-base/page-base.component.mjs +0 -387
- package/esm2020/lib/shared/page/page-view/page-view.component.mjs +0 -147
- package/esm2020/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
- package/esm2020/lib/shared/wizard/wizard-base/wizard-base.component.mjs +0 -246
- package/esm2020/public-api.mjs +0 -117
- package/fesm2015/energycap-components.mjs +0 -13373
- package/fesm2015/energycap-components.mjs.map +0 -1
- package/fesm2020/energycap-components.mjs.map +0 -1
- package/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.d.ts +0 -42
- package/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.d.ts +0 -21
- package/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.d.ts +0 -21
- package/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.d.ts +0 -21
- package/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.d.ts +0 -18
- package/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.d.ts +0 -18
- package/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.d.ts +0 -21
- package/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.d.ts +0 -20
- package/lib/controls/date-input/date-input.types.d.ts +0 -62
- package/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.d.ts +0 -23
@@ -1,117 +0,0 @@
|
|
1
|
-
import { OverlayConfig } from '@angular/cdk/overlay';
|
2
|
-
import { TemplatePortal } from '@angular/cdk/portal';
|
3
|
-
import { Component, HostListener, Input, ViewChild } from '@angular/core';
|
4
|
-
import { of, Subject } from 'rxjs';
|
5
|
-
import { delay, switchMap, takeUntil } from 'rxjs/operators';
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
import * as i1 from "@angular/cdk/overlay";
|
8
|
-
import * as i2 from "../../display/tooltip/tooltip.service";
|
9
|
-
import * as i3 from "@angular/common";
|
10
|
-
import * as i4 from "../../display/tags/tags.component";
|
11
|
-
export class PopoverComponent {
|
12
|
-
constructor(overlay, viewContainerRef, elementRef, tooltipService) {
|
13
|
-
this.overlay = overlay;
|
14
|
-
this.viewContainerRef = viewContainerRef;
|
15
|
-
this.elementRef = elementRef;
|
16
|
-
this.tooltipService = tooltipService;
|
17
|
-
/** An optional icon that, if provided, enables the popover to use it as the anchor element */
|
18
|
-
this.icon = '';
|
19
|
-
this.contentPosition = 'top-left';
|
20
|
-
this.iconHoverClass = '';
|
21
|
-
this.isVisible = false;
|
22
|
-
this.mouseOver = new Subject();
|
23
|
-
this.interrupt = new Subject();
|
24
|
-
}
|
25
|
-
/** When the popover initializes, if a new tagType is provided for the hover state of the popover,
|
26
|
-
* we use it to update the type of our "hoverTag" (which controls background-color of tag)
|
27
|
-
*/
|
28
|
-
ngOnInit() {
|
29
|
-
if (this.tag && this.tagHoverType) {
|
30
|
-
this.hoverTag = { ...this.tag, type: this.tagHoverType };
|
31
|
-
}
|
32
|
-
this.mouseOver
|
33
|
-
.pipe(switchMap(v => of(v).pipe(delay(300), takeUntil(this.interrupt))))
|
34
|
-
.subscribe(() => this.show());
|
35
|
-
}
|
36
|
-
ngOnDestroy() {
|
37
|
-
this.hide();
|
38
|
-
}
|
39
|
-
show() {
|
40
|
-
if (!this.isVisible) {
|
41
|
-
const overlayConfig = this.getOverlayConfig();
|
42
|
-
this.overlayRef = this.overlay.create(overlayConfig);
|
43
|
-
const contentPortal = new TemplatePortal(this.content, this.viewContainerRef);
|
44
|
-
this.contentViewRef = this.overlayRef.attach(contentPortal);
|
45
|
-
this.isVisible = true;
|
46
|
-
}
|
47
|
-
}
|
48
|
-
onMouseOver() {
|
49
|
-
this.mouseOver.next();
|
50
|
-
}
|
51
|
-
onLeave() {
|
52
|
-
this.interrupt.next();
|
53
|
-
}
|
54
|
-
/**
|
55
|
-
* Hides the popover if the mouse moves outside of the popover content
|
56
|
-
*/
|
57
|
-
onMouseMove(event) {
|
58
|
-
let callCallback = false;
|
59
|
-
if (!this.contentRect) {
|
60
|
-
this.contentRect = this.contentViewRef?.rootNodes[0].getBoundingClientRect();
|
61
|
-
}
|
62
|
-
if (this.contentRect) {
|
63
|
-
callCallback = this.tooltipService.onMove(event, this.contentRect);
|
64
|
-
}
|
65
|
-
if (callCallback) {
|
66
|
-
this.hide();
|
67
|
-
}
|
68
|
-
}
|
69
|
-
hide() {
|
70
|
-
this.interrupt.next();
|
71
|
-
this.overlayRef?.dispose();
|
72
|
-
this.isVisible = false;
|
73
|
-
this.contentRect = undefined;
|
74
|
-
}
|
75
|
-
getOverlayConfig() {
|
76
|
-
const position = this.getPosition();
|
77
|
-
const positionStrategy = this.overlay.position()
|
78
|
-
.flexibleConnectedTo(this.elementRef)
|
79
|
-
.withPositions([position]);
|
80
|
-
const config = new OverlayConfig({
|
81
|
-
positionStrategy: positionStrategy
|
82
|
-
});
|
83
|
-
return config;
|
84
|
-
}
|
85
|
-
getPosition() {
|
86
|
-
const position = this.contentPosition.split('-');
|
87
|
-
const overlayX = (position[1] == 'left' ? 'start' : 'end');
|
88
|
-
const overlayY = position[0];
|
89
|
-
return { originX: overlayX, originY: overlayY, overlayX: overlayX, overlayY: overlayY };
|
90
|
-
}
|
91
|
-
}
|
92
|
-
PopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PopoverComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i2.TooltipService }], target: i0.ɵɵFactoryTarget.Component });
|
93
|
-
PopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PopoverComponent, selector: "ec-popover", inputs: { icon: "icon", tag: "tag", tagHoverType: "tagHoverType", contentPosition: "contentPosition", iconHoverClass: "iconHoverClass" }, host: { listeners: { "mouseover": "onMouseOver()", "mouseleave": "onLeave()" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<!-- Before hover state -->\r\n<div class=\"p-2\">\r\n <i *ngIf=\"!tag\" class=\"ec-icon {{icon}} ec-icon-sm\"></i>\r\n <ec-tags *ngIf=\"tag\"\r\n [isCondensed] = \"true\"\r\n [tags]=\"tag\">\r\n </ec-tags>\r\n</div>\r\n<!-- ./Before hover state -->\r\n\r\n<!-- Hover state -->\r\n<ng-template #content>\r\n <article class=\"popover-content\"\r\n (document:mousemove)=\"onMouseMove($event)\">\r\n <ng-content></ng-content>\r\n </article>\r\n <div class=\"p-2 {{contentPosition}}\">\r\n <i *ngIf=\"!tag\" class=\"ec-icon {{icon}} ec-icon-sm {{iconHoverClass}}\"></i>\r\n <ec-tags *ngIf=\"tag\"\r\n [isCondensed]=\"true\"\r\n [tags]=\"hoverTag\">\r\n </ec-tags>\r\n </div>\r\n</ng-template>\r\n<!-- ./Hover state -->\r\n", styles: [":host{line-height:.75rem;display:inline-block}.popover-content{border-radius:var(--ec-border-radius);box-shadow:0 3px 6px #1a1a231f;overflow:hidden;position:relative}.popover-content+div{position:absolute;line-height:.75rem}.popover-content+div.top-left{top:0;left:0}.popover-content+div.top-right{top:0;right:0}.popover-content+div.bottom-right{bottom:0;right:0}.popover-content+div.bottom-left{bottom:0;left:0}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TagsComponent, selector: "ec-tags", inputs: ["id", "tags", "wrap", "isCondensed"], outputs: ["tagClosed"] }] });
|
94
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PopoverComponent, decorators: [{
|
95
|
-
type: Component,
|
96
|
-
args: [{ selector: 'ec-popover', template: "<!-- Before hover state -->\r\n<div class=\"p-2\">\r\n <i *ngIf=\"!tag\" class=\"ec-icon {{icon}} ec-icon-sm\"></i>\r\n <ec-tags *ngIf=\"tag\"\r\n [isCondensed] = \"true\"\r\n [tags]=\"tag\">\r\n </ec-tags>\r\n</div>\r\n<!-- ./Before hover state -->\r\n\r\n<!-- Hover state -->\r\n<ng-template #content>\r\n <article class=\"popover-content\"\r\n (document:mousemove)=\"onMouseMove($event)\">\r\n <ng-content></ng-content>\r\n </article>\r\n <div class=\"p-2 {{contentPosition}}\">\r\n <i *ngIf=\"!tag\" class=\"ec-icon {{icon}} ec-icon-sm {{iconHoverClass}}\"></i>\r\n <ec-tags *ngIf=\"tag\"\r\n [isCondensed]=\"true\"\r\n [tags]=\"hoverTag\">\r\n </ec-tags>\r\n </div>\r\n</ng-template>\r\n<!-- ./Hover state -->\r\n", styles: [":host{line-height:.75rem;display:inline-block}.popover-content{border-radius:var(--ec-border-radius);box-shadow:0 3px 6px #1a1a231f;overflow:hidden;position:relative}.popover-content+div{position:absolute;line-height:.75rem}.popover-content+div.top-left{top:0;left:0}.popover-content+div.top-right{top:0;right:0}.popover-content+div.bottom-right{bottom:0;right:0}.popover-content+div.bottom-left{bottom:0;left:0}\n"] }]
|
97
|
-
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i2.TooltipService }]; }, propDecorators: { icon: [{
|
98
|
-
type: Input
|
99
|
-
}], tag: [{
|
100
|
-
type: Input
|
101
|
-
}], tagHoverType: [{
|
102
|
-
type: Input
|
103
|
-
}], contentPosition: [{
|
104
|
-
type: Input
|
105
|
-
}], iconHoverClass: [{
|
106
|
-
type: Input
|
107
|
-
}], content: [{
|
108
|
-
type: ViewChild,
|
109
|
-
args: ['content']
|
110
|
-
}], onMouseOver: [{
|
111
|
-
type: HostListener,
|
112
|
-
args: ['mouseover']
|
113
|
-
}], onLeave: [{
|
114
|
-
type: HostListener,
|
115
|
-
args: ['mouseleave']
|
116
|
-
}] } });
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QixhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBK0IsWUFBWSxFQUFFLEtBQUssRUFBMEIsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNqSixPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBVzdELE1BQU0sT0FBTyxnQkFBZ0I7SUFrQzNCLFlBQ1UsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLFVBQXNCLEVBQ3RCLGNBQThCO1FBSDlCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXBDeEMsOEZBQThGO1FBQ3JGLFNBQUksR0FBWSxFQUFFLENBQUM7UUFRbkIsb0JBQWUsR0FBMkIsVUFBVSxDQUFDO1FBRXJELG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBZ0I3QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBT3BDLENBQUM7SUFFTDs7T0FFRztJQUNILFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekQ7UUFDRCxJQUFJLENBQUMsU0FBUzthQUNiLElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDWixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNSLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFDVixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQixDQUNGLENBQ0Y7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU8sSUFBSTtRQUVWLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBRW5CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFckQsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRTVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUdNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBR00sT0FBTztRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLEtBQWlCO1FBQ2xDLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztRQUV6QixJQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDOUU7UUFFRCxJQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBWSxDQUFDLENBQUM7U0FDckU7UUFDRCxJQUFHLFlBQVksRUFBRTtZQUNmLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVPLElBQUk7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFcEMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTthQUM3QyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQ3BDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxhQUFhLENBQUM7WUFDL0IsZ0JBQWdCLEVBQUUsZ0JBQWdCO1NBQ25DLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sUUFBUSxHQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUUsTUFBTSxRQUFRLEdBQXFCLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQzFGLENBQUM7OzZHQXBJVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixrWENmN0IsMnhCQXlCQTsyRkRWYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsWUFBWTttTEFPYixJQUFJO3NCQUFaLEtBQUs7Z0JBR0csR0FBRztzQkFBWCxLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUV1QixPQUFPO3NCQUFuQyxTQUFTO3VCQUFDLFNBQVM7Z0JBZ0ViLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVztnQkFNbEIsT0FBTztzQkFEYixZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0ZWRQb3NpdGlvbiwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFbWJlZGRlZFZpZXdSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWxheSwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRhZywgVGFnVHlwZSB9IGZyb20gJy4uLy4uL2Rpc3BsYXkvdGFncy90YWcnO1xyXG5pbXBvcnQgeyBUb29sdGlwU2VydmljZSB9IGZyb20gJy4uLy4uL2Rpc3BsYXkvdG9vbHRpcC90b29sdGlwLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IHR5cGUgUG9wb3ZlckNvbnRlbnRQb3NpdGlvbiA9ICd0b3AtbGVmdCcgfCAndG9wLXJpZ2h0JyB8ICdib3R0b20tcmlnaHQnIHwgJ2JvdHRvbS1sZWZ0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtcG9wb3ZlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BvcG92ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIC8qKiBBbiBvcHRpb25hbCBpY29uIHRoYXQsIGlmIHByb3ZpZGVkLCBlbmFibGVzIHRoZSBwb3BvdmVyIHRvIHVzZSBpdCBhcyB0aGUgYW5jaG9yIGVsZW1lbnQgKi9cclxuICBASW5wdXQoKSBpY29uPzogc3RyaW5nID0gJyc7XHJcbiAgXHJcbiAgLyoqIEFuIG9wdGlvbmFsIHRhZyB0aGF0LCBpZiBwcm92aWRlZCwgZW5hYmxlcyB0aGUgcG9wb3ZlciB0byB1c2UgaXQgYXMgdGhlIGFuY2hvciBlbGVtZW50ICovXHJcbiAgQElucHV0KCkgdGFnPzogVGFnO1xyXG5cclxuICAvKiogVXNlZCB0byBkZW5vdGUgdGhlIGhvdmVyIHRhZydzIHR5cGUgKGFuZCB0aHVzIGJhY2tncm91bmQtY29sb3IpICovXHJcbiAgQElucHV0KCkgdGFnSG92ZXJUeXBlPzogVGFnVHlwZTtcclxuXHJcbiAgQElucHV0KCkgY29udGVudFBvc2l0aW9uOiBQb3BvdmVyQ29udGVudFBvc2l0aW9uID0gJ3RvcC1sZWZ0JztcclxuXHJcbiAgQElucHV0KCkgaWNvbkhvdmVyQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAVmlld0NoaWxkKCdjb250ZW50JykgcHVibGljIGNvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBcclxuXHJcbiAgLyoqIEluIHRoZSB0ZW1wbGF0ZSwgd2UgdXNlIGFuIGVjLXRhZ3MgZWxlbWVudCBmb3IgdGhlIHByZS1ob3ZlciBzdGF0ZSBhbmQgYW4gZW50aXJlbHlcclxuICAgKiAgc2VwYXJhdGUgZWMtdGFncyBlbGVtZW50IGZvciBvdXIgaG92ZXIgc3RhdGUsIHJlc3VsdGluZyBpbiB0d28gY29tcG9uZW50cy4gVG8gYWNoaWV2ZSBhIGNoYW5nZSBcclxuICAgKiBpbiB0aGUgYmFja2dyb3VuZC1jb2xvciBmb3Igb3VyIGFuY2hvciB0YWcsIG9uIGhvdmVyLCBhIGRpZmZlcmVudCB0YWcudGFnVHlwZSBtdXN0IGJlIHByb3ZpZGVkIG9uIHRoZVxyXG4gICAqIHNlY29uZCBlYy10YWcgZWxlbWVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBob3ZlclRhZz86IFRhZztcclxuXHJcbiAgcHJpdmF0ZSBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcclxuICBwcml2YXRlIGNvbnRlbnRWaWV3UmVmPzogRW1iZWRkZWRWaWV3UmVmPGFueT47XHJcbiAgcHJpdmF0ZSBjb250ZW50UmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIGlzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIG1vdXNlT3ZlciA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBpbnRlcnJ1cHQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgdG9vbHRpcFNlcnZpY2U6IFRvb2x0aXBTZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIC8qKiBXaGVuIHRoZSBwb3BvdmVyIGluaXRpYWxpemVzLCBpZiBhIG5ldyB0YWdUeXBlIGlzIHByb3ZpZGVkIGZvciB0aGUgaG92ZXIgc3RhdGUgb2YgdGhlIHBvcG92ZXIsIFxyXG4gICAqICB3ZSB1c2UgaXQgdG8gdXBkYXRlIHRoZSB0eXBlIG9mIG91ciBcImhvdmVyVGFnXCIgKHdoaWNoIGNvbnRyb2xzIGJhY2tncm91bmQtY29sb3Igb2YgdGFnKSBcclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnRhZyAmJiB0aGlzLnRhZ0hvdmVyVHlwZSkge1xyXG4gICAgICB0aGlzLmhvdmVyVGFnID0gey4uLnRoaXMudGFnLCB0eXBlOiB0aGlzLnRhZ0hvdmVyVHlwZSB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb3VzZU92ZXJcclxuICAgIC5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PlxyXG4gICAgICAgIG9mKHYpLnBpcGUoXHJcbiAgICAgICAgICBkZWxheSgzMDApLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuaW50ZXJydXB0KVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNob3coKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuaGlkZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93KCkge1xyXG5cclxuICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcclxuICAgICAgXHJcbiAgICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLmdldE92ZXJsYXlDb25maWcoKTtcclxuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcclxuICBcclxuICAgICAgY29uc3QgY29udGVudFBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmNvbnRlbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIHRoaXMuY29udGVudFZpZXdSZWYgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKGNvbnRlbnRQb3J0YWwpO1xyXG4gIFxyXG4gICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZW92ZXInKVxyXG4gIHB1YmxpYyBvbk1vdXNlT3ZlcigpIHtcclxuICAgIHRoaXMubW91c2VPdmVyLm5leHQoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxyXG4gIHB1YmxpYyBvbkxlYXZlKCkge1xyXG4gICAgdGhpcy5pbnRlcnJ1cHQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGlkZXMgdGhlIHBvcG92ZXIgaWYgdGhlIG1vdXNlIG1vdmVzIG91dHNpZGUgb2YgdGhlIHBvcG92ZXIgY29udGVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgbGV0IGNhbGxDYWxsYmFjayA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBpZighdGhpcy5jb250ZW50UmVjdCkge1xyXG4gICAgICB0aGlzLmNvbnRlbnRSZWN0ID0gdGhpcy5jb250ZW50Vmlld1JlZj8ucm9vdE5vZGVzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMuY29udGVudFJlY3QpIHtcclxuICAgICAgY2FsbENhbGxiYWNrID0gdGhpcy50b29sdGlwU2VydmljZS5vbk1vdmUoZXZlbnQsIHRoaXMuY29udGVudFJlY3QhKTtcclxuICAgIH1cclxuICAgIGlmKGNhbGxDYWxsYmFjaykge1xyXG4gICAgICB0aGlzLmhpZGUoKTtcclxuICAgIH1cclxuICB9IFxyXG5cclxuICBwcml2YXRlIGhpZGUoKSB7XHJcbiAgICB0aGlzLmludGVycnVwdC5uZXh0KCk7XHJcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB0aGlzLmNvbnRlbnRSZWN0ID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKCk6IE92ZXJsYXlDb25maWcge1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldFBvc2l0aW9uKCk7XHJcblxyXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpXHJcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudFJlZilcclxuICAgICAgLndpdGhQb3NpdGlvbnMoW3Bvc2l0aW9uXSk7XHJcblxyXG4gICAgY29uc3QgY29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiBwb3NpdGlvblN0cmF0ZWd5XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gY29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQb3NpdGlvbigpOiBDb25uZWN0ZWRQb3NpdGlvbiB7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuY29udGVudFBvc2l0aW9uLnNwbGl0KCctJyk7XHJcbiAgICBjb25zdCBvdmVybGF5WCA9IDwnc3RhcnQnIHwgJ2VuZCc+KHBvc2l0aW9uWzFdID09ICdsZWZ0JyA/ICdzdGFydCcgOiAnZW5kJyk7XHJcbiAgICBjb25zdCBvdmVybGF5WSA9IDwndG9wJyB8ICdib3R0b20nPnBvc2l0aW9uWzBdO1xyXG4gICAgcmV0dXJuIHsgb3JpZ2luWDogb3ZlcmxheVgsIG9yaWdpblk6IG92ZXJsYXlZLCBvdmVybGF5WDogb3ZlcmxheVgsIG92ZXJsYXlZOiBvdmVybGF5WSB9O1xyXG4gIH1cclxufVxyXG4iLCI8IS0tIEJlZm9yZSBob3ZlciBzdGF0ZSAtLT5cclxuPGRpdiBjbGFzcz1cInAtMlwiPlxyXG4gIDxpICpuZ0lmPVwiIXRhZ1wiIGNsYXNzPVwiZWMtaWNvbiB7e2ljb259fSBlYy1pY29uLXNtXCI+PC9pPlxyXG4gIDxlYy10YWdzICpuZ0lmPVwidGFnXCJcclxuICAgICAgICAgICAgW2lzQ29uZGVuc2VkXSA9IFwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFt0YWdzXT1cInRhZ1wiPlxyXG4gIDwvZWMtdGFncz5cclxuPC9kaXY+XHJcbjwhLS0gLi9CZWZvcmUgaG92ZXIgc3RhdGUgLS0+XHJcblxyXG48IS0tIEhvdmVyIHN0YXRlIC0tPlxyXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcbiAgPGFydGljbGUgY2xhc3M9XCJwb3BvdmVyLWNvbnRlbnRcIlxyXG4gICAgICAgICAgIChkb2N1bWVudDptb3VzZW1vdmUpPVwib25Nb3VzZU1vdmUoJGV2ZW50KVwiPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDwvYXJ0aWNsZT5cclxuICA8ZGl2IGNsYXNzPVwicC0yIHt7Y29udGVudFBvc2l0aW9ufX1cIj5cclxuICAgIDxpICpuZ0lmPVwiIXRhZ1wiIGNsYXNzPVwiZWMtaWNvbiB7e2ljb259fSBlYy1pY29uLXNtIHt7aWNvbkhvdmVyQ2xhc3N9fVwiPjwvaT5cclxuICAgIDxlYy10YWdzICpuZ0lmPVwidGFnXCJcclxuICAgICAgICAgICAgIFtpc0NvbmRlbnNlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgIFt0YWdzXT1cImhvdmVyVGFnXCI+XHJcbiAgICA8L2VjLXRhZ3M+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjwhLS0gLi9Ib3ZlciBzdGF0ZSAtLT5cclxuIl19
|
@@ -1,82 +0,0 @@
|
|
1
|
-
import { Component, Input, ViewChild } from '@angular/core';
|
2
|
-
import { FormControlBase } from '../form-control-base';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "../../core/validation-message.service";
|
5
|
-
import * as i2 from "../../shared/form-group.helper";
|
6
|
-
import * as i3 from "@angular/common";
|
7
|
-
import * as i4 from "@angular/forms";
|
8
|
-
import * as i5 from "../help-popover/help-popover.component";
|
9
|
-
import * as i6 from "@ngx-translate/core";
|
10
|
-
/**
|
11
|
-
* A single or group of radio button. Only one option can be checked
|
12
|
-
* at a time
|
13
|
-
*/
|
14
|
-
export class RadioButtonComponent extends FormControlBase {
|
15
|
-
constructor(validationMessageService, formGroupHelper) {
|
16
|
-
super(validationMessageService, formGroupHelper);
|
17
|
-
this.validationMessageService = validationMessageService;
|
18
|
-
this.formGroupHelper = formGroupHelper;
|
19
|
-
/**
|
20
|
-
* Display the radio button options as a default set of radio button inputs or
|
21
|
-
* as a toggle switch
|
22
|
-
* @default 'radio'
|
23
|
-
*/
|
24
|
-
this.type = "radio";
|
25
|
-
/**
|
26
|
-
* One or more options to display
|
27
|
-
*/
|
28
|
-
this.options = [];
|
29
|
-
/**
|
30
|
-
* If there is more than one option, display them in a row or column.
|
31
|
-
* @default 'row'
|
32
|
-
*/
|
33
|
-
this.direction = "row";
|
34
|
-
/**
|
35
|
-
* The name of the radio input element used to group radio elements
|
36
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio
|
37
|
-
*/
|
38
|
-
this.name = '';
|
39
|
-
}
|
40
|
-
ngOnInit() {
|
41
|
-
super.ngOnInit();
|
42
|
-
this.currentClasses = [];
|
43
|
-
if (this.type === 'toggle') {
|
44
|
-
this.currentClasses.push('radio-group-toggle');
|
45
|
-
}
|
46
|
-
else if (this.direction === 'column') {
|
47
|
-
this.currentClasses.push('radio-group-column');
|
48
|
-
}
|
49
|
-
// If the formModel is assigned an undefined or null value, set it to the first option
|
50
|
-
this.formModel.valueChanges.subscribe(() => {
|
51
|
-
if (this.formModel.value === undefined || this.formModel.value === null) {
|
52
|
-
this.formModel.setValue(this.options[0].value);
|
53
|
-
}
|
54
|
-
});
|
55
|
-
}
|
56
|
-
ngAfterViewInit() {
|
57
|
-
if (this.autofocus) {
|
58
|
-
this.inputElement.nativeElement.focus();
|
59
|
-
}
|
60
|
-
if (this.options.length > 5 && this.type === "toggle") {
|
61
|
-
console.warn("Radio button components with a type of toggle cannot have more than 5 options");
|
62
|
-
}
|
63
|
-
}
|
64
|
-
}
|
65
|
-
RadioButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RadioButtonComponent, deps: [{ token: i1.ValidationMessageService }, { token: i2.FormGroupHelper }], target: i0.ɵɵFactoryTarget.Component });
|
66
|
-
RadioButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: RadioButtonComponent, selector: "ec-radiobutton", inputs: { type: "type", options: "options", direction: "direction", name: "name" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["radioInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"control\"\r\n [class.control-label-bottom]=\"labelPosition === 'bottom'\">\r\n\r\n <label *ngIf=\"label\">\r\n <span>{{label | translate}}</span>\r\n <span *ngIf=\"validationErrors.length > 0 && formModel.touched && formModel.invalid\"> {{validationErrors | translate}}</span>\r\n <ec-help-popover id=\"{{id}}_helpPopover\"\r\n *ngIf=\"helpPopover\"\r\n class=\"d-inline-block my-n3 mx-n1\"\r\n text=\"{{helpPopover | translate}}\"\r\n contentPosition=\"{{helpPopoverPosition}}\">\r\n </ec-help-popover>\r\n </label>\r\n \r\n <div class=\"radio-group {{'toggle-options-' + options.length}}\"\r\n [ngClass]=\"currentClasses\"\r\n [class.is-disabled]=\"formModel.disabled\"\r\n [class.is-readonly]=\"readonly\">\r\n\r\n <!-- RadioButton type=\"toggle\"-->\r\n <!-- There are two ng-templates here due to the fact you can't have ngIf and ngFor on the same element -->\r\n <ng-container *ngIf=\"type === 'toggle'\">\r\n <ng-container *ngFor=\"let option of options; index as i; first as isFirst\">\r\n <!-- The input has two name attributes set, one is for the form model and one is for the broswer. With one set\r\n the tabbing did not work, and with the other the controls were all linked together. They both need set\r\n for the best of both worlds -->\r\n <input [attr.id]=\"inputId + i.toString()\"\r\n [formControl]=\"formModel\"\r\n type=\"radio\"\r\n tabindex=\"{{tabindex}}\"\r\n [value]=\"option.value\"\r\n #radioInput\r\n name=\"{{name}}\"\r\n attr.name=\"{{name}}\"\r\n [attr.cdkFocusInitial]=\"(autofocus && isFirst) || null\">\r\n <label [attr.for]=\"inputId + i.toString()\"\r\n title=\"{{ option.tooltip | translate}}\">\r\n <i class=\"ec-icon {{option.icon}}\"\r\n *ngIf=\"option.icon\"></i>\r\n <span id=\"{{inputId}}_label{{i.toString()}}\"\r\n *ngIf=\"option.label\">{{option.label | translate}}</span>\r\n </label>\r\n </ng-container>\r\n <a>\r\n <div class=\"toggle-handle\"></div>\r\n </a>\r\n <div class=\"toggle-focused\"></div>\r\n </ng-container>\r\n\r\n <!-- RadioButton type=\"radio\"-->\r\n <!-- There are two ng-templates here due to the fact you can't have ngIf and ngFor on the same element -->\r\n <ng-container *ngIf=\"type === 'radio'\">\r\n <ng-container *ngFor=\"let option of options; index as i; first as isFirst\">\r\n <label class='radio-button'\r\n title=\"{{ option.tooltip | translate}}\">\r\n <!-- The input has two name attributes set, one is for the form model and one is for the broswer. With one set\r\n the tabbing did not work, and with the other the controls were all linked together. They both need set\r\n for the best of both worlds -->\r\n <input [attr.id]=\"inputId + i.toString()\"\r\n class=\"input\"\r\n [formControl]=\"formModel\"\r\n type=\"radio\"\r\n value=\"{{option.value}}\"\r\n #radioInput\r\n tabindex=\"{{tabindex}}\"\r\n name=\"{{name}}\"\r\n attr.name=\"{{name}}\"\r\n [attr.cdkFocusInitial]=\"(autofocus && isFirst) || null\">\r\n <span class=\"indicator\"></span>\r\n <span id=\"{{inputId}}_label{{i.toString()}}\"\r\n class=\"label\"\r\n *ngIf=\"option.label\"\r\n [innerHtml]=\"option.label | translate\"></span>\r\n </label>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);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,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);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-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host(.w-auto){width:auto}.control>label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.radio-group{display:flex;flex-wrap:wrap}.radio-group-column{flex-direction:column}.radio-group-column .radio-button{margin-right:auto}.radio-group.is-disabled .radio-button{cursor:default}.radio-group.is-readonly .radio-button{pointer-events:none}.radio-group.is-readonly .radio-button .input{opacity:0}.radio-group.is-readonly .radio-button .indicator{background-color:var(--ec-form-control-background-color-readonly);border-color:var(--ec-form-control-border-color-readonly)}.radio-group.is-readonly .radio-button .label,.radio-group.is-readonly .radio-button .indicator{opacity:1;color:var(--ec-form-control-color)}.radio-group.is-readonly.radio-group-toggle{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}.radio-group.is-readonly.radio-group-toggle a,.radio-group.is-readonly.radio-group-toggle input:not(:checked),.radio-group.is-readonly.radio-group-toggle input:not(:checked)+label{display:none}.radio-group.is-readonly.radio-group-toggle input:checked+label{color:inherit;justify-content:flex-start}.radio-button{cursor:pointer;display:inline-flex;margin-bottom:0;position:relative}.radio-button:not(:last-child){margin-right:1rem}.input{margin-top:.5rem;opacity:0;position:absolute;z-index:-1}.input:not(:checked)+.indicator{color:var(--ec-form-control-border-color)}.input:not(:checked)+.indicator:before{display:none}.input:focus+.indicator{color:var(--ec-color-interactive);box-shadow:var(--ec-form-control-box-shadow-focus);border-color:var(--ec-form-control-border-color-focus)}.input:disabled+.indicator{color:var(--ec-form-control-color-disabled);background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.input:disabled~.label{color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.indicator{background-color:var(--ec-form-control-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:50%}.indicator:before{background-color:currentColor;content:\"\";display:block;width:.5em;height:.5em;border-radius:50%}.label{line-height:1.25rem;padding:.375rem 0;margin-left:.5rem;min-height:2rem;height:auto}.radio-group-toggle{font-size:var(--ec-form-control-font-size);background-color:var(--ec-border-color);border-radius:var(--ec-border-radius);border:1px solid var(--ec-border-color);min-height:2em;position:relative;color:var(--ec-color-secondary-dark);display:flex}.radio-group-toggle input{position:absolute;z-index:-1;opacity:0}.radio-group-toggle input:checked+label{color:var(--ec-color-interactive)}.radio-group-toggle input:checked:last-of-type~a{transform:translate(100%)}.radio-group-toggle input:focus~.toggle-focused{display:block}.radio-group-toggle .toggle-focused{position:absolute;inset:0;box-shadow:var(--ec-form-control-box-shadow-focus);border-radius:var(--ec-form-control-border-radius);display:none}.radio-group-toggle label{align-items:center;cursor:pointer;display:flex;flex:1 1 0%;justify-content:center;line-height:1.1em;margin-bottom:0;padding:.375rem .5rem;position:relative;text-align:center;transition:color .3s ease;z-index:2}.radio-group-toggle label .ec-icon{color:inherit}.radio-group-toggle a{border:.1875rem solid transparent;border-radius:calc(var(--ec-form-control-border-radius) * .75);display:block;height:100%;left:0;position:absolute;top:0;transition:transform .25s ease;width:50%;z-index:1}.radio-group-toggle a .toggle-handle{background-color:var(--ec-form-control-background-color);border-radius:calc(var(--ec-form-control-border-radius) * .75);height:100%}.radio-group-toggle.is-disabled{opacity:var(--ec-form-control-opacity-disabled);color:var(--ec-form-control-color-disabled)}.radio-group-toggle.is-disabled label{color:inherit!important;cursor:default}.toggle-options-3 a{width:33.3333333333%}.toggle-options-3 input:checked:last-of-type~a{transform:translate(200%)}.toggle-options-3 input:checked:nth-of-type(2)~a{transform:translate(100%)}.toggle-options-4 a{width:25%}.toggle-options-4 input:checked:last-of-type~a{transform:translate(300%)}.toggle-options-4 input:checked:nth-of-type(3)~a{transform:translate(200%)}.toggle-options-4 input:checked:nth-of-type(2)~a{transform:translate(100%)}.toggle-options-5 a{width:20%}.toggle-options-5 input:checked:last-of-type~a{transform:translate(400%)}.toggle-options-5 input:checked:nth-of-type(4)~a{transform:translate(300%)}.toggle-options-5 input:checked:nth-of-type(3)~a{transform:translate(200%)}.toggle-options-5 input:checked:nth-of-type(2)~a{transform:translate(100%)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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: "component", type: i5.HelpPopoverComponent, selector: "ec-help-popover", inputs: ["id", "text", "contentPosition", "maxWidth"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RadioButtonComponent, decorators: [{
|
68
|
-
type: Component,
|
69
|
-
args: [{ selector: 'ec-radiobutton', template: "<div class=\"control\"\r\n [class.control-label-bottom]=\"labelPosition === 'bottom'\">\r\n\r\n <label *ngIf=\"label\">\r\n <span>{{label | translate}}</span>\r\n <span *ngIf=\"validationErrors.length > 0 && formModel.touched && formModel.invalid\"> {{validationErrors | translate}}</span>\r\n <ec-help-popover id=\"{{id}}_helpPopover\"\r\n *ngIf=\"helpPopover\"\r\n class=\"d-inline-block my-n3 mx-n1\"\r\n text=\"{{helpPopover | translate}}\"\r\n contentPosition=\"{{helpPopoverPosition}}\">\r\n </ec-help-popover>\r\n </label>\r\n \r\n <div class=\"radio-group {{'toggle-options-' + options.length}}\"\r\n [ngClass]=\"currentClasses\"\r\n [class.is-disabled]=\"formModel.disabled\"\r\n [class.is-readonly]=\"readonly\">\r\n\r\n <!-- RadioButton type=\"toggle\"-->\r\n <!-- There are two ng-templates here due to the fact you can't have ngIf and ngFor on the same element -->\r\n <ng-container *ngIf=\"type === 'toggle'\">\r\n <ng-container *ngFor=\"let option of options; index as i; first as isFirst\">\r\n <!-- The input has two name attributes set, one is for the form model and one is for the broswer. With one set\r\n the tabbing did not work, and with the other the controls were all linked together. They both need set\r\n for the best of both worlds -->\r\n <input [attr.id]=\"inputId + i.toString()\"\r\n [formControl]=\"formModel\"\r\n type=\"radio\"\r\n tabindex=\"{{tabindex}}\"\r\n [value]=\"option.value\"\r\n #radioInput\r\n name=\"{{name}}\"\r\n attr.name=\"{{name}}\"\r\n [attr.cdkFocusInitial]=\"(autofocus && isFirst) || null\">\r\n <label [attr.for]=\"inputId + i.toString()\"\r\n title=\"{{ option.tooltip | translate}}\">\r\n <i class=\"ec-icon {{option.icon}}\"\r\n *ngIf=\"option.icon\"></i>\r\n <span id=\"{{inputId}}_label{{i.toString()}}\"\r\n *ngIf=\"option.label\">{{option.label | translate}}</span>\r\n </label>\r\n </ng-container>\r\n <a>\r\n <div class=\"toggle-handle\"></div>\r\n </a>\r\n <div class=\"toggle-focused\"></div>\r\n </ng-container>\r\n\r\n <!-- RadioButton type=\"radio\"-->\r\n <!-- There are two ng-templates here due to the fact you can't have ngIf and ngFor on the same element -->\r\n <ng-container *ngIf=\"type === 'radio'\">\r\n <ng-container *ngFor=\"let option of options; index as i; first as isFirst\">\r\n <label class='radio-button'\r\n title=\"{{ option.tooltip | translate}}\">\r\n <!-- The input has two name attributes set, one is for the form model and one is for the broswer. With one set\r\n the tabbing did not work, and with the other the controls were all linked together. They both need set\r\n for the best of both worlds -->\r\n <input [attr.id]=\"inputId + i.toString()\"\r\n class=\"input\"\r\n [formControl]=\"formModel\"\r\n type=\"radio\"\r\n value=\"{{option.value}}\"\r\n #radioInput\r\n tabindex=\"{{tabindex}}\"\r\n name=\"{{name}}\"\r\n attr.name=\"{{name}}\"\r\n [attr.cdkFocusInitial]=\"(autofocus && isFirst) || null\">\r\n <span class=\"indicator\"></span>\r\n <span id=\"{{inputId}}_label{{i.toString()}}\"\r\n class=\"label\"\r\n *ngIf=\"option.label\"\r\n [innerHtml]=\"option.label | translate\"></span>\r\n </label>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);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,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);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-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host(.w-auto){width:auto}.control>label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.radio-group{display:flex;flex-wrap:wrap}.radio-group-column{flex-direction:column}.radio-group-column .radio-button{margin-right:auto}.radio-group.is-disabled .radio-button{cursor:default}.radio-group.is-readonly .radio-button{pointer-events:none}.radio-group.is-readonly .radio-button .input{opacity:0}.radio-group.is-readonly .radio-button .indicator{background-color:var(--ec-form-control-background-color-readonly);border-color:var(--ec-form-control-border-color-readonly)}.radio-group.is-readonly .radio-button .label,.radio-group.is-readonly .radio-button .indicator{opacity:1;color:var(--ec-form-control-color)}.radio-group.is-readonly.radio-group-toggle{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}.radio-group.is-readonly.radio-group-toggle a,.radio-group.is-readonly.radio-group-toggle input:not(:checked),.radio-group.is-readonly.radio-group-toggle input:not(:checked)+label{display:none}.radio-group.is-readonly.radio-group-toggle input:checked+label{color:inherit;justify-content:flex-start}.radio-button{cursor:pointer;display:inline-flex;margin-bottom:0;position:relative}.radio-button:not(:last-child){margin-right:1rem}.input{margin-top:.5rem;opacity:0;position:absolute;z-index:-1}.input:not(:checked)+.indicator{color:var(--ec-form-control-border-color)}.input:not(:checked)+.indicator:before{display:none}.input:focus+.indicator{color:var(--ec-color-interactive);box-shadow:var(--ec-form-control-box-shadow-focus);border-color:var(--ec-form-control-border-color-focus)}.input:disabled+.indicator{color:var(--ec-form-control-color-disabled);background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.input:disabled~.label{color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.indicator{background-color:var(--ec-form-control-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:50%}.indicator:before{background-color:currentColor;content:\"\";display:block;width:.5em;height:.5em;border-radius:50%}.label{line-height:1.25rem;padding:.375rem 0;margin-left:.5rem;min-height:2rem;height:auto}.radio-group-toggle{font-size:var(--ec-form-control-font-size);background-color:var(--ec-border-color);border-radius:var(--ec-border-radius);border:1px solid var(--ec-border-color);min-height:2em;position:relative;color:var(--ec-color-secondary-dark);display:flex}.radio-group-toggle input{position:absolute;z-index:-1;opacity:0}.radio-group-toggle input:checked+label{color:var(--ec-color-interactive)}.radio-group-toggle input:checked:last-of-type~a{transform:translate(100%)}.radio-group-toggle input:focus~.toggle-focused{display:block}.radio-group-toggle .toggle-focused{position:absolute;inset:0;box-shadow:var(--ec-form-control-box-shadow-focus);border-radius:var(--ec-form-control-border-radius);display:none}.radio-group-toggle label{align-items:center;cursor:pointer;display:flex;flex:1 1 0%;justify-content:center;line-height:1.1em;margin-bottom:0;padding:.375rem .5rem;position:relative;text-align:center;transition:color .3s ease;z-index:2}.radio-group-toggle label .ec-icon{color:inherit}.radio-group-toggle a{border:.1875rem solid transparent;border-radius:calc(var(--ec-form-control-border-radius) * .75);display:block;height:100%;left:0;position:absolute;top:0;transition:transform .25s ease;width:50%;z-index:1}.radio-group-toggle a .toggle-handle{background-color:var(--ec-form-control-background-color);border-radius:calc(var(--ec-form-control-border-radius) * .75);height:100%}.radio-group-toggle.is-disabled{opacity:var(--ec-form-control-opacity-disabled);color:var(--ec-form-control-color-disabled)}.radio-group-toggle.is-disabled label{color:inherit!important;cursor:default}.toggle-options-3 a{width:33.3333333333%}.toggle-options-3 input:checked:last-of-type~a{transform:translate(200%)}.toggle-options-3 input:checked:nth-of-type(2)~a{transform:translate(100%)}.toggle-options-4 a{width:25%}.toggle-options-4 input:checked:last-of-type~a{transform:translate(300%)}.toggle-options-4 input:checked:nth-of-type(3)~a{transform:translate(200%)}.toggle-options-4 input:checked:nth-of-type(2)~a{transform:translate(100%)}.toggle-options-5 a{width:20%}.toggle-options-5 input:checked:last-of-type~a{transform:translate(400%)}.toggle-options-5 input:checked:nth-of-type(4)~a{transform:translate(300%)}.toggle-options-5 input:checked:nth-of-type(3)~a{transform:translate(200%)}.toggle-options-5 input:checked:nth-of-type(2)~a{transform:translate(100%)}\n"] }]
|
70
|
-
}], ctorParameters: function () { return [{ type: i1.ValidationMessageService }, { type: i2.FormGroupHelper }]; }, propDecorators: { type: [{
|
71
|
-
type: Input
|
72
|
-
}], options: [{
|
73
|
-
type: Input
|
74
|
-
}], direction: [{
|
75
|
-
type: Input
|
76
|
-
}], name: [{
|
77
|
-
type: Input
|
78
|
-
}], inputElement: [{
|
79
|
-
type: ViewChild,
|
80
|
-
args: ['radioInput']
|
81
|
-
}] } });
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQW9CdkQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGVBQWU7SUFxQ3ZELFlBQ1ksd0JBQWtELEVBQ2xELGVBQWdDO1FBRTFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUh2Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXRDNUM7Ozs7V0FJRztRQUNhLFNBQUksR0FBcUIsT0FBTyxDQUFDO1FBRWpEOztXQUVHO1FBQ2EsWUFBTyxHQUF3QixFQUFFLENBQUM7UUFFbEQ7OztXQUdHO1FBQ2EsY0FBUyxHQUEwQixLQUFLLENBQUM7UUFFekQ7OztVQUdFO1FBQ2MsU0FBSSxHQUFXLEVBQUUsQ0FBQztJQW1CbEMsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFFekIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ2hEO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRTtZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ2hEO1FBRUQsc0ZBQXNGO1FBQ3RGLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFO2dCQUN2RSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2hEO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN6QztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ3JELE9BQU8sQ0FBQyxJQUFJLENBQUMsK0VBQStFLENBQUMsQ0FBQztTQUMvRjtJQUNILENBQUM7O2lIQXRFVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiw2UUMzQmpDLHEwSEErRU07MkZEcERPLG9CQUFvQjtrQkFWaEMsU0FBUzsrQkFDRSxnQkFBZ0I7NklBZVYsSUFBSTtzQkFBbkIsS0FBSztnQkFLVSxPQUFPO3NCQUF0QixLQUFLO2dCQU1VLFNBQVM7c0JBQXhCLEtBQUs7Z0JBTVUsSUFBSTtzQkFBbkIsS0FBSztnQkFZNkIsWUFBWTtzQkFBOUMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cEhlbHBlciB9IGZyb20gJy4uLy4uL3NoYXJlZC9mb3JtLWdyb3VwLmhlbHBlcic7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sQmFzZSB9IGZyb20gJy4uL2Zvcm0tY29udHJvbC1iYXNlJztcclxuaW1wb3J0IHsgUmFkaW9CdXR0b25PcHRpb24gfSBmcm9tICcuL3JhZGlvLWJ1dHRvbi1vcHRpb24nO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBSb3cgZGlzcGxheXMgb3B0aW9ucyBob3Jpem9udGFsbHksIGNvbHVtbiBkaXNwbGF5cyBvcHRpb25zIHZlcnRpY2FsbHlcclxuICovXHJcbmV4cG9ydCB0eXBlIFJhZGlvQnV0dG9uRGlyZWN0aW9uID0gXCJyb3dcIiB8IFwiY29sdW1uXCI7XHJcblxyXG4vKipcclxuICogUmFkaW8gaXMgdGhlIGRlZmF1bHQgYnV0dG9uIHN0eWxlLCB0b2dnbGUgd2lsbCBzdHlsZSBhcyBhIHRvZ2dsZSBzd2l0Y2hcclxuICovXHJcbmV4cG9ydCB0eXBlIFJhZGlvQnV0dG9uVHlwZSA9IFwicmFkaW9cIiB8IFwidG9nZ2xlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXJhZGlvYnV0dG9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yYWRpby1idXR0b24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuLyoqXHJcbiAqIEEgc2luZ2xlIG9yIGdyb3VwIG9mIHJhZGlvIGJ1dHRvbi4gT25seSBvbmUgb3B0aW9uIGNhbiBiZSBjaGVja2VkXHJcbiAqIGF0IGEgdGltZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJhZGlvQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0IHtcclxuICAvKipcclxuICAgKiBEaXNwbGF5IHRoZSByYWRpbyBidXR0b24gb3B0aW9ucyBhcyBhIGRlZmF1bHQgc2V0IG9mIHJhZGlvIGJ1dHRvbiBpbnB1dHMgb3JcclxuICAgKiBhcyBhIHRvZ2dsZSBzd2l0Y2hcclxuICAgKiBAZGVmYXVsdCAncmFkaW8nXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHR5cGU/OiBSYWRpb0J1dHRvblR5cGUgPSBcInJhZGlvXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uZSBvciBtb3JlIG9wdGlvbnMgdG8gZGlzcGxheVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBvcHRpb25zOiBSYWRpb0J1dHRvbk9wdGlvbltdID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgb3B0aW9uLCBkaXNwbGF5IHRoZW0gaW4gYSByb3cgb3IgY29sdW1uLlxyXG4gICAqIEBkZWZhdWx0ICdyb3cnXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGRpcmVjdGlvbj86IFJhZGlvQnV0dG9uRGlyZWN0aW9uID0gXCJyb3dcIjtcclxuXHJcbiAgLyoqXHJcbiAgKiBUaGUgbmFtZSBvZiB0aGUgcmFkaW8gaW5wdXQgZWxlbWVudCB1c2VkIHRvIGdyb3VwIHJhZGlvIGVsZW1lbnRzXHJcbiAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbnB1dC9yYWRpb1xyXG4gICovXHJcbiAgQElucHV0KCkgcHVibGljIG5hbWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBBbiBhcnJheSBvZiBjbGFzc25hbWVzIHRoYXQgd2lsbCBiZSBwYXNzZWQgaW50byBuZ0NsYXNzXHJcbiAgICovXHJcbiAgcHVibGljIGN1cnJlbnRDbGFzc2VzITogc3RyaW5nW107XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgZmlyc3QgaW5wdXQgZm91bmQgd2l0aCB0aGUgcmFkaW9JbnB1dCByZWZlcmVuY2UgdmFyaWFibGUuICBBbGwgcmFkaW9cclxuICAgKiBpbnB1dHMgZm9yIHRoaXMgY29tcG9uZW50IHdpbGwgYmUgdGFnZ2VkIHdpdGggdGhpcyByZWYgdmFyaWFibGUsIGJ1dCBvbmx5IHRoZSBmaXJzdCBmb3VuZFxyXG4gICAqIHdpbGwgYmUgc2VsZWN0ZWQgYXMgdGhlIGlucHV0RWxlbWVudCBmb3IgYXV0b2ZvY3VzXHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgncmFkaW9JbnB1dCcpIHByb3RlY3RlZCBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCB2YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2U6IFZhbGlkYXRpb25NZXNzYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBmb3JtR3JvdXBIZWxwZXI6IEZvcm1Hcm91cEhlbHBlclxyXG4gICkge1xyXG4gICAgc3VwZXIodmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlLCBmb3JtR3JvdXBIZWxwZXIpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5jdXJyZW50Q2xhc3NlcyA9IFtdO1xyXG5cclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd0b2dnbGUnKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudENsYXNzZXMucHVzaCgncmFkaW8tZ3JvdXAtdG9nZ2xlJyk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGlyZWN0aW9uID09PSAnY29sdW1uJykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRDbGFzc2VzLnB1c2goJ3JhZGlvLWdyb3VwLWNvbHVtbicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHRoZSBmb3JtTW9kZWwgaXMgYXNzaWduZWQgYW4gdW5kZWZpbmVkIG9yIG51bGwgdmFsdWUsIHNldCBpdCB0byB0aGUgZmlyc3Qgb3B0aW9uXHJcbiAgICB0aGlzLmZvcm1Nb2RlbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZm9ybU1vZGVsLnZhbHVlID09PSB1bmRlZmluZWQgfHwgdGhpcy5mb3JtTW9kZWwudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLmZvcm1Nb2RlbC5zZXRWYWx1ZSh0aGlzLm9wdGlvbnNbMF0udmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuYXV0b2ZvY3VzKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLmxlbmd0aCA+IDUgJiYgdGhpcy50eXBlID09PSBcInRvZ2dsZVwiKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcIlJhZGlvIGJ1dHRvbiBjb21wb25lbnRzIHdpdGggYSB0eXBlIG9mIHRvZ2dsZSBjYW5ub3QgaGF2ZSBtb3JlIHRoYW4gNSBvcHRpb25zXCIpO1xyXG4gICAgfVxyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJjb250cm9sXCJcclxuICAgICBbY2xhc3MuY29udHJvbC1sYWJlbC1ib3R0b21dPVwibGFiZWxQb3NpdGlvbiA9PT0gJ2JvdHRvbSdcIj5cclxuXHJcbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIj5cclxuICAgIDxzcGFuPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgIDxzcGFuICpuZ0lmPVwidmFsaWRhdGlvbkVycm9ycy5sZW5ndGggPiAwICYmIGZvcm1Nb2RlbC50b3VjaGVkICYmIGZvcm1Nb2RlbC5pbnZhbGlkXCI+Jm5ic3A7e3t2YWxpZGF0aW9uRXJyb3JzIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICA8ZWMtaGVscC1wb3BvdmVyIGlkPVwie3tpZH19X2hlbHBQb3BvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWxwUG9wb3ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2sgbXktbjMgbXgtbjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICB0ZXh0PVwie3toZWxwUG9wb3ZlciB8IHRyYW5zbGF0ZX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgY29udGVudFBvc2l0aW9uPVwie3toZWxwUG9wb3ZlclBvc2l0aW9ufX1cIj5cclxuICAgIDwvZWMtaGVscC1wb3BvdmVyPlxyXG4gIDwvbGFiZWw+XHJcbiAgXHJcbiAgPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwIHt7J3RvZ2dsZS1vcHRpb25zLScgKyBvcHRpb25zLmxlbmd0aH19XCJcclxuICAgICAgIFtuZ0NsYXNzXT1cImN1cnJlbnRDbGFzc2VzXCJcclxuICAgICAgIFtjbGFzcy5pcy1kaXNhYmxlZF09XCJmb3JtTW9kZWwuZGlzYWJsZWRcIlxyXG4gICAgICAgW2NsYXNzLmlzLXJlYWRvbmx5XT1cInJlYWRvbmx5XCI+XHJcblxyXG4gICAgPCEtLSBSYWRpb0J1dHRvbiB0eXBlPVwidG9nZ2xlXCItLT5cclxuICAgIDwhLS0gVGhlcmUgYXJlIHR3byBuZy10ZW1wbGF0ZXMgaGVyZSBkdWUgdG8gdGhlIGZhY3QgeW91IGNhbid0IGhhdmUgbmdJZiBhbmQgbmdGb3Igb24gdGhlIHNhbWUgZWxlbWVudCAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAndG9nZ2xlJ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uczsgaW5kZXggYXMgaTsgZmlyc3QgYXMgaXNGaXJzdFwiPlxyXG4gICAgICAgIDwhLS0gVGhlIGlucHV0IGhhcyB0d28gbmFtZSBhdHRyaWJ1dGVzIHNldCwgb25lIGlzIGZvciB0aGUgZm9ybSBtb2RlbCBhbmQgb25lIGlzIGZvciB0aGUgYnJvc3dlci4gIFdpdGggb25lIHNldFxyXG4gICAgICAgICAgICAgICAgICAgICB0aGUgdGFiYmluZyBkaWQgbm90IHdvcmssIGFuZCB3aXRoIHRoZSBvdGhlciB0aGUgY29udHJvbHMgd2VyZSBhbGwgbGlua2VkIHRvZ2V0aGVyLiAgVGhleSBib3RoIG5lZWQgc2V0XHJcbiAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgYmVzdCBvZiBib3RoIHdvcmxkcyAtLT5cclxuICAgICAgICA8aW5wdXQgW2F0dHIuaWRdPVwiaW5wdXRJZCArIGkudG9TdHJpbmcoKVwiXHJcbiAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtTW9kZWxcIlxyXG4gICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgICB0YWJpbmRleD1cInt7dGFiaW5kZXh9fVwiXHJcbiAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAjcmFkaW9JbnB1dFxyXG4gICAgICAgICAgICAgICBuYW1lPVwie3tuYW1lfX1cIlxyXG4gICAgICAgICAgICAgICBhdHRyLm5hbWU9XCJ7e25hbWV9fVwiXHJcbiAgICAgICAgICAgICAgIFthdHRyLmNka0ZvY3VzSW5pdGlhbF09XCIoYXV0b2ZvY3VzICYmIGlzRmlyc3QpIHx8IG51bGxcIj5cclxuICAgICAgICA8bGFiZWwgW2F0dHIuZm9yXT1cImlucHV0SWQgKyBpLnRvU3RyaW5nKClcIlxyXG4gICAgICAgICAgICAgICB0aXRsZT1cInt7IG9wdGlvbi50b29sdGlwIHwgdHJhbnNsYXRlfX1cIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZWMtaWNvbiB7e29wdGlvbi5pY29ufX1cIlxyXG4gICAgICAgICAgICAgKm5nSWY9XCJvcHRpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgIDxzcGFuIGlkPVwie3tpbnB1dElkfX1fbGFiZWx7e2kudG9TdHJpbmcoKX19XCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLmxhYmVsXCI+e3tvcHRpb24ubGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPGE+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvZ2dsZS1oYW5kbGVcIj48L2Rpdj5cclxuICAgICAgPC9hPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidG9nZ2xlLWZvY3VzZWRcIj48L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gUmFkaW9CdXR0b24gdHlwZT1cInJhZGlvXCItLT5cclxuICAgIDwhLS0gVGhlcmUgYXJlIHR3byBuZy10ZW1wbGF0ZXMgaGVyZSBkdWUgdG8gdGhlIGZhY3QgeW91IGNhbid0IGhhdmUgbmdJZiBhbmQgbmdGb3Igb24gdGhlIHNhbWUgZWxlbWVudCAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAncmFkaW8nXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zOyBpbmRleCBhcyBpOyBmaXJzdCBhcyBpc0ZpcnN0XCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPSdyYWRpby1idXR0b24nXHJcbiAgICAgICAgICAgICAgIHRpdGxlPVwie3sgb3B0aW9uLnRvb2x0aXAgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgICAgICAgPCEtLSBUaGUgaW5wdXQgaGFzIHR3byBuYW1lIGF0dHJpYnV0ZXMgc2V0LCBvbmUgaXMgZm9yIHRoZSBmb3JtIG1vZGVsIGFuZCBvbmUgaXMgZm9yIHRoZSBicm9zd2VyLiAgV2l0aCBvbmUgc2V0XHJcbiAgICAgICAgICAgICAgICAgICAgIHRoZSB0YWJiaW5nIGRpZCBub3Qgd29yaywgYW5kIHdpdGggdGhlIG90aGVyIHRoZSBjb250cm9scyB3ZXJlIGFsbCBsaW5rZWQgdG9nZXRoZXIuICBUaGV5IGJvdGggbmVlZCBzZXRcclxuICAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSBiZXN0IG9mIGJvdGggd29ybGRzIC0tPlxyXG4gICAgICAgICAgPGlucHV0IFthdHRyLmlkXT1cImlucHV0SWQgKyBpLnRvU3RyaW5nKClcIlxyXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgICAgdmFsdWU9XCJ7e29wdGlvbi52YWx1ZX19XCJcclxuICAgICAgICAgICAgICAgICAjcmFkaW9JbnB1dFxyXG4gICAgICAgICAgICAgICAgIHRhYmluZGV4PVwie3t0YWJpbmRleH19XCJcclxuICAgICAgICAgICAgICAgICBuYW1lPVwie3tuYW1lfX1cIlxyXG4gICAgICAgICAgICAgICAgIGF0dHIubmFtZT1cInt7bmFtZX19XCJcclxuICAgICAgICAgICAgICAgICBbYXR0ci5jZGtGb2N1c0luaXRpYWxdPVwiKGF1dG9mb2N1cyAmJiBpc0ZpcnN0KSB8fCBudWxsXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZGljYXRvclwiPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGlkPVwie3tpbnB1dElkfX1fbGFiZWx7e2kudG9TdHJpbmcoKX19XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJvcHRpb24ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgW2lubmVySHRtbF09XCJvcHRpb24ubGFiZWwgfCB0cmFuc2xhdGVcIj48L3NwYW4+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj4iXX0=
|
@@ -1,88 +0,0 @@
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
2
|
-
import { FormControlBase } from '../form-control-base';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "../../core/validation-message.service";
|
5
|
-
import * as i2 from "../../shared/form-group.helper";
|
6
|
-
import * as i3 from "@angular/common";
|
7
|
-
import * as i4 from "@angular/forms";
|
8
|
-
import * as i5 from "../help-popover/help-popover.component";
|
9
|
-
import * as i6 from "@ngx-translate/core";
|
10
|
-
export class SelectComponent extends FormControlBase {
|
11
|
-
constructor(validationMessageService, formGroupHelper, el) {
|
12
|
-
super(validationMessageService, formGroupHelper);
|
13
|
-
this.validationMessageService = validationMessageService;
|
14
|
-
this.formGroupHelper = formGroupHelper;
|
15
|
-
this.el = el;
|
16
|
-
/**
|
17
|
-
* When the component is not required, defines the label for an additional first option that sets the control to null
|
18
|
-
*/
|
19
|
-
this.placeholder = '';
|
20
|
-
/**
|
21
|
-
* When the component is not required, an additional option is added with a value of null.
|
22
|
-
*/
|
23
|
-
this.options = [];
|
24
|
-
/**
|
25
|
-
* Select a default option automatically during initialization and when options change. Default: `true`.
|
26
|
-
* * If formModel has a value
|
27
|
-
* * Make no change if the current value exists in options
|
28
|
-
* * Otherwise, set value to the first option if control is required, or null if optional and emit event
|
29
|
-
* * If formModel has no value
|
30
|
-
* * Set value to first option if control is required and emit eventSet to false to manually manage form state.
|
31
|
-
*
|
32
|
-
* Set to false to opt out of automatic state management
|
33
|
-
*/
|
34
|
-
this.autoDefault = true;
|
35
|
-
}
|
36
|
-
ngOnChanges(changes) {
|
37
|
-
if (changes.options && this.autoDefault) {
|
38
|
-
this.onOptionsChange(changes.options.firstChange);
|
39
|
-
}
|
40
|
-
super.ngOnChanges(changes);
|
41
|
-
}
|
42
|
-
ngAfterViewInit() {
|
43
|
-
if (this.autofocus) {
|
44
|
-
this.focus();
|
45
|
-
}
|
46
|
-
if (!this.autoDefault) {
|
47
|
-
console.warn(`SelectComponent#${this.id} has 'autoDefault' set to false and will not select the default option.`);
|
48
|
-
}
|
49
|
-
}
|
50
|
-
focus() {
|
51
|
-
const hostEl = this.el.nativeElement;
|
52
|
-
const selectEl = hostEl.querySelector('select');
|
53
|
-
if (selectEl) {
|
54
|
-
selectEl.focus();
|
55
|
-
}
|
56
|
-
}
|
57
|
-
/**
|
58
|
-
* If formModel has a value
|
59
|
-
* * Make no change if the current value exists in options
|
60
|
-
* * Otherwise, set value to the first option if control is required, or null if optional and emit event
|
61
|
-
* If formModel has no value
|
62
|
-
* * Set value to first option if control is required and emit event
|
63
|
-
*/
|
64
|
-
onOptionsChange(firstChange) {
|
65
|
-
if (this.formModel.value !== null && this.formModel.value !== undefined && this.formModel.value !== '') {
|
66
|
-
if (this.options.every(opt => opt.value !== this.formModel.value)) {
|
67
|
-
const value = this.required ? this.options[0]?.value : null;
|
68
|
-
this.formModel.setValue(value, { emitEvent: !firstChange });
|
69
|
-
}
|
70
|
-
}
|
71
|
-
else if (this.required) {
|
72
|
-
this.formModel.setValue(this.options[0]?.value, { emitEvent: !firstChange });
|
73
|
-
}
|
74
|
-
}
|
75
|
-
}
|
76
|
-
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectComponent, deps: [{ token: i1.ValidationMessageService }, { token: i2.FormGroupHelper }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
77
|
-
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SelectComponent, selector: "ec-select", inputs: { placeholder: "placeholder", options: "options", autoDefault: "autoDefault" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"control\"\r\n [ngClass]=\"{'is-readonly': readonly, 'is-disabled': formModel.disabled}\">\r\n\r\n <label *ngIf=\"label\"\r\n for=\"{{id}}_select\">\r\n <span>{{label | translate}}</span>\r\n <ec-help-popover id=\"{{id}}_helpPopover\"\r\n *ngIf=\"helpPopover\"\r\n class=\"d-inline-block my-n3 mx-n1\"\r\n text=\"{{helpPopover | translate}}\"\r\n contentPosition=\"{{helpPopoverPosition}}\">\r\n </ec-help-popover>\r\n </label>\r\n\r\n <select [attr.id]=\"inputId\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.required]=\"required\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <option *ngIf=\"!required\"\r\n [ngValue]=\"null\">{{placeholder}}</option>\r\n <option *ngFor=\"let option of options\"\r\n [ngValue]=\"option.value\">{{option.label}}</option>\r\n </select>\r\n <i class=\"ec-icon icon-caret-down\"></i>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);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,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);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-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host .control{position:relative}:host label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}:host select{-webkit-appearance:none;appearance:none;background-color:var(--ec-form-control-background-color);border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);background-image:none;background-clip:padding-box;width:100%;line-height:1.25rem;padding:.3125rem 1.5rem .3125rem .5rem;height:2rem}:host select::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}:host select::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}:host select::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}:host select:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}:host select:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}:host select~.icon-required,:host select~.icon-invalid{color:var(--ec-form-control-border-color-invalid)}:host select:required.is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select.ng-invalid.ng-touched{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select.ng-invalid.ng-touched:focus{border-color:var(--ec-form-control-background-color-invalid)}:host select.is-pending.ng-valid,:host select.is-pending.ng-invalid,:host select.is-pending.ng-pending{background-image:\"\";background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select:focus,:host select:focus.is-empty{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}:host select:disabled{background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}:host select:disabled:required,:host select:disabled:required.is-empty{background-image:none;padding-left:.5rem;background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled)}:host select:disabled:required+.icon-required,:host select:disabled:required.is-empty+.icon-required{display:none}:host select.is-uppercase:not(.is-empty){text-transform:uppercase}:host select:focus{position:static}:host .icon-caret-down{position:absolute;right:.5rem;bottom:.5625rem;z-index:1;pointer-events:none}:host select:disabled~.icon-caret-down{opacity:var(--ec-form-control-opacity-disabled)}:host .is-readonly .icon-caret-down{display:none}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.HelpPopoverComponent, selector: "ec-help-popover", inputs: ["id", "text", "contentPosition", "maxWidth"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectComponent, decorators: [{
|
79
|
-
type: Component,
|
80
|
-
args: [{ selector: 'ec-select', template: "<div class=\"control\"\r\n [ngClass]=\"{'is-readonly': readonly, 'is-disabled': formModel.disabled}\">\r\n\r\n <label *ngIf=\"label\"\r\n for=\"{{id}}_select\">\r\n <span>{{label | translate}}</span>\r\n <ec-help-popover id=\"{{id}}_helpPopover\"\r\n *ngIf=\"helpPopover\"\r\n class=\"d-inline-block my-n3 mx-n1\"\r\n text=\"{{helpPopover | translate}}\"\r\n contentPosition=\"{{helpPopoverPosition}}\">\r\n </ec-help-popover>\r\n </label>\r\n\r\n <select [attr.id]=\"inputId\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.required]=\"required\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <option *ngIf=\"!required\"\r\n [ngValue]=\"null\">{{placeholder}}</option>\r\n <option *ngFor=\"let option of options\"\r\n [ngValue]=\"option.value\">{{option.label}}</option>\r\n </select>\r\n <i class=\"ec-icon icon-caret-down\"></i>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);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,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);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-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host .control{position:relative}:host label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}:host select{-webkit-appearance:none;appearance:none;background-color:var(--ec-form-control-background-color);border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);background-image:none;background-clip:padding-box;width:100%;line-height:1.25rem;padding:.3125rem 1.5rem .3125rem .5rem;height:2rem}:host select::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}:host select::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}:host select::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}:host select:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}:host select:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}:host select~.icon-required,:host select~.icon-invalid{color:var(--ec-form-control-border-color-invalid)}:host select:required.is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select.ng-invalid.ng-touched{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select.ng-invalid.ng-touched:focus{border-color:var(--ec-form-control-background-color-invalid)}:host select.is-pending.ng-valid,:host select.is-pending.ng-invalid,:host select.is-pending.ng-pending{background-image:\"\";background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select:focus,:host select:focus.is-empty{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}:host select:disabled{background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}:host select:disabled:required,:host select:disabled:required.is-empty{background-image:none;padding-left:.5rem;background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled)}:host select:disabled:required+.icon-required,:host select:disabled:required.is-empty+.icon-required{display:none}:host select.is-uppercase:not(.is-empty){text-transform:uppercase}:host select:focus{position:static}:host .icon-caret-down{position:absolute;right:.5rem;bottom:.5625rem;z-index:1;pointer-events:none}:host select:disabled~.icon-caret-down{opacity:var(--ec-form-control-opacity-disabled)}:host .is-readonly .icon-caret-down{display:none}\n"] }]
|
81
|
-
}], ctorParameters: function () { return [{ type: i1.ValidationMessageService }, { type: i2.FormGroupHelper }, { type: i0.ElementRef }]; }, propDecorators: { placeholder: [{
|
82
|
-
type: Input
|
83
|
-
}], options: [{
|
84
|
-
type: Input
|
85
|
-
}], autoDefault: [{
|
86
|
-
type: Input
|
87
|
-
}] } });
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQVF2RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxlQUFlO0lBd0JsRCxZQUNZLHdCQUFrRCxFQUNsRCxlQUFnQyxFQUNsQyxFQUFjO1FBRXRCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUp2Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNsQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBekJ4Qjs7V0FFRztRQUNNLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRTFCOztXQUVHO1FBQ00sWUFBTyxHQUFlLEVBQUUsQ0FBQztRQUVsQzs7Ozs7Ozs7O1dBU0c7UUFDTSxnQkFBVyxHQUFZLElBQUksQ0FBQztJQVFyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNuRDtRQUNELEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Q7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsRUFBRSx5RUFBeUUsQ0FBQyxDQUFBO1NBQ2xIO0lBQ0gsQ0FBQztJQUVPLEtBQUs7UUFDWCxNQUFNLE1BQU0sR0FBZ0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLFFBQVEsRUFBRTtZQUNaLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxlQUFlLENBQUMsV0FBb0I7UUFDMUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUN0RyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDO2dCQUM3RCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDO2FBQzNEO1NBQ0Y7YUFBTSxJQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDO1NBQzVFO0lBQ0gsQ0FBQzs7NEdBekVVLGVBQWU7Z0dBQWYsZUFBZSxxTENYNUIsc3RDQXlCTTsyRkRkTyxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFdBQVc7c0tBU1osV0FBVztzQkFBbkIsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBWUcsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cEhlbHBlciB9IGZyb20gJy4uLy4uL3NoYXJlZC9mb3JtLWdyb3VwLmhlbHBlcic7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sQmFzZSB9IGZyb20gJy4uL2Zvcm0tY29udHJvbC1iYXNlJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICcuLi9tZW51L21lbnUuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gdGhlIGNvbXBvbmVudCBpcyBub3QgcmVxdWlyZWQsIGRlZmluZXMgdGhlIGxhYmVsIGZvciBhbiBhZGRpdGlvbmFsIGZpcnN0IG9wdGlvbiB0aGF0IHNldHMgdGhlIGNvbnRyb2wgdG8gbnVsbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gdGhlIGNvbXBvbmVudCBpcyBub3QgcmVxdWlyZWQsIGFuIGFkZGl0aW9uYWwgb3B0aW9uIGlzIGFkZGVkIHdpdGggYSB2YWx1ZSBvZiBudWxsLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IE1lbnVJdGVtW10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VsZWN0IGEgZGVmYXVsdCBvcHRpb24gYXV0b21hdGljYWxseSBkdXJpbmcgaW5pdGlhbGl6YXRpb24gYW5kIHdoZW4gb3B0aW9ucyBjaGFuZ2UuIERlZmF1bHQ6IGB0cnVlYC5cclxuICAgKiAqIElmIGZvcm1Nb2RlbCBoYXMgYSB2YWx1ZVxyXG4gICAqICAgKiBNYWtlIG5vIGNoYW5nZSBpZiB0aGUgY3VycmVudCB2YWx1ZSBleGlzdHMgaW4gb3B0aW9uc1xyXG4gICAqICAgKiBPdGhlcndpc2UsIHNldCB2YWx1ZSB0byB0aGUgZmlyc3Qgb3B0aW9uIGlmIGNvbnRyb2wgaXMgcmVxdWlyZWQsIG9yIG51bGwgaWYgb3B0aW9uYWwgYW5kIGVtaXQgZXZlbnQgIFxyXG4gICAqICogSWYgZm9ybU1vZGVsIGhhcyBubyB2YWx1ZVxyXG4gICAqICAgKiBTZXQgdmFsdWUgdG8gZmlyc3Qgb3B0aW9uIGlmIGNvbnRyb2wgaXMgcmVxdWlyZWQgYW5kIGVtaXQgZXZlbnRTZXQgdG8gZmFsc2UgdG8gbWFudWFsbHkgbWFuYWdlIGZvcm0gc3RhdGUuXHJcbiAgICogXHJcbiAgICogU2V0IHRvIGZhbHNlIHRvIG9wdCBvdXQgb2YgYXV0b21hdGljIHN0YXRlIG1hbmFnZW1lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBhdXRvRGVmYXVsdDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRpb25NZXNzYWdlU2VydmljZTogVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGZvcm1Hcm91cEhlbHBlcjogRm9ybUdyb3VwSGVscGVyLFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZlxyXG4gICkgeyBcclxuICAgIHN1cGVyKHZhbGlkYXRpb25NZXNzYWdlU2VydmljZSwgZm9ybUdyb3VwSGVscGVyKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLm9wdGlvbnMgJiYgdGhpcy5hdXRvRGVmYXVsdCkge1xyXG4gICAgICB0aGlzLm9uT3B0aW9uc0NoYW5nZShjaGFuZ2VzLm9wdGlvbnMuZmlyc3RDaGFuZ2UpO1xyXG4gICAgfVxyXG4gICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgfVxyXG4gIFxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmF1dG9mb2N1cykge1xyXG4gICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmICghdGhpcy5hdXRvRGVmYXVsdCkge1xyXG4gICAgICBjb25zb2xlLndhcm4oYFNlbGVjdENvbXBvbmVudCMke3RoaXMuaWR9IGhhcyAnYXV0b0RlZmF1bHQnIHNldCB0byBmYWxzZSBhbmQgd2lsbCBub3Qgc2VsZWN0IHRoZSBkZWZhdWx0IG9wdGlvbi5gKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb2N1cygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGhvc3RFbDogSFRNTEVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCBzZWxlY3RFbCA9IGhvc3RFbC5xdWVyeVNlbGVjdG9yKCdzZWxlY3QnKTtcclxuICAgIGlmIChzZWxlY3RFbCkge1xyXG4gICAgICBzZWxlY3RFbC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSWYgZm9ybU1vZGVsIGhhcyBhIHZhbHVlXHJcbiAgICogICogTWFrZSBubyBjaGFuZ2UgaWYgdGhlIGN1cnJlbnQgdmFsdWUgZXhpc3RzIGluIG9wdGlvbnNcclxuICAgKiAgKiBPdGhlcndpc2UsIHNldCB2YWx1ZSB0byB0aGUgZmlyc3Qgb3B0aW9uIGlmIGNvbnRyb2wgaXMgcmVxdWlyZWQsIG9yIG51bGwgaWYgb3B0aW9uYWwgYW5kIGVtaXQgZXZlbnQgIFxyXG4gICAqIElmIGZvcm1Nb2RlbCBoYXMgbm8gdmFsdWVcclxuICAgKiAgKiBTZXQgdmFsdWUgdG8gZmlyc3Qgb3B0aW9uIGlmIGNvbnRyb2wgaXMgcmVxdWlyZWQgYW5kIGVtaXQgZXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIG9uT3B0aW9uc0NoYW5nZShmaXJzdENoYW5nZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9ybU1vZGVsLnZhbHVlICE9PSBudWxsICYmIHRoaXMuZm9ybU1vZGVsLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5mb3JtTW9kZWwudmFsdWUgIT09ICcnKSB7XHJcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZXZlcnkob3B0ID0+IG9wdC52YWx1ZSAhPT0gdGhpcy5mb3JtTW9kZWwudmFsdWUpKSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnJlcXVpcmVkID8gdGhpcy5vcHRpb25zWzBdPy52YWx1ZSA6ICBudWxsO1xyXG4gICAgICAgIHRoaXMuZm9ybU1vZGVsLnNldFZhbHVlKHZhbHVlLCB7ZW1pdEV2ZW50OiAhZmlyc3RDaGFuZ2V9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmKHRoaXMucmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5mb3JtTW9kZWwuc2V0VmFsdWUodGhpcy5vcHRpb25zWzBdPy52YWx1ZSwge2VtaXRFdmVudDogIWZpcnN0Q2hhbmdlfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250cm9sXCJcclxuICAgICBbbmdDbGFzc109XCJ7J2lzLXJlYWRvbmx5JzogcmVhZG9ubHksICdpcy1kaXNhYmxlZCc6IGZvcm1Nb2RlbC5kaXNhYmxlZH1cIj5cclxuXHJcbiAgICAgICAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIlxyXG4gICAgICAgICAgICAgICBmb3I9XCJ7e2lkfX1fc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e2xhYmVsIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZWMtaGVscC1wb3BvdmVyIGlkPVwie3tpZH19X2hlbHBQb3BvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWxwUG9wb3ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2sgbXktbjMgbXgtbjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PVwie3toZWxwUG9wb3ZlciB8IHRyYW5zbGF0ZX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFBvc2l0aW9uPVwie3toZWxwUG9wb3ZlclBvc2l0aW9ufX1cIj5cclxuICAgICAgICAgICAgICAgIDwvZWMtaGVscC1wb3BvdmVyPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgIDxzZWxlY3QgW2F0dHIuaWRdPVwiaW5wdXRJZFwiXHJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cInt7dGFiaW5kZXh9fVwiXHJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybU1vZGVsXCJcclxuICAgICAgICAgICAgICAgIFthdHRyLnJlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgIFthdHRyLmNka0ZvY3VzSW5pdGlhbF09XCJhdXRvZm9jdXMgfHwgbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdJZj1cIiFyZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cIm51bGxcIj57e3BsYWNlaG9sZGVyfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+e3tvcHRpb24ubGFiZWx9fTwvb3B0aW9uPlxyXG4gICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZWMtaWNvbiBpY29uLWNhcmV0LWRvd25cIj48L2k+XHJcbjwvZGl2PiJdfQ==
|
@@ -1,47 +0,0 @@
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
2
|
-
import { NavGroup } from '../navigation/nav-group';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "@angular/common";
|
5
|
-
import * as i2 from "@angular/router";
|
6
|
-
import * as i3 from "@ngx-translate/core";
|
7
|
-
/**
|
8
|
-
* Component to display navigation tabs
|
9
|
-
*/
|
10
|
-
export class TabsComponent {
|
11
|
-
constructor() {
|
12
|
-
/** The id of the tabs component, will be used as a prefix for each individual tab */
|
13
|
-
this.id = '';
|
14
|
-
/** The tabindex of the tabs component, will be applied to each individual tab */
|
15
|
-
this.tabindex = 0;
|
16
|
-
/** Display tabs in the default style or as pills */
|
17
|
-
this.tabStyle = 'tabs';
|
18
|
-
/** The tabs group */
|
19
|
-
this.tabs = new NavGroup();
|
20
|
-
}
|
21
|
-
/**
|
22
|
-
* Set the selected tab to the one the user clicked on pressed enter
|
23
|
-
* when focused. If the event was a keypress.enter and the tab
|
24
|
-
* has a link, navigate to that link.
|
25
|
-
*/
|
26
|
-
selectTab(event, tab) {
|
27
|
-
if (!tab.disabled && (event.type === 'click' || (event.type === 'keypress' && event.key === 'Enter'))) {
|
28
|
-
this.tabs.selected = tab;
|
29
|
-
}
|
30
|
-
}
|
31
|
-
}
|
32
|
-
TabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
33
|
-
TabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TabsComponent, selector: "ec-tabs", inputs: { id: "id", tabindex: "tabindex", tabStyle: "tabStyle", tabs: ["tabGroup", "tabs"] }, ngImport: i0, template: "<ul *ngIf=\"tabs?.items?.length\" class=\"{{tabStyle}}\">\r\n\r\n <li class=\"{{tab.classlist}}\" [ngClass]=\"{'icon-only': tab.icon && !tab.label}\" *ngFor=\"let tab of tabs?.items; index as i;\">\r\n\r\n <a *ngIf=\"tab.url && !tab.disabled\"\r\n tabindex=\"{{tabs?.selected === tab ? -1 : tabindex}}\"\r\n class=\"tab\"\r\n id=\"{{tab.id ? tab.id : id + '_item' + i}}\"\r\n routerLinkActive=\"active\"\r\n [routerLink]=\"tab.url\"\r\n [routerLinkActiveOptions]=\"{exact: tab.isActiveExactMatch || false}\"\r\n [queryParams]=\"tab.queryParams || null\"\r\n [queryParamsHandling]=\"tab.queryParamsHandling || ''\"\r\n (keypress)=\"selectTab($event, tab)\"\r\n (click)=\"selectTab($event, tab)\">\r\n <i class=\"ec-icon {{tab.icon}}\" *ngIf=\"tab.icon\" [class.mr-1]=\"tab.label\"></i>\r\n <span class=\"text-truncate\">{{tab.label | translate}}</span>\r\n <span *ngIf=\"tab?.indicator\" class=\"indicator ml-1\" [style.background-color]=\"tab?.indicator === true ? '' : tab?.indicator\"></span>\r\n </a>\r\n\r\n <span *ngIf=\"!tab.url || tab.disabled\"\r\n tabindex=\"{{tabs?.selected === tab || tab.disabled ? -1 : tabindex}}\"\r\n id=\"{{tab.id ? tab.id : id + '_item' + i}}\"\r\n class=\"tab\"\r\n [ngClass]=\"{'active': tabs?.selected === tab, 'is-disabled': tab.disabled}\"\r\n (keypress)=\"selectTab($event, tab)\"\r\n (click)=\"selectTab($event, tab)\">\r\n <i class=\"ec-icon {{tab.icon}}\" *ngIf=\"tab.icon\" [class.mr-1]=\"tab.label\"></i>\r\n <span class=\"text-truncate\">{{tab.label | translate}}</span>\r\n <span *ngIf=\"tab?.indicator\" class=\"indicator ml-1\" [style.background-color]=\"tab?.indicator === true ? '' : tab?.indicator\"></span>\r\n </span>\r\n </li>\r\n</ul> ", styles: [":host{display:block}ul{padding:0;margin:0;list-style:none}a{text-decoration:none}.tabs{display:flex;border-bottom:1px solid var(--ec-tab-border-color, var(--ec-border-color))}.tabs li{display:block;min-width:0}.tabs li:not(:last-child){margin-right:1rem}.tabs .tab{padding-left:0;padding-right:0;border-bottom:2px solid transparent;margin-bottom:-1px;align-items:center;color:var(--ec-tab-color, var(--ec-color-secondary-dark));cursor:pointer;font-size:var(--ec-tab-font-size, var(--ec-font-size-label));display:flex;height:2rem;min-width:2rem;justify-content:center}.tabs .tab.active{color:var(--ec-tab-color-active, var(--ec-color-interactive));border-color:var(--ec-tab-border-color-active, var(--ec-border-color-focus))}.tabs .tab:hover,.tabs .tab:focus{outline:none;border-color:var(--ec-tab-border-color-active, var(--ec-border-color-focus))}.tabs .tab.is-disabled{opacity:var(--ec-form-control-opacity-disabled);cursor:default;pointer-events:none}.pills{display:flex}.pills li{display:block;min-width:0}.pills li:not(:first-child){margin-left:-1px}.pills li .tab{border-radius:0}.pills li:first-child .tab{border-top-left-radius:var(--ec-border-radius);border-bottom-left-radius:var(--ec-border-radius)}.pills li:last-child .tab{border-top-right-radius:var(--ec-border-radius);border-bottom-right-radius:var(--ec-border-radius)}.pills .tab{padding-left:.5rem;padding-right:.5rem;border-radius:var(--ec-border-radius);border:1px solid var(--ec-tab-border-color, var(--ec-border-color));align-items:center;color:var(--ec-tab-color, var(--ec-color-secondary-dark));cursor:pointer;font-size:var(--ec-tab-font-size, var(--ec-font-size-label));display:flex;height:1.75rem;min-width:1.75rem;justify-content:center}.pills .tab.active{color:var(--ec-tab-color-active, var(--ec-color-interactive));background-color:var(--ec-tab-background-color-active, var(--ec-background-color))}.pills .tab:hover,.pills .tab:focus{outline:none;border-color:var(--ec-tab-border-color-active, var(--ec-border-color-focus));box-shadow:0 0 0 1px var(--ec-tab-border-color-active, var(--ec-border-color-focus));position:relative;z-index:1}.pills .tab.is-disabled{opacity:var(--ec-form-control-opacity-disabled);cursor:default;pointer-events:none}.icon-only .tab{padding:0;justify-content:center}.icon-only .tab .ec-icon{color:inherit}.indicator{border:solid 2px rgb(111,28,138);background-color:#6f1c8a40;display:block;width:.625rem;height:.625rem;border-radius:50%}:host(.is-condensed) .pills li,:host(.is-condensed) .tabs li{margin-right:0}:host(.is-condensed) .tab{padding-left:.25rem;padding-right:.25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TabsComponent, decorators: [{
|
35
|
-
type: Component,
|
36
|
-
args: [{ selector: 'ec-tabs', template: "<ul *ngIf=\"tabs?.items?.length\" class=\"{{tabStyle}}\">\r\n\r\n <li class=\"{{tab.classlist}}\" [ngClass]=\"{'icon-only': tab.icon && !tab.label}\" *ngFor=\"let tab of tabs?.items; index as i;\">\r\n\r\n <a *ngIf=\"tab.url && !tab.disabled\"\r\n tabindex=\"{{tabs?.selected === tab ? -1 : tabindex}}\"\r\n class=\"tab\"\r\n id=\"{{tab.id ? tab.id : id + '_item' + i}}\"\r\n routerLinkActive=\"active\"\r\n [routerLink]=\"tab.url\"\r\n [routerLinkActiveOptions]=\"{exact: tab.isActiveExactMatch || false}\"\r\n [queryParams]=\"tab.queryParams || null\"\r\n [queryParamsHandling]=\"tab.queryParamsHandling || ''\"\r\n (keypress)=\"selectTab($event, tab)\"\r\n (click)=\"selectTab($event, tab)\">\r\n <i class=\"ec-icon {{tab.icon}}\" *ngIf=\"tab.icon\" [class.mr-1]=\"tab.label\"></i>\r\n <span class=\"text-truncate\">{{tab.label | translate}}</span>\r\n <span *ngIf=\"tab?.indicator\" class=\"indicator ml-1\" [style.background-color]=\"tab?.indicator === true ? '' : tab?.indicator\"></span>\r\n </a>\r\n\r\n <span *ngIf=\"!tab.url || tab.disabled\"\r\n tabindex=\"{{tabs?.selected === tab || tab.disabled ? -1 : tabindex}}\"\r\n id=\"{{tab.id ? tab.id : id + '_item' + i}}\"\r\n class=\"tab\"\r\n [ngClass]=\"{'active': tabs?.selected === tab, 'is-disabled': tab.disabled}\"\r\n (keypress)=\"selectTab($event, tab)\"\r\n (click)=\"selectTab($event, tab)\">\r\n <i class=\"ec-icon {{tab.icon}}\" *ngIf=\"tab.icon\" [class.mr-1]=\"tab.label\"></i>\r\n <span class=\"text-truncate\">{{tab.label | translate}}</span>\r\n <span *ngIf=\"tab?.indicator\" class=\"indicator ml-1\" [style.background-color]=\"tab?.indicator === true ? '' : tab?.indicator\"></span>\r\n </span>\r\n </li>\r\n</ul> ", styles: [":host{display:block}ul{padding:0;margin:0;list-style:none}a{text-decoration:none}.tabs{display:flex;border-bottom:1px solid var(--ec-tab-border-color, var(--ec-border-color))}.tabs li{display:block;min-width:0}.tabs li:not(:last-child){margin-right:1rem}.tabs .tab{padding-left:0;padding-right:0;border-bottom:2px solid transparent;margin-bottom:-1px;align-items:center;color:var(--ec-tab-color, var(--ec-color-secondary-dark));cursor:pointer;font-size:var(--ec-tab-font-size, var(--ec-font-size-label));display:flex;height:2rem;min-width:2rem;justify-content:center}.tabs .tab.active{color:var(--ec-tab-color-active, var(--ec-color-interactive));border-color:var(--ec-tab-border-color-active, var(--ec-border-color-focus))}.tabs .tab:hover,.tabs .tab:focus{outline:none;border-color:var(--ec-tab-border-color-active, var(--ec-border-color-focus))}.tabs .tab.is-disabled{opacity:var(--ec-form-control-opacity-disabled);cursor:default;pointer-events:none}.pills{display:flex}.pills li{display:block;min-width:0}.pills li:not(:first-child){margin-left:-1px}.pills li .tab{border-radius:0}.pills li:first-child .tab{border-top-left-radius:var(--ec-border-radius);border-bottom-left-radius:var(--ec-border-radius)}.pills li:last-child .tab{border-top-right-radius:var(--ec-border-radius);border-bottom-right-radius:var(--ec-border-radius)}.pills .tab{padding-left:.5rem;padding-right:.5rem;border-radius:var(--ec-border-radius);border:1px solid var(--ec-tab-border-color, var(--ec-border-color));align-items:center;color:var(--ec-tab-color, var(--ec-color-secondary-dark));cursor:pointer;font-size:var(--ec-tab-font-size, var(--ec-font-size-label));display:flex;height:1.75rem;min-width:1.75rem;justify-content:center}.pills .tab.active{color:var(--ec-tab-color-active, var(--ec-color-interactive));background-color:var(--ec-tab-background-color-active, var(--ec-background-color))}.pills .tab:hover,.pills .tab:focus{outline:none;border-color:var(--ec-tab-border-color-active, var(--ec-border-color-focus));box-shadow:0 0 0 1px var(--ec-tab-border-color-active, var(--ec-border-color-focus));position:relative;z-index:1}.pills .tab.is-disabled{opacity:var(--ec-form-control-opacity-disabled);cursor:default;pointer-events:none}.icon-only .tab{padding:0;justify-content:center}.icon-only .tab .ec-icon{color:inherit}.indicator{border:solid 2px rgb(111,28,138);background-color:#6f1c8a40;display:block;width:.625rem;height:.625rem;border-radius:50%}:host(.is-condensed) .pills li,:host(.is-condensed) .tabs li{margin-right:0}:host(.is-condensed) .tab{padding-left:.25rem;padding-right:.25rem}\n"] }]
|
37
|
-
}], ctorParameters: function () { return []; }, propDecorators: { id: [{
|
38
|
-
type: Input
|
39
|
-
}], tabindex: [{
|
40
|
-
type: Input
|
41
|
-
}], tabStyle: [{
|
42
|
-
type: Input
|
43
|
-
}], tabs: [{
|
44
|
-
type: Input,
|
45
|
-
args: ['tabGroup']
|
46
|
-
}] } });
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvdGFicy90YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy90YWJzL3RhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQVFuRDs7R0FFRztBQU1ILE1BQU0sT0FBTyxhQUFhO0lBY3hCO1FBWkEscUZBQXFGO1FBQ3JFLE9BQUUsR0FBVyxFQUFFLENBQUM7UUFFaEMsaUZBQWlGO1FBQ2pFLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFFckMsb0RBQW9EO1FBQ3BDLGFBQVEsR0FBcUIsTUFBTSxDQUFDO1FBRXBELHFCQUFxQjtRQUNLLFNBQUksR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO0lBRTFDLENBQUM7SUFFakI7Ozs7T0FJRztJQUNJLFNBQVMsQ0FBQyxLQUFZLEVBQUUsR0FBWTtRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxVQUFVLElBQW9CLEtBQU0sQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLENBQUMsRUFBRTtZQUN0SCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7U0FDMUI7SUFDSCxDQUFDOzswR0F6QlUsYUFBYTs4RkFBYixhQUFhLDZJQ2xCMUIsK3pEQWdDYzsyRkRkRCxhQUFhO2tCQUx6QixTQUFTOytCQUNFLFNBQVM7MEVBT0gsRUFBRTtzQkFBakIsS0FBSztnQkFHVSxRQUFRO3NCQUF2QixLQUFLO2dCQUdVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBR29CLElBQUk7c0JBQTdCLEtBQUs7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmF2SXRlbSB9IGZyb20gJy4uL25hdmlnYXRpb24vbmF2LWl0ZW0nO1xyXG5pbXBvcnQgeyBOYXZHcm91cCB9IGZyb20gJy4uL25hdmlnYXRpb24vbmF2LWdyb3VwJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGFiIGV4dGVuZHMgTmF2SXRlbSB7XHJcbiAgdXJsOiBzdHJpbmcsXHJcbiAgdGFicz86IFRhYltdLFxyXG4gIGhpZGU/OiBBcnJheTwoLi4uYXJnczogYW55W10pID0+IGJvb2xlYW4+LFxyXG59XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50IHRvIGRpc3BsYXkgbmF2aWdhdGlvbiB0YWJzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXRhYnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYnNDb21wb25lbnQge1xyXG5cclxuICAvKiogVGhlIGlkIG9mIHRoZSB0YWJzIGNvbXBvbmVudCwgd2lsbCBiZSB1c2VkIGFzIGEgcHJlZml4IGZvciBlYWNoIGluZGl2aWR1YWwgdGFiICovXHJcbiAgQElucHV0KCkgcHVibGljIGlkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIFRoZSB0YWJpbmRleCBvZiB0aGUgdGFicyBjb21wb25lbnQsIHdpbGwgYmUgYXBwbGllZCB0byBlYWNoIGluZGl2aWR1YWwgdGFiICovXHJcbiAgQElucHV0KCkgcHVibGljIHRhYmluZGV4OiBudW1iZXIgPSAwO1xyXG5cclxuICAvKiogRGlzcGxheSB0YWJzIGluIHRoZSBkZWZhdWx0IHN0eWxlIG9yIGFzIHBpbGxzICovXHJcbiAgQElucHV0KCkgcHVibGljIHRhYlN0eWxlOiAndGFicycgfCAncGlsbHMnID0gJ3RhYnMnO1xyXG5cclxuICAvKiogVGhlIHRhYnMgZ3JvdXAgKi9cclxuICBASW5wdXQoJ3RhYkdyb3VwJykgcHVibGljIHRhYnM6IE5hdkdyb3VwID0gbmV3IE5hdkdyb3VwKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgc2VsZWN0ZWQgdGFiIHRvIHRoZSBvbmUgdGhlIHVzZXIgY2xpY2tlZCBvbiBwcmVzc2VkIGVudGVyXHJcbiAgICogd2hlbiBmb2N1c2VkLiBJZiB0aGUgZXZlbnQgd2FzIGEga2V5cHJlc3MuZW50ZXIgYW5kIHRoZSB0YWJcclxuICAgKiBoYXMgYSBsaW5rLCBuYXZpZ2F0ZSB0byB0aGF0IGxpbmsuXHJcbiAgICovXHJcbiAgcHVibGljIHNlbGVjdFRhYihldmVudDogRXZlbnQsIHRhYjogTmF2SXRlbSkge1xyXG4gICAgaWYgKCF0YWIuZGlzYWJsZWQgJiYgKGV2ZW50LnR5cGUgPT09ICdjbGljaycgfHwgKGV2ZW50LnR5cGUgPT09ICdrZXlwcmVzcycgJiYgKDxLZXlib2FyZEV2ZW50PmV2ZW50KS5rZXkgPT09ICdFbnRlcicpKSkge1xyXG4gICAgICB0aGlzLnRhYnMuc2VsZWN0ZWQgPSB0YWI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjx1bCAqbmdJZj1cInRhYnM/Lml0ZW1zPy5sZW5ndGhcIiBjbGFzcz1cInt7dGFiU3R5bGV9fVwiPlxyXG5cclxuICA8bGkgY2xhc3M9XCJ7e3RhYi5jbGFzc2xpc3R9fVwiIFtuZ0NsYXNzXT1cInsnaWNvbi1vbmx5JzogdGFiLmljb24gJiYgIXRhYi5sYWJlbH1cIiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM/Lml0ZW1zOyBpbmRleCBhcyBpO1wiPlxyXG5cclxuICAgIDxhICpuZ0lmPVwidGFiLnVybCAmJiAhdGFiLmRpc2FibGVkXCJcclxuICAgICAgdGFiaW5kZXg9XCJ7e3RhYnM/LnNlbGVjdGVkID09PSB0YWIgPyAtMSA6IHRhYmluZGV4fX1cIlxyXG4gICAgICBjbGFzcz1cInRhYlwiXHJcbiAgICAgIGlkPVwie3t0YWIuaWQgPyB0YWIuaWQgOiBpZCArICdfaXRlbScgKyBpfX1cIlxyXG4gICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCJcclxuICAgICAgW3JvdXRlckxpbmtdPVwidGFiLnVybFwiXHJcbiAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7ZXhhY3Q6IHRhYi5pc0FjdGl2ZUV4YWN0TWF0Y2ggfHwgZmFsc2V9XCJcclxuICAgICAgW3F1ZXJ5UGFyYW1zXT1cInRhYi5xdWVyeVBhcmFtcyB8fCBudWxsXCJcclxuICAgICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwidGFiLnF1ZXJ5UGFyYW1zSGFuZGxpbmcgfHwgJydcIlxyXG4gICAgICAoa2V5cHJlc3MpPVwic2VsZWN0VGFiKCRldmVudCwgdGFiKVwiXHJcbiAgICAgIChjbGljayk9XCJzZWxlY3RUYWIoJGV2ZW50LCB0YWIpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJlYy1pY29uIHt7dGFiLmljb259fVwiICpuZ0lmPVwidGFiLmljb25cIiBbY2xhc3MubXItMV09XCJ0YWIubGFiZWxcIj48L2k+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+e3t0YWIubGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInRhYj8uaW5kaWNhdG9yXCIgY2xhc3M9XCJpbmRpY2F0b3IgbWwtMVwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cInRhYj8uaW5kaWNhdG9yID09PSB0cnVlID8gJycgOiB0YWI/LmluZGljYXRvclwiPjwvc3Bhbj5cclxuICAgIDwvYT5cclxuXHJcbiAgICA8c3BhbiAqbmdJZj1cIiF0YWIudXJsIHx8IHRhYi5kaXNhYmxlZFwiXHJcbiAgICAgICAgICB0YWJpbmRleD1cInt7dGFicz8uc2VsZWN0ZWQgPT09IHRhYiB8fCB0YWIuZGlzYWJsZWQgPyAtMSA6IHRhYmluZGV4fX1cIlxyXG4gICAgICAgICAgaWQ9XCJ7e3RhYi5pZCA/IHRhYi5pZCA6IGlkICsgJ19pdGVtJyArIGl9fVwiXHJcbiAgICAgICAgICBjbGFzcz1cInRhYlwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IHRhYnM/LnNlbGVjdGVkID09PSB0YWIsICdpcy1kaXNhYmxlZCc6IHRhYi5kaXNhYmxlZH1cIlxyXG4gICAgICAgICAgKGtleXByZXNzKT1cInNlbGVjdFRhYigkZXZlbnQsIHRhYilcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFRhYigkZXZlbnQsIHRhYilcIj5cclxuICAgICAgPGkgY2xhc3M9XCJlYy1pY29uIHt7dGFiLmljb259fVwiICpuZ0lmPVwidGFiLmljb25cIiBbY2xhc3MubXItMV09XCJ0YWIubGFiZWxcIj48L2k+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiPnt7dGFiLmxhYmVsIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwidGFiPy5pbmRpY2F0b3JcIiBjbGFzcz1cImluZGljYXRvciBtbC0xXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwidGFiPy5pbmRpY2F0b3IgPT09IHRydWUgPyAnJyA6IHRhYj8uaW5kaWNhdG9yXCI+PC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvbGk+XHJcbjwvdWw+ICAgICAgICAgIl19
|