@impartner/design-components 1.2.0 → 2.0.1
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/README.md +5 -4
- package/constants/fontawesome-icons.d.ts +2 -2
- package/{esm2020 → esm2022}/constants/fontawesome-icons.mjs +1 -1
- package/{esm2020 → esm2022}/lib/alert/alert.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/alert/alert.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/avatar/avatar.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/avatar/avatar.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/avatar-group/avatar-group.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/avatar-group/avatar-group.module.mjs +5 -5
- package/esm2022/lib/backdrop/backdrop.component.mjs +52 -0
- package/{esm2020 → esm2022}/lib/backdrop/backdrop.module.mjs +6 -6
- package/esm2022/lib/badge/badge.component.mjs +105 -0
- package/{esm2020 → esm2022}/lib/badge/badge.module.mjs +6 -6
- package/{esm2020 → esm2022}/lib/badge/types/badge-size.mjs +1 -1
- package/{esm2020 → esm2022}/lib/branding/branded.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/branding/branding.module.mjs +6 -6
- package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb-item.component.mjs +6 -6
- package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/button/button.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/button/button.module.mjs +6 -6
- package/{esm2020 → esm2022}/lib/button-group/button-group.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/button-group/button-group.module.mjs +6 -6
- package/{esm2020 → esm2022}/lib/card-heading/card-heading.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/card-heading/card-heading.module.mjs +6 -6
- package/esm2022/lib/data-card/data-card.component.mjs +123 -0
- package/esm2022/lib/data-card/data-card.module.mjs +21 -0
- package/{esm2020 → esm2022}/lib/design-components.module.mjs +61 -61
- package/{esm2020 → esm2022}/lib/dropdown/components/dropdown-item/dropdown-item.component.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown.component.mjs +143 -0
- package/{esm2020 → esm2022}/lib/dropdown/dropdown.module.mjs +6 -6
- package/{esm2020 → esm2022}/lib/file-upload/directives/file-drop.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/file-upload/file-upload.component.mjs +30 -30
- package/{esm2020 → esm2022}/lib/file-upload/file-upload.module.mjs +8 -8
- package/{esm2020 → esm2022}/lib/file-upload/pipes/human-readable-byte-size.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/controls/checkbox/checkbox.component.mjs +49 -49
- package/{esm2020 → esm2022}/lib/form-field/controls/checkbox/checkbox.module.mjs +5 -5
- package/esm2022/lib/form-field/controls/input/input.directive.mjs +233 -0
- package/esm2022/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +260 -0
- package/esm2022/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +289 -0
- package/{esm2020 → esm2022}/lib/form-field/controls/radio/radio.module.mjs +5 -5
- package/esm2022/lib/form-field/controls/select/option/select-option.component.mjs +139 -0
- package/esm2022/lib/form-field/controls/select/select-model.mjs +150 -0
- package/esm2022/lib/form-field/controls/select/select.component.mjs +522 -0
- package/{esm2020 → esm2022}/lib/form-field/controls/select/select.module.mjs +9 -9
- package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.mjs +4 -4
- package/esm2022/lib/form-field/controls/shared/toggle/toggle.component.mjs +96 -0
- package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/toggle.module.mjs +6 -6
- package/{esm2020 → esm2022}/lib/form-field/directives/corner-hint.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/directives/error.directive.mjs +4 -4
- package/esm2022/lib/form-field/directives/form-root.directive.mjs +91 -0
- package/{esm2020 → esm2022}/lib/form-field/directives/hint.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/directives/label.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/directives/prefix.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/directives/suffix.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/form-field.component.mjs +11 -11
- package/{esm2020 → esm2022}/lib/form-field/impdc-forms.module.mjs +28 -28
- package/{esm2020 → esm2022}/lib/form-field/services/error-state-matcher.service.mjs +7 -7
- package/{esm2020 → esm2022}/lib/form-field/services/unique-selection-dispatcher.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/shared/disabled.mixin.mjs +5 -5
- package/esm2022/lib/form-field/shared/error-state.mixin.mjs +24 -0
- package/{esm2020 → esm2022}/lib/form-field/shared/form-field-control.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/shared/tab-index.mixin.mjs +6 -6
- package/{esm2020 → esm2022}/lib/icon/icon.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/icon/icon.module.mjs +6 -6
- package/esm2022/lib/modal/modal.component.mjs +260 -0
- package/{esm2020 → esm2022}/lib/modal/modal.module.mjs +14 -14
- package/{esm2020 → esm2022}/lib/modal/types/modal-component-sizes.mjs +1 -1
- package/{esm2020 → esm2022}/lib/modal/types/modal-theme.mjs +1 -1
- package/esm2022/lib/pagination/pagination.component.mjs +176 -0
- package/{esm2020 → esm2022}/lib/pagination/pagination.module.mjs +16 -16
- package/{esm2020 → esm2022}/lib/progress-bar/progress-bar.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/progress-bar/progress-bar.module.mjs +5 -5
- package/esm2022/lib/scrollable/scrollable.component.mjs +186 -0
- package/{esm2020 → esm2022}/lib/scrollable/scrollable.module.mjs +6 -6
- package/esm2022/lib/select-icon/select-icon.component.mjs +308 -0
- package/{esm2020 → esm2022}/lib/select-icon/select-icon.module.mjs +13 -13
- package/{esm2020 → esm2022}/lib/size-detection/directive/size-detector.directive.mjs +5 -5
- package/{esm2020 → esm2022}/lib/size-detection/size-detection.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/spinner/spinner.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/spinner/spinner.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/table/components/bulk-actions/bulk-actions.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/table/components/column-heading/column-heading.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/table/components/index.mjs +2 -1
- package/esm2022/lib/table/components/row-actions/row-actions.component.mjs +61 -0
- package/esm2022/lib/table/containers/table.component.mjs +403 -0
- package/esm2022/lib/table/directives/table-inject-component.directive.mjs +46 -0
- package/{esm2020 → esm2022}/lib/table/directives/table.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/table/enumerations/table-column-type.mjs +2 -1
- package/{esm2020 → esm2022}/lib/table/helpers/table-theme.helper.mjs +3 -3
- package/esm2022/lib/table/interfaces/index.mjs +11 -0
- package/esm2022/lib/table/interfaces/table-column-defs.type.mjs +2 -0
- package/esm2022/lib/table/interfaces/table-row-action-payload.interface.mjs +2 -0
- package/esm2022/lib/table/interfaces/table-row-action.interface.mjs +2 -0
- package/esm2022/lib/table/table.module.mjs +96 -0
- package/{esm2020 → esm2022}/lib/text-highlight/text-highlight.component.mjs +6 -6
- package/{esm2020 → esm2022}/lib/text-highlight/text-highlight.module.mjs +6 -6
- package/{esm2020 → esm2022}/services/index.mjs +1 -1
- package/esm2022/services/interaction.service.mjs +88 -0
- package/{esm2020 → esm2022}/types/component-theme.mjs +1 -1
- package/{fesm2020 → fesm2022}/impartner-design-components.mjs +1197 -1032
- package/fesm2022/impartner-design-components.mjs.map +1 -0
- package/lib/alert/alert.component.d.ts +1 -1
- package/lib/alert/theme/alert-theme.d.ts +1 -1
- package/lib/avatar/avatar.component.d.ts +1 -1
- package/lib/avatar-group/avatar-group.component.d.ts +1 -1
- package/lib/backdrop/backdrop.component.d.ts +9 -6
- package/lib/badge/badge.component.d.ts +3 -2
- package/lib/badge/types/badge-icon.d.ts +1 -1
- package/lib/badge/types/badge-size.d.ts +1 -1
- package/lib/branding/branded.directive.d.ts +1 -1
- package/lib/breadcrumb/breadcrumb-item.component.d.ts +1 -1
- package/lib/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/lib/button/button.component.d.ts +1 -1
- package/lib/button/themes/button-theme.d.ts +1 -1
- package/lib/button-group/button-group.component.d.ts +1 -1
- package/lib/card-heading/card-heading.component.d.ts +1 -1
- package/lib/data-card/data-card.component.d.ts +14 -18
- package/lib/data-card/data-card.module.d.ts +2 -1
- package/lib/dropdown/components/dropdown-item/dropdown-item.component.d.ts +1 -1
- package/lib/dropdown/dropdown.component.d.ts +6 -5
- package/lib/dropdown/types/dropdown-position.d.ts +1 -1
- package/lib/file-upload/directives/file-drop.directive.d.ts +1 -1
- package/lib/file-upload/file-upload.component.d.ts +1 -1
- package/lib/form-field/controls/checkbox/checkbox.component.d.ts +1 -1
- package/lib/form-field/controls/input/input.directive.d.ts +1 -1
- package/lib/form-field/controls/radio/radio-button/radio-button.component.d.ts +1 -1
- package/lib/form-field/controls/radio/radio-group/radio-group.directive.d.ts +1 -1
- package/lib/form-field/controls/select/option/select-option.component.d.ts +4 -4
- package/lib/form-field/controls/select/select.component.d.ts +1 -1
- package/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.d.ts +1 -1
- package/lib/form-field/controls/shared/toggle/toggle.component.d.ts +1 -1
- package/lib/form-field/directives/corner-hint.directive.d.ts +1 -1
- package/lib/form-field/directives/error.directive.d.ts +1 -1
- package/lib/form-field/directives/form-root.directive.d.ts +2 -2
- package/lib/form-field/directives/hint.directive.d.ts +1 -1
- package/lib/form-field/directives/label.directive.d.ts +1 -1
- package/lib/form-field/directives/prefix.directive.d.ts +1 -1
- package/lib/form-field/directives/suffix.directive.d.ts +1 -1
- package/lib/form-field/form-field.component.d.ts +1 -1
- package/lib/form-field/services/unique-selection-dispatcher.service.d.ts +1 -1
- package/lib/form-field/shared/constructors.type.d.ts +2 -2
- package/lib/form-field/shared/disabled.mixin.d.ts +1 -1
- package/lib/form-field/shared/error-state.mixin.d.ts +1 -1
- package/lib/form-field/shared/form-field-control.d.ts +1 -1
- package/lib/form-field/shared/tab-index.mixin.d.ts +1 -1
- package/lib/icon/icon.component.d.ts +1 -1
- package/lib/modal/modal.component.d.ts +17 -10
- package/lib/modal/types/modal-component-sizes.d.ts +1 -1
- package/lib/modal/types/modal-theme.d.ts +1 -1
- package/lib/pagination/pagination.component.d.ts +1 -1
- package/lib/progress-bar/progress-bar.component.d.ts +1 -1
- package/lib/scrollable/scrollable.component.d.ts +1 -1
- package/lib/select-icon/select-icon.component.d.ts +1 -1
- package/lib/size-detection/directive/size-detector.directive.d.ts +1 -1
- package/lib/spinner/spinner.component.d.ts +1 -1
- package/lib/table/components/bulk-actions/bulk-actions.component.d.ts +1 -1
- package/lib/table/components/column-heading/column-heading.component.d.ts +1 -1
- package/lib/table/components/index.d.ts +1 -0
- package/lib/table/components/row-actions/row-actions.component.d.ts +21 -0
- package/lib/table/containers/table.component.d.ts +12 -6
- package/lib/table/directives/table-inject-component.directive.d.ts +3 -3
- package/lib/table/directives/table.directive.d.ts +1 -1
- package/lib/table/enumerations/table-column-type.d.ts +2 -1
- package/lib/table/helpers/table-theme.helper.d.ts +4 -4
- package/lib/table/interfaces/custom-cell-renderer-components.type.d.ts +1 -1
- package/lib/table/interfaces/index.d.ts +3 -1
- package/lib/table/interfaces/{table-column-def.interface.d.ts → table-column-defs.type.d.ts} +8 -1
- package/lib/table/interfaces/table-row-action-payload.interface.d.ts +6 -0
- package/lib/table/interfaces/table-row-action.interface.d.ts +9 -0
- package/lib/table/interfaces/table-row-item.interface.d.ts +3 -3
- package/lib/table/table.module.d.ts +12 -10
- package/lib/text-highlight/text-highlight.component.d.ts +1 -1
- package/package.json +16 -22
- package/services/index.d.ts +1 -1
- package/services/interaction.service.d.ts +20 -10
- package/types/component-size.d.ts +2 -2
- package/types/component-theme.d.ts +1 -1
- package/utilities/boolean-props.d.ts +1 -1
- package/utilities/number-props.d.ts +1 -1
- package/esm2020/lib/backdrop/backdrop.component.mjs +0 -40
- package/esm2020/lib/badge/badge.component.mjs +0 -99
- package/esm2020/lib/data-card/data-card.component.mjs +0 -128
- package/esm2020/lib/data-card/data-card.module.mjs +0 -20
- package/esm2020/lib/dropdown/dropdown.component.mjs +0 -142
- package/esm2020/lib/form-field/controls/input/input.directive.mjs +0 -233
- package/esm2020/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +0 -260
- package/esm2020/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +0 -289
- package/esm2020/lib/form-field/controls/select/option/select-option.component.mjs +0 -139
- package/esm2020/lib/form-field/controls/select/select-model.mjs +0 -150
- package/esm2020/lib/form-field/controls/select/select.component.mjs +0 -522
- package/esm2020/lib/form-field/controls/shared/toggle/toggle.component.mjs +0 -96
- package/esm2020/lib/form-field/directives/form-root.directive.mjs +0 -91
- package/esm2020/lib/form-field/shared/error-state.mixin.mjs +0 -24
- package/esm2020/lib/modal/modal.component.mjs +0 -187
- package/esm2020/lib/pagination/pagination.component.mjs +0 -176
- package/esm2020/lib/scrollable/scrollable.component.mjs +0 -186
- package/esm2020/lib/select-icon/select-icon.component.mjs +0 -308
- package/esm2020/lib/table/containers/table.component.mjs +0 -386
- package/esm2020/lib/table/directives/table-inject-component.directive.mjs +0 -46
- package/esm2020/lib/table/interfaces/index.mjs +0 -9
- package/esm2020/lib/table/interfaces/table-column-def.interface.mjs +0 -2
- package/esm2020/lib/table/table.module.mjs +0 -88
- package/esm2020/services/interaction.service.mjs +0 -81
- package/fesm2015/impartner-design-components.mjs +0 -9214
- package/fesm2015/impartner-design-components.mjs.map +0 -1
- package/fesm2020/impartner-design-components.mjs.map +0 -1
- /package/{esm2020 → esm2022}/constants/index.mjs +0 -0
- /package/{esm2020 → esm2022}/impartner-design-components.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/alert/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/alert/theme/alert-theme.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/alert/theme/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/avatar/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/avatar-group/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/backdrop/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/badge/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/badge/types/badge-icon.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/badge/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/branding/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/breadcrumb/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/button/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/button/themes/button-theme.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/button/themes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/button-group/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/card-heading/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-card/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dropdown/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dropdown/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dropdown/types/dropdown-position.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dropdown/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/file-upload/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/file-upload/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/file-upload/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/checkbox/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/input/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/radio/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/radio/injection-tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/radio-button.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/radio-change-event.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/radio-group.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/select/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/select/option/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/select/option-parent.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/shared/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/form-field-errors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/impdc-forms.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/shared/constructors.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/shared/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/icon/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modal/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modal/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pagination/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/progress-bar/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/scrollable/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/select-icon/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/size-detection/directive/element-size.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/size-detection/directive/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/size-detection/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/spinner/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/constants/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/constants/public-table.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/constants/table.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/containers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/enumerations/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/helpers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/interfaces/cell-renderer.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/interfaces/custom-cell-renderer-components.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/interfaces/sort-by-payload.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/interfaces/table-cell-option.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/interfaces/table-event-payload.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/interfaces/table-row-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/text-highlight/index.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/types/component-size.mjs +0 -0
- /package/{esm2020 → esm2022}/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utilities/boolean-props.mjs +0 -0
- /package/{esm2020 → esm2022}/utilities/dc.mjs +0 -0
- /package/{esm2020 → esm2022}/utilities/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utilities/lc.mjs +0 -0
- /package/{esm2020 → esm2022}/utilities/number-props.mjs +0 -0
- /package/{esm2020 → esm2022}/utilities/sanitize.mjs +0 -0
|
@@ -1,386 +0,0 @@
|
|
|
1
|
-
import { Component, ContentChild, EventEmitter, Host, Input, Optional, Output } from '@angular/core';
|
|
2
|
-
import { get as getNestedValue, set as setNestedValue } from 'lodash';
|
|
3
|
-
import { debounceTime } from 'rxjs/operators';
|
|
4
|
-
import { DEBOUNCE_TIME, SORT_COLUMN_INDEX } from '../constants/index';
|
|
5
|
-
import { TableColumnType } from '../enumerations/index';
|
|
6
|
-
import { TableThemeHelper } from '../helpers';
|
|
7
|
-
import { ComponentTheme } from '../../../types';
|
|
8
|
-
import { PaginationComponent } from '../../pagination';
|
|
9
|
-
import { TableBulkActionsComponent } from '../components';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/common";
|
|
12
|
-
import * as i2 from "../../branding";
|
|
13
|
-
import * as i3 from "../../branding/branded.directive";
|
|
14
|
-
import * as i4 from "../../icon/icon.component";
|
|
15
|
-
import * as i5 from "../../form-field/controls/checkbox/checkbox.component";
|
|
16
|
-
import * as i6 from "../../form-field/controls/select/option/select-option.component";
|
|
17
|
-
import * as i7 from "../../form-field/controls/select/select.component";
|
|
18
|
-
import * as i8 from "../../form-field/controls/input/input.directive";
|
|
19
|
-
import * as i9 from "@angular/forms";
|
|
20
|
-
import * as i10 from "../../spinner/spinner.component";
|
|
21
|
-
import * as i11 from "../../badge/badge.component";
|
|
22
|
-
import * as i12 from "../directives/table.directive";
|
|
23
|
-
import * as i13 from "../components/column-heading/column-heading.component";
|
|
24
|
-
import * as i14 from "../directives/table-inject-component.directive";
|
|
25
|
-
/**
|
|
26
|
-
* The `TableComponent` (`<impdc-table`) is a data table component.
|
|
27
|
-
* To use, import `TableModule` from `@impartner/design-components`.
|
|
28
|
-
*/
|
|
29
|
-
export class TableComponent {
|
|
30
|
-
constructor(_datePipe, _percentPipe, _decmialPipe, _changeDetectorRef, _branded) {
|
|
31
|
-
this._datePipe = _datePipe;
|
|
32
|
-
this._percentPipe = _percentPipe;
|
|
33
|
-
this._decmialPipe = _decmialPipe;
|
|
34
|
-
this._changeDetectorRef = _changeDetectorRef;
|
|
35
|
-
this._branded = _branded;
|
|
36
|
-
/**
|
|
37
|
-
* Whether the table data is currently being loaded. The `<impdc-spinner>` will show if data is loading.
|
|
38
|
-
*/
|
|
39
|
-
this.loading = false;
|
|
40
|
-
/**
|
|
41
|
-
* The visible columns of the table. Each `ITableColumnDef` defines properties regarding the display, formatting and interaction of the column's cells.
|
|
42
|
-
* Column/cell color precedence is:
|
|
43
|
-
* 1) `fieldColor` - allows an `ITableColumnDef` to delegate the responsibility of cell color to an `ITableRowItem` property.
|
|
44
|
-
* 2) `colorGetter`- allows an `ITableColumnDef` to delegate the responsibility of cell color to a function of the `ITableRowItem` determined by the developer.
|
|
45
|
-
* 3) `color` - a property of an `ITableColumnDef`.
|
|
46
|
-
*/
|
|
47
|
-
this.columnDefs = [];
|
|
48
|
-
/**
|
|
49
|
-
* Whether the table is striped.
|
|
50
|
-
*/
|
|
51
|
-
this.striped = true;
|
|
52
|
-
/**
|
|
53
|
-
* The placeholder text and empty value display text for `<impdc-select>` instances in cells with a `ITableColumnDef` `columnType` = `SingleSelect` or `MultiSelect`.
|
|
54
|
-
*/
|
|
55
|
-
this.selectPlaceholder = '';
|
|
56
|
-
/**
|
|
57
|
-
* The `columnDefs` index of the currently sorted column.
|
|
58
|
-
*/
|
|
59
|
-
this.sortColumnIndex = SORT_COLUMN_INDEX;
|
|
60
|
-
/**
|
|
61
|
-
* The direction of the currently sorted column.
|
|
62
|
-
*/
|
|
63
|
-
this.sortDirection = 'asc';
|
|
64
|
-
/**
|
|
65
|
-
* The table row data as an array of `ITableRowItem`.
|
|
66
|
-
*/
|
|
67
|
-
this.tableData = [];
|
|
68
|
-
/**
|
|
69
|
-
* Event emitted when one or multiple rows are selected. Emits `(string | number)[]` payload.
|
|
70
|
-
*/
|
|
71
|
-
this.rowSelect = new EventEmitter();
|
|
72
|
-
/**
|
|
73
|
-
* Event emitted when a column is sorted. Emits `ISortByPayload` payload.
|
|
74
|
-
*/
|
|
75
|
-
this.sortBy = new EventEmitter();
|
|
76
|
-
/**
|
|
77
|
-
* Event emitted when a row link is clicked. Emits `ITableEventPayload` payload.
|
|
78
|
-
*/
|
|
79
|
-
this.linkClick = new EventEmitter();
|
|
80
|
-
/** @ignore */
|
|
81
|
-
this.paginationComponent = undefined;
|
|
82
|
-
/** @ignore */
|
|
83
|
-
this.bulkActions = undefined;
|
|
84
|
-
/**
|
|
85
|
-
* Event emitted when a row input value is changed. Emitted cells of `columnType` `SinglSelect`, `MultiSelect`, `Input`, `Boolean` or `Icon`.
|
|
86
|
-
* Not emitted if column definition property `disabled` = `true`. Emits `ITableEventPayload` payload.
|
|
87
|
-
*/
|
|
88
|
-
this.inputChange = new EventEmitter();
|
|
89
|
-
/** @ignore */
|
|
90
|
-
this.cellType = TableColumnType;
|
|
91
|
-
/** @ignore */
|
|
92
|
-
this.allSelected = true;
|
|
93
|
-
/** @ignore */
|
|
94
|
-
this.branded = false;
|
|
95
|
-
this._canSelectRows = false;
|
|
96
|
-
this._canSelectAllRows = false;
|
|
97
|
-
this._selectedRowIds = [];
|
|
98
|
-
this._inputChange = new EventEmitter();
|
|
99
|
-
this.branded = _branded ? true : false;
|
|
100
|
-
this._inputChange
|
|
101
|
-
.pipe(debounceTime(DEBOUNCE_TIME))
|
|
102
|
-
.subscribe(this.inputChange);
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Whether individual rows can be selected. Will be `true` if explicitly set to `true` or `canSelectAllRows` is `true`.
|
|
106
|
-
*/
|
|
107
|
-
set canSelectRows(value) {
|
|
108
|
-
this._canSelectRows = value;
|
|
109
|
-
}
|
|
110
|
-
get canSelectRows() {
|
|
111
|
-
return this.canSelectAllRows || this._canSelectRows || !!this.bulkActions;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Whether all rows can be selected at once. Will be `true` if explicitly set to `true` or if `TableBulkActionsComponent` is content projected.
|
|
115
|
-
*/
|
|
116
|
-
set canSelectAllRows(value) {
|
|
117
|
-
this._canSelectAllRows = value;
|
|
118
|
-
}
|
|
119
|
-
get canSelectAllRows() {
|
|
120
|
-
return this._canSelectAllRows || !!this.bulkActions;
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* An array of currently selected IDs from the `tableData` input. Array must be of type `(string | number)[]`.
|
|
124
|
-
*/
|
|
125
|
-
set selectedRowIds(value) {
|
|
126
|
-
this._selectedRowIds = [...value];
|
|
127
|
-
}
|
|
128
|
-
get selectedRowIds() {
|
|
129
|
-
return [...this._selectedRowIds];
|
|
130
|
-
}
|
|
131
|
-
/** @ignore */
|
|
132
|
-
get someSelected() {
|
|
133
|
-
return (!!this._selectedRowIds &&
|
|
134
|
-
this._selectedRowIds.length > 0 &&
|
|
135
|
-
!!this.tableData &&
|
|
136
|
-
this.tableData.length > 0 &&
|
|
137
|
-
this._selectedRowIds.length < this.tableData.length);
|
|
138
|
-
}
|
|
139
|
-
/** @ignore */
|
|
140
|
-
get tableSpan() {
|
|
141
|
-
return this.canSelectRows
|
|
142
|
-
? this.columnDefs.length + 1
|
|
143
|
-
: this.columnDefs.length;
|
|
144
|
-
}
|
|
145
|
-
ngOnChanges(changes) {
|
|
146
|
-
if (changes['selectedRowIds'] || changes['tableData']) {
|
|
147
|
-
if (!this.tableData ||
|
|
148
|
-
!this.tableData.length ||
|
|
149
|
-
!this.selectedRowIds ||
|
|
150
|
-
!this.selectedRowIds.length) {
|
|
151
|
-
this.allSelected = false;
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
this.allSelected = this.selectedRowIds.length >= this.tableData.length;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
getMailToValue(columnIndex, currentRow) {
|
|
159
|
-
const { columnType, truncated: truncated } = this._getColumnDefByIndex(columnIndex);
|
|
160
|
-
let value = this._getValue(columnIndex, currentRow);
|
|
161
|
-
if (columnType !== TableColumnType.Email) {
|
|
162
|
-
return String(value);
|
|
163
|
-
}
|
|
164
|
-
value = value ? `mailto:${value}` : value;
|
|
165
|
-
return String(value);
|
|
166
|
-
}
|
|
167
|
-
getStringValue(columnIndex, currentRow) {
|
|
168
|
-
const value = this.getValue(columnIndex, currentRow);
|
|
169
|
-
if (Array.isArray(value)) {
|
|
170
|
-
return value.join(';');
|
|
171
|
-
}
|
|
172
|
-
return String(value);
|
|
173
|
-
}
|
|
174
|
-
getValue(columnIndex, currentRow) {
|
|
175
|
-
const { columnType, truncated: truncated } = this._getColumnDefByIndex(columnIndex);
|
|
176
|
-
let value = this._getValue(columnIndex, currentRow);
|
|
177
|
-
switch (columnType) {
|
|
178
|
-
case TableColumnType.Decimal: {
|
|
179
|
-
value = this._decmialPipe.transform(Number(value) || 0) || '';
|
|
180
|
-
break;
|
|
181
|
-
}
|
|
182
|
-
case TableColumnType.Date: {
|
|
183
|
-
const date = new Date(String(value));
|
|
184
|
-
const validDate = date instanceof Date && !isNaN(date.getTime());
|
|
185
|
-
value = validDate
|
|
186
|
-
? this._datePipe.transform(date, 'MM/dd/yyyy') || ''
|
|
187
|
-
: String(value);
|
|
188
|
-
break;
|
|
189
|
-
}
|
|
190
|
-
case TableColumnType.DateTime: {
|
|
191
|
-
const dateTime = new Date(String(value));
|
|
192
|
-
const validDateTime = dateTime instanceof Date && !isNaN(dateTime.getTime());
|
|
193
|
-
value = validDateTime
|
|
194
|
-
? this._datePipe.transform(dateTime, 'MM/dd/yyyy h:mm:ss a') || ''
|
|
195
|
-
: String(value);
|
|
196
|
-
break;
|
|
197
|
-
}
|
|
198
|
-
case TableColumnType.Link: {
|
|
199
|
-
value = String(value).replace(/(^\w+:|^)\/\//, '');
|
|
200
|
-
break;
|
|
201
|
-
}
|
|
202
|
-
case TableColumnType.Percentage: {
|
|
203
|
-
value = this._percentPipe.transform(Number(value) || 0) || '';
|
|
204
|
-
break;
|
|
205
|
-
}
|
|
206
|
-
case TableColumnType.Url: {
|
|
207
|
-
if (!/(http(s?)):\/\//i.test(String(value))) {
|
|
208
|
-
value = `https://${value}`;
|
|
209
|
-
}
|
|
210
|
-
break;
|
|
211
|
-
}
|
|
212
|
-
case TableColumnType.Text: {
|
|
213
|
-
if (Array.isArray(value)) {
|
|
214
|
-
value = value.join('; ');
|
|
215
|
-
}
|
|
216
|
-
if (!truncated) {
|
|
217
|
-
return value;
|
|
218
|
-
}
|
|
219
|
-
const truncateString = (string = '', maxLength = truncated) => string.length > maxLength
|
|
220
|
-
? `${string.substring(0, maxLength)}…`
|
|
221
|
-
: string;
|
|
222
|
-
!!truncated
|
|
223
|
-
? (value = truncateString(String(value), truncated))
|
|
224
|
-
: value;
|
|
225
|
-
break;
|
|
226
|
-
}
|
|
227
|
-
case TableColumnType.MultiSelect:
|
|
228
|
-
if (typeof value === 'string') {
|
|
229
|
-
value = value.split(';')?.map(v => v.trim()) || [];
|
|
230
|
-
}
|
|
231
|
-
return value;
|
|
232
|
-
}
|
|
233
|
-
return String(value);
|
|
234
|
-
}
|
|
235
|
-
getRawValue(columnIndex, currentRow) {
|
|
236
|
-
const { field } = this._getColumnDefByIndex(columnIndex);
|
|
237
|
-
if (!field) {
|
|
238
|
-
return '';
|
|
239
|
-
}
|
|
240
|
-
return currentRow[field] || '';
|
|
241
|
-
}
|
|
242
|
-
getCellColor(columnDefinition, item) {
|
|
243
|
-
return TableThemeHelper.getCellColor(columnDefinition, item);
|
|
244
|
-
}
|
|
245
|
-
getTheme(columnDefinition, item) {
|
|
246
|
-
return (TableThemeHelper.getTheme(columnDefinition, item) ||
|
|
247
|
-
ComponentTheme.Primary);
|
|
248
|
-
}
|
|
249
|
-
isSortedColumn(columnIndex) {
|
|
250
|
-
return columnIndex === this.sortColumnIndex;
|
|
251
|
-
}
|
|
252
|
-
isRowSelected(id) {
|
|
253
|
-
return this.selectedRowIds.includes(id);
|
|
254
|
-
}
|
|
255
|
-
handleSelectAll(event) {
|
|
256
|
-
if (!this.canSelectAllRows || !this.tableData) {
|
|
257
|
-
return;
|
|
258
|
-
}
|
|
259
|
-
if (event.checked) {
|
|
260
|
-
this._selectedRowIds = this.tableData?.map(row => row.id) || [];
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
this._selectedRowIds = [];
|
|
264
|
-
}
|
|
265
|
-
this._selectedRowIds.sort();
|
|
266
|
-
this.allSelected = this.selectedRowIds.length >= this.tableData.length;
|
|
267
|
-
this.rowSelect.emit(this.selectedRowIds);
|
|
268
|
-
}
|
|
269
|
-
handleSort(columnIndex) {
|
|
270
|
-
if (columnIndex === this.sortColumnIndex) {
|
|
271
|
-
this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';
|
|
272
|
-
}
|
|
273
|
-
else {
|
|
274
|
-
this.sortColumnIndex = columnIndex;
|
|
275
|
-
this.sortDirection = 'asc';
|
|
276
|
-
}
|
|
277
|
-
const field = this._getColumnDefByIndex(columnIndex).field || '';
|
|
278
|
-
this.sortBy.emit({
|
|
279
|
-
columnIndex,
|
|
280
|
-
field,
|
|
281
|
-
direction: this.sortDirection
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
handleRowSelect(event, rowId) {
|
|
285
|
-
if (!this.canSelectRows) {
|
|
286
|
-
return;
|
|
287
|
-
}
|
|
288
|
-
if (event.checked && !this._selectedRowIds.includes(rowId)) {
|
|
289
|
-
this._selectedRowIds.push(rowId);
|
|
290
|
-
}
|
|
291
|
-
else if (!event.checked && this._selectedRowIds.includes(rowId)) {
|
|
292
|
-
const idx = this._selectedRowIds.indexOf(rowId);
|
|
293
|
-
if (idx > -1) {
|
|
294
|
-
this._selectedRowIds.splice(idx, 1);
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
if (this._selectedRowIds.length) {
|
|
298
|
-
this._selectedRowIds.sort();
|
|
299
|
-
}
|
|
300
|
-
this.allSelected = this.selectedRowIds.length >= this.tableData.length;
|
|
301
|
-
this.rowSelect.emit(this.selectedRowIds);
|
|
302
|
-
}
|
|
303
|
-
handleCellValueChange(columnIndex, rowIndex, value) {
|
|
304
|
-
const { field, columnType } = this._getColumnDefByIndex(columnIndex);
|
|
305
|
-
let currentValue = value;
|
|
306
|
-
if (columnType !== TableColumnType.Boolean && !Array.isArray(value)) {
|
|
307
|
-
currentValue = isNaN(Number(value)) ? value : Number(value);
|
|
308
|
-
}
|
|
309
|
-
const item = this.tableData[rowIndex];
|
|
310
|
-
setNestedValue(item, String(field), currentValue);
|
|
311
|
-
this._inputChange.emit({
|
|
312
|
-
columnIndex,
|
|
313
|
-
item,
|
|
314
|
-
value: currentValue
|
|
315
|
-
});
|
|
316
|
-
this._changeDetectorRef.detectChanges();
|
|
317
|
-
}
|
|
318
|
-
handleLinkClick(columnIndex, item) {
|
|
319
|
-
this.linkClick.emit({
|
|
320
|
-
item,
|
|
321
|
-
columnIndex
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
_getColumnDefByIndex(columnIndex) {
|
|
325
|
-
return this.columnDefs[columnIndex];
|
|
326
|
-
}
|
|
327
|
-
_getValue(columnIndex, currentRow) {
|
|
328
|
-
try {
|
|
329
|
-
const { field, valueGetter } = this._getColumnDefByIndex(columnIndex);
|
|
330
|
-
const value = valueGetter
|
|
331
|
-
? valueGetter(currentRow)
|
|
332
|
-
: getNestedValue(currentRow, String(field), '');
|
|
333
|
-
return value || '';
|
|
334
|
-
}
|
|
335
|
-
catch (e) {
|
|
336
|
-
return '';
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TableComponent, deps: [{ token: i1.DatePipe }, { token: i1.PercentPipe }, { token: i1.DecimalPipe }, { token: i0.ChangeDetectorRef }, { token: i2.BrandedDirective, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
341
|
-
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TableComponent, selector: "impdc-table", inputs: { loading: "loading", columnDefs: "columnDefs", striped: "striped", canSelectRows: "canSelectRows", canSelectAllRows: "canSelectAllRows", selectPlaceholder: "selectPlaceholder", sortColumnIndex: "sortColumnIndex", sortDirection: "sortDirection", tableData: "tableData", selectedRowIds: "selectedRowIds", customCellComponents: "customCellComponents" }, outputs: { rowSelect: "rowSelect", sortBy: "sortBy", linkClick: "linkClick", inputChange: "inputChange" }, queries: [{ propertyName: "paginationComponent", first: true, predicate: PaginationComponent, descendants: true }, { propertyName: "bulkActions", first: true, predicate: TableBulkActionsComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<table impdcTable *ngIf=\"tableData\" [striped]=\"striped\">\n <thead>\n <tr *ngIf=\"!!bulkActions\">\n <th [attr.colspan]=\"tableSpan\" scope=\"col\" class=\"bulk-action-column\">\n <ng-content select=\"impdc-table-bulk-actions\"></ng-content>\n <ng-content select=\"[impdcTableBulkActions]\"></ng-content>\n </th>\n </tr>\n <tr>\n <th\n *ngIf=\"canSelectRows\"\n scope=\"col\"\n [ngClass]=\"{\n 'heading-below-bulk-actions': !!bulkActions\n }\">\n <div *ngIf=\"canSelectAllRows\">\n <impdc-checkbox\n ngModel\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n (change)=\"handleSelectAll($event)\"></impdc-checkbox>\n </div>\n </th>\n <th\n scope=\"col\"\n *ngFor=\"let columnDef of columnDefs; index as columnIndex\"\n [ngClass]=\"{\n 'sorted-column': isSortedColumn(columnIndex),\n 'sortable-column': columnDef.sorted,\n 'heading-below-bulk-actions': !!bulkActions\n }\"\n (click)=\"handleSort(columnIndex)\">\n <impdc-column-heading\n [isSortable]=\"columnDef.sorted || false\"\n [columnIndex]=\"columnIndex\"\n [sortColumnIndex]=\"sortColumnIndex\"\n [direction]=\"sortDirection\"\n [text]=\"columnDef.title\"\n (sort)=\"handleSort($event)\">\n </impdc-column-heading>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngIf=\"loading; else data\">\n <td [attr.colspan]=\"tableSpan\" class=\"data-loading\">\n <impdc-spinner></impdc-spinner>\n </td>\n </tr>\n <ng-template #data>\n <tr *ngIf=\"tableData.length === 0\">\n <td [attr.colspan]=\"tableSpan\" class=\"no-data\">\n <ng-content select=\"[noData]\"></ng-content>\n </td>\n </tr>\n <tr *ngFor=\"let row of tableData; index as rowIndex\">\n <td *ngIf=\"canSelectRows\">\n <div class=\"select-column\">\n <impdc-checkbox\n [ngModel]=\"isRowSelected(row.id)\"\n (change)=\"handleRowSelect($event, row.id)\"></impdc-checkbox>\n </div>\n </td>\n <td\n *ngFor=\"let columnDef of columnDefs; index as colIndex\"\n [ngClass]=\"{\n 'col-no-padding': !!columnDef.noPadding\n }\">\n <div [ngSwitch]=\"columnDef.columnType\">\n <span *ngSwitchCase=\"cellType.Badge\">\n <impdc-badge\n [text]=\"getStringValue(colIndex, row)\"\n [theme]=\"getTheme(columnDef, row)\">\n </impdc-badge>\n </span>\n <span\n *ngSwitchCase=\"cellType.Link\"\n class=\"cell-type-link\"\n (click)=\"handleLinkClick(colIndex, row)\">\n <a *ngIf=\"!branded\">\n {{ getValue(colIndex, row) }}\n </a>\n <a *ngIf=\"branded\" impdcBranded>\n {{ getValue(colIndex, row) }}\n </a>\n </span>\n <span *ngSwitchCase=\"cellType.Url\" class=\"cell-type-link\">\n <a\n *ngIf=\"!branded\"\n target=\"_blank\"\n [attr.href]=\"getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n <a\n *ngIf=\"branded\"\n impdcBranded\n target=\"_blank\"\n [attr.href]=\"getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n </span>\n <span *ngSwitchCase=\"cellType.Email\" class=\"cell-type-link\">\n <a\n *ngIf=\"!branded\"\n target=\"_blank\"\n [attr.href]=\"'mailto:' + getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n <a\n *ngIf=\"branded\"\n impdcBranded\n [attr.href]=\"getMailToValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n </span>\n <span *ngSwitchCase=\"cellType.Input\">\n <input\n impdcInput\n type=\"text\"\n class=\"{{ getCellColor(columnDef, row) }}\"\n [ngModel]=\"getValue(colIndex, row)\"\n (ngModelChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event)\n \" />\n </span>\n <span *ngSwitchCase=\"cellType.Boolean\">\n <span\n *ngIf=\"columnDef.disabled && getValue(colIndex, row) === 'true'\"\n impdc-icon\n name=\"check\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n <impdc-checkbox\n *ngIf=\"!columnDef.disabled\"\n [checked]=\"getValue(colIndex, row) === 'true'\"\n [isSwitch]=\"true\"\n (change)=\"\n handleCellValueChange(colIndex, rowIndex, $event.checked)\n \"></impdc-checkbox>\n </span>\n <span *ngSwitchCase=\"cellType.SingleSelect\">\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \">\n <impdc-select-option\n *ngIf=\"selectPlaceholder\"\n value\n [label]=\"selectPlaceholder\">\n </impdc-select-option>\n <impdc-select-option\n *ngFor=\"let value of columnDef.values || []\"\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n </impdc-select>\n </span>\n <span *ngSwitchCase=\"cellType.MultiSelect\">\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n multiple=\"true\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \">\n <impdc-select-option\n *ngFor=\"let value of columnDef.values || []\"\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n </impdc-select>\n </span>\n <span\n *ngSwitchCase=\"cellType.CellRender\"\n class=\"{{ getCellColor(columnDef, row) }}\">\n <ng-template\n impdcTableInjectComponent\n [columnDef]=\"columnDef\"\n [rowItem]=\"row\"\n [customCellComponents]=\"customCellComponents || {}\"\n [value]=\"getRawValue(colIndex, row)\"></ng-template>\n </span>\n <span *ngSwitchCase=\"cellType.Icon\">\n <span\n impdc-icon\n [name]=\"columnDef.iconName\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n </span>\n <span *ngSwitchDefault class=\"{{ getCellColor(columnDef, row) }}\">\n {{ getValue(colIndex, row) }}\n </span>\n </div>\n </td>\n </tr>\n </ng-template>\n </tbody>\n <tfoot>\n <tr *ngIf=\"paginationComponent\">\n <td [attr.colspan]=\"tableSpan\">\n <ng-content\n select=\"impdc-pagination, div[impdc-pagination]\"></ng-content>\n </td>\n </tr>\n </tfoot>\n</table>\n", styles: [".bulk-action-container{display:flex;flex-direction:row;border:1px solid var(--impd-color-gray-200);border-top-left-radius:.6rem;border-top-right-radius:.6rem;border-bottom:0px}.bulk-action-container .bulk-action-checkbox{padding:1.6rem 2rem}.bulk-action-container .bulk-actions{display:flex;flex-direction:row;gap:.4rem}.col-no-padding{padding:0!important}.data-loading{height:var(--impd-size-80);vertical-align:middle;text-align:center}.no-data{vertical-align:middle;text-align:center}.select-row{display:flex;height:var(--impd-size-4);align-items:center;justify-items:end;border-radius:var(--impd-border-radius-default)}.heading-with-checkbox{padding-left:5px;padding-right:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.BrandedDirective, selector: "[impdcBranded]" }, { kind: "component", type: i4.IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }, { kind: "component", type: i5.CheckboxComponent, selector: "impdc-checkbox", inputs: ["tabIndex", "id", "label", "description", "isSwitch", "switchIcons", "inline", "checked", "indeterminate", "disabled", "errorStateMatcher", "required"], outputs: ["change", "indeterminateChange"], exportAs: ["impdcCheckControl"] }, { kind: "component", type: i6.SelectOptionComponent, selector: "impdc-select-option", inputs: ["value", "label", "id", "disabled"], outputs: ["onSelectionChange"] }, { kind: "component", type: i7.SelectComponent, selector: "impdc-select", inputs: ["disabled", "tabIndex", "placeholder", "required", "multiple", "compareWith", "errorStateMatcher", "value", "id"], outputs: ["selectionChange", "valueChange"], exportAs: ["impdcSelect"] }, { kind: "directive", type: i8.InputDirective, selector: "input[impdcInput], textarea[impdcInput], select[impdcNativeSelect]", inputs: ["disabled", "id", "type", "required", "readonly", "errorStateMatcher", "value"], exportAs: ["impdcInput"] }, { kind: "directive", type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i10.SpinnerComponent, selector: "impdc-spinner, div[impdc-spinner]", inputs: ["accessibilityText"] }, { kind: "component", type: i11.BadgeComponent, selector: "impdc-badge, [impdc-badge]", inputs: ["text", "icon", "theme", "size", "hideBg", "rounded", "dismissable"], outputs: ["dismiss"] }, { kind: "directive", type: i12.TableDirective, selector: "table[impdcTable]", inputs: ["striped"] }, { kind: "component", type: i13.ColumnHeadingComponent, selector: "impdc-column-heading", inputs: ["isSortable", "columnIndex", "sortColumnIndex", "direction", "text"], outputs: ["sort"] }, { kind: "directive", type: i14.TableInjectComponentDirective, selector: "[impdcTableInjectComponent]", inputs: ["columnDef", "value", "rowItem", "customCellComponents"] }] });
|
|
342
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TableComponent, decorators: [{
|
|
343
|
-
type: Component,
|
|
344
|
-
args: [{ selector: 'impdc-table', template: "<table impdcTable *ngIf=\"tableData\" [striped]=\"striped\">\n <thead>\n <tr *ngIf=\"!!bulkActions\">\n <th [attr.colspan]=\"tableSpan\" scope=\"col\" class=\"bulk-action-column\">\n <ng-content select=\"impdc-table-bulk-actions\"></ng-content>\n <ng-content select=\"[impdcTableBulkActions]\"></ng-content>\n </th>\n </tr>\n <tr>\n <th\n *ngIf=\"canSelectRows\"\n scope=\"col\"\n [ngClass]=\"{\n 'heading-below-bulk-actions': !!bulkActions\n }\">\n <div *ngIf=\"canSelectAllRows\">\n <impdc-checkbox\n ngModel\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n (change)=\"handleSelectAll($event)\"></impdc-checkbox>\n </div>\n </th>\n <th\n scope=\"col\"\n *ngFor=\"let columnDef of columnDefs; index as columnIndex\"\n [ngClass]=\"{\n 'sorted-column': isSortedColumn(columnIndex),\n 'sortable-column': columnDef.sorted,\n 'heading-below-bulk-actions': !!bulkActions\n }\"\n (click)=\"handleSort(columnIndex)\">\n <impdc-column-heading\n [isSortable]=\"columnDef.sorted || false\"\n [columnIndex]=\"columnIndex\"\n [sortColumnIndex]=\"sortColumnIndex\"\n [direction]=\"sortDirection\"\n [text]=\"columnDef.title\"\n (sort)=\"handleSort($event)\">\n </impdc-column-heading>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngIf=\"loading; else data\">\n <td [attr.colspan]=\"tableSpan\" class=\"data-loading\">\n <impdc-spinner></impdc-spinner>\n </td>\n </tr>\n <ng-template #data>\n <tr *ngIf=\"tableData.length === 0\">\n <td [attr.colspan]=\"tableSpan\" class=\"no-data\">\n <ng-content select=\"[noData]\"></ng-content>\n </td>\n </tr>\n <tr *ngFor=\"let row of tableData; index as rowIndex\">\n <td *ngIf=\"canSelectRows\">\n <div class=\"select-column\">\n <impdc-checkbox\n [ngModel]=\"isRowSelected(row.id)\"\n (change)=\"handleRowSelect($event, row.id)\"></impdc-checkbox>\n </div>\n </td>\n <td\n *ngFor=\"let columnDef of columnDefs; index as colIndex\"\n [ngClass]=\"{\n 'col-no-padding': !!columnDef.noPadding\n }\">\n <div [ngSwitch]=\"columnDef.columnType\">\n <span *ngSwitchCase=\"cellType.Badge\">\n <impdc-badge\n [text]=\"getStringValue(colIndex, row)\"\n [theme]=\"getTheme(columnDef, row)\">\n </impdc-badge>\n </span>\n <span\n *ngSwitchCase=\"cellType.Link\"\n class=\"cell-type-link\"\n (click)=\"handleLinkClick(colIndex, row)\">\n <a *ngIf=\"!branded\">\n {{ getValue(colIndex, row) }}\n </a>\n <a *ngIf=\"branded\" impdcBranded>\n {{ getValue(colIndex, row) }}\n </a>\n </span>\n <span *ngSwitchCase=\"cellType.Url\" class=\"cell-type-link\">\n <a\n *ngIf=\"!branded\"\n target=\"_blank\"\n [attr.href]=\"getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n <a\n *ngIf=\"branded\"\n impdcBranded\n target=\"_blank\"\n [attr.href]=\"getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n </span>\n <span *ngSwitchCase=\"cellType.Email\" class=\"cell-type-link\">\n <a\n *ngIf=\"!branded\"\n target=\"_blank\"\n [attr.href]=\"'mailto:' + getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n <a\n *ngIf=\"branded\"\n impdcBranded\n [attr.href]=\"getMailToValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n </span>\n <span *ngSwitchCase=\"cellType.Input\">\n <input\n impdcInput\n type=\"text\"\n class=\"{{ getCellColor(columnDef, row) }}\"\n [ngModel]=\"getValue(colIndex, row)\"\n (ngModelChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event)\n \" />\n </span>\n <span *ngSwitchCase=\"cellType.Boolean\">\n <span\n *ngIf=\"columnDef.disabled && getValue(colIndex, row) === 'true'\"\n impdc-icon\n name=\"check\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n <impdc-checkbox\n *ngIf=\"!columnDef.disabled\"\n [checked]=\"getValue(colIndex, row) === 'true'\"\n [isSwitch]=\"true\"\n (change)=\"\n handleCellValueChange(colIndex, rowIndex, $event.checked)\n \"></impdc-checkbox>\n </span>\n <span *ngSwitchCase=\"cellType.SingleSelect\">\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \">\n <impdc-select-option\n *ngIf=\"selectPlaceholder\"\n value\n [label]=\"selectPlaceholder\">\n </impdc-select-option>\n <impdc-select-option\n *ngFor=\"let value of columnDef.values || []\"\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n </impdc-select>\n </span>\n <span *ngSwitchCase=\"cellType.MultiSelect\">\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n multiple=\"true\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \">\n <impdc-select-option\n *ngFor=\"let value of columnDef.values || []\"\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n </impdc-select>\n </span>\n <span\n *ngSwitchCase=\"cellType.CellRender\"\n class=\"{{ getCellColor(columnDef, row) }}\">\n <ng-template\n impdcTableInjectComponent\n [columnDef]=\"columnDef\"\n [rowItem]=\"row\"\n [customCellComponents]=\"customCellComponents || {}\"\n [value]=\"getRawValue(colIndex, row)\"></ng-template>\n </span>\n <span *ngSwitchCase=\"cellType.Icon\">\n <span\n impdc-icon\n [name]=\"columnDef.iconName\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n </span>\n <span *ngSwitchDefault class=\"{{ getCellColor(columnDef, row) }}\">\n {{ getValue(colIndex, row) }}\n </span>\n </div>\n </td>\n </tr>\n </ng-template>\n </tbody>\n <tfoot>\n <tr *ngIf=\"paginationComponent\">\n <td [attr.colspan]=\"tableSpan\">\n <ng-content\n select=\"impdc-pagination, div[impdc-pagination]\"></ng-content>\n </td>\n </tr>\n </tfoot>\n</table>\n", styles: [".bulk-action-container{display:flex;flex-direction:row;border:1px solid var(--impd-color-gray-200);border-top-left-radius:.6rem;border-top-right-radius:.6rem;border-bottom:0px}.bulk-action-container .bulk-action-checkbox{padding:1.6rem 2rem}.bulk-action-container .bulk-actions{display:flex;flex-direction:row;gap:.4rem}.col-no-padding{padding:0!important}.data-loading{height:var(--impd-size-80);vertical-align:middle;text-align:center}.no-data{vertical-align:middle;text-align:center}.select-row{display:flex;height:var(--impd-size-4);align-items:center;justify-items:end;border-radius:var(--impd-border-radius-default)}.heading-with-checkbox{padding-left:5px;padding-right:10px}\n"] }]
|
|
345
|
-
}], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i1.PercentPipe }, { type: i1.DecimalPipe }, { type: i0.ChangeDetectorRef }, { type: i2.BrandedDirective, decorators: [{
|
|
346
|
-
type: Optional
|
|
347
|
-
}, {
|
|
348
|
-
type: Host
|
|
349
|
-
}] }]; }, propDecorators: { loading: [{
|
|
350
|
-
type: Input
|
|
351
|
-
}], columnDefs: [{
|
|
352
|
-
type: Input
|
|
353
|
-
}], striped: [{
|
|
354
|
-
type: Input
|
|
355
|
-
}], canSelectRows: [{
|
|
356
|
-
type: Input
|
|
357
|
-
}], canSelectAllRows: [{
|
|
358
|
-
type: Input
|
|
359
|
-
}], selectPlaceholder: [{
|
|
360
|
-
type: Input
|
|
361
|
-
}], sortColumnIndex: [{
|
|
362
|
-
type: Input
|
|
363
|
-
}], sortDirection: [{
|
|
364
|
-
type: Input
|
|
365
|
-
}], tableData: [{
|
|
366
|
-
type: Input
|
|
367
|
-
}], selectedRowIds: [{
|
|
368
|
-
type: Input
|
|
369
|
-
}], customCellComponents: [{
|
|
370
|
-
type: Input
|
|
371
|
-
}], rowSelect: [{
|
|
372
|
-
type: Output
|
|
373
|
-
}], sortBy: [{
|
|
374
|
-
type: Output
|
|
375
|
-
}], linkClick: [{
|
|
376
|
-
type: Output
|
|
377
|
-
}], paginationComponent: [{
|
|
378
|
-
type: ContentChild,
|
|
379
|
-
args: [PaginationComponent]
|
|
380
|
-
}], bulkActions: [{
|
|
381
|
-
type: ContentChild,
|
|
382
|
-
args: [TableBulkActionsComponent]
|
|
383
|
-
}], inputChange: [{
|
|
384
|
-
type: Output
|
|
385
|
-
}] } });
|
|
386
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi90YWJsZS9jb250YWluZXJzL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvdGFibGUvY29udGFpbmVycy90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osSUFBSSxFQUNKLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxHQUFHLElBQUksY0FBYyxFQUFFLEdBQUcsSUFBSSxjQUFjLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFXeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUQ7OztHQUdHO0FBTUgsTUFBTSxPQUFPLGNBQWM7SUEwSXpCLFlBQ21CLFNBQW1CLEVBQ25CLFlBQXlCLEVBQ3pCLFlBQXlCLEVBQ3pCLGtCQUFxQyxFQUMxQixRQUEwQjtRQUpyQyxjQUFTLEdBQVQs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Z0JBS2MsYUFBYTtzQkFBaEMsS0FBSztnQkFXSyxnQkFBZ0I7c0JBRDFCLEtBQUs7Z0JBWVUsaUJBQWlCO3NCQUFoQyxLQUFLO2dCQUtVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBS1UsYUFBYTtzQkFBNUIsS0FBSztnQkFLVSxTQUFTO3NCQUF4QixLQUFLO2dCQU1LLGNBQWM7c0JBRHhCLEtBQUs7Z0JBWVUsb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUtvQixTQUFTO3NCQUFsQyxNQUFNO2dCQUttQixNQUFNO3NCQUEvQixNQUFNO2dCQUttQixTQUFTO3NCQUFsQyxNQUFNO2dCQUlBLG1CQUFtQjtzQkFEekIsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBSzFCLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMseUJBQXlCO2dCQU9iLFdBQVc7c0JBQXBDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSwgRGVjaW1hbFBpcGUsIFBlcmNlbnRQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IGFzIGdldE5lc3RlZFZhbHVlLCBzZXQgYXMgc2V0TmVzdGVkVmFsdWUgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBERUJPVU5DRV9USU1FLCBTT1JUX0NPTFVNTl9JTkRFWCB9IGZyb20gJy4uL2NvbnN0YW50cy9pbmRleCc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtblR5cGUgfSBmcm9tICcuLi9lbnVtZXJhdGlvbnMvaW5kZXgnO1xuaW1wb3J0IHtcbiAgSUN1c3RvbUNlbGxSZW5kZXJlckNvbXBvbmVudHMsXG4gIElTb3J0QnlQYXlsb2FkLFxuICBJVGFibGVDb2x1bW5EZWYsXG4gIElUYWJsZUV2ZW50UGF5bG9hZCxcbiAgSVRhYmxlUm93SXRlbSxcbiAgSVRhYmxlUm93SXRlbVZhbHVlLFxuICBJVGFibGVSb3dJdGVtVmFsdWVUeXBlc1xufSBmcm9tICcuLi9pbnRlcmZhY2VzL2luZGV4JztcbmltcG9ydCB7IENoZWNrYm94Q2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9mb3JtLWZpZWxkJztcbmltcG9ydCB7IFRhYmxlVGhlbWVIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB7IENvbXBvbmVudFRoZW1lIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQnJhbmRlZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2JyYW5kaW5nJztcbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9wYWdpbmF0aW9uJztcbmltcG9ydCB7IFRhYmxlQnVsa0FjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzJztcblxuLyoqXG4gKiBUaGUgYFRhYmxlQ29tcG9uZW50YCAoYDxpbXBkYy10YWJsZWApIGlzIGEgZGF0YSB0YWJsZSBjb21wb25lbnQuXG4gKiBUbyB1c2UsIGltcG9ydCBgVGFibGVNb2R1bGVgIGZyb20gYEBpbXBhcnRuZXIvZGVzaWduLWNvbXBvbmVudHNgLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbXBkYy10YWJsZScsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgdGFibGUgZGF0YSBpcyBjdXJyZW50bHkgYmVpbmcgbG9hZGVkLiBUaGUgYDxpbXBkYy1zcGlubmVyPmAgd2lsbCBzaG93IGlmIGRhdGEgaXMgbG9hZGluZy5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSB2aXNpYmxlIGNvbHVtbnMgb2YgdGhlIHRhYmxlLiAgRWFjaCBgSVRhYmxlQ29sdW1uRGVmYCBkZWZpbmVzIHByb3BlcnRpZXMgcmVnYXJkaW5nIHRoZSBkaXNwbGF5LCBmb3JtYXR0aW5nIGFuZCBpbnRlcmFjdGlvbiBvZiB0aGUgY29sdW1uJ3MgY2VsbHMuXG4gICAqIENvbHVtbi9jZWxsIGNvbG9yIHByZWNlZGVuY2UgaXM6XG4gICAqIDEpIGBmaWVsZENvbG9yYCAtIGFsbG93cyBhbiBgSVRhYmxlQ29sdW1uRGVmYCB0byBkZWxlZ2F0ZSB0aGUgcmVzcG9uc2liaWxpdHkgb2YgY2VsbCBjb2xvciB0byBhbiBgSVRhYmxlUm93SXRlbWAgcHJvcGVydHkuXG4gICAqIDIpIGBjb2xvckdldHRlcmAtIGFsbG93cyBhbiBgSVRhYmxlQ29sdW1uRGVmYCB0byBkZWxlZ2F0ZSB0aGUgcmVzcG9uc2liaWxpdHkgb2YgY2VsbCBjb2xvciB0byBhIGZ1bmN0aW9uIG9mIHRoZSBgSVRhYmxlUm93SXRlbWAgZGV0ZXJtaW5lZCBieSB0aGUgZGV2ZWxvcGVyLlxuICAgKiAzKSBgY29sb3JgIC0gYSBwcm9wZXJ0eSBvZiBhbiBgSVRhYmxlQ29sdW1uRGVmYC5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBjb2x1bW5EZWZzOiBJVGFibGVDb2x1bW5EZWZbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB0YWJsZSBpcyBzdHJpcGVkLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHN0cmlwZWQgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGluZGl2aWR1YWwgcm93cyBjYW4gYmUgc2VsZWN0ZWQuIFdpbGwgYmUgYHRydWVgIGlmIGV4cGxpY2l0bHkgc2V0IHRvIGB0cnVlYCBvciBgY2FuU2VsZWN0QWxsUm93c2AgaXMgYHRydWVgLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNldCBjYW5TZWxlY3RSb3dzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2FuU2VsZWN0Um93cyA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgY2FuU2VsZWN0Um93cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYW5TZWxlY3RBbGxSb3dzIHx8IHRoaXMuX2NhblNlbGVjdFJvd3MgfHwgISF0aGlzLmJ1bGtBY3Rpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYWxsIHJvd3MgY2FuIGJlIHNlbGVjdGVkIGF0IG9uY2UuIFdpbGwgYmUgYHRydWVgIGlmIGV4cGxpY2l0bHkgc2V0IHRvIGB0cnVlYCBvciBpZiBgVGFibGVCdWxrQWN0aW9uc0NvbXBvbmVudGAgaXMgY29udGVudCBwcm9qZWN0ZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNhblNlbGVjdEFsbFJvd3ModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jYW5TZWxlY3RBbGxSb3dzID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNhblNlbGVjdEFsbFJvd3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2NhblNlbGVjdEFsbFJvd3MgfHwgISF0aGlzLmJ1bGtBY3Rpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwbGFjZWhvbGRlciB0ZXh0IGFuZCBlbXB0eSB2YWx1ZSBkaXNwbGF5IHRleHQgZm9yIGA8aW1wZGMtc2VsZWN0PmAgaW5zdGFuY2VzIGluIGNlbGxzIHdpdGggYSBgSVRhYmxlQ29sdW1uRGVmYCBgY29sdW1uVHlwZWAgPSBgU2luZ2xlU2VsZWN0YCBvciBgTXVsdGlTZWxlY3RgLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNlbGVjdFBsYWNlaG9sZGVyID0gJyc7XG5cbiAgLyoqXG4gICAqIFRoZSBgY29sdW1uRGVmc2AgaW5kZXggb2YgdGhlIGN1cnJlbnRseSBzb3J0ZWQgY29sdW1uLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNvcnRDb2x1bW5JbmRleCA9IFNPUlRfQ09MVU1OX0lOREVYO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0aW9uIG9mIHRoZSBjdXJyZW50bHkgc29ydGVkIGNvbHVtbi5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzb3J0RGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyA9ICdhc2MnO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGUgcm93IGRhdGEgYXMgYW4gYXJyYXkgb2YgYElUYWJsZVJvd0l0ZW1gLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHRhYmxlRGF0YTogSVRhYmxlUm93SXRlbVtdID0gW107XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIGN1cnJlbnRseSBzZWxlY3RlZCBJRHMgZnJvbSB0aGUgYHRhYmxlRGF0YWAgaW5wdXQuICBBcnJheSBtdXN0IGJlIG9mIHR5cGUgYChzdHJpbmcgfCBudW1iZXIpW11gLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RlZFJvd0lkcyh2YWx1ZTogKHN0cmluZyB8IG51bWJlcilbXSkge1xuICAgIHRoaXMuX3NlbGVjdGVkUm93SWRzID0gWy4uLnZhbHVlXTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkUm93SWRzKCk6IChzdHJpbmcgfCBudW1iZXIpW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5fc2VsZWN0ZWRSb3dJZHNdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpc3RlcmVkIGN1c3RvbSBjZWxsIHJlbmRlcmVyIGNvbXBvbmVudHMgYXZhaWxhYmxlIHRvIGJlIHVzZWQgaW4gdGhlIHRhYmxlIGluc3RhbmNlLlxuICAgKiBGb3IgYSBnaXZlbiBgSVRhYmxlQ29sdW1uRGVmYCBpbiB0aGUgYGNvbHVtbkRlZnNgIGlucHV0LCB0aGUgYGNlbGxSZW5kZXJlckNvbXBvbmVudGAgcHJvcGVydHkgc2hvdWxkIGJlIHNldCB0byB0aGUga2V5IG9mIHRoZSByZWdpc3RlcmVkIGNvbXBvbmVudCBpbiB0aGlzIGlucHV0LlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNlbGxDb21wb25lbnRzPzogSUN1c3RvbUNlbGxSZW5kZXJlckNvbXBvbmVudHM7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBvbmUgb3IgbXVsdGlwbGUgcm93cyBhcmUgc2VsZWN0ZWQuIEVtaXRzIGAoc3RyaW5nIHwgbnVtYmVyKVtdYCBwYXlsb2FkLlxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSByb3dTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPChzdHJpbmcgfCBudW1iZXIpW10+KCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIGNvbHVtbiBpcyBzb3J0ZWQuIEVtaXRzIGBJU29ydEJ5UGF5bG9hZGAgcGF5bG9hZC5cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgc29ydEJ5ID0gbmV3IEV2ZW50RW1pdHRlcjxJU29ydEJ5UGF5bG9hZD4oKTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgcm93IGxpbmsgaXMgY2xpY2tlZC4gRW1pdHMgYElUYWJsZUV2ZW50UGF5bG9hZGAgcGF5bG9hZC5cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgbGlua0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxJVGFibGVFdmVudFBheWxvYWQ+KCk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQENvbnRlbnRDaGlsZChQYWdpbmF0aW9uQ29tcG9uZW50KVxuICBwdWJsaWMgcGFnaW5hdGlvbkNvbXBvbmVudD86IFBhZ2luYXRpb25Db21wb25lbnQgPSB1bmRlZmluZWQ7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQENvbnRlbnRDaGlsZChUYWJsZUJ1bGtBY3Rpb25zQ29tcG9uZW50KVxuICBwdWJsaWMgYnVsa0FjdGlvbnM/OiBUYWJsZUJ1bGtBY3Rpb25zQ29tcG9uZW50ID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSByb3cgaW5wdXQgdmFsdWUgaXMgY2hhbmdlZC4gRW1pdHRlZCBjZWxscyBvZiBgY29sdW1uVHlwZWAgYFNpbmdsU2VsZWN0YCwgYE11bHRpU2VsZWN0YCwgYElucHV0YCwgYEJvb2xlYW5gIG9yIGBJY29uYC5cbiAgICogTm90IGVtaXR0ZWQgaWYgY29sdW1uIGRlZmluaXRpb24gcHJvcGVydHkgYGRpc2FibGVkYCA9IGB0cnVlYC4gRW1pdHMgYElUYWJsZUV2ZW50UGF5bG9hZGAgcGF5bG9hZC5cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgaW5wdXRDaGFuZ2UgPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8SVRhYmxlRXZlbnRQYXlsb2FkPigpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBjZWxsVHlwZSA9IFRhYmxlQ29sdW1uVHlwZTtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIGFsbFNlbGVjdGVkID0gdHJ1ZTtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIGdldCBzb21lU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5fc2VsZWN0ZWRSb3dJZHMgJiZcbiAgICAgIHRoaXMuX3NlbGVjdGVkUm93SWRzLmxlbmd0aCA+IDAgJiZcbiAgICAgICEhdGhpcy50YWJsZURhdGEgJiZcbiAgICAgIHRoaXMudGFibGVEYXRhLmxlbmd0aCA+IDAgJiZcbiAgICAgIHRoaXMuX3NlbGVjdGVkUm93SWRzLmxlbmd0aCA8IHRoaXMudGFibGVEYXRhLmxlbmd0aFxuICAgICk7XG4gIH1cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJyYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgZ2V0IHRhYmxlU3BhbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNhblNlbGVjdFJvd3NcbiAgICAgID8gdGhpcy5jb2x1bW5EZWZzLmxlbmd0aCArIDFcbiAgICAgIDogdGhpcy5jb2x1bW5EZWZzLmxlbmd0aDtcbiAgfVxuXG4gIHByaXZhdGUgX2NhblNlbGVjdFJvd3MgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY2FuU2VsZWN0QWxsUm93cyA9IGZhbHNlO1xuICBwcml2YXRlIF9zZWxlY3RlZFJvd0lkczogKHN0cmluZyB8IG51bWJlcilbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbnB1dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVRhYmxlRXZlbnRQYXlsb2FkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RhdGVQaXBlOiBEYXRlUGlwZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wZXJjZW50UGlwZTogUGVyY2VudFBpcGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVjbWlhbFBpcGU6IERlY2ltYWxQaXBlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgX2JyYW5kZWQ6IEJyYW5kZWREaXJlY3RpdmVcbiAgKSB7XG4gICAgdGhpcy5icmFuZGVkID0gX2JyYW5kZWQgPyB0cnVlIDogZmFsc2U7XG4gICAgdGhpcy5faW5wdXRDaGFuZ2VcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZShERUJPVU5DRV9USU1FKSlcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5pbnB1dENoYW5nZSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkUm93SWRzJ10gfHwgY2hhbmdlc1sndGFibGVEYXRhJ10pIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMudGFibGVEYXRhIHx8XG4gICAgICAgICF0aGlzLnRhYmxlRGF0YS5sZW5ndGggfHxcbiAgICAgICAgIXRoaXMuc2VsZWN0ZWRSb3dJZHMgfHxcbiAgICAgICAgIXRoaXMuc2VsZWN0ZWRSb3dJZHMubGVuZ3RoXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5hbGxTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hbGxTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRSb3dJZHMubGVuZ3RoID49IHRoaXMudGFibGVEYXRhLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TWFpbFRvVmFsdWUoXG4gICAgY29sdW1uSW5kZXg6IG51bWJlcixcbiAgICBjdXJyZW50Um93OiBJVGFibGVSb3dJdGVtXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgeyBjb2x1bW5UeXBlLCB0cnVuY2F0ZWQ6IHRydW5jYXRlZCB9ID1cbiAgICAgIHRoaXMuX2dldENvbHVtbkRlZkJ5SW5kZXgoY29sdW1uSW5kZXgpO1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuX2dldFZhbHVlKGNvbHVtbkluZGV4LCBjdXJyZW50Um93KTtcblxuICAgIGlmIChjb2x1bW5UeXBlICE9PSBUYWJsZUNvbHVtblR5cGUuRW1haWwpIHtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgICB2YWx1ZSA9IHZhbHVlID8gYG1haWx0bzoke3ZhbHVlfWAgOiB2YWx1ZTtcblxuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldFN0cmluZ1ZhbHVlKFxuICAgIGNvbHVtbkluZGV4OiBudW1iZXIsXG4gICAgY3VycmVudFJvdzogSVRhYmxlUm93SXRlbVxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZShjb2x1bW5JbmRleCwgY3VycmVudFJvdyk7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5qb2luKCc7Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoXG4gICAgY29sdW1uSW5kZXg6IG51bWJlcixcbiAgICBjdXJyZW50Um93OiBJVGFibGVSb3dJdGVtXG4gICk6IHN0cmluZyB8IHN0cmluZ1tdIHtcbiAgICBjb25zdCB7IGNvbHVtblR5cGUsIHRydW5jYXRlZDogdHJ1bmNhdGVkIH0gPVxuICAgICAgdGhpcy5fZ2V0Q29sdW1uRGVmQnlJbmRleChjb2x1bW5JbmRleCk7XG4gICAgbGV0IHZhbHVlID0gdGhpcy5fZ2V0VmFsdWUoY29sdW1uSW5kZXgsIGN1cnJlbnRSb3cpO1xuXG4gICAgc3dpdGNoIChjb2x1bW5UeXBlKSB7XG4gICAgICBjYXNlIFRhYmxlQ29sdW1uVHlwZS5EZWNpbWFsOiB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5fZGVjbWlhbFBpcGUudHJhbnNmb3JtKE51bWJlcih2YWx1ZSkgfHwgMCkgfHwgJyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBUYWJsZUNvbHVtblR5cGUuRGF0ZToge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgIGNvbnN0IHZhbGlkRGF0ZSA9IGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlLmdldFRpbWUoKSk7XG4gICAgICAgIHZhbHVlID0gdmFsaWREYXRlXG4gICAgICAgICAgPyB0aGlzLl9kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgJ01NL2RkL3l5eXknKSB8fCAnJ1xuICAgICAgICAgIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFRhYmxlQ29sdW1uVHlwZS5EYXRlVGltZToge1xuICAgICAgICBjb25zdCBkYXRlVGltZSA9IG5ldyBEYXRlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICBjb25zdCB2YWxpZERhdGVUaW1lID1cbiAgICAgICAgICBkYXRlVGltZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGVUaW1lLmdldFRpbWUoKSk7XG4gICAgICAgIHZhbHVlID0gdmFsaWREYXRlVGltZVxuICAgICAgICAgID8gdGhpcy5fZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGVUaW1lLCAnTU0vZGQveXl5eSBoOm1tOnNzIGEnKSB8fCAnJ1xuICAgICAgICAgIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFRhYmxlQ29sdW1uVHlwZS5MaW5rOiB7XG4gICAgICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKS5yZXBsYWNlKC8oXlxcdys6fF4pXFwvXFwvLywgJycpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgVGFibGVDb2x1bW5UeXBlLlBlcmNlbnRhZ2U6IHtcbiAgICAgICAgdmFsdWUgPSB0aGlzLl9wZXJjZW50UGlwZS50cmFuc2Zvcm0oTnVtYmVyKHZhbHVlKSB8fCAwKSB8fCAnJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFRhYmxlQ29sdW1uVHlwZS5Vcmw6IHtcbiAgICAgICAgaWYgKCEvKGh0dHAocz8pKTpcXC9cXC8vaS50ZXN0KFN0cmluZyh2YWx1ZSkpKSB7XG4gICAgICAgICAgdmFsdWUgPSBgaHR0cHM6Ly8ke3ZhbHVlfWA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFRhYmxlQ29sdW1uVHlwZS5UZXh0OiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIHZhbHVlID0gdmFsdWUuam9pbignOyAnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdHJ1bmNhdGVkKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdHJ1bmNhdGVTdHJpbmcgPSAoc3RyaW5nID0gJycsIG1heExlbmd0aCA9IHRydW5jYXRlZCkgPT5cbiAgICAgICAgICBzdHJpbmcubGVuZ3RoID4gbWF4TGVuZ3RoXG4gICAgICAgICAgICA/IGAke3N0cmluZy5zdWJzdHJpbmcoMCwgbWF4TGVuZ3RoKX3igKZgXG4gICAgICAgICAgICA6IHN0cmluZztcblxuICAgICAgICAhIXRydW5jYXRlZFxuICAgICAgICAgID8gKHZhbHVlID0gdHJ1bmNhdGVTdHJpbmcoU3RyaW5nKHZhbHVlKSwgdHJ1bmNhdGVkKSlcbiAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgVGFibGVDb2x1bW5UeXBlLk11bHRpU2VsZWN0OlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoJzsnKT8ubWFwKHYgPT4gdi50cmltKCkpIHx8IFtdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSYXdWYWx1ZShcbiAgICBjb2x1bW5JbmRleDogbnVtYmVyLFxuICAgIGN1cnJlbnRSb3c6IElUYWJsZVJvd0l0ZW1cbiAgKTogSVRhYmxlUm93SXRlbVZhbHVlVHlwZXM8SVRhYmxlUm93SXRlbVZhbHVlPiB7XG4gICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5fZ2V0Q29sdW1uRGVmQnlJbmRleChjb2x1bW5JbmRleCk7XG5cbiAgICBpZiAoIWZpZWxkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRSb3dbZmllbGRdIHx8ICcnO1xuICB9XG5cbiAgcHVibGljIGdldENlbGxDb2xvcihcbiAgICBjb2x1bW5EZWZpbml0aW9uOiBJVGFibGVDb2x1bW5EZWYsXG4gICAgaXRlbTogSVRhYmxlUm93SXRlbVxuICApOiBzdHJpbmcge1xuICAgIHJldHVybiBUYWJsZVRoZW1lSGVscGVyLmdldENlbGxDb2xvcihjb2x1bW5EZWZpbml0aW9uLCBpdGVtKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUaGVtZShcbiAgICBjb2x1bW5EZWZpbml0aW9uOiBJVGFibGVDb2x1bW5EZWYsXG4gICAgaXRlbTogSVRhYmxlUm93SXRlbVxuICApOiBDb21wb25lbnRUaGVtZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIFRhYmxlVGhlbWVIZWxwZXIuZ2V0VGhlbWUoY29sdW1uRGVmaW5pdGlvbiwgaXRlbSkgfHxcbiAgICAgIENvbXBvbmVudFRoZW1lLlByaW1hcnlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGlzU29ydGVkQ29sdW1uKGNvbHVtbkluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29sdW1uSW5kZXggPT09IHRoaXMuc29ydENvbHVtbkluZGV4O1xuICB9XG5cbiAgcHVibGljIGlzUm93U2VsZWN0ZWQoaWQ6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUm93SWRzLmluY2x1ZGVzKGlkKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTZWxlY3RBbGwoZXZlbnQ6IENoZWNrYm94Q2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2FuU2VsZWN0QWxsUm93cyB8fCAhdGhpcy50YWJsZURhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQuY2hlY2tlZCkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRSb3dJZHMgPSB0aGlzLnRhYmxlRGF0YT8ubWFwKHJvdyA9PiByb3cuaWQpIHx8IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZFJvd0lkcyA9IFtdO1xuICAgIH1cblxuICAgIHRoaXMuX3NlbGVjdGVkUm93SWRzLnNvcnQoKTtcbiAgICB0aGlzLmFsbFNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZFJvd0lkcy5sZW5ndGggPj0gdGhpcy50YWJsZURhdGEubGVuZ3RoO1xuXG4gICAgdGhpcy5yb3dTZWxlY3QuZW1pdCh0aGlzLnNlbGVjdGVkUm93SWRzKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTb3J0KGNvbHVtbkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoY29sdW1uSW5kZXggPT09IHRoaXMuc29ydENvbHVtbkluZGV4KSB7XG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSB0aGlzLnNvcnREaXJlY3Rpb24gPT09ICdhc2MnID8gJ2Rlc2MnIDogJ2FzYyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc29ydENvbHVtbkluZGV4ID0gY29sdW1uSW5kZXg7XG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSAnYXNjJztcbiAgICB9XG5cbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuX2dldENvbHVtbkRlZkJ5SW5kZXgoY29sdW1uSW5kZXgpLmZpZWxkIHx8ICcnO1xuXG4gICAgdGhpcy5zb3J0QnkuZW1pdCh7XG4gICAgICBjb2x1bW5JbmRleCxcbiAgICAgIGZpZWxkLFxuICAgICAgZGlyZWN0aW9uOiB0aGlzLnNvcnREaXJlY3Rpb25cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVSb3dTZWxlY3QoXG4gICAgZXZlbnQ6IENoZWNrYm94Q2hhbmdlRXZlbnQsXG4gICAgcm93SWQ6IG51bWJlciB8IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2FuU2VsZWN0Um93cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5jaGVja2VkICYmICF0aGlzLl9zZWxlY3RlZFJvd0lkcy5pbmNsdWRlcyhyb3dJZCkpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkUm93SWRzLnB1c2gocm93SWQpO1xuICAgIH0gZWxzZSBpZiAoIWV2ZW50LmNoZWNrZWQgJiYgdGhpcy5fc2VsZWN0ZWRSb3dJZHMuaW5jbHVkZXMocm93SWQpKSB7XG4gICAgICBjb25zdCBpZHggPSB0aGlzLl9zZWxlY3RlZFJvd0lkcy5pbmRleE9mKHJvd0lkKTtcbiAgICAgIGlmIChpZHggPiAtMSkge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZFJvd0lkcy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRSb3dJZHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZFJvd0lkcy5zb3J0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5hbGxTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRSb3dJZHMubGVuZ3RoID49IHRoaXMudGFibGVEYXRhLmxlbmd0aDtcbiAgICB0aGlzLnJvd1NlbGVjdC5lbWl0KHRoaXMuc2VsZWN0ZWRSb3dJZHMpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUNlbGxWYWx1ZUNoYW5nZShcbiAgICBjb2x1bW5JbmRleDogbnVtYmVyLFxuICAgIHJvd0luZGV4OiBudW1iZXIsXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBzdHJpbmdbXVxuICApOiB2b2lkIHtcbiAgICBjb25zdCB7IGZpZWxkLCBjb2x1bW5UeXBlIH0gPSB0aGlzLl9nZXRDb2x1bW5EZWZCeUluZGV4KGNvbHVtbkluZGV4KTtcbiAgICBsZXQgY3VycmVudFZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgc3RyaW5nW10gPSB2YWx1ZTtcblxuICAgIGlmIChjb2x1bW5UeXBlICE9PSBUYWJsZUNvbHVtblR5cGUuQm9vbGVhbiAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGN1cnJlbnRWYWx1ZSA9IGlzTmFOKE51bWJlcih2YWx1ZSkpID8gdmFsdWUgOiBOdW1iZXIodmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBpdGVtID0gdGhpcy50YWJsZURhdGFbcm93SW5kZXhdO1xuXG4gICAgc2V0TmVzdGVkVmFsdWUoaXRlbSwgU3RyaW5nKGZpZWxkKSwgY3VycmVudFZhbHVlKTtcblxuICAgIHRoaXMuX2lucHV0Q2hhbmdlLmVtaXQoe1xuICAgICAgY29sdW1uSW5kZXgsXG4gICAgICBpdGVtLFxuICAgICAgdmFsdWU6IGN1cnJlbnRWYWx1ZVxuICAgIH0pO1xuXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUxpbmtDbGljayhjb2x1bW5JbmRleDogbnVtYmVyLCBpdGVtOiBJVGFibGVSb3dJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5saW5rQ2xpY2suZW1pdCh7XG4gICAgICBpdGVtLFxuICAgICAgY29sdW1uSW5kZXhcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldENvbHVtbkRlZkJ5SW5kZXgoY29sdW1uSW5kZXg6IG51bWJlcik6IElUYWJsZUNvbHVtbkRlZiB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uRGVmc1tjb2x1bW5JbmRleF07XG4gIH1cblxuICBwcml2YXRlIF9nZXRWYWx1ZShcbiAgICBjb2x1bW5JbmRleDogbnVtYmVyLFxuICAgIGN1cnJlbnRSb3c6IElUYWJsZVJvd0l0ZW1cbiAgKTogc3RyaW5nIHwgc3RyaW5nW10ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGZpZWxkLCB2YWx1ZUdldHRlciB9ID0gdGhpcy5fZ2V0Q29sdW1uRGVmQnlJbmRleChjb2x1bW5JbmRleCk7XG5cbiAgICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSA9IHZhbHVlR2V0dGVyXG4gICAgICAgID8gdmFsdWVHZXR0ZXIoY3VycmVudFJvdylcbiAgICAgICAgOiAoZ2V0TmVzdGVkVmFsdWUoY3VycmVudFJvdywgU3RyaW5nKGZpZWxkKSwgJycpIGFzIHN0cmluZyB8IHN0cmluZ1tdKTtcblxuICAgICAgcmV0dXJuIHZhbHVlIHx8ICcnO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cbn1cbiIsIjx0YWJsZSBpbXBkY1RhYmxlICpuZ0lmPVwidGFibGVEYXRhXCIgW3N0cmlwZWRdPVwic3RyaXBlZFwiPlxuICA8dGhlYWQ+XG4gICAgPHRyICpuZ0lmPVwiISFidWxrQWN0aW9uc1wiPlxuICAgICAgPHRoIFthdHRyLmNvbHNwYW5dPVwidGFibGVTcGFuXCIgc2NvcGU9XCJjb2xcIiBjbGFzcz1cImJ1bGstYWN0aW9uLWNvbHVtblwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpbXBkYy10YWJsZS1idWxrLWFjdGlvbnNcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpbXBkY1RhYmxlQnVsa0FjdGlvbnNdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC90aD5cbiAgICA8L3RyPlxuICAgIDx0cj5cbiAgICAgIDx0aFxuICAgICAgICAqbmdJZj1cImNhblNlbGVjdFJvd3NcIlxuICAgICAgICBzY29wZT1cImNvbFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnaGVhZGluZy1iZWxvdy1idWxrLWFjdGlvbnMnOiAhIWJ1bGtBY3Rpb25zXG4gICAgICAgIH1cIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNhblNlbGVjdEFsbFJvd3NcIj5cbiAgICAgICAgICA8aW1wZGMtY2hlY2tib3hcbiAgICAgICAgICAgIG5nTW9kZWxcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImFsbFNlbGVjdGVkXCJcbiAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cInNvbWVTZWxlY3RlZFwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZVNlbGVjdEFsbCgkZXZlbnQpXCI+PC9pbXBkYy1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RoPlxuICAgICAgPHRoXG4gICAgICAgIHNjb3BlPVwiY29sXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbkRlZiBvZiBjb2x1bW5EZWZzOyBpbmRleCBhcyBjb2x1bW5JbmRleFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnc29ydGVkLWNvbHVtbic6IGlzU29ydGVkQ29sdW1uKGNvbHVtbkluZGV4KSxcbiAgICAgICAgICAnc29ydGFibGUtY29sdW1uJzogY29sdW1uRGVmLnNvcnRlZCxcbiAgICAgICAgICAnaGVhZGluZy1iZWxvdy1idWxrLWFjdGlvbnMnOiAhIWJ1bGtBY3Rpb25zXG4gICAgICAgIH1cIlxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlU29ydChjb2x1bW5JbmRleClcIj5cbiAgICAgICAgPGltcGRjLWNvbHVtbi1oZWFkaW5nXG4gICAgICAgICAgW2lzU29ydGFibGVdPVwiY29sdW1uRGVmLnNvcnRlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgW2NvbHVtbkluZGV4XT1cImNvbHVtbkluZGV4XCJcbiAgICAgICAgICBbc29ydENvbHVtbkluZGV4XT1cInNvcnRDb2x1bW5JbmRleFwiXG4gICAgICAgICAgW2RpcmVjdGlvbl09XCJzb3J0RGlyZWN0aW9uXCJcbiAgICAgICAgICBbdGV4dF09XCJjb2x1bW5EZWYudGl0bGVcIlxuICAgICAgICAgIChzb3J0KT1cImhhbmRsZVNvcnQoJGV2ZW50KVwiPlxuICAgICAgICA8L2ltcGRjLWNvbHVtbi1oZWFkaW5nPlxuICAgICAgPC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHk+XG4gICAgPHRyICpuZ0lmPVwibG9hZGluZzsgZWxzZSBkYXRhXCI+XG4gICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJ0YWJsZVNwYW5cIiBjbGFzcz1cImRhdGEtbG9hZGluZ1wiPlxuICAgICAgICA8aW1wZGMtc3Bpbm5lcj48L2ltcGRjLXNwaW5uZXI+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gICAgPG5nLXRlbXBsYXRlICNkYXRhPlxuICAgICAgPHRyICpuZ0lmPVwidGFibGVEYXRhLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJ0YWJsZVNwYW5cIiBjbGFzcz1cIm5vLWRhdGFcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbm9EYXRhXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiB0YWJsZURhdGE7IGluZGV4IGFzIHJvd0luZGV4XCI+XG4gICAgICAgIDx0ZCAqbmdJZj1cImNhblNlbGVjdFJvd3NcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWNvbHVtblwiPlxuICAgICAgICAgICAgPGltcGRjLWNoZWNrYm94XG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cImlzUm93U2VsZWN0ZWQocm93LmlkKVwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlUm93U2VsZWN0KCRldmVudCwgcm93LmlkKVwiPjwvaW1wZGMtY2hlY2tib3g+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW5EZWYgb2YgY29sdW1uRGVmczsgaW5kZXggYXMgY29sSW5kZXhcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdjb2wtbm8tcGFkZGluZyc6ICEhY29sdW1uRGVmLm5vUGFkZGluZ1xuICAgICAgICAgIH1cIj5cbiAgICAgICAgICA8ZGl2IFtuZ1N3aXRjaF09XCJjb2x1bW5EZWYuY29sdW1uVHlwZVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cImNlbGxUeXBlLkJhZGdlXCI+XG4gICAgICAgICAgICAgIDxpbXBkYy1iYWRnZVxuICAgICAgICAgICAgICAgIFt0ZXh0XT1cImdldFN0cmluZ1ZhbHVlKGNvbEluZGV4LCByb3cpXCJcbiAgICAgICAgICAgICAgICBbdGhlbWVdPVwiZ2V0VGhlbWUoY29sdW1uRGVmLCByb3cpXCI+XG4gICAgICAgICAgICAgIDwvaW1wZGMtYmFkZ2U+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiY2VsbFR5cGUuTGlua1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2VsbC10eXBlLWxpbmtcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlTGlua0NsaWNrKGNvbEluZGV4LCByb3cpXCI+XG4gICAgICAgICAgICAgIDxhICpuZ0lmPVwiIWJyYW5kZWRcIj5cbiAgICAgICAgICAgICAgICB7eyBnZXRWYWx1ZShjb2xJbmRleCwgcm93KSB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDxhICpuZ0lmPVwiYnJhbmRlZFwiIGltcGRjQnJhbmRlZD5cbiAgICAgICAgICAgICAgICB7eyBnZXRWYWx1ZShjb2xJbmRleCwgcm93KSB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiY2VsbFR5cGUuVXJsXCIgY2xhc3M9XCJjZWxsLXR5cGUtbGlua1wiPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWJyYW5kZWRcIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJnZXRWYWx1ZShjb2xJbmRleCwgcm93KVwiPlxuICAgICAgICAgICAgICAgIHt7IGdldFZhbHVlKGNvbEluZGV4LCByb3cpIH19XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAqbmdJZj1cImJyYW5kZWRcIlxuICAgICAgICAgICAgICAgIGltcGRjQnJhbmRlZFxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJnZXRWYWx1ZShjb2xJbmRleCwgcm93KVwiPlxuICAgICAgICAgICAgICAgIHt7IGdldFZhbHVlKGNvbEluZGV4LCByb3cpIH19XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJjZWxsVHlwZS5FbWFpbFwiIGNsYXNzPVwiY2VsbC10eXBlLWxpbmtcIj5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFicmFuZGVkXCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiJ21haWx0bzonICsgZ2V0VmFsdWUoY29sSW5kZXgsIHJvdylcIj5cbiAgICAgICAgICAgICAgICB7eyBnZXRWYWx1ZShjb2xJbmRleCwgcm93KSB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJicmFuZGVkXCJcbiAgICAgICAgICAgICAgICBpbXBkY0JyYW5kZWRcbiAgICAgICAgICAgICAgICBbYXR0ci5ocmVmXT1cImdldE1haWxUb1ZhbHVlKGNvbEluZGV4LCByb3cpXCI+XG4gICAgICAgICAgICAgICAge3sgZ2V0VmFsdWUoY29sSW5kZXgsIHJvdykgfX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cImNlbGxUeXBlLklucHV0XCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGltcGRjSW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBnZXRDZWxsQ29sb3IoY29sdW1uRGVmLCByb3cpIH19XCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJnZXRWYWx1ZShjb2xJbmRleCwgcm93KVwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICBoYW5kbGVDZWxsVmFsdWVDaGFuZ2UoY29sSW5kZXgsIHJvd0luZGV4LCAkZXZlbnQpXG4gICAgICAgICAgICAgICAgXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJjZWxsVHlwZS5Cb29sZWFuXCI+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW5EZWYuZGlzYWJsZWQgJiYgZ2V0VmFsdWUoY29sSW5kZXgsIHJvdykgPT09ICd0cnVlJ1wiXG4gICAgICAgICAgICAgICAgaW1wZGMtaWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJjaGVja1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBnZXRDZWxsQ29sb3IoY29sdW1uRGVmLCByb3cpIH19XCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8aW1wZGMtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb2x1bW5EZWYuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImdldFZhbHVlKGNvbEluZGV4LCByb3cpID09PSAndHJ1ZSdcIlxuICAgICAgICAgICAgICAgIFtpc1N3aXRjaF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgaGFuZGxlQ2VsbFZhbHVlQ2hhbmdlKGNvbEluZGV4LCByb3dJbmRleCwgJGV2ZW50LmNoZWNrZWQpXG4gICAgICAgICAgICAgICAgXCI+PC9pbXBkYy1jaGVja2JveD5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJjZWxsVHlwZS5TaW5nbGVTZWxlY3RcIj5cbiAgICAgICAgICAgICAgPGltcGRjLXNlbGVjdFxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImdldFZhbHVlKGNvbEluZGV4LCByb3cpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29sdW1uRGVmLmRpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VsZWN0UGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICBoYW5kbGVDZWxsVmFsdWVDaGFuZ2UoY29sSW5kZXgsIHJvd0luZGV4LCAkZXZlbnQudmFsdWUpXG4gICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgPGltcGRjLXNlbGVjdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0UGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzZWxlY3RQbGFjZWhvbGRlclwiPlxuICAgICAgICAgICAgICAgIDwvaW1wZGMtc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICA8aW1wZGMtc2VsZWN0LW9wdGlvblxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIGNvbHVtbkRlZi52YWx1ZXMgfHwgW11cIlxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ2YWx1ZS5sYWJlbFwiPjwvaW1wZGMtc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgPC9pbXBkYy1zZWxlY3Q+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiY2VsbFR5cGUuTXVsdGlTZWxlY3RcIj5cbiAgICAgICAgICAgICAgPGltcGRjLXNlbGVjdFxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImdldFZhbHVlKGNvbEluZGV4LCByb3cpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29sdW1uRGVmLmRpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VsZWN0UGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIG11bHRpcGxlPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJcbiAgICAgICAgICAgICAgICAgIGhhbmRsZUNlbGxWYWx1ZUNoYW5nZShjb2xJbmRleCwgcm93SW5kZXgsICRldmVudC52YWx1ZSlcbiAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICA8aW1wZGMtc2VsZWN0LW9wdGlvblxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIGNvbHVtbkRlZi52YWx1ZXMgfHwgW11cIlxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ2YWx1ZS5sYWJlbFwiPjwvaW1wZGMtc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgPC9pbXBkYy1zZWxlY3Q+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiY2VsbFR5cGUuQ2VsbFJlbmRlclwiXG4gICAgICAgICAgICAgIGNsYXNzPVwie3sgZ2V0Q2VsbENvbG9yKGNvbHVtbkRlZiwgcm93KSB9fVwiPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICBpbXBkY1RhYmxlSW5qZWN0Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgW2NvbHVtbkRlZl09XCJjb2x1bW5EZWZcIlxuICAgICAgICAgICAgICAgIFtyb3dJdGVtXT1cInJvd1wiXG4gICAgICAgICAgICAgICAgW2N1c3RvbUNlbGxDb21wb25lbnRzXT1cImN1c3RvbUNlbGxDb21wb25lbnRzIHx8IHt9XCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ2V0UmF3VmFsdWUoY29sSW5kZXgsIHJvdylcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cImNlbGxUeXBlLkljb25cIj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBpbXBkYy1pY29uXG4gICAgICAgICAgICAgICAgW25hbWVdPVwiY29sdW1uRGVmLmljb25OYW1lXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGdldENlbGxDb2xvcihjb2x1bW5EZWYsIHJvdykgfX1cIj48L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hEZWZhdWx0IGNsYXNzPVwie3sgZ2V0Q2VsbENvbG9yKGNvbHVtbkRlZiwgcm93KSB9fVwiPlxuICAgICAgICAgICAgICB7eyBnZXRWYWx1ZShjb2xJbmRleCwgcm93KSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3Rib2R5PlxuICA8dGZvb3Q+XG4gICAgPHRyICpuZ0lmPVwicGFnaW5hdGlvbkNvbXBvbmVudFwiPlxuICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwidGFibGVTcGFuXCI+XG4gICAgICAgIDxuZy1jb250ZW50XG4gICAgICAgICAgc2VsZWN0PVwiaW1wZGMtcGFnaW5hdGlvbiwgZGl2W2ltcGRjLXBhZ2luYXRpb25dXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rmb290PlxuPC90YWJsZT5cbiJdfQ==
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class TableInjectComponentDirective {
|
|
4
|
-
constructor(_viewContainerRef, _componentFactoryResolver) {
|
|
5
|
-
this._viewContainerRef = _viewContainerRef;
|
|
6
|
-
this._componentFactoryResolver = _componentFactoryResolver;
|
|
7
|
-
this.columnDef = { title: '' };
|
|
8
|
-
this.value = '';
|
|
9
|
-
this.rowItem = { id: 0 };
|
|
10
|
-
this.customCellComponents = {};
|
|
11
|
-
}
|
|
12
|
-
ngOnInit() {
|
|
13
|
-
this._renderCustomCell();
|
|
14
|
-
}
|
|
15
|
-
_renderCustomCell() {
|
|
16
|
-
const { cellRendererComponent, cellRendererParams } = this.columnDef;
|
|
17
|
-
if (!cellRendererComponent) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
const item = this.rowItem;
|
|
21
|
-
const customCellComponent = this.customCellComponents[cellRendererComponent];
|
|
22
|
-
this._viewContainerRef.clear();
|
|
23
|
-
const componentFactory = this._componentFactoryResolver.resolveComponentFactory(customCellComponent);
|
|
24
|
-
const componentRef = this._viewContainerRef.createComponent(componentFactory);
|
|
25
|
-
componentRef.instance.value = this.value;
|
|
26
|
-
componentRef.instance.rowItem = item;
|
|
27
|
-
componentRef.instance.params = cellRendererParams;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
TableInjectComponentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TableInjectComponentDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Directive });
|
|
31
|
-
TableInjectComponentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: TableInjectComponentDirective, selector: "[impdcTableInjectComponent]", inputs: { columnDef: "columnDef", value: "value", rowItem: "rowItem", customCellComponents: "customCellComponents" }, ngImport: i0 });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TableInjectComponentDirective, decorators: [{
|
|
33
|
-
type: Directive,
|
|
34
|
-
args: [{
|
|
35
|
-
selector: '[impdcTableInjectComponent]'
|
|
36
|
-
}]
|
|
37
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }]; }, propDecorators: { columnDef: [{
|
|
38
|
-
type: Input
|
|
39
|
-
}], value: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}], rowItem: [{
|
|
42
|
-
type: Input
|
|
43
|
-
}], customCellComponents: [{
|
|
44
|
-
type: Input
|
|
45
|
-
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaW5qZWN0LWNvbXBvbmVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3RhYmxlL2RpcmVjdGl2ZXMvdGFibGUtaW5qZWN0LWNvbXBvbmVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBR04sTUFBTSxlQUFlLENBQUM7O0FBY3ZCLE1BQU0sT0FBTyw2QkFBNkI7SUFNeEMsWUFDbUIsaUJBQW1DLEVBQ25DLHlCQUFtRDtRQURuRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMEI7UUFQdEQsY0FBUyxHQUFvQixFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUMzQyxVQUFLLEdBQWdELEVBQUUsQ0FBQztRQUN4RCxZQUFPLEdBQWtCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ25DLHlCQUFvQixHQUFrQyxFQUFFLENBQUM7SUFLdEUsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDckUsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzFCLE9BQU87U0FDUjtRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDMUIsTUFBTSxtQkFBbUIsR0FDdkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBRS9CLE1BQU0sZ0JBQWdCLEdBQ3BCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyx1QkFBdUIsQ0FDcEQsbUJBQW1CLENBQ3BCLENBQUM7UUFDSixNQUFNLFlBQVksR0FDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBZ0IsZ0JBQWdCLENBQUMsQ0FBQztRQUUxRSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNyQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQztJQUNwRCxDQUFDOzsySEFyQ1UsNkJBQTZCOytHQUE3Qiw2QkFBNkI7NEZBQTdCLDZCQUE2QjtrQkFIekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO2lCQUN4Qzs4SUFFaUIsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1Usb0JBQW9CO3NCQUFuQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIElDZWxsUmVuZGVyZXIsXG4gIElDdXN0b21DZWxsUmVuZGVyZXJDb21wb25lbnRzLFxuICBJVGFibGVDb2x1bW5EZWYsXG4gIElUYWJsZVJvd0l0ZW0sXG4gIElUYWJsZVJvd0l0ZW1WYWx1ZSxcbiAgSVRhYmxlUm93SXRlbVZhbHVlVHlwZXNcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbmRleCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tpbXBkY1RhYmxlSW5qZWN0Q29tcG9uZW50XSdcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVJbmplY3RDb21wb25lbnREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgY29sdW1uRGVmOiBJVGFibGVDb2x1bW5EZWYgPSB7IHRpdGxlOiAnJyB9O1xuICBASW5wdXQoKSBwdWJsaWMgdmFsdWU6IElUYWJsZVJvd0l0ZW1WYWx1ZVR5cGVzPElUYWJsZVJvd0l0ZW1WYWx1ZT4gPSAnJztcbiAgQElucHV0KCkgcHVibGljIHJvd0l0ZW06IElUYWJsZVJvd0l0ZW0gPSB7IGlkOiAwIH07XG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DZWxsQ29tcG9uZW50czogSUN1c3RvbUNlbGxSZW5kZXJlckNvbXBvbmVudHMgPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVuZGVyQ3VzdG9tQ2VsbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyQ3VzdG9tQ2VsbCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IGNlbGxSZW5kZXJlckNvbXBvbmVudCwgY2VsbFJlbmRlcmVyUGFyYW1zIH0gPSB0aGlzLmNvbHVtbkRlZjtcbiAgICBpZiAoIWNlbGxSZW5kZXJlckNvbXBvbmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnJvd0l0ZW07XG4gICAgY29uc3QgY3VzdG9tQ2VsbENvbXBvbmVudCA9XG4gICAgICB0aGlzLmN1c3RvbUNlbGxDb21wb25lbnRzW2NlbGxSZW5kZXJlckNvbXBvbmVudF07XG5cbiAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID1cbiAgICAgIHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeTxJQ2VsbFJlbmRlcmVyPihcbiAgICAgICAgY3VzdG9tQ2VsbENvbXBvbmVudFxuICAgICAgKTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPVxuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQ8SUNlbGxSZW5kZXJlcj4oY29tcG9uZW50RmFjdG9yeSk7XG5cbiAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UudmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5yb3dJdGVtID0gaXRlbTtcbiAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucGFyYW1zID0gY2VsbFJlbmRlcmVyUGFyYW1zO1xuICB9XG59XG4iXX0=
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './table-column-def.interface';
|
|
2
|
-
export * from './table-event-payload.interface';
|
|
3
|
-
export * from './sort-by-payload.interface';
|
|
4
|
-
export * from './table-row-item.interface';
|
|
5
|
-
export * from './cell-renderer.interface';
|
|
6
|
-
export * from './cell-renderer.interface';
|
|
7
|
-
export * from './custom-cell-renderer-components.type';
|
|
8
|
-
export * from './table-cell-option.interface';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3RhYmxlL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90YWJsZS1jb2x1bW4tZGVmLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWV2ZW50LXBheWxvYWQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc29ydC1ieS1wYXlsb2FkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLXJvdy1pdGVtLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtcmVuZGVyZXIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY2VsbC1yZW5kZXJlci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jdXN0b20tY2VsbC1yZW5kZXJlci1jb21wb25lbnRzLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1jZWxsLW9wdGlvbi5pbnRlcmZhY2UnO1xuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWRlZi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3RhYmxlL2ludGVyZmFjZXMvdGFibGUtY29sdW1uLWRlZi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYmxlQ29sdW1uVHlwZSB9IGZyb20gJy4uL2VudW1lcmF0aW9ucy9pbmRleCc7XG5cbmltcG9ydCB7IENvbXBvbmVudFRoZW1lIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgSVRhYmxlUm93SXRlbSB9IGZyb20gJy4vdGFibGUtcm93LWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IElUYWJsZUNlbGxPcHRpb24gfSBmcm9tICcuL3RhYmxlLWNlbGwtb3B0aW9uLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlQ29sdW1uRGVmPFQgPSBJVGFibGVSb3dJdGVtPiB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGZpZWxkPzogc3RyaW5nO1xuICB2YWx1ZUdldHRlcj86IChyZWNvcmQ6IFQpID0+IHN0cmluZztcbiAgY29sb3I/OiBDb21wb25lbnRUaGVtZTtcbiAgY29sb3JHZXR0ZXI/OiAocmVjb3JkOiBUKSA9PiBDb21wb25lbnRUaGVtZTtcbiAgZmllbGRDb2xvcj86IHN0cmluZztcbiAgY29sdW1uVHlwZT86IFRhYmxlQ29sdW1uVHlwZSB8IHN0cmluZztcbiAgc29ydGVkPzogYm9vbGVhbjtcbiAgYm9sZGVkVGV4dD86IGJvb2xlYW47XG4gIHRydW5jYXRlZD86IG51bWJlcjtcbiAgY2VsbFJlbmRlcmVyQ29tcG9uZW50Pzogc3RyaW5nO1xuICBjZWxsUmVuZGVyZXJQYXJhbXM/OiBvYmplY3Q7XG4gIG5vUGFkZGluZz86IGJvb2xlYW47XG4gIHZhbHVlcz86IElUYWJsZUNlbGxPcHRpb25bXTtcbiAgaWNvbk5hbWU/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cbiJdfQ==
|