@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,81 +0,0 @@
|
|
1
|
-
import { Component, Input, HostBinding } from '@angular/core';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
import * as i1 from "@angular/common";
|
4
|
-
import * as i2 from "@angular/router";
|
5
|
-
import * as i3 from "../../controls/help-popover/help-popover.component";
|
6
|
-
import * as i4 from "@ngx-translate/core";
|
7
|
-
export class ItemDisplayComponent {
|
8
|
-
constructor() {
|
9
|
-
/** The value of the host element's id attribute */
|
10
|
-
this.id = '';
|
11
|
-
this.internalValue = { value: '' };
|
12
|
-
/**
|
13
|
-
* Set link as an href or routerLink
|
14
|
-
*/
|
15
|
-
this.externalLink = false;
|
16
|
-
this.condensed = false;
|
17
|
-
/**
|
18
|
-
* The link target when url is provided. Defaults to _self (same window)
|
19
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a
|
20
|
-
*/
|
21
|
-
this.target = '_self';
|
22
|
-
}
|
23
|
-
set labelHelpPopover(labelHelpPopover) {
|
24
|
-
if (typeof labelHelpPopover === 'string') {
|
25
|
-
this._labelHelpPopover = { text: labelHelpPopover };
|
26
|
-
}
|
27
|
-
else {
|
28
|
-
this._labelHelpPopover = labelHelpPopover;
|
29
|
-
}
|
30
|
-
}
|
31
|
-
get labelHelpPopover() {
|
32
|
-
return this._labelHelpPopover;
|
33
|
-
}
|
34
|
-
set value(value) {
|
35
|
-
if (typeof value === 'string') {
|
36
|
-
this.internalValue = { value: value };
|
37
|
-
}
|
38
|
-
else if (value) {
|
39
|
-
this.internalValue = value;
|
40
|
-
}
|
41
|
-
else {
|
42
|
-
this.internalValue = { value: '' };
|
43
|
-
}
|
44
|
-
}
|
45
|
-
;
|
46
|
-
/**
|
47
|
-
* When provided, displays the value as a link
|
48
|
-
*/
|
49
|
-
set url(value) {
|
50
|
-
this.externalLink = (value?.startsWith('http')) ? true : false;
|
51
|
-
this._url = value;
|
52
|
-
}
|
53
|
-
;
|
54
|
-
get url() {
|
55
|
-
return this._url;
|
56
|
-
}
|
57
|
-
}
|
58
|
-
ItemDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ItemDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
59
|
-
ItemDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ItemDisplayComponent, selector: "ec-item-display", inputs: { id: "id", label: "label", labelHelpPopover: "labelHelpPopover", value: "value", url: "url", condensed: "condensed", target: "target" }, host: { properties: { "attr.id": "this.id" } }, ngImport: i0, template: "<div id=\"{{id}}_label_0\"\r\n class=\"text-caption-1 d-flex align-items-center\">\r\n <span>{{label | translate}}</span>\r\n <ec-help-popover *ngIf=\"labelHelpPopover\"\r\n class=\"mx-n1 my-n2\"\r\n [text]=\"labelHelpPopover.text\"\r\n [contentPosition]=\"labelHelpPopover?.contentPosition ?? 'top-left'\"\r\n [maxWidth]=\"labelHelpPopover?.maxWidth ?? '15rem'\">\r\n </ec-help-popover>\r\n</div>\r\n\r\n<div id=\"{{id}}_value_0\" class=\"{{condensed ? 'text-body-2' : 'text-display-1'}} {{internalValue.classnames}}\"\r\n [class.font-color-hint]=\"!internalValue.value && internalValue.noValueText\"\r\n title=\"{{internalValue.tooltip}}\">\r\n\r\n <ng-container *ngIf=\"url else content\">\r\n <a *ngIf=\"!externalLink\"\r\n id=\"{{id}}_link\"\r\n routerLink=\"{{url}}\"\r\n target=\"{{target}}\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </a>\r\n <a *ngIf=\"externalLink\"\r\n id=\"{{id}}_link\"\r\n href=\"{{url}}\"\r\n target=\"{{target}}\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </a>\r\n </ng-container>\r\n</div>\r\n\r\n\r\n<ng-template #content>\r\n <i *ngIf=\"internalValue?.icon\" class=\"ec-icon {{internalValue?.icon}}\"></i>\r\n <span>{{(internalValue?.value || internalValue?.noValueText) | translate}}</span>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n", styles: [":host{display:inline-block;margin-bottom:1rem;vertical-align:top}.ec-icon{font-size:1em;top:.125em;position:relative;margin-right:.25em}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.HelpPopoverComponent, selector: "ec-help-popover", inputs: ["id", "text", "contentPosition", "maxWidth"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ItemDisplayComponent, decorators: [{
|
61
|
-
type: Component,
|
62
|
-
args: [{ selector: 'ec-item-display', template: "<div id=\"{{id}}_label_0\"\r\n class=\"text-caption-1 d-flex align-items-center\">\r\n <span>{{label | translate}}</span>\r\n <ec-help-popover *ngIf=\"labelHelpPopover\"\r\n class=\"mx-n1 my-n2\"\r\n [text]=\"labelHelpPopover.text\"\r\n [contentPosition]=\"labelHelpPopover?.contentPosition ?? 'top-left'\"\r\n [maxWidth]=\"labelHelpPopover?.maxWidth ?? '15rem'\">\r\n </ec-help-popover>\r\n</div>\r\n\r\n<div id=\"{{id}}_value_0\" class=\"{{condensed ? 'text-body-2' : 'text-display-1'}} {{internalValue.classnames}}\"\r\n [class.font-color-hint]=\"!internalValue.value && internalValue.noValueText\"\r\n title=\"{{internalValue.tooltip}}\">\r\n\r\n <ng-container *ngIf=\"url else content\">\r\n <a *ngIf=\"!externalLink\"\r\n id=\"{{id}}_link\"\r\n routerLink=\"{{url}}\"\r\n target=\"{{target}}\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </a>\r\n <a *ngIf=\"externalLink\"\r\n id=\"{{id}}_link\"\r\n href=\"{{url}}\"\r\n target=\"{{target}}\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </a>\r\n </ng-container>\r\n</div>\r\n\r\n\r\n<ng-template #content>\r\n <i *ngIf=\"internalValue?.icon\" class=\"ec-icon {{internalValue?.icon}}\"></i>\r\n <span>{{(internalValue?.value || internalValue?.noValueText) | translate}}</span>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n", styles: [":host{display:inline-block;margin-bottom:1rem;vertical-align:top}.ec-icon{font-size:1em;top:.125em;position:relative;margin-right:.25em}\n"] }]
|
63
|
-
}], propDecorators: { id: [{
|
64
|
-
type: HostBinding,
|
65
|
-
args: ['attr.id']
|
66
|
-
}, {
|
67
|
-
type: Input
|
68
|
-
}], label: [{
|
69
|
-
type: Input
|
70
|
-
}], labelHelpPopover: [{
|
71
|
-
type: Input
|
72
|
-
}], value: [{
|
73
|
-
type: Input
|
74
|
-
}], url: [{
|
75
|
-
type: Input
|
76
|
-
}], condensed: [{
|
77
|
-
type: Input
|
78
|
-
}], target: [{
|
79
|
-
type: Input
|
80
|
-
}] } });
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1kaXNwbGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2l0ZW0tZGlzcGxheS9pdGVtLWRpc3BsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvaXRlbS1kaXNwbGF5L2l0ZW0tZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQXVCOUQsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQU9FLG1EQUFtRDtRQUVuQyxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBMEJ6QixrQkFBYSxHQUFpQixFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztRQWNqRDs7V0FFRztRQUNJLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRXJCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEM7OztXQUdHO1FBQ2EsV0FBTSxHQUFlLE9BQU8sQ0FBQztLQUM5QztJQS9DQyxJQUFhLGdCQUFnQixDQUFDLGdCQUF3RDtRQUNwRixJQUFHLE9BQU8sZ0JBQWdCLEtBQUssUUFBUSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3JEO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUdELElBQWEsS0FBSyxDQUFDLEtBQXdDO1FBQ3pELElBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLENBQUM7U0FDckM7YUFBTSxJQUFJLEtBQUssRUFBRTtZQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUM1QjthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFBQSxDQUFDO0lBR0Y7O09BRUc7SUFDSCxJQUFhLEdBQUcsQ0FBQyxLQUF5QjtRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMvRCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQUEsQ0FBQztJQUNGLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDOztpSEF6Q1Usb0JBQW9CO3FHQUFwQixvQkFBb0IseVBDdkJqQyxtOUNBcUNBOzJGRGRhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUI7OEJBUVgsRUFBRTtzQkFEakIsV0FBVzt1QkFBQyxTQUFTOztzQkFDckIsS0FBSztnQkFFVSxLQUFLO3NCQUFwQixLQUFLO2dCQUdPLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFZTyxLQUFLO3NCQUFqQixLQUFLO2dCQWNPLEdBQUc7c0JBQWYsS0FBSztnQkFjVSxTQUFTO3NCQUF4QixLQUFLO2dCQU1VLE1BQU07c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQb3BvdmVyQ29udGVudFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpbmtUYXJnZXQgfSBmcm9tICcuLi90YWdzL3RhZyc7XHJcblxyXG5leHBvcnQgdHlwZSBEaXNwbGF5VmFsdWUgPSB7XHJcbiAgdmFsdWU6c3RyaW5nLFxyXG4gIGNsYXNzbmFtZXM/OnN0cmluZyxcclxuICBpY29uPzpzdHJpbmcsXHJcbiAgbm9WYWx1ZVRleHQ/OnN0cmluZyxcclxuICB0b29sdGlwPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEhlbHBQb3BvdmVyQ29uZmlnID0ge1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBjb250ZW50UG9zaXRpb24/OiBQb3BvdmVyQ29udGVudFBvc2l0aW9uO1xyXG4gIG1heFdpZHRoPzogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWl0ZW0tZGlzcGxheScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2l0ZW0tZGlzcGxheS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaXRlbS1kaXNwbGF5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEl0ZW1EaXNwbGF5Q29tcG9uZW50IHtcclxuXHJcbiAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaG9zdCBlbGVtZW50J3MgaWQgYXR0cmlidXRlICovXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcclxuICBASW5wdXQoKSBwdWJsaWMgaWQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgbGFiZWwhOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgX2xhYmVsSGVscFBvcG92ZXI/OiBIZWxwUG9wb3ZlckNvbmZpZztcclxuICBASW5wdXQoKSBzZXQgbGFiZWxIZWxwUG9wb3ZlcihsYWJlbEhlbHBQb3BvdmVyOiBzdHJpbmcgfCBIZWxwUG9wb3ZlckNvbmZpZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYodHlwZW9mIGxhYmVsSGVscFBvcG92ZXIgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuX2xhYmVsSGVscFBvcG92ZXIgPSB7IHRleHQ6IGxhYmVsSGVscFBvcG92ZXIgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2xhYmVsSGVscFBvcG92ZXIgPSBsYWJlbEhlbHBQb3BvdmVyO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgbGFiZWxIZWxwUG9wb3ZlcigpOiBIZWxwUG9wb3ZlckNvbmZpZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGFiZWxIZWxwUG9wb3ZlcjtcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IERpc3BsYXlWYWx1ZSB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICB0aGlzLmludGVybmFsVmFsdWUgPSB7dmFsdWU6IHZhbHVlfTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlID0gdmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmludGVybmFsVmFsdWUgPSB7dmFsdWU6ICcnfTtcclxuICAgIH1cclxuICB9O1xyXG4gIHB1YmxpYyBpbnRlcm5hbFZhbHVlOiBEaXNwbGF5VmFsdWUgPSB7dmFsdWU6ICcnfTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBwcm92aWRlZCwgZGlzcGxheXMgdGhlIHZhbHVlIGFzIGEgbGlua1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCB1cmwodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5leHRlcm5hbExpbmsgPSAodmFsdWU/LnN0YXJ0c1dpdGgoJ2h0dHAnKSkgPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLl91cmwgPSB2YWx1ZTtcclxuICB9O1xyXG4gIGdldCB1cmwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl91cmw7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3VybD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IGxpbmsgYXMgYW4gaHJlZiBvciByb3V0ZXJMaW5rXHJcbiAgICovXHJcbiAgcHVibGljIGV4dGVybmFsTGluazogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgY29uZGVuc2VkID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBsaW5rIHRhcmdldCB3aGVuIHVybCBpcyBwcm92aWRlZC4gRGVmYXVsdHMgdG8gX3NlbGYgKHNhbWUgd2luZG93KVxyXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2FcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdGFyZ2V0OiBMaW5rVGFyZ2V0ID0gJ19zZWxmJztcclxufVxyXG4iLCI8ZGl2IGlkPVwie3tpZH19X2xhYmVsXzBcIlxyXG4gICAgIGNsYXNzPVwidGV4dC1jYXB0aW9uLTEgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gIDxzcGFuPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8ZWMtaGVscC1wb3BvdmVyICpuZ0lmPVwibGFiZWxIZWxwUG9wb3ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm14LW4xIG15LW4yXCJcclxuICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cImxhYmVsSGVscFBvcG92ZXIudGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICBbY29udGVudFBvc2l0aW9uXT1cImxhYmVsSGVscFBvcG92ZXI/LmNvbnRlbnRQb3NpdGlvbiA/PyAndG9wLWxlZnQnXCJcclxuICAgICAgICAgICAgICAgICAgIFttYXhXaWR0aF09XCJsYWJlbEhlbHBQb3BvdmVyPy5tYXhXaWR0aCA/PyAnMTVyZW0nXCI+XHJcbiAgPC9lYy1oZWxwLXBvcG92ZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBpZD1cInt7aWR9fV92YWx1ZV8wXCIgY2xhc3M9XCJ7e2NvbmRlbnNlZCA/ICd0ZXh0LWJvZHktMicgOiAndGV4dC1kaXNwbGF5LTEnfX0ge3tpbnRlcm5hbFZhbHVlLmNsYXNzbmFtZXN9fVwiXHJcbiAgICAgW2NsYXNzLmZvbnQtY29sb3ItaGludF09XCIhaW50ZXJuYWxWYWx1ZS52YWx1ZSAmJiBpbnRlcm5hbFZhbHVlLm5vVmFsdWVUZXh0XCJcclxuICAgICB0aXRsZT1cInt7aW50ZXJuYWxWYWx1ZS50b29sdGlwfX1cIj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVybCBlbHNlIGNvbnRlbnRcIj5cclxuICAgIDxhICpuZ0lmPVwiIWV4dGVybmFsTGlua1wiXHJcbiAgICAgICAgaWQ9XCJ7e2lkfX1fbGlua1wiXHJcbiAgICAgICAgcm91dGVyTGluaz1cInt7dXJsfX1cIlxyXG4gICAgICAgIHRhcmdldD1cInt7dGFyZ2V0fX1cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvYT5cclxuICAgIDxhICpuZ0lmPVwiZXh0ZXJuYWxMaW5rXCJcclxuICAgICAgICBpZD1cInt7aWR9fV9saW5rXCJcclxuICAgICAgICBocmVmPVwie3t1cmx9fVwiXHJcbiAgICAgICAgdGFyZ2V0PVwie3t0YXJnZXR9fVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9hPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcblxyXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcbiAgPGkgKm5nSWY9XCJpbnRlcm5hbFZhbHVlPy5pY29uXCIgY2xhc3M9XCJlYy1pY29uIHt7aW50ZXJuYWxWYWx1ZT8uaWNvbn19XCI+PC9pPlxyXG4gIDxzcGFuPnt7KGludGVybmFsVmFsdWU/LnZhbHVlIHx8IGludGVybmFsVmFsdWU/Lm5vVmFsdWVUZXh0KSB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
@@ -1,47 +0,0 @@
|
|
1
|
-
import { Component, HostBinding, Input } from '@angular/core';
|
2
|
-
import { UntypedFormControl } from '@angular/forms';
|
3
|
-
import { JsonHelper } from '../../shared/json-helper';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@ngx-translate/core";
|
6
|
-
import * as i2 from "@angular/common";
|
7
|
-
import * as i3 from "../../controls/button/button.component";
|
8
|
-
import * as i4 from "../../controls/button/copy-button.directive";
|
9
|
-
export class JsonDisplayComponent {
|
10
|
-
constructor(translate) {
|
11
|
-
this.translate = translate;
|
12
|
-
this.maxLength = 10000;
|
13
|
-
this.jsonDisplay = new UntypedFormControl('');
|
14
|
-
}
|
15
|
-
ngOnChanges() {
|
16
|
-
if (this.id) {
|
17
|
-
this.attrId = this.id;
|
18
|
-
}
|
19
|
-
if (this.jsonString) {
|
20
|
-
let display = this.jsonString;
|
21
|
-
let parsedJson = JsonHelper.tryParseJSON(this.jsonString);
|
22
|
-
if (parsedJson) {
|
23
|
-
display = JSON.stringify(parsedJson, null, 2);
|
24
|
-
}
|
25
|
-
if (display.length > this.maxLength) {
|
26
|
-
display = display.substr(0, this.maxLength) + `\r\n${this.translate.instant('MessageTooLong_Truncated_SC')}`;
|
27
|
-
}
|
28
|
-
this.jsonDisplay.patchValue(display);
|
29
|
-
}
|
30
|
-
}
|
31
|
-
}
|
32
|
-
JsonDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: JsonDisplayComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
33
|
-
JsonDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: JsonDisplayComponent, selector: "ec-json-display", inputs: { id: "id", jsonString: "jsonString", maxLength: "maxLength" }, host: { properties: { "attr.id": "this.attrId" } }, usesOnChanges: true, ngImport: i0, template: "<ec-button id=\"{{id}}_copy\"\r\n class=\"copy-button\"\r\n *ngIf=\"jsonDisplay.value\"\r\n type=\"icon\"\r\n icon=\"icon-copy\"\r\n [ecCopyButton]=\"jsonDisplay\">\r\n</ec-button>\r\n<pre><code>{{jsonDisplay.value}}</code></pre>", styles: [":host{display:block;position:relative;color:var(--ec-color-primary-light);background:rgb(53,71,81);max-height:15rem;min-height:2.125rem;font-size:var(--ec-font-size-label);border-radius:var(--ec-border-radius-card);overflow-x:auto;overflow-y:auto;text-align:right}pre{margin-bottom:0;margin-top:-2rem;text-align:left}pre code{display:block;padding:.5rem}.copy-button{position:sticky;top:0}.copy-button ::ng-deep .ec-icon{color:var(--ec-color-secondary-light)!important}.copy-button ::ng-deep button:hover{background-color:transparent!important}.copy-button ::ng-deep button:hover .ec-icon{color:var(--ec-color-primary-light)!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "ec-button", inputs: ["id", "disabled", "icon", "label", "badge", "tabindex", "type", "pending", "pendingIcon", "customTemplate", "isSubmit", "autofocus"], outputs: ["clicked"] }, { kind: "directive", type: i4.CopyButtonDirective, selector: "[ecCopyButton]", inputs: ["ecCopyButton"] }] });
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: JsonDisplayComponent, decorators: [{
|
35
|
-
type: Component,
|
36
|
-
args: [{ selector: 'ec-json-display', template: "<ec-button id=\"{{id}}_copy\"\r\n class=\"copy-button\"\r\n *ngIf=\"jsonDisplay.value\"\r\n type=\"icon\"\r\n icon=\"icon-copy\"\r\n [ecCopyButton]=\"jsonDisplay\">\r\n</ec-button>\r\n<pre><code>{{jsonDisplay.value}}</code></pre>", styles: [":host{display:block;position:relative;color:var(--ec-color-primary-light);background:rgb(53,71,81);max-height:15rem;min-height:2.125rem;font-size:var(--ec-font-size-label);border-radius:var(--ec-border-radius-card);overflow-x:auto;overflow-y:auto;text-align:right}pre{margin-bottom:0;margin-top:-2rem;text-align:left}pre code{display:block;padding:.5rem}.copy-button{position:sticky;top:0}.copy-button ::ng-deep .ec-icon{color:var(--ec-color-secondary-light)!important}.copy-button ::ng-deep button:hover{background-color:transparent!important}.copy-button ::ng-deep button:hover .ec-icon{color:var(--ec-color-primary-light)!important}\n"] }]
|
37
|
-
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { id: [{
|
38
|
-
type: Input
|
39
|
-
}], attrId: [{
|
40
|
-
type: HostBinding,
|
41
|
-
args: ['attr.id']
|
42
|
-
}], jsonString: [{
|
43
|
-
type: Input
|
44
|
-
}], maxLength: [{
|
45
|
-
type: Input
|
46
|
-
}] } });
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1kaXNwbGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2pzb24tZGlzcGxheS9qc29uLWRpc3BsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvanNvbi1kaXNwbGF5L2pzb24tZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFPdEQsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUh0QyxjQUFTLEdBQVcsS0FBSyxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVHLENBQUM7SUFFcEQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUN2QjtRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBRTlCLElBQUksVUFBVSxHQUF3QixVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvRSxJQUFJLFVBQVUsRUFBRTtnQkFDZCxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQy9DO1lBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ25DLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLENBQUM7YUFDOUc7WUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7O2lIQTdCVSxvQkFBb0I7cUdBQXBCLG9CQUFvQix3TUNWakMseVJBTzZDOzJGREdoQyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCO3VHQU1sQixFQUFFO3NCQUFWLEtBQUs7Z0JBQ2tCLE1BQU07c0JBQTdCLFdBQVc7dUJBQUMsU0FBUztnQkFDYixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBKc29uSGVscGVyIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2pzb24taGVscGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtanNvbi1kaXNwbGF5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vanNvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9qc29uLWRpc3BsYXkuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSnNvbkRpc3BsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBpZD86IHN0cmluZztcclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBhdHRySWQ/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkganNvblN0cmluZz86IHN0cmluZztcclxuICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlciA9IDEwMDAwO1xyXG4gIHB1YmxpYyBqc29uRGlzcGxheSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgaWYgKHRoaXMuaWQpIHtcclxuICAgICAgdGhpcy5hdHRySWQgPSB0aGlzLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmpzb25TdHJpbmcpIHtcclxuICAgICAgbGV0IGRpc3BsYXkgPSB0aGlzLmpzb25TdHJpbmc7XHJcblxyXG4gICAgICBsZXQgcGFyc2VkSnNvbjogdW5rbm93biB8IHVuZGVmaW5lZCA9IEpzb25IZWxwZXIudHJ5UGFyc2VKU09OKHRoaXMuanNvblN0cmluZyk7XHJcbiAgICAgIGlmIChwYXJzZWRKc29uKSB7XHJcbiAgICAgICAgZGlzcGxheSA9IEpTT04uc3RyaW5naWZ5KHBhcnNlZEpzb24sIG51bGwsIDIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZGlzcGxheS5sZW5ndGggPiB0aGlzLm1heExlbmd0aCkge1xyXG4gICAgICAgIGRpc3BsYXkgPSBkaXNwbGF5LnN1YnN0cigwLCB0aGlzLm1heExlbmd0aCkgKyBgXFxyXFxuJHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNZXNzYWdlVG9vTG9uZ19UcnVuY2F0ZWRfU0MnKX1gO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmpzb25EaXNwbGF5LnBhdGNoVmFsdWUoZGlzcGxheSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxlYy1idXR0b24gaWQ9XCJ7e2lkfX1fY29weVwiXHJcbiAgICAgICAgICAgY2xhc3M9XCJjb3B5LWJ1dHRvblwiXHJcbiAgICAgICAgICAgKm5nSWY9XCJqc29uRGlzcGxheS52YWx1ZVwiXHJcbiAgICAgICAgICAgdHlwZT1cImljb25cIlxyXG4gICAgICAgICAgIGljb249XCJpY29uLWNvcHlcIlxyXG4gICAgICAgICAgIFtlY0NvcHlCdXR0b25dPVwianNvbkRpc3BsYXlcIj5cclxuPC9lYy1idXR0b24+XHJcbjxwcmU+PGNvZGU+e3tqc29uRGlzcGxheS52YWx1ZX19PC9jb2RlPjwvcHJlPiJdfQ==
|
@@ -1,120 +0,0 @@
|
|
1
|
-
import { Inject, Input, Directive } from '@angular/core';
|
2
|
-
import { DOCUMENT } from '@angular/common';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "../../core/cache.service";
|
5
|
-
/**
|
6
|
-
* Base class for handling click and drag resizing of elements with a mouse.
|
7
|
-
* Derived classes must provide the element to be resized and implement the setWidth function.
|
8
|
-
*/
|
9
|
-
export class ResizableBase {
|
10
|
-
ngAfterViewInit() {
|
11
|
-
if (this.rememberWidth && this.id) {
|
12
|
-
let cached = this.cacheService.getItem('resizable-' + this.id);
|
13
|
-
if (cached && cached.widths && cached.widths.length > 0) {
|
14
|
-
this.restoreWidths(cached.widths);
|
15
|
-
}
|
16
|
-
}
|
17
|
-
}
|
18
|
-
constructor(renderer, cacheService, document) {
|
19
|
-
this.renderer = renderer;
|
20
|
-
this.cacheService = cacheService;
|
21
|
-
this.document = document;
|
22
|
-
/**Set to true if the resizable should remember its width. Requires the element to have an ID*/
|
23
|
-
this.rememberWidth = false;
|
24
|
-
/**The id of the resizable, used for GI and for remembering the width */
|
25
|
-
this.id = '';
|
26
|
-
/** The element that is current being resized */
|
27
|
-
this.currentEl = null;
|
28
|
-
/** The x position of the mouse when dragging starts. Relative to the viewport. */
|
29
|
-
this.startScreenX = 0;
|
30
|
-
/** The width of the current element when dragging starts. */
|
31
|
-
this.startElWidth = 0;
|
32
|
-
}
|
33
|
-
/**
|
34
|
-
* On a mousedown event
|
35
|
-
* * store the width of the current element to calculate the new width
|
36
|
-
* * store the horizontal position of the pointer to calculate the new width.
|
37
|
-
* * add the 'is-active' class to the current element
|
38
|
-
* * set up listeners on the document to know when dragging starts and stops.
|
39
|
-
* Mouse event listeners are added to the document because the cursor may move
|
40
|
-
* off the current element while dragging.
|
41
|
-
*/
|
42
|
-
startDrag(event) {
|
43
|
-
if (this.currentEl) {
|
44
|
-
this.startElWidth = this.currentEl.offsetWidth;
|
45
|
-
this.startScreenX = event.screenX;
|
46
|
-
this.renderer.addClass(this.currentEl, 'is-active');
|
47
|
-
this.renderer.setStyle(this.document.body, 'cursor', 'col-resize');
|
48
|
-
// Remove any listeners that may have not been cleaned up before we register new listeners.
|
49
|
-
if (this.mouseupListener) {
|
50
|
-
this.mouseupListener();
|
51
|
-
this.mouseupListener = undefined;
|
52
|
-
}
|
53
|
-
if (this.mousemoveListener) {
|
54
|
-
this.mousemoveListener();
|
55
|
-
this.mousemoveListener = undefined;
|
56
|
-
}
|
57
|
-
this.mouseupListener = this.renderer.listen(this.document, 'mouseup', this.stopDrag.bind(this));
|
58
|
-
this.mousemoveListener = this.renderer.listen(this.document, 'mousemove', this.drag.bind(this));
|
59
|
-
}
|
60
|
-
else {
|
61
|
-
throw new Error(`currentEl is ${this.currentEl}. currentEl must be assigned before startDrag() is called.`);
|
62
|
-
}
|
63
|
-
}
|
64
|
-
/**
|
65
|
-
* On a mousemove event, calculate the new width of the current element by
|
66
|
-
* adding the difference of the start pageX position and the current pageX
|
67
|
-
* position to the width of the element when we started dragging. Pass the
|
68
|
-
* calculated with to the setWidth method.
|
69
|
-
*/
|
70
|
-
drag(event) {
|
71
|
-
this.setWidth(this.startElWidth + (event.screenX - this.startScreenX));
|
72
|
-
}
|
73
|
-
/**
|
74
|
-
* On a mouseup event
|
75
|
-
* * remove the mouse event listeners on the document.
|
76
|
-
* * remove the 'is-active' class from the current element
|
77
|
-
* * reset the cursor style on the body
|
78
|
-
*/
|
79
|
-
stopDrag(event) {
|
80
|
-
if (this.mousemoveListener) {
|
81
|
-
this.mousemoveListener();
|
82
|
-
this.mousemoveListener = undefined;
|
83
|
-
}
|
84
|
-
if (this.mouseupListener) {
|
85
|
-
this.mouseupListener();
|
86
|
-
this.mouseupListener = undefined;
|
87
|
-
}
|
88
|
-
if (this.currentEl) {
|
89
|
-
this.renderer.removeClass(this.currentEl, 'is-active');
|
90
|
-
}
|
91
|
-
this.renderer.removeStyle(this.document.body, 'cursor');
|
92
|
-
}
|
93
|
-
/**Called after the view initializes if the component supports restoring widths and there are cached widths to restore.
|
94
|
-
* To be overridden in a derived class if it supports restoring widths, defaults to a no-op*/
|
95
|
-
restoreWidths(widths) { }
|
96
|
-
/** Store the provided widths in cache so they can be retrieved later */
|
97
|
-
saveWidths(widths) {
|
98
|
-
if (this.rememberWidth && this.id) {
|
99
|
-
this.cacheService.setItem('resizable-' + this.id, {
|
100
|
-
widths: widths
|
101
|
-
});
|
102
|
-
}
|
103
|
-
else if (this.rememberWidth) {
|
104
|
-
console.error('rememberWidth is set but will not take effect unless ID is also set');
|
105
|
-
}
|
106
|
-
}
|
107
|
-
}
|
108
|
-
ResizableBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizableBase, deps: [{ token: i0.Renderer2 }, { token: i1.CacheService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
|
109
|
-
ResizableBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ResizableBase, inputs: { rememberWidth: "rememberWidth", id: "id" }, ngImport: i0 });
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizableBase, decorators: [{
|
111
|
-
type: Directive
|
112
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.CacheService }, { type: Document, decorators: [{
|
113
|
-
type: Inject,
|
114
|
-
args: [DOCUMENT]
|
115
|
-
}] }]; }, propDecorators: { rememberWidth: [{
|
116
|
-
type: Input
|
117
|
-
}], id: [{
|
118
|
-
type: Input
|
119
|
-
}] } });
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9yZXNpemFibGUvcmVzaXphYmxlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLE1BQU0sRUFBRSxLQUFLLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUszQzs7O0dBR0c7QUFFSCxNQUFNLE9BQWdCLGFBQWE7SUFDakMsZUFBZTtRQUNiLElBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFDO1lBQy9CLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFtQixZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pGLElBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO2dCQUNyRCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNuQztTQUNGO0lBQ0gsQ0FBQztJQXlCRCxZQUNZLFFBQW1CLEVBQ3JCLFlBQTBCLEVBQ04sUUFBa0I7UUFGcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUNOLGFBQVEsR0FBUixRQUFRLENBQVU7UUExQmhELCtGQUErRjtRQUV4RixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUV0Qyx5RUFBeUU7UUFFbEUsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUV2QixnREFBZ0Q7UUFDdEMsY0FBUyxHQUF1QixJQUFJLENBQUM7UUFFL0Msa0ZBQWtGO1FBQ3hFLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBRWxD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U0FDSjthQUFNLElBQUcsSUFBSSxDQUFDLGFBQWEsRUFBQztZQUMzQixPQUFPLENBQUMsS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7U0FDdEY7SUFDSCxDQUFDOzswR0E1SG1CLGFBQWEsdUVBb0N2QixRQUFROzhGQXBDRSxhQUFhOzJGQUFiLGFBQWE7a0JBRGxDLFNBQVM7OzBCQXFDTCxNQUFNOzJCQUFDLFFBQVE7NENBeEJYLGFBQWE7c0JBRG5CLEtBQUs7Z0JBS0MsRUFBRTtzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVuZGVyZXIyLCBJbmplY3QsIElucHV0LCBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2NhY2hlLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IHR5cGUgUmVzaXplQ2FjaGVFbnRyeSA9IHsgd2lkdGhzOiBudW1iZXJbXSB9O1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgY2xhc3MgZm9yIGhhbmRsaW5nIGNsaWNrIGFuZCBkcmFnIHJlc2l6aW5nIG9mIGVsZW1lbnRzIHdpdGggYSBtb3VzZS4gXHJcbiAqIERlcml2ZWQgY2xhc3NlcyBtdXN0IHByb3ZpZGUgdGhlIGVsZW1lbnQgdG8gYmUgcmVzaXplZCBhbmQgaW1wbGVtZW50IHRoZSBzZXRXaWR0aCBmdW5jdGlvbi5cclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzaXphYmxlQmFzZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMucmVtZW1iZXJXaWR0aCAmJiB0aGlzLmlkKXtcclxuICAgICAgbGV0IGNhY2hlZCA9IHRoaXMuY2FjaGVTZXJ2aWNlLmdldEl0ZW08UmVzaXplQ2FjaGVFbnRyeT4oJ3Jlc2l6YWJsZS0nICsgdGhpcy5pZCk7XHJcbiAgICAgIGlmKGNhY2hlZCAmJiBjYWNoZWQud2lkdGhzICYmIGNhY2hlZC53aWR0aHMubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgdGhpcy5yZXN0b3JlV2lkdGhzKGNhY2hlZC53aWR0aHMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipTZXQgdG8gdHJ1ZSBpZiB0aGUgcmVzaXphYmxlIHNob3VsZCByZW1lbWJlciBpdHMgd2lkdGguIFJlcXVpcmVzIHRoZSBlbGVtZW50IHRvIGhhdmUgYW4gSUQqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlbWVtYmVyV2lkdGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqVGhlIGlkIG9mIHRoZSByZXNpemFibGUsIHVzZWQgZm9yIEdJIGFuZCBmb3IgcmVtZW1iZXJpbmcgdGhlIHdpZHRoICAqL1xyXG4gIEBJbnB1dCgpIFxyXG4gIHB1YmxpYyBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKiBUaGUgZWxlbWVudCB0aGF0IGlzIGN1cnJlbnQgYmVpbmcgcmVzaXplZCAqL1xyXG4gIHByb3RlY3RlZCBjdXJyZW50RWw6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKiBUaGUgeCBwb3NpdGlvbiBvZiB0aGUgbW91c2Ugd2hlbiBkcmFnZ2luZyBzdGFydHMuIFJlbGF0aXZlIHRvIHRoZSB2aWV3cG9ydC4gKi9cclxuICBwcm90ZWN0ZWQgc3RhcnRTY3JlZW5YOiBudW1iZXIgPSAwO1xyXG5cclxuICAgLyoqIFRoZSB3aWR0aCBvZiB0aGUgY3VycmVudCBlbGVtZW50IHdoZW4gZHJhZ2dpbmcgc3RhcnRzLiAqL1xyXG4gIHByb3RlY3RlZCBzdGFydEVsV2lkdGg6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKiBcclxuICAgKiBTdG9yZWQgJ3VubGlzdGVuJyBmdW5jdGlvbnMgdGhhdCByZW1vdmUgdGhlaXIgcmVzcGVjdGl2ZSBsaXN0ZW5lcnMgd2hlbiBjYWxsZWQgXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIG1vdXNldXBMaXN0ZW5lcj86ICgpID0+IHZvaWQ7XHJcbiAgcHJvdGVjdGVkIG1vdXNlbW92ZUxpc3RlbmVyPzogKCkgPT4gdm9pZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMiwgXHJcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJvdGVjdGVkIGRvY3VtZW50OiBEb2N1bWVudFxyXG4gICl7fVxyXG5cclxuICAvKiogXHJcbiAgICogT24gYSBtb3VzZWRvd24gZXZlbnRcclxuICAgKiAqIHN0b3JlIHRoZSB3aWR0aCBvZiB0aGUgY3VycmVudCBlbGVtZW50IHRvIGNhbGN1bGF0ZSB0aGUgbmV3IHdpZHRoXHJcbiAgICogKiBzdG9yZSB0aGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgcG9pbnRlciB0byBjYWxjdWxhdGUgdGhlIG5ldyB3aWR0aC4gXHJcbiAgICogKiBhZGQgdGhlICdpcy1hY3RpdmUnIGNsYXNzIHRvIHRoZSBjdXJyZW50IGVsZW1lbnRcclxuICAgKiAqIHNldCB1cCBsaXN0ZW5lcnMgb24gdGhlIGRvY3VtZW50IHRvIGtub3cgd2hlbiBkcmFnZ2luZyBzdGFydHMgYW5kIHN0b3BzLiBcclxuICAgKiBNb3VzZSBldmVudCBsaXN0ZW5lcnMgYXJlIGFkZGVkIHRvIHRoZSBkb2N1bWVudCBiZWNhdXNlIHRoZSBjdXJzb3IgbWF5IG1vdmUgXHJcbiAgICogb2ZmIHRoZSBjdXJyZW50IGVsZW1lbnQgd2hpbGUgZHJhZ2dpbmcuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXJ0RHJhZyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudEVsKSB7XHJcbiAgICAgIHRoaXMuc3RhcnRFbFdpZHRoID0gdGhpcy5jdXJyZW50RWwub2Zmc2V0V2lkdGg7XHJcbiAgICAgIHRoaXMuc3RhcnRTY3JlZW5YID0gZXZlbnQuc2NyZWVuWDtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmN1cnJlbnRFbCwgJ2lzLWFjdGl2ZScpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2N1cnNvcicsICdjb2wtcmVzaXplJyk7XHJcblxyXG4gICAgICAvLyBSZW1vdmUgYW55IGxpc3RlbmVycyB0aGF0IG1heSBoYXZlIG5vdCBiZWVuIGNsZWFuZWQgdXAgYmVmb3JlIHdlIHJlZ2lzdGVyIG5ldyBsaXN0ZW5lcnMuXHJcbiAgICAgIGlmICh0aGlzLm1vdXNldXBMaXN0ZW5lcikge1xyXG4gICAgICAgIHRoaXMubW91c2V1cExpc3RlbmVyKCk7XHJcbiAgICAgICAgdGhpcy5tb3VzZXVwTGlzdGVuZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMubW91c2Vtb3ZlTGlzdGVuZXIpIHtcclxuICAgICAgICB0aGlzLm1vdXNlbW92ZUxpc3RlbmVyKCk7XHJcbiAgICAgICAgdGhpcy5tb3VzZW1vdmVMaXN0ZW5lciA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5tb3VzZXVwTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LCAnbW91c2V1cCcsIHRoaXMuc3RvcERyYWcuYmluZCh0aGlzKSk7XHJcbiAgICAgIHRoaXMubW91c2Vtb3ZlTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LCAnbW91c2Vtb3ZlJywgdGhpcy5kcmFnLmJpbmQodGhpcykpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjdXJyZW50RWwgaXMgJHt0aGlzLmN1cnJlbnRFbH0uIGN1cnJlbnRFbCBtdXN0IGJlIGFzc2lnbmVkIGJlZm9yZSBzdGFydERyYWcoKSBpcyBjYWxsZWQuYCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbiBhIG1vdXNlbW92ZSBldmVudCwgY2FsY3VsYXRlIHRoZSBuZXcgd2lkdGggb2YgdGhlIGN1cnJlbnQgZWxlbWVudCBieSBcclxuICAgKiBhZGRpbmcgdGhlIGRpZmZlcmVuY2Ugb2YgdGhlIHN0YXJ0IHBhZ2VYIHBvc2l0aW9uIGFuZCB0aGUgY3VycmVudCBwYWdlWCBcclxuICAgKiBwb3NpdGlvbiB0byB0aGUgd2lkdGggb2YgdGhlIGVsZW1lbnQgd2hlbiB3ZSBzdGFydGVkIGRyYWdnaW5nLiBQYXNzIHRoZSBcclxuICAgKiBjYWxjdWxhdGVkIHdpdGggdG8gdGhlIHNldFdpZHRoIG1ldGhvZC5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZHJhZyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRXaWR0aCh0aGlzLnN0YXJ0RWxXaWR0aCArIChldmVudC5zY3JlZW5YIC0gdGhpcy5zdGFydFNjcmVlblgpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSB0aGUgY3VycmVudCBlbGVtZW50J3Mgd2lkdGguIENhbGxlZCBhZnRlciBhIG1vdXNlbW92ZSBldmVudC5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0V2lkdGgod2lkdGg6IG51bWJlcik6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIGEgbW91c2V1cCBldmVudFxyXG4gICAqICogcmVtb3ZlIHRoZSBtb3VzZSBldmVudCBsaXN0ZW5lcnMgb24gdGhlIGRvY3VtZW50LlxyXG4gICAqICogcmVtb3ZlIHRoZSAnaXMtYWN0aXZlJyBjbGFzcyBmcm9tIHRoZSBjdXJyZW50IGVsZW1lbnRcclxuICAgKiAqIHJlc2V0IHRoZSBjdXJzb3Igc3R5bGUgb24gdGhlIGJvZHlcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc3RvcERyYWcoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm1vdXNlbW92ZUxpc3RlbmVyKSB7XHJcbiAgICAgIHRoaXMubW91c2Vtb3ZlTGlzdGVuZXIoKTtcclxuICAgICAgdGhpcy5tb3VzZW1vdmVMaXN0ZW5lciA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYgKHRoaXMubW91c2V1cExpc3RlbmVyKSB7XHJcbiAgICAgIHRoaXMubW91c2V1cExpc3RlbmVyKCk7XHJcbiAgICAgIHRoaXMubW91c2V1cExpc3RlbmVyID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZiAodGhpcy5jdXJyZW50RWwpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmN1cnJlbnRFbCwgJ2lzLWFjdGl2ZScpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5kb2N1bWVudC5ib2R5LCAnY3Vyc29yJyk7XHJcbiAgfVxyXG5cclxuICAvKipDYWxsZWQgYWZ0ZXIgdGhlIHZpZXcgaW5pdGlhbGl6ZXMgaWYgdGhlIGNvbXBvbmVudCBzdXBwb3J0cyByZXN0b3Jpbmcgd2lkdGhzIGFuZCB0aGVyZSBhcmUgY2FjaGVkIHdpZHRocyB0byByZXN0b3JlLiBcclxuICAgKiBUbyBiZSBvdmVycmlkZGVuIGluIGEgZGVyaXZlZCBjbGFzcyBpZiBpdCBzdXBwb3J0cyByZXN0b3Jpbmcgd2lkdGhzLCBkZWZhdWx0cyB0byBhIG5vLW9wKi9cclxuICBwcm90ZWN0ZWQgcmVzdG9yZVdpZHRocyh3aWR0aHM6IG51bWJlcltdKTogdm9pZCB7IH1cclxuXHJcbiAgLyoqIFN0b3JlIHRoZSBwcm92aWRlZCB3aWR0aHMgaW4gY2FjaGUgc28gdGhleSBjYW4gYmUgcmV0cmlldmVkIGxhdGVyICovXHJcbiAgcHJvdGVjdGVkIHNhdmVXaWR0aHMod2lkdGhzOiBudW1iZXJbXSl7XHJcbiAgICBpZih0aGlzLnJlbWVtYmVyV2lkdGggJiYgdGhpcy5pZCl7XHJcbiAgICAgIHRoaXMuY2FjaGVTZXJ2aWNlLnNldEl0ZW0oJ3Jlc2l6YWJsZS0nICsgdGhpcy5pZCwgPFJlc2l6ZUNhY2hlRW50cnk+IHtcclxuICAgICAgICB3aWR0aHM6IHdpZHRoc1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZih0aGlzLnJlbWVtYmVyV2lkdGgpe1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdyZW1lbWJlcldpZHRoIGlzIHNldCBidXQgd2lsbCBub3QgdGFrZSBlZmZlY3QgdW5sZXNzIElEIGlzIGFsc28gc2V0Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG59Il19
|
@@ -1,42 +0,0 @@
|
|
1
|
-
import { Component } from '@angular/core';
|
2
|
-
import { Subject, timer } from 'rxjs';
|
3
|
-
import { takeUntil, tap } from 'rxjs/operators';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "./splash.service";
|
6
|
-
export class SplashComponent {
|
7
|
-
constructor(splashService) {
|
8
|
-
this.splashService = splashService;
|
9
|
-
/** Sets the visibility of the splash display */
|
10
|
-
this.isVisible = true;
|
11
|
-
this.stopAnimation = false;
|
12
|
-
/** Emits when the service is destroyed */
|
13
|
-
this.destroyed = new Subject();
|
14
|
-
}
|
15
|
-
ngOnInit() {
|
16
|
-
this.splashService.splashVisibility.pipe(takeUntil(this.destroyed), tap(async (value) => {
|
17
|
-
if (value) {
|
18
|
-
this.stopAnimation = false;
|
19
|
-
}
|
20
|
-
else {
|
21
|
-
// Prevent animation from continuing after splash screen is hidden
|
22
|
-
// but if we hide it then show while the timer is running, don't stop the animation after all
|
23
|
-
timer(1000).pipe(takeUntil(this.splashService.splashVisibility)).subscribe(() => {
|
24
|
-
this.stopAnimation = true;
|
25
|
-
});
|
26
|
-
}
|
27
|
-
})).subscribe(showSplash => {
|
28
|
-
this.isVisible = showSplash;
|
29
|
-
});
|
30
|
-
}
|
31
|
-
ngOnDestroy() {
|
32
|
-
this.destroyed.next();
|
33
|
-
this.destroyed.unsubscribe();
|
34
|
-
}
|
35
|
-
}
|
36
|
-
SplashComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SplashComponent, deps: [{ token: i1.SplashService }], target: i0.ɵɵFactoryTarget.Component });
|
37
|
-
SplashComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SplashComponent, selector: "ec-splash", ngImport: i0, template: "<div class=\"app-splash\" [class.app-loaded]=\"!isVisible\">\r\n <img src=\"/assets/images/splash.gif\">\r\n</div>" });
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SplashComponent, decorators: [{
|
39
|
-
type: Component,
|
40
|
-
args: [{ selector: 'ec-splash', template: "<div class=\"app-splash\" [class.app-loaded]=\"!isVisible\">\r\n <img src=\"/assets/images/splash.gif\">\r\n</div>" }]
|
41
|
-
}], ctorParameters: function () { return [{ type: i1.SplashService }]; } });
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsYXNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3NwbGFzaC9zcGxhc2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvc3BsYXNoL3NwbGFzaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFNaEQsTUFBTSxPQUFPLGVBQWU7SUFRMUIsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFQaEQsZ0RBQWdEO1FBQ3pDLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFdEMsMENBQTBDO1FBQ2xDLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVHLENBQUM7SUFFckQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUN0QyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUN6QixHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxFQUFFO1lBQ2hCLElBQUksS0FBSyxFQUFFO2dCQUNULElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2FBQzVCO2lCQUFNO2dCQUNMLGtFQUFrRTtnQkFDbEUsNkZBQTZGO2dCQUM3RixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRSxFQUFFO29CQUM3RSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7NEdBaENVLGVBQWU7Z0dBQWYsZUFBZSxpRENUNUIsdUhBRU07MkZET08sZUFBZTtrQkFKM0IsU0FBUzsrQkFDRSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTcGxhc2hTZXJ2aWNlIH0gZnJvbSAnLi9zcGxhc2guc2VydmljZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy1zcGxhc2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGxhc2guY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGxhc2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLyoqIFNldHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIHNwbGFzaCBkaXNwbGF5ICovXHJcbiAgcHVibGljIGlzVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHN0b3BBbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIHNlcnZpY2UgaXMgZGVzdHJveWVkICovXHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNwbGFzaFNlcnZpY2U6IFNwbGFzaFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc3BsYXNoU2VydmljZS5zcGxhc2hWaXNpYmlsaXR5LnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCksXHJcbiAgICAgIHRhcChhc3luYyB2YWx1ZSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLnN0b3BBbmltYXRpb24gPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gUHJldmVudCBhbmltYXRpb24gZnJvbSBjb250aW51aW5nIGFmdGVyIHNwbGFzaCBzY3JlZW4gaXMgaGlkZGVuXHJcbiAgICAgICAgICAvLyBidXQgaWYgd2UgaGlkZSBpdCB0aGVuIHNob3cgd2hpbGUgdGhlIHRpbWVyIGlzIHJ1bm5pbmcsIGRvbid0IHN0b3AgdGhlIGFuaW1hdGlvbiBhZnRlciBhbGxcclxuICAgICAgICAgIHRpbWVyKDEwMDApLnBpcGUodGFrZVVudGlsKHRoaXMuc3BsYXNoU2VydmljZS5zcGxhc2hWaXNpYmlsaXR5KSkuc3Vic2NyaWJlKCgpPT57XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApLnN1YnNjcmliZShzaG93U3BsYXNoID0+IHtcclxuICAgICAgdGhpcy5pc1Zpc2libGUgPSBzaG93U3BsYXNoO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveWVkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhcHAtc3BsYXNoXCIgW2NsYXNzLmFwcC1sb2FkZWRdPVwiIWlzVmlzaWJsZVwiPlxyXG4gICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltYWdlcy9zcGxhc2guZ2lmXCI+XHJcbjwvZGl2PiJdfQ==
|
@@ -1,227 +0,0 @@
|
|
1
|
-
import { Directive, Inject, Input } from '@angular/core';
|
2
|
-
import { DOCUMENT } from '@angular/common';
|
3
|
-
import { ResizableBase } from '../resizable/resizable-base';
|
4
|
-
import { Subject } from 'rxjs';
|
5
|
-
import { takeUntil } from 'rxjs/operators';
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
import * as i1 from "../../core/cache.service";
|
8
|
-
/**
|
9
|
-
* Add the ability to resize columns to a standard HTML table.
|
10
|
-
* Specify a column as resizable by adding the .is-resizable class to a <th>.
|
11
|
-
*
|
12
|
-
* Usage:
|
13
|
-
```html
|
14
|
-
<table [ecResizableTable]>
|
15
|
-
<colgroup><col><col><col></colgroup>
|
16
|
-
<thead>
|
17
|
-
<tr>
|
18
|
-
<th class="is-resizable">Resizable</th>
|
19
|
-
<th class="is-resizable">Resizable</th>
|
20
|
-
<th>Static</th>
|
21
|
-
</tr>
|
22
|
-
</thead>
|
23
|
-
...
|
24
|
-
</table>
|
25
|
-
|
26
|
-
```
|
27
|
-
* Note: this directive is meant to be used internally with the TableComponent
|
28
|
-
* and is not exposed in the public-api of the library
|
29
|
-
*/
|
30
|
-
export class ResizableTableDirective extends ResizableBase {
|
31
|
-
constructor(el, renderer, cacheService, document) {
|
32
|
-
super(renderer, cacheService, document);
|
33
|
-
this.el = el;
|
34
|
-
this.sortableTable = false;
|
35
|
-
/**
|
36
|
-
* Stored reference to the <col> element children. Will throw if none are found. Will
|
37
|
-
* warn if the number of <col> elements do not match the number of <th> elements
|
38
|
-
*/
|
39
|
-
this.cols = [];
|
40
|
-
/**
|
41
|
-
* The widths of each table column. These are updated as columns are resized and
|
42
|
-
* are used to calculate the new table width.
|
43
|
-
*/
|
44
|
-
this.colWidths = [];
|
45
|
-
/**
|
46
|
-
* The current table width
|
47
|
-
*/
|
48
|
-
this.currentTableWidth = 0;
|
49
|
-
/**
|
50
|
-
* The width of the table when the component was initialized. The table cannot
|
51
|
-
* be shrunk below this width. If a column resize would cause the current table
|
52
|
-
* width to be below this value, the last column is widened instead.
|
53
|
-
*/
|
54
|
-
this.minTableWidth = 0;
|
55
|
-
/**
|
56
|
-
* The width the column can not be resized below.
|
57
|
-
*/
|
58
|
-
this.minColWidth = 32;
|
59
|
-
this.destroyed = new Subject();
|
60
|
-
}
|
61
|
-
ngOnInit() {
|
62
|
-
this.initResizableColumns();
|
63
|
-
this.resizableColumns.changes.pipe(takeUntil(this.destroyed)).subscribe(() => this.initResizableColumns());
|
64
|
-
}
|
65
|
-
ngOnDestroy() {
|
66
|
-
this.destroyed.next();
|
67
|
-
this.destroyed.complete();
|
68
|
-
}
|
69
|
-
/**
|
70
|
-
* Initialize
|
71
|
-
* * Check that the host element is a table and that <col> elements are present
|
72
|
-
* * Save the initial width of table as the minimum table width
|
73
|
-
* * Store a reference to all <col> elements
|
74
|
-
* * Add a handle to each resizable column and set up mousedown listeners to start dragging
|
75
|
-
*/
|
76
|
-
initResizableColumns() {
|
77
|
-
if (this.isResizable !== false) {
|
78
|
-
this.tableEl = this.el.nativeElement;
|
79
|
-
if (this.tableEl.tagName !== 'TABLE') {
|
80
|
-
throw new Error(`The 'ecResizableTable' directive can only be placed on a <table> element.`);
|
81
|
-
}
|
82
|
-
if (this.sortableTable) {
|
83
|
-
this.minColWidth = 48;
|
84
|
-
}
|
85
|
-
const headers = this.tableEl.querySelectorAll('th');
|
86
|
-
const cols = this.tableEl.querySelectorAll('col');
|
87
|
-
this.cols = [];
|
88
|
-
this.colWidths = [];
|
89
|
-
if (cols.length === 0) {
|
90
|
-
const fragment = this.document.createDocumentFragment();
|
91
|
-
const colgroup = this.renderer.createElement('colgroup');
|
92
|
-
headers.forEach(() => {
|
93
|
-
const col = this.renderer.createElement('col');
|
94
|
-
this.cols.push(col);
|
95
|
-
this.renderer.appendChild(fragment, col);
|
96
|
-
});
|
97
|
-
this.renderer.appendChild(colgroup, fragment);
|
98
|
-
this.renderer.insertBefore(this.tableEl, colgroup, this.tableEl.firstElementChild);
|
99
|
-
}
|
100
|
-
else {
|
101
|
-
cols.forEach(colEl => {
|
102
|
-
this.cols.push(colEl);
|
103
|
-
});
|
104
|
-
if (headers.length !== cols.length) {
|
105
|
-
console.warn(`There are ${headers.length} <th> elements and ${this.cols.length} <col> elements in this this table. The number of columns and table headers must match. <th> elements with a 'colspan' attribute are currently not supported.`);
|
106
|
-
}
|
107
|
-
}
|
108
|
-
const lastResizableIndex = Array.from(headers).reverse().findIndex(el => el.classList.contains('is-resizable')) + 1;
|
109
|
-
this.lastColIndex = this.cols.length - lastResizableIndex;
|
110
|
-
headers.forEach(th => {
|
111
|
-
if (th.classList.contains('is-resizable')) {
|
112
|
-
const handle = th.querySelector('.handle');
|
113
|
-
this.renderer.listen(handle, 'mousedown', (event) => {
|
114
|
-
this.currentEl = th;
|
115
|
-
this.startDrag(event);
|
116
|
-
});
|
117
|
-
}
|
118
|
-
});
|
119
|
-
// We need to wait a tick for a view that was previously loaded to be removed
|
120
|
-
// from the DOM and allow this directive's parent view to fully expand in the
|
121
|
-
// viewport before getting widths.
|
122
|
-
window.setTimeout(() => {
|
123
|
-
this.setInitialWidths(headers);
|
124
|
-
});
|
125
|
-
}
|
126
|
-
}
|
127
|
-
/**
|
128
|
-
* Update the column with the calculated width while resizing.
|
129
|
-
* If the column is narrowed so that the table would be narrower than the min-width,
|
130
|
-
* expand the last column. If the table is then widened, return the last column
|
131
|
-
* to its initial width.
|
132
|
-
* @param width
|
133
|
-
*/
|
134
|
-
setWidth(width) {
|
135
|
-
if (this.currentEl) {
|
136
|
-
const cellIndex = this.currentEl.cellIndex;
|
137
|
-
width = Math.max(width, this.minColWidth);
|
138
|
-
this.colWidths[cellIndex] = width;
|
139
|
-
this.renderer.setStyle(this.cols[cellIndex], 'width', width + 'px');
|
140
|
-
let totalColWidths = 0;
|
141
|
-
this.colWidths.forEach(w => {
|
142
|
-
totalColWidths += w;
|
143
|
-
});
|
144
|
-
const containerWidth = this.containerEl.nativeElement.clientWidth;
|
145
|
-
if (this.minTableWidth !== containerWidth) {
|
146
|
-
this.minTableWidth = containerWidth;
|
147
|
-
}
|
148
|
-
const diff = totalColWidths - this.minTableWidth;
|
149
|
-
if (diff < 0) {
|
150
|
-
const colIndex = cellIndex === this.lastColIndex ? this.lastColIndex - 1 : this.lastColIndex;
|
151
|
-
const colWidth = Math.max(this.colWidths[colIndex] + Math.abs(diff), this.minColWidth);
|
152
|
-
this.renderer.setStyle(this.cols[colIndex], 'width', colWidth + 'px');
|
153
|
-
this.renderer.setStyle(this.tableEl, 'width', this.minTableWidth + 'px');
|
154
|
-
}
|
155
|
-
else {
|
156
|
-
this.renderer.setStyle(this.tableEl, 'width', totalColWidths + 'px');
|
157
|
-
}
|
158
|
-
}
|
159
|
-
}
|
160
|
-
stopDrag(event) {
|
161
|
-
super.stopDrag(event);
|
162
|
-
if (this.currentEl) {
|
163
|
-
const cellIndex = this.currentEl.cellIndex;
|
164
|
-
const currentCol = this.resizableColumns.find(col => col.el.nativeElement.cellIndex === cellIndex);
|
165
|
-
if (currentCol) {
|
166
|
-
currentCol.emitWidth(Math.round(this.colWidths[cellIndex]));
|
167
|
-
}
|
168
|
-
}
|
169
|
-
}
|
170
|
-
/**
|
171
|
-
* Capture the initial width of the table and the table headers.
|
172
|
-
* @param headers
|
173
|
-
*/
|
174
|
-
setInitialWidths(headers) {
|
175
|
-
this.currentTableWidth = this.tableEl.offsetWidth;
|
176
|
-
this.minTableWidth = this.containerEl.nativeElement.clientWidth;
|
177
|
-
headers.forEach(th => {
|
178
|
-
this.colWidths[th.cellIndex] = th.offsetWidth;
|
179
|
-
const width = th.style.width;
|
180
|
-
if (width) {
|
181
|
-
this.renderer.setStyle(this.cols[th.cellIndex], 'width', width);
|
182
|
-
this.renderer.removeStyle(th, 'width');
|
183
|
-
}
|
184
|
-
});
|
185
|
-
let totalColWidths = 0;
|
186
|
-
this.colWidths.forEach(w => {
|
187
|
-
totalColWidths += w;
|
188
|
-
});
|
189
|
-
// Check to see if our total column widths is greater than our table width
|
190
|
-
let colWidthDifference = totalColWidths - this.currentTableWidth;
|
191
|
-
// If the total column widths is greater than zero then its larger than our table container
|
192
|
-
// To prevent a horizontal scroll we will bump a columns width down to match the table size
|
193
|
-
if (colWidthDifference > 0) {
|
194
|
-
// Ideally we will choose the second to the last column, but if there is only one that'll do
|
195
|
-
let columnToReduce = headers.length > 1 ? headers.length - 2 : 0;
|
196
|
-
// Shrink the column
|
197
|
-
let th = headers[columnToReduce];
|
198
|
-
this.colWidths[th.cellIndex] = th.offsetWidth - colWidthDifference;
|
199
|
-
this.renderer.setStyle(this.cols[th.cellIndex], 'width', this.colWidths[th.cellIndex] + 'px');
|
200
|
-
// Reduce our totalColWidths to reflect
|
201
|
-
totalColWidths = totalColWidths - colWidthDifference;
|
202
|
-
}
|
203
|
-
this.renderer.setStyle(this.tableEl, 'width', Math.max(this.currentTableWidth, totalColWidths) + 'px');
|
204
|
-
this.renderer.setStyle(this.tableEl, 'minWidth', '100%');
|
205
|
-
}
|
206
|
-
}
|
207
|
-
ResizableTableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizableTableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.CacheService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
|
208
|
-
ResizableTableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ResizableTableDirective, selector: "[ecResizableTable]", inputs: { isResizable: ["ecResizableTable", "isResizable"], containerEl: "containerEl", sortableTable: "sortableTable", resizableColumns: "resizableColumns" }, usesInheritance: true, ngImport: i0 });
|
209
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizableTableDirective, decorators: [{
|
210
|
-
type: Directive,
|
211
|
-
args: [{
|
212
|
-
selector: '[ecResizableTable]'
|
213
|
-
}]
|
214
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.CacheService }, { type: Document, decorators: [{
|
215
|
-
type: Inject,
|
216
|
-
args: [DOCUMENT]
|
217
|
-
}] }]; }, propDecorators: { isResizable: [{
|
218
|
-
type: Input,
|
219
|
-
args: ['ecResizableTable']
|
220
|
-
}], containerEl: [{
|
221
|
-
type: Input
|
222
|
-
}], sortableTable: [{
|
223
|
-
type: Input
|
224
|
-
}], resizableColumns: [{
|
225
|
-
type: Input
|
226
|
-
}] } });
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXRhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3RhYmxlL3Jlc2l6YWJsZS10YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUMsTUFBTSxFQUFFLEtBQUssRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRzNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFJSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQStDeEQsWUFDVSxFQUFjLEVBQ3RCLFFBQW1CLEVBQ25CLFlBQTBCLEVBQ1IsUUFBa0I7UUFFcEMsS0FBSyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFMaEMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTdDZixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQVd4Qzs7O1dBR0c7UUFDSyxTQUFJLEdBQTBCLEVBQUUsQ0FBQztRQUV6Qzs7O1dBR0c7UUFDSyxjQUFTLEdBQWEsRUFBRSxDQUFDO1FBRWpDOztXQUVHO1FBQ0ssc0JBQWlCLEdBQVcsQ0FBQyxDQUFDO1FBRXRDOzs7O1dBSUc7UUFDSyxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUVsQzs7V0FFRztRQUNLLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBSXpCLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQVNqRCxDQUFDO0lBRU0sUUFBUTtR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LENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN2RyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzRCxDQUFDOztvSEFoT1UsdUJBQXVCLGlHQW1EeEIsUUFBUTt3R0FuRFAsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7OzBCQW9ESSxNQUFNOzJCQUFDLFFBQVE7NENBbERTLFdBQVc7c0JBQXJDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUNoQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTUcsZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkluaXQsIFJlbmRlcmVyMiwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSZXNpemFibGVCYXNlIH0gZnJvbSAnLi4vcmVzaXphYmxlL3Jlc2l6YWJsZS1iYXNlJztcclxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vcmVzaXphYmxlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEFkZCB0aGUgYWJpbGl0eSB0byByZXNpemUgY29sdW1ucyB0byBhIHN0YW5kYXJkIEhUTUwgdGFibGUuXHJcbiAqIFNwZWNpZnkgYSBjb2x1bW4gYXMgcmVzaXphYmxlIGJ5IGFkZGluZyB0aGUgLmlzLXJlc2l6YWJsZSBjbGFzcyB0byBhIDx0aD4uXHJcbiAqIFxyXG4gKiBVc2FnZTpcclxuICBgYGBodG1sXHJcbiAgPHRhYmxlIFtlY1Jlc2l6YWJsZVRhYmxlXT5cclxuICAgIDxjb2xncm91cD48Y29sPjxjb2w+PGNvbD48L2NvbGdyb3VwPlxyXG4gICAgPHRoZWFkPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRoIGNsYXNzPVwiaXMtcmVzaXphYmxlXCI+UmVzaXphYmxlPC90aD5cclxuICAgICAgICA8dGggY2xhc3M9XCJpcy1yZXNpemFibGVcIj5SZXNpemFibGU8L3RoPlxyXG4gICAgICAgIDx0aD5TdGF0aWM8L3RoPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90aGVhZD5cclxuICAgIC4uLlxyXG4gIDwvdGFibGU+XHJcblxyXG4gIGBgYFxyXG4gICogTm90ZTogdGhpcyBkaXJlY3RpdmUgaXMgbWVhbnQgdG8gYmUgdXNlZCBpbnRlcm5hbGx5IHdpdGggdGhlIFRhYmxlQ29tcG9uZW50XHJcbiAgKiBhbmQgaXMgbm90IGV4cG9zZWQgaW4gdGhlIHB1YmxpYy1hcGkgb2YgdGhlIGxpYnJhcnlcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2VjUmVzaXphYmxlVGFibGVdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlVGFibGVEaXJlY3RpdmUgZXh0ZW5kcyBSZXNpemFibGVCYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgnZWNSZXNpemFibGVUYWJsZScpIGlzUmVzaXphYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGNvbnRhaW5lckVsITogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKSBzb3J0YWJsZVRhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBcclxuICAgKiBVc2VkIHRvIG5vdGlmeSB0aGUgcmVzaXphYmxlIGRpcmVjdGl2ZSB0aGF0IHRoZSBjb2x1bW5zIGFyZSByZWFkeSB0byBiZSBjb25maWd1cmVkLlxyXG4gICAqIE11c3QgYmUgdXNlZCBpZiB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgY2FuIGNoYW5nZSBvdmVyIHRoZSB0YWJsZSdzIGxpZmVjeWNsZS5cclxuICAgKi9cclxuICBASW5wdXQoKSByZXNpemFibGVDb2x1bW5zITogUXVlcnlMaXN0PFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudD47XHJcblxyXG4gIC8qKiBUaGUgaG9zdCA8dGFibGU+IGVsZW1lbnQuIFdpbGwgdGhyb3cgaWYgaG9zdCBlbGVtZW50IGlzIG5vdCBhIDx0YWJsZT4gKi9cclxuICBwcml2YXRlIHRhYmxlRWwhOiBIVE1MVGFibGVFbGVtZW50O1xyXG5cclxuICAvKiogXHJcbiAgICogU3RvcmVkIHJlZmVyZW5jZSB0byB0aGUgPGNvbD4gZWxlbWVudCBjaGlsZHJlbi4gV2lsbCB0aHJvdyBpZiBub25lIGFyZSBmb3VuZC4gV2lsbFxyXG4gICAqIHdhcm4gaWYgdGhlIG51bWJlciBvZiA8Y29sPiBlbGVtZW50cyBkbyBub3QgbWF0Y2ggdGhlIG51bWJlciBvZiA8dGg+IGVsZW1lbnRzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjb2xzOiBIVE1MVGFibGVDb2xFbGVtZW50W10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHdpZHRocyBvZiBlYWNoIHRhYmxlIGNvbHVtbi4gVGhlc2UgYXJlIHVwZGF0ZWQgYXMgY29sdW1ucyBhcmUgcmVzaXplZCBhbmRcclxuICAgKiBhcmUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIG5ldyB0YWJsZSB3aWR0aC5cclxuICAgKi9cclxuICBwcml2YXRlIGNvbFdpZHRoczogbnVtYmVyW10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGN1cnJlbnQgdGFibGUgd2lkdGhcclxuICAgKi9cclxuICBwcml2YXRlIGN1cnJlbnRUYWJsZVdpZHRoOiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgd2lkdGggb2YgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbXBvbmVudCB3YXMgaW5pdGlhbGl6ZWQuIFRoZSB0YWJsZSBjYW5ub3RcclxuICAgKiBiZSBzaHJ1bmsgYmVsb3cgdGhpcyB3aWR0aC4gSWYgYSBjb2x1bW4gcmVzaXplIHdvdWxkIGNhdXNlIHRoZSBjdXJyZW50IHRhYmxlXHJcbiAgICogd2lkdGggdG8gYmUgYmVsb3cgdGhpcyB2YWx1ZSwgdGhlIGxhc3QgY29sdW1uIGlzIHdpZGVuZWQgaW5zdGVhZC5cclxuICAgKi9cclxuICBwcml2YXRlIG1pblRhYmxlV2lkdGg6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB3aWR0aCB0aGUgY29sdW1uIGNhbiBub3QgYmUgcmVzaXplZCBiZWxvdy5cclxuICAgKi9cclxuICBwcml2YXRlIG1pbkNvbFdpZHRoOiBudW1iZXIgPSAzMjtcclxuXHJcbiAgcHJpdmF0ZSBsYXN0Q29sSW5kZXghOiBudW1iZXI7XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveWVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IERvY3VtZW50XHJcbiAgKSB7XHJcbiAgICBzdXBlcihyZW5kZXJlciwgY2FjaGVTZXJ2aWNlLCBkb2N1bWVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRSZXNpemFibGVDb2x1bW5zKCk7XHJcblxyXG4gICAgdGhpcy5yZXNpemFibGVDb2x1bW5zLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5pbml0UmVzaXphYmxlQ29sdW1ucygpKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemVcclxuICAgKiAqIENoZWNrIHRoYXQgdGhlIGhvc3QgZWxlbWVudCBpcyBhIHRhYmxlIGFuZCB0aGF0IDxjb2w+IGVsZW1lbnRzIGFyZSBwcmVzZW50XHJcbiAgICogKiBTYXZlIHRoZSBpbml0aWFsIHdpZHRoIG9mIHRhYmxlIGFzIHRoZSBtaW5pbXVtIHRhYmxlIHdpZHRoXHJcbiAgICogKiBTdG9yZSBhIHJlZmVyZW5jZSB0byBhbGwgPGNvbD4gZWxlbWVudHNcclxuICAgKiAqIEFkZCBhIGhhbmRsZSB0byBlYWNoIHJlc2l6YWJsZSBjb2x1bW4gYW5kIHNldCB1cCBtb3VzZWRvd24gbGlzdGVuZXJzIHRvIHN0YXJ0IGRyYWdnaW5nXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpbml0UmVzaXphYmxlQ29sdW1ucygpIHtcclxuICAgIGlmICh0aGlzLmlzUmVzaXphYmxlICE9PSBmYWxzZSkge1xyXG5cclxuICAgICAgdGhpcy50YWJsZUVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICBpZiAodGhpcy50YWJsZUVsLnRhZ05hbWUgIT09ICdUQUJMRScpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSAnZWNSZXNpemFibGVUYWJsZScgZGlyZWN0aXZlIGNhbiBvbmx5IGJlIHBsYWNlZCBvbiBhIDx0YWJsZT4gZWxlbWVudC5gKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuc29ydGFibGVUYWJsZSkge1xyXG4gICAgICAgIHRoaXMubWluQ29sV2lkdGggPSA0ODtcclxuICAgICAgfVxyXG4gIFxyXG4gICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy50YWJsZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoJyk7XHJcbiAgICAgIGNvbnN0IGNvbHMgPSB0aGlzLnRhYmxlRWwucXVlcnlTZWxlY3RvckFsbCgnY29sJyk7XHJcbiAgICAgIHRoaXMuY29scyA9IFtdO1xyXG4gICAgICB0aGlzLmNvbFdpZHRocyA9IFtdO1xyXG4gIFxyXG4gICAgICBpZiAoY29scy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xyXG4gICAgICAgIGNvbnN0IGNvbGdyb3VwOiBIVE1MRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnY29sZ3JvdXAnKTtcclxuICAgICAgICBoZWFkZXJzLmZvckVhY2goKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY29sID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdjb2wnKTtcclxuICAgICAgICAgIHRoaXMuY29scy5wdXNoKGNvbCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGZyYWdtZW50LCBjb2wpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoY29sZ3JvdXAsIGZyYWdtZW50KTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSh0aGlzLnRhYmxlRWwsIGNvbGdyb3VwLCB0aGlzLnRhYmxlRWwuZmlyc3RFbGVtZW50Q2hpbGQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbHMuZm9yRWFjaChjb2xFbCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbHMucHVzaChjb2xFbCk7XHJcbiAgICAgICAgfSk7XHJcbiAgXHJcbiAgICAgICAgaWYgKGhlYWRlcnMubGVuZ3RoICE9PSBjb2xzLmxlbmd0aCkge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKGBUaGVyZSBhcmUgJHtoZWFkZXJzLmxlbmd0aH0gPHRoPiBlbGVtZW50cyBhbmQgJHt0aGlzLmNvbHMubGVuZ3RofSA8Y29sPiBlbGVtZW50cyBpbiB0aGlzIHRoaXMgdGFibGUuIFRoZSBudW1iZXIgb2YgY29sdW1ucyBhbmQgdGFibGUgaGVhZGVycyBtdXN0IG1hdGNoLiA8dGg+IGVsZW1lbnRzIHdpdGggYSAnY29sc3BhbicgYXR0cmlidXRlIGFyZSBjdXJyZW50bHkgbm90IHN1cHBvcnRlZC5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGxhc3RSZXNpemFibGVJbmRleCA9IEFycmF5LmZyb20oaGVhZGVycykucmV2ZXJzZSgpLmZpbmRJbmRleChlbCA9PiBlbC5jbGFzc0xpc3QuY29udGFpbnMoJ2lzLXJlc2l6YWJsZScpKSArIDE7XHJcbiAgICAgIHRoaXMubGFzdENvbEluZGV4ID0gdGhpcy5jb2xzLmxlbmd0aCAtIGxhc3RSZXNpemFibGVJbmRleDtcclxuICBcclxuICAgICAgaGVhZGVycy5mb3JFYWNoKHRoID0+IHtcclxuICAgICAgICBpZiAodGguY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1yZXNpemFibGUnKSkge1xyXG4gICAgICAgICAgY29uc3QgaGFuZGxlID0gdGgucXVlcnlTZWxlY3RvcignLmhhbmRsZScpO1xyXG5cclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGhhbmRsZSwgJ21vdXNlZG93bicsIChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRFbCA9IHRoO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0RHJhZyhldmVudCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIFxyXG4gICAgICAvLyBXZSBuZWVkIHRvIHdhaXQgYSB0aWNrIGZvciBhIHZpZXcgdGhhdCB3YXMgcHJldmlvdXNseSBsb2FkZWQgdG8gYmUgcmVtb3ZlZFxyXG4gICAgICAvLyBmcm9tIHRoZSBET00gYW5kIGFsbG93IHRoaXMgZGlyZWN0aXZlJ3MgcGFyZW50IHZpZXcgdG8gZnVsbHkgZXhwYW5kIGluIHRoZSBcclxuICAgICAgLy8gdmlld3BvcnQgYmVmb3JlIGdldHRpbmcgd2lkdGhzLlxyXG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRJbml0aWFsV2lkdGhzKGhlYWRlcnMpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSB0aGUgY29sdW1uIHdpdGggdGhlIGNhbGN1bGF0ZWQgd2lkdGggd2hpbGUgcmVzaXppbmcuXHJcbiAgICogSWYgdGhlIGNvbHVtbiBpcyBuYXJyb3dlZCBzbyB0aGF0IHRoZSB0YWJsZSB3b3VsZCBiZSBuYXJyb3dlciB0aGFuIHRoZSBtaW4td2lkdGgsXHJcbiAgICogZXhwYW5kIHRoZSBsYXN0IGNvbHVtbi4gSWYgdGhlIHRhYmxlIGlzIHRoZW4gd2lkZW5lZCwgcmV0dXJuIHRoZSBsYXN0IGNvbHVtblxyXG4gICAqIHRvIGl0cyBpbml0aWFsIHdpZHRoLlxyXG4gICAqIEBwYXJhbSB3aWR0aCBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2V0V2lkdGgod2lkdGg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudEVsKSB7XHJcbiAgICAgIGNvbnN0IGNlbGxJbmRleDogbnVtYmVyID0gKDxIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVudD50aGlzLmN1cnJlbnRFbCkuY2VsbEluZGV4O1xyXG4gICAgICB3aWR0aCA9IE1hdGgubWF4KHdpZHRoLCB0aGlzLm1pbkNvbFdpZHRoKTtcclxuICAgICAgdGhpcy5jb2xXaWR0aHNbY2VsbEluZGV4XSA9IHdpZHRoO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY29sc1tjZWxsSW5kZXhdLCAnd2lkdGgnLCB3aWR0aCArICdweCcpO1xyXG5cclxuICAgICAgbGV0IHRvdGFsQ29sV2lkdGhzID0gMDtcclxuICAgICAgdGhpcy5jb2xXaWR0aHMuZm9yRWFjaCh3ID0+IHtcclxuICAgICAgICB0b3RhbENvbFdpZHRocyArPSB3O1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gKDxIVE1MRGl2RWxlbWVudD50aGlzLmNvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQpLmNsaWVudFdpZHRoO1xyXG4gICAgICBpZiAodGhpcy5taW5UYWJsZVdpZHRoICE9PSBjb250YWluZXJXaWR0aCkge1xyXG4gICAgICAgIHRoaXMubWluVGFibGVXaWR0aCA9IGNvbnRhaW5lcldpZHRoO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBkaWZmID0gdG90YWxDb2xXaWR0aHMgLSB0aGlzLm1pblRhYmxlV2lkdGg7ICAgICAgXHJcbiAgICAgIGlmIChkaWZmIDwgMCkge1xyXG4gICAgICAgIGNvbnN0IGNvbEluZGV4ID0gY2VsbEluZGV4ID09PSB0aGlzLmxhc3RDb2xJbmRleCA/IHRoaXMubGFzdENvbEluZGV4IC0gMSA6IHRoaXMubGFzdENvbEluZGV4O1xyXG4gICAgICAgIGNvbnN0IGNvbFdpZHRoID0gTWF0aC5tYXgodGhpcy5jb2xXaWR0aHNbY29sSW5kZXhdICsgTWF0aC5hYnMoZGlmZiksIHRoaXMubWluQ29sV2lkdGgpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jb2xzW2NvbEluZGV4XSwgJ3dpZHRoJywgY29sV2lkdGggKyAncHgnKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudGFibGVFbCwgJ3dpZHRoJywgdGhpcy5taW5UYWJsZVdpZHRoICsgJ3B4Jyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRhYmxlRWwsICd3aWR0aCcsIHRvdGFsQ29sV2lkdGhzICsgJ3B4Jyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzdG9wRHJhZyhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgc3VwZXIuc3RvcERyYWcoZXZlbnQpO1xyXG4gICAgXHJcbiAgICBpZiAodGhpcy5jdXJyZW50RWwpIHtcclxuICAgICAgY29uc3QgY2VsbEluZGV4ID0gKDxIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVudD50aGlzLmN1cnJlbnRFbCkuY2VsbEluZGV4O1xyXG4gICAgICBjb25zdCBjdXJyZW50Q29sID0gdGhpcy5yZXNpemFibGVDb2x1bW5zLmZpbmQoY29sID0+ICg8SFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1lbnQ+Y29sLmVsLm5hdGl2ZUVsZW1lbnQpLmNlbGxJbmRleCA9PT0gY2VsbEluZGV4KTtcclxuICAgICAgaWYgKGN1cnJlbnRDb2wpIHtcclxuICAgICAgICBjdXJyZW50Q29sLmVtaXRXaWR0aChNYXRoLnJvdW5kKHRoaXMuY29sV2lkdGhzW2NlbGxJbmRleF0pKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FwdHVyZSB0aGUgaW5pdGlhbCB3aWR0aCBvZiB0aGUgdGFibGUgYW5kIHRoZSB0YWJsZSBoZWFkZXJzLlxyXG4gICAqIEBwYXJhbSBoZWFkZXJzIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0SW5pdGlhbFdpZHRocyhoZWFkZXJzOiBOb2RlTGlzdE9mPEhUTUxUYWJsZUhlYWRlckNlbGxFbGVtZW50Pik6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50VGFibGVXaWR0aCA9IHRoaXMudGFibGVFbC5vZmZzZXRXaWR0aDtcclxuICAgIHRoaXMubWluVGFibGVXaWR0aCA9IHRoaXMuY29udGFpbmVyRWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcclxuXHJcbiAgICBoZWFkZXJzLmZvckVhY2godGggPT4ge1xyXG4gICAgICB0aGlzLmNvbFdpZHRoc1t0aC5jZWxsSW5kZXhdID0gdGgub2Zmc2V0V2lkdGg7XHJcbiAgICAgIGNvbnN0IHdpZHRoID0gdGguc3R5bGUud2lkdGg7XHJcbiAgICAgIGlmICh3aWR0aCkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jb2xzW3RoLmNlbGxJbmRleF0sICd3aWR0aCcsIHdpZHRoKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoLCAnd2lkdGgnKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IHRvdGFsQ29sV2lkdGhzID0gMDtcclxuICAgIHRoaXMuY29sV2lkdGhzLmZvckVhY2godyA9PiB7XHJcbiAgICAgIHRvdGFsQ29sV2lkdGhzICs9IHc7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBDaGVjayB0byBzZWUgaWYgb3VyIHRvdGFsIGNvbHVtbiB3aWR0aHMgaXMgZ3JlYXRlciB0aGFuIG91ciB0YWJsZSB3aWR0aFxyXG4gICAgbGV0IGNvbFdpZHRoRGlmZmVyZW5jZSA9IHRvdGFsQ29sV2lkdGhzIC0gdGhpcy5jdXJyZW50VGFibGVXaWR0aDtcclxuICAgXHJcbiAgICAvLyBJZiB0aGUgdG90YWwgY29sdW1uIHdpZHRocyBpcyBncmVhdGVyIHRoYW4gemVybyB0aGVuIGl0cyBsYXJnZXIgdGhhbiBvdXIgdGFibGUgY29udGFpbmVyXHJcbiAgICAvLyBUbyBwcmV2ZW50IGEgaG9yaXpvbnRhbCBzY3JvbGwgd2Ugd2lsbCBidW1wIGEgY29sdW1ucyB3aWR0aCBkb3duIHRvIG1hdGNoIHRoZSB0YWJsZSBzaXplXHJcbiAgICBpZiAoY29sV2lkdGhEaWZmZXJlbmNlID4gMCkge1xyXG4gICAgICAvLyBJZGVhbGx5IHdlIHdpbGwgY2hvb3NlIHRoZSBzZWNvbmQgdG8gdGhlIGxhc3QgY29sdW1uLCBidXQgaWYgdGhlcmUgaXMgb25seSBvbmUgdGhhdCdsbCBkb1xyXG4gICAgICBsZXQgY29sdW1uVG9SZWR1Y2UgPSBoZWFkZXJzLmxlbmd0aCA+IDEgPyBoZWFkZXJzLmxlbmd0aCAtIDIgOiAwO1xyXG5cclxuICAgICAgLy8gU2hyaW5rIHRoZSBjb2x1bW5cclxuICAgICAgbGV0IHRoID0gaGVhZGVyc1tjb2x1bW5Ub1JlZHVjZV07XHJcbiAgICAgIHRoaXMuY29sV2lkdGhzW3RoLmNlbGxJbmRleF0gPSB0aC5vZmZzZXRXaWR0aCAtIGNvbFdpZHRoRGlmZmVyZW5jZTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNvbHNbdGguY2VsbEluZGV4XSwgJ3dpZHRoJywgdGhpcy5jb2xXaWR0aHNbdGguY2VsbEluZGV4XSArICdweCcpO1xyXG4gICAgXHJcbiAgICAgIC8vIFJlZHVjZSBvdXIgdG90YWxDb2xXaWR0aHMgdG8gcmVmbGVjdFxyXG4gICAgICB0b3RhbENvbFdpZHRocyA9IHRvdGFsQ29sV2lkdGhzIC0gY29sV2lkdGhEaWZmZXJlbmNlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50YWJsZUVsLCAnd2lkdGgnLCBNYXRoLm1heCh0aGlzLmN1cnJlbnRUYWJsZVdpZHRoLCB0b3RhbENvbFdpZHRocykgKyAncHgnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50YWJsZUVsLCAnbWluV2lkdGgnLCAnMTAwJScpO1xyXG4gIH1cclxufVxyXG4iXX0=
|