@impartner/design-components 3.0.2 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -8
- package/fesm2022/impartner-design-components.mjs +1667 -972
- package/fesm2022/impartner-design-components.mjs.map +1 -1
- package/index.d.ts +3634 -3
- package/package.json +9 -12
- package/constants/fontawesome-icons.d.ts +0 -6
- package/constants/index.d.ts +0 -1
- package/esm2022/constants/fontawesome-icons.mjs +0 -3012
- package/esm2022/constants/index.mjs +0 -2
- package/esm2022/impartner-design-components.mjs +0 -5
- package/esm2022/lib/alert/alert.component.mjs +0 -106
- package/esm2022/lib/alert/alert.module.mjs +0 -19
- package/esm2022/lib/alert/index.mjs +0 -4
- package/esm2022/lib/alert/theme/alert-theme.mjs +0 -2
- package/esm2022/lib/alert/theme/index.mjs +0 -2
- package/esm2022/lib/avatar/avatar.component.mjs +0 -48
- package/esm2022/lib/avatar/avatar.module.mjs +0 -19
- package/esm2022/lib/avatar/index.mjs +0 -3
- package/esm2022/lib/avatar-group/avatar-group.component.mjs +0 -16
- package/esm2022/lib/avatar-group/avatar-group.module.mjs +0 -19
- package/esm2022/lib/avatar-group/index.mjs +0 -3
- package/esm2022/lib/backdrop/backdrop.component.mjs +0 -52
- package/esm2022/lib/backdrop/backdrop.module.mjs +0 -19
- package/esm2022/lib/backdrop/index.mjs +0 -3
- package/esm2022/lib/badge/badge.component.mjs +0 -121
- package/esm2022/lib/badge/badge.module.mjs +0 -20
- package/esm2022/lib/badge/index.mjs +0 -4
- package/esm2022/lib/badge/types/badge-icon.mjs +0 -2
- package/esm2022/lib/badge/types/badge-size.mjs +0 -7
- package/esm2022/lib/badge/types/index.mjs +0 -2
- package/esm2022/lib/branding/branded.directive.mjs +0 -19
- package/esm2022/lib/branding/branding.module.mjs +0 -19
- package/esm2022/lib/branding/index.mjs +0 -3
- package/esm2022/lib/breadcrumb/breadcrumb-item.component.mjs +0 -25
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -37
- package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +0 -19
- package/esm2022/lib/breadcrumb/index.mjs +0 -4
- package/esm2022/lib/button/button.component.mjs +0 -116
- package/esm2022/lib/button/button.module.mjs +0 -21
- package/esm2022/lib/button/index.mjs +0 -4
- package/esm2022/lib/button/themes/button-theme.mjs +0 -2
- package/esm2022/lib/button/themes/index.mjs +0 -2
- package/esm2022/lib/button-group/button-group.component.mjs +0 -52
- package/esm2022/lib/button-group/button-group.module.mjs +0 -20
- package/esm2022/lib/button-group/index.mjs +0 -3
- package/esm2022/lib/card-heading/card-heading.component.mjs +0 -30
- package/esm2022/lib/card-heading/card-heading.module.mjs +0 -19
- package/esm2022/lib/card-heading/index.mjs +0 -3
- package/esm2022/lib/data-card/data-card.component.mjs +0 -123
- package/esm2022/lib/data-card/data-card.module.mjs +0 -21
- package/esm2022/lib/data-card/index.mjs +0 -3
- package/esm2022/lib/datetime-picker/components/datepicker-nav/datepicker-nav.component.mjs +0 -105
- package/esm2022/lib/datetime-picker/components/datepicker-nav/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/components/datepicker-template-host/datepicker-template-host.component.mjs +0 -33
- package/esm2022/lib/datetime-picker/components/datepicker-template-host/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/components/datetime-picker/datetime-picker.component.mjs +0 -369
- package/esm2022/lib/datetime-picker/components/datetime-picker/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/components/datetime-picker-input/datetime-picker-input.component.mjs +0 -367
- package/esm2022/lib/datetime-picker/components/datetime-picker-input/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/components/datetime-picker-input-footer/datetime-picker-input-footer.component.mjs +0 -68
- package/esm2022/lib/datetime-picker/components/datetime-picker-input-footer/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/components/index.mjs +0 -6
- package/esm2022/lib/datetime-picker/constants/datetime-picker-defaults.mjs +0 -12
- package/esm2022/lib/datetime-picker/constants/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/datetime-picker.module.mjs +0 -22
- package/esm2022/lib/datetime-picker/index.mjs +0 -4
- package/esm2022/lib/datetime-picker/services/datetime-formatter/datetime-formatter.service.mjs +0 -40
- package/esm2022/lib/datetime-picker/services/datetime-formatter/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/services/index.mjs +0 -2
- package/esm2022/lib/datetime-picker/types/datetime-picker-value.interface.mjs +0 -2
- package/esm2022/lib/datetime-picker/types/index.mjs +0 -2
- package/esm2022/lib/design-components.module.mjs +0 -132
- package/esm2022/lib/dropdown/components/dropdown-item/dropdown-item.component.mjs +0 -22
- package/esm2022/lib/dropdown/components/index.mjs +0 -2
- package/esm2022/lib/dropdown/dropdown.component.mjs +0 -143
- package/esm2022/lib/dropdown/dropdown.module.mjs +0 -21
- package/esm2022/lib/dropdown/index.mjs +0 -5
- package/esm2022/lib/dropdown/types/dropdown-position.mjs +0 -2
- package/esm2022/lib/dropdown/types/index.mjs +0 -2
- package/esm2022/lib/file-upload/directives/file-drop.directive.mjs +0 -50
- package/esm2022/lib/file-upload/directives/index.mjs +0 -2
- package/esm2022/lib/file-upload/file-upload.component.mjs +0 -335
- package/esm2022/lib/file-upload/file-upload.module.mjs +0 -38
- package/esm2022/lib/file-upload/index.mjs +0 -5
- package/esm2022/lib/file-upload/pipes/human-readable-byte-size.pipe.mjs +0 -23
- package/esm2022/lib/file-upload/pipes/index.mjs +0 -2
- package/esm2022/lib/form-field/component/directives/corner-hint.directive.mjs +0 -15
- package/esm2022/lib/form-field/component/directives/error.directive.mjs +0 -27
- package/esm2022/lib/form-field/component/directives/form-root.directive.mjs +0 -93
- package/esm2022/lib/form-field/component/directives/hint.directive.mjs +0 -25
- package/esm2022/lib/form-field/component/directives/index.mjs +0 -25
- package/esm2022/lib/form-field/component/directives/label.directive.mjs +0 -15
- package/esm2022/lib/form-field/component/directives/prefix.directive.mjs +0 -25
- package/esm2022/lib/form-field/component/directives/suffix.directive.mjs +0 -25
- package/esm2022/lib/form-field/component/form-field.component.mjs +0 -131
- package/esm2022/lib/form-field/component/form-field.module.mjs +0 -24
- package/esm2022/lib/form-field/component/index.mjs +0 -4
- package/esm2022/lib/form-field/controls/checkbox/checkbox.component.mjs +0 -345
- package/esm2022/lib/form-field/controls/checkbox/checkbox.module.mjs +0 -16
- package/esm2022/lib/form-field/controls/checkbox/index.mjs +0 -3
- package/esm2022/lib/form-field/controls/index.mjs +0 -6
- package/esm2022/lib/form-field/controls/input/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/input/input.directive.mjs +0 -234
- package/esm2022/lib/form-field/controls/radio/index.mjs +0 -6
- package/esm2022/lib/form-field/controls/radio/injection-tokens.mjs +0 -4
- package/esm2022/lib/form-field/controls/radio/interfaces/index.mjs +0 -4
- package/esm2022/lib/form-field/controls/radio/interfaces/radio-button.interface.mjs +0 -2
- package/esm2022/lib/form-field/controls/radio/interfaces/radio-change-event.interface.mjs +0 -11
- package/esm2022/lib/form-field/controls/radio/interfaces/radio-group.interface.mjs +0 -2
- package/esm2022/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +0 -262
- package/esm2022/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +0 -290
- package/esm2022/lib/form-field/controls/radio/radio.module.mjs +0 -17
- package/esm2022/lib/form-field/controls/select/index.mjs +0 -9
- package/esm2022/lib/form-field/controls/select/interfaces/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/select/interfaces/select-option.interface.mjs +0 -2
- package/esm2022/lib/form-field/controls/select/option/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/select/option/select-option.component.mjs +0 -44
- package/esm2022/lib/form-field/controls/select/option-display/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/select/option-display/select-option-display.component.mjs +0 -162
- package/esm2022/lib/form-field/controls/select/option-group/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/select/option-group/select-option-group.component.mjs +0 -35
- package/esm2022/lib/form-field/controls/select/option-parent.mjs +0 -4
- package/esm2022/lib/form-field/controls/select/select-model.mjs +0 -150
- package/esm2022/lib/form-field/controls/select/select.component.mjs +0 -725
- package/esm2022/lib/form-field/controls/select/select.module.mjs +0 -37
- package/esm2022/lib/form-field/controls/select/value-tags-display/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/select/value-tags-display/select-value-tags-display.component.mjs +0 -91
- package/esm2022/lib/form-field/controls/shared/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/shared/toggle/components/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.mjs +0 -17
- package/esm2022/lib/form-field/controls/shared/toggle/index.mjs +0 -4
- package/esm2022/lib/form-field/controls/shared/toggle/toggle.component.mjs +0 -112
- package/esm2022/lib/form-field/controls/shared/toggle/toggle.module.mjs +0 -18
- package/esm2022/lib/form-field/controls/tag-select/index.mjs +0 -2
- package/esm2022/lib/form-field/controls/tag-select/tag-select.component.mjs +0 -146
- package/esm2022/lib/form-field/form-field-errors.mjs +0 -5
- package/esm2022/lib/form-field/impdc-forms.mjs +0 -7
- package/esm2022/lib/form-field/impdc-forms.module.mjs +0 -53
- package/esm2022/lib/form-field/index.mjs +0 -2
- package/esm2022/lib/form-field/services/error-state-matcher.service.mjs +0 -28
- package/esm2022/lib/form-field/services/index.mjs +0 -3
- package/esm2022/lib/form-field/services/unique-selection-dispatcher.service.mjs +0 -48
- package/esm2022/lib/form-field/shared/constructors.type.mjs +0 -2
- package/esm2022/lib/form-field/shared/disabled.mixin.mjs +0 -15
- package/esm2022/lib/form-field/shared/error-state.mixin.mjs +0 -24
- package/esm2022/lib/form-field/shared/form-field-control.mjs +0 -10
- package/esm2022/lib/form-field/shared/index.mjs +0 -5
- package/esm2022/lib/form-field/shared/tab-index.mixin.mjs +0 -19
- package/esm2022/lib/icon/icon.component.mjs +0 -83
- package/esm2022/lib/icon/icon.module.mjs +0 -19
- package/esm2022/lib/icon/index.mjs +0 -3
- package/esm2022/lib/index.mjs +0 -29
- package/esm2022/lib/modal/index.mjs +0 -4
- package/esm2022/lib/modal/modal.component.mjs +0 -266
- package/esm2022/lib/modal/modal.module.mjs +0 -37
- package/esm2022/lib/modal/types/index.mjs +0 -3
- package/esm2022/lib/modal/types/modal-component-sizes.mjs +0 -9
- package/esm2022/lib/modal/types/modal-theme.mjs +0 -12
- package/esm2022/lib/pagination/index.mjs +0 -3
- package/esm2022/lib/pagination/pagination.component.mjs +0 -176
- package/esm2022/lib/pagination/pagination.module.mjs +0 -41
- package/esm2022/lib/progress-bar/index.mjs +0 -3
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -51
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -18
- package/esm2022/lib/scrollable/index.mjs +0 -3
- package/esm2022/lib/scrollable/scrollable.component.mjs +0 -187
- package/esm2022/lib/scrollable/scrollable.module.mjs +0 -22
- package/esm2022/lib/select-icon/index.mjs +0 -3
- package/esm2022/lib/select-icon/select-icon.component.mjs +0 -308
- package/esm2022/lib/select-icon/select-icon.module.mjs +0 -39
- package/esm2022/lib/size-detection/directive/element-size.interface.mjs +0 -2
- package/esm2022/lib/size-detection/directive/index.mjs +0 -3
- package/esm2022/lib/size-detection/directive/size-detector.directive.mjs +0 -43
- package/esm2022/lib/size-detection/index.mjs +0 -3
- package/esm2022/lib/size-detection/size-detection.module.mjs +0 -18
- package/esm2022/lib/spinner/index.mjs +0 -3
- package/esm2022/lib/spinner/spinner.component.mjs +0 -24
- package/esm2022/lib/spinner/spinner.module.mjs +0 -18
- package/esm2022/lib/table/components/bulk-actions/bulk-actions.component.mjs +0 -16
- package/esm2022/lib/table/components/column-heading/column-heading.component.mjs +0 -38
- package/esm2022/lib/table/components/index.mjs +0 -4
- package/esm2022/lib/table/components/row-actions/row-actions.component.mjs +0 -61
- package/esm2022/lib/table/constants/index.mjs +0 -3
- package/esm2022/lib/table/constants/public-table.constants.mjs +0 -2
- package/esm2022/lib/table/constants/table.constants.mjs +0 -23
- package/esm2022/lib/table/containers/index.mjs +0 -2
- package/esm2022/lib/table/containers/table.component.mjs +0 -474
- package/esm2022/lib/table/directives/collapse-monitor.directive.mjs +0 -42
- package/esm2022/lib/table/directives/index.mjs +0 -4
- package/esm2022/lib/table/directives/table-inject-component.directive.mjs +0 -46
- package/esm2022/lib/table/directives/table.directive.mjs +0 -55
- package/esm2022/lib/table/enumerations/index.mjs +0 -2
- package/esm2022/lib/table/enumerations/table-column-type.mjs +0 -21
- package/esm2022/lib/table/helpers/index.mjs +0 -2
- package/esm2022/lib/table/helpers/table-theme.helper.mjs +0 -31
- package/esm2022/lib/table/index.mjs +0 -8
- package/esm2022/lib/table/interfaces/cell-renderer.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/collapsible-row-content-context.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/custom-cell-renderer-components.type.mjs +0 -2
- package/esm2022/lib/table/interfaces/index.mjs +0 -13
- package/esm2022/lib/table/interfaces/sort-by-payload.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-cell-option.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-column-defs.type.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-event-payload.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-row-action-payload.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-row-action.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-row-collapse-change.interface.mjs +0 -2
- package/esm2022/lib/table/interfaces/table-row-item.interface.mjs +0 -2
- package/esm2022/lib/table/table.module.mjs +0 -101
- package/esm2022/lib/tag/index.mjs +0 -2
- package/esm2022/lib/tag/tag.component.mjs +0 -104
- package/esm2022/lib/text-highlight/index.mjs +0 -3
- package/esm2022/lib/text-highlight/text-highlight.component.mjs +0 -101
- package/esm2022/lib/text-highlight/text-highlight.module.mjs +0 -17
- package/esm2022/public-api.mjs +0 -9
- package/esm2022/services/index.mjs +0 -2
- package/esm2022/services/interaction.service.mjs +0 -88
- package/esm2022/types/component-size.mjs +0 -12
- package/esm2022/types/component-theme.mjs +0 -22
- package/esm2022/types/index.mjs +0 -3
- package/esm2022/utilities/boolean-props.mjs +0 -7
- package/esm2022/utilities/dc.mjs +0 -9
- package/esm2022/utilities/index.mjs +0 -6
- package/esm2022/utilities/lc.mjs +0 -9
- package/esm2022/utilities/number-props.mjs +0 -18
- package/esm2022/utilities/sanitize.mjs +0 -7
- package/lib/alert/alert.component.d.ts +0 -50
- package/lib/alert/alert.module.d.ts +0 -9
- package/lib/alert/index.d.ts +0 -3
- package/lib/alert/theme/alert-theme.d.ts +0 -1
- package/lib/alert/theme/index.d.ts +0 -1
- package/lib/avatar/avatar.component.d.ts +0 -28
- package/lib/avatar/avatar.module.d.ts +0 -9
- package/lib/avatar/index.d.ts +0 -2
- package/lib/avatar-group/avatar-group.component.d.ts +0 -10
- package/lib/avatar-group/avatar-group.module.d.ts +0 -9
- package/lib/avatar-group/index.d.ts +0 -2
- package/lib/backdrop/backdrop.component.d.ts +0 -24
- package/lib/backdrop/backdrop.module.d.ts +0 -9
- package/lib/backdrop/index.d.ts +0 -2
- package/lib/badge/badge.component.d.ts +0 -63
- package/lib/badge/badge.module.d.ts +0 -10
- package/lib/badge/index.d.ts +0 -3
- package/lib/badge/types/badge-icon.d.ts +0 -1
- package/lib/badge/types/badge-size.d.ts +0 -6
- package/lib/badge/types/index.d.ts +0 -2
- package/lib/branding/branded.directive.d.ts +0 -6
- package/lib/branding/branding.module.d.ts +0 -9
- package/lib/branding/index.d.ts +0 -2
- package/lib/breadcrumb/breadcrumb-item.component.d.ts +0 -7
- package/lib/breadcrumb/breadcrumb.component.d.ts +0 -21
- package/lib/breadcrumb/breadcrumb.module.d.ts +0 -9
- package/lib/breadcrumb/index.d.ts +0 -3
- package/lib/button/button.component.d.ts +0 -47
- package/lib/button/button.module.d.ts +0 -11
- package/lib/button/index.d.ts +0 -3
- package/lib/button/themes/button-theme.d.ts +0 -1
- package/lib/button/themes/index.d.ts +0 -1
- package/lib/button-group/button-group.component.d.ts +0 -22
- package/lib/button-group/button-group.module.d.ts +0 -10
- package/lib/button-group/index.d.ts +0 -2
- package/lib/card-heading/card-heading.component.d.ts +0 -18
- package/lib/card-heading/card-heading.module.d.ts +0 -9
- package/lib/card-heading/index.d.ts +0 -2
- package/lib/data-card/data-card.component.d.ts +0 -68
- package/lib/data-card/data-card.module.d.ts +0 -11
- package/lib/data-card/index.d.ts +0 -2
- package/lib/datetime-picker/components/datepicker-nav/datepicker-nav.component.d.ts +0 -31
- package/lib/datetime-picker/components/datepicker-nav/index.d.ts +0 -1
- package/lib/datetime-picker/components/datepicker-template-host/datepicker-template-host.component.d.ts +0 -15
- package/lib/datetime-picker/components/datepicker-template-host/index.d.ts +0 -1
- package/lib/datetime-picker/components/datetime-picker/datetime-picker.component.d.ts +0 -155
- package/lib/datetime-picker/components/datetime-picker/index.d.ts +0 -1
- package/lib/datetime-picker/components/datetime-picker-input/datetime-picker-input.component.d.ts +0 -160
- package/lib/datetime-picker/components/datetime-picker-input/index.d.ts +0 -1
- package/lib/datetime-picker/components/datetime-picker-input-footer/datetime-picker-input-footer.component.d.ts +0 -24
- package/lib/datetime-picker/components/datetime-picker-input-footer/index.d.ts +0 -1
- package/lib/datetime-picker/components/index.d.ts +0 -5
- package/lib/datetime-picker/constants/datetime-picker-defaults.d.ts +0 -4
- package/lib/datetime-picker/constants/index.d.ts +0 -1
- package/lib/datetime-picker/datetime-picker.module.d.ts +0 -8
- package/lib/datetime-picker/index.d.ts +0 -4
- package/lib/datetime-picker/services/datetime-formatter/datetime-formatter.service.d.ts +0 -20
- package/lib/datetime-picker/services/datetime-formatter/index.d.ts +0 -1
- package/lib/datetime-picker/services/index.d.ts +0 -1
- package/lib/datetime-picker/types/datetime-picker-value.interface.d.ts +0 -5
- package/lib/datetime-picker/types/index.d.ts +0 -1
- package/lib/design-components.module.d.ts +0 -24
- package/lib/dropdown/components/dropdown-item/dropdown-item.component.d.ts +0 -11
- package/lib/dropdown/components/index.d.ts +0 -1
- package/lib/dropdown/dropdown.component.d.ts +0 -67
- package/lib/dropdown/dropdown.module.d.ts +0 -11
- package/lib/dropdown/index.d.ts +0 -4
- package/lib/dropdown/types/dropdown-position.d.ts +0 -1
- package/lib/dropdown/types/index.d.ts +0 -1
- package/lib/file-upload/directives/file-drop.directive.d.ts +0 -11
- package/lib/file-upload/directives/index.d.ts +0 -1
- package/lib/file-upload/file-upload.component.d.ts +0 -105
- package/lib/file-upload/file-upload.module.d.ts +0 -14
- package/lib/file-upload/index.d.ts +0 -4
- package/lib/file-upload/pipes/human-readable-byte-size.pipe.d.ts +0 -7
- package/lib/file-upload/pipes/index.d.ts +0 -1
- package/lib/form-field/component/directives/corner-hint.directive.d.ts +0 -5
- package/lib/form-field/component/directives/error.directive.d.ts +0 -8
- package/lib/form-field/component/directives/form-root.directive.d.ts +0 -26
- package/lib/form-field/component/directives/hint.directive.d.ts +0 -6
- package/lib/form-field/component/directives/index.d.ts +0 -15
- package/lib/form-field/component/directives/label.directive.d.ts +0 -5
- package/lib/form-field/component/directives/prefix.directive.d.ts +0 -9
- package/lib/form-field/component/directives/suffix.directive.d.ts +0 -9
- package/lib/form-field/component/form-field.component.d.ts +0 -37
- package/lib/form-field/component/form-field.module.d.ts +0 -14
- package/lib/form-field/component/index.d.ts +0 -3
- package/lib/form-field/controls/checkbox/checkbox.component.d.ts +0 -137
- package/lib/form-field/controls/checkbox/checkbox.module.d.ts +0 -7
- package/lib/form-field/controls/checkbox/index.d.ts +0 -2
- package/lib/form-field/controls/index.d.ts +0 -5
- package/lib/form-field/controls/input/index.d.ts +0 -1
- package/lib/form-field/controls/input/input.directive.d.ts +0 -84
- package/lib/form-field/controls/radio/index.d.ts +0 -5
- package/lib/form-field/controls/radio/injection-tokens.d.ts +0 -4
- package/lib/form-field/controls/radio/interfaces/index.d.ts +0 -3
- package/lib/form-field/controls/radio/interfaces/radio-button.interface.d.ts +0 -6
- package/lib/form-field/controls/radio/interfaces/radio-change-event.interface.d.ts +0 -12
- package/lib/form-field/controls/radio/interfaces/radio-group.interface.d.ts +0 -13
- package/lib/form-field/controls/radio/radio-button/radio-button.component.d.ts +0 -98
- package/lib/form-field/controls/radio/radio-group/radio-group.directive.d.ts +0 -104
- package/lib/form-field/controls/radio/radio.module.d.ts +0 -8
- package/lib/form-field/controls/select/index.d.ts +0 -9
- package/lib/form-field/controls/select/interfaces/index.d.ts +0 -1
- package/lib/form-field/controls/select/interfaces/select-option.interface.d.ts +0 -6
- package/lib/form-field/controls/select/option/index.d.ts +0 -1
- package/lib/form-field/controls/select/option/select-option.component.d.ts +0 -21
- package/lib/form-field/controls/select/option-display/index.d.ts +0 -1
- package/lib/form-field/controls/select/option-display/select-option-display.component.d.ts +0 -64
- package/lib/form-field/controls/select/option-group/index.d.ts +0 -1
- package/lib/form-field/controls/select/option-group/select-option-group.component.d.ts +0 -11
- package/lib/form-field/controls/select/option-parent.d.ts +0 -16
- package/lib/form-field/controls/select/select-model.d.ts +0 -36
- package/lib/form-field/controls/select/select.component.d.ts +0 -232
- package/lib/form-field/controls/select/select.module.d.ts +0 -10
- package/lib/form-field/controls/select/value-tags-display/index.d.ts +0 -1
- package/lib/form-field/controls/select/value-tags-display/select-value-tags-display.component.d.ts +0 -46
- package/lib/form-field/controls/shared/index.d.ts +0 -1
- package/lib/form-field/controls/shared/toggle/components/index.d.ts +0 -1
- package/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.d.ts +0 -6
- package/lib/form-field/controls/shared/toggle/index.d.ts +0 -3
- package/lib/form-field/controls/shared/toggle/toggle.component.d.ts +0 -29
- package/lib/form-field/controls/shared/toggle/toggle.module.d.ts +0 -9
- package/lib/form-field/controls/tag-select/index.d.ts +0 -1
- package/lib/form-field/controls/tag-select/tag-select.component.d.ts +0 -43
- package/lib/form-field/form-field-errors.d.ts +0 -2
- package/lib/form-field/impdc-forms.d.ts +0 -6
- package/lib/form-field/impdc-forms.module.d.ts +0 -13
- package/lib/form-field/index.d.ts +0 -1
- package/lib/form-field/services/error-state-matcher.service.d.ts +0 -12
- package/lib/form-field/services/index.d.ts +0 -2
- package/lib/form-field/services/unique-selection-dispatcher.service.d.ts +0 -29
- package/lib/form-field/shared/constructors.type.d.ts +0 -7
- package/lib/form-field/shared/disabled.mixin.d.ts +0 -10
- package/lib/form-field/shared/error-state.mixin.d.ts +0 -31
- package/lib/form-field/shared/form-field-control.d.ts +0 -24
- package/lib/form-field/shared/index.d.ts +0 -5
- package/lib/form-field/shared/tab-index.mixin.d.ts +0 -13
- package/lib/icon/icon.component.d.ts +0 -36
- package/lib/icon/icon.module.d.ts +0 -9
- package/lib/icon/index.d.ts +0 -2
- package/lib/index.d.ts +0 -28
- package/lib/modal/index.d.ts +0 -3
- package/lib/modal/modal.component.d.ts +0 -116
- package/lib/modal/modal.module.d.ts +0 -13
- package/lib/modal/types/index.d.ts +0 -2
- package/lib/modal/types/modal-component-sizes.d.ts +0 -3
- package/lib/modal/types/modal-theme.d.ts +0 -7
- package/lib/pagination/index.d.ts +0 -2
- package/lib/pagination/pagination.component.d.ts +0 -58
- package/lib/pagination/pagination.module.d.ts +0 -14
- package/lib/progress-bar/index.d.ts +0 -2
- package/lib/progress-bar/progress-bar.component.d.ts +0 -31
- package/lib/progress-bar/progress-bar.module.d.ts +0 -8
- package/lib/scrollable/index.d.ts +0 -2
- package/lib/scrollable/scrollable.component.d.ts +0 -41
- package/lib/scrollable/scrollable.module.d.ts +0 -12
- package/lib/select-icon/index.d.ts +0 -2
- package/lib/select-icon/select-icon.component.d.ts +0 -123
- package/lib/select-icon/select-icon.module.d.ts +0 -12
- package/lib/size-detection/directive/element-size.interface.d.ts +0 -4
- package/lib/size-detection/directive/index.d.ts +0 -2
- package/lib/size-detection/directive/size-detector.directive.d.ts +0 -14
- package/lib/size-detection/index.d.ts +0 -3
- package/lib/size-detection/size-detection.module.d.ts +0 -8
- package/lib/spinner/index.d.ts +0 -2
- package/lib/spinner/spinner.component.d.ts +0 -13
- package/lib/spinner/spinner.module.d.ts +0 -8
- package/lib/table/components/bulk-actions/bulk-actions.component.d.ts +0 -10
- package/lib/table/components/column-heading/column-heading.component.d.ts +0 -14
- package/lib/table/components/index.d.ts +0 -3
- package/lib/table/components/row-actions/row-actions.component.d.ts +0 -21
- package/lib/table/constants/index.d.ts +0 -2
- package/lib/table/constants/public-table.constants.d.ts +0 -1
- package/lib/table/constants/table.constants.d.ts +0 -9
- package/lib/table/containers/index.d.ts +0 -1
- package/lib/table/containers/table.component.d.ts +0 -178
- package/lib/table/directives/collapse-monitor.directive.d.ts +0 -12
- package/lib/table/directives/index.d.ts +0 -3
- package/lib/table/directives/table-inject-component.directive.d.ts +0 -16
- package/lib/table/directives/table.directive.d.ts +0 -23
- package/lib/table/enumerations/index.d.ts +0 -1
- package/lib/table/enumerations/table-column-type.d.ts +0 -19
- package/lib/table/helpers/index.d.ts +0 -1
- package/lib/table/helpers/table-theme.helper.d.ts +0 -7
- package/lib/table/index.d.ts +0 -7
- package/lib/table/interfaces/cell-renderer.interface.d.ts +0 -13
- package/lib/table/interfaces/collapsible-row-content-context.interface.d.ts +0 -39
- package/lib/table/interfaces/custom-cell-renderer-components.type.d.ts +0 -3
- package/lib/table/interfaces/index.d.ts +0 -12
- package/lib/table/interfaces/sort-by-payload.interface.d.ts +0 -11
- package/lib/table/interfaces/table-cell-option.interface.d.ts +0 -4
- package/lib/table/interfaces/table-column-defs.type.d.ts +0 -53
- package/lib/table/interfaces/table-event-payload.interface.d.ts +0 -13
- package/lib/table/interfaces/table-row-action-payload.interface.d.ts +0 -13
- package/lib/table/interfaces/table-row-action.interface.d.ts +0 -17
- package/lib/table/interfaces/table-row-collapse-change.interface.d.ts +0 -11
- package/lib/table/interfaces/table-row-item.interface.d.ts +0 -8
- package/lib/table/table.module.d.ts +0 -24
- package/lib/tag/index.d.ts +0 -1
- package/lib/tag/tag.component.d.ts +0 -54
- package/lib/text-highlight/index.d.ts +0 -2
- package/lib/text-highlight/text-highlight.component.d.ts +0 -37
- package/lib/text-highlight/text-highlight.module.d.ts +0 -8
- package/public-api.d.ts +0 -4
- package/services/index.d.ts +0 -1
- package/services/interaction.service.d.ts +0 -28
- package/types/component-size.d.ts +0 -12
- package/types/component-theme.d.ts +0 -12
- package/types/index.d.ts +0 -2
- package/utilities/boolean-props.d.ts +0 -8
- package/utilities/dc.d.ts +0 -6
- package/utilities/index.d.ts +0 -5
- package/utilities/lc.d.ts +0 -6
- package/utilities/number-props.d.ts +0 -15
- package/utilities/sanitize.d.ts +0 -1
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { sanitize } from '../../utilities';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "../button/button.component";
|
|
6
|
-
import * as i3 from "../icon/icon.component";
|
|
7
|
-
import * as i4 from "@angular/forms";
|
|
8
|
-
import * as i5 from "../form-field/component/form-field.component";
|
|
9
|
-
import * as i6 from "../form-field/controls/select/option/select-option.component";
|
|
10
|
-
import * as i7 from "../form-field/controls/select/select.component";
|
|
11
|
-
import * as i8 from "../form-field/controls/input/input.directive";
|
|
12
|
-
import * as i9 from "../size-detection/directive/size-detector.directive";
|
|
13
|
-
/**
|
|
14
|
-
* The `PaginationComponent` (`<impdc-pagination` or `<div impdc-pagination`) is a control for paged content such as tables or lists.
|
|
15
|
-
* To use, import `PaginationModule` or another module that imports and exports that module from `@impartner/design-components`.
|
|
16
|
-
* `ModalModule` imports and exports ImpdcFormsModule and [ButtonModule](./?path=/docs/design-components-button).
|
|
17
|
-
*/
|
|
18
|
-
export class PaginationComponent {
|
|
19
|
-
/**
|
|
20
|
-
* A formattable text summary of pagination data. `{firstPageResult}` The first item within the current page.
|
|
21
|
-
* `{lastPageResult}` The last item within the current page. `{total}` The total number of items.
|
|
22
|
-
*/
|
|
23
|
-
set summary(summary) {
|
|
24
|
-
this._summary = summary;
|
|
25
|
-
}
|
|
26
|
-
get summary() {
|
|
27
|
-
return sanitize(this._summary)
|
|
28
|
-
.replace('{firstPageResult}', `<b>${this.firstPageResult}</b>`)
|
|
29
|
-
.replace('{lastPageResult}', `<b>${this.lastPageResult}</b>`)
|
|
30
|
-
.replace('{total}', `<b>${this.total}</b>`);
|
|
31
|
-
}
|
|
32
|
-
get totalPages() {
|
|
33
|
-
if (this.total < 1 || this.perPage < 1) {
|
|
34
|
-
return 0;
|
|
35
|
-
}
|
|
36
|
-
if (this.total < this.perPage) {
|
|
37
|
-
return 1;
|
|
38
|
-
}
|
|
39
|
-
return Math.ceil(this.total / this.perPage);
|
|
40
|
-
}
|
|
41
|
-
get firstPageResult() {
|
|
42
|
-
const page = this._getPageClamped();
|
|
43
|
-
if (this.total < 1 || page < 1 || this.perPage < 1) {
|
|
44
|
-
return 0;
|
|
45
|
-
}
|
|
46
|
-
if (page === 1) {
|
|
47
|
-
return 1;
|
|
48
|
-
}
|
|
49
|
-
if (page > Math.ceil(this.total / this.perPage)) {
|
|
50
|
-
return this.total;
|
|
51
|
-
}
|
|
52
|
-
return (page - 1) * this.perPage + 1;
|
|
53
|
-
}
|
|
54
|
-
get lastPageResult() {
|
|
55
|
-
const page = this._getPageClamped();
|
|
56
|
-
if (this.total <= 0 || page < 1 || this.perPage < 1) {
|
|
57
|
-
return 0;
|
|
58
|
-
}
|
|
59
|
-
if (page === 1) {
|
|
60
|
-
if (this.total < this.perPage) {
|
|
61
|
-
return this.total;
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
return this.perPage;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (this.total < this.perPage * page) {
|
|
68
|
-
return this.total;
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
return this.perPage * page;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
constructor(_changeDetectorRef) {
|
|
75
|
-
this._changeDetectorRef = _changeDetectorRef;
|
|
76
|
-
this._summary = 'Showing {firstPageResult} to {lastPageResult} of {total} results';
|
|
77
|
-
/**
|
|
78
|
-
* The current page.
|
|
79
|
-
*/
|
|
80
|
-
this.page = 0;
|
|
81
|
-
/**
|
|
82
|
-
* The number of items shown per page. Items are commonly displayed as rows in a table.
|
|
83
|
-
*/
|
|
84
|
-
this.perPage = 10;
|
|
85
|
-
/**
|
|
86
|
-
* The total number of items.
|
|
87
|
-
*/
|
|
88
|
-
this.total = 0;
|
|
89
|
-
/**
|
|
90
|
-
* The label text for the per page select input.
|
|
91
|
-
*/
|
|
92
|
-
this.perPageLabel = '';
|
|
93
|
-
/**
|
|
94
|
-
* Emitted when the page number is changed, specifying the target page number.
|
|
95
|
-
*/
|
|
96
|
-
this.goToPage = new EventEmitter();
|
|
97
|
-
/**
|
|
98
|
-
* Emitted when the per page is changed, specifying the new value.
|
|
99
|
-
*/
|
|
100
|
-
this.perPageChange = new EventEmitter();
|
|
101
|
-
/** @ignore */
|
|
102
|
-
this.mobile = false;
|
|
103
|
-
}
|
|
104
|
-
handleResize(size) {
|
|
105
|
-
this.mobile = size.width < 640;
|
|
106
|
-
this._changeDetectorRef.detectChanges();
|
|
107
|
-
}
|
|
108
|
-
goToPreviousPage() {
|
|
109
|
-
const page = this._getPageClamped();
|
|
110
|
-
if (page <= 1) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
const previousPage = page - 1;
|
|
114
|
-
this.page = previousPage;
|
|
115
|
-
this.goToPage.emit(previousPage);
|
|
116
|
-
}
|
|
117
|
-
goToNextPage() {
|
|
118
|
-
const page = this._getPageClamped();
|
|
119
|
-
if (page >= this.totalPages) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
const nextPage = page + 1;
|
|
123
|
-
this.page = nextPage;
|
|
124
|
-
this.goToPage.emit(nextPage);
|
|
125
|
-
}
|
|
126
|
-
goToExactPageFromEvent({ target }) {
|
|
127
|
-
this.goToExactPage(target?.value);
|
|
128
|
-
}
|
|
129
|
-
goToExactPage(page) {
|
|
130
|
-
const targetPage = this._getPageClamped(page);
|
|
131
|
-
if (targetPage === this.page) {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
this.page = targetPage;
|
|
135
|
-
this.goToPage.emit(this.page);
|
|
136
|
-
}
|
|
137
|
-
handlePerPageChange() {
|
|
138
|
-
this.perPageChange.emit(this.perPage);
|
|
139
|
-
}
|
|
140
|
-
preventDefaultAndBlur(event) {
|
|
141
|
-
// prevents PRM form submit
|
|
142
|
-
event.preventDefault();
|
|
143
|
-
event.target.blur();
|
|
144
|
-
}
|
|
145
|
-
_getPageClamped(page) {
|
|
146
|
-
page = Number(page || this.page || 0);
|
|
147
|
-
if (isNaN(page) || page < 1) {
|
|
148
|
-
return 1;
|
|
149
|
-
}
|
|
150
|
-
if (page > this.totalPages) {
|
|
151
|
-
return this.totalPages;
|
|
152
|
-
}
|
|
153
|
-
return page;
|
|
154
|
-
}
|
|
155
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PaginationComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
156
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: PaginationComponent, selector: "impdc-pagination, div[impdc-pagination]", inputs: { page: "page", perPage: "perPage", total: "total", summary: "summary", perPageLabel: "perPageLabel" }, outputs: { goToPage: "goToPage", perPageChange: "perPageChange" }, ngImport: i0, template: "<div\n class=\"pagination-container\"\n impdcSizeDetector\n (resized)=\"handleResize($event)\">\n <div class=\"mobile-pagination\" [ngClass]=\"{ 'd-none': !mobile }\">\n <button\n impdcButton\n theme=\"secondary\"\n [disabled]=\"page <= 1\"\n (click)=\"goToPreviousPage()\">\n <i impdc-icon name=\"chevron-left\"></i>\n </button>\n <button\n impdcButton\n theme=\"secondary\"\n [disabled]=\"page === totalPages\"\n (click)=\"goToNextPage()\">\n <i impdc-icon name=\"chevron-right\"></i>\n </button>\n </div>\n\n <div class=\"desktop-pagination\" [ngClass]=\"{ 'd-none': mobile }\">\n <div class=\"rows-per-page\">\n <div>{{ perPageLabel }}</div>\n <div>\n <impdc-form-field>\n <impdc-select\n allowClear=\"false\"\n [(ngModel)]=\"perPage\"\n (selectionChange)=\"handlePerPageChange()\">\n <impdc-select-option [value]=\"10\" label=\"10\"></impdc-select-option>\n <impdc-select-option [value]=\"25\" label=\"25\"></impdc-select-option>\n <impdc-select-option [value]=\"50\" label=\"50\"></impdc-select-option>\n <impdc-select-option\n [value]=\"100\"\n label=\"100\"></impdc-select-option>\n <impdc-select-option\n [value]=\"200\"\n label=\"200\"></impdc-select-option>\n </impdc-select>\n </impdc-form-field>\n </div>\n </div>\n <div class=\"pagination-rhs\">\n <div>\n <span class=\"summary\" [innerHTML]=\"summary\"></span>\n </div>\n <div class=\"pagination-actions\">\n <button\n impdcButton\n theme=\"secondary\"\n aria-label=\"First Page\"\n class=\"pagination-first-last-btns\"\n (click)=\"goToExactPage(1)\"\n [disabled]=\"page <= 1\">\n <i impdc-icon name=\"chevron-left first\"></i>\n <i impdc-icon name=\"chevron-left\"></i>\n <!-- 1 -->\n </button>\n <button\n impdcButton\n theme=\"secondary\"\n class=\"previous\"\n aria-label=\"Previous\"\n (click)=\"goToPreviousPage()\"\n [disabled]=\"page <= 1\">\n <i impdc-icon name=\"chevron-left\"></i>\n </button>\n <div class=\"page-change\">\n <input\n impdcInput\n [(ngModel)]=\"page\"\n maxlength=\"4\"\n (blur)=\"goToExactPageFromEvent($event)\"\n (keydown.enter)=\"preventDefaultAndBlur($event)\" />\n <span> / {{ totalPages }} </span>\n </div>\n <button\n impdcButton\n theme=\"secondary\"\n aria-label=\"Next\"\n (click)=\"goToNextPage()\"\n [disabled]=\"page >= totalPages\">\n <i impdc-icon name=\"chevron-right\"></i>\n </button>\n <button\n impdcButton\n theme=\"secondary\"\n class=\"pagination-first-last-btns\"\n aria-label=\"Last Page\"\n (click)=\"goToExactPage(totalPages)\"\n [disabled]=\"page === totalPages\">\n <i impdc-icon name=\"chevron-right\"></i>\n <i impdc-icon name=\"chevron-right last\"></i>\n <!-- {{ totalPages }} -->\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".pagination-container{background-color:var(--impd-color-white);padding:var(--impd-size-3) var(--impd-size-5);gap:1rem;color:var(--impd-color-gray-700, #374151)}.pagination-container .mobile-pagination{display:flex;gap:2rem;justify-content:space-between;align-items:center}.pagination-container .mobile-pagination button[impdcButton]{width:50%;justify-content:left}.pagination-container .desktop-pagination{display:flex;flex:1 1 0%;align-items:center;justify-content:space-between;gap:2rem;flex-flow:wrap}.pagination-container .desktop-pagination .rows-per-page{display:flex;flex-direction:row;align-items:center;gap:1rem;flex-grow:1;font-size:var(--impd-font-size-sm);line-height:var(--impd-size-5);font-weight:400;color:var(--impd-color-gray-700)}.pagination-container .desktop-pagination .pagination-rhs{display:flex;flex-direction:row;gap:2.4rem;flex-wrap:wrap;align-items:center}.pagination-container .desktop-pagination .pagination-rhs .summary{font-size:var(--impd-font-size-sm);line-height:var(--impd-size-5);font-weight:400;color:var(--impd-color-gray-700)}.pagination-container .desktop-pagination .pagination-rhs .pagination-actions{display:flex;flex-direction:row;gap:.4rem;flex-flow:wrap}.pagination-container .desktop-pagination .pagination-rhs .pagination-actions ::ng-deep .first{margin-right:-1.2rem}.pagination-container .desktop-pagination .pagination-rhs .pagination-actions ::ng-deep .last{margin-left:-1.2rem}.pagination-container .desktop-pagination .pagination-rhs .page-change{display:flex;flex-direction:row;align-items:center;gap:.4rem;font-size:var(--impd-size-3_5, 1.4rem)}.pagination-container .desktop-pagination .pagination-rhs .page-change .form-control{min-width:4.275rem;max-width:6.3rem;text-align:center}.pagination-container .desktop-pagination .pagination-rhs .pagination-first-last-btns{padding-left:1.325rem;padding-right:1.325rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[impdcButton]", inputs: ["type", "theme", "text", "disabled", "titleText", "ariaLabel"] }, { kind: "component", type: i3.IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.FormFieldComponent, selector: "impdc-form-field", exportAs: ["impdcFormField"] }, { kind: "component", type: i6.SelectOptionComponent, selector: "impdc-select-option", inputs: ["value", "label", "disabled"] }, { kind: "component", type: i7.SelectComponent, selector: "impdc-select", inputs: ["disabled", "tabIndex", "search", "placeholder", "required", "compareWith", "dropdownContainer", "errorStateMatcher", "allowClear", "multiple", "multipleDisplay"], outputs: ["selectionChange", "valueChange", "searchTextChanges"], 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.SizeDetectorDirective, selector: "[impdcSizeDetector]", outputs: ["resized"] }] }); }
|
|
157
|
-
}
|
|
158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
159
|
-
type: Component,
|
|
160
|
-
args: [{ selector: 'impdc-pagination, div[impdc-pagination]', template: "<div\n class=\"pagination-container\"\n impdcSizeDetector\n (resized)=\"handleResize($event)\">\n <div class=\"mobile-pagination\" [ngClass]=\"{ 'd-none': !mobile }\">\n <button\n impdcButton\n theme=\"secondary\"\n [disabled]=\"page <= 1\"\n (click)=\"goToPreviousPage()\">\n <i impdc-icon name=\"chevron-left\"></i>\n </button>\n <button\n impdcButton\n theme=\"secondary\"\n [disabled]=\"page === totalPages\"\n (click)=\"goToNextPage()\">\n <i impdc-icon name=\"chevron-right\"></i>\n </button>\n </div>\n\n <div class=\"desktop-pagination\" [ngClass]=\"{ 'd-none': mobile }\">\n <div class=\"rows-per-page\">\n <div>{{ perPageLabel }}</div>\n <div>\n <impdc-form-field>\n <impdc-select\n allowClear=\"false\"\n [(ngModel)]=\"perPage\"\n (selectionChange)=\"handlePerPageChange()\">\n <impdc-select-option [value]=\"10\" label=\"10\"></impdc-select-option>\n <impdc-select-option [value]=\"25\" label=\"25\"></impdc-select-option>\n <impdc-select-option [value]=\"50\" label=\"50\"></impdc-select-option>\n <impdc-select-option\n [value]=\"100\"\n label=\"100\"></impdc-select-option>\n <impdc-select-option\n [value]=\"200\"\n label=\"200\"></impdc-select-option>\n </impdc-select>\n </impdc-form-field>\n </div>\n </div>\n <div class=\"pagination-rhs\">\n <div>\n <span class=\"summary\" [innerHTML]=\"summary\"></span>\n </div>\n <div class=\"pagination-actions\">\n <button\n impdcButton\n theme=\"secondary\"\n aria-label=\"First Page\"\n class=\"pagination-first-last-btns\"\n (click)=\"goToExactPage(1)\"\n [disabled]=\"page <= 1\">\n <i impdc-icon name=\"chevron-left first\"></i>\n <i impdc-icon name=\"chevron-left\"></i>\n <!-- 1 -->\n </button>\n <button\n impdcButton\n theme=\"secondary\"\n class=\"previous\"\n aria-label=\"Previous\"\n (click)=\"goToPreviousPage()\"\n [disabled]=\"page <= 1\">\n <i impdc-icon name=\"chevron-left\"></i>\n </button>\n <div class=\"page-change\">\n <input\n impdcInput\n [(ngModel)]=\"page\"\n maxlength=\"4\"\n (blur)=\"goToExactPageFromEvent($event)\"\n (keydown.enter)=\"preventDefaultAndBlur($event)\" />\n <span> / {{ totalPages }} </span>\n </div>\n <button\n impdcButton\n theme=\"secondary\"\n aria-label=\"Next\"\n (click)=\"goToNextPage()\"\n [disabled]=\"page >= totalPages\">\n <i impdc-icon name=\"chevron-right\"></i>\n </button>\n <button\n impdcButton\n theme=\"secondary\"\n class=\"pagination-first-last-btns\"\n aria-label=\"Last Page\"\n (click)=\"goToExactPage(totalPages)\"\n [disabled]=\"page === totalPages\">\n <i impdc-icon name=\"chevron-right\"></i>\n <i impdc-icon name=\"chevron-right last\"></i>\n <!-- {{ totalPages }} -->\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".pagination-container{background-color:var(--impd-color-white);padding:var(--impd-size-3) var(--impd-size-5);gap:1rem;color:var(--impd-color-gray-700, #374151)}.pagination-container .mobile-pagination{display:flex;gap:2rem;justify-content:space-between;align-items:center}.pagination-container .mobile-pagination button[impdcButton]{width:50%;justify-content:left}.pagination-container .desktop-pagination{display:flex;flex:1 1 0%;align-items:center;justify-content:space-between;gap:2rem;flex-flow:wrap}.pagination-container .desktop-pagination .rows-per-page{display:flex;flex-direction:row;align-items:center;gap:1rem;flex-grow:1;font-size:var(--impd-font-size-sm);line-height:var(--impd-size-5);font-weight:400;color:var(--impd-color-gray-700)}.pagination-container .desktop-pagination .pagination-rhs{display:flex;flex-direction:row;gap:2.4rem;flex-wrap:wrap;align-items:center}.pagination-container .desktop-pagination .pagination-rhs .summary{font-size:var(--impd-font-size-sm);line-height:var(--impd-size-5);font-weight:400;color:var(--impd-color-gray-700)}.pagination-container .desktop-pagination .pagination-rhs .pagination-actions{display:flex;flex-direction:row;gap:.4rem;flex-flow:wrap}.pagination-container .desktop-pagination .pagination-rhs .pagination-actions ::ng-deep .first{margin-right:-1.2rem}.pagination-container .desktop-pagination .pagination-rhs .pagination-actions ::ng-deep .last{margin-left:-1.2rem}.pagination-container .desktop-pagination .pagination-rhs .page-change{display:flex;flex-direction:row;align-items:center;gap:.4rem;font-size:var(--impd-size-3_5, 1.4rem)}.pagination-container .desktop-pagination .pagination-rhs .page-change .form-control{min-width:4.275rem;max-width:6.3rem;text-align:center}.pagination-container .desktop-pagination .pagination-rhs .pagination-first-last-btns{padding-left:1.325rem;padding-right:1.325rem}\n"] }]
|
|
161
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { page: [{
|
|
162
|
-
type: Input
|
|
163
|
-
}], perPage: [{
|
|
164
|
-
type: Input
|
|
165
|
-
}], total: [{
|
|
166
|
-
type: Input
|
|
167
|
-
}], summary: [{
|
|
168
|
-
type: Input
|
|
169
|
-
}], perPageLabel: [{
|
|
170
|
-
type: Input
|
|
171
|
-
}], goToPage: [{
|
|
172
|
-
type: Output
|
|
173
|
-
}], perPageChange: [{
|
|
174
|
-
type: Output
|
|
175
|
-
}] } });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFHM0M7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTyxtQkFBbUI7SUFzQjlCOzs7T0FHRztJQUNILElBQ1csT0FBTyxDQUFDLE9BQWU7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQzNCLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLElBQUksQ0FBQyxlQUFlLE1BQU0sQ0FBQzthQUM5RCxPQUFPLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxJQUFJLENBQUMsY0FBYyxNQUFNLENBQUM7YUFDNUQsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFrQkQsSUFBVyxVQUFVO1FBQ25CLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFFRCxJQUFJ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LENBQUM7UUFDdEIsS0FBSyxDQUFDLE1BQTJCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFzQjtRQUM1QyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFFRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBL0tVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGtRQ3BCaEMsK3lHQW9HQTs7MkZEaEZhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSx5Q0FBeUM7c0ZBWTVDLElBQUk7c0JBRFYsS0FBSztnQkFPQyxPQUFPO3NCQURiLEtBQUs7Z0JBT0MsS0FBSztzQkFEWCxLQUFLO2dCQVFLLE9BQU87c0JBRGpCLEtBQUs7Z0JBZ0JDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBTW9CLFFBQVE7c0JBQWpDLE1BQU07Z0JBS21CLGFBQWE7c0JBQXRDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzYW5pdGl6ZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcyc7XG5pbXBvcnQgeyBJRWxlbWVudFNpemUgfSBmcm9tICcuLi9zaXplLWRldGVjdGlvbic7XG5cbi8qKlxuICogVGhlIGBQYWdpbmF0aW9uQ29tcG9uZW50YCAoYDxpbXBkYy1wYWdpbmF0aW9uYCBvciBgPGRpdiBpbXBkYy1wYWdpbmF0aW9uYCkgaXMgYSBjb250cm9sIGZvciBwYWdlZCBjb250ZW50IHN1Y2ggYXMgdGFibGVzIG9yIGxpc3RzLlxuICogVG8gdXNlLCBpbXBvcnQgYFBhZ2luYXRpb25Nb2R1bGVgIG9yIGFub3RoZXIgbW9kdWxlIHRoYXQgaW1wb3J0cyBhbmQgZXhwb3J0cyB0aGF0IG1vZHVsZSBmcm9tIGBAaW1wYXJ0bmVyL2Rlc2lnbi1jb21wb25lbnRzYC5cbiAqIGBNb2RhbE1vZHVsZWAgaW1wb3J0cyBhbmQgZXhwb3J0cyBJbXBkY0Zvcm1zTW9kdWxlIGFuZCBbQnV0dG9uTW9kdWxlXSguLz9wYXRoPS9kb2NzL2Rlc2lnbi1jb21wb25lbnRzLWJ1dHRvbikuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltcGRjLXBhZ2luYXRpb24sIGRpdltpbXBkYy1wYWdpbmF0aW9uXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQge1xuICBwcml2YXRlIF9zdW1tYXJ5ID1cbiAgICAnU2hvd2luZyB7Zmlyc3RQYWdlUmVzdWx0fSB0byB7bGFzdFBhZ2VSZXN1bHR9IG9mIHt0b3RhbH0gcmVzdWx0cyc7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHBhZ2UuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGFnZSA9IDA7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgaXRlbXMgc2hvd24gcGVyIHBhZ2UuIEl0ZW1zIGFyZSBjb21tb25seSBkaXNwbGF5ZWQgYXMgcm93cyBpbiBhIHRhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHBlclBhZ2UgPSAxMDtcblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0b3RhbCA9IDA7XG5cbiAgLyoqXG4gICAqIEEgZm9ybWF0dGFibGUgdGV4dCBzdW1tYXJ5IG9mIHBhZ2luYXRpb24gZGF0YS4gYHtmaXJzdFBhZ2VSZXN1bHR9YCBUaGUgZmlyc3QgaXRlbSB3aXRoaW4gdGhlIGN1cnJlbnQgcGFnZS5cbiAgICogYHtsYXN0UGFnZVJlc3VsdH1gIFRoZSBsYXN0IGl0ZW0gd2l0aGluIHRoZSBjdXJyZW50IHBhZ2UuIGB7dG90YWx9YCBUaGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzdW1tYXJ5KHN1bW1hcnk6IHN0cmluZykge1xuICAgIHRoaXMuX3N1bW1hcnkgPSBzdW1tYXJ5O1xuICB9XG5cbiAgcHVibGljIGdldCBzdW1tYXJ5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNhbml0aXplKHRoaXMuX3N1bW1hcnkpXG4gICAgICAucmVwbGFjZSgne2ZpcnN0UGFnZVJlc3VsdH0nLCBgPGI+JHt0aGlzLmZpcnN0UGFnZVJlc3VsdH08L2I+YClcbiAgICAgIC5yZXBsYWNlKCd7bGFzdFBhZ2VSZXN1bHR9JywgYDxiPiR7dGhpcy5sYXN0UGFnZVJlc3VsdH08L2I+YClcbiAgICAgIC5yZXBsYWNlKCd7dG90YWx9JywgYDxiPiR7dGhpcy50b3RhbH08L2I+YCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxhYmVsIHRleHQgZm9yIHRoZSBwZXIgcGFnZSBzZWxlY3QgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGVyUGFnZUxhYmVsID0gJyc7XG5cbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcGFnZSBudW1iZXIgaXMgY2hhbmdlZCwgc3BlY2lmeWluZyB0aGUgdGFyZ2V0IHBhZ2UgbnVtYmVyLlxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBnb1RvUGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHBlciBwYWdlIGlzIGNoYW5nZWQsIHNwZWNpZnlpbmcgdGhlIG5ldyB2YWx1ZS5cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgcGVyUGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHB1YmxpYyBnZXQgdG90YWxQYWdlcygpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLnRvdGFsIDwgMSB8fCB0aGlzLnBlclBhZ2UgPCAxKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50b3RhbCA8IHRoaXMucGVyUGFnZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnRvdGFsIC8gdGhpcy5wZXJQYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlyc3RQYWdlUmVzdWx0KCk6IG51bWJlciB7XG4gICAgY29uc3QgcGFnZSA9IHRoaXMuX2dldFBhZ2VDbGFtcGVkKCk7XG4gICAgaWYgKHRoaXMudG90YWwgPCAxIHx8IHBhZ2UgPCAxIHx8IHRoaXMucGVyUGFnZSA8IDEpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIGlmIChwYWdlID09PSAxKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICBpZiAocGFnZSA+IE1hdGguY2VpbCh0aGlzLnRvdGFsIC8gdGhpcy5wZXJQYWdlKSkge1xuICAgICAgcmV0dXJuIHRoaXMudG90YWw7XG4gICAgfVxuXG4gICAgcmV0dXJuIChwYWdlIC0gMSkgKiB0aGlzLnBlclBhZ2UgKyAxO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXN0UGFnZVJlc3VsdCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHBhZ2UgPSB0aGlzLl9nZXRQYWdlQ2xhbXBlZCgpO1xuICAgIGlmICh0aGlzLnRvdGFsIDw9IDAgfHwgcGFnZSA8IDEgfHwgdGhpcy5wZXJQYWdlIDwgMSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgaWYgKHBhZ2UgPT09IDEpIHtcbiAgICAgIGlmICh0aGlzLnRvdGFsIDwgdGhpcy5wZXJQYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvdGFsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGVyUGFnZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy50b3RhbCA8IHRoaXMucGVyUGFnZSAqIHBhZ2UpIHtcbiAgICAgIHJldHVybiB0aGlzLnRvdGFsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5wZXJQYWdlICogcGFnZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbW9iaWxlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHB1YmxpYyBoYW5kbGVSZXNpemUoc2l6ZTogSUVsZW1lbnRTaXplKTogdm9pZCB7XG4gICAgdGhpcy5tb2JpbGUgPSBzaXplLndpZHRoIDwgNjQwO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvUHJldmlvdXNQYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHBhZ2UgPSB0aGlzLl9nZXRQYWdlQ2xhbXBlZCgpO1xuICAgIGlmIChwYWdlIDw9IDEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2aW91c1BhZ2UgPSBwYWdlIC0gMTtcbiAgICB0aGlzLnBhZ2UgPSBwcmV2aW91c1BhZ2U7XG5cbiAgICB0aGlzLmdvVG9QYWdlLmVtaXQocHJldmlvdXNQYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvTmV4dFBhZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgcGFnZSA9IHRoaXMuX2dldFBhZ2VDbGFtcGVkKCk7XG4gICAgaWYgKHBhZ2UgPj0gdGhpcy50b3RhbFBhZ2VzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFBhZ2UgPSBwYWdlICsgMTtcbiAgICB0aGlzLnBhZ2UgPSBuZXh0UGFnZTtcblxuICAgIHRoaXMuZ29Ub1BhZ2UuZW1pdChuZXh0UGFnZSk7XG4gIH1cblxuICBwdWJsaWMgZ29Ub0V4YWN0UGFnZUZyb21FdmVudCh7IHRhcmdldCB9OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5nb1RvRXhhY3RQYWdlKCh0YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk/LnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvRXhhY3RQYWdlKHBhZ2U6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldFBhZ2UgPSB0aGlzLl9nZXRQYWdlQ2xhbXBlZChwYWdlKTtcblxuICAgIGlmICh0YXJnZXRQYWdlID09PSB0aGlzLnBhZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnBhZ2UgPSB0YXJnZXRQYWdlO1xuXG4gICAgdGhpcy5nb1RvUGFnZS5lbWl0KHRoaXMucGFnZSk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlUGVyUGFnZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBlclBhZ2VDaGFuZ2UuZW1pdCh0aGlzLnBlclBhZ2UpO1xuICB9XG5cbiAgcHVibGljIHByZXZlbnREZWZhdWx0QW5kQmx1cihldmVudDogRXZlbnQpIHtcbiAgICAvLyBwcmV2ZW50cyBQUk0gZm9ybSBzdWJtaXRcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuYmx1cigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UGFnZUNsYW1wZWQocGFnZT86IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB7XG4gICAgcGFnZSA9IE51bWJlcihwYWdlIHx8IHRoaXMucGFnZSB8fCAwKTtcbiAgICBpZiAoaXNOYU4ocGFnZSkgfHwgcGFnZSA8IDEpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmIChwYWdlID4gdGhpcy50b3RhbFBhZ2VzKSB7XG4gICAgICByZXR1cm4gdGhpcy50b3RhbFBhZ2VzO1xuICAgIH1cblxuICAgIHJldHVybiBwYWdlO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwicGFnaW5hdGlvbi1jb250YWluZXJcIlxuICBpbXBkY1NpemVEZXRlY3RvclxuICAocmVzaXplZCk9XCJoYW5kbGVSZXNpemUoJGV2ZW50KVwiPlxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLXBhZ2luYXRpb25cIiBbbmdDbGFzc109XCJ7ICdkLW5vbmUnOiAhbW9iaWxlIH1cIj5cbiAgICA8YnV0dG9uXG4gICAgICBpbXBkY0J1dHRvblxuICAgICAgdGhlbWU9XCJzZWNvbmRhcnlcIlxuICAgICAgW2Rpc2FibGVkXT1cInBhZ2UgPD0gMVwiXG4gICAgICAoY2xpY2spPVwiZ29Ub1ByZXZpb3VzUGFnZSgpXCI+XG4gICAgICA8aSBpbXBkYy1pY29uIG5hbWU9XCJjaGV2cm9uLWxlZnRcIj48L2k+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgaW1wZGNCdXR0b25cbiAgICAgIHRoZW1lPVwic2Vjb25kYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJwYWdlID09PSB0b3RhbFBhZ2VzXCJcbiAgICAgIChjbGljayk9XCJnb1RvTmV4dFBhZ2UoKVwiPlxuICAgICAgPGkgaW1wZGMtaWNvbiBuYW1lPVwiY2hldnJvbi1yaWdodFwiPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImRlc2t0b3AtcGFnaW5hdGlvblwiIFtuZ0NsYXNzXT1cInsgJ2Qtbm9uZSc6IG1vYmlsZSB9XCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd3MtcGVyLXBhZ2VcIj5cbiAgICAgIDxkaXY+e3sgcGVyUGFnZUxhYmVsIH19PC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aW1wZGMtZm9ybS1maWVsZD5cbiAgICAgICAgICA8aW1wZGMtc2VsZWN0XG4gICAgICAgICAgICBhbGxvd0NsZWFyPVwiZmFsc2VcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwZXJQYWdlXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlUGVyUGFnZUNoYW5nZSgpXCI+XG4gICAgICAgICAgICA8aW1wZGMtc2VsZWN0LW9wdGlvbiBbdmFsdWVdPVwiMTBcIiBsYWJlbD1cIjEwXCI+PC9pbXBkYy1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgICAgPGltcGRjLXNlbGVjdC1vcHRpb24gW3ZhbHVlXT1cIjI1XCIgbGFiZWw9XCIyNVwiPjwvaW1wZGMtc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgIDxpbXBkYy1zZWxlY3Qtb3B0aW9uIFt2YWx1ZV09XCI1MFwiIGxhYmVsPVwiNTBcIj48L2ltcGRjLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICA8aW1wZGMtc2VsZWN0LW9wdGlvblxuICAgICAgICAgICAgICBbdmFsdWVdPVwiMTAwXCJcbiAgICAgICAgICAgICAgbGFiZWw9XCIxMDBcIj48L2ltcGRjLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICA8aW1wZGMtc2VsZWN0LW9wdGlvblxuICAgICAgICAgICAgICBbdmFsdWVdPVwiMjAwXCJcbiAgICAgICAgICAgICAgbGFiZWw9XCIyMDBcIj48L2ltcGRjLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgPC9pbXBkYy1zZWxlY3Q+XG4gICAgICAgIDwvaW1wZGMtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLXJoc1wiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdW1tYXJ5XCIgW2lubmVySFRNTF09XCJzdW1tYXJ5XCI+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFnaW5hdGlvbi1hY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBpbXBkY0J1dHRvblxuICAgICAgICAgIHRoZW1lPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiRmlyc3QgUGFnZVwiXG4gICAgICAgICAgY2xhc3M9XCJwYWdpbmF0aW9uLWZpcnN0LWxhc3QtYnRuc1wiXG4gICAgICAgICAgKGNsaWNrKT1cImdvVG9FeGFjdFBhZ2UoMSlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJwYWdlIDw9IDFcIj5cbiAgICAgICAgICA8aSBpbXBkYy1pY29uIG5hbWU9XCJjaGV2cm9uLWxlZnQgZmlyc3RcIj48L2k+XG4gICAgICAgICAgPGkgaW1wZGMtaWNvbiBuYW1lPVwiY2hldnJvbi1sZWZ0XCI+PC9pPlxuICAgICAgICAgIDwhLS0gMSAtLT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBpbXBkY0J1dHRvblxuICAgICAgICAgIHRoZW1lPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICBjbGFzcz1cInByZXZpb3VzXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiUHJldmlvdXNcIlxuICAgICAgICAgIChjbGljayk9XCJnb1RvUHJldmlvdXNQYWdlKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJwYWdlIDw9IDFcIj5cbiAgICAgICAgICA8aSBpbXBkYy1pY29uIG5hbWU9XCJjaGV2cm9uLWxlZnRcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGFnZS1jaGFuZ2VcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGltcGRjSW5wdXRcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGFnZVwiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCI0XCJcbiAgICAgICAgICAgIChibHVyKT1cImdvVG9FeGFjdFBhZ2VGcm9tRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJwcmV2ZW50RGVmYXVsdEFuZEJsdXIoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgPHNwYW4+IC8ge3sgdG90YWxQYWdlcyB9fSA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgaW1wZGNCdXR0b25cbiAgICAgICAgICB0aGVtZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIk5leHRcIlxuICAgICAgICAgIChjbGljayk9XCJnb1RvTmV4dFBhZ2UoKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInBhZ2UgPj0gdG90YWxQYWdlc1wiPlxuICAgICAgICAgIDxpIGltcGRjLWljb24gbmFtZT1cImNoZXZyb24tcmlnaHRcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgaW1wZGNCdXR0b25cbiAgICAgICAgICB0aGVtZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgY2xhc3M9XCJwYWdpbmF0aW9uLWZpcnN0LWxhc3QtYnRuc1wiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkxhc3QgUGFnZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImdvVG9FeGFjdFBhZ2UodG90YWxQYWdlcylcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJwYWdlID09PSB0b3RhbFBhZ2VzXCI+XG4gICAgICAgICAgPGkgaW1wZGMtaWNvbiBuYW1lPVwiY2hldnJvbi1yaWdodFwiPjwvaT5cbiAgICAgICAgICA8aSBpbXBkYy1pY29uIG5hbWU9XCJjaGV2cm9uLXJpZ2h0IGxhc3RcIj48L2k+XG4gICAgICAgICAgPCEtLSB7eyB0b3RhbFBhZ2VzIH19IC0tPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { ButtonModule } from '../button';
|
|
5
|
-
import { ImpdcFormsModule } from '../form-field';
|
|
6
|
-
import { IconModule } from '../icon';
|
|
7
|
-
import { PaginationComponent } from './pagination.component';
|
|
8
|
-
import { SizeDetectionModule } from '../size-detection';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class PaginationModule {
|
|
11
|
-
constructor() { }
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: PaginationModule, declarations: [PaginationComponent], imports: [CommonModule,
|
|
14
|
-
ButtonModule,
|
|
15
|
-
FormsModule,
|
|
16
|
-
ImpdcFormsModule,
|
|
17
|
-
IconModule,
|
|
18
|
-
SizeDetectionModule], exports: [ButtonModule, ImpdcFormsModule, IconModule, PaginationComponent] }); }
|
|
19
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PaginationModule, imports: [CommonModule,
|
|
20
|
-
ButtonModule,
|
|
21
|
-
FormsModule,
|
|
22
|
-
ImpdcFormsModule,
|
|
23
|
-
IconModule,
|
|
24
|
-
SizeDetectionModule, ButtonModule, ImpdcFormsModule, IconModule] }); }
|
|
25
|
-
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PaginationModule, decorators: [{
|
|
27
|
-
type: NgModule,
|
|
28
|
-
args: [{
|
|
29
|
-
imports: [
|
|
30
|
-
CommonModule,
|
|
31
|
-
ButtonModule,
|
|
32
|
-
FormsModule,
|
|
33
|
-
ImpdcFormsModule,
|
|
34
|
-
IconModule,
|
|
35
|
-
SizeDetectionModule
|
|
36
|
-
],
|
|
37
|
-
declarations: [PaginationComponent],
|
|
38
|
-
exports: [ButtonModule, ImpdcFormsModule, IconModule, PaginationComponent]
|
|
39
|
-
}]
|
|
40
|
-
}], ctorParameters: () => [] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBY3hELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsZ0JBQWUsQ0FBQzs4R0FETCxnQkFBZ0I7K0dBQWhCLGdCQUFnQixpQkFIWixtQkFBbUIsYUFQaEMsWUFBWTtZQUNaLFlBQVk7WUFDWixXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLFVBQVU7WUFDVixtQkFBbUIsYUFHWCxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLG1CQUFtQjsrR0FFOUQsZ0JBQWdCLFlBVnpCLFlBQVk7WUFDWixZQUFZO1lBQ1osV0FBVztZQUNYLGdCQUFnQjtZQUNoQixVQUFVO1lBQ1YsbUJBQW1CLEVBR1gsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFVBQVU7OzJGQUV6QyxnQkFBZ0I7a0JBWjVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsVUFBVTt3QkFDVixtQkFBbUI7cUJBQ3BCO29CQUNELFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixDQUFDO2lCQUMzRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24nO1xuaW1wb3J0IHsgSW1wZGNGb3Jtc01vZHVsZSB9IGZyb20gJy4uL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24nO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2l6ZURldGVjdGlvbk1vZHVsZSB9IGZyb20gJy4uL3NpemUtZGV0ZWN0aW9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgSW1wZGNGb3Jtc01vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIFNpemVEZXRlY3Rpb25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbUGFnaW5hdGlvbkNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtCdXR0b25Nb2R1bGUsIEltcGRjRm9ybXNNb2R1bGUsIEljb25Nb2R1bGUsIFBhZ2luYXRpb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Nb2R1bGUge1xuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { ProgressBarComponent } from './progress-bar.component';
|
|
2
|
-
export { ProgressBarModule } from './progress-bar.module';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3Byb2dyZXNzLWJhci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFByb2dyZXNzQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnLi9wcm9ncmVzcy1iYXIubW9kdWxlJztcbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
/**
|
|
5
|
-
* The `ProgressBarComponent` (`<impdc-progress-bar`) is a display-only slider to show progress.
|
|
6
|
-
* To use, import `ProgressBarModule` or another module that imports and exports that module from `@impartner/design-components`.
|
|
7
|
-
*/
|
|
8
|
-
export class ProgressBarComponent {
|
|
9
|
-
get textClass() {
|
|
10
|
-
return this.darkText ? 'dark-progress-text' : 'light-progress-text';
|
|
11
|
-
}
|
|
12
|
-
constructor() {
|
|
13
|
-
/**
|
|
14
|
-
* The left/subject text of the Progress Bar.
|
|
15
|
-
*/
|
|
16
|
-
this.labelText = '';
|
|
17
|
-
/**
|
|
18
|
-
* The right/status text of the Progress Bar.
|
|
19
|
-
*/
|
|
20
|
-
this.statusText = '';
|
|
21
|
-
/**
|
|
22
|
-
* The color of the progress bar
|
|
23
|
-
*/
|
|
24
|
-
this.barColor = '';
|
|
25
|
-
/**
|
|
26
|
-
* The color of the label and status
|
|
27
|
-
*/
|
|
28
|
-
this.darkText = true;
|
|
29
|
-
/**
|
|
30
|
-
* The current value of the Progress Bar represented as a number between 0 and 100.
|
|
31
|
-
*/
|
|
32
|
-
this.progressPercentage = 0;
|
|
33
|
-
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ProgressBarComponent, selector: "impdc-progress-bar", inputs: { labelText: "labelText", statusText: "statusText", barColor: "barColor", darkText: "darkText", progressPercentage: "progressPercentage" }, ngImport: i0, template: "<div class=\"progress-container\">\n <div class=\"progress-text\" [ngClass]=\"textClass\">\n <div class=\"text-left\">\n {{ labelText }}\n </div>\n <div class=\"text-right\">\n {{ statusText }}\n </div>\n </div>\n <div class=\"bar-bg\">\n <div\n [ngStyle]=\"{ 'background-color': barColor }\"\n class=\"bar\"\n role=\"progressbar\"\n [style.width.%]=\"progressPercentage\"\n [attr.aria-valuenow]=\"progressPercentage\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"></div>\n </div>\n</div>\n", styles: [".progress-container{width:100%;display:flex;flex-direction:column}.progress-container .progress-text{color:#000;display:flex;flex-direction:row;font-size:1.4rem;padding:0 .2rem .5rem}.progress-container .dark-progress-text{color:var(--impartner-hex-gray-900)}.progress-container .light-progress-text{color:var(--impartner-hex-gray-600)}.progress-container .text-left{flex-grow:1}.progress-container .bar-bg{height:1rem;overflow:hidden;border-bottom-right-radius:.6rem;background-color:#e5e7eb;border-radius:6rem}.progress-container .bar{height:1rem;overflow:hidden;background-color:#1d4ed8;border-radius:6rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
38
|
-
type: Component,
|
|
39
|
-
args: [{ selector: 'impdc-progress-bar', template: "<div class=\"progress-container\">\n <div class=\"progress-text\" [ngClass]=\"textClass\">\n <div class=\"text-left\">\n {{ labelText }}\n </div>\n <div class=\"text-right\">\n {{ statusText }}\n </div>\n </div>\n <div class=\"bar-bg\">\n <div\n [ngStyle]=\"{ 'background-color': barColor }\"\n class=\"bar\"\n role=\"progressbar\"\n [style.width.%]=\"progressPercentage\"\n [attr.aria-valuenow]=\"progressPercentage\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"></div>\n </div>\n</div>\n", styles: [".progress-container{width:100%;display:flex;flex-direction:column}.progress-container .progress-text{color:#000;display:flex;flex-direction:row;font-size:1.4rem;padding:0 .2rem .5rem}.progress-container .dark-progress-text{color:var(--impartner-hex-gray-900)}.progress-container .light-progress-text{color:var(--impartner-hex-gray-600)}.progress-container .text-left{flex-grow:1}.progress-container .bar-bg{height:1rem;overflow:hidden;border-bottom-right-radius:.6rem;background-color:#e5e7eb;border-radius:6rem}.progress-container .bar{height:1rem;overflow:hidden;background-color:#1d4ed8;border-radius:6rem}\n"] }]
|
|
40
|
-
}], ctorParameters: () => [], propDecorators: { labelText: [{
|
|
41
|
-
type: Input
|
|
42
|
-
}], statusText: [{
|
|
43
|
-
type: Input
|
|
44
|
-
}], barColor: [{
|
|
45
|
-
type: Input
|
|
46
|
-
}], darkText: [{
|
|
47
|
-
type: Input
|
|
48
|
-
}], progressPercentage: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVqRDs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sb0JBQW9CO0lBK0IvQixJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7UUFsQ0E7O1dBRUc7UUFFSSxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRXRCOztXQUVHO1FBRUksZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUV2Qjs7V0FFRztRQUVJLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFckI7O1dBRUc7UUFFSSxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXZCOztXQUVHO1FBRUksdUJBQWtCLEdBQUcsQ0FBQyxDQUFDO0lBTWYsQ0FBQzs4R0FuQ0wsb0JBQW9CO2tHQUFwQixvQkFBb0IsOE1DWGpDLDRpQkFvQkE7OzJGRFRhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxvQkFBb0I7d0RBU3ZCLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxVQUFVO3NCQURoQixLQUFLO2dCQU9DLFFBQVE7c0JBRGQsS0FBSztnQkFPQyxRQUFRO3NCQURkLEtBQUs7Z0JBT0Msa0JBQWtCO3NCQUR4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFRoZSBgUHJvZ3Jlc3NCYXJDb21wb25lbnRgIChgPGltcGRjLXByb2dyZXNzLWJhcmApIGlzIGEgZGlzcGxheS1vbmx5IHNsaWRlciB0byBzaG93IHByb2dyZXNzLlxuICogVG8gdXNlLCBpbXBvcnQgYFByb2dyZXNzQmFyTW9kdWxlYCBvciBhbm90aGVyIG1vZHVsZSB0aGF0IGltcG9ydHMgYW5kIGV4cG9ydHMgdGhhdCBtb2R1bGUgZnJvbSBgQGltcGFydG5lci9kZXNpZ24tY29tcG9uZW50c2AuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltcGRjLXByb2dyZXNzLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9ncmVzcy1iYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc0JhckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgbGVmdC9zdWJqZWN0IHRleHQgb2YgdGhlIFByb2dyZXNzIEJhci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbFRleHQgPSAnJztcblxuICAvKipcbiAgICogVGhlIHJpZ2h0L3N0YXR1cyB0ZXh0IG9mIHRoZSBQcm9ncmVzcyBCYXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc3RhdHVzVGV4dCA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgY29sb3Igb2YgdGhlIHByb2dyZXNzIGJhclxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGJhckNvbG9yID0gJyc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb2xvciBvZiB0aGUgbGFiZWwgYW5kIHN0YXR1c1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRhcmtUZXh0ID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIFByb2dyZXNzIEJhciByZXByZXNlbnRlZCBhcyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEwMC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcm9ncmVzc1BlcmNlbnRhZ2UgPSAwO1xuXG4gIGdldCB0ZXh0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kYXJrVGV4dCA/ICdkYXJrLXByb2dyZXNzLXRleHQnIDogJ2xpZ2h0LXByb2dyZXNzLXRleHQnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7fVxufVxuIiwiPGRpdiBjbGFzcz1cInByb2dyZXNzLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtdGV4dFwiIFtuZ0NsYXNzXT1cInRleHRDbGFzc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxlZnRcIj5cbiAgICAgIHt7IGxhYmVsVGV4dCB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICB7eyBzdGF0dXNUZXh0IH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYmFyLWJnXCI+XG4gICAgPGRpdlxuICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IGJhckNvbG9yIH1cIlxuICAgICAgY2xhc3M9XCJiYXJcIlxuICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcbiAgICAgIFtzdHlsZS53aWR0aC4lXT1cInByb2dyZXNzUGVyY2VudGFnZVwiXG4gICAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cInByb2dyZXNzUGVyY2VudGFnZVwiXG4gICAgICBhcmlhLXZhbHVlbWluPVwiMFwiXG4gICAgICBhcmlhLXZhbHVlbWF4PVwiMTAwXCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ProgressBarComponent } from './progress-bar.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class ProgressBarModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ProgressBarModule, declarations: [ProgressBarComponent], imports: [CommonModule], exports: [ProgressBarComponent] }); }
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProgressBarModule, imports: [CommonModule] }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProgressBarModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
imports: [CommonModule],
|
|
14
|
-
declarations: [ProgressBarComponent],
|
|
15
|
-
exports: [ProgressBarComponent]
|
|
16
|
-
}]
|
|
17
|
-
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBT2hFLE1BQU0sT0FBTyxpQkFBaUI7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQUhiLG9CQUFvQixhQUR6QixZQUFZLGFBRVosb0JBQW9COytHQUVuQixpQkFBaUIsWUFKbEIsWUFBWTs7MkZBSVgsaUJBQWlCO2tCQUw3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJDb21wb25lbnQgfSBmcm9tICcuL3Byb2dyZXNzLWJhci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbUHJvZ3Jlc3NCYXJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbUHJvZ3Jlc3NCYXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { ScrollableComponent } from './scrollable.component';
|
|
2
|
-
export { ScrollableModule } from './scrollable.module';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3Njcm9sbGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTY3JvbGxhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9zY3JvbGxhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTY3JvbGxhYmxlTW9kdWxlIH0gZnJvbSAnLi9zY3JvbGxhYmxlLm1vZHVsZSc7XG4iXX0=
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "../size-detection/directive/size-detector.directive";
|
|
5
|
-
import * as i3 from "../icon/icon.component";
|
|
6
|
-
/**
|
|
7
|
-
* The `ScrollableComponent` (`<impdc-scrollable` or `<div impdc-scrollable`) is a container that hides items that wouldn't fit
|
|
8
|
-
* with arrows on the left and right to slide between them.
|
|
9
|
-
* To use, import `ScrollableModule` or another module that imports and exports that module from `@impartner/design-components`.
|
|
10
|
-
* `ScrollableModule` also imports and exports [BrandingModule](./?path=/docs/design-components-directives-impdcbranded).
|
|
11
|
-
*/
|
|
12
|
-
export class ScrollableComponent {
|
|
13
|
-
get canScrollLeft() {
|
|
14
|
-
if (!this._contentElement) {
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
return Math.floor(this._contentElement.scrollLeft) > 0;
|
|
18
|
-
}
|
|
19
|
-
get canScrollRight() {
|
|
20
|
-
if (!this._contentElement) {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
return (Math.ceil(this._contentElement.scrollLeft + this._width) <
|
|
24
|
-
this._contentElement.scrollWidth);
|
|
25
|
-
}
|
|
26
|
-
get _containerElement() {
|
|
27
|
-
if (!this.containerRef) {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
return this.containerRef.nativeElement;
|
|
31
|
-
}
|
|
32
|
-
get _contentElement() {
|
|
33
|
-
if (!this.contentRef) {
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
return this.contentRef.nativeElement;
|
|
37
|
-
}
|
|
38
|
-
constructor(_cd, _hostElementRef) {
|
|
39
|
-
this._cd = _cd;
|
|
40
|
-
this._hostElementRef = _hostElementRef;
|
|
41
|
-
this.GET_ANCESTOR_BG_SEARCH_DEPTH = 64;
|
|
42
|
-
/**
|
|
43
|
-
* The base amount to scroll.
|
|
44
|
-
*/
|
|
45
|
-
this.scrollUnit = 20;
|
|
46
|
-
/**
|
|
47
|
-
* Used in combination with `scrollUnit` to determine how far the Scrollable scrolls when directional arrows are clicked.
|
|
48
|
-
*/
|
|
49
|
-
this.clickScrollMultiplier = 5;
|
|
50
|
-
this._scrollableBgColor = null;
|
|
51
|
-
this._width = 0;
|
|
52
|
-
}
|
|
53
|
-
ngOnChanges(changes) {
|
|
54
|
-
if (changes['scrollUnit'] || changes['clickScrollMultiplier']) {
|
|
55
|
-
if (this._containerElement) {
|
|
56
|
-
this._width = this._containerElement?.clientWidth;
|
|
57
|
-
this._cd.detectChanges();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
ngAfterViewInit() {
|
|
62
|
-
this._width = this.contentRef?.nativeElement.width;
|
|
63
|
-
this._cd.detectChanges();
|
|
64
|
-
Promise.resolve().then(() => this._getBackgroundColorForButtons());
|
|
65
|
-
}
|
|
66
|
-
async scroll(direction) {
|
|
67
|
-
if (!this._contentElement) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
let pixels = direction * this.scrollUnit * this.clickScrollMultiplier;
|
|
71
|
-
let position = 0;
|
|
72
|
-
if (!pixels) {
|
|
73
|
-
if (direction === 1) {
|
|
74
|
-
position = this._contentElement.scrollWidth;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
position = this._contentElement.scrollLeft + pixels;
|
|
79
|
-
}
|
|
80
|
-
await this._scrollToPosition(this._contentElement, position);
|
|
81
|
-
this._cd.detectChanges();
|
|
82
|
-
}
|
|
83
|
-
widthChanged(elementSize) {
|
|
84
|
-
if (!elementSize || !elementSize.width) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
this._width = elementSize.width;
|
|
88
|
-
this._cd.detectChanges();
|
|
89
|
-
}
|
|
90
|
-
async _scrollToPosition(container, position) {
|
|
91
|
-
position = Math.round(position);
|
|
92
|
-
if (container.scrollLeft === position) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
let resolveFn;
|
|
96
|
-
let scrollListener;
|
|
97
|
-
let timeoutId;
|
|
98
|
-
const promise = new Promise(resolve => {
|
|
99
|
-
resolveFn = resolve;
|
|
100
|
-
});
|
|
101
|
-
const finished = () => {
|
|
102
|
-
container.removeEventListener('scroll', scrollListener);
|
|
103
|
-
resolveFn(null);
|
|
104
|
-
};
|
|
105
|
-
scrollListener = () => {
|
|
106
|
-
clearTimeout(timeoutId);
|
|
107
|
-
// scroll is finished when either the position has been reached, or 100ms have elapsed since the last scroll event
|
|
108
|
-
if (container.scrollLeft === position) {
|
|
109
|
-
finished();
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
timeoutId = setTimeout(finished, 100);
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
container.addEventListener('scroll', scrollListener);
|
|
116
|
-
container.scrollTo({
|
|
117
|
-
left: position,
|
|
118
|
-
behavior: 'smooth'
|
|
119
|
-
});
|
|
120
|
-
return promise;
|
|
121
|
-
}
|
|
122
|
-
_getBackgroundColorForButtons() {
|
|
123
|
-
let backgroundColor = this._getBackGroundColor(this._hostElementRef.nativeElement);
|
|
124
|
-
if (!backgroundColor) {
|
|
125
|
-
backgroundColor = this._getAncestorBackgroundColor();
|
|
126
|
-
}
|
|
127
|
-
if (this._scrollableBgColor !== backgroundColor) {
|
|
128
|
-
this._scrollableBgColor = backgroundColor;
|
|
129
|
-
this._cd.detectChanges();
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
_getAncestorBackgroundColor() {
|
|
133
|
-
let result = {
|
|
134
|
-
parent: this._hostElementRef.nativeElement.parentElement,
|
|
135
|
-
backgroundColor: null
|
|
136
|
-
};
|
|
137
|
-
let count = this.GET_ANCESTOR_BG_SEARCH_DEPTH;
|
|
138
|
-
function getParentBackgroundColor(currentContext, getBackgroundColor) {
|
|
139
|
-
const result = { parent: null, backgroundColor: null };
|
|
140
|
-
if (currentContext && currentContext.parent) {
|
|
141
|
-
result.backgroundColor = getBackgroundColor(currentContext.parent);
|
|
142
|
-
if (!result.backgroundColor) {
|
|
143
|
-
result.parent = currentContext.parent.parentElement;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return result;
|
|
147
|
-
}
|
|
148
|
-
while (count > 0) {
|
|
149
|
-
if (result.backgroundColor) {
|
|
150
|
-
break;
|
|
151
|
-
}
|
|
152
|
-
result = getParentBackgroundColor(result, this._getBackGroundColor);
|
|
153
|
-
if (!result.parent) {
|
|
154
|
-
break;
|
|
155
|
-
}
|
|
156
|
-
count = count - 1;
|
|
157
|
-
}
|
|
158
|
-
return result.backgroundColor;
|
|
159
|
-
}
|
|
160
|
-
_getBackGroundColor(element) {
|
|
161
|
-
const computedBackgroundColor = getComputedStyle(element)['backgroundColor'];
|
|
162
|
-
if (computedBackgroundColor !== 'rgba(0, 0, 0, 0)') {
|
|
163
|
-
return computedBackgroundColor;
|
|
164
|
-
}
|
|
165
|
-
return element.style.backgroundColor;
|
|
166
|
-
}
|
|
167
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ScrollableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ScrollableComponent, selector: "impdc-scrollable, div[impdc-scrollable]", inputs: { scrollUnit: "scrollUnit", clickScrollMultiplier: "clickScrollMultiplier" }, host: { properties: { "style.--impdc-scrollable-bg": "this._scrollableBgColor" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }, { propertyName: "contentRef", first: true, predicate: ["content"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"impdc-scrollable\"\n #container\n impdcSizeDetector\n (resized)=\"widthChanged($event)\">\n <a class=\"impdc-scrollable-left\" (click)=\"scroll(-1)\" *ngIf=\"canScrollLeft\">\n <i impdc-icon name=\"chevron-left\" class=\"default\"></i>\n </a>\n <div #content class=\"content-container\">\n <ng-content></ng-content>\n </div>\n <a class=\"impdc-scrollable-right\" (click)=\"scroll(1)\" *ngIf=\"canScrollRight\">\n <i impdc-icon name=\"chevron-right\" class=\"default\"></i>\n </a>\n</div>\n", styles: [".impdc-scrollable{position:relative;overflow-y:hidden}.impdc-scrollable .impdc-scrollable-base,.impdc-scrollable .impdc-scrollable-right,.impdc-scrollable .impdc-scrollable-left{position:absolute;top:0;bottom:0;display:flex;align-items:center;text-align:center;width:6.9rem;z-index:1;color:var(--impd-color-motion-blue-600, #01606d)}.impdc-scrollable .impdc-scrollable-left{justify-content:left;padding-left:1.5rem;background-image:linear-gradient(to right,var(--impdc-scrollable-bg, #fff) 50%,rgba(255,255,255,.0001) 86.46%)}.impdc-scrollable .impdc-scrollable-right{right:0;padding-right:1.5rem;justify-content:right;background-image:linear-gradient(to left,var(--impdc-scrollable-bg, #fff) 50%,rgba(255,255,255,.0001) 86.46%)}.impdc-scrollable .content-container{overflow-x:hidden;-webkit-overflow-scrolling:touch;white-space:nowrap}:host(.branded) .impdc-scrollable .impdc-scrollable-left,:host(.branded) .impdc-scrollable .impdc-scrollable-right{color:var(--px-primary-color, var(--impd-color-motion-blue-600, #01606d))}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.SizeDetectorDirective, selector: "[impdcSizeDetector]", outputs: ["resized"] }, { kind: "component", type: i3.IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
169
|
-
}
|
|
170
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ScrollableComponent, decorators: [{
|
|
171
|
-
type: Component,
|
|
172
|
-
args: [{ selector: 'impdc-scrollable, div[impdc-scrollable]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"impdc-scrollable\"\n #container\n impdcSizeDetector\n (resized)=\"widthChanged($event)\">\n <a class=\"impdc-scrollable-left\" (click)=\"scroll(-1)\" *ngIf=\"canScrollLeft\">\n <i impdc-icon name=\"chevron-left\" class=\"default\"></i>\n </a>\n <div #content class=\"content-container\">\n <ng-content></ng-content>\n </div>\n <a class=\"impdc-scrollable-right\" (click)=\"scroll(1)\" *ngIf=\"canScrollRight\">\n <i impdc-icon name=\"chevron-right\" class=\"default\"></i>\n </a>\n</div>\n", styles: [".impdc-scrollable{position:relative;overflow-y:hidden}.impdc-scrollable .impdc-scrollable-base,.impdc-scrollable .impdc-scrollable-right,.impdc-scrollable .impdc-scrollable-left{position:absolute;top:0;bottom:0;display:flex;align-items:center;text-align:center;width:6.9rem;z-index:1;color:var(--impd-color-motion-blue-600, #01606d)}.impdc-scrollable .impdc-scrollable-left{justify-content:left;padding-left:1.5rem;background-image:linear-gradient(to right,var(--impdc-scrollable-bg, #fff) 50%,rgba(255,255,255,.0001) 86.46%)}.impdc-scrollable .impdc-scrollable-right{right:0;padding-right:1.5rem;justify-content:right;background-image:linear-gradient(to left,var(--impdc-scrollable-bg, #fff) 50%,rgba(255,255,255,.0001) 86.46%)}.impdc-scrollable .content-container{overflow-x:hidden;-webkit-overflow-scrolling:touch;white-space:nowrap}:host(.branded) .impdc-scrollable .impdc-scrollable-left,:host(.branded) .impdc-scrollable .impdc-scrollable-right{color:var(--px-primary-color, var(--impd-color-motion-blue-600, #01606d))}\n"] }]
|
|
173
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { scrollUnit: [{
|
|
174
|
-
type: Input
|
|
175
|
-
}], clickScrollMultiplier: [{
|
|
176
|
-
type: Input
|
|
177
|
-
}], _scrollableBgColor: [{
|
|
178
|
-
type: HostBinding,
|
|
179
|
-
args: ['style.--impdc-scrollable-bg']
|
|
180
|
-
}], containerRef: [{
|
|
181
|
-
type: ViewChild,
|
|
182
|
-
args: ['container', { static: false }]
|
|
183
|
-
}], contentRef: [{
|
|
184
|
-
type: ViewChild,
|
|
185
|
-
args: ['content', { static: false }]
|
|
186
|
-
}] } });
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFHdkI7Ozs7O0dBS0c7QUFPSCxNQUFNLE9BQU8sbUJBQW1CO0lBaUI5QixJQUFXLGFBQWE7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzFCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sQ0FDTCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDeEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQ2pDLENBQUM7SUFDSixDQUFDO0lBT0QsSUFBWSxpQkFBaUI7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFP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cEIsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBRU8sbUJBQW1CLENBQUMsT0FBb0I7UUFDOUMsTUFBTSx1QkFBdUIsR0FDM0IsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUvQyxJQUFJLHVCQUF1QixLQUFLLGtCQUFrQixFQUFFLENBQUM7WUFDbkQsT0FBTyx1QkFBdUIsQ0FBQztRQUNqQyxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUN2QyxDQUFDOzhHQTNOVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixpZEMxQmhDLDZnQkFlQTs7MkZEV2EsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLHlDQUF5QyxtQkFHbEMsdUJBQXVCLENBQUMsTUFBTTsrR0FReEMsVUFBVTtzQkFEaEIsS0FBSztnQkFPQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBSUUsa0JBQWtCO3NCQUR6QixXQUFXO3VCQUFDLDZCQUE2QjtnQkF5Qm5DLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFZbEMsVUFBVTtzQkFEaEIsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRWxlbWVudFNpemUgfSBmcm9tICcuLi9zaXplLWRldGVjdGlvbic7XG5cbi8qKlxuICogVGhlIGBTY3JvbGxhYmxlQ29tcG9uZW50YCAoYDxpbXBkYy1zY3JvbGxhYmxlYCBvciBgPGRpdiBpbXBkYy1zY3JvbGxhYmxlYCkgaXMgYSBjb250YWluZXIgdGhhdCBoaWRlcyBpdGVtcyB0aGF0IHdvdWxkbid0IGZpdFxuICogd2l0aCBhcnJvd3Mgb24gdGhlIGxlZnQgYW5kIHJpZ2h0IHRvIHNsaWRlIGJldHdlZW4gdGhlbS5cbiAqIFRvIHVzZSwgaW1wb3J0IGBTY3JvbGxhYmxlTW9kdWxlYCBvciBhbm90aGVyIG1vZHVsZSB0aGF0IGltcG9ydHMgYW5kIGV4cG9ydHMgdGhhdCBtb2R1bGUgZnJvbSBgQGltcGFydG5lci9kZXNpZ24tY29tcG9uZW50c2AuXG4gKiBgU2Nyb2xsYWJsZU1vZHVsZWAgYWxzbyBpbXBvcnRzIGFuZCBleHBvcnRzIFtCcmFuZGluZ01vZHVsZV0oLi8/cGF0aD0vZG9jcy9kZXNpZ24tY29tcG9uZW50cy1kaXJlY3RpdmVzLWltcGRjYnJhbmRlZCkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltcGRjLXNjcm9sbGFibGUsIGRpdltpbXBkYy1zY3JvbGxhYmxlXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGxhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2Nyb2xsYWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTY3JvbGxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBHRVRfQU5DRVNUT1JfQkdfU0VBUkNIX0RFUFRIID0gNjQ7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBhbW91bnQgdG8gc2Nyb2xsLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNjcm9sbFVuaXQgPSAyMDtcblxuICAvKipcbiAgICogVXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGBzY3JvbGxVbml0YCB0byBkZXRlcm1pbmUgaG93IGZhciB0aGUgU2Nyb2xsYWJsZSBzY3JvbGxzIHdoZW4gZGlyZWN0aW9uYWwgYXJyb3dzIGFyZSBjbGlja2VkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNsaWNrU2Nyb2xsTXVsdGlwbGllciA9IDU7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWltcGRjLXNjcm9sbGFibGUtYmcnKVxuICBwcml2YXRlIF9zY3JvbGxhYmxlQmdDb2xvcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBjYW5TY3JvbGxMZWZ0KCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5fY29udGVudEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLl9jb250ZW50RWxlbWVudC5zY3JvbGxMZWZ0KSA+IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNhblNjcm9sbFJpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5fY29udGVudEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgTWF0aC5jZWlsKHRoaXMuX2NvbnRlbnRFbGVtZW50LnNjcm9sbExlZnQgKyB0aGlzLl93aWR0aCkgPFxuICAgICAgdGhpcy5fY29udGVudEVsZW1lbnQuc2Nyb2xsV2lkdGhcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfd2lkdGggPSAwO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgY29udGFpbmVyUmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgZ2V0IF9jb250YWluZXJFbGVtZW50KCk6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmNvbnRhaW5lclJlZikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAVmlld0NoaWxkKCdjb250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBjb250ZW50UmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgZ2V0IF9jb250ZW50RWxlbWVudCgpOiBIVE1MRGl2RWxlbWVudCB8IG51bGwge1xuICAgIGlmICghdGhpcy5jb250ZW50UmVmKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaG9zdEVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Njcm9sbFVuaXQnXSB8fCBjaGFuZ2VzWydjbGlja1Njcm9sbE11bHRpcGxpZXInXSkge1xuICAgICAgaWYgKHRoaXMuX2NvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5fd2lkdGggPSB0aGlzLl9jb250YWluZXJFbGVtZW50Py5jbGllbnRXaWR0aDtcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fd2lkdGggPSB0aGlzLmNvbnRlbnRSZWY/Lm5hdGl2ZUVsZW1lbnQud2lkdGg7XG4gICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLl9nZXRCYWNrZ3JvdW5kQ29sb3JGb3JCdXR0b25zKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNjcm9sbChkaXJlY3Rpb246IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5fY29udGVudEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgcGl4ZWxzID0gZGlyZWN0aW9uICogdGhpcy5zY3JvbGxVbml0ICogdGhpcy5jbGlja1Njcm9sbE11bHRpcGxpZXI7XG4gICAgbGV0IHBvc2l0aW9uID0gMDtcblxuICAgIGlmICghcGl4ZWxzKSB7XG4gICAgICBpZiAoZGlyZWN0aW9uID09PSAxKSB7XG4gICAgICAgIHBvc2l0aW9uID0gdGhpcy5fY29udGVudEVsZW1lbnQuc2Nyb2xsV2lkdGg7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvc2l0aW9uID0gdGhpcy5fY29udGVudEVsZW1lbnQuc2Nyb2xsTGVmdCArIHBpeGVscztcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLl9zY3JvbGxUb1Bvc2l0aW9uKHRoaXMuX2NvbnRlbnRFbGVtZW50LCBwb3NpdGlvbik7XG5cbiAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgd2lkdGhDaGFuZ2VkKGVsZW1lbnRTaXplOiBJRWxlbWVudFNpemUpOiB2b2lkIHtcbiAgICBpZiAoIWVsZW1lbnRTaXplIHx8ICFlbGVtZW50U2l6ZS53aWR0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl93aWR0aCA9IGVsZW1lbnRTaXplLndpZHRoO1xuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3Njcm9sbFRvUG9zaXRpb24oY29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCwgcG9zaXRpb246IG51bWJlcikge1xuICAgIHBvc2l0aW9uID0gTWF0aC5yb3VuZChwb3NpdGlvbik7XG5cbiAgICBpZiAoY29udGFpbmVyLnNjcm9sbExlZnQgPT09IHBvc2l0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHJlc29sdmVGbjogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkO1xuICAgIGxldCBzY3JvbGxMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgICBsZXQgdGltZW91dElkOiBhbnk7XG5cbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICByZXNvbHZlRm4gPSByZXNvbHZlO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZmluaXNoZWQgPSAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgc2Nyb2xsTGlzdGVuZXIpO1xuICAgICAgcmVzb2x2ZUZuKG51bGwpO1xuICAgIH07XG5cbiAgICBzY3JvbGxMaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuXG4gICAgICAvLyBzY3JvbGwgaXMgZmluaXNoZWQgd2hlbiBlaXRoZXIgdGhlIHBvc2l0aW9uIGhhcyBiZWVuIHJlYWNoZWQsIG9yIDEwMG1zIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCBzY3JvbGwgZXZlbnRcbiAgICAgIGlmIChjb250YWluZXIuc2Nyb2xsTGVmdCA9PT0gcG9zaXRpb24pIHtcbiAgICAgICAgZmluaXNoZWQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoZmluaXNoZWQsIDEwMCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBzY3JvbGxMaXN0ZW5lcik7XG5cbiAgICBjb250YWluZXIuc2Nyb2xsVG8oe1xuICAgICAgbGVmdDogcG9zaXRpb24sXG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCdcbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9taXNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QmFja2dyb3VuZENvbG9yRm9yQnV0dG9ucygpOiB2b2lkIHtcbiAgICBsZXQgYmFja2dyb3VuZENvbG9yID0gdGhpcy5fZ2V0QmFja0dyb3VuZENvbG9yKFxuICAgICAgdGhpcy5faG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICk7XG5cbiAgICBpZiAoIWJhY2tncm91bmRDb2xvcikge1xuICAgICAgYmFja2dyb3VuZENvbG9yID0gdGhpcy5fZ2V0QW5jZXN0b3JCYWNrZ3JvdW5kQ29sb3IoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fc2Nyb2xsYWJsZUJnQ29sb3IgIT09IGJhY2tncm91bmRDb2xvcikge1xuICAgICAgdGhpcy5fc2Nyb2xsYWJsZUJnQ29sb3IgPSBiYWNrZ3JvdW5kQ29sb3I7XG4gICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QW5jZXN0b3JCYWNrZ3JvdW5kQ29sb3IoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgdHlwZSBwYXJlbnRCZ1Jlc3VsdCA9IHtcbiAgICAgIHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG5cbiAgICBsZXQgcmVzdWx0OiBwYXJlbnRCZ1Jlc3VsdCA9IHtcbiAgICAgIHBhcmVudDogdGhpcy5faG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBudWxsXG4gICAgfTtcblxuICAgIGxldCBjb3VudCA9IHRoaXMuR0VUX0FOQ0VTVE9SX0JHX1NFQVJDSF9ERVBUSDtcblxuICAgIGZ1bmN0aW9uIGdldFBhcmVudEJhY2tncm91bmRDb2xvcihcbiAgICAgIGN1cnJlbnRDb250ZXh0OiBwYXJlbnRCZ1Jlc3VsdCxcbiAgICAgIGdldEJhY2tncm91bmRDb2xvcjogKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBzdHJpbmcgfCBudWxsXG4gICAgKTogcGFyZW50QmdSZXN1bHQge1xuICAgICAgY29uc3QgcmVzdWx0OiBwYXJlbnRCZ1Jlc3VsdCA9IHsgcGFyZW50OiBudWxsLCBiYWNrZ3JvdW5kQ29sb3I6IG51bGwgfTtcbiAgICAgIGlmIChjdXJyZW50Q29udGV4dCAmJiBjdXJyZW50Q29udGV4dC5wYXJlbnQpIHtcbiAgICAgICAgcmVzdWx0LmJhY2tncm91bmRDb2xvciA9IGdldEJhY2tncm91bmRDb2xvcihjdXJyZW50Q29udGV4dC5wYXJlbnQpO1xuXG4gICAgICAgIGlmICghcmVzdWx0LmJhY2tncm91bmRDb2xvcikge1xuICAgICAgICAgIHJlc3VsdC5wYXJlbnQgPSBjdXJyZW50Q29udGV4dC5wYXJlbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHdoaWxlIChjb3VudCA+IDApIHtcbiAgICAgIGlmIChyZXN1bHQuYmFja2dyb3VuZENvbG9yKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVzdWx0ID0gZ2V0UGFyZW50QmFja2dyb3VuZENvbG9yKHJlc3VsdCwgdGhpcy5fZ2V0QmFja0dyb3VuZENvbG9yKTtcblxuICAgICAgaWYgKCFyZXN1bHQucGFyZW50KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY291bnQgPSBjb3VudCAtIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC5iYWNrZ3JvdW5kQ29sb3I7XG4gIH1cblxuICBwcml2YXRlIF9nZXRCYWNrR3JvdW5kQ29sb3IoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBjb21wdXRlZEJhY2tncm91bmRDb2xvciA9XG4gICAgICBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpWydiYWNrZ3JvdW5kQ29sb3InXTtcblxuICAgIGlmIChjb21wdXRlZEJhY2tncm91bmRDb2xvciAhPT0gJ3JnYmEoMCwgMCwgMCwgMCknKSB7XG4gICAgICByZXR1cm4gY29tcHV0ZWRCYWNrZ3JvdW5kQ29sb3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiaW1wZGMtc2Nyb2xsYWJsZVwiXG4gICNjb250YWluZXJcbiAgaW1wZGNTaXplRGV0ZWN0b3JcbiAgKHJlc2l6ZWQpPVwid2lkdGhDaGFuZ2VkKCRldmVudClcIj5cbiAgPGEgY2xhc3M9XCJpbXBkYy1zY3JvbGxhYmxlLWxlZnRcIiAoY2xpY2spPVwic2Nyb2xsKC0xKVwiICpuZ0lmPVwiY2FuU2Nyb2xsTGVmdFwiPlxuICAgIDxpIGltcGRjLWljb24gbmFtZT1cImNoZXZyb24tbGVmdFwiIGNsYXNzPVwiZGVmYXVsdFwiPjwvaT5cbiAgPC9hPlxuICA8ZGl2ICNjb250ZW50IGNsYXNzPVwiY29udGVudC1jb250YWluZXJcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8YSBjbGFzcz1cImltcGRjLXNjcm9sbGFibGUtcmlnaHRcIiAoY2xpY2spPVwic2Nyb2xsKDEpXCIgKm5nSWY9XCJjYW5TY3JvbGxSaWdodFwiPlxuICAgIDxpIGltcGRjLWljb24gbmFtZT1cImNoZXZyb24tcmlnaHRcIiBjbGFzcz1cImRlZmF1bHRcIj48L2k+XG4gIDwvYT5cbjwvZGl2PlxuIl19
|