@energycap/components 0.42.4-esbuild.20250131-1105 → 0.42.4-esbuild.20250131-1219
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/package.json +5 -1
- package/esm2022/energycap-components.mjs +0 -5
- package/esm2022/lib/components.module.mjs +0 -423
- package/esm2022/lib/controls/banner/banner.component.mjs +0 -109
- package/esm2022/lib/controls/button/button.component.mjs +0 -106
- package/esm2022/lib/controls/button/copy-button-base.directive.mjs +0 -67
- package/esm2022/lib/controls/button/copy-button.directive.mjs +0 -28
- package/esm2022/lib/controls/button/copy-table-button.directive.mjs +0 -43
- package/esm2022/lib/controls/calendar/calendar-item.component.mjs +0 -91
- package/esm2022/lib/controls/calendar/calendar.component.mjs +0 -248
- package/esm2022/lib/controls/calendar/calendar.types.mjs +0 -2
- package/esm2022/lib/controls/checkbox/checkbox.component.mjs +0 -140
- package/esm2022/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +0 -38
- package/esm2022/lib/controls/combobox/combobox.component.mjs +0 -879
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +0 -57
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +0 -62
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +0 -100
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +0 -101
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +0 -76
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +0 -79
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +0 -210
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +0 -81
- package/esm2022/lib/controls/date-input/date-input.component.mjs +0 -464
- package/esm2022/lib/controls/date-input/date-input.types.mjs +0 -44
- package/esm2022/lib/controls/dropdown/dropdown.component.mjs +0 -243
- package/esm2022/lib/controls/file-upload/file-upload.component.mjs +0 -261
- package/esm2022/lib/controls/form-control/form-control.component.mjs +0 -98
- package/esm2022/lib/controls/form-control-base.mjs +0 -151
- package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +0 -136
- package/esm2022/lib/controls/form-group/form-group.component.mjs +0 -261
- package/esm2022/lib/controls/help-popover/help-popover.component.mjs +0 -31
- package/esm2022/lib/controls/item-picker/item-picker.component.mjs +0 -329
- package/esm2022/lib/controls/link-button/link-button.component.mjs +0 -11
- package/esm2022/lib/controls/menu/menu.component.mjs +0 -485
- package/esm2022/lib/controls/navigation/link-item.mjs +0 -2
- package/esm2022/lib/controls/navigation/nav-group.mjs +0 -39
- package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +0 -92
- package/esm2022/lib/controls/navigation/nav-item.mjs +0 -2
- package/esm2022/lib/controls/numericbox/numericbox.component.mjs +0 -372
- package/esm2022/lib/controls/popover/popover.component.mjs +0 -117
- package/esm2022/lib/controls/radio-button/radio-button-option.mjs +0 -3
- package/esm2022/lib/controls/radio-button/radio-button.component.mjs +0 -82
- package/esm2022/lib/controls/select/select.component.mjs +0 -88
- package/esm2022/lib/controls/tabs/tabs.component.mjs +0 -47
- package/esm2022/lib/controls/textbox/textbox.component.mjs +0 -155
- package/esm2022/lib/core/cache.service.mjs +0 -105
- package/esm2022/lib/core/custom-validators.mjs +0 -29
- package/esm2022/lib/core/date-time-helper.mjs +0 -228
- package/esm2022/lib/core/error.service.mjs +0 -61
- package/esm2022/lib/core/router-helper.service.mjs +0 -111
- package/esm2022/lib/core/scroll.service.mjs +0 -89
- package/esm2022/lib/core/telemetry-tracker.service.mjs +0 -16
- package/esm2022/lib/core/telemetry.service.mjs +0 -38
- package/esm2022/lib/core/validation-message.service.mjs +0 -185
- package/esm2022/lib/core/validation-patterns.mjs +0 -31
- package/esm2022/lib/core/window.service.mjs +0 -186
- package/esm2022/lib/display/app-bar/app-bar.component.mjs +0 -46
- package/esm2022/lib/display/avatar/avatar.component.mjs +0 -67
- package/esm2022/lib/display/avatar/avatar.service.mjs +0 -64
- package/esm2022/lib/display/confirm/confirm.component.mjs +0 -168
- package/esm2022/lib/display/dialog/dialog-content.mjs +0 -2
- package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +0 -63
- package/esm2022/lib/display/dialog/dialog-types.mjs +0 -77
- package/esm2022/lib/display/dialog/dialog.component.mjs +0 -281
- package/esm2022/lib/display/dialog/dialog.service.mjs +0 -71
- package/esm2022/lib/display/help/help-types.mjs +0 -2
- package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +0 -111
- package/esm2022/lib/display/hierarchy/hierarchy-mocks.spec.mjs +0 -54
- package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +0 -61
- package/esm2022/lib/display/item-display/item-display.component.mjs +0 -81
- package/esm2022/lib/display/json-display/json-display.component.mjs +0 -47
- package/esm2022/lib/display/resizable/resizable-base.mjs +0 -120
- package/esm2022/lib/display/resizable/resizable.component.mjs +0 -57
- package/esm2022/lib/display/spinner/spinner.component.mjs +0 -12
- package/esm2022/lib/display/splash/splash.component.mjs +0 -42
- package/esm2022/lib/display/splash/splash.service.mjs +0 -35
- package/esm2022/lib/display/table/resizable-column.component.mjs +0 -20
- package/esm2022/lib/display/table/resizable-table.directive.mjs +0 -227
- package/esm2022/lib/display/table/searchable-table.component.mjs +0 -342
- package/esm2022/lib/display/table/table-detail-row.component.mjs +0 -28
- package/esm2022/lib/display/table/table-locked-column.component.mjs +0 -58
- package/esm2022/lib/display/table/table-master-header-row.component.mjs +0 -14
- package/esm2022/lib/display/table/table-master-row.component.mjs +0 -163
- package/esm2022/lib/display/table/table-pagination.component.mjs +0 -155
- package/esm2022/lib/display/table/table-selectable-row.component.mjs +0 -235
- package/esm2022/lib/display/table/table.component.mjs +0 -249
- package/esm2022/lib/display/tags/tag.mjs +0 -18
- package/esm2022/lib/display/tags/tags.component.mjs +0 -77
- package/esm2022/lib/display/toast/toast/toast.component.mjs +0 -77
- package/esm2022/lib/display/toast/toast-types.mjs +0 -8
- package/esm2022/lib/display/toast/toast.service.mjs +0 -35
- package/esm2022/lib/display/toast/toaster/toaster.component.mjs +0 -114
- package/esm2022/lib/display/tooltip/tooltip.component.mjs +0 -28
- package/esm2022/lib/display/tooltip/tooltip.service.mjs +0 -78
- package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +0 -173
- package/esm2022/lib/display/tour/tour-types.mjs +0 -34
- package/esm2022/lib/display/tour/tour.component.mjs +0 -398
- package/esm2022/lib/display/tour/tour.service.mjs +0 -75
- package/esm2022/lib/display/tree/tree.component.mjs +0 -135
- package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +0 -58
- package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +0 -32
- package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +0 -111
- package/esm2022/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +0 -100
- package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +0 -166
- package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +0 -50
- package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +0 -30
- package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +0 -62
- package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +0 -48
- package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +0 -41
- package/esm2022/lib/shared/display.mjs +0 -6
- package/esm2022/lib/shared/form-group.helper.mjs +0 -67
- package/esm2022/lib/shared/json-helper.mjs +0 -19
- package/esm2022/lib/shared/lodash-helper.mjs +0 -52
- package/esm2022/lib/shared/page/page-base/page-base.component.mjs +0 -387
- package/esm2022/lib/shared/page/page-statuses.mjs +0 -23
- package/esm2022/lib/shared/page/page-title/page-title.component.mjs +0 -23
- package/esm2022/lib/shared/page/page-view/page-view.component.mjs +0 -147
- package/esm2022/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +0 -17
- package/esm2022/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +0 -17
- package/esm2022/lib/shared/testing/page-base-component-test-helper.spec.mjs +0 -38
- package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
- package/esm2022/lib/shared/testing/public-mocks.spec.mjs +0 -148
- package/esm2022/lib/shared/testing/spy-factory.spec.mjs +0 -40
- package/esm2022/lib/shared/testing/translation-mocks.spec.mjs +0 -57
- package/esm2022/lib/shared/user-preference.service.mjs +0 -17
- package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +0 -246
- package/esm2022/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +0 -68
- package/esm2022/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +0 -18
- package/esm2022/public-api.mjs +0 -117
- package/fesm2022/energycap-components.mjs +0 -13219
- package/fesm2022/energycap-components.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/components.module.d.ts +0 -92
- package/lib/controls/banner/banner.component.d.ts +0 -50
- package/lib/controls/button/button.component.d.ts +0 -78
- package/lib/controls/button/copy-button-base.directive.d.ts +0 -20
- package/lib/controls/button/copy-button.directive.d.ts +0 -14
- package/lib/controls/button/copy-table-button.directive.d.ts +0 -19
- package/lib/controls/calendar/calendar-item.component.d.ts +0 -22
- package/lib/controls/calendar/calendar.component.d.ts +0 -52
- package/lib/controls/calendar/calendar.types.d.ts +0 -11
- package/lib/controls/checkbox/checkbox.component.d.ts +0 -65
- package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +0 -25
- package/lib/controls/combobox/combobox.component.d.ts +0 -418
- 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.component.d.ts +0 -115
- package/lib/controls/date-input/date-input.types.d.ts +0 -62
- package/lib/controls/dropdown/dropdown.component.d.ts +0 -161
- package/lib/controls/file-upload/file-upload.component.d.ts +0 -124
- package/lib/controls/form-control/form-control.component.d.ts +0 -28
- package/lib/controls/form-control-base.d.ts +0 -110
- package/lib/controls/form-control-label/form-control-label.component.d.ts +0 -73
- package/lib/controls/form-group/form-group.component.d.ts +0 -105
- package/lib/controls/help-popover/help-popover.component.d.ts +0 -11
- package/lib/controls/item-picker/item-picker.component.d.ts +0 -164
- package/lib/controls/link-button/link-button.component.d.ts +0 -5
- package/lib/controls/menu/menu.component.d.ts +0 -255
- package/lib/controls/navigation/link-item.d.ts +0 -32
- package/lib/controls/navigation/nav-group.d.ts +0 -18
- package/lib/controls/navigation/nav-item-active.directive.d.ts +0 -42
- package/lib/controls/navigation/nav-item.d.ts +0 -31
- package/lib/controls/numericbox/numericbox.component.d.ts +0 -148
- package/lib/controls/popover/popover.component.d.ts +0 -51
- package/lib/controls/radio-button/radio-button-option.d.ts +0 -19
- package/lib/controls/radio-button/radio-button.component.d.ts +0 -53
- package/lib/controls/select/select.component.d.ts +0 -44
- package/lib/controls/tabs/tabs.component.d.ts +0 -30
- package/lib/controls/textbox/textbox.component.d.ts +0 -107
- package/lib/core/cache.service.d.ts +0 -33
- package/lib/core/custom-validators.d.ts +0 -20
- package/lib/core/date-time-helper.d.ts +0 -101
- package/lib/core/error.service.d.ts +0 -20
- package/lib/core/router-helper.service.d.ts +0 -48
- package/lib/core/scroll.service.d.ts +0 -36
- package/lib/core/telemetry-tracker.service.d.ts +0 -13
- package/lib/core/telemetry.service.d.ts +0 -31
- package/lib/core/validation-message.service.d.ts +0 -26
- package/lib/core/validation-patterns.d.ts +0 -22
- package/lib/core/window.service.d.ts +0 -116
- package/lib/display/app-bar/app-bar.component.d.ts +0 -20
- package/lib/display/avatar/avatar.component.d.ts +0 -35
- package/lib/display/avatar/avatar.service.d.ts +0 -24
- package/lib/display/confirm/confirm.component.d.ts +0 -123
- package/lib/display/dialog/dialog-content.d.ts +0 -19
- package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +0 -32
- package/lib/display/dialog/dialog-types.d.ts +0 -130
- package/lib/display/dialog/dialog.component.d.ts +0 -120
- package/lib/display/dialog/dialog.service.d.ts +0 -48
- package/lib/display/help/help-types.d.ts +0 -33
- package/lib/display/hierarchy/hierarchy-base.d.ts +0 -97
- package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +0 -53
- package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +0 -34
- package/lib/display/item-display/item-display.component.d.ts +0 -43
- package/lib/display/json-display/json-display.component.d.ts +0 -16
- package/lib/display/resizable/resizable-base.d.ts +0 -67
- package/lib/display/resizable/resizable.component.d.ts +0 -31
- package/lib/display/spinner/spinner.component.d.ts +0 -5
- package/lib/display/splash/splash.component.d.ts +0 -16
- package/lib/display/splash/splash.service.d.ts +0 -22
- package/lib/display/table/resizable-column.component.d.ts +0 -10
- package/lib/display/table/resizable-table.directive.d.ts +0 -93
- package/lib/display/table/searchable-table.component.d.ts +0 -206
- package/lib/display/table/table-detail-row.component.d.ts +0 -8
- package/lib/display/table/table-locked-column.component.d.ts +0 -20
- package/lib/display/table/table-master-header-row.component.d.ts +0 -9
- package/lib/display/table/table-master-row.component.d.ts +0 -113
- package/lib/display/table/table-pagination.component.d.ts +0 -91
- package/lib/display/table/table-selectable-row.component.d.ts +0 -102
- package/lib/display/table/table.component.d.ts +0 -121
- package/lib/display/tags/tag.d.ts +0 -18
- package/lib/display/tags/tags.component.d.ts +0 -48
- package/lib/display/toast/toast/toast.component.d.ts +0 -23
- package/lib/display/toast/toast-types.d.ts +0 -24
- package/lib/display/toast/toast.service.d.ts +0 -20
- package/lib/display/toast/toaster/toaster.component.d.ts +0 -35
- package/lib/display/tooltip/tooltip.component.d.ts +0 -70
- package/lib/display/tooltip/tooltip.service.d.ts +0 -16
- package/lib/display/tooltip-directive/tooltip.directive.d.ts +0 -44
- package/lib/display/tour/tour-types.d.ts +0 -70
- package/lib/display/tour/tour.component.d.ts +0 -147
- package/lib/display/tour/tour.service.d.ts +0 -38
- package/lib/display/tree/tree.component.d.ts +0 -75
- package/lib/display/view-overlay/view-overlay.component.d.ts +0 -38
- package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +0 -14
- package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +0 -60
- package/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.d.ts +0 -23
- package/lib/shared/directives/popup/popup-container.directive.d.ts +0 -101
- package/lib/shared/display/pipes/date-display.pipe.d.ts +0 -21
- package/lib/shared/display/pipes/highlight-text.pipe.d.ts +0 -9
- package/lib/shared/display/pipes/relative-date.pipe.d.ts +0 -36
- package/lib/shared/display/pipes/row-count.pipe.d.ts +0 -23
- package/lib/shared/display/pipes/time-display.pipe.d.ts +0 -18
- package/lib/shared/display.d.ts +0 -42
- package/lib/shared/form-group.helper.d.ts +0 -31
- package/lib/shared/json-helper.d.ts +0 -7
- package/lib/shared/lodash-helper.d.ts +0 -18
- package/lib/shared/page/page-base/page-base.component.d.ts +0 -259
- package/lib/shared/page/page-statuses.d.ts +0 -13
- package/lib/shared/page/page-title/page-title.component.d.ts +0 -9
- package/lib/shared/page/page-view/page-view.component.d.ts +0 -102
- package/lib/shared/testing/copy-button-base-test-injector-factory.spec.d.ts +0 -4
- package/lib/shared/testing/hierarchy-base-test-injector-factory.spec.d.ts +0 -4
- package/lib/shared/testing/page-base-component-test-helper.spec.d.ts +0 -30
- package/lib/shared/testing/page-base-component-test-injector-factory.spec.d.ts +0 -28
- package/lib/shared/testing/public-mocks.spec.d.ts +0 -90
- package/lib/shared/testing/spy-factory.spec.d.ts +0 -27
- package/lib/shared/testing/translation-mocks.spec.d.ts +0 -30
- package/lib/shared/user-preference.service.d.ts +0 -13
- package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +0 -134
- package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +0 -27
- package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +0 -10
- package/public-api.d.ts +0 -113
- package/schematics/collection.json +0 -10
- package/schematics/rxjs-7-upgrade/index.d.ts +0 -3
- package/schematics/rxjs-7-upgrade/index.js +0 -68
- package/schematics/rxjs-7-upgrade/index.js.map +0 -1
- package/schematics/rxjs-7-upgrade/schema.d.ts +0 -4
- package/schematics/rxjs-7-upgrade/schema.js +0 -3
- package/schematics/rxjs-7-upgrade/schema.js.map +0 -1
- package/schematics/rxjs-7-upgrade/schema.json +0 -14
- package/schematics/utilities/typescript.d.ts +0 -7
- package/schematics/utilities/typescript.js +0 -42
- package/schematics/utilities/typescript.js.map +0 -1
- package/schematics/utilities/workspace.d.ts +0 -8
- package/schematics/utilities/workspace.js +0 -72
- package/schematics/utilities/workspace.js.map +0 -1
- package/src/assets/images/email-icon.png +0 -0
- package/src/assets/images/email-logo.png +0 -0
- package/src/assets/images/favicon-ech.svg +0 -7
- package/src/assets/images/favicon-esa.svg +0 -6
- package/src/assets/images/favicon-eum.svg +0 -6
- package/src/assets/images/favicon.svg +0 -5
- package/src/assets/images/icon-carbonhub.svg +0 -10
- package/src/assets/images/icon-eum.svg +0 -5
- package/src/assets/images/icon-ucp.svg +0 -5
- package/src/assets/images/icon-wattics.svg +0 -5
- package/src/assets/images/icon.svg +0 -4
- package/src/assets/images/logo.svg +0 -3
- package/src/assets/images/splash.gif +0 -0
- package/src/assets/locales/en_US.json +0 -59
- package/src/assets/scripts/unsupported-browser.js +0 -17
- package/src/styles/_base.scss +0 -38
- package/src/styles/_colors.scss +0 -96
- package/src/styles/_core.scss +0 -4
- package/src/styles/_functions.scss +0 -114
- package/src/styles/_global-variables.scss +0 -232
- package/src/styles/_icons.scss +0 -24
- package/src/styles/bootstrap/_grid.scss +0 -34
- package/src/styles/bootstrap/_reboot.scss +0 -323
- package/src/styles/components/_card.scss +0 -21
- package/src/styles/components/_link-icons.scss +0 -38
- package/src/styles/components/_splash.scss +0 -57
- package/src/styles/components/_unsupported-browsers.scss +0 -24
- package/src/styles/email/_email-base.scss +0 -228
- package/src/styles/email/email.scss +0 -43
- package/src/styles/index.scss +0 -27
- package/src/styles/mixins/_animations.scss +0 -18
- package/src/styles/mixins/_button-base.scss +0 -185
- package/src/styles/mixins/_card-base.scss +0 -40
- package/src/styles/mixins/_common.scss +0 -52
- package/src/styles/mixins/_dialog-base.scss +0 -96
- package/src/styles/mixins/_form-control-base.scss +0 -641
- package/src/styles/mixins/_login.scss +0 -74
- package/src/styles/mixins/_menu-base.scss +0 -153
- package/src/styles/mixins/_overlay-base.scss +0 -33
- package/src/styles/mixins/_resizable-base.scss +0 -57
- package/src/styles/mixins/_spinner-base.scss +0 -34
- package/src/styles/mixins/_table-base.scss +0 -298
- package/src/styles/mixins/_tabs-base.scss +0 -110
- package/src/styles/mixins/_tags-base.scss +0 -116
- package/src/styles/mixins/_text.scss +0 -89
- package/src/styles/mixins.scss +0 -15
- package/src/styles/utilities/_borders.scss +0 -30
- package/src/styles/utilities/_common.scss +0 -49
- package/src/styles/utilities/_layout.scss +0 -116
- package/src/styles/utilities/_spacing.scss +0 -65
- package/src/styles/utilities/_text.scss +0 -139
@@ -1,163 +0,0 @@
|
|
1
|
-
import { Component, Input, Output, EventEmitter, TemplateRef, ViewChild } from '@angular/core';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
import * as i1 from "@angular/common";
|
4
|
-
import * as i2 from "../../controls/collapsible-toggle/collapsible-toggle.component";
|
5
|
-
import * as i3 from "./table-detail-row.component";
|
6
|
-
export class TableMasterRowComponent {
|
7
|
-
constructor(renderer, el, appRef) {
|
8
|
-
this.renderer = renderer;
|
9
|
-
this.el = el;
|
10
|
-
this.appRef = appRef;
|
11
|
-
/**
|
12
|
-
* Programmatically toggle the visibility of the detail row. Default is false.
|
13
|
-
*/
|
14
|
-
this.showDetails = false;
|
15
|
-
/**
|
16
|
-
* Emits an event when the value of `showDetails` changes.
|
17
|
-
*/
|
18
|
-
this.showDetailsChanged = new EventEmitter();
|
19
|
-
}
|
20
|
-
ngOnInit() {
|
21
|
-
if (!this.detailRowColSpan) {
|
22
|
-
console.error(`A value for [detailRowColSpan] is required to render a detail row correctly. This should be the number of columns TDs placed inside an tr[ecTableMasterRow].`);
|
23
|
-
}
|
24
|
-
this.parentNode = this.renderer.parentNode(this.el.nativeElement);
|
25
|
-
this.updateDetailRow();
|
26
|
-
}
|
27
|
-
ngOnChanges(changes) {
|
28
|
-
if (changes.hasDetails && !changes.hasDetails.firstChange && changes.hasDetails.currentValue !== undefined) {
|
29
|
-
this.updateDetailRow();
|
30
|
-
}
|
31
|
-
if (changes.showDetails && !changes.showDetails.firstChange && changes.showDetails.currentValue !== undefined) {
|
32
|
-
this.updateVisibility();
|
33
|
-
}
|
34
|
-
}
|
35
|
-
ngOnDestroy() {
|
36
|
-
this.removeDetailView();
|
37
|
-
}
|
38
|
-
/**
|
39
|
-
* When the master row has details, create the detail row and update it's visibility. If the master
|
40
|
-
* has no details, remove the detail row
|
41
|
-
*/
|
42
|
-
updateDetailRow() {
|
43
|
-
if (this.hasDetails) {
|
44
|
-
if (!this.detailTemplate) {
|
45
|
-
console.error(`A value for the [detailTemplate] input is required when 'hasDetails' is true.`);
|
46
|
-
return;
|
47
|
-
}
|
48
|
-
// First check to see if the detailView is already present and if so, remove it so we don't get a
|
49
|
-
// duplicate detail view
|
50
|
-
if (this.detailView !== undefined) {
|
51
|
-
this.removeDetailView();
|
52
|
-
}
|
53
|
-
this.detailView = this.detailRowTemplate.createEmbeddedView({});
|
54
|
-
//solution to allowing change detection in embedded view adapted from here:
|
55
|
-
//https://github.com/angular/angular/issues/42977
|
56
|
-
this.appRef.attachView(this.detailView);
|
57
|
-
this.updateVisibility();
|
58
|
-
}
|
59
|
-
else {
|
60
|
-
this.removeDetailView();
|
61
|
-
}
|
62
|
-
}
|
63
|
-
/**
|
64
|
-
* Show/hide the detail row
|
65
|
-
*/
|
66
|
-
toggleDetails(show) {
|
67
|
-
this.showDetails = show;
|
68
|
-
this.showDetailsChanged.emit(show);
|
69
|
-
this.updateVisibility();
|
70
|
-
}
|
71
|
-
updateVisibility() {
|
72
|
-
if (this.showDetails) {
|
73
|
-
this.show();
|
74
|
-
}
|
75
|
-
else {
|
76
|
-
this.hide();
|
77
|
-
}
|
78
|
-
}
|
79
|
-
/**
|
80
|
-
* Attach the detailView the change detection tree and insert the generated html
|
81
|
-
* of the detail row to DOM after the host element
|
82
|
-
*/
|
83
|
-
show() {
|
84
|
-
if (this.detailView) {
|
85
|
-
//The nextSibling may have changed, so update it. (This could happen if the table is embedded in a searchable table
|
86
|
-
// and a search is performed)
|
87
|
-
this.siblingNode = this.renderer.nextSibling(this.el.nativeElement);
|
88
|
-
this.detailView.reattach();
|
89
|
-
this.detailView.detectChanges();
|
90
|
-
this.detailView.rootNodes.forEach(node => {
|
91
|
-
this.renderer.insertBefore(this.parentNode, node, this.siblingNode);
|
92
|
-
});
|
93
|
-
}
|
94
|
-
}
|
95
|
-
/**
|
96
|
-
* Detach the detailView from the change detection tree and remove the generated
|
97
|
-
* html of the detail row from the DOM
|
98
|
-
*/
|
99
|
-
hide() {
|
100
|
-
if (this.detailView) {
|
101
|
-
this.detailView.detach();
|
102
|
-
this.removeDetailNodes();
|
103
|
-
}
|
104
|
-
}
|
105
|
-
/**
|
106
|
-
* Destroy the detailView and remove the generated html of the detail row from the DOM
|
107
|
-
*/
|
108
|
-
removeDetailView() {
|
109
|
-
if (this.detailView) {
|
110
|
-
this.detailView.destroy();
|
111
|
-
this.removeDetailNodes();
|
112
|
-
}
|
113
|
-
}
|
114
|
-
/**
|
115
|
-
* Remove the generated html of the detail row from the DOM
|
116
|
-
*/
|
117
|
-
removeDetailNodes() {
|
118
|
-
if (this.detailView) {
|
119
|
-
this.detailView.rootNodes.forEach(n => {
|
120
|
-
try {
|
121
|
-
this.renderer.removeChild(this.parentNode, n);
|
122
|
-
}
|
123
|
-
catch (err) {
|
124
|
-
// Ignore errors thrown by removing nodes that were never added to the DOM.
|
125
|
-
}
|
126
|
-
});
|
127
|
-
}
|
128
|
-
}
|
129
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableMasterRowComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
130
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableMasterRowComponent, selector: "[ecTableMasterRow]", inputs: { id: "id", hasDetails: "hasDetails", showDetails: "showDetails", detailTemplate: "detailTemplate", detailContext: "detailContext", detailRowColSpan: "detailRowColSpan", detailRowClass: "detailRowClass", detailRowContentClass: "detailRowContentClass", detailRowMaxHeight: "detailRowMaxHeight", collapsibleToggleCellClass: "collapsibleToggleCellClass", hideTableMaster: "hideTableMaster" }, outputs: { showDetailsChanged: "showDetailsChanged" }, viewQueries: [{ propertyName: "detailRowTemplate", first: true, predicate: ["detailRow"], descendants: true, read: TemplateRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<td *ngIf=\"!hideTableMaster\" class=\"{{collapsibleToggleCellClass}}\">\r\n <ec-collapsible-toggle *ngIf=\"hasDetails\"\r\n id=\"{{id}}_toggle\"\r\n [expanded]=\"showDetails\"\r\n (expandedChange)=\"toggleDetails($event)\"></ec-collapsible-toggle>\r\n</td>\r\n<ng-content></ng-content>\r\n\r\n<ng-template #detailRow>\r\n <tr ecTableDetailRow class=\"{{detailRowClass}}\" [contentClass]=\"detailRowContentClass\" [contentColSpan]=\"detailRowColSpan\" [maxHeight]=\"detailRowMaxHeight\">\r\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: detailContext}\"></ng-container>\r\n </tr>\r\n</ng-template>", styles: ["td{width:1.5rem;padding:.25rem 0!important;vertical-align:top}td ::ng-deep+td{padding-left:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.CollapsibleToggleComponent, selector: "ec-collapsible-toggle", inputs: ["id", "expanded", "tabindex"], outputs: ["expandedChange"] }, { kind: "component", type: i3.TableDetailRowComponent, selector: "[ecTableDetailRow]", inputs: ["contentClass", "contentColSpan", "maxHeight"] }] }); }
|
131
|
-
}
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableMasterRowComponent, decorators: [{
|
133
|
-
type: Component,
|
134
|
-
args: [{ selector: '[ecTableMasterRow]', template: "<td *ngIf=\"!hideTableMaster\" class=\"{{collapsibleToggleCellClass}}\">\r\n <ec-collapsible-toggle *ngIf=\"hasDetails\"\r\n id=\"{{id}}_toggle\"\r\n [expanded]=\"showDetails\"\r\n (expandedChange)=\"toggleDetails($event)\"></ec-collapsible-toggle>\r\n</td>\r\n<ng-content></ng-content>\r\n\r\n<ng-template #detailRow>\r\n <tr ecTableDetailRow class=\"{{detailRowClass}}\" [contentClass]=\"detailRowContentClass\" [contentColSpan]=\"detailRowColSpan\" [maxHeight]=\"detailRowMaxHeight\">\r\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: detailContext}\"></ng-container>\r\n </tr>\r\n</ng-template>", styles: ["td{width:1.5rem;padding:.25rem 0!important;vertical-align:top}td ::ng-deep+td{padding-left:0}\n"] }]
|
135
|
-
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ApplicationRef }], propDecorators: { id: [{
|
136
|
-
type: Input
|
137
|
-
}], hasDetails: [{
|
138
|
-
type: Input
|
139
|
-
}], showDetails: [{
|
140
|
-
type: Input
|
141
|
-
}], detailTemplate: [{
|
142
|
-
type: Input
|
143
|
-
}], detailContext: [{
|
144
|
-
type: Input
|
145
|
-
}], detailRowColSpan: [{
|
146
|
-
type: Input
|
147
|
-
}], detailRowClass: [{
|
148
|
-
type: Input
|
149
|
-
}], detailRowContentClass: [{
|
150
|
-
type: Input
|
151
|
-
}], detailRowMaxHeight: [{
|
152
|
-
type: Input
|
153
|
-
}], collapsibleToggleCellClass: [{
|
154
|
-
type: Input
|
155
|
-
}], hideTableMaster: [{
|
156
|
-
type: Input
|
157
|
-
}], showDetailsChanged: [{
|
158
|
-
type: Output
|
159
|
-
}], detailRowTemplate: [{
|
160
|
-
type: ViewChild,
|
161
|
-
args: ['detailRow', { read: TemplateRef, static: true }]
|
162
|
-
}] } });
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbWFzdGVyLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWJsZS90YWJsZS1tYXN0ZXItcm93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3RhYmxlL3RhYmxlLW1hc3Rlci1yb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUF1RyxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPcE0sTUFBTSxPQUFPLHVCQUF1QjtJQXlGbEMsWUFBb0IsUUFBbUIsRUFBVSxFQUFjLEVBQVUsTUFBc0I7UUFBM0UsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQTlFL0Y7O1dBRUc7UUFDTSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQWtEN0I7O1dBRUc7UUFDTyx1QkFBa0IsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQXNCMEIsQ0FBQztJQUVwRyxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEpBQThKLENBQUMsQ0FBQztRQUNoTCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUV6QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FB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VyxFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgRW1iZWRkZWRWaWV3UmVmLCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBBcHBsaWNhdGlvblJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdbZWNUYWJsZU1hc3RlclJvd10nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1tYXN0ZXItcm93LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1tYXN0ZXItcm93LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlTWFzdGVyUm93Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLyoqXHJcbiAgICogSWRlbnRpZmllciB0byBwYXNzIHRvIHRoZSBjb2xsYXBzaWJsZSB0b2dnbGVcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIHRhYmxlIHJvdyBoYXMgZGV0YWlscyBhbmQgc2hvd3MgdGhlIGNvbGxhcHNpYmxlIHRvZ2dsZSBpZiBpdCBkb2VzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGhhc0RldGFpbHM/OiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBQcm9ncmFtbWF0aWNhbGx5IHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZGV0YWlsIHJvdy4gRGVmYXVsdCBpcyBmYWxzZS5cclxuICAgKi9cclxuICBASW5wdXQoKSBzaG93RGV0YWlscyA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBUZW1wbGF0ZSBmb3IgdGhlIGRldGFpbCByb3cgY29udGVudC4gR2VuZXJhdGVzIGFuIFtFbWJlZGRlZFZpZXdSZWZdKGh0dHBzOi8vYW5ndWxhci5pby9hcGkvY29yZS9FbWJlZGRlZFZpZXdSZWYpXHJcbiAgICogd2l0aCB0aGUgJ2RldGFpbENvbnRleHQnLiBSZXF1aXJlZCBpZiBoYXNEZXRhaWxzIGlzIHRydWUuXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGV0YWlsVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKipcclxuICAgKiBPcHRpb25hbCBjb250ZXh0IGJvdW5kIHRvIHRoZSAnZGV0YWlsVGVtcGxhdGUnLiBBdmFpbGFibGUgaW4gdGhlIHRlbXBsYXRlIGFzIHRoZSBkZWZhdWx0IGxvY2FsIHRlbXBsYXRlIGBsZXRgIGRlY2xhcmF0aW9uLlxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogYGBgaHRtbFxyXG4gICAqIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiIGVjVGFibGVNYXN0ZXJSb3cgW2RldGFpbFRlbXBsYXRlXT1cIm15RGV0YWlsVGVtcGxhdGVcIiBbZGV0YWlsQ29udGV4dF09XCJpdGVtXCI+XHJcbiAgICogIC4uLlxyXG4gICAqIDwvdHI+XHJcbiAgICpcclxuICAgKiA8bmctdGVtcGxhdGUgI215RGV0YWlsVGVtcGxhdGUgbGV0LWl0ZW0+XHJcbiAgICogIDxwPnt7aXRlbS5jb21tZW50fX08L3A+XHJcbiAgICogPC9uZy10ZW1wbGF0ZT5cclxuICAgKi9cclxuICBASW5wdXQoKSBkZXRhaWxDb250ZXh0PzogYW55O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4geW91ciB0YWJsZSBtaW51cyB0aGUgY29sdW1uIHRoYXQgaXMgYXV0b21hdGljYWxseSBhZGRlZCBieSB0aGVcclxuICAgKiBUYWJsZU1hc3RlclJvd0NvbXBvbmVudC4gUmVxdWlyZWQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGV0YWlsUm93Q29sU3BhbiE6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3BhY2UgZGVsaW1pdGVkIHN0cmluZyBhZGRlZCB0byB0aGUgY2xhc3MgYXR0cmlidXRlIG9mIGRldGFpbCByb3cgVFIuXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGV0YWlsUm93Q2xhc3M/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNwYWNlIGRlbGltaXRlZCBzdHJpbmcgYWRkZWQgdG8gdGhlIGNsYXNzIGF0dHJpYnV0ZSBvZiB0aGUgVEQgdGhhdCBjb250YWlucyB0aGUgZGV0YWlsIHJvdyBjb250ZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgZGV0YWlsUm93Q29udGVudENsYXNzPzogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBkZXRhaWxSb3dNYXhIZWlnaHQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBTcGFjZSBkZWxpbWl0ZWQgc3RyaW5nIGFkZGVkIHRvIHRoZSBjbGFzcyBhdHRyaWJ1dGUgb2YgdGhlIFREIHRoYXQgY29udGFpbnMgdGhlIGNvbGxhcHNpYmxlIHRvZ2dsZVxyXG4gICAqICBlbGVtZW50LlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbGxhcHNpYmxlVG9nZ2xlQ2VsbENsYXNzPzogc3RyaW5nO1xyXG5cclxuICAvKiogVXNlZCB0byBoaWRlIHRoZSBjZWxsIGFkZGVkIHRvIHRoZSB0YWJsZS4gVXNlZnVsIGlmIGEgdGFibGUgaXMgc2hhcmVkIGJldHdlZW4gdmlld3MgYW5kIG5vdCBhbGxcclxuICAgKiAgc3VwcG9ydCB0aGUgdGFibGUgbWFzdGVyIHNjZW5hcmlvXHJcbiAgICovXHJcbiAgIEBJbnB1dCgpIGhpZGVUYWJsZU1hc3Rlcj86IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIHZhbHVlIG9mIGBzaG93RGV0YWlsc2AgY2hhbmdlcy5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgc2hvd0RldGFpbHNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB0ZW1wbGF0ZSBmb3IgdGhlIGRldGFpbCByb3csIGluc2VydGVkIGluIHRoZSBET00gYWZ0ZXIgdGhlIG1hc3RlciByb3cuXHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgnZGV0YWlsUm93Jywge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWV9KSBkZXRhaWxSb3dUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB2aWV3IGNyZWF0ZWQgZnJvbSB0aGUgYGRldGFpbFJvd2AgdGVtcGxhdGUuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZXRhaWxWaWV3PzogRW1iZWRkZWRWaWV3UmVmPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBwYXJlbnQgbm9kZSBvZiB0aGUgaG9zdCBlbGVtZW50LlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcGFyZW50Tm9kZTogYW55O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgc2libGluZyBub2RlIG9mIHRoZSBob3N0IGVsZW1lbnQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzaWJsaW5nTm9kZTogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRldGFpbFJvd0NvbFNwYW4pIHtcclxuICAgICAgY29uc29sZS5lcnJvcihgQSB2YWx1ZSBmb3IgW2RldGFpbFJvd0NvbFNwYW5dIGlzIHJlcXVpcmVkIHRvIHJlbmRlciBhIGRldGFpbCByb3cgY29ycmVjdGx5LiBUaGlzIHNob3VsZCBiZSB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgVERzIHBsYWNlZCBpbnNpZGUgYW4gdHJbZWNUYWJsZU1hc3RlclJvd10uYCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wYXJlbnROb2RlID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XHJcbiAgICB0aGlzLnVwZGF0ZURldGFpbFJvdygpO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLmhhc0RldGFpbHMgJiYgIWNoYW5nZXMuaGFzRGV0YWlscy5maXJzdENoYW5nZSAmJiBjaGFuZ2VzLmhhc0RldGFpbHMuY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy51cGRhdGVEZXRhaWxSb3coKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2hhbmdlcy5zaG93RGV0YWlscyAmJiAhY2hhbmdlcy5zaG93RGV0YWlscy5maXJzdENoYW5nZSAmJiBjaGFuZ2VzLnNob3dEZXRhaWxzLmN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlVmlzaWJpbGl0eSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbW92ZURldGFpbFZpZXcoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gdGhlIG1hc3RlciByb3cgaGFzIGRldGFpbHMsIGNyZWF0ZSB0aGUgZGV0YWlsIHJvdyBhbmQgdXBkYXRlIGl0J3MgdmlzaWJpbGl0eS4gSWYgdGhlIG1hc3RlclxyXG4gICAqIGhhcyBubyBkZXRhaWxzLCByZW1vdmUgdGhlIGRldGFpbCByb3dcclxuICAgKi9cclxuICB1cGRhdGVEZXRhaWxSb3coKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5oYXNEZXRhaWxzKSB7XHJcbiAgICAgIGlmICghdGhpcy5kZXRhaWxUZW1wbGF0ZSkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEEgdmFsdWUgZm9yIHRoZSBbZGV0YWlsVGVtcGxhdGVdIGlucHV0IGlzIHJlcXVpcmVkIHdoZW4gJ2hhc0RldGFpbHMnIGlzIHRydWUuYCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBGaXJzdCBjaGVjayB0byBzZWUgaWYgdGhlIGRldGFpbFZpZXcgaXMgYWxyZWFkeSBwcmVzZW50IGFuZCBpZiBzbywgcmVtb3ZlIGl0IHNvIHdlIGRvbid0IGdldCBhIFxyXG4gICAgICAvLyBkdXBsaWNhdGUgZGV0YWlsIHZpZXdcclxuICAgICAgaWYgKHRoaXMuZGV0YWlsVmlldyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVEZXRhaWxWaWV3KCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZGV0YWlsVmlldyA9IHRoaXMuZGV0YWlsUm93VGVtcGxhdGUuY3JlYXRlRW1iZWRkZWRWaWV3KHt9KTtcclxuXHJcbiAgICAgIC8vc29sdXRpb24gdG8gYWxsb3dpbmcgY2hhbmdlIGRldGVjdGlvbiBpbiBlbWJlZGRlZCB2aWV3IGFkYXB0ZWQgZnJvbSBoZXJlOlxyXG4gICAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzQyOTc3XHJcbiAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5kZXRhaWxWaWV3KTtcclxuICAgICAgdGhpcy51cGRhdGVWaXNpYmlsaXR5KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbW92ZURldGFpbFZpZXcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3cvaGlkZSB0aGUgZGV0YWlsIHJvd1xyXG4gICAqL1xyXG4gIHRvZ2dsZURldGFpbHMoc2hvdzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93RGV0YWlscyA9IHNob3c7XHJcbiAgICB0aGlzLnNob3dEZXRhaWxzQ2hhbmdlZC5lbWl0KHNob3cpO1xyXG4gICAgdGhpcy51cGRhdGVWaXNpYmlsaXR5KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVZpc2liaWxpdHkoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zaG93RGV0YWlscykge1xyXG4gICAgICB0aGlzLnNob3coKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXR0YWNoIHRoZSBkZXRhaWxWaWV3IHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIHRyZWUgYW5kIGluc2VydCB0aGUgZ2VuZXJhdGVkIGh0bWxcclxuICAgKiBvZiB0aGUgZGV0YWlsIHJvdyB0byBET00gYWZ0ZXIgdGhlIGhvc3QgZWxlbWVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2hvdygpIHtcclxuICAgIGlmICh0aGlzLmRldGFpbFZpZXcpIHtcclxuICAgICAgLy9UaGUgbmV4dFNpYmxpbmcgbWF5IGhhdmUgY2hhbmdlZCwgc28gdXBkYXRlIGl0LiAoVGhpcyBjb3VsZCBoYXBwZW4gaWYgdGhlIHRhYmxlIGlzIGVtYmVkZGVkIGluIGEgc2VhcmNoYWJsZSB0YWJsZVxyXG4gICAgICAvLyAgYW5kIGEgc2VhcmNoIGlzIHBlcmZvcm1lZClcclxuICAgICAgdGhpcy5zaWJsaW5nTm9kZSA9IHRoaXMucmVuZGVyZXIubmV4dFNpYmxpbmcodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgdGhpcy5kZXRhaWxWaWV3LnJlYXR0YWNoKCk7XHJcbiAgICAgIHRoaXMuZGV0YWlsVmlldy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMuZGV0YWlsVmlldy5yb290Tm9kZXMuZm9yRWFjaChub2RlID0+IHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSh0aGlzLnBhcmVudE5vZGUsIG5vZGUsIHRoaXMuc2libGluZ05vZGUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGFjaCB0aGUgZGV0YWlsVmlldyBmcm9tIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIHRyZWUgYW5kIHJlbW92ZSB0aGUgZ2VuZXJhdGVkXHJcbiAgICogaHRtbCBvZiB0aGUgZGV0YWlsIHJvdyBmcm9tIHRoZSBET01cclxuICAgKi9cclxuICBwcml2YXRlIGhpZGUoKSB7XHJcbiAgICBpZiAodGhpcy5kZXRhaWxWaWV3KSB7XHJcbiAgICAgIHRoaXMuZGV0YWlsVmlldy5kZXRhY2goKTtcclxuICAgICAgdGhpcy5yZW1vdmVEZXRhaWxOb2RlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVzdHJveSB0aGUgZGV0YWlsVmlldyBhbmQgcmVtb3ZlIHRoZSBnZW5lcmF0ZWQgaHRtbCBvZiB0aGUgZGV0YWlsIHJvdyBmcm9tIHRoZSBET01cclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZURldGFpbFZpZXcoKSB7XHJcbiAgICBpZiAodGhpcy5kZXRhaWxWaWV3KSB7XHJcbiAgICAgIHRoaXMuZGV0YWlsVmlldy5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMucmVtb3ZlRGV0YWlsTm9kZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgZ2VuZXJhdGVkIGh0bWwgb2YgdGhlIGRldGFpbCByb3cgZnJvbSB0aGUgRE9NXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVEZXRhaWxOb2RlcygpIHtcclxuICAgIGlmICh0aGlzLmRldGFpbFZpZXcpIHtcclxuICAgICAgdGhpcy5kZXRhaWxWaWV3LnJvb3ROb2Rlcy5mb3JFYWNoKG4gPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMucGFyZW50Tm9kZSwgbik7XHJcbiAgICAgICAgfSBjYXRjaChlcnIpIHtcclxuICAgICAgICAgIC8vIElnbm9yZSBlcnJvcnMgdGhyb3duIGJ5IHJlbW92aW5nIG5vZGVzIHRoYXQgd2VyZSBuZXZlciBhZGRlZCB0byB0aGUgRE9NLlxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8dGQgKm5nSWY9XCIhaGlkZVRhYmxlTWFzdGVyXCIgY2xhc3M9XCJ7e2NvbGxhcHNpYmxlVG9nZ2xlQ2VsbENsYXNzfX1cIj5cclxuICA8ZWMtY29sbGFwc2libGUtdG9nZ2xlICpuZ0lmPVwiaGFzRGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInt7aWR9fV90b2dnbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2V4cGFuZGVkXT1cInNob3dEZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChleHBhbmRlZENoYW5nZSk9XCJ0b2dnbGVEZXRhaWxzKCRldmVudClcIj48L2VjLWNvbGxhcHNpYmxlLXRvZ2dsZT5cclxuPC90ZD5cclxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZXRhaWxSb3c+XHJcbiAgPHRyIGVjVGFibGVEZXRhaWxSb3cgY2xhc3M9XCJ7e2RldGFpbFJvd0NsYXNzfX1cIiBbY29udGVudENsYXNzXT1cImRldGFpbFJvd0NvbnRlbnRDbGFzc1wiIFtjb250ZW50Q29sU3Bhbl09XCJkZXRhaWxSb3dDb2xTcGFuXCIgW21heEhlaWdodF09XCJkZXRhaWxSb3dNYXhIZWlnaHRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRldGFpbFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkZXRhaWxDb250ZXh0fVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvdHI+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
@@ -1,155 +0,0 @@
|
|
1
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
2
|
-
import { NavGroup } from '../../controls/navigation/nav-group';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "@angular/common";
|
5
|
-
import * as i2 from "../../controls/tabs/tabs.component";
|
6
|
-
import * as i3 from "../../controls/dropdown/dropdown.component";
|
7
|
-
export class TablePaginationComponent {
|
8
|
-
constructor(el) {
|
9
|
-
this.el = el;
|
10
|
-
/**
|
11
|
-
* Number of the current page.
|
12
|
-
* Initial value is 1, can be overridden to change the starting page number.
|
13
|
-
*/
|
14
|
-
this.pageNumber = 1;
|
15
|
-
/**
|
16
|
-
* Maximum number of page tabs to show
|
17
|
-
*/
|
18
|
-
this.maxTabs = 10;
|
19
|
-
/** When true the tabs and the more pages dropdown will be disabled */
|
20
|
-
this.disablePaginationControls = false;
|
21
|
-
/**
|
22
|
-
* Emits when the page changes.
|
23
|
-
*
|
24
|
-
* Bind to the event in a template using a function that uses the "skip" and "pageSize"
|
25
|
-
* properties to slice the new page from your data set.
|
26
|
-
*
|
27
|
-
* @example
|
28
|
-
* //.html
|
29
|
-
* (pageChanged)="onPageChanged($event)"
|
30
|
-
* //.ts
|
31
|
-
* public onPageChanged(event: PagingInfo) {
|
32
|
-
* this.currentPageItems = this.paginatedTableItems.slice(event.skip, event.skip + event.pageSize);
|
33
|
-
* }
|
34
|
-
* //Since pageChanged doesn't emit for the initial page, onPageChanged should be manually called during initialization
|
35
|
-
* //using getPagingInfo:
|
36
|
-
* this.onPageChanged(TablePaginationComponent.getPagingInfo(this.startingPageNumber, this.pageSize));
|
37
|
-
*/
|
38
|
-
this.pageChanged = new EventEmitter();
|
39
|
-
/**
|
40
|
-
* All possible items in the dropdown menu.
|
41
|
-
*/
|
42
|
-
this.dropdownItems = [];
|
43
|
-
/**
|
44
|
-
* Current tabs being displayed.
|
45
|
-
*/
|
46
|
-
this.currentTabs = new NavGroup();
|
47
|
-
}
|
48
|
-
ngOnChanges() {
|
49
|
-
if (this.totalItems === 0) {
|
50
|
-
this.dropdownItems = [];
|
51
|
-
this.currentTabs = new NavGroup();
|
52
|
-
return;
|
53
|
-
}
|
54
|
-
this.setDropdownItems();
|
55
|
-
//Find the menu item that the page corresponding to this.pageNumber lies in
|
56
|
-
let firstMenuItem = this.dropdownItems.find(item => {
|
57
|
-
return item.value.firstPage <= this.pageNumber && item.value.lastPage >= this.pageNumber;
|
58
|
-
});
|
59
|
-
if (!firstMenuItem) {
|
60
|
-
console.error(`Page ${this.pageNumber} does not exist. Setting the starting page number to 1.`);
|
61
|
-
firstMenuItem = this.dropdownItems[0];
|
62
|
-
this.pageNumber = 1;
|
63
|
-
}
|
64
|
-
//Set the tabs to those corresponding to the first menu item.
|
65
|
-
//Note that we dont emit a pageChanged event here because the consumer already knows what the first page is.
|
66
|
-
this.setTabs(firstMenuItem, this.pageNumber);
|
67
|
-
}
|
68
|
-
/**
|
69
|
-
* Given the number of a page and the pageSize, return the PagingInfo object for that page.
|
70
|
-
*/
|
71
|
-
static getPagingInfo(pageNumber, pageSize) {
|
72
|
-
return { skip: (pageNumber - 1) * pageSize, pageSize: pageSize, pageNumber: pageNumber };
|
73
|
-
}
|
74
|
-
onItemSelected(menuItem) {
|
75
|
-
this.setTabs(menuItem);
|
76
|
-
this.onPageChange(parseInt(this.currentTabs.selected.label));
|
77
|
-
//focus the currently selected tab to help keyboard navigation
|
78
|
-
this.el.nativeElement.querySelector('.tab.active').focus();
|
79
|
-
}
|
80
|
-
/**
|
81
|
-
* Create a tab for each item in the range represented in the MenuItem
|
82
|
-
*/
|
83
|
-
setTabs(menuItem, pageNumber) {
|
84
|
-
let tabItems = [];
|
85
|
-
for (let i = menuItem.value.firstPage; i <= menuItem.value.lastPage; i++) {
|
86
|
-
tabItems.push({
|
87
|
-
label: `${i}`,
|
88
|
-
disabled: this.disablePaginationControls,
|
89
|
-
onClick: () => { this.onPageChange(i); }
|
90
|
-
});
|
91
|
-
}
|
92
|
-
//if a pageNumber is provided, select the tab with that page number.
|
93
|
-
//otherwise, select the first tab.
|
94
|
-
let selectedTab = pageNumber ? tabItems.find(tab => { return parseInt(tab.label) === pageNumber; })
|
95
|
-
: tabItems[0];
|
96
|
-
this.currentTabs = new NavGroup(tabItems, selectedTab);
|
97
|
-
}
|
98
|
-
onPageChange(pageNumber) {
|
99
|
-
this.pageNumber = pageNumber;
|
100
|
-
this.pageChanged.emit(TablePaginationComponent.getPagingInfo(pageNumber, this.pageSize));
|
101
|
-
}
|
102
|
-
/**
|
103
|
-
* Create all the items for the dropdown menu.
|
104
|
-
* A dropdown item represents a page range (e.g. 1-10, 11-20, or 21-25).
|
105
|
-
* A single dropdown item can represent a range of up to 10 pages (the last item could have less than 10).
|
106
|
-
*/
|
107
|
-
setDropdownItems() {
|
108
|
-
this.dropdownItems = [];
|
109
|
-
//find the last page
|
110
|
-
let dividend = Math.floor(this.totalItems / this.pageSize);
|
111
|
-
let remainder = this.totalItems % this.pageSize;
|
112
|
-
const lastPage = (remainder === 0) ? dividend : dividend + 1;
|
113
|
-
//keep building menu items of the form 1-10, 11-20, 21-30, etc until
|
114
|
-
//end >= lastPage, which means we've found the range that contains the last page.
|
115
|
-
let start = 1;
|
116
|
-
let maxTabs = this.maxTabs || 10;
|
117
|
-
let end = maxTabs;
|
118
|
-
while (end < lastPage) {
|
119
|
-
this.dropdownItems.push({
|
120
|
-
label: `${start}-${end}`,
|
121
|
-
value: { firstPage: start, lastPage: end }
|
122
|
-
});
|
123
|
-
start = start + maxTabs;
|
124
|
-
end = end + maxTabs;
|
125
|
-
}
|
126
|
-
//add the menu item that contains the last page.
|
127
|
-
this.dropdownItems.push({
|
128
|
-
label: (start === lastPage) ? `${start}` : `${start}-${lastPage}`,
|
129
|
-
value: { firstPage: start, lastPage: lastPage }
|
130
|
-
});
|
131
|
-
}
|
132
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TablePaginationComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
133
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TablePaginationComponent, selector: "ec-table-pagination", inputs: { id: "id", totalItems: "totalItems", pageSize: "pageSize", pageNumber: "pageNumber", maxTabs: "maxTabs", disablePaginationControls: "disablePaginationControls" }, outputs: { pageChanged: "pageChanged" }, host: { classAttribute: "d-flex px-2 align-items-center" }, usesOnChanges: true, ngImport: i0, template: "<ec-tabs id=\"{{id}}_pages\"\r\n class=\"my-2 is-condensed\"\r\n [tabGroup]=\"currentTabs\"\r\n tabStyle=\"pills\">\r\n</ec-tabs>\r\n<ec-dropdown id=\"{{id}}_morePages\"\r\n *ngIf=\"dropdownItems.length > 1\"\r\n class=\"my-1 ml-1\"\r\n menuTemplateType=\"label\"\r\n icon=\"icon-more\"\r\n menuPosition=\"left\"\r\n [menuMinWidth]=\"80\"\r\n [showArrow]=\"false\"\r\n [popupFixed]=\"true\"\r\n [items]=\"dropdownItems\"\r\n [disabled]=\"disablePaginationControls\"\r\n (itemSelected)=\"onItemSelected($event)\">\r\n</ec-dropdown>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TabsComponent, selector: "ec-tabs", inputs: ["id", "tabindex", "tabStyle", "tabGroup"] }, { kind: "component", type: i3.DropdownComponent, selector: "ec-dropdown", inputs: ["id", "autofocus", "status", "disabled", "label", "icon", "buttonType", "buttonAlignment", "buttonTitle", "tabindex", "showArrow", "items", "menuTemplateType", "menuTitle", "menuHeight", "menuWidth", "menuMinWidth", "menuPosition", "menuFooter", "popupFixed", "buttonCustomTemplate", "pending"], outputs: ["itemSelected", "popupOpened"] }] }); }
|
134
|
-
}
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TablePaginationComponent, decorators: [{
|
136
|
-
type: Component,
|
137
|
-
args: [{ selector: 'ec-table-pagination', host: {
|
138
|
-
class: 'd-flex px-2 align-items-center'
|
139
|
-
}, template: "<ec-tabs id=\"{{id}}_pages\"\r\n class=\"my-2 is-condensed\"\r\n [tabGroup]=\"currentTabs\"\r\n tabStyle=\"pills\">\r\n</ec-tabs>\r\n<ec-dropdown id=\"{{id}}_morePages\"\r\n *ngIf=\"dropdownItems.length > 1\"\r\n class=\"my-1 ml-1\"\r\n menuTemplateType=\"label\"\r\n icon=\"icon-more\"\r\n menuPosition=\"left\"\r\n [menuMinWidth]=\"80\"\r\n [showArrow]=\"false\"\r\n [popupFixed]=\"true\"\r\n [items]=\"dropdownItems\"\r\n [disabled]=\"disablePaginationControls\"\r\n (itemSelected)=\"onItemSelected($event)\">\r\n</ec-dropdown>" }]
|
140
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { id: [{
|
141
|
-
type: Input
|
142
|
-
}], totalItems: [{
|
143
|
-
type: Input
|
144
|
-
}], pageSize: [{
|
145
|
-
type: Input
|
146
|
-
}], pageNumber: [{
|
147
|
-
type: Input
|
148
|
-
}], maxTabs: [{
|
149
|
-
type: Input
|
150
|
-
}], disablePaginationControls: [{
|
151
|
-
type: Input
|
152
|
-
}], pageChanged: [{
|
153
|
-
type: Output
|
154
|
-
}] } });
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWJsZS90YWJsZS1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3RhYmxlL3RhYmxlLXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFHOUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7OztBQXVCL0QsTUFBTSxPQUFPLHdCQUF3QjtJQTBEbkMsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUEzQ2xDOzs7V0FHRztRQUNNLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFFaEM7O1dBRUc7UUFDTSxZQUFPLEdBQVksRUFBRSxDQUFDO1FBRS9CLHNFQUFzRTtRQUM3RCw4QkFBeUIsR0FBYSxLQUFLLENBQUM7UUFFckQ7Ozs7Ozs7Ozs7Ozs7Ozs7V0FnQkc7UUFDTyxnQkFBVyxHQUE2QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXJFOztXQUVHO1FBQ0ksa0JBQWEsR0FBMEIsRUFBRSxDQUFDO1FBRWpEOztXQUVHO1FBQ0ksZ0JBQVcsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO0lBRVIsQ0FBQztJQUd2QyxXQUFXO1FBQ1QsSUFBRyxJQUFJLENBQUMsVUFBVSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNsQyxPQUFP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RSxLQUFLLEVBQUUsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUM7U0FDOUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F6SlUsd0JBQXdCO21HQUF4Qix3QkFBd0IsaVdDMUJyQyxnckJBaUJjOzs0RkRTRCx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UscUJBQXFCLFFBRXpCO3dCQUNKLEtBQUssRUFBRSxnQ0FBZ0M7cUJBQ3hDOytFQUlRLEVBQUU7c0JBQVYsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQW1CSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL21lbnUvbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOYXZJdGVtIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvbmF2aWdhdGlvbi9uYXYtaXRlbSc7XHJcbmltcG9ydCB7IE5hdkdyb3VwIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvbmF2aWdhdGlvbi9uYXYtZ3JvdXAnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmdJbmZvIHtcclxuICAvKipOdW1iZXIgb2YgaXRlbXMgdG8gc2tpcCB0byBnZXQgdG8gdGhpcyBwYWdlKi9cclxuICBza2lwOiBudW1iZXIsXHJcbiAgLyoqTnVtYmVyIG9mIGl0ZW1zIGluIHRoaXMgcGFnZSovXHJcbiAgcGFnZVNpemU6IG51bWJlcixcclxuICAvKipUaGUgbnVtYmVyIG9mIHRoZSBwYWdlKi9cclxuICBwYWdlTnVtYmVyOiBudW1iZXJcclxufVxyXG5cclxuaW50ZXJmYWNlIFBhZ2VSYW5nZSB7XHJcbiAgZmlyc3RQYWdlOiBudW1iZXIsXHJcbiAgbGFzdFBhZ2U6IG51bWJlclxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXRhYmxlLXBhZ2luYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ2QtZmxleCBweC0yIGFsaWduLWl0ZW1zLWNlbnRlcidcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZVBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBpZD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIHJvd3MgdGhhdCB3ZSBuZWVkIHRvIHBhZ2UgdGhyb3VnaC5cclxuICAgKiBpLmUuIHRoZSBzdW0gb2YgYWxsIHJvd3Mgb24gYWxsIHBhZ2VzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRvdGFsSXRlbXMhOiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIE1heCBzaXplIG9mIGEgcGFnZS5cclxuICAgKi9cclxuICBASW5wdXQoKSBwYWdlU2l6ZSE6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogTnVtYmVyIG9mIHRoZSBjdXJyZW50IHBhZ2UuXHJcbiAgICogSW5pdGlhbCB2YWx1ZSBpcyAxLCBjYW4gYmUgb3ZlcnJpZGRlbiB0byBjaGFuZ2UgdGhlIHN0YXJ0aW5nIHBhZ2UgbnVtYmVyLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhZ2VOdW1iZXI6IG51bWJlciA9IDE7XHJcblxyXG4gIC8qKlxyXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIHBhZ2UgdGFicyB0byBzaG93XHJcbiAgICovXHJcbiAgQElucHV0KCkgbWF4VGFicz86IG51bWJlciA9IDEwO1xyXG5cclxuICAvKiogV2hlbiB0cnVlIHRoZSB0YWJzIGFuZCB0aGUgbW9yZSBwYWdlcyBkcm9wZG93biB3aWxsIGJlIGRpc2FibGVkICovXHJcbiAgQElucHV0KCkgZGlzYWJsZVBhZ2luYXRpb25Db250cm9scz86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgd2hlbiB0aGUgcGFnZSBjaGFuZ2VzLlxyXG4gICAqIFxyXG4gICAqIEJpbmQgdG8gdGhlIGV2ZW50IGluIGEgdGVtcGxhdGUgdXNpbmcgYSBmdW5jdGlvbiB0aGF0IHVzZXMgdGhlIFwic2tpcFwiIGFuZCBcInBhZ2VTaXplXCJcclxuICAgKiBwcm9wZXJ0aWVzIHRvIHNsaWNlIHRoZSBuZXcgcGFnZSBmcm9tIHlvdXIgZGF0YSBzZXQuXHJcbiAgICogXHJcbiAgICogQGV4YW1wbGVcclxuICAgKiAvLy5odG1sXHJcbiAgICogKHBhZ2VDaGFuZ2VkKT1cIm9uUGFnZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICogLy8udHNcclxuICAgKiBwdWJsaWMgb25QYWdlQ2hhbmdlZChldmVudDogUGFnaW5nSW5mbykge1xyXG4gICAqICB0aGlzLmN1cnJlbnRQYWdlSXRlbXMgPSB0aGlzLnBhZ2luYXRlZFRhYmxlSXRlbXMuc2xpY2UoZXZlbnQuc2tpcCwgZXZlbnQuc2tpcCArIGV2ZW50LnBhZ2VTaXplKTtcclxuICAgKiB9XHJcbiAgICogLy9TaW5jZSBwYWdlQ2hhbmdlZCBkb2Vzbid0IGVtaXQgZm9yIHRoZSBpbml0aWFsIHBhZ2UsIG9uUGFnZUNoYW5nZWQgc2hvdWxkIGJlIG1hbnVhbGx5IGNhbGxlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gXHJcbiAgICogLy91c2luZyBnZXRQYWdpbmdJbmZvOlxyXG4gICAqIHRoaXMub25QYWdlQ2hhbmdlZChUYWJsZVBhZ2luYXRpb25Db21wb25lbnQuZ2V0UGFnaW5nSW5mbyh0aGlzLnN0YXJ0aW5nUGFnZU51bWJlciwgdGhpcy5wYWdlU2l6ZSkpO1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFBhZ2luZ0luZm8+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKipcclxuICAgKiBBbGwgcG9zc2libGUgaXRlbXMgaW4gdGhlIGRyb3Bkb3duIG1lbnUuXHJcbiAgICovXHJcbiAgcHVibGljIGRyb3Bkb3duSXRlbXM6IE1lbnVJdGVtPFBhZ2VSYW5nZT5bXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBDdXJyZW50IHRhYnMgYmVpbmcgZGlzcGxheWVkLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBjdXJyZW50VGFiczogTmF2R3JvdXAgPSBuZXcgTmF2R3JvdXAoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikgeyB9XHJcblxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMudG90YWxJdGVtcyA9PT0gMCkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duSXRlbXMgPSBbXTtcclxuICAgICAgdGhpcy5jdXJyZW50VGFicyA9IG5ldyBOYXZHcm91cCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldERyb3Bkb3duSXRlbXMoKTtcclxuXHJcbiAgICAvL0ZpbmQgdGhlIG1lbnUgaXRlbSB0aGF0IHRoZSBwYWdlIGNvcnJlc3BvbmRpbmcgdG8gdGhpcy5wYWdlTnVtYmVyIGxpZXMgaW5cclxuICAgIGxldCBmaXJzdE1lbnVJdGVtID0gdGhpcy5kcm9wZG93bkl0ZW1zLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgIHJldHVybiBpdGVtLnZhbHVlIS5maXJzdFBhZ2UgPD0gdGhpcy5wYWdlTnVtYmVyICYmIGl0ZW0udmFsdWUhLmxhc3RQYWdlID49IHRoaXMucGFnZU51bWJlcjtcclxuICAgIH0pO1xyXG4gICAgaWYoIWZpcnN0TWVudUl0ZW0pIHtcclxuICAgICAgY29uc29sZS5lcnJvcihgUGFnZSAke3RoaXMucGFnZU51bWJlcn0gZG9lcyBub3QgZXhpc3QuIFNldHRpbmcgdGhlIHN0YXJ0aW5nIHBhZ2UgbnVtYmVyIHRvIDEuYCk7XHJcbiAgICAgIGZpcnN0TWVudUl0ZW0gPSB0aGlzLmRyb3Bkb3duSXRlbXNbMF07XHJcbiAgICAgIHRoaXMucGFnZU51bWJlciA9IDE7XHJcbiAgICB9XHJcbiAgICAvL1NldCB0aGUgdGFicyB0byB0aG9zZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmaXJzdCBtZW51IGl0ZW0uXHJcbiAgICAvL05vdGUgdGhhdCB3ZSBkb250IGVtaXQgYSBwYWdlQ2hhbmdlZCBldmVudCBoZXJlIGJlY2F1c2UgdGhlIGNvbnN1bWVyIGFscmVhZHkga25vd3Mgd2hhdCB0aGUgZmlyc3QgcGFnZSBpcy5cclxuICAgIHRoaXMuc2V0VGFicyhmaXJzdE1lbnVJdGVtLCB0aGlzLnBhZ2VOdW1iZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2l2ZW4gdGhlIG51bWJlciBvZiBhIHBhZ2UgYW5kIHRoZSBwYWdlU2l6ZSwgcmV0dXJuIHRoZSBQYWdpbmdJbmZvIG9iamVjdCBmb3IgdGhhdCBwYWdlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0UGFnaW5nSW5mbyhwYWdlTnVtYmVyOiBudW1iZXIsIHBhZ2VTaXplOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB7IHNraXA6IChwYWdlTnVtYmVyIC0gMSkqcGFnZVNpemUsIHBhZ2VTaXplOiBwYWdlU2l6ZSwgcGFnZU51bWJlcjogcGFnZU51bWJlciB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uSXRlbVNlbGVjdGVkKG1lbnVJdGVtOiBNZW51SXRlbTxQYWdlUmFuZ2U+KSB7ICBcclxuICAgIHRoaXMuc2V0VGFicyhtZW51SXRlbSk7XHJcbiAgICB0aGlzLm9uUGFnZUNoYW5nZShwYXJzZUludCh0aGlzLmN1cnJlbnRUYWJzLnNlbGVjdGVkIS5sYWJlbCEpKTtcclxuICAgIC8vZm9jdXMgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0YWIgdG8gaGVscCBrZXlib2FyZCBuYXZpZ2F0aW9uXHJcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnRhYi5hY3RpdmUnKS5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgdGFiIGZvciBlYWNoIGl0ZW0gaW4gdGhlIHJhbmdlIHJlcHJlc2VudGVkIGluIHRoZSBNZW51SXRlbVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0VGFicyhtZW51SXRlbTogTWVudUl0ZW08UGFnZVJhbmdlPiwgcGFnZU51bWJlcj86IG51bWJlcikge1xyXG4gICAgbGV0IHRhYkl0ZW1zOiBOYXZJdGVtW10gPSBbXTtcclxuICAgIGZvcihsZXQgaSA9IG1lbnVJdGVtLnZhbHVlIS5maXJzdFBhZ2U7IGkgPD0gbWVudUl0ZW0udmFsdWUhLmxhc3RQYWdlOyBpKyspIHtcclxuICAgICAgdGFiSXRlbXMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IGAke2l9YCxcclxuICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlUGFnaW5hdGlvbkNvbnRyb2xzLFxyXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IHt0aGlzLm9uUGFnZUNoYW5nZShpKX1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvL2lmIGEgcGFnZU51bWJlciBpcyBwcm92aWRlZCwgc2VsZWN0IHRoZSB0YWIgd2l0aCB0aGF0IHBhZ2UgbnVtYmVyLlxyXG4gICAgLy9vdGhlcndpc2UsIHNlbGVjdCB0aGUgZmlyc3QgdGFiLlxyXG4gICAgbGV0IHNlbGVjdGVkVGFiOiBOYXZJdGVtID0gcGFnZU51bWJlciA/IHRhYkl0ZW1zLmZpbmQodGFiID0+IHtyZXR1cm4gcGFyc2VJbnQodGFiLmxhYmVsISkgPT09IHBhZ2VOdW1iZXJ9KSFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0YWJJdGVtc1swXTtcclxuICAgIHRoaXMuY3VycmVudFRhYnMgPSBuZXcgTmF2R3JvdXAodGFiSXRlbXMsIHNlbGVjdGVkVGFiKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25QYWdlQ2hhbmdlKHBhZ2VOdW1iZXI6IG51bWJlcikge1xyXG4gICAgdGhpcy5wYWdlTnVtYmVyID0gcGFnZU51bWJlcjtcclxuICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdChUYWJsZVBhZ2luYXRpb25Db21wb25lbnQuZ2V0UGFnaW5nSW5mbyhwYWdlTnVtYmVyLCB0aGlzLnBhZ2VTaXplKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbGwgdGhlIGl0ZW1zIGZvciB0aGUgZHJvcGRvd24gbWVudS5cclxuICAgKiBBIGRyb3Bkb3duIGl0ZW0gcmVwcmVzZW50cyBhIHBhZ2UgcmFuZ2UgKGUuZy4gMS0xMCwgMTEtMjAsIG9yIDIxLTI1KS5cclxuICAgKiBBIHNpbmdsZSBkcm9wZG93biBpdGVtIGNhbiByZXByZXNlbnQgYSByYW5nZSBvZiB1cCB0byAxMCBwYWdlcyAodGhlIGxhc3QgaXRlbSBjb3VsZCBoYXZlIGxlc3MgdGhhbiAxMCkuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXREcm9wZG93bkl0ZW1zKCkge1xyXG4gICAgdGhpcy5kcm9wZG93bkl0ZW1zID0gW107XHJcbiAgICAvL2ZpbmQgdGhlIGxhc3QgcGFnZVxyXG4gICAgbGV0IGRpdmlkZW5kID0gTWF0aC5mbG9vcih0aGlzLnRvdGFsSXRlbXMgLyB0aGlzLnBhZ2VTaXplKTtcclxuICAgIGxldCByZW1haW5kZXIgPSB0aGlzLnRvdGFsSXRlbXMgJSB0aGlzLnBhZ2VTaXplO1xyXG4gICAgY29uc3QgbGFzdFBhZ2UgPSAocmVtYWluZGVyID09PSAwKSA/IGRpdmlkZW5kIDogZGl2aWRlbmQgKyAxO1xyXG5cclxuICAgIC8va2VlcCBidWlsZGluZyBtZW51IGl0ZW1zIG9mIHRoZSBmb3JtIDEtMTAsIDExLTIwLCAyMS0zMCwgZXRjIHVudGlsICBcclxuICAgIC8vZW5kID49IGxhc3RQYWdlLCB3aGljaCBtZWFucyB3ZSd2ZSBmb3VuZCB0aGUgcmFuZ2UgdGhhdCBjb250YWlucyB0aGUgbGFzdCBwYWdlLlxyXG4gICAgbGV0IHN0YXJ0ID0gMTtcclxuXHJcbiAgICBsZXQgbWF4VGFicyA9IHRoaXMubWF4VGFicyB8fCAxMDtcclxuICAgIGxldCBlbmQgPSBtYXhUYWJzO1xyXG5cclxuICAgIHdoaWxlKGVuZCA8IGxhc3RQYWdlKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25JdGVtcy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogYCR7c3RhcnR9LSR7ZW5kfWAsXHJcbiAgICAgICAgdmFsdWU6IHtmaXJzdFBhZ2U6IHN0YXJ0LCBsYXN0UGFnZTogZW5kfVxyXG4gICAgICB9KTtcclxuICAgICAgc3RhcnQgPSBzdGFydCArIG1heFRhYnM7XHJcbiAgICAgIGVuZCA9IGVuZCArIG1heFRhYnM7XHJcbiAgICB9XHJcbiAgICAvL2FkZCB0aGUgbWVudSBpdGVtIHRoYXQgY29udGFpbnMgdGhlIGxhc3QgcGFnZS5cclxuICAgIHRoaXMuZHJvcGRvd25JdGVtcy5wdXNoKHtcclxuICAgICAgbGFiZWw6IChzdGFydCA9PT0gbGFzdFBhZ2UpID8gYCR7c3RhcnR9YDogYCR7c3RhcnR9LSR7bGFzdFBhZ2V9YCxcclxuICAgICAgdmFsdWU6IHtmaXJzdFBhZ2U6IHN0YXJ0LCBsYXN0UGFnZTogbGFzdFBhZ2V9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59IiwiPGVjLXRhYnMgaWQ9XCJ7e2lkfX1fcGFnZXNcIlxyXG4gICAgICAgICBjbGFzcz1cIm15LTIgaXMtY29uZGVuc2VkXCJcclxuICAgICAgICAgW3RhYkdyb3VwXT1cImN1cnJlbnRUYWJzXCJcclxuICAgICAgICAgdGFiU3R5bGU9XCJwaWxsc1wiPlxyXG48L2VjLXRhYnM+XHJcbjxlYy1kcm9wZG93biBpZD1cInt7aWR9fV9tb3JlUGFnZXNcIlxyXG4gICAgICAgICAgICAgKm5nSWY9XCJkcm9wZG93bkl0ZW1zLmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJteS0xIG1sLTFcIlxyXG4gICAgICAgICAgICAgbWVudVRlbXBsYXRlVHlwZT1cImxhYmVsXCJcclxuICAgICAgICAgICAgIGljb249XCJpY29uLW1vcmVcIlxyXG4gICAgICAgICAgICAgbWVudVBvc2l0aW9uPVwibGVmdFwiXHJcbiAgICAgICAgICAgICBbbWVudU1pbldpZHRoXT1cIjgwXCJcclxuICAgICAgICAgICAgIFtzaG93QXJyb3ddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgW3BvcHVwRml4ZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICBbaXRlbXNdPVwiZHJvcGRvd25JdGVtc1wiXHJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZVBhZ2luYXRpb25Db250cm9sc1wiXHJcbiAgICAgICAgICAgICAoaXRlbVNlbGVjdGVkKT1cIm9uSXRlbVNlbGVjdGVkKCRldmVudClcIj5cclxuPC9lYy1kcm9wZG93bj4iXX0=
|