@impartner/design-components 1.2.0 → 2.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 +5 -4
- package/constants/fontawesome-icons.d.ts +2 -2
- package/{esm2020 → esm2022}/constants/fontawesome-icons.mjs +1 -1
- package/{esm2020 → esm2022}/lib/alert/alert.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/alert/alert.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/avatar/avatar.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/avatar/avatar.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/avatar-group/avatar-group.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/avatar-group/avatar-group.module.mjs +5 -5
- package/esm2022/lib/backdrop/backdrop.component.mjs +52 -0
- package/{esm2020 → esm2022}/lib/backdrop/backdrop.module.mjs +6 -6
- package/esm2022/lib/badge/badge.component.mjs +105 -0
- package/{esm2020 → esm2022}/lib/badge/badge.module.mjs +6 -6
- package/{esm2020 → esm2022}/lib/badge/types/badge-size.mjs +1 -1
- package/{esm2020 → esm2022}/lib/branding/branded.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/branding/branding.module.mjs +6 -6
- package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb-item.component.mjs +6 -6
- package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/breadcrumb/breadcrumb.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/button/button.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/button/button.module.mjs +6 -6
- package/{esm2020 → esm2022}/lib/button-group/button-group.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/button-group/button-group.module.mjs +6 -6
- package/{esm2020 → esm2022}/lib/card-heading/card-heading.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/card-heading/card-heading.module.mjs +6 -6
- package/esm2022/lib/data-card/data-card.component.mjs +123 -0
- package/esm2022/lib/data-card/data-card.module.mjs +21 -0
- package/{esm2020 → esm2022}/lib/design-components.module.mjs +61 -61
- package/{esm2020 → esm2022}/lib/dropdown/components/dropdown-item/dropdown-item.component.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown.component.mjs +143 -0
- package/{esm2020 → esm2022}/lib/dropdown/dropdown.module.mjs +6 -6
- package/{esm2020 → esm2022}/lib/file-upload/directives/file-drop.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/file-upload/file-upload.component.mjs +30 -30
- package/{esm2020 → esm2022}/lib/file-upload/file-upload.module.mjs +8 -8
- package/{esm2020 → esm2022}/lib/file-upload/pipes/human-readable-byte-size.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/controls/checkbox/checkbox.component.mjs +49 -49
- package/{esm2020 → esm2022}/lib/form-field/controls/checkbox/checkbox.module.mjs +5 -5
- package/esm2022/lib/form-field/controls/input/input.directive.mjs +233 -0
- package/esm2022/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +260 -0
- package/esm2022/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +289 -0
- package/{esm2020 → esm2022}/lib/form-field/controls/radio/radio.module.mjs +5 -5
- package/esm2022/lib/form-field/controls/select/option/select-option.component.mjs +139 -0
- package/esm2022/lib/form-field/controls/select/select-model.mjs +150 -0
- package/esm2022/lib/form-field/controls/select/select.component.mjs +522 -0
- package/{esm2020 → esm2022}/lib/form-field/controls/select/select.module.mjs +9 -9
- package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.mjs +4 -4
- package/esm2022/lib/form-field/controls/shared/toggle/toggle.component.mjs +96 -0
- package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/toggle.module.mjs +6 -6
- package/{esm2020 → esm2022}/lib/form-field/directives/corner-hint.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/directives/error.directive.mjs +4 -4
- package/esm2022/lib/form-field/directives/form-root.directive.mjs +91 -0
- package/{esm2020 → esm2022}/lib/form-field/directives/hint.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/directives/label.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/directives/prefix.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/directives/suffix.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/form-field.component.mjs +11 -11
- package/{esm2020 → esm2022}/lib/form-field/impdc-forms.module.mjs +28 -28
- package/{esm2020 → esm2022}/lib/form-field/services/error-state-matcher.service.mjs +7 -7
- package/{esm2020 → esm2022}/lib/form-field/services/unique-selection-dispatcher.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/shared/disabled.mixin.mjs +5 -5
- package/esm2022/lib/form-field/shared/error-state.mixin.mjs +24 -0
- package/{esm2020 → esm2022}/lib/form-field/shared/form-field-control.mjs +4 -4
- package/{esm2020 → esm2022}/lib/form-field/shared/tab-index.mixin.mjs +6 -6
- package/{esm2020 → esm2022}/lib/icon/icon.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/icon/icon.module.mjs +6 -6
- package/esm2022/lib/modal/modal.component.mjs +260 -0
- package/{esm2020 → esm2022}/lib/modal/modal.module.mjs +14 -14
- package/{esm2020 → esm2022}/lib/modal/types/modal-component-sizes.mjs +1 -1
- package/{esm2020 → esm2022}/lib/modal/types/modal-theme.mjs +1 -1
- package/esm2022/lib/pagination/pagination.component.mjs +176 -0
- package/{esm2020 → esm2022}/lib/pagination/pagination.module.mjs +16 -16
- package/{esm2020 → esm2022}/lib/progress-bar/progress-bar.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/progress-bar/progress-bar.module.mjs +5 -5
- package/esm2022/lib/scrollable/scrollable.component.mjs +186 -0
- package/{esm2020 → esm2022}/lib/scrollable/scrollable.module.mjs +6 -6
- package/esm2022/lib/select-icon/select-icon.component.mjs +308 -0
- package/{esm2020 → esm2022}/lib/select-icon/select-icon.module.mjs +13 -13
- package/{esm2020 → esm2022}/lib/size-detection/directive/size-detector.directive.mjs +5 -5
- package/{esm2020 → esm2022}/lib/size-detection/size-detection.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/spinner/spinner.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/spinner/spinner.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/table/components/bulk-actions/bulk-actions.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/table/components/column-heading/column-heading.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/table/components/index.mjs +2 -1
- package/esm2022/lib/table/components/row-actions/row-actions.component.mjs +61 -0
- package/esm2022/lib/table/containers/table.component.mjs +403 -0
- package/esm2022/lib/table/directives/table-inject-component.directive.mjs +46 -0
- package/{esm2020 → esm2022}/lib/table/directives/table.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/table/enumerations/table-column-type.mjs +2 -1
- package/{esm2020 → esm2022}/lib/table/helpers/table-theme.helper.mjs +3 -3
- package/esm2022/lib/table/interfaces/index.mjs +11 -0
- package/esm2022/lib/table/interfaces/table-column-defs.type.mjs +2 -0
- package/esm2022/lib/table/interfaces/table-row-action-payload.interface.mjs +2 -0
- package/esm2022/lib/table/interfaces/table-row-action.interface.mjs +2 -0
- package/esm2022/lib/table/table.module.mjs +96 -0
- package/{esm2020 → esm2022}/lib/text-highlight/text-highlight.component.mjs +6 -6
- package/{esm2020 → esm2022}/lib/text-highlight/text-highlight.module.mjs +6 -6
- package/{esm2020 → esm2022}/services/index.mjs +1 -1
- package/esm2022/services/interaction.service.mjs +88 -0
- package/{esm2020 → esm2022}/types/component-theme.mjs +1 -1
- package/{fesm2020 → fesm2022}/impartner-design-components.mjs +1197 -1032
- package/fesm2022/impartner-design-components.mjs.map +1 -0
- package/lib/alert/alert.component.d.ts +1 -1
- package/lib/alert/theme/alert-theme.d.ts +1 -1
- package/lib/avatar/avatar.component.d.ts +1 -1
- package/lib/avatar-group/avatar-group.component.d.ts +1 -1
- package/lib/backdrop/backdrop.component.d.ts +9 -6
- package/lib/badge/badge.component.d.ts +3 -2
- package/lib/badge/types/badge-icon.d.ts +1 -1
- package/lib/badge/types/badge-size.d.ts +1 -1
- package/lib/branding/branded.directive.d.ts +1 -1
- package/lib/breadcrumb/breadcrumb-item.component.d.ts +1 -1
- package/lib/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/lib/button/button.component.d.ts +1 -1
- package/lib/button/themes/button-theme.d.ts +1 -1
- package/lib/button-group/button-group.component.d.ts +1 -1
- package/lib/card-heading/card-heading.component.d.ts +1 -1
- package/lib/data-card/data-card.component.d.ts +14 -18
- package/lib/data-card/data-card.module.d.ts +2 -1
- package/lib/dropdown/components/dropdown-item/dropdown-item.component.d.ts +1 -1
- package/lib/dropdown/dropdown.component.d.ts +6 -5
- package/lib/dropdown/types/dropdown-position.d.ts +1 -1
- package/lib/file-upload/directives/file-drop.directive.d.ts +1 -1
- package/lib/file-upload/file-upload.component.d.ts +1 -1
- package/lib/form-field/controls/checkbox/checkbox.component.d.ts +1 -1
- package/lib/form-field/controls/input/input.directive.d.ts +1 -1
- package/lib/form-field/controls/radio/radio-button/radio-button.component.d.ts +1 -1
- package/lib/form-field/controls/radio/radio-group/radio-group.directive.d.ts +1 -1
- package/lib/form-field/controls/select/option/select-option.component.d.ts +4 -4
- package/lib/form-field/controls/select/select.component.d.ts +1 -1
- package/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.d.ts +1 -1
- package/lib/form-field/controls/shared/toggle/toggle.component.d.ts +1 -1
- package/lib/form-field/directives/corner-hint.directive.d.ts +1 -1
- package/lib/form-field/directives/error.directive.d.ts +1 -1
- package/lib/form-field/directives/form-root.directive.d.ts +2 -2
- package/lib/form-field/directives/hint.directive.d.ts +1 -1
- package/lib/form-field/directives/label.directive.d.ts +1 -1
- package/lib/form-field/directives/prefix.directive.d.ts +1 -1
- package/lib/form-field/directives/suffix.directive.d.ts +1 -1
- package/lib/form-field/form-field.component.d.ts +1 -1
- package/lib/form-field/services/unique-selection-dispatcher.service.d.ts +1 -1
- package/lib/form-field/shared/constructors.type.d.ts +2 -2
- package/lib/form-field/shared/disabled.mixin.d.ts +1 -1
- package/lib/form-field/shared/error-state.mixin.d.ts +1 -1
- package/lib/form-field/shared/form-field-control.d.ts +1 -1
- package/lib/form-field/shared/tab-index.mixin.d.ts +1 -1
- package/lib/icon/icon.component.d.ts +1 -1
- package/lib/modal/modal.component.d.ts +17 -10
- package/lib/modal/types/modal-component-sizes.d.ts +1 -1
- package/lib/modal/types/modal-theme.d.ts +1 -1
- package/lib/pagination/pagination.component.d.ts +1 -1
- package/lib/progress-bar/progress-bar.component.d.ts +1 -1
- package/lib/scrollable/scrollable.component.d.ts +1 -1
- package/lib/select-icon/select-icon.component.d.ts +1 -1
- package/lib/size-detection/directive/size-detector.directive.d.ts +1 -1
- package/lib/spinner/spinner.component.d.ts +1 -1
- package/lib/table/components/bulk-actions/bulk-actions.component.d.ts +1 -1
- package/lib/table/components/column-heading/column-heading.component.d.ts +1 -1
- package/lib/table/components/index.d.ts +1 -0
- package/lib/table/components/row-actions/row-actions.component.d.ts +21 -0
- package/lib/table/containers/table.component.d.ts +12 -6
- package/lib/table/directives/table-inject-component.directive.d.ts +3 -3
- package/lib/table/directives/table.directive.d.ts +1 -1
- package/lib/table/enumerations/table-column-type.d.ts +2 -1
- package/lib/table/helpers/table-theme.helper.d.ts +4 -4
- package/lib/table/interfaces/custom-cell-renderer-components.type.d.ts +1 -1
- package/lib/table/interfaces/index.d.ts +3 -1
- package/lib/table/interfaces/{table-column-def.interface.d.ts → table-column-defs.type.d.ts} +8 -1
- package/lib/table/interfaces/table-row-action-payload.interface.d.ts +6 -0
- package/lib/table/interfaces/table-row-action.interface.d.ts +9 -0
- package/lib/table/interfaces/table-row-item.interface.d.ts +3 -3
- package/lib/table/table.module.d.ts +12 -10
- package/lib/text-highlight/text-highlight.component.d.ts +1 -1
- package/package.json +16 -22
- package/services/index.d.ts +1 -1
- package/services/interaction.service.d.ts +20 -10
- package/types/component-size.d.ts +2 -2
- package/types/component-theme.d.ts +1 -1
- package/utilities/boolean-props.d.ts +1 -1
- package/utilities/number-props.d.ts +1 -1
- package/esm2020/lib/backdrop/backdrop.component.mjs +0 -40
- package/esm2020/lib/badge/badge.component.mjs +0 -99
- package/esm2020/lib/data-card/data-card.component.mjs +0 -128
- package/esm2020/lib/data-card/data-card.module.mjs +0 -20
- package/esm2020/lib/dropdown/dropdown.component.mjs +0 -142
- package/esm2020/lib/form-field/controls/input/input.directive.mjs +0 -233
- package/esm2020/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +0 -260
- package/esm2020/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +0 -289
- package/esm2020/lib/form-field/controls/select/option/select-option.component.mjs +0 -139
- package/esm2020/lib/form-field/controls/select/select-model.mjs +0 -150
- package/esm2020/lib/form-field/controls/select/select.component.mjs +0 -522
- package/esm2020/lib/form-field/controls/shared/toggle/toggle.component.mjs +0 -96
- package/esm2020/lib/form-field/directives/form-root.directive.mjs +0 -91
- package/esm2020/lib/form-field/shared/error-state.mixin.mjs +0 -24
- package/esm2020/lib/modal/modal.component.mjs +0 -187
- package/esm2020/lib/pagination/pagination.component.mjs +0 -176
- package/esm2020/lib/scrollable/scrollable.component.mjs +0 -186
- package/esm2020/lib/select-icon/select-icon.component.mjs +0 -308
- package/esm2020/lib/table/containers/table.component.mjs +0 -386
- package/esm2020/lib/table/directives/table-inject-component.directive.mjs +0 -46
- package/esm2020/lib/table/interfaces/index.mjs +0 -9
- package/esm2020/lib/table/interfaces/table-column-def.interface.mjs +0 -2
- package/esm2020/lib/table/table.module.mjs +0 -88
- package/esm2020/services/interaction.service.mjs +0 -81
- package/fesm2015/impartner-design-components.mjs +0 -9214
- package/fesm2015/impartner-design-components.mjs.map +0 -1
- package/fesm2020/impartner-design-components.mjs.map +0 -1
- /package/{esm2020 → esm2022}/constants/index.mjs +0 -0
- /package/{esm2020 → esm2022}/impartner-design-components.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/alert/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/alert/theme/alert-theme.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/alert/theme/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/avatar/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/avatar-group/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/backdrop/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/badge/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/badge/types/badge-icon.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/badge/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/branding/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/breadcrumb/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/button/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/button/themes/button-theme.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/button/themes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/button-group/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/card-heading/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-card/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dropdown/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dropdown/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dropdown/types/dropdown-position.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dropdown/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/file-upload/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/file-upload/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/file-upload/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/checkbox/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/input/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/radio/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/radio/injection-tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/radio-button.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/radio-change-event.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/radio/interfaces/radio-group.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/select/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/select/option/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/select/option-parent.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/shared/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/controls/shared/toggle/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/form-field-errors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/impdc-forms.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/shared/constructors.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/form-field/shared/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/icon/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modal/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modal/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pagination/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/progress-bar/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/scrollable/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/select-icon/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/size-detection/directive/element-size.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/size-detection/directive/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/size-detection/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/spinner/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/constants/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/constants/public-table.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/constants/table.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/containers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/enumerations/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/helpers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/interfaces/cell-renderer.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/interfaces/custom-cell-renderer-components.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/interfaces/sort-by-payload.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/interfaces/table-cell-option.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/interfaces/table-event-payload.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/table/interfaces/table-row-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/text-highlight/index.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/types/component-size.mjs +0 -0
- /package/{esm2020 → esm2022}/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utilities/boolean-props.mjs +0 -0
- /package/{esm2020 → esm2022}/utilities/dc.mjs +0 -0
- /package/{esm2020 → esm2022}/utilities/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utilities/lc.mjs +0 -0
- /package/{esm2020 → esm2022}/utilities/number-props.mjs +0 -0
- /package/{esm2020 → esm2022}/utilities/sanitize.mjs +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"impartner-design-components.mjs","sources":["../../../../projects/design-components/src/constants/fontawesome-icons.ts","../../../../projects/design-components/src/types/component-size.ts","../../../../projects/design-components/src/types/component-theme.ts","../../../../projects/design-components/src/utilities/boolean-props.ts","../../../../projects/design-components/src/utilities/number-props.ts","../../../../projects/design-components/src/utilities/sanitize.ts","../../../../projects/design-components/src/utilities/dc.ts","../../../../projects/design-components/src/utilities/lc.ts","../../../../projects/design-components/src/lib/text-highlight/text-highlight.component.ts","../../../../projects/design-components/src/lib/text-highlight/text-highlight.module.ts","../../../../projects/design-components/src/lib/icon/icon.component.ts","../../../../projects/design-components/src/lib/icon/icon.component.html","../../../../projects/design-components/src/lib/button/button.component.ts","../../../../projects/design-components/src/lib/button/button.component.html","../../../../projects/design-components/src/lib/branding/branded.directive.ts","../../../../projects/design-components/src/lib/branding/branding.module.ts","../../../../projects/design-components/src/lib/icon/icon.module.ts","../../../../projects/design-components/src/lib/button/button.module.ts","../../../../projects/design-components/src/lib/table/constants/table.constants.ts","../../../../projects/design-components/src/lib/table/constants/public-table.constants.ts","../../../../projects/design-components/src/lib/table/enumerations/table-column-type.ts","../../../../projects/design-components/src/lib/table/helpers/table-theme.helper.ts","../../../../projects/design-components/src/lib/form-field/controls/select/option-parent.ts","../../../../projects/design-components/src/lib/form-field/controls/select/option/select-option.component.ts","../../../../projects/design-components/src/lib/form-field/controls/select/option/select-option.component.html","../../../../projects/design-components/src/lib/form-field/directives/corner-hint.directive.ts","../../../../projects/design-components/src/lib/form-field/directives/error.directive.ts","../../../../projects/design-components/src/lib/form-field/directives/form-root.directive.ts","../../../../projects/design-components/src/lib/form-field/directives/hint.directive.ts","../../../../projects/design-components/src/lib/form-field/directives/label.directive.ts","../../../../projects/design-components/src/lib/form-field/directives/prefix.directive.ts","../../../../projects/design-components/src/lib/form-field/directives/suffix.directive.ts","../../../../projects/design-components/src/lib/form-field/shared/disabled.mixin.ts","../../../../projects/design-components/src/lib/form-field/shared/error-state.mixin.ts","../../../../projects/design-components/src/lib/form-field/shared/form-field-control.ts","../../../../projects/design-components/src/lib/form-field/shared/tab-index.mixin.ts","../../../../projects/design-components/src/lib/form-field/controls/select/select-model.ts","../../../../projects/design-components/src/lib/form-field/services/error-state-matcher.service.ts","../../../../projects/design-components/src/lib/form-field/services/unique-selection-dispatcher.service.ts","../../../../projects/design-components/src/lib/form-field/controls/select/select.component.ts","../../../../projects/design-components/src/lib/form-field/controls/select/select.component.html","../../../../projects/design-components/src/lib/form-field/form-field-errors.ts","../../../../projects/design-components/src/lib/form-field/form-field.component.ts","../../../../projects/design-components/src/lib/form-field/form-field.component.html","../../../../projects/design-components/src/lib/form-field/controls/input/input.directive.ts","../../../../projects/design-components/src/lib/size-detection/directive/size-detector.directive.ts","../../../../projects/design-components/src/lib/pagination/pagination.component.ts","../../../../projects/design-components/src/lib/pagination/pagination.component.html","../../../../projects/design-components/src/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.ts","../../../../projects/design-components/src/lib/form-field/controls/shared/toggle/toggle.component.ts","../../../../projects/design-components/src/lib/form-field/controls/shared/toggle/toggle.component.html","../../../../projects/design-components/src/lib/form-field/controls/checkbox/checkbox.component.ts","../../../../projects/design-components/src/lib/form-field/controls/checkbox/checkbox.component.html","../../../../projects/design-components/src/lib/form-field/controls/shared/toggle/toggle.module.ts","../../../../projects/design-components/src/lib/form-field/controls/checkbox/checkbox.module.ts","../../../../projects/design-components/src/lib/form-field/controls/radio/interfaces/radio-change-event.interface.ts","../../../../projects/design-components/src/lib/form-field/controls/radio/injection-tokens.ts","../../../../projects/design-components/src/lib/form-field/controls/radio/radio-button/radio-button.component.ts","../../../../projects/design-components/src/lib/form-field/controls/radio/radio-button/radio-button.component.html","../../../../projects/design-components/src/lib/form-field/controls/radio/radio-group/radio-group.directive.ts","../../../../projects/design-components/src/lib/form-field/controls/radio/radio.module.ts","../../../../projects/design-components/src/lib/form-field/controls/select/select.module.ts","../../../../projects/design-components/src/lib/form-field/impdc-forms.module.ts","../../../../projects/design-components/src/lib/size-detection/size-detection.module.ts","../../../../projects/design-components/src/lib/pagination/pagination.module.ts","../../../../projects/design-components/src/lib/table/components/column-heading/column-heading.component.ts","../../../../projects/design-components/src/lib/table/components/column-heading/column-heading.component.html","../../../../projects/design-components/src/lib/table/components/bulk-actions/bulk-actions.component.ts","../../../../projects/design-components/src/lib/table/components/bulk-actions/bulk-actions.component.html","../../../../projects/design-components/src/lib/spinner/spinner.component.ts","../../../../projects/design-components/src/lib/spinner/spinner.component.html","../../../../projects/design-components/src/lib/badge/types/badge-size.ts","../../../../projects/design-components/src/lib/badge/badge.component.ts","../../../../projects/design-components/src/lib/badge/badge.component.html","../../../../projects/design-components/src/lib/table/directives/table.directive.ts","../../../../projects/design-components/src/lib/table/directives/table-inject-component.directive.ts","../../../../projects/design-components/src/lib/table/containers/table.component.ts","../../../../projects/design-components/src/lib/table/containers/table.component.html","../../../../projects/design-components/src/lib/spinner/spinner.module.ts","../../../../projects/design-components/src/lib/badge/badge.module.ts","../../../../projects/design-components/src/lib/table/table.module.ts","../../../../projects/design-components/src/lib/modal/types/modal-component-sizes.ts","../../../../projects/design-components/src/lib/modal/types/modal-theme.ts","../../../../projects/design-components/src/lib/modal/modal.component.ts","../../../../projects/design-components/src/lib/modal/modal.component.html","../../../../projects/design-components/src/lib/backdrop/backdrop.component.ts","../../../../projects/design-components/src/lib/backdrop/backdrop.component.html","../../../../projects/design-components/src/lib/backdrop/backdrop.module.ts","../../../../projects/design-components/src/lib/modal/modal.module.ts","../../../../projects/design-components/src/lib/progress-bar/progress-bar.component.ts","../../../../projects/design-components/src/lib/progress-bar/progress-bar.component.html","../../../../projects/design-components/src/lib/progress-bar/progress-bar.module.ts","../../../../projects/design-components/src/lib/dropdown/components/dropdown-item/dropdown-item.component.ts","../../../../projects/design-components/src/lib/dropdown/components/dropdown-item/dropdown-item.component.html","../../../../projects/design-components/src/lib/dropdown/dropdown.component.ts","../../../../projects/design-components/src/lib/dropdown/dropdown.component.html","../../../../projects/design-components/src/lib/dropdown/dropdown.module.ts","../../../../projects/design-components/src/lib/alert/alert.component.ts","../../../../projects/design-components/src/lib/alert/alert.component.html","../../../../projects/design-components/src/lib/alert/alert.module.ts","../../../../projects/design-components/src/lib/file-upload/directives/file-drop.directive.ts","../../../../projects/design-components/src/lib/file-upload/pipes/human-readable-byte-size.pipe.ts","../../../../projects/design-components/src/lib/file-upload/file-upload.component.ts","../../../../projects/design-components/src/lib/file-upload/file-upload.component.html","../../../../projects/design-components/src/lib/file-upload/file-upload.module.ts","../../../../projects/design-components/src/lib/avatar/avatar.component.ts","../../../../projects/design-components/src/lib/avatar/avatar.component.html","../../../../projects/design-components/src/lib/avatar/avatar.module.ts","../../../../projects/design-components/src/lib/avatar-group/avatar-group.component.ts","../../../../projects/design-components/src/lib/avatar-group/avatar-group.component.html","../../../../projects/design-components/src/lib/avatar-group/avatar-group.module.ts","../../../../projects/design-components/src/lib/breadcrumb/breadcrumb-item.component.ts","../../../../projects/design-components/src/lib/breadcrumb/breadcrumb.component.ts","../../../../projects/design-components/src/lib/breadcrumb/breadcrumb.component.html","../../../../projects/design-components/src/lib/breadcrumb/breadcrumb.module.ts","../../../../projects/design-components/src/lib/design-components.module.ts","../../../../projects/design-components/src/lib/button-group/button-group.component.ts","../../../../projects/design-components/src/lib/button-group/button-group.component.html","../../../../projects/design-components/src/lib/button-group/button-group.module.ts","../../../../projects/design-components/src/lib/card-heading/card-heading.component.ts","../../../../projects/design-components/src/lib/card-heading/card-heading.component.html","../../../../projects/design-components/src/lib/card-heading/card-heading.module.ts","../../../../projects/design-components/src/lib/scrollable/scrollable.component.ts","../../../../projects/design-components/src/lib/scrollable/scrollable.component.html","../../../../projects/design-components/src/lib/scrollable/scrollable.module.ts","../../../../projects/design-components/src/lib/select-icon/select-icon.component.ts","../../../../projects/design-components/src/lib/select-icon/select-icon.component.html","../../../../projects/design-components/src/lib/select-icon/select-icon.module.ts","../../../../projects/design-components/src/lib/data-card/data-card.component.ts","../../../../projects/design-components/src/lib/data-card/data-card.component.html","../../../../projects/design-components/src/lib/data-card/data-card.module.ts","../../../../projects/design-components/src/services/interaction.service.ts","../../../../projects/design-components/src/public-api.ts","../../../../projects/design-components/src/impartner-design-components.ts"],"sourcesContent":["export const FontAwesomeIconThemes: string[] = ['solid', 'regular', 'light'];\n\nexport type FontAwesomeIconTheme = typeof FontAwesomeIconThemes[number];\n\nexport const FontAwesomeIcons: string[] = [\n 'yin-yang',\n 'yen-sign',\n 'x-ray',\n 'wrench',\n 'wreath',\n 'won-sign',\n 'wine-glass-alt',\n 'wine-glass',\n 'wine-bottle',\n 'windsock',\n 'window-restore',\n 'window-minimize',\n 'window-maximize',\n 'window-frame-open',\n 'window-frame',\n 'window-close',\n 'window-alt',\n 'window',\n 'wind-warning',\n 'wind-turbine',\n 'wind',\n 'wifi-slash',\n 'wifi-2',\n 'wifi-1',\n 'wifi',\n 'whistle',\n 'wheelchair',\n 'wheat',\n 'whale',\n 'weight-hanging',\n 'weight',\n 'webcam-slash',\n 'webcam',\n 'waveform-path',\n 'waveform',\n 'wave-triangle',\n 'wave-square',\n 'wave-sine',\n 'water-rise',\n 'water-lower',\n 'water',\n 'watch-fitness',\n 'watch-calculator',\n 'watch',\n 'washer',\n 'warehouse-alt',\n 'warehouse',\n 'wand-magic',\n 'wand',\n 'wallet',\n 'walking',\n 'walkie-talkie',\n 'walker',\n 'wagon-covered',\n 'vr-cardboard',\n 'vote-yea',\n 'vote-nay',\n 'volume-up',\n 'volume-slash',\n 'volume-off',\n 'volume-mute',\n 'volume-down',\n 'volume',\n 'volleyball-ball',\n 'volcano',\n 'voicemail',\n 'viruses',\n 'virus-slash',\n 'virus',\n 'violin',\n 'vihara',\n 'video-slash',\n 'video-plus',\n 'video',\n 'vials',\n 'vial',\n 'vhs',\n 'vest-patches',\n 'vest',\n 'venus-mars',\n 'venus-double',\n 'venus',\n 'vector-square',\n 'value-absolute',\n 'vacuum-robot',\n 'vacuum',\n 'utensils-alt',\n 'utensils',\n 'utensil-spoon',\n 'utensil-knife',\n 'utensil-fork',\n 'users-slash',\n 'users-medical',\n 'users-crown',\n 'users-cog',\n 'users-class',\n 'users',\n 'user-visor',\n 'user-unlock',\n 'user-times',\n 'user-tie',\n 'user-tag',\n 'user-slash',\n 'user-shield',\n 'user-secret',\n 'user-robot',\n 'user-plus',\n 'user-nurse',\n 'user-ninja',\n 'user-music',\n 'user-minus',\n 'user-md-chat',\n 'user-md',\n 'user-lock',\n 'user-injured',\n 'user-headset',\n 'user-hard-hat',\n 'user-graduate',\n 'user-friends',\n 'user-edit',\n 'user-crown',\n 'user-cowboy',\n 'user-cog',\n 'user-clock',\n 'user-circle',\n 'user-check',\n 'user-chart',\n 'user-astronaut',\n 'user-alt-slash',\n 'user-alt',\n 'user-alien',\n 'user',\n 'usd-square',\n 'usd-circle',\n 'usb-drive',\n 'upload',\n 'unlock-alt',\n 'unlock',\n 'unlink',\n 'university',\n 'universal-access',\n 'union',\n 'unicorn',\n 'undo-alt',\n 'undo',\n 'underline',\n 'umbrella-beach',\n 'umbrella',\n 'ufo-beam',\n 'ufo',\n 'typewriter',\n 'tv-retro',\n 'tv-music',\n 'tv-alt',\n 'tv',\n 'turtle',\n 'turntable',\n 'turkey',\n 'tty',\n 'tshirt',\n 'trumpet',\n 'truck-ramp',\n 'truck-plow',\n 'truck-pickup',\n 'truck-moving',\n 'truck-monster',\n 'truck-loading',\n 'truck-couch',\n 'truck-container',\n 'truck',\n 'trophy-alt',\n 'trophy',\n 'triangle-music',\n 'triangle',\n 'trees',\n 'tree-palm',\n 'tree-large',\n 'tree-decorated',\n 'tree-christmas',\n 'tree-alt',\n 'tree',\n 'treasure-chest',\n 'trash-undo-alt',\n 'trash-undo',\n 'trash-restore-alt',\n 'trash-restore',\n 'trash-alt',\n 'trash',\n 'transporter-empty',\n 'transporter-3',\n 'transporter-2',\n 'transporter-1',\n 'transporter',\n 'transgender-alt',\n 'transgender',\n 'tram',\n 'train',\n 'trailer',\n 'traffic-light-stop',\n 'traffic-light-slow',\n 'traffic-light-go',\n 'traffic-light',\n 'traffic-cone',\n 'trademark',\n 'tractor',\n 'tornado',\n 'torii-gate',\n 'torah',\n 'toothbrush',\n 'tooth',\n 'tools',\n 'toolbox',\n 'tombstone-alt',\n 'tombstone',\n 'toilet-paper-slash',\n 'toilet-paper-alt',\n 'toilet-paper',\n 'toilet',\n 'toggle-on',\n 'toggle-off',\n 'tired',\n 'tire-rugged',\n 'tire-pressure-warning',\n 'tire-flat',\n 'tire',\n 'tint-slash',\n 'tint',\n 'times-square',\n 'times-octagon',\n 'times-hexagon',\n 'times-circle',\n 'times',\n 'tilde',\n 'ticket-alt',\n 'ticket',\n 'thunderstorm-sun',\n 'thunderstorm-moon',\n 'thunderstorm',\n 'thumbtack',\n 'thumbs-up',\n 'thumbs-down',\n 'theta',\n 'thermometer-three-quarters',\n 'thermometer-quarter',\n 'thermometer-half',\n 'thermometer-full',\n 'thermometer-empty',\n 'thermometer',\n 'theater-masks',\n 'th-list',\n 'th-large',\n 'th',\n 'text-width',\n 'text-size',\n 'text-height',\n 'text',\n 'terminal',\n 'tennis-ball',\n 'tenge',\n 'temperature-up',\n 'temperature-low',\n 'temperature-hot',\n 'temperature-high',\n 'temperature-frigid',\n 'temperature-down',\n 'telescope',\n 'teeth-open',\n 'teeth',\n 'taxi',\n 'tasks-alt',\n 'tasks',\n 'tape',\n 'tanakh',\n 'tally',\n 'tags',\n 'tag',\n 'taco',\n 'tachometer-slowest',\n 'tachometer-slow',\n 'tachometer-fastest',\n 'tachometer-fast',\n 'tachometer-average',\n 'tachometer-alt-slowest',\n 'tachometer-alt-slow',\n 'tachometer-alt-fastest',\n 'tachometer-alt-fast',\n 'tachometer-alt-average',\n 'tachometer-alt',\n 'tachometer',\n 'tablets',\n 'tablet-rugged',\n 'tablet-android-alt',\n 'tablet-android',\n 'tablet-alt',\n 'tablet',\n 'table-tennis',\n 'table',\n 'syringe',\n 'sync-alt',\n 'sync',\n 'synagogue',\n 'swords-laser',\n 'swords',\n 'sword-laser-alt',\n 'sword-laser',\n 'sword',\n 'swimming-pool',\n 'swimmer',\n 'swatchbook',\n 'surprise',\n 'superscript',\n 'sunset',\n 'sunrise',\n 'sunglasses',\n 'sun-haze',\n 'sun-dust',\n 'sun-cloud',\n 'sun',\n 'suitcase-rolling',\n 'suitcase',\n 'subway',\n 'subscript',\n 'stroopwafel',\n 'strikethrough',\n 'stretcher',\n 'street-view',\n 'stream',\n 'store-slash',\n 'store-alt-slash',\n 'store-alt',\n 'store',\n 'stopwatch-20',\n 'stopwatch',\n 'stop-circle',\n 'stop',\n 'stomach',\n 'stocking',\n 'sticky-note',\n 'stethoscope',\n 'step-forward',\n 'step-backward',\n 'steering-wheel',\n 'steak',\n 'starship-freighter',\n 'starship',\n 'stars',\n 'starfighter-alt',\n 'starfighter',\n 'star-shooting',\n 'star-of-life',\n 'star-of-david',\n 'star-half-alt',\n 'star-half',\n 'star-exclamation',\n 'star-christmas',\n 'star-and-crescent',\n 'star',\n 'stamp',\n 'staff',\n 'squirrel',\n 'square-root-alt',\n 'square-root',\n 'square-full',\n 'square',\n 'sprinkler',\n 'spray-can',\n 'splotch',\n 'spinner-third',\n 'spinner',\n 'spider-web',\n 'spider-black-widow',\n 'spider',\n 'spell-check',\n 'speakers',\n 'speaker',\n 'sparkles',\n 'spade',\n 'space-station-moon-alt',\n 'space-station-moon',\n 'space-shuttle',\n 'spa',\n 'soup',\n 'sort-up',\n 'sort-size-up-alt',\n 'sort-size-up',\n 'sort-size-down-alt',\n 'sort-size-down',\n 'sort-shapes-up-alt',\n 'sort-shapes-up',\n 'sort-shapes-down-alt',\n 'sort-shapes-down',\n 'sort-numeric-up-alt',\n 'sort-numeric-up',\n 'sort-numeric-down-alt',\n 'sort-numeric-down',\n 'sort-down',\n 'sort-circle-up',\n 'sort-circle-down',\n 'sort-circle',\n 'sort-amount-up-alt',\n 'sort-amount-up',\n 'sort-amount-down-alt',\n 'sort-amount-down',\n 'sort-alt',\n 'sort-alpha-up-alt',\n 'sort-alpha-up',\n 'sort-alpha-down-alt',\n 'sort-alpha-down',\n 'sort',\n 'solar-system',\n 'solar-panel',\n 'socks',\n 'soap',\n 'snowplow',\n 'snowmobile',\n 'snowman',\n 'snowflakes',\n 'snowflake',\n 'snowboarding',\n 'snow-blowing',\n 'snooze',\n 'snake',\n 'sms',\n 'smoking-ban',\n 'smoking',\n 'smoke',\n 'smog',\n 'smile-wink',\n 'smile-plus',\n 'smile-beam',\n 'smile',\n 'sliders-v-square',\n 'sliders-v',\n 'sliders-h-square',\n 'sliders-h',\n 'sleigh',\n 'sledding',\n 'slash',\n 'skull-crossbones',\n 'skull-cow',\n 'skull',\n 'skiing-nordic',\n 'skiing',\n 'ski-lift',\n 'ski-jump',\n 'skeleton',\n 'skating',\n 'sitemap',\n 'siren-on',\n 'siren',\n 'sink',\n 'sim-card',\n 'signature',\n 'signal-stream',\n 'signal-slash',\n 'signal-alt-slash',\n 'signal-alt-3',\n 'signal-alt-2',\n 'signal-alt-1',\n 'signal-alt',\n 'signal-4',\n 'signal-3',\n 'signal-2',\n 'signal-1',\n 'signal',\n 'sign-out-alt',\n 'sign-out',\n 'sign-language',\n 'sign-in-alt',\n 'sign-in',\n 'sign',\n 'sigma',\n 'sickle',\n 'shuttlecock',\n 'shuttle-van',\n 'shredder',\n 'shower',\n 'shovel-snow',\n 'shovel',\n 'shopping-cart',\n 'shopping-basket',\n 'shopping-bag',\n 'shoe-prints',\n 'shish-kebab',\n 'shipping-timed',\n 'shipping-fast',\n 'ship',\n 'shield-virus',\n 'shield-cross',\n 'shield-check',\n 'shield-alt',\n 'shield',\n 'shekel-sign',\n 'sheep',\n 'share-square',\n 'share-alt-square',\n 'share-alt',\n 'share-all',\n 'share',\n 'shapes',\n 'server',\n 'sensor-smoke',\n 'sensor-on',\n 'sensor-fire',\n 'sensor-alert',\n 'sensor',\n 'send-backward',\n 'send-back',\n 'seedling',\n 'search-plus',\n 'search-minus',\n 'search-location',\n 'search-dollar',\n 'search',\n 'sd-card',\n 'scythe',\n 'scrubber',\n 'scroll-old',\n 'scroll',\n 'screwdriver',\n 'school',\n 'scarf',\n 'scarecrow',\n 'scanner-touchscreen',\n 'scanner-keyboard',\n 'scanner-image',\n 'scanner',\n 'scalpel-path',\n 'scalpel',\n 'saxophone',\n 'sax-hot',\n 'save',\n 'sausage',\n 'satellite-dish',\n 'satellite',\n 'sandwich',\n 'salad',\n 'sad-tear',\n 'sad-cry',\n 'sack-dollar',\n 'sack',\n 'rv',\n 'rupee-sign',\n 'running',\n 'ruler-vertical',\n 'ruler-triangle',\n 'ruler-horizontal',\n 'ruler-combined',\n 'ruler',\n 'ruble-sign',\n 'rss-square',\n 'rss',\n 'router',\n 'route-interstate',\n 'route-highway',\n 'route',\n 'rocket-launch',\n 'rocket',\n 'robot',\n 'road',\n 'rings-wedding',\n 'ring',\n 'ribbon',\n 'retweet-alt',\n 'retweet',\n 'restroom',\n 'republican',\n 'reply-all',\n 'reply',\n 'repeat-alt',\n 'repeat-1-alt',\n 'repeat-1',\n 'repeat',\n 'remove-format',\n 'registered',\n 'refrigerator',\n 'redo-alt',\n 'redo',\n 'recycle',\n 'rectangle-wide',\n 'rectangle-portrait',\n 'rectangle-landscape',\n 'record-vinyl',\n 'receipt',\n 'raygun',\n 'random',\n 'ramp-loading',\n 'ram',\n 'raindrops',\n 'rainbow',\n 'radio-alt',\n 'radio',\n 'radiation-alt',\n 'radiation',\n 'radar',\n 'racquet',\n 'rabbit-fast',\n 'rabbit',\n 'quran',\n 'quote-right',\n 'quote-left',\n 'quidditch',\n 'question-square',\n 'question-circle',\n 'question',\n 'qrcode',\n 'puzzle-piece',\n 'pumpkin',\n 'pump-soap',\n 'pump-medical',\n 'projector',\n 'project-diagram',\n 'procedures',\n 'print-slash',\n 'print-search',\n 'print',\n 'presentation',\n 'prescription-bottle-alt',\n 'prescription-bottle',\n 'prescription',\n 'praying-hands',\n 'pray',\n 'power-off',\n 'pound-sign',\n 'portrait',\n 'portal-exit',\n 'portal-enter',\n 'popcorn',\n 'poop',\n 'poo-storm',\n 'poo',\n 'poll-people',\n 'poll-h',\n 'poll',\n 'police-box',\n 'podium-star',\n 'podium',\n 'podcast',\n 'plus-square',\n 'plus-octagon',\n 'plus-hexagon',\n 'plus-circle',\n 'plus',\n 'plug',\n 'play-circle',\n 'play',\n 'planet-ringed',\n 'planet-moon',\n 'plane-slash',\n 'plane-departure',\n 'plane-arrival',\n 'plane-alt',\n 'plane',\n 'place-of-worship',\n 'pizza-slice',\n 'pizza',\n 'pills',\n 'piggy-bank',\n 'pig',\n 'pie',\n 'piano-keyboard',\n 'piano',\n 'pi',\n 'photo-video',\n 'phone-volume',\n 'phone-square-alt',\n 'phone-square',\n 'phone-slash',\n 'phone-rotary',\n 'phone-plus',\n 'phone-office',\n 'phone-laptop',\n 'phone-alt',\n 'phone',\n 'person-sign',\n 'person-dolly-empty',\n 'person-dolly',\n 'person-carry',\n 'person-booth',\n 'percentage',\n 'percent',\n 'pepper-hot',\n 'people-carry',\n 'people-arrows',\n 'pennant',\n 'pencil-ruler',\n 'pencil-paintbrush',\n 'pencil-alt',\n 'pencil',\n 'pen-square',\n 'pen-nib',\n 'pen-fancy',\n 'pen-alt',\n 'pen',\n 'pegasus',\n 'peace',\n 'paw-claws',\n 'paw-alt',\n 'paw',\n 'pause-circle',\n 'pause',\n 'paste',\n 'pastafarianism',\n 'passport',\n 'parking-slash',\n 'parking-circle-slash',\n 'parking-circle',\n 'parking',\n 'paragraph-rtl',\n 'paragraph',\n 'parachute-box',\n 'paperclip',\n 'paper-plane',\n 'pallet-alt',\n 'pallet',\n 'palette',\n 'paint-roller',\n 'paint-brush-alt',\n 'paint-brush',\n 'pager',\n 'page-break',\n 'overline',\n 'oven',\n 'outlet',\n 'outdent',\n 'otter',\n 'ornament',\n 'omega',\n 'om',\n 'oil-temp',\n 'oil-can',\n 'octagon',\n 'object-ungroup',\n 'object-group',\n 'notes-medical',\n 'not-equal',\n 'newspaper',\n 'neuter',\n 'network-wired',\n 'narwhal',\n 'music-slash',\n 'music-alt-slash',\n 'music-alt',\n 'music',\n 'mug-tea',\n 'mug-marshmallows',\n 'mug-hot',\n 'mug',\n 'mp3-player',\n 'mouse-pointer',\n 'mouse-alt',\n 'mouse',\n 'mountains',\n 'mountain',\n 'motorcycle',\n 'mosque',\n 'mortar-pestle',\n 'moon-stars',\n 'moon-cloud',\n 'moon',\n 'monument',\n 'monkey',\n 'monitor-heart-rate',\n 'money-check-edit-alt',\n 'money-check-edit',\n 'money-check-alt',\n 'money-check',\n 'money-bill-wave-alt',\n 'money-bill-wave',\n 'money-bill-alt',\n 'money-bill',\n 'mobile-android-alt',\n 'mobile-android',\n 'mobile-alt',\n 'mobile',\n 'mitten',\n 'mistletoe',\n 'minus-square',\n 'minus-octagon',\n 'minus-hexagon',\n 'minus-circle',\n 'minus',\n 'mind-share',\n 'microwave',\n 'microscope',\n 'microphone-stand',\n 'microphone-slash',\n 'microphone-alt-slash',\n 'microphone-alt',\n 'microphone',\n 'microchip',\n 'meteor',\n 'mercury',\n 'menorah',\n 'memory',\n 'meh-rolling-eyes',\n 'meh-blank',\n 'meh',\n 'megaphone',\n 'medkit',\n 'medal',\n 'meat',\n 'mask',\n 'mars-stroke-v',\n 'mars-stroke-h',\n 'mars-stroke',\n 'mars-double',\n 'mars',\n 'marker',\n 'map-signs',\n 'map-pin',\n 'map-marker-times',\n 'map-marker-smile',\n 'map-marker-slash',\n 'map-marker-question',\n 'map-marker-plus',\n 'map-marker-minus',\n 'map-marker-exclamation',\n 'map-marker-edit',\n 'map-marker-check',\n 'map-marker-alt-slash',\n 'map-marker-alt',\n 'map-marker',\n 'map-marked-alt',\n 'map-marked',\n 'map',\n 'mandolin',\n 'male',\n 'mailbox',\n 'mail-bulk',\n 'magnet',\n 'magic',\n 'mace',\n 'lungs-virus',\n 'lungs',\n 'luggage-cart',\n 'luchador',\n 'low-vision',\n 'loveseat',\n 'long-arrow-up',\n 'long-arrow-right',\n 'long-arrow-left',\n 'long-arrow-down',\n 'long-arrow-alt-up',\n 'long-arrow-alt-right',\n 'long-arrow-alt-left',\n 'long-arrow-alt-down',\n 'lock-open-alt',\n 'lock-open',\n 'lock-alt',\n 'lock',\n 'location-slash',\n 'location-circle',\n 'location-arrow',\n 'location',\n 'list-ul',\n 'list-ol',\n 'list-music',\n 'list-alt',\n 'list',\n 'lira-sign',\n 'lips',\n 'link',\n 'line-height',\n 'line-columns',\n 'lights-holiday',\n 'lightbulb-slash',\n 'lightbulb-on',\n 'lightbulb-exclamation',\n 'lightbulb-dollar',\n 'lightbulb',\n 'light-switch-on',\n 'light-switch-off',\n 'light-switch',\n 'light-ceiling',\n 'life-ring',\n 'level-up-alt',\n 'level-up',\n 'level-down-alt',\n 'level-down',\n 'less-than-equal',\n 'less-than',\n 'lemon',\n 'leaf-oak',\n 'leaf-maple',\n 'leaf-heart',\n 'leaf',\n 'layer-plus',\n 'layer-minus',\n 'layer-group',\n 'laugh-wink',\n 'laugh-squint',\n 'laugh-beam',\n 'laugh',\n 'lasso',\n 'laptop-medical',\n 'laptop-house',\n 'laptop-code',\n 'laptop',\n 'language',\n 'landmark-alt',\n 'landmark',\n 'lamp-floor',\n 'lamp-desk',\n 'lamp',\n 'lambda',\n 'knife-kitchen',\n 'kiwi-bird',\n 'kite',\n 'kiss-wink-heart',\n 'kiss-beam',\n 'kiss',\n 'kidneys',\n 'khanda',\n 'keynote',\n 'keyboard',\n 'key-skeleton',\n 'key',\n 'kerning',\n 'kazoo',\n 'kaaba',\n 'jug',\n 'joystick',\n 'journal-whills',\n 'joint',\n 'jedi',\n 'jack-o-lantern',\n 'italic',\n 'island-tropical',\n 'inventory',\n 'intersection',\n 'integral',\n 'inhaler',\n 'info-square',\n 'info-circle',\n 'info',\n 'infinity',\n 'industry-alt',\n 'industry',\n 'indent',\n 'inbox-out',\n 'inbox-in',\n 'inbox',\n 'images',\n 'image-polaroid',\n 'image',\n 'igloo',\n 'id-card-alt',\n 'id-card',\n 'id-badge',\n 'icons-alt',\n 'icons',\n 'icicles',\n 'ice-skate',\n 'ice-cream',\n 'i-cursor',\n 'hurricane',\n 'humidity',\n 'hryvnia',\n 'house-user',\n 'house-signal',\n 'house-return',\n 'house-night',\n 'house-leave',\n 'house-flood',\n 'house-day',\n 'house-damage',\n 'house',\n 'hourglass-start',\n 'hourglass-half',\n 'hourglass-end',\n 'hourglass',\n 'hotel',\n 'hotdog',\n 'hot-tub',\n 'hospitals',\n 'hospital-user',\n 'hospital-symbol',\n 'hospital-alt',\n 'hospital',\n 'horse-saddle',\n 'horse-head',\n 'horse',\n 'horizontal-rule',\n 'hood-cloak',\n 'home-lg-alt',\n 'home-lg',\n 'home-heart',\n 'home-alt',\n 'home',\n 'holly-berry',\n 'hockey-sticks',\n 'hockey-puck',\n 'hockey-mask',\n 'history',\n 'hippo',\n 'hiking',\n 'highlighter',\n 'hexagon',\n 'helmet-battle',\n 'helicopter',\n 'heat',\n 'heartbeat',\n 'heart-square',\n 'heart-rate',\n 'heart-circle',\n 'heart-broken',\n 'heart',\n 'headset',\n 'headphones-alt',\n 'headphones',\n 'heading',\n 'head-vr',\n 'head-side-virus',\n 'head-side-medical',\n 'head-side-mask',\n 'head-side-headphones',\n 'head-side-cough-slash',\n 'head-side-cough',\n 'head-side-brain',\n 'head-side',\n 'hdd',\n 'hat-wizard',\n 'hat-witch',\n 'hat-winter',\n 'hat-santa',\n 'hat-cowboy-side',\n 'hat-cowboy',\n 'hat-chef',\n 'hashtag',\n 'hard-hat',\n 'hanukiah',\n 'handshake-slash',\n 'handshake-alt-slash',\n 'handshake-alt',\n 'handshake',\n 'hands-wash',\n 'hands-usd',\n 'hands-helping',\n 'hands-heart',\n 'hands',\n 'hand-spock',\n 'hand-sparkles',\n 'hand-scissors',\n 'hand-rock',\n 'hand-receiving',\n 'hand-pointer',\n 'hand-point-up',\n 'hand-point-right',\n 'hand-point-left',\n 'hand-point-down',\n 'hand-peace',\n 'hand-paper',\n 'hand-middle-finger',\n 'hand-lizard',\n 'hand-holding-water',\n 'hand-holding-usd',\n 'hand-holding-seedling',\n 'hand-holding-medical',\n 'hand-holding-magic',\n 'hand-holding-heart',\n 'hand-holding-box',\n 'hand-holding',\n 'hand-heart',\n 'hamsa',\n 'hammer-war',\n 'hammer',\n 'hamburger',\n 'h4',\n 'h3',\n 'h2',\n 'h1',\n 'h-square',\n 'guitars',\n 'guitar-electric',\n 'guitar',\n 'grip-vertical',\n 'grip-lines-vertical',\n 'grip-lines',\n 'grip-horizontal',\n 'grin-wink',\n 'grin-tongue-wink',\n 'grin-tongue-squint',\n 'grin-tongue',\n 'grin-tears',\n 'grin-stars',\n 'grin-squint-tears',\n 'grin-squint',\n 'grin-hearts',\n 'grin-beam-sweat',\n 'grin-beam',\n 'grin-alt',\n 'grin',\n 'grimace',\n 'greater-than-equal',\n 'greater-than',\n 'gramophone',\n 'graduation-cap',\n 'gopuram',\n 'golf-club',\n 'golf-ball',\n 'globe-stand',\n 'globe-snow',\n 'globe-europe',\n 'globe-asia',\n 'globe-americas',\n 'globe-africa',\n 'globe',\n 'glasses-alt',\n 'glasses',\n 'glass-whiskey-rocks',\n 'glass-whiskey',\n 'glass-martini-alt',\n 'glass-martini',\n 'glass-citrus',\n 'glass-cheers',\n 'glass-champagne',\n 'glass',\n 'gingerbread-man',\n 'gifts',\n 'gift-card',\n 'gift',\n 'ghost',\n 'genderless',\n 'gem',\n 'gavel',\n 'gas-pump-slash',\n 'gas-pump',\n 'garage-open',\n 'garage-car',\n 'garage',\n 'gamepad-alt',\n 'gamepad',\n 'game-console-handheld',\n 'game-board-alt',\n 'game-board',\n 'galaxy',\n 'futbol',\n 'funnel-dollar',\n 'function',\n 'frown-open',\n 'frown',\n 'frosty-head',\n 'frog',\n 'french-fries',\n 'fragile',\n 'forward',\n 'forklift',\n 'football-helmet',\n 'football-ball',\n 'font-case',\n 'font',\n 'folders',\n 'folder-upload',\n 'folder-tree',\n 'folder-times',\n 'folder-plus',\n 'folder-open',\n 'folder-minus',\n 'folder-download',\n 'folder',\n 'fog',\n 'flux-capacitor',\n 'flute',\n 'flushed',\n 'flower-tulip',\n 'flower-daffodil',\n 'flower',\n 'flask-potion',\n 'flask-poison',\n 'flask',\n 'flashlight',\n 'flame',\n 'flag-usa',\n 'flag-checkered',\n 'flag-alt',\n 'flag',\n 'fist-raised',\n 'fish-cooked',\n 'fish',\n 'first-aid',\n 'fireplace',\n 'fire-smoke',\n 'fire-extinguisher',\n 'fire-alt',\n 'fire',\n 'fingerprint',\n 'filter',\n 'film-canister',\n 'film-alt',\n 'film',\n 'fill-drip',\n 'fill',\n 'files-medical',\n 'file-word',\n 'file-video',\n 'file-user',\n 'file-upload',\n 'file-times',\n 'file-spreadsheet',\n 'file-signature',\n 'file-search',\n 'file-prescription',\n 'file-powerpoint',\n 'file-plus',\n 'file-pdf',\n 'file-music',\n 'file-minus',\n 'file-medical-alt',\n 'file-medical',\n 'file-invoice-dollar',\n 'file-invoice',\n 'file-import',\n 'file-image',\n 'file-export',\n 'file-exclamation',\n 'file-excel',\n 'file-edit',\n 'file-download',\n 'file-csv',\n 'file-contract',\n 'file-code',\n 'file-check',\n 'file-chart-pie',\n 'file-chart-line',\n 'file-certificate',\n 'file-audio',\n 'file-archive',\n 'file-alt',\n 'file',\n 'fighter-jet',\n 'field-hockey',\n 'female',\n 'feather-alt',\n 'feather',\n 'fax',\n 'faucet-drip',\n 'faucet',\n 'fast-forward',\n 'fast-backward',\n 'farm',\n 'fan-table',\n 'fan',\n 'eye-slash',\n 'eye-evil',\n 'eye-dropper',\n 'eye',\n 'external-link-square-alt',\n 'external-link-square',\n 'external-link-alt',\n 'external-link',\n 'expand-wide',\n 'expand-arrows-alt',\n 'expand-arrows',\n 'expand-alt',\n 'expand',\n 'exclamation-triangle',\n 'exclamation-square',\n 'exclamation-circle',\n 'exclamation',\n 'exchange-alt',\n 'exchange',\n 'euro-sign',\n 'ethernet',\n 'eraser',\n 'equals',\n 'envelope-square',\n 'envelope-open-text',\n 'envelope-open-dollar',\n 'envelope-open',\n 'envelope',\n 'engine-warning',\n 'empty-set',\n 'ellipsis-v-alt',\n 'ellipsis-v',\n 'ellipsis-h-alt',\n 'ellipsis-h',\n 'elephant',\n 'eject',\n 'egg-fried',\n 'egg',\n 'edit',\n 'eclipse-alt',\n 'eclipse',\n 'ear-muffs',\n 'ear',\n 'dungeon',\n 'dumpster-fire',\n 'dumpster',\n 'dumbbell',\n 'duck',\n 'dryer-alt',\n 'dryer',\n 'drumstick-bite',\n 'drumstick',\n 'drum-steelpan',\n 'drum',\n 'drone-alt',\n 'drone',\n 'dreidel',\n 'draw-square',\n 'draw-polygon',\n 'draw-circle',\n 'dragon',\n 'drafting-compass',\n 'download',\n 'dove',\n 'dot-circle',\n 'door-open',\n 'door-closed',\n 'donate',\n 'dolly-flatbed-empty',\n 'dolly-flatbed-alt',\n 'dolly-flatbed',\n 'dolly-empty',\n 'dolly',\n 'dollar-sign',\n 'dog-leashed',\n 'dog',\n 'do-not-enter',\n 'dna',\n 'dizzy',\n 'divide',\n 'disease',\n 'disc-drive',\n 'directions',\n 'diploma',\n 'digital-tachograph',\n 'digging',\n 'dice-two',\n 'dice-three',\n 'dice-six',\n 'dice-one',\n 'dice-four',\n 'dice-five',\n 'dice-d8',\n 'dice-d6',\n 'dice-d4',\n 'dice-d20',\n 'dice-d12',\n 'dice-d10',\n 'dice',\n 'diamond',\n 'diagnoses',\n 'dharmachakra',\n 'dewpoint',\n 'desktop-alt',\n 'desktop',\n 'democrat',\n 'deer-rudolph',\n 'deer',\n 'debug',\n 'deaf',\n 'database',\n 'dagger',\n 'cut',\n 'curling',\n 'cubes',\n 'cube',\n 'crutches',\n 'crutch',\n 'crown',\n 'crow',\n 'crosshairs',\n 'cross',\n 'crop-alt',\n 'crop',\n 'croissant',\n 'cricket',\n 'credit-card-front',\n 'credit-card-blank',\n 'credit-card',\n 'cowbell-more',\n 'cowbell',\n 'cow',\n 'couch',\n 'corn',\n 'copyright',\n 'copy',\n 'cookie-bite',\n 'cookie',\n 'conveyor-belt-alt',\n 'conveyor-belt',\n 'container-storage',\n 'construction',\n 'concierge-bell',\n 'computer-speaker',\n 'computer-classic',\n 'compress-wide',\n 'compress-arrows-alt',\n 'compress-alt',\n 'compress',\n 'compass-slash',\n 'compass',\n 'compact-disc',\n 'comments-dollar',\n 'comments-alt-dollar',\n 'comments-alt',\n 'comments',\n 'comment-times',\n 'comment-smile',\n 'comment-slash',\n 'comment-plus',\n 'comment-music',\n 'comment-minus',\n 'comment-medical',\n 'comment-lines',\n 'comment-exclamation',\n 'comment-edit',\n 'comment-dots',\n 'comment-dollar',\n 'comment-check',\n 'comment-alt-times',\n 'comment-alt-smile',\n 'comment-alt-slash',\n 'comment-alt-plus',\n 'comment-alt-music',\n 'comment-alt-minus',\n 'comment-alt-medical',\n 'comment-alt-lines',\n 'comment-alt-exclamation',\n 'comment-alt-edit',\n 'comment-alt-dots',\n 'comment-alt-dollar',\n 'comment-alt-check',\n 'comment-alt',\n 'comment',\n 'comet',\n 'columns',\n 'coins',\n 'coin',\n 'cogs',\n 'cog',\n 'coffin-cross',\n 'coffin',\n 'coffee-togo',\n 'coffee-pot',\n 'coffee',\n 'code-merge',\n 'code-commit',\n 'code-branch',\n 'code',\n 'cocktail',\n 'club',\n 'clouds-sun',\n 'clouds-moon',\n 'clouds',\n 'cloud-upload-alt',\n 'cloud-upload',\n 'cloud-sun-rain',\n 'cloud-sun',\n 'cloud-snow',\n 'cloud-sleet',\n 'cloud-showers-heavy',\n 'cloud-showers',\n 'cloud-rainbow',\n 'cloud-rain',\n 'cloud-music',\n 'cloud-moon-rain',\n 'cloud-moon',\n 'cloud-meatball',\n 'cloud-hail-mixed',\n 'cloud-hail',\n 'cloud-drizzle',\n 'cloud-download-alt',\n 'cloud-download',\n 'cloud',\n 'closed-captioning',\n 'clone',\n 'clock',\n 'clipboard-user',\n 'clipboard-prescription',\n 'clipboard-list-check',\n 'clipboard-list',\n 'clipboard-check',\n 'clipboard',\n 'clinic-medical',\n 'claw-marks',\n 'clarinet',\n 'city',\n 'circle-notch',\n 'circle',\n 'church',\n 'chimney',\n 'child',\n 'chevron-up',\n 'chevron-square-up',\n 'chevron-square-right',\n 'chevron-square-left',\n 'chevron-square-down',\n 'chevron-right',\n 'chevron-left',\n 'chevron-down',\n 'chevron-double-up',\n 'chevron-double-right',\n 'chevron-double-left',\n 'chevron-double-down',\n 'chevron-circle-up',\n 'chevron-circle-right',\n 'chevron-circle-left',\n 'chevron-circle-down',\n 'chess-rook-alt',\n 'chess-rook',\n 'chess-queen-alt',\n 'chess-queen',\n 'chess-pawn-alt',\n 'chess-pawn',\n 'chess-knight-alt',\n 'chess-knight',\n 'chess-king-alt',\n 'chess-king',\n 'chess-clock-alt',\n 'chess-clock',\n 'chess-board',\n 'chess-bishop-alt',\n 'chess-bishop',\n 'chess',\n 'cheeseburger',\n 'cheese-swiss',\n 'cheese',\n 'check-square',\n 'check-double',\n 'check-circle',\n 'check',\n 'chart-scatter',\n 'chart-pie-alt',\n 'chart-pie',\n 'chart-network',\n 'chart-line-down',\n 'chart-line',\n 'chart-bar',\n 'chart-area',\n 'charging-station',\n 'chalkboard-teacher',\n 'chalkboard',\n 'chair-office',\n 'chair',\n 'certificate',\n 'cctv',\n 'cauldron',\n 'cat-space',\n 'cat',\n 'cassette-tape',\n 'cash-register',\n 'cart-plus',\n 'cart-arrow-down',\n 'cars',\n 'carrot',\n 'caret-up',\n 'caret-square-up',\n 'caret-square-right',\n 'caret-square-left',\n 'caret-square-down',\n 'caret-right',\n 'caret-left',\n 'caret-down',\n 'caret-circle-up',\n 'caret-circle-right',\n 'caret-circle-left',\n 'caret-circle-down',\n 'caravan-alt',\n 'caravan',\n 'car-wash',\n 'car-tilt',\n 'car-side',\n 'car-mechanic',\n 'car-garage',\n 'car-crash',\n 'car-bus',\n 'car-bump',\n 'car-building',\n 'car-battery',\n 'car-alt',\n 'car',\n 'capsules',\n 'cannabis',\n 'candy-corn',\n 'candy-cane',\n 'candle-holder',\n 'campground',\n 'campfire',\n 'camera-retro',\n 'camera-polaroid',\n 'camera-movie',\n 'camera-home',\n 'camera-alt',\n 'camera',\n 'camcorder',\n 'calendar-week',\n 'calendar-times',\n 'calendar-star',\n 'calendar-plus',\n 'calendar-minus',\n 'calendar-exclamation',\n 'calendar-edit',\n 'calendar-day',\n 'calendar-check',\n 'calendar-alt',\n 'calendar',\n 'calculator-alt',\n 'calculator',\n 'cactus',\n 'cabinet-filing',\n 'business-time',\n 'bus-school',\n 'bus-alt',\n 'bus',\n 'burrito',\n 'burn',\n 'burger-soda',\n 'bullseye-pointer',\n 'bullseye-arrow',\n 'bullseye',\n 'bullhorn',\n 'building',\n 'bug',\n 'brush',\n 'browser',\n 'broom',\n 'broadcast-tower',\n 'bring-front',\n 'bring-forward',\n 'briefcase-medical',\n 'briefcase',\n 'bread-slice',\n 'bread-loaf',\n 'brain',\n 'braille',\n 'brackets-curly',\n 'brackets',\n 'boxing-glove',\n 'boxes-alt',\n 'boxes',\n 'box-usd',\n 'box-up',\n 'box-tissue',\n 'box-open',\n 'box-heart',\n 'box-full',\n 'box-fragile',\n 'box-check',\n 'box-ballot',\n 'box-alt',\n 'box',\n 'bowling-pins',\n 'bowling-ball',\n 'bow-arrow',\n 'border-top',\n 'border-style-alt',\n 'border-style',\n 'border-right',\n 'border-outer',\n 'border-none',\n 'border-left',\n 'border-inner',\n 'border-center-v',\n 'border-center-h',\n 'border-bottom',\n 'border-all',\n 'booth-curtain',\n 'boot',\n 'boombox',\n 'books-medical',\n 'books',\n 'bookmark',\n 'book-user',\n 'book-spells',\n 'book-reader',\n 'book-open',\n 'book-medical',\n 'book-heart',\n 'book-dead',\n 'book-alt',\n 'book',\n 'bong',\n 'bone-break',\n 'bone',\n 'bomb',\n 'bolt',\n 'bold',\n 'blog',\n 'blinds-raised',\n 'blinds-open',\n 'blinds',\n 'blind',\n 'blender-phone',\n 'blender',\n 'blanket',\n 'birthday-cake',\n 'biohazard',\n 'binoculars',\n 'biking-mountain',\n 'biking',\n 'bicycle',\n 'bible',\n 'bezier-curve',\n 'betamax',\n 'bells',\n 'bell-slash',\n 'bell-school-slash',\n 'bell-school',\n 'bell-plus',\n 'bell-on',\n 'bell-exclamation',\n 'bell',\n 'beer',\n 'bed-empty',\n 'bed-bunk',\n 'bed-alt',\n 'bed',\n 'battery-three-quarters',\n 'battery-slash',\n 'battery-quarter',\n 'battery-half',\n 'battery-full',\n 'battery-empty',\n 'battery-bolt',\n 'bath',\n 'bat',\n 'basketball-hoop',\n 'basketball-ball',\n 'baseball-ball',\n 'baseball',\n 'bars',\n 'barcode-scan',\n 'barcode-read',\n 'barcode-alt',\n 'barcode',\n 'banjo',\n 'band-aid',\n 'ban',\n 'ballot-check',\n 'ballot',\n 'ball-pile',\n 'balance-scale-right',\n 'balance-scale-left',\n 'balance-scale',\n 'bahai',\n 'bags-shopping',\n 'badger-honey',\n 'badge-sheriff',\n 'badge-percent',\n 'badge-dollar',\n 'badge-check',\n 'badge',\n 'bacterium',\n 'bacteria',\n 'bacon',\n 'backward',\n 'backspace',\n 'backpack',\n 'baby-carriage',\n 'baby',\n 'axe-battle',\n 'axe',\n 'award',\n 'audio-description',\n 'atom-alt',\n 'atom',\n 'atlas',\n 'at',\n 'asterisk',\n 'assistive-listening-systems',\n 'arrows-v',\n 'arrows-h',\n 'arrows-alt-v',\n 'arrows-alt-h',\n 'arrows-alt',\n 'arrows',\n 'arrow-up',\n 'arrow-to-top',\n 'arrow-to-right',\n 'arrow-to-left',\n 'arrow-to-bottom',\n 'arrow-square-up',\n 'arrow-square-right',\n 'arrow-square-left',\n 'arrow-square-down',\n 'arrow-right',\n 'arrow-left',\n 'arrow-from-top',\n 'arrow-from-right',\n 'arrow-from-left',\n 'arrow-from-bottom',\n 'arrow-down',\n 'arrow-circle-up',\n 'arrow-circle-right',\n 'arrow-circle-left',\n 'arrow-circle-down',\n 'arrow-alt-up',\n 'arrow-alt-to-top',\n 'arrow-alt-to-right',\n 'arrow-alt-to-left',\n 'arrow-alt-to-bottom',\n 'arrow-alt-square-up',\n 'arrow-alt-square-right',\n 'arrow-alt-square-left',\n 'arrow-alt-square-down',\n 'arrow-alt-right',\n 'arrow-alt-left',\n 'arrow-alt-from-top',\n 'arrow-alt-from-right',\n 'arrow-alt-from-left',\n 'arrow-alt-from-bottom',\n 'arrow-alt-down',\n 'arrow-alt-circle-up',\n 'arrow-alt-circle-right',\n 'arrow-alt-circle-left',\n 'arrow-alt-circle-down',\n 'archway',\n 'archive',\n 'apple-crate',\n 'apple-alt',\n 'ankh',\n 'angry',\n 'angle-up',\n 'angle-right',\n 'angle-left',\n 'angle-down',\n 'angle-double-up',\n 'angle-double-right',\n 'angle-double-left',\n 'angle-double-down',\n 'angel',\n 'anchor',\n 'analytics',\n 'amp-guitar',\n 'american-sign-language-interpreting',\n 'ambulance',\n 'allergies',\n 'align-slash',\n 'align-right',\n 'align-left',\n 'align-justify',\n 'align-center',\n 'alien-monster',\n 'alien',\n 'alicorn',\n 'album-collection',\n 'album',\n 'alarm-snooze',\n 'alarm-plus',\n 'alarm-exclamation',\n 'alarm-clock',\n 'air-freshener',\n 'air-conditioner',\n 'adjust',\n 'address-card',\n 'address-book',\n 'ad',\n 'acorn',\n 'abacus'\n];\n\nexport type FontAwesomeIcon = typeof FontAwesomeIcons[number];\n\nexport const FontAwesomeFreeSolidIcons: FontAwesomeIcon[] = [\n 'yin-yang',\n 'yen-sign',\n 'x-ray',\n 'wrench',\n 'won-sign',\n 'wine-glass-alt',\n 'wine-glass',\n 'wine-bottle',\n 'window-restore',\n 'window-minimize',\n 'window-maximize',\n 'window-close',\n 'wind',\n 'wifi',\n 'wheelchair',\n 'weight-hanging',\n 'weight',\n 'wave-square',\n 'water',\n 'warehouse',\n 'wallet',\n 'walking',\n 'vr-cardboard',\n 'vote-yea',\n 'volume-up',\n 'volume-off',\n 'volume-mute',\n 'volume-down',\n 'volleyball-ball',\n 'voicemail',\n 'viruses',\n 'virus-slash',\n 'virus',\n 'vihara',\n 'video-slash',\n 'video',\n 'vials',\n 'vial',\n 'vest-patches',\n 'vest',\n 'venus-mars',\n 'venus-double',\n 'venus',\n 'vector-square',\n 'utensils',\n 'utensil-spoon',\n 'users-slash',\n 'users-cog',\n 'users',\n 'user-times',\n 'user-tie',\n 'user-tag',\n 'user-slash',\n 'user-shield',\n 'user-secret',\n 'user-plus',\n 'user-nurse',\n 'user-ninja',\n 'user-minus',\n 'user-md',\n 'user-lock',\n 'user-injured',\n 'user-graduate',\n 'user-friends',\n 'user-edit',\n 'user-cog',\n 'user-clock',\n 'user-circle',\n 'user-check',\n 'user-astronaut',\n 'user-alt-slash',\n 'user-alt',\n 'user',\n 'upload',\n 'unlock-alt',\n 'unlock',\n 'unlink',\n 'university',\n 'universal-access',\n 'undo-alt',\n 'undo',\n 'underline',\n 'umbrella-beach',\n 'umbrella',\n 'tv',\n 'tty',\n 'tshirt',\n 'truck-pickup',\n 'truck-moving',\n 'truck-monster',\n 'truck-loading',\n 'truck',\n 'trophy',\n 'tree',\n 'trash-restore-alt',\n 'trash-restore',\n 'trash-alt',\n 'trash',\n 'transgender-alt',\n 'transgender',\n 'tram',\n 'train',\n 'trailer',\n 'traffic-light',\n 'trademark',\n 'tractor',\n 'torii-gate',\n 'torah',\n 'tooth',\n 'tools',\n 'toolbox',\n 'toilet-paper-slash',\n 'toilet-paper',\n 'toilet',\n 'toggle-on',\n 'toggle-off',\n 'tired',\n 'tint-slash',\n 'tint',\n 'times-circle',\n 'times',\n 'ticket-alt',\n 'thumbtack',\n 'thumbs-up',\n 'thumbs-down',\n 'thermometer-three-quarters',\n 'thermometer-quarter',\n 'thermometer-half',\n 'thermometer-full',\n 'thermometer-empty',\n 'thermometer',\n 'theater-masks',\n 'th-list',\n 'th-large',\n 'th',\n 'text-width',\n 'text-height',\n 'terminal',\n 'tenge',\n 'temperature-low',\n 'temperature-high',\n 'teeth-open',\n 'teeth',\n 'taxi',\n 'tasks',\n 'tape',\n 'tags',\n 'tag',\n 'tachometer-alt',\n 'tablets',\n 'tablet-alt',\n 'tablet',\n 'table-tennis',\n 'table',\n 'syringe',\n 'sync-alt',\n 'sync',\n 'synagogue',\n 'swimming-pool',\n 'swimmer',\n 'swatchbook',\n 'surprise',\n 'superscript',\n 'sun',\n 'suitcase-rolling',\n 'suitcase',\n 'subway',\n 'subscript',\n 'stroopwafel',\n 'strikethrough',\n 'street-view',\n 'stream',\n 'store-slash',\n 'store-alt-slash',\n 'store-alt',\n 'store',\n 'stopwatch-20',\n 'stopwatch',\n 'stop-circle',\n 'stop',\n 'sticky-note',\n 'stethoscope',\n 'step-forward',\n 'step-backward',\n 'star-of-life',\n 'star-of-david',\n 'star-half-alt',\n 'star-half',\n 'star-and-crescent',\n 'star',\n 'stamp',\n 'square-root-alt',\n 'square-full',\n 'square',\n 'spray-can',\n 'splotch',\n 'spinner',\n 'spider',\n 'spell-check',\n 'space-shuttle',\n 'spa',\n 'sort-up',\n 'sort-numeric-up-alt',\n 'sort-numeric-up',\n 'sort-numeric-down-alt',\n 'sort-numeric-down',\n 'sort-down',\n 'sort-amount-up-alt',\n 'sort-amount-up',\n 'sort-amount-down-alt',\n 'sort-amount-down',\n 'sort-alpha-up-alt',\n 'sort-alpha-up',\n 'sort-alpha-down-alt',\n 'sort-alpha-down',\n 'sort',\n 'solar-panel',\n 'socks',\n 'soap',\n 'snowplow',\n 'snowman',\n 'snowflake',\n 'snowboarding',\n 'sms',\n 'smoking-ban',\n 'smoking',\n 'smog',\n 'smile-wink',\n 'smile-beam',\n 'smile',\n 'sliders-h',\n 'sleigh',\n 'slash',\n 'skull-crossbones',\n 'skull',\n 'skiing-nordic',\n 'skiing',\n 'skating',\n 'sitemap',\n 'sink',\n 'sim-card',\n 'signature',\n 'signal',\n 'sign-out-alt',\n 'sign-language',\n 'sign-in-alt',\n 'sign',\n 'shuttle-van',\n 'shower',\n 'shopping-cart',\n 'shopping-basket',\n 'shopping-bag',\n 'shoe-prints',\n 'shipping-fast',\n 'ship',\n 'shield-virus',\n 'shield-alt',\n 'shekel-sign',\n 'share-square',\n 'share-alt-square',\n 'share-alt',\n 'share',\n 'shapes',\n 'server',\n 'seedling',\n 'search-plus',\n 'search-minus',\n 'search-location',\n 'search-dollar',\n 'search',\n 'sd-card',\n 'scroll',\n 'screwdriver',\n 'school',\n 'save',\n 'satellite-dish',\n 'satellite',\n 'sad-tear',\n 'sad-cry',\n 'rupee-sign',\n 'running',\n 'ruler-vertical',\n 'ruler-horizontal',\n 'ruler-combined',\n 'ruler',\n 'ruble-sign',\n 'rss-square',\n 'rss',\n 'route',\n 'rocket',\n 'robot',\n 'road',\n 'ring',\n 'ribbon',\n 'retweet',\n 'restroom',\n 'republican',\n 'reply-all',\n 'reply',\n 'remove-format',\n 'registered',\n 'redo-alt',\n 'redo',\n 'recycle',\n 'record-vinyl',\n 'receipt',\n 'random',\n 'rainbow',\n 'radiation-alt',\n 'radiation',\n 'quran',\n 'quote-right',\n 'quote-left',\n 'quidditch',\n 'question-circle',\n 'question',\n 'qrcode',\n 'puzzle-piece',\n 'pump-soap',\n 'pump-medical',\n 'project-diagram',\n 'procedures',\n 'print',\n 'prescription-bottle-alt',\n 'prescription-bottle',\n 'prescription',\n 'praying-hands',\n 'pray',\n 'power-off',\n 'pound-sign',\n 'portrait',\n 'poop',\n 'poo-storm',\n 'poo',\n 'poll-h',\n 'poll',\n 'podcast',\n 'plus-square',\n 'plus-circle',\n 'plus',\n 'plug',\n 'play-circle',\n 'play',\n 'plane-slash',\n 'plane-departure',\n 'plane-arrival',\n 'plane',\n 'place-of-worship',\n 'pizza-slice',\n 'pills',\n 'piggy-bank',\n 'photo-video',\n 'phone-volume',\n 'phone-square-alt',\n 'phone-square',\n 'phone-slash',\n 'phone-alt',\n 'phone',\n 'person-booth',\n 'percentage',\n 'percent',\n 'pepper-hot',\n 'people-carry',\n 'people-arrows',\n 'pencil-ruler',\n 'pencil-alt',\n 'pen-square',\n 'pen-nib',\n 'pen-fancy',\n 'pen-alt',\n 'pen',\n 'peace',\n 'paw',\n 'pause-circle',\n 'pause',\n 'paste',\n 'pastafarianism',\n 'passport',\n 'parking',\n 'paragraph',\n 'parachute-box',\n 'paperclip',\n 'paper-plane',\n 'pallet',\n 'palette',\n 'paint-roller',\n 'paint-brush',\n 'pager',\n 'outdent',\n 'otter',\n 'om',\n 'oil-can',\n 'object-ungroup',\n 'object-group',\n 'notes-medical',\n 'not-equal',\n 'newspaper',\n 'neuter',\n 'network-wired',\n 'music',\n 'mug-hot',\n 'mouse-pointer',\n 'mouse',\n 'mountain',\n 'motorcycle',\n 'mosque',\n 'mortar-pestle',\n 'moon',\n 'monument',\n 'money-check-alt',\n 'money-check',\n 'money-bill-wave-alt',\n 'money-bill-wave',\n 'money-bill-alt',\n 'money-bill',\n 'mobile-alt',\n 'mobile',\n 'mitten',\n 'minus-square',\n 'minus-circle',\n 'minus',\n 'microscope',\n 'microphone-slash',\n 'microphone-alt-slash',\n 'microphone-alt',\n 'microphone',\n 'microchip',\n 'meteor',\n 'mercury',\n 'menorah',\n 'memory',\n 'meh-rolling-eyes',\n 'meh-blank',\n 'meh',\n 'medkit',\n 'medal',\n 'mask',\n 'mars-stroke-v',\n 'mars-stroke-h',\n 'mars-stroke',\n 'mars-double',\n 'mars',\n 'marker',\n 'map-signs',\n 'map-pin',\n 'map-marker-alt',\n 'map-marker',\n 'map-marked-alt',\n 'map-marked',\n 'map',\n 'male',\n 'mail-bulk',\n 'magnet',\n 'magic',\n 'lungs-virus',\n 'lungs',\n 'luggage-cart',\n 'low-vision',\n 'long-arrow-alt-up',\n 'long-arrow-alt-right',\n 'long-arrow-alt-left',\n 'long-arrow-alt-down',\n 'lock-open',\n 'lock',\n 'location-arrow',\n 'list-ul',\n 'list-ol',\n 'list-alt',\n 'list',\n 'lira-sign',\n 'link',\n 'lightbulb',\n 'life-ring',\n 'level-up-alt',\n 'level-down-alt',\n 'less-than-equal',\n 'less-than',\n 'lemon',\n 'leaf',\n 'layer-group',\n 'laugh-wink',\n 'laugh-squint',\n 'laugh-beam',\n 'laugh',\n 'laptop-medical',\n 'laptop-house',\n 'laptop-code',\n 'laptop',\n 'language',\n 'landmark',\n 'kiwi-bird',\n 'kiss-wink-heart',\n 'kiss-beam',\n 'kiss',\n 'khanda',\n 'keyboard',\n 'key',\n 'kaaba',\n 'journal-whills',\n 'joint',\n 'jedi',\n 'italic',\n 'info-circle',\n 'info',\n 'infinity',\n 'industry',\n 'indent',\n 'inbox',\n 'images',\n 'image',\n 'igloo',\n 'id-card-alt',\n 'id-card',\n 'id-badge',\n 'icons',\n 'icicles',\n 'ice-cream',\n 'i-cursor',\n 'hryvnia',\n 'house-user',\n 'house-damage',\n 'hourglass-start',\n 'hourglass-half',\n 'hourglass-end',\n 'hourglass',\n 'hotel',\n 'hotdog',\n 'hot-tub',\n 'hospital-user',\n 'hospital-symbol',\n 'hospital-alt',\n 'hospital',\n 'horse-head',\n 'horse',\n 'home',\n 'holly-berry',\n 'hockey-puck',\n 'history',\n 'hippo',\n 'hiking',\n 'highlighter',\n 'helicopter',\n 'heartbeat',\n 'heart-broken',\n 'heart',\n 'headset',\n 'headphones-alt',\n 'headphones',\n 'heading',\n 'head-side-virus',\n 'head-side-mask',\n 'head-side-cough-slash',\n 'head-side-cough',\n 'hdd',\n 'hat-wizard',\n 'hat-cowboy-side',\n 'hat-cowboy',\n 'hashtag',\n 'hard-hat',\n 'hanukiah',\n 'handshake-slash',\n 'handshake-alt-slash',\n 'handshake',\n 'hands-wash',\n 'hands-helping',\n 'hands',\n 'hand-spock',\n 'hand-sparkles',\n 'hand-scissors',\n 'hand-rock',\n 'hand-pointer',\n 'hand-point-up',\n 'hand-point-right',\n 'hand-point-left',\n 'hand-point-down',\n 'hand-peace',\n 'hand-paper',\n 'hand-middle-finger',\n 'hand-lizard',\n 'hand-holding-water',\n 'hand-holding-usd',\n 'hand-holding-medical',\n 'hand-holding-heart',\n 'hand-holding',\n 'hamsa',\n 'hammer',\n 'hamburger',\n 'h-square',\n 'guitar',\n 'grip-vertical',\n 'grip-lines-vertical',\n 'grip-lines',\n 'grip-horizontal',\n 'grin-wink',\n 'grin-tongue-wink',\n 'grin-tongue-squint',\n 'grin-tongue',\n 'grin-tears',\n 'grin-stars',\n 'grin-squint-tears',\n 'grin-squint',\n 'grin-hearts',\n 'grin-beam-sweat',\n 'grin-beam',\n 'grin-alt',\n 'grin',\n 'grimace',\n 'greater-than-equal',\n 'greater-than',\n 'graduation-cap',\n 'gopuram',\n 'golf-ball',\n 'globe-europe',\n 'globe-asia',\n 'globe-americas',\n 'globe-africa',\n 'globe',\n 'glasses',\n 'glass-whiskey',\n 'glass-martini-alt',\n 'glass-martini',\n 'glass-cheers',\n 'gifts',\n 'gift',\n 'ghost',\n 'genderless',\n 'gem',\n 'gavel',\n 'gas-pump',\n 'gamepad',\n 'futbol',\n 'funnel-dollar',\n 'frown-open',\n 'frown',\n 'frog',\n 'forward',\n 'football-ball',\n 'font',\n 'folder-plus',\n 'folder-open',\n 'folder-minus',\n 'folder',\n 'flushed',\n 'flask',\n 'flag-usa',\n 'flag-checkered',\n 'flag',\n 'fist-raised',\n 'fish',\n 'first-aid',\n 'fire-extinguisher',\n 'fire-alt',\n 'fire',\n 'fingerprint',\n 'filter',\n 'film',\n 'fill-drip',\n 'fill',\n 'file-word',\n 'file-video',\n 'file-upload',\n 'file-signature',\n 'file-prescription',\n 'file-powerpoint',\n 'file-pdf',\n 'file-medical-alt',\n 'file-medical',\n 'file-invoice-dollar',\n 'file-invoice',\n 'file-import',\n 'file-image',\n 'file-export',\n 'file-excel',\n 'file-download',\n 'file-csv',\n 'file-contract',\n 'file-code',\n 'file-audio',\n 'file-archive',\n 'file-alt',\n 'file',\n 'fighter-jet',\n 'female',\n 'feather-alt',\n 'feather',\n 'fax',\n 'faucet',\n 'fast-forward',\n 'fast-backward',\n 'fan',\n 'eye-slash',\n 'eye-dropper',\n 'eye',\n 'external-link-square-alt',\n 'external-link-alt',\n 'expand-arrows-alt',\n 'expand-alt',\n 'expand',\n 'exclamation-triangle',\n 'exclamation-circle',\n 'exclamation',\n 'exchange-alt',\n 'euro-sign',\n 'ethernet',\n 'eraser',\n 'equals',\n 'envelope-square',\n 'envelope-open-text',\n 'envelope-open',\n 'envelope',\n 'ellipsis-v',\n 'ellipsis-h',\n 'eject',\n 'egg',\n 'edit',\n 'dungeon',\n 'dumpster-fire',\n 'dumpster',\n 'dumbbell',\n 'drumstick-bite',\n 'drum-steelpan',\n 'drum',\n 'draw-polygon',\n 'dragon',\n 'drafting-compass',\n 'download',\n 'dove',\n 'dot-circle',\n 'door-open',\n 'door-closed',\n 'donate',\n 'dolly-flatbed',\n 'dolly',\n 'dollar-sign',\n 'dog',\n 'dna',\n 'dizzy',\n 'divide',\n 'disease',\n 'directions',\n 'digital-tachograph',\n 'dice-two',\n 'dice-three',\n 'dice-six',\n 'dice-one',\n 'dice-four',\n 'dice-five',\n 'dice-d6',\n 'dice-d20',\n 'dice',\n 'diagnoses',\n 'dharmachakra',\n 'desktop',\n 'democrat',\n 'deaf',\n 'database',\n 'cut',\n 'cubes',\n 'cube',\n 'crutch',\n 'crown',\n 'crow',\n 'crosshairs',\n 'cross',\n 'crop-alt',\n 'crop',\n 'credit-card',\n 'couch',\n 'copyright',\n 'copy',\n 'cookie-bite',\n 'cookie',\n 'concierge-bell',\n 'compress-arrows-alt',\n 'compress-alt',\n 'compress',\n 'compass',\n 'compact-disc',\n 'comments-dollar',\n 'comments',\n 'comment-slash',\n 'comment-medical',\n 'comment-dots',\n 'comment-dollar',\n 'comment-alt',\n 'comment',\n 'columns',\n 'coins',\n 'cogs',\n 'cog',\n 'coffee',\n 'code-branch',\n 'code',\n 'cocktail',\n 'cloud-upload-alt',\n 'cloud-sun-rain',\n 'cloud-sun',\n 'cloud-showers-heavy',\n 'cloud-rain',\n 'cloud-moon-rain',\n 'cloud-moon',\n 'cloud-meatball',\n 'cloud-download-alt',\n 'cloud',\n 'closed-captioning',\n 'clone',\n 'clock',\n 'clipboard-list',\n 'clipboard-check',\n 'clipboard',\n 'clinic-medical',\n 'city',\n 'circle-notch',\n 'circle',\n 'church',\n 'child',\n 'chevron-up',\n 'chevron-right',\n 'chevron-left',\n 'chevron-down',\n 'chevron-circle-up',\n 'chevron-circle-right',\n 'chevron-circle-left',\n 'chevron-circle-down',\n 'chess-rook',\n 'chess-queen',\n 'chess-pawn',\n 'chess-knight',\n 'chess-king',\n 'chess-board',\n 'chess-bishop',\n 'chess',\n 'cheese',\n 'check-square',\n 'check-double',\n 'check-circle',\n 'check',\n 'chart-pie',\n 'chart-line',\n 'chart-bar',\n 'chart-area',\n 'charging-station',\n 'chalkboard-teacher',\n 'chalkboard',\n 'chair',\n 'certificate',\n 'cat',\n 'cash-register',\n 'cart-plus',\n 'cart-arrow-down',\n 'carrot',\n 'caret-up',\n 'caret-square-up',\n 'caret-square-right',\n 'caret-square-left',\n 'caret-square-down',\n 'caret-right',\n 'caret-left',\n 'caret-down',\n 'caravan',\n 'car-side',\n 'car-crash',\n 'car-battery',\n 'car-alt',\n 'car',\n 'capsules',\n 'cannabis',\n 'candy-cane',\n 'campground',\n 'camera-retro',\n 'camera',\n 'calendar-week',\n 'calendar-times',\n 'calendar-plus',\n 'calendar-minus',\n 'calendar-day',\n 'calendar-check',\n 'calendar-alt',\n 'calendar',\n 'calculator',\n 'business-time',\n 'bus-alt',\n 'bus',\n 'burn',\n 'bullseye',\n 'bullhorn',\n 'building',\n 'bug',\n 'brush',\n 'broom',\n 'broadcast-tower',\n 'briefcase-medical',\n 'briefcase',\n 'bread-slice',\n 'brain',\n 'braille',\n 'boxes',\n 'box-tissue',\n 'box-open',\n 'box',\n 'bowling-ball',\n 'border-style',\n 'border-none',\n 'border-all',\n 'bookmark',\n 'book-reader',\n 'book-open',\n 'book-medical',\n 'book-dead',\n 'book',\n 'bong',\n 'bone',\n 'bomb',\n 'bolt',\n 'bold',\n 'blog',\n 'blind',\n 'blender-phone',\n 'blender',\n 'birthday-cake',\n 'biohazard',\n 'binoculars',\n 'biking',\n 'bicycle',\n 'bible',\n 'bezier-curve',\n 'bell-slash',\n 'bell',\n 'beer',\n 'bed',\n 'battery-three-quarters',\n 'battery-quarter',\n 'battery-half',\n 'battery-full',\n 'battery-empty',\n 'bath',\n 'basketball-ball',\n 'baseball-ball',\n 'bars',\n 'barcode',\n 'band-aid',\n 'ban',\n 'balance-scale-right',\n 'balance-scale-left',\n 'balance-scale',\n 'bahai',\n 'bacterium',\n 'bacteria',\n 'bacon',\n 'backward',\n 'backspace',\n 'baby-carriage',\n 'baby',\n 'award',\n 'audio-description',\n 'atom',\n 'atlas',\n 'at',\n 'asterisk',\n 'assistive-listening-systems',\n 'arrows-alt-v',\n 'arrows-alt-h',\n 'arrows-alt',\n 'arrow-up',\n 'arrow-right',\n 'arrow-left',\n 'arrow-down',\n 'arrow-circle-up',\n 'arrow-circle-right',\n 'arrow-circle-left',\n 'arrow-circle-down',\n 'arrow-alt-circle-up',\n 'arrow-alt-circle-right',\n 'arrow-alt-circle-left',\n 'arrow-alt-circle-down',\n 'archway',\n 'archive',\n 'apple-alt',\n 'ankh',\n 'angry',\n 'angle-up',\n 'angle-right',\n 'angle-left',\n 'angle-down',\n 'angle-double-up',\n 'angle-double-right',\n 'angle-double-left',\n 'angle-double-down',\n 'anchor',\n 'american-sign-language-interpreting',\n 'ambulance',\n 'allergies',\n 'align-right',\n 'align-left',\n 'align-justify',\n 'align-center',\n 'air-freshener',\n 'adjust',\n 'address-card',\n 'address-book',\n 'ad'\n];\n\nexport const FontAwesomeFreeRegularIcons: FontAwesomeIcon[] = [\n 'window-restore',\n 'window-minimize',\n 'window-maximize',\n 'window-close',\n 'user-circle',\n 'user',\n 'trash-alt',\n 'tired',\n 'times-circle',\n 'thumbs-up',\n 'thumbs-down',\n 'surprise',\n 'sun',\n 'stop-circle',\n 'sticky-note',\n 'star-half',\n 'star',\n 'square',\n 'snowflake',\n 'smile-wink',\n 'smile-beam',\n 'smile',\n 'share-square',\n 'save',\n 'sad-tear',\n 'sad-cry',\n 'registered',\n 'question-circle',\n 'plus-square',\n 'play-circle',\n 'pause-circle',\n 'paper-plane',\n 'object-ungroup',\n 'object-group',\n 'newspaper',\n 'moon',\n 'money-bill-alt',\n 'minus-square',\n 'meh-rolling-eyes',\n 'meh-blank',\n 'meh',\n 'map',\n 'list-alt',\n 'lightbulb',\n 'life-ring',\n 'lemon',\n 'laugh-wink',\n 'laugh-squint',\n 'laugh-beam',\n 'laugh',\n 'kiss-wink-heart',\n 'kiss-beam',\n 'kiss',\n 'keyboard',\n 'images',\n 'image',\n 'id-card',\n 'id-badge',\n 'hourglass',\n 'hospital',\n 'heart',\n 'hdd',\n 'handshake',\n 'hand-spock',\n 'hand-scissors',\n 'hand-rock',\n 'hand-pointer',\n 'hand-point-up',\n 'hand-point-right',\n 'hand-point-left',\n 'hand-point-down',\n 'hand-peace',\n 'hand-paper',\n 'hand-lizard',\n 'grin-wink',\n 'grin-tongue-wink',\n 'grin-tongue-squint',\n 'grin-tongue',\n 'grin-tears',\n 'grin-stars',\n 'grin-squint-tears',\n 'grin-squint',\n 'grin-hearts',\n 'grin-beam-sweat',\n 'grin-beam',\n 'grin-alt',\n 'grin',\n 'grimace',\n 'gem',\n 'futbol',\n 'frown-open',\n 'frown',\n 'folder-open',\n 'folder',\n 'flushed',\n 'flag',\n 'file-word',\n 'file-video',\n 'file-powerpoint',\n 'file-pdf',\n 'file-image',\n 'file-excel',\n 'file-code',\n 'file-audio',\n 'file-archive',\n 'file-alt',\n 'file',\n 'eye-slash',\n 'eye',\n 'envelope-open',\n 'envelope',\n 'edit',\n 'dot-circle',\n 'dizzy',\n 'credit-card',\n 'copyright',\n 'copy',\n 'compass',\n 'comments',\n 'comment-dots',\n 'comment-alt',\n 'comment',\n 'closed-captioning',\n 'clone',\n 'clock',\n 'clipboard',\n 'circle',\n 'check-square',\n 'check-circle',\n 'chart-bar',\n 'caret-square-up',\n 'caret-square-right',\n 'caret-square-left',\n 'caret-square-down',\n 'calendar-times',\n 'calendar-plus',\n 'calendar-minus',\n 'calendar-check',\n 'calendar-alt',\n 'calendar',\n 'building',\n 'bookmark',\n 'bell-slash',\n 'bell',\n 'arrow-alt-circle-up',\n 'arrow-alt-circle-right',\n 'arrow-alt-circle-left',\n 'arrow-alt-circle-down',\n 'angry',\n 'address-card',\n 'address-book'\n];\n","export enum ComponentSize {\n XXSmall = 'xxs',\n XSmall = 'xs',\n Small = 'sm',\n Medium = 'md',\n Large = 'lg',\n XLarge = 'xl',\n XXLarge = 'xxl',\n Fullscreen = 'fs'\n}\n\nexport type PrimaryComponentSizes =\n | ComponentSize.XSmall\n | ComponentSize.Small\n | ComponentSize.Medium\n | ComponentSize.Large\n | ComponentSize.XLarge\n | ComponentSize.XXLarge;\n\nexport type SecondaryComponentSizes =\n | ComponentSize.Small\n | ComponentSize.Medium\n | ComponentSize.Large;\n","export enum ComponentTheme {\n Primary = 'primary',\n Secondary = 'secondary',\n Success = 'success',\n Danger = 'danger',\n Warning = 'warning',\n Info = 'info',\n Light = 'light',\n Dark = 'dark'\n}\n\nexport const ComponentThemesArr = [\n ComponentTheme.Primary,\n ComponentTheme.Secondary,\n ComponentTheme.Success,\n ComponentTheme.Danger,\n ComponentTheme.Warning,\n ComponentTheme.Info,\n ComponentTheme.Light,\n ComponentTheme.Dark\n];\n\nexport type ComponentThemes = typeof ComponentThemesArr[number];\n","/**\n * Type representing allowable values for a boolean input.\n */\nexport type BooleanInput = string | boolean | null | undefined;\n\n/**\n * Coerces a value provided via data-binding (usually a string) to a boolean.\n */\nexport function coerceBooleanPropertyValue(value: unknown): boolean {\n return value != null && `${value}` !== 'false';\n}\n","/**\n * Type describing the allowed values for a number input\n * @ignore\n */\nexport type NumberInput = string | number | null | undefined;\n\n/**\n * Coerces a value provided via data-binding (usually a string) to a number.\n */\nexport function coerceNumberPropertyValue(value: any): number;\nexport function coerceNumberPropertyValue<D>(\n value: any,\n fallback: D\n): number | D;\nexport function coerceNumberPropertyValue(value: any, fallbackValue = 0) {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n\n/**\n * Determines if the provided value is considered a number.\n * @ignore\n */\nexport function _isNumberValue(value: any): boolean {\n /**\n * We use two different parsing utilities here, for the below reasons:\n * - parseFloat(val) deals with _most_ cases we care about - treating null, empty str,\n * and non-number vals as NaN, while Number returns 0.\n * - parseFloat(val) unfortunately _also_ considers strings like '1234wordswordswords' to be\n * valid numbers, so we need to also check with Number(val) for concensus.\n */\n return !isNaN(parseFloat(value as any)) && !isNaN(Number(value));\n}\n","import sanitizeHtml from 'sanitize-html';\n\nexport function sanitize(value: string): string {\n return sanitizeHtml(value, {\n allowedTags: []\n });\n}\n","/**\n * Creates a copy to reduce direct reference issues.\n * @param value\n * @returns\n */\nexport function dc(value: any): any {\n return JSON.parse(JSON.stringify(value));\n}\n","/**\n * Converts strings to lowercase.\n * @param value\n * @returns\n */\nexport function lc(value: string): string {\n return (value || '').toLowerCase();\n}\n","import { Component, Input, OnChanges } from '@angular/core';\nimport { lc } from '../../utilities';\n\n/**\n * The `TextHighlightComponent` (`<impdc-text-highlight` or `<any impdc-text-highlight`) is a component that highlights search-matched text.\n * To use, import `TextHighlightModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-text-highlight, [impdc-text-highlight]',\n template: `\n <ng-container *ngFor=\"let match of result\">\n <ng-container *ngIf=\"checkMatch(match); else nomatch\" [ngSwitch]=\"method\">\n <mark *ngSwitchCase=\"'mark'\">{{ match }}</mark>\n <b *ngSwitchCase=\"'b'\">{{ match }}</b>\n <strong *ngSwitchCase=\"'strong'\">{{ match }}</strong>\n <u *ngSwitchCase=\"'u'\">{{ match }}</u>\n </ng-container>\n <ng-template #nomatch>{{ match }}</ng-template>\n </ng-container>\n `\n})\nexport class TextHighlightComponent implements OnChanges {\n /**\n * The text that will be searched and parts of it could be highlighted.\n */\n @Input() text = '';\n\n /**\n * The search regex/string to look for.\n */\n @Input() search = '';\n\n /**\n * The method of highlighting, or otherwise what is wrapping the search matches. These are native element selectors.\n */\n @Input() method: 'mark' | 'b' | 'strong' | 'u' = 'mark';\n\n /**\n * Be default the search is case-insensitive, this will require exact matches only.\n */\n @Input() exact = false;\n\n public result: string[] = [];\n\n lc = lc;\n\n checkMatch(match: any): boolean {\n if (!match) {\n return false;\n }\n if (this.exact) {\n return match === this.search;\n }\n return lc(match) === lc(this.search);\n }\n\n ngOnChanges() {\n const regEx = new RegExp(`(${this.search})`, 'i');\n this.result = this.text.split(regEx);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TextHighlightComponent } from './text-highlight.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TextHighlightComponent],\n exports: [TextHighlightComponent]\n})\nexport class TextHighlightModule {\n constructor() {}\n}\n","import {\n AfterContentChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n FontAwesomeIcon,\n FontAwesomeIconTheme,\n FontAwesomeFreeRegularIcons\n} from '../../constants';\n\n/**\n * The `IconComponent` (`<impdc-icon` or `<any impdc-icon`) is an icon wrapper utilizing Font Awesome 5.\n * To use, import `IconModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-icon, [impdc-icon]',\n templateUrl: './icon.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class IconComponent implements AfterContentChecked {\n private _loading = true;\n private _licensed = false;\n\n /**\n * The Font Awesome 5 icon name. See {@link https://fontawesome.com/v5/search}. Local\n * development may not represent the complete list of available icons.\n */\n @Input()\n name?: FontAwesomeIcon;\n\n /**\n * The Font Awesome 5 icon style. Local development may fallback to a free available\n * theme when possible.\n */\n @Input()\n theme: FontAwesomeIconTheme = 'solid';\n\n /**\n * The icon size as a string or number. String values are used directly whereas numbers are\n * interpreted as pixels.\n */\n @Input()\n size: string | number = '1.8rem';\n\n @ViewChild('icon', { static: true }) iconRef!: ElementRef;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n public get typeClass(): string {\n if (this._licensed) {\n switch (this.theme) {\n case 'light':\n return 'fal';\n case 'regular':\n return 'far';\n // case 'solid':\n default:\n return 'fas';\n }\n }\n if (\n (this.theme === 'light' || this.theme === 'regular') &&\n !!this.name &&\n FontAwesomeFreeRegularIcons.includes(this.name)\n ) {\n return 'far';\n }\n return 'fas';\n }\n\n public get computedSize(): string {\n if (Number.isNaN(this.size)) {\n return this.size.toString();\n }\n\n return `${this.size}px`;\n }\n\n ngAfterContentChecked(): void {\n if (this._loading) {\n // During init and possibly a few checks, `iconFontFamily` will be an inherited font, later it will be Font Awesome.\n const iconFontFamily = getComputedStyle(\n this.iconRef.nativeElement\n ).getPropertyValue('font-family');\n if (iconFontFamily.includes('Font Awesome')) {\n this._licensed = !iconFontFamily.includes('Free');\n this._loading = false;\n this._changeDetectorRef.detectChanges();\n }\n }\n }\n}\n","<i\n #icon\n class=\"{{ typeClass }} fa-{{ name }}\"\n [style.font-size]=\"computedSize\"></i>\n","import {\n Component,\n Input,\n ViewEncapsulation,\n HostBinding\n} from '@angular/core';\nimport { ButtonTheme } from './themes/button-theme';\n\n/**\n * The `ButtonComponent` (`<button impdcButton`) adds theming to the native button.\n * For a container, see [ButtonGroupComponent](./?path=/docs/design-components-button-group--button-group).\n * To use, import `ButtonModule` or another module that imports and exports that module from `@impartner/design-components`.\n * `ButtonModule` also imports and exports [BrandingModule](./?path=/docs/design-components-directives-impdcbranded) and\n * [IconModule](./?path=/docs/design-components-icon).\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[impdcButton]',\n templateUrl: './button.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class ButtonComponent {\n /**\n * The native type of the Button.\n */\n @Input()\n type: 'button' | 'submit' | 'reset' = 'button';\n\n /**\n * The theme of the Button affecting text, icons, backgrounds, and borders.\n */\n @Input()\n theme: ButtonTheme = 'primary';\n\n /**\n * The Button's text.\n */\n @Input()\n text = '';\n\n /**\n * Determines if the Button is disabled.\n */\n @Input()\n disabled = false;\n\n /**\n * An alternative to the native `title` attribute. Useful for hover text and accessibility.\n */\n @Input()\n titleText = '';\n\n /**\n * An alternative to the native `aria-label` attribute. Useful for accessibility.\n */\n @Input()\n ariaLabel = '';\n\n @HostBinding('attr.type') private get attrType() {\n return this.type || 'button';\n }\n\n @HostBinding('class.btn') private classBtn = true;\n\n @HostBinding('class.btn-primary') private get classBtnPrimary() {\n return this.theme === 'primary';\n }\n\n @HostBinding('class.btn-danger') private get classBtnDanger() {\n return this.theme === 'danger';\n }\n\n @HostBinding('class.btn-outline-primary') private get classBtnSecondary() {\n return this.theme === 'secondary';\n }\n\n @HostBinding('class.btn-outline-danger')\n private get classBtnSecondaryDanger() {\n return this.theme === 'secondary-danger';\n }\n\n @HostBinding('class.btn-close-fa') private get classBtnClose() {\n return this.theme === 'close';\n }\n\n @HostBinding('attr.disabled') private get attrDisabled() {\n return this.disabled ? 'disabled' : undefined;\n }\n\n @HostBinding('attr.title') private get attrTitle() {\n return this.titleText || undefined;\n }\n\n @HostBinding('attr.aria-label') private get attrAriaLabel() {\n return this.ariaLabel || this.titleText || this.text || undefined;\n }\n}\n","<ng-container *ngIf=\"theme !== 'close'\">\n <ng-content></ng-content>{{ text }}\n <ng-content select=\"[right]\"></ng-content>\n</ng-container>\n<span impdc-icon *ngIf=\"theme === 'close'\" name=\"times\" theme=\"light\"></span>\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[impdcBranded]'\n})\nexport class BrandedDirective {\n @HostBinding('class.branded') private brandedClass = true;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BrandedDirective } from './branded.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BrandedDirective],\n exports: [BrandedDirective]\n})\nexport class BrandingModule {\n constructor() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IconComponent } from './icon.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [IconComponent],\n exports: [IconComponent]\n})\nexport class IconModule {\n constructor() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BrandingModule } from '../branding';\nimport { IconModule } from '../icon';\nimport { ButtonComponent } from './button.component';\n\n@NgModule({\n imports: [CommonModule, BrandingModule, IconModule],\n declarations: [ButtonComponent],\n exports: [ButtonComponent, BrandingModule, IconModule]\n})\nexport class ButtonModule {\n constructor() {}\n}\n","import { ITableCellOption } from '../interfaces';\n\nexport const DEFAULT_PAGE = 1;\nexport const ROWS_PER_PAGE = 10;\nexport const SELECTED_ROWS_PER_PAGE = { value: '25', text: '25' };\nexport const ROWS_PER_PAGE_GROUP: ITableCellOption[] = [\n {\n value: '10',\n label: '10'\n },\n {\n value: '25',\n label: '25'\n },\n {\n value: '50',\n label: '50'\n },\n {\n value: '100',\n label: '100'\n }\n];\nexport const SORT_COLUMN_INDEX = 0;\nexport const DEBOUNCE_TIME = 500;\n","export const IS_SELECTED_PROPERTY = 'isSelected';\n","export enum TableColumnType {\n Badge = 'Badge',\n Boolean = 'Boolean',\n Link = 'Link',\n Text = 'Text',\n Input = 'Input',\n Currency = 'Currency',\n Decimal = 'Decimal',\n Date = 'Date',\n DateTime = 'DateTime',\n Percentage = 'Percentage',\n CellRender = 'CellRender',\n SingleSelect = 'SingleSelect',\n MultiSelect = 'MultiSelect',\n Icon = 'Icon',\n Email = 'Email',\n Url = 'Url'\n}\n","import { get as getNestedValue } from 'lodash';\n\nimport { ITableColumnDef, ITableRowItem } from '../interfaces';\nimport { ComponentTheme } from '../../../types';\n\nexport class TableThemeHelper {\n public static getTheme(\n { fieldColor, color, colorGetter }: ITableColumnDef,\n currentRow: ITableRowItem\n ): ComponentTheme | undefined {\n if (fieldColor) {\n const badgedColor = getNestedValue(currentRow, String(fieldColor));\n const theme = Object.entries(ComponentTheme).find(\n ([, value]) => value === String(badgedColor)\n );\n return theme ? theme[1] : undefined;\n }\n\n if (colorGetter) {\n try {\n return colorGetter(currentRow);\n } catch (e) {\n return undefined;\n }\n }\n\n return color || undefined;\n }\n\n public static getCellColor(\n columnDefinition: ITableColumnDef,\n currentRow: ITableRowItem\n ): string {\n const color = this.getTheme(columnDefinition, currentRow);\n return TableThemeHelper._getCellColor(color);\n }\n\n private static _getCellColor(color?: ComponentTheme) {\n if (!color) {\n return '';\n }\n return `text-${color.toLowerCase()}`;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface ISelectOptionParentComponent {\n multiple?: boolean;\n}\n\nexport const IMPDC_SELECT_OPTION_PARENT_COMPONENT =\n new InjectionToken<ISelectOptionParentComponent>(\n 'IMPDC_SELECT_OPTION_PARENT_COMPONENT'\n );\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n Renderer2\n} from '@angular/core';\nimport { NgbDropdownItem } from '@ng-bootstrap/ng-bootstrap';\nimport { nanoid } from 'nanoid';\nimport {\n BooleanInput,\n coerceBooleanPropertyValue\n} from '../../../../../utilities';\nimport { Subject } from 'rxjs';\nimport {\n ISelectOptionParentComponent,\n IMPDC_SELECT_OPTION_PARENT_COMPONENT\n} from '../option-parent';\n\nexport class SelectOptionSelectionChangeEvent<T = any> {\n constructor(\n public source: SelectOptionComponent,\n public isUserInput = false\n ) {}\n}\n\n@Component({\n selector: 'impdc-select-option',\n templateUrl: './select-option.component.html',\n styleUrls: ['select-option.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[class.impdc-select-option--single]': '!multiple',\n '[class.impdc-select-option--multiple]': 'multiple',\n '[class.impdc-select-option--selected]': 'selected',\n '(click)': '_selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)'\n }\n})\nexport class SelectOptionComponent<T = any>\n extends NgbDropdownItem\n implements OnDestroy\n{\n /** @ignore */\n public readonly stateChanges = new Subject<void>();\n private _selected = false;\n private __disabled = false;\n\n /** @ignore */\n get multiple(): boolean {\n return this._parent && !!this._parent.multiple;\n }\n\n /** @ignore */\n get selected(): boolean {\n return this._selected;\n }\n\n /**\n * The specific value represented by the select option.\n */\n @Input()\n public value?: T;\n\n /**\n * Label text describing the select option.\n */\n @Input()\n public get label(): string {\n return this._label;\n }\n public set label(label: string) {\n this._label = label;\n this._emitSelectionChangeEvent();\n }\n private _label = '';\n\n /** @ignore */\n @Input()\n public id = `impdc-option-${nanoid()}`;\n\n /**\n * Used to enable or disable the specific select option.\n */\n @Input()\n public override get disabled(): boolean {\n return this.__disabled;\n }\n public override set disabled(value: BooleanInput) {\n this.__disabled = coerceBooleanPropertyValue(value);\n }\n\n /** @ignore */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public readonly onSelectionChange = new EventEmitter<\n SelectOptionSelectionChangeEvent<T>\n >();\n\n constructor(\n @Optional()\n @Inject(IMPDC_SELECT_OPTION_PARENT_COMPONENT)\n private readonly _parent: ISelectOptionParentComponent,\n private readonly _changeDetector: ChangeDetectorRef,\n _elementRef: ElementRef,\n _renderer: Renderer2\n ) {\n super(_elementRef, _renderer);\n }\n\n /** @ignore */\n public select(): void {\n if (!this._selected) {\n this._selected = true;\n this._changeDetector.markForCheck();\n this._emitSelectionChangeEvent();\n }\n }\n\n /** @ignore */\n public deselect(): void {\n if (this._selected) {\n this._selected = false;\n this._changeDetector.markForCheck();\n this._emitSelectionChangeEvent();\n }\n }\n\n /** @ignore */\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n /** Ensures the option is selected when activated from the keyboard. */\n protected _handleKeydown(event: KeyboardEvent): void {\n if (this._isInteractionKeyEvent(event)) {\n this._selectViaInteraction();\n\n // Prevent the page from scrolling down and form submits.\n event.preventDefault();\n }\n }\n\n /**\n * `Selects the option while indicating the selection came from the user. Used to\n * determine if the select's view -> model callback should be invoked.`\n */\n protected _selectViaInteraction(): void {\n if (!this.disabled) {\n this._selected = this.multiple ? !this._selected : true;\n this._changeDetector.markForCheck();\n this._emitSelectionChangeEvent(true);\n }\n }\n\n private _emitSelectionChangeEvent(isUserInput = false): void {\n this.onSelectionChange.emit(\n new SelectOptionSelectionChangeEvent(this, isUserInput)\n );\n }\n\n private _isInteractionKeyEvent(event: KeyboardEvent): boolean {\n // Bail if key isn't \"enter\" or \"space\"\n if (event.keyCode !== 13 && event.keyCode !== 32) {\n return false;\n }\n\n // Bail if keypress has any modifers\n if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n return false;\n }\n\n return true;\n }\n}\n","<ng-template #singleSelectTemplate>\n <span>{{ label || ' ' }}</span>\n <span\n *ngIf=\"selected\"\n impdc-icon\n name=\"check\"\n class=\"selected-check ms-auto\"></span>\n</ng-template>\n\n<ng-template #multipleSelectTemplate>\n <div class=\"d-flex align-items-center gap-5\">\n <span>\n <input\n class=\"form-check-input opacity-100\"\n type=\"checkbox\"\n disabled\n readonly=\"readonly\"\n [attr.checked]=\"selected ? 'checked' : null\" />\n </span>\n <span>\n {{ label }}\n </span>\n </div>\n</ng-template>\n\n<ng-template\n [ngTemplateOutlet]=\"\n multiple ? multipleSelectTemplate : singleSelectTemplate\n \"></ng-template>\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'impdc-corner-hint'\n})\nexport class CornerHintDirective {}\n","import { Directive, InjectionToken, Input } from '@angular/core';\nimport { nanoid } from 'nanoid';\n\nexport const IMPDC_ERROR = new InjectionToken<ErrorDirective>('ImpdcError');\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'impdc-error, [impdc-error]',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[id]': 'id'\n },\n providers: [{ provide: IMPDC_ERROR, useExisting: ErrorDirective }]\n})\nexport class ErrorDirective {\n @Input()\n id = `impdc-form-error-${nanoid()}`;\n}\n","import {\n Directive,\n Host,\n Inject,\n InjectionToken,\n Optional,\n SkipSelf\n} from '@angular/core';\nimport { FormGroupDirective, NgForm } from '@angular/forms';\n\nexport const IMPDC_FORM_ROOT = new InjectionToken<ImpdcFormRoot>(\n 'ImpdcFormRoot'\n);\n\nexport interface ImpdcFormRoot {\n get submitted(): boolean;\n get form(): FormGroupDirective | NgForm;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[formGroup]',\n providers: [\n {\n provide: IMPDC_FORM_ROOT,\n useExisting: RootFormGroupDirective\n }\n ]\n})\nexport class RootFormGroupDirective implements ImpdcFormRoot {\n constructor(\n @Host() private _formGroupDirective: FormGroupDirective,\n @Optional()\n @SkipSelf()\n @Inject(IMPDC_FORM_ROOT)\n private _parentRoot?: ImpdcFormRoot\n ) {}\n\n public get submitted(): boolean {\n return this._parentRoot\n ? this._parentRoot.submitted\n : this._formGroupDirective.submitted;\n }\n\n public get form(): FormGroupDirective | NgForm {\n return this._parentRoot ? this._parentRoot.form : this._formGroupDirective;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[ngForm]',\n providers: [\n {\n provide: IMPDC_FORM_ROOT,\n useExisting: RootNgFormDirective\n }\n ]\n})\nexport class RootNgFormDirective implements ImpdcFormRoot {\n constructor(\n @Host() private _ngForm: NgForm,\n @Optional()\n @SkipSelf()\n @Inject(IMPDC_FORM_ROOT)\n private _parentRoot?: ImpdcFormRoot\n ) {}\n\n public get submitted(): boolean {\n return this._parentRoot\n ? this._parentRoot.submitted\n : this._ngForm.submitted;\n }\n\n public get form(): FormGroupDirective | NgForm {\n return this._parentRoot ? this._parentRoot.form : this._ngForm;\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { nanoid } from 'nanoid';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'impdc-hint',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[id]': 'id'\n }\n})\nexport class HintDirective {\n @Input()\n public id = `impdc-form-hint-${nanoid()}`;\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'impdc-label'\n})\nexport class LabelDirective {}\n","import { Directive, InjectionToken, Input } from '@angular/core';\n\nexport const IMPDC_PREFIX = new InjectionToken<PrefixDirective>('ImpdcPrefix');\n\n@Directive({\n selector: '[impdcPrefix], [impdcTextPrefix]',\n providers: [{ provide: IMPDC_PREFIX, useExisting: PrefixDirective }]\n})\nexport class PrefixDirective {\n @Input('impdcTextPrefix')\n public set isTextSelector(value: '') {\n this.isText = true;\n }\n\n public isText = false;\n}\n","import { Directive, InjectionToken, Input } from '@angular/core';\n\nexport const IMPDC_SUFFIX = new InjectionToken<SuffixDirective>('ImpdcSuffix');\n\n@Directive({\n selector: '[impdcSuffix], [impdcTextSuffix]',\n providers: [{ provide: IMPDC_SUFFIX, useExisting: SuffixDirective }]\n})\nexport class SuffixDirective {\n @Input('impdcTextSuffix')\n public set isTextSelector(value: '') {\n this.isText = true;\n }\n\n public isText = false;\n}\n","import { AbstractConstructor, Constructor } from './constructors.type';\n\n/** @docs-private */\nexport interface CanDisable {\n /** Whether the component is disabled. */\n disabled: boolean;\n}\n\ntype CanDisableCtor = Constructor<CanDisable> & AbstractConstructor<CanDisable>;\n\n/** Mixin to augment a directive with a `disabled` property. */\nexport function mixinDisabled<T extends AbstractConstructor<{}>>(\n base: T\n): CanDisableCtor & T;\nexport function mixinDisabled<T extends Constructor<{}>>(\n base: T\n): CanDisableCtor & T {\n return class extends base {\n private _disabled = false;\n\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: any) {\n this._disabled = !!value;\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import {\n AbstractControl,\n FormGroupDirective,\n NgControl,\n NgForm\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { ImpdcFormRoot } from '../directives';\nimport { ErrorStateMatcher } from '../services';\nimport { AbstractConstructor, Constructor } from './constructors.type';\n\n/**\n * @docs-private\n */\nexport interface ICanUpdateErrorState {\n updateErrorState(): void;\n errorState: boolean;\n errorStateMatcher: ErrorStateMatcher | undefined;\n}\n\ntype CanUpdateErrorStateCtor = Constructor<ICanUpdateErrorState> &\n AbstractConstructor<ICanUpdateErrorState>;\n\n/**\n * @docs-private\n */\nexport interface IHasErrorState {\n _formRoot: ImpdcFormRoot;\n _parentFormGroup: FormGroupDirective;\n _parentForm: NgForm;\n _defaultErrorStateMatcher: ErrorStateMatcher;\n\n ngControl: NgControl | null;\n stateChanges: Subject<void>;\n}\n\n/**\n * Mixin to augment a directive with updateErrorState method.\n * Intended for components with `errorState` and the need to update `errorState`.\n */\nexport function mixinErrorState<T extends AbstractConstructor<IHasErrorState>>(\n base: T\n): CanUpdateErrorStateCtor & T;\nexport function mixinErrorState<T extends Constructor<IHasErrorState>>(\n base: T\n): CanUpdateErrorStateCtor & T {\n return class extends base {\n /** Whether the component is in an error state. */\n errorState = false;\n\n /** An object used to control the error state of the component. */\n errorStateMatcher: ErrorStateMatcher | undefined;\n\n /** Updates the error state based on the provided error state matcher. */\n updateErrorState() {\n const oldState = this.errorState;\n const parent =\n this._formRoot?.form || this._parentFormGroup || this._parentForm;\n const matcher = this.errorStateMatcher || this._defaultErrorStateMatcher;\n const control = this.ngControl\n ? (this.ngControl.control as AbstractControl)\n : null;\n const newState = matcher.isErrorState(control, parent);\n\n if (newState !== oldState) {\n this.errorState = newState;\n this.stateChanges.next();\n }\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { Directive } from '@angular/core';\nimport { AbstractControlDirective, NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n@Directive()\nexport abstract class ImpdcFormFieldControl<T> {\n /**\n * The control's value.\n */\n public abstract value: T | null;\n\n /**\n * Stream that should emit when the control's state changes in a way requiring\n * the parent `FormFieldComponent` to run change detection.\n */\n public abstract readonly stateChanges: Observable<void>;\n\n public abstract readonly id: string;\n\n public abstract readonly ngControl:\n | NgControl\n | AbstractControlDirective\n | null;\n\n public abstract readonly focused: boolean;\n\n public abstract readonly disabled: boolean;\n\n public abstract readonly required: boolean;\n\n public abstract readonly errorState: boolean;\n\n public readonly controlType?: string;\n\n public abstract readonly supportsAffixes: boolean;\n}\n","import { coerceNumberPropertyValue } from '../../../utilities';\nimport { AbstractConstructor, Constructor } from './constructors.type';\nimport { CanDisable } from './disabled.mixin';\n\n/** @ignore */\nexport interface HasTabIndex {\n /** Tabindex of the component. */\n tabIndex: number;\n\n /** Tabindex to which to fall back to if no value is set. */\n defaultTabIndex: number;\n}\n\ntype HasTabIndexCtor = Constructor<HasTabIndex> &\n AbstractConstructor<HasTabIndex>;\n\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport function mixinTabIndex<T extends AbstractConstructor<CanDisable>>(\n base: T,\n defaultTabIndex?: number\n): HasTabIndexCtor & T;\nexport function mixinTabIndex<T extends Constructor<CanDisable>>(\n base: T,\n defaultTabIndex = 0\n): HasTabIndexCtor & T {\n return class extends base implements HasTabIndex {\n private _tabIndex: number = defaultTabIndex;\n defaultTabIndex = defaultTabIndex;\n\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex =\n value != null ? coerceNumberPropertyValue(value) : this.defaultTabIndex;\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { Subject } from 'rxjs';\n\nexport interface SelectChange<T> {\n source: SelectModel<T>;\n added: T[];\n removed: T[];\n}\n\nexport function getMultipleValuesInSingleSelectError() {\n return Error(\n 'Cannot pass multiple values into SelectModel in single-value mode.'\n );\n}\n\nexport class SelectModel<T> {\n private _selection = new Set<T>();\n\n private _pendingDeselectionsToEmit: T[] = [];\n private _pendingSelectionsToEmit: T[] = [];\n private _selected: T[] | null = null;\n\n public get selected(): T[] {\n if (!this._selected) {\n this._selected = Array.from(this._selection.values());\n }\n\n return this._selected;\n }\n\n public readonly changed$ = new Subject<SelectChange<T>>();\n\n constructor(\n private readonly _multiple = false,\n initialSelectedValues?: T[],\n private readonly _emitChanges = true,\n public compareFunc?: (a: T, b: T) => boolean\n ) {\n if (initialSelectedValues && initialSelectedValues.length) {\n if (_multiple) {\n initialSelectedValues.forEach(value => {\n this._markSelected(value);\n });\n } else {\n this._markSelected(initialSelectedValues[0]);\n }\n\n this._pendingSelectionsToEmit.length = 0;\n }\n }\n\n public select(...values: T[]): boolean | void {\n this._verifyValueAssignment(values);\n values.forEach(value => this._markSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n\n public deselect(...values: T[]): boolean | void {\n this._verifyValueAssignment(values);\n values.forEach(value => this._unmarkSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n\n public setSelection(...values: T[]): boolean | void {\n this._verifyValueAssignment(values);\n const oldValues = this.selected;\n const newSelectedSet = new Set(values);\n\n values.forEach(value => this._markSelected(value));\n oldValues\n .filter(value => !newSelectedSet.has(value))\n .forEach(value => this._unmarkSelected(value));\n\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n\n public toggle(value: T): boolean | void {\n return this.isSelected(value) ? this.deselect(value) : this.select(value);\n }\n\n public clear(flushEvent = true): boolean | void {\n this._unmarkAll();\n const changed = this._hasQueuedChanges();\n if (flushEvent) {\n this._emitChangeEvent();\n }\n return changed;\n }\n\n public isSelected(value: T): boolean {\n return this._selection.has(this._getConcreteValue(value));\n }\n\n public isEmpty(): boolean {\n return this._selection.size === 0;\n }\n\n public hasValue(): boolean {\n return !this.isEmpty();\n }\n\n public sort(predicateFunc?: (a: T, b: T) => number): void {\n if (this._multiple && this.selected) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._selected!.sort(predicateFunc);\n }\n }\n\n public isMultipleSelection(): boolean {\n return this._multiple;\n }\n\n private _emitChangeEvent(): void {\n this._selected = null;\n\n if (\n this._pendingSelectionsToEmit.length ||\n this._pendingDeselectionsToEmit.length\n ) {\n this.changed$.next({\n source: this,\n added: this._pendingSelectionsToEmit,\n removed: this._pendingDeselectionsToEmit\n });\n\n this._pendingDeselectionsToEmit = [];\n this._pendingSelectionsToEmit = [];\n }\n }\n\n private _markSelected(value: T): void {\n value = this._getConcreteValue(value);\n\n if (!this.isSelected(value)) {\n if (!this._multiple) {\n this._unmarkAll();\n }\n\n if (!this.isSelected(value)) {\n this._selection.add(value);\n }\n\n if (this._emitChanges) {\n this._pendingSelectionsToEmit.push(value);\n }\n }\n }\n\n private _unmarkSelected(value: T): void {\n value = this._getConcreteValue(value);\n\n if (this.isSelected(value)) {\n this._selection.delete(value);\n\n if (this._emitChanges) {\n this._pendingDeselectionsToEmit.push(value);\n }\n }\n }\n\n private _unmarkAll(): void {\n if (!this.isEmpty()) {\n this._selection.forEach(value => this._unmarkSelected(value));\n }\n }\n\n private _verifyValueAssignment(values: T[]): void {\n if (values.length > 1 && !this._multiple) {\n throw getMultipleValuesInSingleSelectError();\n }\n }\n\n private _hasQueuedChanges(): boolean {\n return !!(\n this._pendingDeselectionsToEmit.length ||\n this._pendingSelectionsToEmit.length\n );\n }\n\n private _getConcreteValue(inputVal: T): T {\n if (!this.compareFunc) {\n return inputVal;\n }\n\n for (let selectedVal of this._selection) {\n if (this.compareFunc(inputVal, selectedVal)) {\n return selectedVal;\n }\n }\n\n return inputVal;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgForm } from '@angular/forms';\n\n@Injectable()\nexport class ShowOnDirtyErrorStateMatcher implements ErrorStateMatcher {\n public isErrorState(\n control: AbstractControl<any, any> | null,\n form: FormGroupDirective | NgForm | null\n ): boolean {\n return !!(\n control &&\n control.invalid &&\n (control.dirty || (form && form.submitted))\n );\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorStateMatcher {\n public isErrorState(\n control: AbstractControl | null,\n form: FormGroupDirective | NgForm | null\n ): boolean {\n return !!(\n control &&\n control.invalid &&\n (control.touched || (form && form.submitted))\n );\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\n// Users of the Dispatcher never need to see this type, but TypeScript requires it to be exported.\nexport type UniqueSelectionDispatcherListener = (\n id: string,\n name: string\n) => void;\n\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\n@Injectable({ providedIn: 'root' })\nexport class UniqueSelectionDispatcher implements OnDestroy {\n private _listeners: UniqueSelectionDispatcherListener[] = [];\n\n /**\n * Notify other items that selection for the given name has been set.\n * @param id ID of the item.\n * @param name Name of the item.\n */\n public notify(id: string, name: string) {\n for (let listener of this._listeners) {\n listener(id, name);\n }\n }\n\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n public listen(listener: UniqueSelectionDispatcherListener): () => void {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter(\n (registered: UniqueSelectionDispatcherListener) => {\n return listener !== registered;\n }\n );\n };\n }\n\n public ngOnDestroy() {\n this._listeners = [];\n }\n}\n","/* eslint-disable @angular-eslint/no-conflicting-lifecycle */\nimport {\n AfterContentInit,\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Self,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormGroupDirective,\n NgControl,\n NgForm,\n Validators\n} from '@angular/forms';\nimport { NgbDropdown, NgbDropdownMenu } from '@ng-bootstrap/ng-bootstrap';\nimport { nanoid } from 'nanoid';\nimport {\n BooleanInput,\n coerceBooleanPropertyValue\n} from '../../../../utilities';\nimport {\n defer,\n merge,\n Observable,\n startWith,\n Subject,\n switchMap,\n take,\n takeUntil\n} from 'rxjs';\nimport { ErrorStateMatcher } from '../../services';\nimport { ImpdcFormRoot, IMPDC_FORM_ROOT } from '../../directives';\nimport {\n CanDisable,\n HasTabIndex,\n ICanUpdateErrorState,\n IHasErrorState,\n ImpdcFormFieldControl,\n mixinDisabled,\n mixinErrorState,\n mixinTabIndex\n} from '../../shared';\nimport { IMPDC_SELECT_OPTION_PARENT_COMPONENT } from './option-parent';\nimport {\n SelectOptionSelectionChangeEvent,\n SelectOptionComponent\n} from './option/select-option.component';\nimport { SelectModel } from './select-model';\n\nexport class SelectChangeEvent {\n constructor(\n /** The specific SelectComponent that changed. */\n public readonly source: SelectComponent,\n /** The selected value(s) */\n public readonly value: any\n ) {}\n}\n\n/**\n * Returns an exception to be thrown when attempting to assign a non-array value to a select\n * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for\n * resetting the value.\n * @ignore\n */\nexport function getImpdcSelectNonArrayValueError(): Error {\n return Error('Value must be an array in multiple-selection mode.');\n}\n\n/**\n * Returns an exception to be thrown when assigning a non-function value to the comparator\n * used to determine if a value corresponds to an option. Note that whether the function\n * actually takes two values and returns a boolean is not checked.\n */\nexport function getImpdcSelectNonFunctionValueError(): Error {\n return Error('`compareWith` must be a function.');\n}\n\n/**\n * Returns an exception to be thrown when attempting to change a select's `multiple` option\n * after initialization.\n * @ignore\n */\nexport function getImpdcSelectDynamicMultipleError(): Error {\n return Error('Cannot change `multiple` mode of select after initialization.');\n}\n\nconst _SelectComponentBase = mixinTabIndex(\n mixinDisabled(\n mixinErrorState(\n class {\n public readonly stateChanges = new Subject<void>();\n\n constructor(\n public _defaultErrorStateMatcher: ErrorStateMatcher,\n public _formRoot: ImpdcFormRoot,\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n public ngControl: NgControl | null\n ) {}\n }\n )\n )\n);\n\n/**\n * The `SelectComponent` (`<impdc-select`) is a select-style dropdown input where an item (or multiple items) can be picked\n * from a list of available options. This component can be used within a `FormFieldComponent` (`<impdc-form-field`).\n * To use, import `SelectModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-select',\n exportAs: 'impdcSelect',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['disabled', 'tabIndex'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.id]': 'id',\n '[attr.tabindex]': 'tabIndex',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[class.form-select]': 'true',\n '[class.is-invalid]': 'errorState',\n '[class.impdc-form-field-control]': 'true',\n '[class.impdc-select--required]': 'required',\n '[class.impdc-select--disabled]': 'disabled',\n '[class.impdc-select--invalid]': 'errorState',\n '[class.impdc-select--empty]': 'empty',\n '[class.impdc-select--multiple]': 'multiple',\n '(focus)': '_onFocus(); focus()'\n },\n providers: [\n {\n provide: ImpdcFormFieldControl,\n useExisting: SelectComponent\n },\n {\n provide: IMPDC_SELECT_OPTION_PARENT_COMPONENT,\n useExisting: SelectComponent\n }\n ]\n})\nexport class SelectComponent\n extends _SelectComponentBase\n implements\n OnInit,\n AfterContentInit,\n AfterViewInit,\n OnChanges,\n DoCheck,\n OnDestroy,\n ControlValueAccessor,\n HasTabIndex,\n ImpdcFormFieldControl<any>,\n CanDisable,\n ICanUpdateErrorState,\n IHasErrorState\n{\n /** @ignore */\n @ContentChildren(SelectOptionComponent, { descendants: true })\n public options!: QueryList<SelectOptionComponent>;\n\n @ViewChild(NgbDropdown)\n protected _ngbDropdown!: NgbDropdown;\n\n @ViewChild(NgbDropdownMenu)\n protected _ngbDropdownMenu!: NgbDropdownMenu;\n\n @ViewChild('toggleButton', { static: true, read: ElementRef })\n protected _toggleButtonRef!: ElementRef<HTMLButtonElement>;\n\n /** @ignore */\n public readonly optionSelectionChanges: Observable<SelectOptionSelectionChangeEvent> =\n defer(() => {\n const options = this.options;\n\n if (options) {\n return options.changes.pipe(\n startWith(options),\n switchMap(() =>\n merge(...options.map(option => option.onSelectionChange))\n )\n );\n }\n\n return this._ngZone.onStable.pipe(\n take(1),\n switchMap(() => this.optionSelectionChanges)\n );\n });\n\n protected readonly _uid = `impdc-select-${nanoid()}`;\n protected _selectionModel!: SelectModel<SelectOptionComponent>;\n\n private readonly _ngDestroy = new Subject<void>();\n private _previousControl?: AbstractControl | null;\n private _compareWith = (o1: any, o2: any) => o1 === o2;\n private _cvaOnChange: (value: any) => void = () => {};\n private _cvaOnTouched = () => {};\n\n /**\n * The placeholder text that will be displayed when no selection has been made.\n *\n * @default \\- Select -\n */\n @Input()\n public get placeholder(): string {\n return this._placeholder;\n }\n public set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n private _placeholder = '- Select -';\n\n /**\n * Used to set requiredness of control in a template-based manner;\n * not necessary when using the Angular reactive forms API and `required` validator.\n */\n @Input()\n public get required(): boolean {\n return (\n this._required ??\n this.ngControl?.control?.hasValidator(Validators.required) ??\n false\n );\n }\n public set required(value: BooleanInput) {\n this._required = coerceBooleanPropertyValue(value);\n this.stateChanges.next();\n }\n private _required: boolean | undefined;\n\n /**\n * Sets whether the control is a single-select or multiple-select. Cannot be changed after component initialization.\n */\n @Input()\n public get multiple(): boolean {\n return this._multiple;\n }\n public set multiple(value: BooleanInput) {\n if (this._selectionModel) {\n throw getImpdcSelectDynamicMultipleError();\n }\n\n this._multiple = coerceBooleanPropertyValue(value);\n }\n protected _multiple = false;\n\n /**\n * Function used to compare option values with selected values. The first arg is a\n * value from an option, and the second arg is a value from the selection.\n *\n * @returns Boolean indicating if the values are equivalent.\n */\n @Input()\n public get compareWith() {\n return this._compareWith;\n }\n public set compareWith(fn: (a: any, b: any) => boolean) {\n if (typeof fn !== 'function') {\n throw getImpdcSelectNonFunctionValueError();\n }\n\n this._compareWith = fn;\n\n if (this._selectionModel) {\n // Changing the comparator function means the visual selection may have changed.\n this._initializeSelection();\n }\n }\n\n @Input()\n public override errorStateMatcher!: ErrorStateMatcher;\n\n /** Events fire when selection has been changed by the user. */\n @Output()\n public readonly selectionChange: EventEmitter<SelectChangeEvent> = new EventEmitter<SelectChangeEvent>();\n\n /**\n * Events fire when raw value of select changes. Mainly exists to handle\n * two-way binding of `value` input property.\n * @ignore\n */\n @Output()\n public readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n public get dropdownOpen(): boolean {\n return this._ngbDropdown?.isOpen() ?? false;\n }\n\n constructor(\n private readonly _changeDetector: ChangeDetectorRef,\n protected readonly _ngZone: NgZone,\n @Attribute('tabindex') tabIndex: string,\n _defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Inject(IMPDC_FORM_ROOT) _formRoot: ImpdcFormRoot,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n @Self() @Optional() ngControl: NgControl\n ) {\n super(\n _defaultErrorStateMatcher,\n _formRoot,\n _parentForm,\n _parentFormGroup,\n ngControl\n );\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n\n this.id = this.id;\n this.tabIndex = parseInt(tabIndex) || 0;\n }\n\n public get empty(): boolean {\n return !this._selectionModel || this._selectionModel.isEmpty();\n }\n\n public get displayedValue(): string {\n if (this.empty) {\n return '';\n }\n\n if (!this._multiple) {\n return this._selectionModel.selected[0].label;\n }\n\n return this._selectionModel.selected.map(opt => opt.label).join(', ');\n }\n\n public get selected(): SelectOptionComponent | SelectOptionComponent[] {\n return this.multiple\n ? this._selectionModel?.selected || []\n : this._selectionModel?.selected[0];\n }\n\n /** @ignore */\n public focus(options?: FocusOptions): void {\n this._toggleButtonRef.nativeElement.focus(options);\n }\n\n protected _handleOpenChange(isOpen: boolean): void {\n if (isOpen) {\n this._onFocus();\n } else {\n this._onBlur();\n }\n\n this.stateChanges.next();\n }\n\n /* Angular lifecycle hooks */\n\n /** @ignore */\n public ngOnInit(): void {\n this._selectionModel = new SelectModel<SelectOptionComponent>(\n this.multiple\n );\n this.stateChanges.next();\n }\n\n /** @ignore */\n public ngAfterContentInit(): void {\n this._selectionModel.changed$\n .pipe(takeUntil(this._ngDestroy))\n .subscribe(changeEvent => {\n changeEvent.added.forEach(option => option.select());\n changeEvent.removed.forEach(option => option.deselect());\n });\n\n this.options.changes\n .pipe(startWith(null), takeUntil(this._ngDestroy))\n .subscribe(() => {\n this._resetOptions();\n this._initializeSelection();\n });\n }\n\n /** @ignore */\n public ngAfterViewInit(): void {\n this._ngbDropdownMenu.menuItems = this.options;\n }\n\n /** @ignore */\n public ngDoCheck(): void {\n const ngControl = this.ngControl;\n\n if (!ngControl) {\n return;\n }\n\n if (this._previousControl !== ngControl.control) {\n if (\n this._previousControl !== undefined &&\n ngControl.disabled !== null &&\n ngControl.disabled !== this.disabled\n ) {\n this.disabled = ngControl?.disabled;\n }\n\n this._previousControl = ngControl.control;\n }\n\n this.updateErrorState();\n }\n\n /** @ignore */\n public ngOnChanges(changes: SimpleChanges): void {\n // Managing disabled state is handled via the `mixinDisabled` mixin/generator, but we still need to signal\n // to the parent form field so it can run change detection when disabled state is changed.\n if (changes['disabled']) {\n this.stateChanges.next();\n }\n }\n\n /** @ignore */\n public ngOnDestroy(): void {\n this._ngDestroy.next();\n this._ngDestroy.complete();\n this.stateChanges.complete();\n }\n\n /* ImpdcFormFieldControl */\n public readonly controlType: string = 'impdc-select';\n\n public readonly supportsAffixes: boolean = true;\n\n @Input()\n public get value(): any {\n return this._value;\n }\n public set value(value: any) {\n const hasAssigned = this._assignValue(value);\n\n if (hasAssigned) {\n this._cvaOnChange(value);\n }\n }\n protected _value: any;\n\n @Input()\n public get id(): string {\n return this._id;\n }\n public set id(value: string) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n protected _id!: string;\n\n public get focused(): boolean {\n return this._focused || this.dropdownOpen;\n }\n protected _focused = false;\n\n /* ControlValueAccessor */\n /** @ignore */\n public writeValue(value: any): void {\n this._assignValue(value);\n }\n\n /** @ignore */\n public registerOnChange(fn: (value: any) => void): void {\n this._cvaOnChange = fn;\n }\n\n /** @ignore */\n public registerOnTouched(fn: () => {}): void {\n this._cvaOnTouched = fn;\n }\n\n /** @ignore */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetector.markForCheck();\n this.stateChanges.next();\n }\n\n /* Internals */\n\n protected _onFocus(): void {\n if (!this.disabled) {\n this._focused = true;\n this.stateChanges.next();\n }\n }\n\n /**\n * Calls the CVA touched callback only if the dropdown is closed.\n */\n protected _onBlur(): void {\n this._focused = false;\n\n if (!this.disabled && !this.dropdownOpen) {\n this._cvaOnTouched();\n this._changeDetector.markForCheck();\n this.stateChanges.next();\n }\n }\n\n private _initializeSelection(): void {\n // We defer this work into a promise in order to avoid tripping Angular's\n // \"Expression has changed after it was checked\" error.\n Promise.resolve().then(() => {\n if (this.ngControl) {\n this._value = this.ngControl.value;\n }\n\n this._setSelectionByValue(this._value);\n this.stateChanges.next();\n });\n }\n\n private _setSelectionByValue(value: any | any[]): void {\n this._selectionModel.clear();\n\n if (this.multiple && value) {\n if (!Array.isArray(value)) {\n throw getImpdcSelectNonArrayValueError();\n }\n\n value.forEach(currentValue => this._selectOptionByValue(currentValue));\n this._sortValues();\n } else {\n this._selectOptionByValue(value);\n }\n\n this._changeDetector.detectChanges();\n }\n\n private _selectOptionByValue(value: any): SelectOptionComponent | undefined {\n const correspondingOption = this.options.find(\n (option: SelectOptionComponent) => {\n if (this._selectionModel.isSelected(option)) {\n return false;\n }\n\n try {\n return option.value != null && this._compareWith(option.value, value);\n } catch (error) {\n console.warn(error);\n return false;\n }\n }\n );\n\n if (correspondingOption) {\n this._selectionModel.select(correspondingOption);\n }\n\n return correspondingOption;\n }\n\n /** Assigns a value to the select control. Returns a boolean indicating whether or not\n * the value has changed.\n */\n private _assignValue(newValue: any | any[]): boolean {\n if (\n newValue !== this._value ||\n (this._multiple && Array.isArray(newValue))\n ) {\n if (this.options) {\n this._setSelectionByValue(newValue);\n }\n\n this._value = newValue;\n return true;\n }\n\n return false;\n }\n\n private _resetOptions(): void {\n const changedOrDestroyed = merge(this.options.changes, this._ngDestroy);\n\n this.optionSelectionChanges\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(event => {\n this._onSelect(event.source, event.isUserInput);\n\n if (event.isUserInput && !this.multiple && this.dropdownOpen) {\n this._ngbDropdown.close();\n this.focus();\n }\n });\n\n merge(...this.options.map(option => option.stateChanges))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(() => {\n this._changeDetector.detectChanges();\n this.stateChanges.next();\n });\n }\n\n private _onSelect(option: SelectOptionComponent, isUserInput: boolean): void {\n const wasSelected = this._selectionModel.isSelected(option);\n\n if (option.value == null && !this._multiple) {\n option.deselect();\n this._selectionModel.clear();\n\n if (this.value != null) {\n this._propagateChanges(option.value);\n }\n } else {\n if (wasSelected !== option.selected) {\n option.selected\n ? this._selectionModel.select(option)\n : this._selectionModel.deselect(option);\n }\n\n if (this.multiple) {\n this._sortValues();\n\n if (isUserInput) {\n this.focus();\n }\n }\n }\n\n if (wasSelected !== this._selectionModel.isSelected(option)) {\n this._propagateChanges();\n }\n\n this._changeDetector.markForCheck();\n this.stateChanges.next();\n }\n\n private _sortValues(): void {\n if (this.multiple) {\n const options = this.options.toArray();\n\n this._selectionModel.sort((a, b) => {\n return options.indexOf(a) - options.indexOf(b);\n });\n\n this.stateChanges.next();\n }\n }\n\n private _propagateChanges(fallbackValue?: any): void {\n let valToEmit: any = null;\n\n if (this.multiple) {\n valToEmit = (this.selected as SelectOptionComponent[]).map(\n option => option.value\n );\n } else {\n valToEmit = this.selected\n ? (this.selected as SelectOptionComponent).value\n : fallbackValue;\n }\n\n this._value = valToEmit;\n this.valueChange.emit(valToEmit);\n this._cvaOnChange(valToEmit);\n this.selectionChange.emit(this._buildChangeEvent(valToEmit));\n }\n\n private _buildChangeEvent(value: any): SelectChangeEvent {\n return new SelectChangeEvent(this, value);\n }\n}\n","<div\n ngbDropdown\n [autoClose]=\"multiple ? 'outside' : true\"\n container=\"body\"\n dropdownClass=\"impartner-hex\"\n (openChange)=\"_handleOpenChange($event)\"\n class=\"w-100\">\n <button\n #toggleButton\n class=\"impdc-select--toggle btn border-0 text-start\"\n type=\"button\"\n role=\"combobox\"\n [disabled]=\"disabled\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n ngbDropdownToggle>\n <ng-container [ngSwitch]=\"empty\">\n <span\n class=\"impdc-select--text impdc-select--placeholder\"\n *ngSwitchCase=\"true\"\n >{{ placeholder }}</span\n >\n <span\n class=\"impdc-select--text impdc-select--value-text\"\n *ngSwitchCase=\"false\"\n >{{ displayedValue }}</span\n >\n </ng-container>\n </button>\n <div\n ngbDropdownMenu\n class=\"w-100 bg-white text-gray-600\"\n role=\"listbox\"\n tabindex=\"-1\">\n <ng-content></ng-content>\n </div>\n</div>\n","/** @docs-private */\nexport function getImpdcFormFieldMissingControlError(): Error {\n return Error('impdc-form-field must contain a ImpdcFormFieldControl.');\n}\n","import {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n InjectionToken,\n QueryList,\n ViewChild\n} from '@angular/core';\nimport { AbstractControlDirective } from '@angular/forms';\nimport { nanoid } from 'nanoid';\nimport { merge, Subject, takeUntil } from 'rxjs';\nimport { ErrorDirective, IMPDC_ERROR } from './directives/error.directive';\nimport { IMPDC_PREFIX, PrefixDirective } from './directives/prefix.directive';\nimport { IMPDC_SUFFIX, SuffixDirective } from './directives/suffix.directive';\nimport { getImpdcFormFieldMissingControlError } from './form-field-errors';\nimport { ImpdcFormFieldControl } from './shared/form-field-control';\n\nexport const IMPDC_FORM_FIELD = new InjectionToken<FormFieldComponent>(\n 'FormFieldComponent'\n);\n\n@Component({\n selector: 'impdc-form-field',\n exportAs: 'impdcFormField',\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss'],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n class: 'impdc-form-field',\n '[class.impdc-form-field-focused]': '_control.focused',\n '[class.impdc-form-field-invalid]': '_control.errorState',\n '[class.impdc-form-field-disabled]': '_control.disabled',\n '[class.ng-untouched]': '_shouldForwardControlState(\"untouched\")',\n '[class.ng-touched]': '_shouldForwardControlState(\"touched\")',\n '[class.ng-pristine]': '_shouldForwardControlState(\"pristine\")',\n '[class.ng-dirty]': '_shouldForwardControlState(\"dirty\")',\n '[class.ng-valid]': '_shouldForwardControlState(\"valid\")',\n '[class.ng-invalid]': '_shouldForwardControlState(\"invalid\")',\n '[class.ng-pending]': '_shouldForwardControlState(\"pending\")'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: IMPDC_FORM_FIELD, useExisting: FormFieldComponent }]\n})\nexport class FormFieldComponent\n implements AfterViewInit, AfterContentInit, AfterContentChecked\n{\n @ViewChild('inputArea')\n protected _inputArea!: ElementRef<HTMLElement>;\n\n @ContentChild(ImpdcFormFieldControl)\n protected _formFieldControl!: ImpdcFormFieldControl<unknown>;\n\n @ContentChildren(IMPDC_PREFIX, { descendants: true })\n protected _prefixChildren!: QueryList<PrefixDirective>;\n @ContentChildren(IMPDC_SUFFIX, { descendants: true })\n protected _suffixChildren!: QueryList<SuffixDirective>;\n @ContentChildren(IMPDC_ERROR, { descendants: true })\n protected _errorChildren?: QueryList<ErrorDirective>;\n\n private readonly _destroyedSubject = new Subject<void>();\n protected _hasTextPrefix = false;\n protected _hasTextSuffix = false;\n private _isFocused: boolean | null = null;\n private _explicitFormFieldControl: ImpdcFormFieldControl<unknown> | undefined;\n\n protected readonly _labelId = `impdc-form-field-label-${nanoid()}`;\n\n protected get _control(): ImpdcFormFieldControl<unknown> {\n return this._explicitFormFieldControl || this._formFieldControl;\n }\n protected set _control(value) {\n this._explicitFormFieldControl = value;\n }\n\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n public ngAfterViewInit(): void {\n this._updateFocusState();\n this._changeDetectorRef.detectChanges();\n }\n\n public ngAfterContentInit(): void {\n this._assertFormFieldControl();\n this._initializeControl();\n this._initializePrefixAndSuffix();\n }\n\n public ngAfterContentChecked(): void {\n this._assertFormFieldControl();\n }\n\n protected _showErrors(): boolean {\n return !!(\n this._errorChildren &&\n this._errorChildren.length > 0 &&\n this._control.errorState\n );\n }\n\n protected _shouldForwardControlState(\n prop: keyof AbstractControlDirective\n ): boolean {\n const ngControl = this._control ? this._control.ngControl : null;\n\n return ngControl && ngControl[prop];\n }\n\n private _initializeControl(): void {\n const control = this._control;\n\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(\n `impdc-form-field-type-${control.controlType}`\n );\n }\n\n control.stateChanges\n .pipe(takeUntil(this._destroyedSubject))\n .subscribe(() => {\n this._updateFocusState();\n this._changeDetectorRef.markForCheck();\n });\n\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges\n .pipe(takeUntil(this._destroyedSubject))\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n\n private _assertFormFieldControl(): void {\n if (!this._control) {\n throw getImpdcFormFieldMissingControlError();\n }\n }\n\n private _updateFocusState(): void {\n if (this._control.focused && !this._isFocused) {\n this._isFocused = true;\n } else if (\n !this._control.focused &&\n (this._isFocused || this._isFocused === null)\n ) {\n this._isFocused = false;\n }\n\n this._inputArea.nativeElement.classList.toggle(\n 'impdc-form-field-control--focused',\n this._control.focused\n );\n }\n\n private _checkPrefixAndSuffixTypes() {\n this._hasTextPrefix = !!this._prefixChildren.find(p => p.isText);\n this._hasTextSuffix = !!this._suffixChildren.find(s => s.isText);\n }\n\n /** Initializes the prefix and suffix containers. */\n private _initializePrefixAndSuffix() {\n this._checkPrefixAndSuffixTypes();\n // Mark the form field as dirty whenever the prefix or suffix children change. This\n // is necessary because we conditionally display the prefix/suffix containers based\n // on whether there is projected content.\n merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(\n () => {\n this._checkPrefixAndSuffixTypes();\n this._changeDetectorRef.markForCheck();\n }\n );\n }\n}\n","<ng-template #labelTemplate>\n <label\n class=\"form-label\"\n [id]=\"_labelId\"\n [attr.for]=\"_formFieldControl.id\"\n [attr.aria-owns]=\"_formFieldControl.id\">\n <ng-content select=\"impdc-label\"></ng-content>\n </label>\n</ng-template>\n\n<ng-template #cornerHintTemplate>\n <div class=\"flex-shrink-1 text-gray-400 fw-medium text-end\">\n <ng-content select=\"impdc-corner-hint\"></ng-content>\n </div>\n</ng-template>\n\n<div class=\"d-flex justify-content-between gap-4\">\n <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"cornerHintTemplate\"></ng-template>\n</div>\n\n<div\n #inputArea\n class=\"impdc-form-field-wrapper\"\n [class.input-group]=\"_control.supportsAffixes\"\n [class.impdc-form-field--text]=\"_control.supportsAffixes\"\n [class.impdc-form-field--focused]=\"_control.focused\"\n [class.impdc-form-field--disabled]=\"_control.disabled\"\n [class.impdc-form-field--invalid]=\"_control.errorState\"\n [class.impdc-form-field--text--has-text-prefix]=\"_hasTextPrefix\"\n [class.impdc-form-field--text--has-text-suffix]=\"_hasTextSuffix\">\n <ng-container *ngIf=\"_control.supportsAffixes\">\n <ng-content select=\"[impdcPrefix]\"></ng-content>\n <ng-content select=\"[impdcTextPrefix]\"></ng-content>\n </ng-container>\n\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"_control.supportsAffixes\">\n <ng-content select=\"[impdcTextSuffix]\"></ng-content>\n <ng-content select=\"[impdcSuffix]\"></ng-content>\n </ng-container>\n</div>\n\n<div\n class=\"impdc-form-field-feedback\"\n [class.impdc-form-field-feedback--disabled]=\"false\">\n <div class=\"impdc-form-field-hint-wrapper\">\n <ng-content select=\"impdc-hint\"></ng-content>\n </div>\n <div *ngIf=\"_showErrors()\" class=\"impdc-form-field-error-wrapper\">\n <ng-content select=\"impdc-error, [impdc-error]\"></ng-content>\n </div>\n</div>\n","/* eslint-disable @angular-eslint/no-conflicting-lifecycle */\nimport {\n Directive,\n DoCheck,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Self\n} from '@angular/core';\nimport {\n FormGroupDirective,\n NgControl,\n NgForm,\n Validators\n} from '@angular/forms';\nimport { nanoid } from 'nanoid';\nimport { Subject } from 'rxjs';\nimport {\n BooleanInput,\n coerceBooleanPropertyValue\n} from '../../../../utilities';\nimport { ImpdcFormRoot, IMPDC_FORM_ROOT } from '../../directives';\nimport { ErrorStateMatcher } from '../../services';\nimport {\n ICanUpdateErrorState,\n IHasErrorState,\n mixinErrorState\n} from '../../shared';\nimport { ImpdcFormFieldControl } from '../../shared/form-field-control';\n\nconst IMPDC_INPUT_INVALID_TYPES = [\n 'button',\n 'checkbox',\n 'file',\n 'hidden',\n 'image',\n 'radio',\n 'range',\n 'reset',\n 'submit'\n];\n\n/** @docs-private */\nexport function getInputUnsupportedTypeError(type: string): Error {\n return Error(`Input type \"${type}\" isn't supported by impdcInput.`);\n}\n\nconst _InputDirectiveBase = mixinErrorState(\n class {\n public readonly stateChanges = new Subject<void>();\n\n constructor(\n public _defaultErrorStateMatcher: ErrorStateMatcher,\n public _formRoot: ImpdcFormRoot,\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n public ngControl: NgControl | null\n ) {}\n }\n);\n\n/**\n * The `InputDirective` (`<input impdcInput`, `<textarea impdcInput` or `<select impdcInput`) is a directive for text inputs.\n * With this directive, the input, textarea, and select can be used within a `FormFieldComponent` (`<impdc-form-field`).\n * To use, import `ImpdcFormsModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Directive({\n selector:\n 'input[impdcInput], textarea[impdcInput], select[impdcNativeSelect]',\n exportAs: 'impdcInput',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n class: 'impdc-input',\n '[id]': 'id',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.id]': 'id',\n '[attr.readonly]': 'readonly && !_isSelect || null',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[class.form-control]': '!_isSelect',\n '[class.form-control-color]': 'type === \"color\"',\n '[class.form-select]': '_isSelect',\n '[class.impdc-form-field-control]': 'true',\n '[class.is-invalid]': 'errorState',\n '[class.impdc-input--invalid]': 'errorState',\n '[class.impdc-input--disabled]': 'disabled',\n '[class.impdc-input--required]': 'required',\n '(focus)': '_focusChanged(true)',\n '(blur)': '_focusChanged(false)',\n '(input)': '_onInput()'\n },\n providers: [{ provide: ImpdcFormFieldControl, useExisting: InputDirective }]\n})\nexport class InputDirective\n extends _InputDirectiveBase\n implements\n ImpdcFormFieldControl<any>,\n ICanUpdateErrorState,\n IHasErrorState,\n OnChanges,\n OnDestroy,\n DoCheck\n{\n private _inputValueAccessor: { value: any };\n\n protected _uid = `impdc-input-${nanoid()}`;\n protected _isSelect: boolean;\n protected _isTextarea: boolean;\n\n public focused = false;\n\n public readonly controlType?: string = 'impdc-input';\n public readonly supportsAffixes: boolean = true;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanPropertyValue(value);\n\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n protected _disabled = false;\n\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n }\n protected _id!: string;\n\n /**\n * Supports most standard `<input [type]>` attribute values. Does not support `button`, `checkbox`,\n * `file`, `hidden`, `image`, `radio`, `range`, `reset`, or `button`, and does not apply to\n * `<textarea>` or `<select>` elements.\n *\n * @default text\n */\n @Input()\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n if (!this._typeIsValid(value)) {\n throw getInputUnsupportedTypeError(value);\n }\n\n this._type = value || 'text';\n\n // Sync with native input element.\n if (!this._isTextarea) {\n (this._elementRef.nativeElement as HTMLInputElement).type = this._type;\n }\n }\n protected _type = 'text';\n\n /**\n * Used to set requiredness of control in a template-based manner;\n * not necessary when using the Angular reactive forms API and `required` validator.\n */\n @Input()\n public get required(): boolean {\n return (\n this._required ??\n this.ngControl?.control?.hasValidator(Validators.required) ??\n false\n );\n }\n public set required(value: BooleanInput) {\n this._required = coerceBooleanPropertyValue(value);\n this.stateChanges.next();\n }\n private _required: boolean | undefined;\n\n /**\n * Used to put the control in a non-interactive readonly state; only supports `<input>` and\n * `<textarea>` elements.\n *\n * To see the difference between `readonly` and `disabled`, refer to [MDN's documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly).\n */\n @Input()\n public get readonly(): boolean {\n return this._readonly;\n }\n public set readonly(value: BooleanInput) {\n this._readonly = coerceBooleanPropertyValue(value);\n }\n private _readonly = false;\n\n @Input()\n public override errorStateMatcher!: ErrorStateMatcher;\n\n @Input()\n get value(): string {\n return this._inputValueAccessor.value;\n }\n set value(value: any) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n constructor(\n protected _elementRef: ElementRef<\n HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement\n >,\n @Optional() @Self() ngControl: NgControl,\n @Optional() @Inject(IMPDC_FORM_ROOT) _formRoot: ImpdcFormRoot,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n _defaultErrorStateMatcher: ErrorStateMatcher\n ) {\n super(\n _defaultErrorStateMatcher,\n _formRoot,\n _parentForm,\n _parentFormGroup,\n ngControl\n );\n\n const { nativeElement } = this._elementRef;\n const nodeName = nativeElement.nodeName.toLowerCase();\n\n this._inputValueAccessor = nativeElement;\n this.id = this.id;\n this._isSelect = nodeName === 'select';\n this._isTextarea = nodeName === 'textarea';\n\n if (this._isSelect) {\n this.controlType = (nativeElement as HTMLSelectElement).multiple\n ? 'impdc-native-select-multiple'\n : 'impdc-native-select';\n }\n }\n\n /** @ignore */\n public ngDoCheck(): void {\n if (this.ngControl) {\n this.updateErrorState();\n\n if (\n this.ngControl.disabled !== null &&\n this.ngControl.disabled !== this.disabled\n ) {\n this.disabled = this.ngControl.disabled;\n this.stateChanges.next();\n }\n }\n }\n\n /** @ignore */\n public ngOnChanges(): void {\n this.stateChanges.next();\n }\n\n /** @ignore */\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n protected _focusChanged(isFocused: boolean): void {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n protected _typeIsValid(inputType: string): boolean {\n return IMPDC_INPUT_INVALID_TYPES.indexOf(inputType) === -1;\n }\n\n protected _onInput() {\n // This is a noop function and is used to let Angular know whenever the value changes.\n // Angular will run a new change detection each time the `input` event has been dispatched.\n // It's necessary that Angular recognizes the value change, because when Angular forms\n // aren't used, the placeholder won't recognize the value changes and will not disappear.\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n OnDestroy,\n Output\n} from '@angular/core';\nimport { IElementSize } from './element-size.interface';\n\n@Directive({\n selector: '[impdcSizeDetector]'\n})\nexport class SizeDetectorDirective implements OnDestroy {\n @Output() public readonly resized = new EventEmitter<IElementSize>();\n\n private _resizeObserver: ResizeObserver | null = null;\n\n constructor(private readonly _elementRef: ElementRef) {\n this._observe();\n }\n\n public ngOnDestroy(): void {\n this.resized.complete();\n this._unobserve();\n }\n\n private _observe(): void {\n this._resizeObserver = new ResizeObserver(\n (entries: ResizeObserverEntry[]): void => {\n window.requestAnimationFrame(() => {\n const elementEntry = entries && entries[0];\n if (elementEntry) {\n this.resized.emit({\n height: elementEntry.contentRect.height,\n width: elementEntry.contentRect.width\n });\n }\n });\n }\n );\n\n this._resizeObserver.observe(this._elementRef.nativeElement);\n }\n\n private _unobserve(): void {\n this._resizeObserver &&\n this._resizeObserver.unobserve(this._elementRef.nativeElement);\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\nimport { sanitize } from '../../utilities';\nimport { IElementSize } from '../size-detection';\n\n/**\n * The `PaginationComponent` (`<impdc-pagination` or `<div impdc-pagination`) is a control for paged content such as tables or lists.\n * To use, import `PaginationModule` or another module that imports and exports that module from `@impartner/design-components`.\n * `ModalModule` imports and exports ImpdcFormsModule and [ButtonModule](./?path=/docs/design-components-button).\n */\n@Component({\n selector: 'impdc-pagination, div[impdc-pagination]',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss']\n})\nexport class PaginationComponent {\n private _summary =\n 'Showing {firstPageResult} to {lastPageResult} of {total} results';\n\n /**\n * The current page.\n */\n @Input()\n public page = 0;\n\n /**\n * The number of items shown per page. Items are commonly displayed as rows in a table.\n */\n @Input()\n public perPage = 10;\n\n /**\n * The total number of items.\n */\n @Input()\n public total = 0;\n\n /**\n * A formattable text summary of pagination data. `{firstPageResult}` The first item within the current page.\n * `{lastPageResult}` The last item within the current page. `{total}` The total number of items.\n */\n @Input()\n public set summary(summary: string) {\n this._summary = summary;\n }\n\n public get summary(): string {\n return sanitize(this._summary)\n .replace('{firstPageResult}', `<b>${this.firstPageResult}</b>`)\n .replace('{lastPageResult}', `<b>${this.lastPageResult}</b>`)\n .replace('{total}', `<b>${this.total}</b>`);\n }\n\n /**\n * The label text for the per page select input.\n */\n @Input()\n public perPageLabel = '';\n\n /**\n * Emitted when the page number is changed, specifying the target page number.\n */\n @Output() public readonly goToPage = new EventEmitter<number>();\n\n /**\n * Emitted when the per page is changed, specifying the new value.\n */\n @Output() public readonly perPageChange = new EventEmitter<number>();\n\n public get totalPages(): number {\n if (this.total < 1 || this.perPage < 1) {\n return 0;\n }\n\n if (this.total < this.perPage) {\n return 1;\n }\n\n return Math.ceil(this.total / this.perPage);\n }\n\n public get firstPageResult(): number {\n const page = this._getPageClamped();\n if (this.total < 1 || page < 1 || this.perPage < 1) {\n return 0;\n }\n\n if (page === 1) {\n return 1;\n }\n\n if (page > Math.ceil(this.total / this.perPage)) {\n return this.total;\n }\n\n return (page - 1) * this.perPage + 1;\n }\n\n public get lastPageResult(): number {\n const page = this._getPageClamped();\n if (this.total <= 0 || page < 1 || this.perPage < 1) {\n return 0;\n }\n\n if (page === 1) {\n if (this.total < this.perPage) {\n return this.total;\n } else {\n return this.perPage;\n }\n }\n\n if (this.total < this.perPage * page) {\n return this.total;\n } else {\n return this.perPage * page;\n }\n }\n\n /** @ignore */\n public mobile = false;\n\n constructor(private readonly _changeDetectorRef: ChangeDetectorRef) {}\n\n public handleResize(size: IElementSize): void {\n this.mobile = size.width < 640;\n this._changeDetectorRef.detectChanges();\n }\n\n public goToPreviousPage(): void {\n const page = this._getPageClamped();\n if (page <= 1) {\n return;\n }\n\n const previousPage = page - 1;\n this.page = previousPage;\n\n this.goToPage.emit(previousPage);\n }\n\n public goToNextPage(): void {\n const page = this._getPageClamped();\n if (page >= this.totalPages) {\n return;\n }\n\n const nextPage = page + 1;\n this.page = nextPage;\n\n this.goToPage.emit(nextPage);\n }\n\n public goToExactPageFromEvent({ target }: FocusEvent): void {\n this.goToExactPage((target as HTMLInputElement)?.value);\n }\n\n public goToExactPage(page: number | string): void {\n const targetPage = this._getPageClamped(page);\n\n if (targetPage === this.page) {\n return;\n }\n\n this.page = targetPage;\n\n this.goToPage.emit(this.page);\n }\n\n public handlePerPageChange(): void {\n this.perPageChange.emit(this.perPage);\n }\n\n public preventDefaultAndBlur(event: Event) {\n // prevents PRM form submit\n event.preventDefault();\n (event.target as HTMLInputElement).blur();\n }\n\n private _getPageClamped(page?: string | number): number {\n page = Number(page || this.page || 0);\n if (isNaN(page) || page < 1) {\n return 1;\n }\n\n if (page > this.totalPages) {\n return this.totalPages;\n }\n\n return page;\n }\n}\n","<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 [(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","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[impdc-toggle-input]',\n template: '',\n styleUrls: ['./toggle-input.component.scss']\n})\nexport class ToggleInputComponent {\n @HostBinding('class.form-check-input') classFormCheck = true;\n}\n","import {\n Component,\n Input,\n ViewEncapsulation,\n HostBinding,\n ElementRef,\n ChangeDetectorRef,\n AfterViewChecked,\n ContentChild\n} from '@angular/core';\nimport { nanoid } from 'nanoid';\nimport { ToggleInputComponent } from './components';\n\n@Component({\n selector: 'impdc-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss']\n})\nexport class ToggleComponent implements AfterViewChecked {\n private _id = `impdc-toggle-${nanoid()}`;\n\n @Input()\n isSwitch = false;\n\n @Input()\n label = '';\n\n @Input()\n description = '';\n\n @Input()\n inline = false;\n\n @Input()\n switchIcons = false;\n\n // we don't want this to be brandable yet\n // @Input()\n branded = false;\n\n @HostBinding('class') private classDefaults = 'impdc form-check';\n\n @HostBinding('class.impdc-toggle-has-description')\n private get classHasDescription() {\n return this.showDescription;\n }\n\n @HostBinding('class.form-switch') private get classFormSwitch() {\n return this.isCheckbox && this.isSwitch;\n }\n\n @HostBinding('class.form-check-inline') private get classFormCheckInline() {\n return this.inline;\n }\n\n @HostBinding('class.form-switch-icons') private get classFormSwitchIcons() {\n return this.isCheckbox && this.isSwitch && this.switchIcons;\n }\n\n @HostBinding('class.branded') private get classBranded() {\n return this.branded;\n }\n\n @ContentChild(ToggleInputComponent, { read: ElementRef })\n inputRef?: ElementRef<HTMLInputElement>;\n\n get id(): string {\n return this._id;\n }\n\n get isCheckbox(): boolean {\n if (!this.inputRef) {\n return false;\n }\n\n return this.inputRef.nativeElement.getAttribute('type') === 'checkbox';\n }\n\n get showDescription(): boolean {\n return !this.inline && !!this.label && !!this.description;\n }\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {}\n\n ngAfterViewChecked(): void {\n if (this.inputRef) {\n if (!this.inputRef.nativeElement.id) {\n this.inputRef.nativeElement.id = this._id;\n } else if (this._id !== this.inputRef.nativeElement.id) {\n this._id = this.inputRef.nativeElement.id;\n }\n }\n\n this.changeDetectorRef.detectChanges();\n }\n}\n","<div class=\"impdc-toggle-input\">\n <ng-content select=\"[impdc-toggle-input]\"></ng-content>\n</div>\n<div *ngIf=\"label\" class=\"impdc-toggle-info\">\n <label\n *ngIf=\"label\"\n class=\"form-check-label impdc-toggle-label\"\n [attr.for]=\"id\"\n >{{ label }}</label\n >\n <label\n *ngIf=\"showDescription\"\n class=\"impdc-toggle-description\"\n [attr.for]=\"id\"\n >{{ description }}</label\n >\n</div>\n","import {\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n Self,\n ViewChild\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormGroupDirective,\n NgControl,\n NgForm,\n ValidationErrors,\n Validator,\n Validators\n} from '@angular/forms';\nimport { nanoid } from 'nanoid';\nimport { Subject } from 'rxjs';\nimport {\n BooleanInput,\n coerceBooleanPropertyValue\n} from '../../../../utilities';\nimport { ImpdcFormRoot, IMPDC_FORM_ROOT } from '../../directives';\nimport { ErrorStateMatcher } from '../../services';\nimport {\n HasTabIndex,\n ICanUpdateErrorState,\n IHasErrorState,\n ImpdcFormFieldControl,\n mixinErrorState,\n mixinTabIndex\n} from '../../shared';\n\nexport class CheckboxChangeEvent {\n constructor(\n /** The specific checkbox that changed. */\n public readonly source: CheckboxComponent,\n /** Whether the changed checkbox was checked or unchecked at the time of the event. */\n public readonly checked: boolean\n ) {}\n}\n\nabstract class CheckboxComponentBase {\n public readonly stateChanges = new Subject<void>();\n\n abstract disabled: boolean;\n\n constructor(\n public _defaultErrorStateMatcher: ErrorStateMatcher,\n public _formRoot: ImpdcFormRoot,\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n public ngControl: NgControl | null\n ) {}\n}\n\nconst _CheckboxComponentMixinBase = mixinTabIndex(\n mixinErrorState(CheckboxComponentBase)\n);\n\n/**\n * The `CheckboxComponent` (`<impdc-checkbox`) is an input with a simple boolean value as a checkbox or toggle switch.\n * This component can be used within a `FormFieldComponent` (`<impdc-form-field`).\n * To use, import `CheckboxModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n class: 'impdc-checkbox',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'null',\n '[class.impdc-checkbox--required]': 'required',\n '[class.impdc-checkbox--disabled]': 'disabled',\n '[class.impdc-checkbox--invalid]': 'errorState',\n '[class.impdc-checkbox--inline]': 'inline'\n },\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['tabIndex'],\n exportAs: 'impdcCheckControl',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ImpdcFormFieldControl,\n useExisting: CheckboxComponent\n }\n ]\n})\nexport class CheckboxComponent\n extends _CheckboxComponentMixinBase\n implements\n DoCheck,\n OnDestroy,\n ControlValueAccessor,\n Validator,\n HasTabIndex,\n ImpdcFormFieldControl<boolean>,\n ICanUpdateErrorState,\n IHasErrorState\n{\n private readonly _uid: string = `impdc-checkbox-${nanoid()}`;\n private _cvaOnChange: (value: any) => void = () => {};\n private _cvaOnTouched = () => {};\n\n @ViewChild('nativeInput', { read: ElementRef })\n protected _inputElement?: ElementRef<HTMLInputElement>;\n\n @Input()\n public id: string = this._uid;\n\n /**\n * The primary label text for the checkbox control.\n */\n @Input()\n public label = '';\n\n /**\n * Text to provide additional description or context for the checkbox control. Does not display when `inline` is `true`.\n */\n @Input()\n public description = '';\n\n /**\n * Whether or not the input displays as a toggle switch.\n */\n @Input()\n public isSwitch = false;\n\n /**\n * When `isSwitch` is `true`, sets whether or not the toggle switch uses icons.\n */\n @Input()\n public switchIcons = false;\n\n /**\n * Whether or not the checkbox displays inline.\n */\n @Input()\n public inline = false;\n\n /**\n * Whether or not the checkbox input is checked.\n */\n @Input()\n public get checked(): boolean {\n return this.value;\n }\n public set checked(value: BooleanInput) {\n this.value = value;\n this._cvaOnChange(this.value);\n }\n\n /**\n * Whether or not the checkbox input is in an `indeterminate` state.\n */\n @Input()\n public get indeterminate(): boolean {\n return this._indeterminate;\n }\n public set indeterminate(value: BooleanInput) {\n const coercedValue = coerceBooleanPropertyValue(value);\n const isChange = coercedValue !== this._indeterminate;\n this._indeterminate = coercedValue;\n\n if (isChange) {\n this.indeterminateChange.emit(this._indeterminate);\n }\n }\n private _indeterminate = false;\n\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: BooleanInput) {\n const newDisabledState = coerceBooleanPropertyValue(value);\n\n if (newDisabledState !== this._disabled) {\n this._disabled = newDisabledState;\n this._changeDetector.markForCheck();\n this.stateChanges.next();\n }\n }\n protected _disabled = false;\n\n @Input()\n public override errorStateMatcher!: ErrorStateMatcher;\n\n /**\n * Event emitted whenever the checkedness of the input changes.\n */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n public readonly change: EventEmitter<CheckboxChangeEvent> = new EventEmitter<CheckboxChangeEvent>();\n\n /**\n * Event emitted whenever the control enters or leaves an `indeterminate` state.\n */\n @Output()\n public readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n public get inputId(): string {\n return `${this.id || this._uid}-input`;\n }\n\n constructor(\n private readonly _changeDetector: ChangeDetectorRef,\n @Attribute('tabindex') tabIndex: string,\n defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Inject(IMPDC_FORM_ROOT) formRoot: ImpdcFormRoot,\n @Optional() parentForm: NgForm,\n @Optional() parentFormGroup: FormGroupDirective,\n @Self() @Optional() ngControl: NgControl | null\n ) {\n super(\n defaultErrorStateMatcher,\n formRoot,\n parentForm,\n parentFormGroup,\n ngControl\n );\n\n this.tabIndex = parseInt(tabIndex) || 0;\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n this.ngControl.control?.addValidators(() => {\n return this.validate();\n });\n }\n }\n\n /** @ignore */\n public ngDoCheck(): void {\n const ngControl = this.ngControl;\n\n if (!ngControl) {\n return;\n }\n\n this.updateErrorState();\n }\n\n /** @ignore */\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n /* ImpdcFormFieldControl */\n\n public get value(): boolean {\n return this._value;\n }\n public set value(value: BooleanInput) {\n const newValue = coerceBooleanPropertyValue(value);\n\n if (newValue !== this._value) {\n this._value = newValue;\n this._changeDetector.markForCheck();\n this.stateChanges.next();\n }\n }\n private _value = false;\n\n public get focused(): boolean {\n return this._focused;\n }\n private _focused = false;\n\n /**\n * Used to set requiredness of control in a template-based manner; not necessary when using the\n * Angular reactive forms API and 'required' or `requiredTrue` validators.\n */\n @Input()\n public get required(): boolean {\n if (this._required !== undefined) {\n return this._required;\n }\n\n const control = this.ngControl?.control;\n if (control) {\n const hasRequired = control.hasValidator(Validators.required);\n const hasRequiredTrue = control.hasValidator(Validators.requiredTrue);\n\n return hasRequired || hasRequiredTrue;\n }\n\n return false;\n }\n public set required(value: BooleanInput) {\n this._required = coerceBooleanPropertyValue(value);\n this.stateChanges.next();\n }\n private _required: boolean | undefined;\n\n public readonly controlType: string = 'impdc-check';\n public readonly supportsAffixes: boolean = false;\n\n /* ControlValueAccessor */\n\n /** @ignore */\n public writeValue(value: any): void {\n this.value = !!value;\n this._changeDetector.markForCheck();\n }\n\n /** @ignore */\n public registerOnChange(fn: (value: any) => void): void {\n this._cvaOnChange = fn;\n }\n\n /** @ignore */\n public registerOnTouched(fn: () => {}): void {\n this._cvaOnTouched = fn;\n }\n\n /** @ignore */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetector.markForCheck();\n }\n\n /* Validator */\n\n /** @ignore */\n public validate(): ValidationErrors | null {\n return !this.disabled && this.required && !this.value\n ? { required: true }\n : null;\n }\n\n /* Internals */\n protected _getAriaChecked(): 'true' | 'false' | 'mixed' {\n if (this.checked) {\n return 'true';\n }\n\n return this.indeterminate ? 'mixed' : 'false';\n }\n\n protected _onBlur(): void {\n this._focused = false;\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n // Angular does not expect events to be raised during change detection, so any state change\n // (such as a form control's 'ng-touched') will cause a changed-after-checked error.\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n // telling the form control it has been touched until the next tick.\n Promise.resolve().then(() => {\n this._cvaOnTouched();\n this._changeDetector.markForCheck();\n this.stateChanges.next();\n });\n }\n\n protected _onFocus(): void {\n if (!this.disabled) {\n this._focused = true;\n this.stateChanges.next();\n }\n }\n\n protected _handleCheckClick(): void {\n if (!this.disabled) {\n if (this.indeterminate) {\n Promise.resolve().then(() => {\n this.indeterminate = false;\n this.indeterminateChange.emit(this._indeterminate);\n });\n }\n\n this.checked = !this.checked;\n\n this._emitChangeEvents();\n }\n }\n\n protected _onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n\n private _emitChangeEvents(): void {\n this._cvaOnChange(this.checked);\n this.change.emit(new CheckboxChangeEvent(this, this.checked));\n\n // Assigning the value again here is redundant, but we have to do it in case it was\n // changed inside the `change` listener which will cause the input to be out of sync.\n if (this._inputElement) {\n this._inputElement.nativeElement.checked = this.checked;\n }\n }\n\n /**\n * Prevent click events that come from the `<label/>` element from bubbling. This prevents the\n * click handler on the host from triggering twice when clicking on the `<label/>` element. After\n * the click event on the `<label/>` propagates, the browsers dispatches click on the associated\n * `<input/>`. By preventing clicks on the label by bubbling, we ensure only one click event\n * bubbles when the label is clicked.\n */\n protected _preventBubblingFromLabel(event: MouseEvent) {\n if (\n !!event.target &&\n !!this._inputElement &&\n !(event.target as HTMLElement).contains(this._inputElement.nativeElement)\n ) {\n event.stopPropagation();\n }\n }\n}\n","<impdc-toggle\n [label]=\"label\"\n [description]=\"description\"\n [isSwitch]=\"isSwitch\"\n [switchIcons]=\"switchIcons\"\n [inline]=\"inline\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <input\n #nativeInput\n impdc-toggle-input\n type=\"checkbox\"\n class=\"impdc-checkbox__native-control\"\n [class.is-invalid]=\"errorState\"\n [id]=\"inputId\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n [attr.aria-required]=\"required\"\n [attr.tabindex]=\"tabIndex\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [indeterminate]=\"indeterminate\"\n (change)=\"_onInteractionEvent($event)\"\n (click)=\"_handleCheckClick()\"\n (blur)=\"_onBlur()\"\n (focus)=\"_onFocus()\" />\n</impdc-toggle>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ToggleComponent } from './toggle.component';\nimport { ToggleInputComponent } from './components';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ToggleComponent, ToggleInputComponent],\n exports: [ToggleComponent, ToggleInputComponent]\n})\nexport class ToggleModule {\n constructor() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ToggleModule } from '../shared';\nimport { CheckboxComponent } from './checkbox.component';\n\n@NgModule({\n declarations: [CheckboxComponent],\n imports: [CommonModule, ToggleModule],\n exports: [CheckboxComponent]\n})\nexport class CheckboxModule {}\n","import { IRadioButton } from './radio-button.interface';\n\nexport class RadioChangeEvent {\n constructor(\n /** The specific radio button that changed. */\n public readonly source: IRadioButton,\n /** The selected value. */\n public readonly value: any\n ) {}\n}\n","import { InjectionToken } from '@angular/core';\nimport { IRadioButton, IRadioGroup } from './interfaces';\n\nexport const IMPDC_RADIO_GROUP = new InjectionToken<IRadioGroup>(\n 'ImpdcRadioGroup'\n);\n\nexport const IMPDC_RADIO_BUTTON = new InjectionToken<IRadioButton>(\n 'ImpdcRadioButton'\n);\n","import {\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n ViewChild\n} from '@angular/core';\nimport { nanoid } from 'nanoid';\nimport {\n BooleanInput,\n coerceBooleanPropertyValue,\n coerceNumberPropertyValue\n} from '../../../../../utilities';\nimport { UniqueSelectionDispatcher } from '../../../services/unique-selection-dispatcher.service';\nimport { HasTabIndex, mixinTabIndex } from '../../../shared/tab-index.mixin';\nimport { IMPDC_RADIO_BUTTON, IMPDC_RADIO_GROUP } from '../injection-tokens';\nimport { RadioChangeEvent, IRadioButton, IRadioGroup } from '../interfaces';\n\nabstract class RadioButtonComponentBase {\n abstract disabled: boolean;\n constructor() {}\n}\n\nconst _RadioButtonComponentMixinBase = mixinTabIndex(RadioButtonComponentBase);\n\n@Component({\n selector: 'impdc-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n class: 'impdc-radio-button',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n '[class.impdc-radio-button--required]': 'required',\n '[class.impdc-radio-button--invalid]': '_errorState',\n '[class.impdc-radio-button--disabled]': 'disabled',\n '[class.impdc-radio-button--inline]': 'inline'\n },\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['tabIndex'],\n exportAs: 'impdcRadioButton',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IMPDC_RADIO_BUTTON,\n useExisting: RadioButtonComponent\n }\n ]\n})\nexport class RadioButtonComponent\n extends _RadioButtonComponentMixinBase\n implements\n IRadioButton,\n HasTabIndex,\n OnInit,\n OnDestroy,\n DoCheck,\n AfterViewInit\n{\n private readonly _uid: string = `impdc-radio-button-${nanoid()}`;\n private _removeUniqueSelectionListener: () => void = () => {};\n private _previousTabIndex?: number;\n\n @ViewChild('nativeInput', { read: ElementRef })\n private _inputElement!: ElementRef<HTMLInputElement>;\n\n @Input()\n public id: string = this._uid;\n\n /**\n * The unique name for a group of radio options; Inherited from the parent `RadioGroupDirective` when available.\n */\n @Input()\n public name!: string;\n\n /**\n * Property for setting ARIA \"label\" attribute.\n */\n @Input('aria-label')\n public ariaLabel?: string;\n\n /**\n * Property for setting ARIA \"labelled by\" attribute.\n */\n @Input('aria-labelledby')\n public ariaLabelledby?: string;\n\n /**\n * Property for setting ARIA \"described by\" attribute.\n */\n @Input('aria-describedby')\n public ariaDescribedby?: string;\n\n /**\n * Whether or not the radio input is checked/selected.\n */\n @Input()\n public get checked(): boolean {\n return this._checked;\n }\n public set checked(value: BooleanInput) {\n const newCheckedValue = coerceBooleanPropertyValue(value);\n\n if (this._checked !== newCheckedValue) {\n this._checked = newCheckedValue;\n\n if (\n newCheckedValue &&\n this._radioGroup &&\n this._radioGroup.value !== this.value\n ) {\n this._radioGroup.selected = this;\n } else if (\n !newCheckedValue &&\n this._radioGroup &&\n this._radioGroup.value === this.value\n ) {\n this._radioGroup.selected = null;\n }\n\n if (newCheckedValue) {\n this._radioDispatcher.notify(this.id, this.name);\n }\n\n this._changeDetector.markForCheck();\n }\n }\n protected _checked = false;\n\n /**\n * The specific value represented by the radio button.\n */\n @Input()\n public get value(): any {\n return this._value;\n }\n public set value(value: any) {\n if (this._value !== value) {\n this._value = value;\n\n if (this._radioGroup) {\n if (!this.checked) {\n this.checked = this._radioGroup.value === value;\n }\n\n if (this.checked) {\n this._radioGroup.selected = this;\n }\n }\n }\n }\n protected _value: any = null;\n\n /**\n * Whether or not the radio button displays inline; Inherited from the parent `RadioGroupDirective` when available.\n */\n @Input()\n public get inline(): boolean {\n return (\n this._inline || (this._radioGroup && this._radioGroup.inline) || false\n );\n }\n public set inline(value: BooleanInput) {\n this._inline = coerceBooleanPropertyValue(value);\n }\n protected _inline?: boolean;\n\n /**\n * Used to enable or disable the radio button, but will always return `true` when the parent\n * `RadioGroupDirective` is already disabled.\n */\n @Input()\n public get disabled(): boolean {\n return (\n this._disabled || (this._radioGroup != null && this._radioGroup.disabled)\n );\n }\n public set disabled(value: BooleanInput) {\n const newDisabledState = coerceBooleanPropertyValue(value);\n\n if (this._disabled !== newDisabledState) {\n this._disabled = newDisabledState;\n this._changeDetector.markForCheck();\n }\n }\n protected _disabled = false;\n\n /** @ignore */\n @Input()\n public get required(): boolean {\n return (\n this._required || (this._radioGroup != null && this._radioGroup.required)\n );\n }\n public set required(value: BooleanInput) {\n this._required = coerceBooleanPropertyValue(value);\n }\n protected _required = false;\n\n /**\n * The primary label text for the radio button.\n */\n @Input()\n public label = '';\n\n /**\n * Text to provide additional description or context for the radio button. Does\n * not display if `inline` is `true`.\n */\n @Input()\n public description = '';\n\n /**\n * Event emitted when the radio button becomes selected/checked.\n */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n public readonly change = new EventEmitter<RadioChangeEvent>();\n\n protected get _errorState(): boolean {\n return this._radioGroup ? this._radioGroup.errorState : false;\n }\n\n constructor(\n private readonly _changeDetector: ChangeDetectorRef,\n private _radioDispatcher: UniqueSelectionDispatcher,\n @Attribute('tabindex') tabIndex?: string,\n @Inject(IMPDC_RADIO_GROUP) @Optional() readonly _radioGroup?: IRadioGroup\n ) {\n super();\n\n if (tabIndex) {\n this.tabIndex = coerceNumberPropertyValue(tabIndex, 0);\n }\n }\n\n /** @ignore */\n public ngOnInit(): void {\n if (this._radioGroup) {\n this.checked = this._radioGroup.value === this._value;\n\n if (this.checked) {\n this._radioGroup.selected = this;\n }\n\n this.name = this._radioGroup.name;\n }\n\n this._removeUniqueSelectionListener = this._radioDispatcher.listen(\n (id, name) => {\n if (id !== this.id && name === this.name) {\n this.checked = false;\n }\n }\n );\n }\n\n /** @ignore */\n public ngDoCheck(): void {\n this._updateTabIndex();\n }\n\n /** @ignore */\n public ngAfterViewInit(): void {\n this._updateTabIndex();\n }\n\n /** @ignore */\n public ngOnDestroy(): void {\n this._removeUniqueSelectionListener();\n }\n\n /** @ignore */\n public markForCheck(): void {\n this._changeDetector.markForCheck();\n }\n\n protected _emitChangesEvent(): void {\n this.change.emit({ source: this, value: this._value });\n }\n\n protected _onBlur(): void {\n if (this._radioGroup) {\n this._radioGroup.touch();\n }\n }\n\n protected _onInputChange(event: Event): void {\n event.stopPropagation();\n\n if (!this.checked && !this.disabled) {\n const groupValueChanged =\n this._radioGroup && this.value !== this._radioGroup.value;\n this.checked = true;\n this._emitChangesEvent();\n\n if (this._radioGroup) {\n this._radioGroup.onChangeFn(this.value);\n\n if (groupValueChanged) {\n this._radioGroup.emitChangesEvent();\n }\n }\n }\n }\n\n protected _updateTabIndex(): void {\n const radioGroup = this._radioGroup;\n let tabIndexValue: number;\n\n if (!radioGroup || !radioGroup.selected || this.disabled) {\n tabIndexValue = this.tabIndex;\n } else {\n tabIndexValue = radioGroup.selected === this ? this.tabIndex : -1;\n }\n\n if (tabIndexValue !== this._previousTabIndex) {\n const inputElt: HTMLInputElement | undefined =\n this._inputElement?.nativeElement;\n\n if (inputElt) {\n inputElt.setAttribute('tabindex', tabIndexValue + '');\n this._previousTabIndex = tabIndexValue;\n }\n }\n }\n}\n","<impdc-toggle [label]=\"label\" [description]=\"description\" [inline]=\"inline\">\n <input\n #nativeInput\n impdc-toggle-input\n type=\"radio\"\n class=\"impdc-radio-button__native-control\"\n [class.is-invalid]=\"_errorState\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n (change)=\"_onInputChange($event)\"\n (blur)=\"_onBlur()\" />\n</impdc-toggle>\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n DoCheck,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n Self\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormGroupDirective,\n NgControl,\n NgForm,\n Validators\n} from '@angular/forms';\nimport { nanoid } from 'nanoid';\nimport {\n BooleanInput,\n coerceBooleanPropertyValue\n} from '../../../../../utilities';\nimport { Subject } from 'rxjs';\nimport { ImpdcFormRoot, IMPDC_FORM_ROOT } from '../../../directives';\nimport { ErrorStateMatcher } from '../../../services';\nimport {\n IHasErrorState,\n ImpdcFormFieldControl,\n mixinErrorState\n} from '../../../shared';\nimport { IMPDC_RADIO_BUTTON, IMPDC_RADIO_GROUP } from '../injection-tokens';\nimport { RadioChangeEvent, IRadioButton, IRadioGroup } from '../interfaces';\n\nconst _RadioGroupDirectiveBase = mixinErrorState(\n class {\n public readonly stateChanges = new Subject<void>();\n\n constructor(\n public _defaultErrorStateMatcher: ErrorStateMatcher,\n public _formRoot: ImpdcFormRoot,\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n public ngControl: NgControl | null\n ) {}\n }\n);\n\n/**\n * The `RadioGroupDirective` (`<impdc-radio-group`) is a container for `RadioButtonComponent` (`<impdc-radio-button`).\n * This directive/component can be used within a `FormFieldComponent` (`<impdc-form-field`).\n * To use, import `RadioModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'impdc-radio-group',\n exportAs: 'impdcRadioGroup',\n providers: [\n {\n provide: ImpdcFormFieldControl,\n useExisting: RadioGroupDirective\n },\n {\n provide: IMPDC_RADIO_GROUP,\n useExisting: RadioGroupDirective\n }\n ],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n role: 'radiogroup',\n class: 'impdc-radio-group',\n '[class.impdc-radio-group--required]': 'required',\n '[class.impdc-radio-group--disabled]': 'disabled',\n '[class.impdc-radio-group--invalid]': 'errorState',\n '[class.impdc-radio-group--inline]': 'inline'\n }\n})\nexport class RadioGroupDirective<\n TRadioButton extends IRadioButton = IRadioButton\n >\n extends _RadioGroupDirectiveBase\n implements\n IRadioGroup,\n ControlValueAccessor,\n ImpdcFormFieldControl<any>,\n AfterContentInit,\n DoCheck,\n OnDestroy,\n IHasErrorState\n{\n @ContentChildren(IMPDC_RADIO_BUTTON, { descendants: true })\n protected _radioOptions!: QueryList<TRadioButton>;\n\n protected readonly _uid = `impdc-radio-group-${nanoid()}`;\n protected _initialized = false;\n\n private _previousControl?: AbstractControl | null;\n private _cvaOnChange: (value: any) => void = () => {};\n private _cvaOnTouched = () => {};\n\n /**\n * The unique name for the group of radio options; Autogenerated by default.\n */\n @Input()\n public get name(): string {\n return this._name;\n }\n public set name(value: string) {\n this._name = value || this._uid;\n this._updateRadioOptionNames();\n }\n protected _name: string = this._uid;\n\n /**\n * Whether or not the nested radio options should display inline.\n */\n @Input()\n public get inline(): boolean {\n return this._inline;\n }\n public set inline(value: BooleanInput) {\n this._inline = coerceBooleanPropertyValue(value);\n this._markRadioOptionsForCheck();\n }\n protected _inline = false;\n\n /**\n * A reference to the currently selected radio button component (eg. `<impdc-radio-button>`).\n */\n @Input()\n public get selected() {\n return this._selected;\n }\n public set selected(selected: TRadioButton | null) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n this._checkSelectedRadioOption();\n }\n protected _selected: TRadioButton | null = null;\n\n @Input()\n public override errorStateMatcher!: ErrorStateMatcher;\n\n /**\n * Event emitted whenever a new radio option is selected.\n */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n public readonly change: EventEmitter<RadioChangeEvent> = new EventEmitter<RadioChangeEvent>();\n\n constructor(\n private readonly _changeDetector: ChangeDetectorRef,\n _defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Inject(IMPDC_FORM_ROOT) _formRoot: ImpdcFormRoot,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n @Self() @Optional() ngControl: NgControl | null\n ) {\n super(\n _defaultErrorStateMatcher,\n _formRoot,\n _parentForm,\n _parentFormGroup,\n ngControl\n );\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /** @ignore */\n public ngAfterContentInit(): void {\n this._initialized = true;\n }\n\n /** @ignore */\n public ngDoCheck(): void {\n const ngControl = this.ngControl;\n\n if (!ngControl) {\n return;\n }\n\n if (this._previousControl !== ngControl.control) {\n if (\n this._previousControl !== undefined &&\n ngControl.disabled !== null &&\n ngControl.disabled !== this.disabled\n ) {\n this.disabled = ngControl?.disabled;\n }\n\n this._previousControl = ngControl.control;\n }\n\n this.updateErrorState();\n this._markRadioOptionsForCheck();\n }\n\n /** @ignore */\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n /* ImpdcFormFieldControl */\n @Input()\n public get value(): any {\n return this._value;\n }\n public set value(value: any) {\n if (this._value !== value) {\n this._value = value;\n\n this._updateSelectedRadioOptionFromValue();\n this._checkSelectedRadioOption();\n this.stateChanges.next();\n }\n }\n protected _value: any;\n\n @Input()\n public get id(): string {\n return this._id;\n }\n public set id(value: string) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n protected _id!: string;\n\n public get focused(): boolean {\n return this._focused;\n }\n protected _focused = false;\n\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanPropertyValue(value);\n this._markRadioOptionsForCheck();\n this.stateChanges.next();\n }\n protected _disabled = false;\n\n /**\n * Used to set requiredness of control in a template-based manner;\n * not necessary when using the Angular reactive forms API and `required` validator.\n */\n @Input()\n public get required(): boolean {\n return (\n this._required ??\n this.ngControl?.control?.hasValidator(Validators.required) ??\n false\n );\n }\n public set required(value: BooleanInput) {\n this._required = coerceBooleanPropertyValue(value);\n this.stateChanges.next();\n }\n private _required: boolean | undefined;\n\n public readonly controlType = 'impdc-radio-group';\n\n public readonly supportsAffixes: boolean = false;\n\n /* ControlValueAccessor */\n /** @ignore */\n writeValue(value: any): void {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n\n /** @ignore */\n registerOnChange(fn: (value: any) => void): void {\n this._cvaOnChange = fn;\n }\n\n /** @ignore */\n registerOnTouched(fn: () => {}): void {\n this._cvaOnTouched = fn;\n }\n\n /** @ignore */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetector.markForCheck();\n }\n\n /* Internals */\n\n /** @ignore */\n public emitChangesEvent(): void {\n if (this._initialized) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.change.emit({ source: this._selected!, value: this._value });\n }\n }\n\n /** @ignore */\n public onChangeFn(value: any): void {\n this._cvaOnChange(value);\n }\n\n /** @ignore */\n public touch(): void {\n if (this._cvaOnTouched) {\n this._cvaOnTouched();\n }\n }\n\n protected _checkSelectedRadioOption(): void {\n if (this._selected && !this._selected.checked) {\n this._selected.checked = true;\n }\n }\n\n protected _markRadioOptionsForCheck(): void {\n if (this._radioOptions) {\n this._radioOptions.forEach(option => option.markForCheck());\n }\n }\n\n protected _updateRadioOptionNames(): void {\n if (this._radioOptions) {\n this._radioOptions.forEach(option => {\n option.name = this.name;\n option.markForCheck();\n });\n }\n }\n\n protected _updateSelectedRadioOptionFromValue(): void {\n const isAlreadySelected =\n this._selected !== null && this._selected.value === this._value;\n\n if (this._radioOptions && !isAlreadySelected) {\n this._selected = null;\n this._radioOptions.forEach(option => {\n option.checked = this.value === option.value;\n\n if (option.checked) {\n this._selected = option;\n }\n });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ToggleModule } from '../shared';\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\nimport { RadioGroupDirective } from './radio-group/radio-group.directive';\n\n@NgModule({\n declarations: [RadioButtonComponent, RadioGroupDirective],\n imports: [ReactiveFormsModule, ToggleModule],\n exports: [RadioButtonComponent, RadioGroupDirective]\n})\nexport class RadioModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { IconModule } from '../../../icon';\nimport { SelectOptionComponent } from './option/select-option.component';\nimport { SelectComponent } from './select.component';\n\n@NgModule({\n imports: [CommonModule, NgbDropdownModule, IconModule],\n declarations: [SelectOptionComponent, SelectComponent],\n exports: [\n NgbDropdownModule,\n IconModule,\n SelectOptionComponent,\n SelectComponent\n ]\n})\nexport class SelectModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n CheckboxModule,\n InputDirective,\n RadioModule,\n SelectModule\n} from './controls';\nimport {\n CornerHintDirective,\n ErrorDirective,\n HintDirective,\n LabelDirective,\n PrefixDirective,\n RootFormGroupDirective,\n RootNgFormDirective,\n SuffixDirective\n} from './directives';\nimport { FormFieldComponent } from './form-field.component';\n\n@NgModule({\n declarations: [\n FormFieldComponent,\n InputDirective,\n CornerHintDirective,\n ErrorDirective,\n HintDirective,\n LabelDirective,\n PrefixDirective,\n RootFormGroupDirective,\n RootNgFormDirective,\n SuffixDirective\n ],\n imports: [CommonModule, CheckboxModule, RadioModule, SelectModule],\n exports: [\n CheckboxModule,\n RadioModule,\n SelectModule,\n FormFieldComponent,\n InputDirective,\n CornerHintDirective,\n ErrorDirective,\n HintDirective,\n LabelDirective,\n PrefixDirective,\n RootFormGroupDirective,\n RootNgFormDirective,\n SuffixDirective\n ]\n})\nexport class ImpdcFormsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SizeDetectorDirective } from './directive/index';\n\n@NgModule({\n declarations: [SizeDetectorDirective],\n imports: [CommonModule],\n exports: [SizeDetectorDirective]\n})\nexport class SizeDetectionModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonModule } from '../button';\nimport { ImpdcFormsModule } from '../form-field';\nimport { IconModule } from '../icon';\nimport { PaginationComponent } from './pagination.component';\nimport { SizeDetectionModule } from '../size-detection';\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonModule,\n FormsModule,\n ImpdcFormsModule,\n IconModule,\n SizeDetectionModule\n ],\n declarations: [PaginationComponent],\n exports: [ButtonModule, ImpdcFormsModule, IconModule, PaginationComponent]\n})\nexport class PaginationModule {\n constructor() {}\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'impdc-column-heading',\n templateUrl: './column-heading.component.html',\n styleUrls: ['./column-heading.component.scss']\n})\nexport class ColumnHeadingComponent {\n @Input()\n public isSortable = false;\n\n @Input()\n public columnIndex?: number;\n\n @Input()\n public sortColumnIndex?: number;\n\n @Input()\n public direction: 'asc' | 'desc' = 'asc';\n\n @Input()\n public text = '';\n\n public get sortedColumn(): boolean {\n return (\n this.sortColumnIndex !== undefined &&\n this.sortColumnIndex === this.columnIndex\n );\n }\n\n @Output()\n public sort = new EventEmitter<number>();\n\n public onSort(): void {\n this.sort.emit(this.columnIndex);\n }\n}\n","<a *ngIf=\"isSortable; else notClickable\" class=\"impdc-table-sort\">\n <span>\n {{ text }}\n </span>\n <span\n [ngClass]=\"sortedColumn ? 'visible' : 'invisible'\"\n impdc-icon\n [name]=\"direction === 'asc' ? 'arrow-up' : 'arrow-down'\"></span>\n</a>\n<ng-template #notClickable>\n {{ text }}\n</ng-template>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'impdc-table-bulk-actions',\n templateUrl: './bulk-actions.component.html',\n styleUrls: ['./bulk-actions.component.scss']\n})\nexport class TableBulkActionsComponent {}\n","<div class=\"table-bulk-actions\">\n <div class=\"selected-total\">\n <ng-content select=\"[selectedTotal]\"></ng-content>\n </div>\n <div class=\"bulk-actions\">\n <ng-content select=\"[bulkAction]\"></ng-content>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n/**\n * The `SpinnerComponent` (`<impdc-spinner` or `<div impdc-spinner`) is used when data is processing and content isn't ready to be interacted with yet.\n * To use, import `SpinnerModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-spinner, div[impdc-spinner]',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent {\n /**\n * Accessibility text used by screen readers.\n */\n @Input()\n public accessibilityText = 'Loading...';\n}\n","<div class=\"spinner-border\" role=\"status\">\n <span *ngIf=\"accessibilityText\" class=\"visually-hidden\">{{\n accessibilityText\n }}</span>\n</div>\n","export enum BadgeSize {\n Default = 'default',\n Large = 'large'\n}\n\nexport const BadgeSizesArr = [BadgeSize.Default, BadgeSize.Large];\n\nexport type BadgeSizes = typeof BadgeSizesArr[number];\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n HostBinding\n} from '@angular/core';\nimport { ComponentTheme, ComponentThemes } from '../../types';\nimport { BadgeIcon, BadgeSize, BadgeSizes } from './types';\n\n/**\n * The `BadgeComponent` (`<impdc-badge` or `any impdc-badge`) displays [preferably short] text with a rounded background and themed colors.\n * To use, import `BadgeModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-badge, [impdc-badge]',\n templateUrl: './badge.component.html'\n})\nexport class BadgeComponent {\n /**\n * The text displayed in the center of the Badge.\n */\n @Input()\n text = '';\n\n /**\n * An icon displayed left of the Badge text.\n */\n @Input()\n icon: BadgeIcon = '';\n\n /**\n * The color theme of the Badge. This will affect both text and background colors based on allowed designs.\n */\n @Input()\n theme: ComponentThemes = ComponentTheme.Primary;\n\n /**\n * The size of the Badge.\n */\n @Input()\n size: BadgeSizes = BadgeSize.Default;\n\n /**\n * Allows the background of the Badge to be removed.\n */\n @Input()\n hideBg = false;\n\n /**\n * This controls adding the `rounded-pill` class to the Badge.\n */\n @Input()\n rounded = true;\n\n /**\n * Adds a dismiss icon to the right of the Badge text.\n */\n @Input()\n dismissable = false;\n\n /**\n * An event emitted when the component is dismissed.\n */\n @Output()\n dismiss = new EventEmitter<MouseEvent | Event>();\n\n @HostBinding('class') private get classBadge(): string {\n let classes = 'badge';\n if (this.theme) {\n classes += ` text-${this.hideBg ? '' : 'bg-'}${this.theme}`;\n }\n if (this.size !== 'default') {\n classes += ` badge-${this.size}`;\n }\n return classes;\n }\n\n @HostBinding('class.rounded-pill')\n private get classBadgeRounded(): boolean {\n return this.rounded;\n }\n\n @HostBinding('hidden')\n private _dismissed = false;\n\n handleDismiss(event: MouseEvent | Event): void {\n if (!this.dismissable) {\n return;\n }\n this._dismissed = true;\n this.dismiss.emit(event);\n }\n}\n","<span *ngIf=\"icon\" impdc-icon [name]=\"icon === 'dot' ? 'circle' : icon\"></span>\n{{ text }}\n<a *ngIf=\"dismissable\" (click)=\"handleDismiss($event)\">\n <span impdc-icon name=\"times\"></span>\n</a>\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n/**\n * The `TableDirective` (`<table impdcTable`) that adds Hex styling to a `table` element.\n * To use, import `TableModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Directive({\n selector: 'table[impdcTable]'\n})\nexport class TableDirective {\n /**\n * Stripes every other row in a slightly darker background color.\n */\n @Input()\n striped = false;\n\n @HostBinding('class.table') private classTable = true;\n\n @HostBinding('class.table-striped') private get classTableStriped() {\n return this.striped;\n }\n}\n","import {\n ComponentFactoryResolver,\n Directive,\n Input,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\n\nimport {\n ICellRenderer,\n ICustomCellRendererComponents,\n ITableColumnDef,\n ITableRowItem,\n ITableRowItemValue,\n ITableRowItemValueTypes\n} from '../interfaces/index';\n\n@Directive({\n selector: '[impdcTableInjectComponent]'\n})\nexport class TableInjectComponentDirective implements OnInit {\n @Input() public columnDef: ITableColumnDef = { title: '' };\n @Input() public value: ITableRowItemValueTypes<ITableRowItemValue> = '';\n @Input() public rowItem: ITableRowItem = { id: 0 };\n @Input() public customCellComponents: ICustomCellRendererComponents = {};\n\n constructor(\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _componentFactoryResolver: ComponentFactoryResolver\n ) {}\n\n public ngOnInit(): void {\n this._renderCustomCell();\n }\n\n private _renderCustomCell(): void {\n const { cellRendererComponent, cellRendererParams } = this.columnDef;\n if (!cellRendererComponent) {\n return;\n }\n\n const item = this.rowItem;\n const customCellComponent =\n this.customCellComponents[cellRendererComponent];\n\n this._viewContainerRef.clear();\n\n const componentFactory =\n this._componentFactoryResolver.resolveComponentFactory<ICellRenderer>(\n customCellComponent\n );\n const componentRef =\n this._viewContainerRef.createComponent<ICellRenderer>(componentFactory);\n\n componentRef.instance.value = this.value;\n componentRef.instance.rowItem = item;\n componentRef.instance.params = cellRendererParams;\n }\n}\n","import { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n Host,\n Input,\n OnChanges,\n Optional,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { get as getNestedValue, set as setNestedValue } from 'lodash';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { DEBOUNCE_TIME, SORT_COLUMN_INDEX } from '../constants/index';\nimport { TableColumnType } from '../enumerations/index';\nimport {\n ICustomCellRendererComponents,\n ISortByPayload,\n ITableColumnDef,\n ITableEventPayload,\n ITableRowItem,\n ITableRowItemValue,\n ITableRowItemValueTypes\n} from '../interfaces/index';\nimport { CheckboxChangeEvent } from '../../form-field';\nimport { TableThemeHelper } from '../helpers';\nimport { ComponentTheme } from '../../../types';\nimport { BrandedDirective } from '../../branding';\nimport { PaginationComponent } from '../../pagination';\nimport { TableBulkActionsComponent } from '../components';\n\n/**\n * The `TableComponent` (`<impdc-table`) is a data table component.\n * To use, import `TableModule` from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-table',\n styleUrls: ['./table.component.scss'],\n templateUrl: './table.component.html'\n})\nexport class TableComponent implements OnChanges {\n /**\n * Whether the table data is currently being loaded. The `<impdc-spinner>` will show if data is loading.\n */\n @Input() public loading = false;\n\n /**\n * The visible columns of the table. Each `ITableColumnDef` defines properties regarding the display, formatting and interaction of the column's cells.\n * Column/cell color precedence is:\n * 1) `fieldColor` - allows an `ITableColumnDef` to delegate the responsibility of cell color to an `ITableRowItem` property.\n * 2) `colorGetter`- allows an `ITableColumnDef` to delegate the responsibility of cell color to a function of the `ITableRowItem` determined by the developer.\n * 3) `color` - a property of an `ITableColumnDef`.\n */\n @Input() public columnDefs: ITableColumnDef[] = [];\n\n /**\n * Whether the table is striped.\n */\n @Input() public striped = true;\n\n /**\n * Whether individual rows can be selected. Will be `true` if explicitly set to `true` or `canSelectAllRows` is `true`.\n */\n @Input() public set canSelectRows(value: boolean) {\n this._canSelectRows = value;\n }\n public get canSelectRows(): boolean {\n return this.canSelectAllRows || this._canSelectRows || !!this.bulkActions;\n }\n\n /**\n * Whether all rows can be selected at once. Will be `true` if explicitly set to `true` or if `TableBulkActionsComponent` is content projected.\n */\n @Input()\n public set canSelectAllRows(value: boolean) {\n this._canSelectAllRows = value;\n }\n\n public get canSelectAllRows(): boolean {\n return this._canSelectAllRows || !!this.bulkActions;\n }\n\n /**\n * The placeholder text and empty value display text for `<impdc-select>` instances in cells with a `ITableColumnDef` `columnType` = `SingleSelect` or `MultiSelect`.\n */\n @Input() public selectPlaceholder = '';\n\n /**\n * The `columnDefs` index of the currently sorted column.\n */\n @Input() public sortColumnIndex = SORT_COLUMN_INDEX;\n\n /**\n * The direction of the currently sorted column.\n */\n @Input() public sortDirection: 'asc' | 'desc' = 'asc';\n\n /**\n * The table row data as an array of `ITableRowItem`.\n */\n @Input() public tableData: ITableRowItem[] = [];\n\n /**\n * An array of currently selected IDs from the `tableData` input. Array must be of type `(string | number)[]`.\n */\n @Input()\n public set selectedRowIds(value: (string | number)[]) {\n this._selectedRowIds = [...value];\n }\n public get selectedRowIds(): (string | number)[] {\n return [...this._selectedRowIds];\n }\n\n /**\n * The registered custom cell renderer components available to be used in the table instance.\n * For a given `ITableColumnDef` in the `columnDefs` input, the `cellRendererComponent` property should be set to the key of the registered component in this input.\n */\n @Input() public customCellComponents?: ICustomCellRendererComponents;\n\n /**\n * Event emitted when one or multiple rows are selected. Emits `(string | number)[]` payload.\n */\n @Output() public readonly rowSelect = new EventEmitter<(string | number)[]>();\n\n /**\n * Event emitted when a column is sorted. Emits `ISortByPayload` payload.\n */\n @Output() public readonly sortBy = new EventEmitter<ISortByPayload>();\n\n /**\n * Event emitted when a row link is clicked. Emits `ITableEventPayload` payload.\n */\n @Output() public readonly linkClick = new EventEmitter<ITableEventPayload>();\n\n /** @ignore */\n @ContentChild(PaginationComponent)\n public paginationComponent?: PaginationComponent = undefined;\n\n /** @ignore */\n @ContentChild(TableBulkActionsComponent)\n public bulkActions?: TableBulkActionsComponent = undefined;\n\n /**\n * Event emitted when a row input value is changed. Emitted cells of `columnType` `SinglSelect`, `MultiSelect`, `Input`, `Boolean` or `Icon`.\n * Not emitted if column definition property `disabled` = `true`. Emits `ITableEventPayload` payload.\n */\n @Output() public readonly inputChange =\n new EventEmitter<ITableEventPayload>();\n\n /** @ignore */\n public cellType = TableColumnType;\n /** @ignore */\n public allSelected = true;\n /** @ignore */\n public get someSelected(): boolean {\n return (\n !!this._selectedRowIds &&\n this._selectedRowIds.length > 0 &&\n !!this.tableData &&\n this.tableData.length > 0 &&\n this._selectedRowIds.length < this.tableData.length\n );\n }\n /** @ignore */\n public readonly branded: boolean = false;\n\n /** @ignore */\n public get tableSpan(): number {\n return this.canSelectRows\n ? this.columnDefs.length + 1\n : this.columnDefs.length;\n }\n\n private _canSelectRows = false;\n private _canSelectAllRows = false;\n private _selectedRowIds: (string | number)[] = [];\n private readonly _inputChange = new EventEmitter<ITableEventPayload>();\n\n constructor(\n private readonly _datePipe: DatePipe,\n private readonly _percentPipe: PercentPipe,\n private readonly _decmialPipe: DecimalPipe,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Host() private _branded: BrandedDirective\n ) {\n this.branded = _branded ? true : false;\n this._inputChange\n .pipe(debounceTime(DEBOUNCE_TIME))\n .subscribe(this.inputChange);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['selectedRowIds'] || changes['tableData']) {\n if (\n !this.tableData ||\n !this.tableData.length ||\n !this.selectedRowIds ||\n !this.selectedRowIds.length\n ) {\n this.allSelected = false;\n } else {\n this.allSelected = this.selectedRowIds.length >= this.tableData.length;\n }\n }\n }\n\n public getMailToValue(\n columnIndex: number,\n currentRow: ITableRowItem\n ): string {\n const { columnType, truncated: truncated } =\n this._getColumnDefByIndex(columnIndex);\n let value = this._getValue(columnIndex, currentRow);\n\n if (columnType !== TableColumnType.Email) {\n return String(value);\n }\n value = value ? `mailto:${value}` : value;\n\n return String(value);\n }\n\n public getStringValue(\n columnIndex: number,\n currentRow: ITableRowItem\n ): string {\n const value = this.getValue(columnIndex, currentRow);\n\n if (Array.isArray(value)) {\n return value.join(';');\n }\n\n return String(value);\n }\n\n public getValue(\n columnIndex: number,\n currentRow: ITableRowItem\n ): string | string[] {\n const { columnType, truncated: truncated } =\n this._getColumnDefByIndex(columnIndex);\n let value = this._getValue(columnIndex, currentRow);\n\n switch (columnType) {\n case TableColumnType.Decimal: {\n value = this._decmialPipe.transform(Number(value) || 0) || '';\n break;\n }\n case TableColumnType.Date: {\n const date = new Date(String(value));\n const validDate = date instanceof Date && !isNaN(date.getTime());\n value = validDate\n ? this._datePipe.transform(date, 'MM/dd/yyyy') || ''\n : String(value);\n break;\n }\n case TableColumnType.DateTime: {\n const dateTime = new Date(String(value));\n const validDateTime =\n dateTime instanceof Date && !isNaN(dateTime.getTime());\n value = validDateTime\n ? this._datePipe.transform(dateTime, 'MM/dd/yyyy h:mm:ss a') || ''\n : String(value);\n break;\n }\n case TableColumnType.Link: {\n value = String(value).replace(/(^\\w+:|^)\\/\\//, '');\n break;\n }\n case TableColumnType.Percentage: {\n value = this._percentPipe.transform(Number(value) || 0) || '';\n break;\n }\n case TableColumnType.Url: {\n if (!/(http(s?)):\\/\\//i.test(String(value))) {\n value = `https://${value}`;\n }\n break;\n }\n case TableColumnType.Text: {\n if (Array.isArray(value)) {\n value = value.join('; ');\n }\n\n if (!truncated) {\n return value;\n }\n\n const truncateString = (string = '', maxLength = truncated) =>\n string.length > maxLength\n ? `${string.substring(0, maxLength)}…`\n : string;\n\n !!truncated\n ? (value = truncateString(String(value), truncated))\n : value;\n break;\n }\n case TableColumnType.MultiSelect:\n if (typeof value === 'string') {\n value = value.split(';')?.map(v => v.trim()) || [];\n }\n return value;\n }\n\n return String(value);\n }\n\n public getRawValue(\n columnIndex: number,\n currentRow: ITableRowItem\n ): ITableRowItemValueTypes<ITableRowItemValue> {\n const { field } = this._getColumnDefByIndex(columnIndex);\n\n if (!field) {\n return '';\n }\n\n return currentRow[field] || '';\n }\n\n public getCellColor(\n columnDefinition: ITableColumnDef,\n item: ITableRowItem\n ): string {\n return TableThemeHelper.getCellColor(columnDefinition, item);\n }\n\n public getTheme(\n columnDefinition: ITableColumnDef,\n item: ITableRowItem\n ): ComponentTheme {\n return (\n TableThemeHelper.getTheme(columnDefinition, item) ||\n ComponentTheme.Primary\n );\n }\n\n public isSortedColumn(columnIndex: number): boolean {\n return columnIndex === this.sortColumnIndex;\n }\n\n public isRowSelected(id: string | number): boolean {\n return this.selectedRowIds.includes(id);\n }\n\n public handleSelectAll(event: CheckboxChangeEvent): void {\n if (!this.canSelectAllRows || !this.tableData) {\n return;\n }\n\n if (event.checked) {\n this._selectedRowIds = this.tableData?.map(row => row.id) || [];\n } else {\n this._selectedRowIds = [];\n }\n\n this._selectedRowIds.sort();\n this.allSelected = this.selectedRowIds.length >= this.tableData.length;\n\n this.rowSelect.emit(this.selectedRowIds);\n }\n\n public handleSort(columnIndex: number): void {\n if (columnIndex === this.sortColumnIndex) {\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n } else {\n this.sortColumnIndex = columnIndex;\n this.sortDirection = 'asc';\n }\n\n const field = this._getColumnDefByIndex(columnIndex).field || '';\n\n this.sortBy.emit({\n columnIndex,\n field,\n direction: this.sortDirection\n });\n }\n\n public handleRowSelect(\n event: CheckboxChangeEvent,\n rowId: number | string\n ): void {\n if (!this.canSelectRows) {\n return;\n }\n\n if (event.checked && !this._selectedRowIds.includes(rowId)) {\n this._selectedRowIds.push(rowId);\n } else if (!event.checked && this._selectedRowIds.includes(rowId)) {\n const idx = this._selectedRowIds.indexOf(rowId);\n if (idx > -1) {\n this._selectedRowIds.splice(idx, 1);\n }\n }\n\n if (this._selectedRowIds.length) {\n this._selectedRowIds.sort();\n }\n\n this.allSelected = this.selectedRowIds.length >= this.tableData.length;\n this.rowSelect.emit(this.selectedRowIds);\n }\n\n public handleCellValueChange(\n columnIndex: number,\n rowIndex: number,\n value: string | number | boolean | string[]\n ): void {\n const { field, columnType } = this._getColumnDefByIndex(columnIndex);\n let currentValue: string | number | boolean | string[] = value;\n\n if (columnType !== TableColumnType.Boolean && !Array.isArray(value)) {\n currentValue = isNaN(Number(value)) ? value : Number(value);\n }\n const item = this.tableData[rowIndex];\n\n setNestedValue(item, String(field), currentValue);\n\n this._inputChange.emit({\n columnIndex,\n item,\n value: currentValue\n });\n\n this._changeDetectorRef.detectChanges();\n }\n\n public handleLinkClick(columnIndex: number, item: ITableRowItem): void {\n this.linkClick.emit({\n item,\n columnIndex\n });\n }\n\n private _getColumnDefByIndex(columnIndex: number): ITableColumnDef {\n return this.columnDefs[columnIndex];\n }\n\n private _getValue(\n columnIndex: number,\n currentRow: ITableRowItem\n ): string | string[] {\n try {\n const { field, valueGetter } = this._getColumnDefByIndex(columnIndex);\n\n const value: string | string[] = valueGetter\n ? valueGetter(currentRow)\n : (getNestedValue(currentRow, String(field), '') as string | string[]);\n\n return value || '';\n } catch (e) {\n return '';\n }\n }\n}\n","<table impdcTable *ngIf=\"tableData\" [striped]=\"striped\">\n <thead>\n <tr *ngIf=\"!!bulkActions\">\n <th [attr.colspan]=\"tableSpan\" scope=\"col\" class=\"bulk-action-column\">\n <ng-content select=\"impdc-table-bulk-actions\"></ng-content>\n <ng-content select=\"[impdcTableBulkActions]\"></ng-content>\n </th>\n </tr>\n <tr>\n <th\n *ngIf=\"canSelectRows\"\n scope=\"col\"\n [ngClass]=\"{\n 'heading-below-bulk-actions': !!bulkActions\n }\">\n <div *ngIf=\"canSelectAllRows\">\n <impdc-checkbox\n ngModel\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n (change)=\"handleSelectAll($event)\"></impdc-checkbox>\n </div>\n </th>\n <th\n scope=\"col\"\n *ngFor=\"let columnDef of columnDefs; index as columnIndex\"\n [ngClass]=\"{\n 'sorted-column': isSortedColumn(columnIndex),\n 'sortable-column': columnDef.sorted,\n 'heading-below-bulk-actions': !!bulkActions\n }\"\n (click)=\"handleSort(columnIndex)\">\n <impdc-column-heading\n [isSortable]=\"columnDef.sorted || false\"\n [columnIndex]=\"columnIndex\"\n [sortColumnIndex]=\"sortColumnIndex\"\n [direction]=\"sortDirection\"\n [text]=\"columnDef.title\"\n (sort)=\"handleSort($event)\">\n </impdc-column-heading>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngIf=\"loading; else data\">\n <td [attr.colspan]=\"tableSpan\" class=\"data-loading\">\n <impdc-spinner></impdc-spinner>\n </td>\n </tr>\n <ng-template #data>\n <tr *ngIf=\"tableData.length === 0\">\n <td [attr.colspan]=\"tableSpan\" class=\"no-data\">\n <ng-content select=\"[noData]\"></ng-content>\n </td>\n </tr>\n <tr *ngFor=\"let row of tableData; index as rowIndex\">\n <td *ngIf=\"canSelectRows\">\n <div class=\"select-column\">\n <impdc-checkbox\n [ngModel]=\"isRowSelected(row.id)\"\n (change)=\"handleRowSelect($event, row.id)\"></impdc-checkbox>\n </div>\n </td>\n <td\n *ngFor=\"let columnDef of columnDefs; index as colIndex\"\n [ngClass]=\"{\n 'col-no-padding': !!columnDef.noPadding\n }\">\n <div [ngSwitch]=\"columnDef.columnType\">\n <span *ngSwitchCase=\"cellType.Badge\">\n <impdc-badge\n [text]=\"getStringValue(colIndex, row)\"\n [theme]=\"getTheme(columnDef, row)\">\n </impdc-badge>\n </span>\n <span\n *ngSwitchCase=\"cellType.Link\"\n class=\"cell-type-link\"\n (click)=\"handleLinkClick(colIndex, row)\">\n <a *ngIf=\"!branded\">\n {{ getValue(colIndex, row) }}\n </a>\n <a *ngIf=\"branded\" impdcBranded>\n {{ getValue(colIndex, row) }}\n </a>\n </span>\n <span *ngSwitchCase=\"cellType.Url\" class=\"cell-type-link\">\n <a\n *ngIf=\"!branded\"\n target=\"_blank\"\n [attr.href]=\"getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n <a\n *ngIf=\"branded\"\n impdcBranded\n target=\"_blank\"\n [attr.href]=\"getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n </span>\n <span *ngSwitchCase=\"cellType.Email\" class=\"cell-type-link\">\n <a\n *ngIf=\"!branded\"\n target=\"_blank\"\n [attr.href]=\"'mailto:' + getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n <a\n *ngIf=\"branded\"\n impdcBranded\n [attr.href]=\"getMailToValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n </span>\n <span *ngSwitchCase=\"cellType.Input\">\n <input\n impdcInput\n type=\"text\"\n class=\"{{ getCellColor(columnDef, row) }}\"\n [ngModel]=\"getValue(colIndex, row)\"\n (ngModelChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event)\n \" />\n </span>\n <span *ngSwitchCase=\"cellType.Boolean\">\n <span\n *ngIf=\"columnDef.disabled && getValue(colIndex, row) === 'true'\"\n impdc-icon\n name=\"check\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n <impdc-checkbox\n *ngIf=\"!columnDef.disabled\"\n [checked]=\"getValue(colIndex, row) === 'true'\"\n [isSwitch]=\"true\"\n (change)=\"\n handleCellValueChange(colIndex, rowIndex, $event.checked)\n \"></impdc-checkbox>\n </span>\n <span *ngSwitchCase=\"cellType.SingleSelect\">\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \">\n <impdc-select-option\n *ngIf=\"selectPlaceholder\"\n value\n [label]=\"selectPlaceholder\">\n </impdc-select-option>\n <impdc-select-option\n *ngFor=\"let value of columnDef.values || []\"\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n </impdc-select>\n </span>\n <span *ngSwitchCase=\"cellType.MultiSelect\">\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n multiple=\"true\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \">\n <impdc-select-option\n *ngFor=\"let value of columnDef.values || []\"\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n </impdc-select>\n </span>\n <span\n *ngSwitchCase=\"cellType.CellRender\"\n class=\"{{ getCellColor(columnDef, row) }}\">\n <ng-template\n impdcTableInjectComponent\n [columnDef]=\"columnDef\"\n [rowItem]=\"row\"\n [customCellComponents]=\"customCellComponents || {}\"\n [value]=\"getRawValue(colIndex, row)\"></ng-template>\n </span>\n <span *ngSwitchCase=\"cellType.Icon\">\n <span\n impdc-icon\n [name]=\"columnDef.iconName\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n </span>\n <span *ngSwitchDefault class=\"{{ getCellColor(columnDef, row) }}\">\n {{ getValue(colIndex, row) }}\n </span>\n </div>\n </td>\n </tr>\n </ng-template>\n </tbody>\n <tfoot>\n <tr *ngIf=\"paginationComponent\">\n <td [attr.colspan]=\"tableSpan\">\n <ng-content\n select=\"impdc-pagination, div[impdc-pagination]\"></ng-content>\n </td>\n </tr>\n </tfoot>\n</table>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SpinnerComponent } from './spinner.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SpinnerComponent],\n exports: [SpinnerComponent]\n})\nexport class SpinnerModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IconModule } from '../icon';\nimport { BadgeComponent } from './badge.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [BadgeComponent],\n exports: [IconModule, BadgeComponent]\n})\nexport class BadgeModule {\n constructor() {}\n}\n","import {\n CommonModule,\n DatePipe,\n DecimalPipe,\n PercentPipe\n} from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '../button';\nimport { TableComponent } from './containers/table.component';\nimport { TableDirective } from './directives';\nimport { PaginationModule } from '../pagination';\nimport { IconModule } from '../icon';\nimport { ImpdcFormsModule } from '../form-field';\nimport { SpinnerModule } from '../spinner';\nimport {\n ColumnHeadingComponent,\n TableBulkActionsComponent\n} from './components';\nimport { TableInjectComponentDirective } from './directives';\nimport { BadgeModule } from '../badge';\nimport { BrandingModule } from '../branding';\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonModule,\n PaginationModule,\n IconModule,\n ImpdcFormsModule,\n FormsModule,\n SpinnerModule,\n BadgeModule,\n BrandingModule\n ],\n declarations: [\n TableDirective,\n TableComponent,\n ColumnHeadingComponent,\n TableInjectComponentDirective,\n TableBulkActionsComponent\n ],\n exports: [\n ButtonModule,\n TableDirective,\n ColumnHeadingComponent,\n TableBulkActionsComponent,\n PaginationModule,\n TableComponent,\n IconModule,\n TableInjectComponentDirective,\n BrandingModule\n ],\n providers: [DatePipe, PercentPipe, DecimalPipe]\n})\nexport class TableModule {\n constructor() {}\n}\n","import { ComponentSize } from '../../../types';\n\nexport const ModalComponentSizesArr = [\n ComponentSize.Small,\n ComponentSize.Medium,\n ComponentSize.Large,\n ComponentSize.XLarge,\n ComponentSize.Fullscreen\n];\n\nexport type ModalComponentSizes = typeof ModalComponentSizesArr[number];\n","export enum ModalTheme {\n Simple = 'simple',\n Working = 'working',\n Destructive = 'destructive'\n}\n\nexport const ModalThemesArr = [\n ModalTheme.Simple,\n ModalTheme.Working,\n ModalTheme.Destructive\n];\n\nexport type ModalThemes = typeof ModalThemesArr[number];\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { FontAwesomeIcon, FontAwesomeIconTheme } from '../../constants';\nimport { InteractionService } from '../../services';\nimport { ComponentSize } from '../../types';\nimport { ButtonTheme } from '../button';\nimport { ModalComponentSizes, ModalTheme, ModalThemes } from './types';\n\n/**\n * The `ModalComponent` (`<impdc-modal`) displays over the content of the page when a user action is required.\n * To use, import `ModalModule` or another module that imports and exports that module from `@impartner/design-components`.\n * `ModalModule` imports and exports BackdropModule, [ButtonModule](./?path=/docs/design-components-button),\n * and [IconModule](./?path=/docs/design-components-icon).\n */\n@Component({\n selector: 'impdc-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent implements OnInit, OnDestroy {\n private _interactableId = 0;\n private _show = false;\n\n /**\n * Determines if the Modal should be shown immediately.\n */\n @Input()\n set show(show: boolean) {\n if (show) {\n this.open();\n } else {\n this.close();\n }\n }\n\n /**\n * The theme of the Modal. Affects the layout of the Modal as well as some colors.\n */\n @Input()\n theme: ModalThemes = ModalTheme.Simple;\n\n /**\n * The size of the Modal.\n */\n @Input()\n size: ModalComponentSizes = ComponentSize.Medium;\n\n /**\n * The Font Awesome 5 icon name. Only supported when the theme is Working or Destructive.\n */\n @Input()\n iconName?: FontAwesomeIcon;\n\n /**\n * The Font Awesome 5 icon style. Fewer icons support the Regular theme and will fallback to Solid\n * if not supported.\n */\n @Input()\n iconTheme: FontAwesomeIconTheme = 'light';\n\n /**\n * The subject text of the Modal.\n */\n @Input()\n titleText = '';\n\n /**\n * The fallback button text to accept the Modal. This is bypassed if you content-project the accept button.\n */\n @Input()\n acceptText = 'OK';\n\n /**\n * Allows the Modal to be dismissed. This is different from `accept` and `deny`. If a Modal is meant to be re-opened frequently it should be dismissable.\n */\n @Input()\n dismissable?: boolean;\n\n /**\n * Determines if the Modal should fade in/out.\n */\n @Input()\n fade = true;\n\n /**\n * Shows a backdrop behind the Modal.\n */\n @Input()\n backdrop = true;\n\n /**\n * Contains the dismiss button content projection.\n */\n @ViewChild('dismissEl', { static: false })\n dismissEl!: ElementRef;\n\n /**\n * Contains the deny button content projection.\n */\n @ViewChild('denyEl', { static: false })\n denyEl!: ElementRef;\n\n /**\n * Contains the accept button content projection.\n */\n @ViewChild('acceptEl', { static: false })\n acceptEl!: ElementRef;\n\n /**\n * Event emitted when the Modal content is dismissed.\n */\n @Output()\n dismiss = new EventEmitter<MouseEvent | Event>();\n\n /**\n * Event emitted when the Modal content is denied.\n */\n @Output()\n deny = new EventEmitter<MouseEvent | Event>();\n\n /**\n * Event emitted when the Modal content is accepted.\n */\n @Output()\n accept = new EventEmitter<MouseEvent | Event>();\n\n constructor(private _interactionService: InteractionService) {}\n\n get interactableId(): number {\n return this._interactableId;\n }\n\n get valid(): boolean {\n return this.interactableId > 0;\n }\n\n get shown(): boolean {\n return this.valid && this._show;\n }\n\n get showWorkingIcon(): boolean {\n return !!this.iconName && this.theme === ModalTheme.Working;\n }\n\n get showDestructiveIcon(): boolean {\n return !!this.iconName && this.theme === ModalTheme.Destructive;\n }\n\n get acceptFallbackTheme(): ButtonTheme {\n return this.theme === ModalTheme.Destructive ? 'danger' : 'primary';\n }\n\n get hideHeader(): boolean {\n return !this.titleText && !this.dismissable;\n }\n\n ngOnInit(): void {\n this._interactableId = this._interactionService.add(this);\n\n if (this.dismissable === undefined && this.theme === ModalTheme.Working) {\n this.dismissable = true;\n }\n\n if (this.iconName === undefined && this.theme === ModalTheme.Destructive) {\n this.iconName = 'exclamation-triangle';\n }\n }\n\n ngOnDestroy(): void {\n this._interactionService.remove(this.interactableId);\n this._interactableId = 0;\n }\n\n protected handleDismiss(event: MouseEvent | Event): void {\n if (\n !this.dismissable ||\n !!this.dismissEl?.nativeElement?.firstChild?.disabled\n ) {\n return;\n }\n this.close();\n this.dismiss.emit(event);\n }\n\n protected handleDeny(event: MouseEvent | Event): void {\n if (!!this.denyEl?.nativeElement?.firstChild?.disabled) {\n return;\n }\n this.close();\n this.deny.emit(event);\n }\n\n protected handleAccept(event: MouseEvent | Event): void {\n if (!!this.acceptEl?.nativeElement?.firstChild?.disabled) {\n return;\n }\n this.close();\n this.accept.emit(event);\n }\n\n /**\n * Opens/shows the modal. Can be used programmatically.\n */\n open(): void {\n if (this.backdrop) {\n this._interactionService.queueBackdrop(this.interactableId);\n }\n this._show = true;\n }\n\n /**\n * Closes/hides the modal. Can be used programmatically.\n */\n close(): void {\n this._show = false;\n this._interactionService.dequeueBackdrop(this.interactableId);\n }\n}\n","<div\n *ngIf=\"valid\"\n class=\"impdc modal\"\n [class.fade]=\"fade\"\n [class.in]=\"fade && shown\"\n [class.show]=\"shown\"\n [class.dismissable]=\"dismissable\"\n tabindex=\"-1\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.escape)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.enter)=\"handleAccept($event); $event.stopPropagation()\">\n <div\n class=\"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-theme-{{\n theme\n }}\"\n [class.modal-sm]=\"size === 'sm'\"\n [class.modal-lg]=\"size === 'lg'\"\n [class.modal-xl]=\"size === 'xl'\"\n [class.modal-fullscreen]=\"size === 'fs'\"\n [class.modal-fullscreen-lg-down]=\"size !== 'fs'\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"modal-content\">\n <div *ngIf=\"showDestructiveIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </div>\n <div #header class=\"modal-header\" [class.hide]=\"hideHeader\">\n <h3 class=\"modal-title\">\n <span *ngIf=\"showWorkingIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </span>\n <span>{{ titleText }}</span>\n </h3>\n <button\n impdcButton\n *ngIf=\"dismissable\"\n theme=\"close\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"></button>\n </div>\n <div #bodyEl class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <div #footer class=\"modal-footer\">\n <span\n #dismissEl\n *ngIf=\"dismissable\"\n [class.hide]=\"!dismissEl.children.length\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\">\n <ng-content select=\"[dismiss]\"></ng-content>\n </span>\n <span\n #denyEl\n [class.hide]=\"!denyEl.children.length\"\n (click)=\"handleDeny($event); $event.stopPropagation()\">\n <ng-content select=\"[deny]\"></ng-content>\n </span>\n <span\n #acceptEl\n [class.hide]=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <ng-content select=\"[accept]\"></ng-content>\n </span>\n <span\n #acceptFallbackEl\n *ngIf=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <button\n impdcButton\n [text]=\"acceptText\"\n [theme]=\"acceptFallbackTheme\"></button>\n </span>\n </div>\n </div>\n </div>\n</div>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { InteractionService } from '../../services';\n\n/**\n * The `BackdropComponent` (`<impdc-backdrop`) is a component to mask the background when an interaction is taking place.\n * This component needs to be added to the body of the host application if a backdrop is desired.\n * To use, import `BackdropModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-backdrop',\n templateUrl: './backdrop.component.html',\n styleUrls: ['./backdrop.component.scss']\n})\nexport class BackdropComponent implements OnInit, OnDestroy {\n private _valid = true;\n\n constructor(private interactionService: InteractionService) {}\n\n get valid(): boolean {\n return this._valid;\n }\n\n get show(): boolean {\n return this.valid && this.interactionService.showBackdrop;\n }\n\n ngOnInit(): void {\n this.interactionService.registerBackdrop(this);\n }\n\n ngOnDestroy(): void {\n this.interactionService.unregisterBackdrop(this);\n }\n\n invalidate(): void {\n this._valid = false;\n }\n\n validate(): void {\n this._valid = true;\n }\n}\n","<div *ngIf=\"valid\" class=\"impdc modal-backdrop fade\" [class.show]=\"show\"></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BackdropComponent } from './backdrop.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BackdropComponent],\n exports: [BackdropComponent]\n})\nexport class BackdropModule {\n constructor() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BackdropModule } from '../backdrop';\nimport { ButtonModule } from '../button';\nimport { IconModule } from '../icon';\nimport { ModalComponent } from './modal.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n BackdropModule,\n ButtonModule,\n IconModule\n ],\n declarations: [ModalComponent],\n exports: [BackdropModule, ButtonModule, IconModule, ModalComponent]\n})\nexport class ModalModule {\n constructor() {}\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * The `ProgressBarComponent` (`<impdc-progress-bar`) is a display-only slider to show progress.\n * To use, import `ProgressBarModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss']\n})\nexport class ProgressBarComponent {\n /**\n * The left/subject text of the Progress Bar.\n */\n @Input()\n public labelText = '';\n\n /**\n * The right/status text of the Progress Bar.\n */\n @Input()\n public statusText = '';\n\n /**\n * The current value of the Progress Bar represented as a number between 0 and 100.\n */\n @Input()\n public progressPercentage = 0;\n\n constructor() {}\n}\n","<div class=\"progress-container\">\n <div class=\"progress-text\">\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 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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ProgressBarComponent } from './progress-bar.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ProgressBarComponent],\n exports: [ProgressBarComponent]\n})\nexport class ProgressBarModule {}\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'impdc-dropdown-item',\n templateUrl: './dropdown-item.component.html'\n})\nexport class DropdownItemComponent {\n /**\n * Used in DropdownComponent to determine if the projected content should be rendered or it's a divider.\n */\n @Input()\n divider = false;\n\n @ViewChild(TemplateRef) template!: TemplateRef<never>;\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n Component,\n Input,\n HostListener,\n Output,\n EventEmitter,\n HostBinding,\n QueryList,\n ContentChildren,\n OnInit,\n OnDestroy\n} from '@angular/core';\nimport { InteractionService } from '../../services';\nimport { ButtonTheme } from '../button';\nimport { DropdownItemComponent } from './components';\nimport { DropdownPosition } from './types';\n\n/**\n * The `DropdownComponent` (`<impdc-dropdown` or `<any impdc-dropdown`) contains a button that toggles a dropdown where a user\n * can select various actions. Items within must be wrapped with `DropdownItemComponent` (`<impdc-dropdown-item`).\n * To use, import `DropdownModule` or another module that imports and exports that module from `@impartner/design-components`.\n * `DropdownModule` imports and exports [ButtonModule](./?path=/docs/design-components-button).\n */\n@Component({\n selector: 'impdc-dropdown, [impdc-dropdown]',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss']\n})\nexport class DropdownComponent implements OnInit, OnDestroy {\n private _interactableId = 0;\n\n /**\n * Whether or not the dropdown list is showing.\n */\n @Input()\n show = false;\n\n /**\n * The content projected `DropdownItemComponent` children.\n */\n @ContentChildren(DropdownItemComponent)\n items!: QueryList<DropdownItemComponent>;\n\n /**\n * The theme of the button affecting text, icons, backgrounds, and borders.\n */\n @Input()\n buttonTheme: ButtonTheme = 'primary';\n\n /**\n * The text of the button.\n */\n @Input()\n buttonText = '';\n\n // we don't want headerText to be available right now\n // @Input()\n //headerText: string = '';\n\n /**\n * Where the list shows relative to the button when it is showing.\n */\n @Input()\n position: DropdownPosition = 'down';\n\n /**\n * If true, the icon is split from the button and only clicking the icon triggers the list showing/hiding.\n */\n @Input()\n split = false;\n\n /**\n * Emitted when the dropdown is toggled.\n */\n @Output()\n toggle = new EventEmitter<boolean>();\n\n /**\n * Emitted when the button is clicked.\n */\n @Output()\n public buttonClick = new EventEmitter<MouseEvent>();\n\n @HostBinding('class.btn-group') private classBtnGroup = true;\n\n @HostBinding('class.dropdown') private get classDropdown() {\n return this.position === 'down';\n }\n\n @HostBinding('class.dropend') private get classDropend() {\n return this.position === 'right';\n }\n\n @HostBinding('class.dropstart') private get classDropstart() {\n return this.position === 'left';\n }\n\n @HostBinding('class.dropup') private get classDropup() {\n return this.position === 'up';\n }\n\n @HostListener('click')\n handleHostClick($event: MouseEvent): void {\n $event.stopPropagation();\n }\n\n @HostListener('document:click')\n handleDocumentClick(): void {\n if (this.show) {\n this.hide();\n }\n }\n\n constructor(private _interactionService: InteractionService) {}\n\n get interactableId(): number {\n return this._interactableId;\n }\n\n get valid(): boolean {\n return this.interactableId > 0;\n }\n\n get shown(): boolean {\n return this.valid && this.show;\n }\n\n ngOnInit(): void {\n this._interactableId = this._interactionService.add(this);\n }\n\n ngOnDestroy(): void {\n this._interactionService.remove(this.interactableId);\n this._interactableId = 0;\n }\n\n handleToggle(): void {\n this.show = this._interactionService.toggle(this);\n this.toggle.emit(this.show);\n }\n\n handleButtonClick(event: MouseEvent): void {\n this.buttonClick.emit(event);\n }\n\n hide(): void {\n this.show = false;\n this.toggle.emit(this.show);\n }\n}\n","<ng-container *ngIf=\"!linkEl.children.length\">\n <button\n *ngIf=\"!split; else splitTemplate\"\n impdcButton\n [theme]=\"buttonTheme\"\n [text]=\"buttonText\"\n class=\"dropdown-toggle\"\n [class.show]=\"show\"\n data-bs-toggle=\"dropdown\"\n [attr.aria-expanded]=\"show\"\n (click)=\"handleToggle(); $event.stopPropagation()\"></button>\n\n <ng-template #splitTemplate>\n <button\n impdcButton\n [theme]=\"buttonTheme\"\n [text]=\"buttonText\"\n (click)=\"handleButtonClick($event)\"></button>\n <button\n impdcButton\n [theme]=\"buttonTheme\"\n class=\"dropdown-toggle dropdown-toggle-split\"\n [class.show]=\"show\"\n [attr.aria-expanded]=\"show\"\n (click)=\"handleToggle(); $event.stopPropagation()\">\n <span class=\"visually-hidden\">Toggle Dropdown</span>\n </button>\n </ng-template>\n</ng-container>\n\n<ul\n class=\"dropdown-menu\"\n [class.dropdown-menu-end]=\"false\"\n [class.show]=\"show\"\n (click)=\"$event.stopPropagation()\">\n <!-- <li *ngIf=\"headerText\">\n <h6 class=\"dropdown-header\">{{ headerText }}</h6>\n </li> -->\n <li *ngFor=\"let item of items\">\n <span *ngIf=\"!item.divider; else dividerTemplate\" class=\"dropdown-item\">\n <ng-content *ngTemplateOutlet=\"item.template\"></ng-content>\n </span>\n </li>\n</ul>\n\n<ng-template #dividerTemplate>\n <hr class=\"dropdown-divider\" />\n</ng-template>\n\n<a\n #linkEl\n class=\"impdc-dropdown-link\"\n [class.hide]=\"!linkEl.children.length\"\n [class.impdc-dropdown-open]=\"show\"\n data-bs-toggle=\"dropdown\"\n [attr.aria-expanded]=\"show\"\n (click)=\"handleToggle(); $event.stopPropagation()\">\n <ng-content select=\"[toggle]\"></ng-content>\n</a>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from '../button';\nimport { DropdownComponent } from './dropdown.component';\nimport { DropdownItemComponent } from './components';\n\n@NgModule({\n imports: [CommonModule, ButtonModule],\n declarations: [DropdownItemComponent, DropdownComponent],\n exports: [ButtonModule, DropdownItemComponent, DropdownComponent]\n})\nexport class DropdownModule {\n constructor() {}\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AlertTheme } from './theme';\n\n/**\n * The `AlertComponent` (`<impdc-alert` or `<any impdc-alert`) is intended to show information or feedback inline with content.\n * To use, import `AlertModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-alert, [impdc-alert]',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss']\n})\nexport class AlertComponent {\n /**\n * The theme of the Alert affecting text, icons, backgrounds, and borders.\n */\n @Input()\n theme: AlertTheme = 'warning';\n\n /**\n * Determines if the Alert should be shown immediately.\n */\n @Input() show = false;\n\n /**\n * The heading text of the Alert. Content can also be projected in the heading area using a `heading` directive.\n */\n @Input() headingText = '';\n\n /**\n * The body text of the Alert. Content can also be projected into the body area using default projection.\n */\n @Input() bodyText = '';\n\n /**\n * By default, an Alert is a \"floating\" notification. When set to \"inline\", these \"floating\" styles are replaced.\n */\n @Input() inline = false;\n\n /**\n * Removes the Alert icon provided by the theme or projected into the icon area using the `icon` directive.\n */\n @Input() hideIcon = false;\n\n /**\n * Allows the Alert to be dismissed.\n */\n @Input() dismissible = true;\n\n /**\n * Event emitted when the Alert is dismissed.\n */\n @Output()\n dismiss = new EventEmitter<void>();\n\n get componentClasses(): string {\n const themeClass =\n this.theme === 'warning'\n ? 'alert-warning'\n : this.theme === 'info'\n ? 'alert-info'\n : this.theme === 'danger'\n ? 'alert-danger'\n : this.theme === 'success'\n ? 'alert-success'\n : '';\n const inlineClass = this.inline ? ' alert-inline' : '';\n const dismissibleClass = this.dismissible ? ' alert-dismissible' : '';\n return themeClass + inlineClass + dismissibleClass;\n }\n\n get themeIconName(): string {\n return this.theme === 'warning'\n ? 'exclamation-circle'\n : this.theme === 'info'\n ? 'info-circle'\n : this.theme === 'danger'\n ? 'times-circle'\n : this.theme === 'success'\n ? 'check-circle'\n : '';\n }\n\n closeAlert(): void {\n if (!this.dismissible) {\n return;\n }\n this.show = false;\n this.dismiss.emit();\n }\n}\n","<div *ngIf=\"show\" class=\"impdc alert\" [ngClass]=\"componentClasses\">\n <ng-container *ngIf=\"!hideIcon\">\n <span #alertIcon [hidden]=\"!alertIcon.children.length\" class=\"alert-icon\">\n <ng-content select=\"[icon]\"></ng-content>\n </span>\n <span *ngIf=\"!alertIcon.children.length\" class=\"alert-icon\">\n <span impdc-icon [name]=\"themeIconName\"></span>\n </span>\n </ng-container>\n\n <div class=\"alert-content\">\n <div class=\"alert-heading\">\n <ng-content select=\"[heading]\"></ng-content>\n <span *ngIf=\"headingText\">{{ headingText }}</span>\n </div>\n\n <div\n #bodyContent\n class=\"alert-body\"\n [hidden]=\"!bodyContent.children.length\">\n <div *ngIf=\"bodyText\">{{ bodyText }}</div>\n\n <ng-content></ng-content>\n\n <div\n #alertActions\n [hidden]=\"!alertActions.children.length\"\n class=\"alert-actions\">\n <ng-content select=\"[action]\"></ng-content>\n </div>\n </div>\n </div>\n\n <a\n *ngIf=\"dismissible\"\n class=\"close-icon\"\n (click)=\"closeAlert()\"\n data-bs-dismiss=\"alert\"\n aria-label=\"Close\">\n <span impdc-icon name=\"times\" theme=\"regular\"></span>\n </a>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AlertComponent } from './alert.component';\nimport { IconModule } from '../icon';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [AlertComponent],\n exports: [IconModule, AlertComponent]\n})\nexport class AlertModule {}\n","import {\n Directive,\n Output,\n EventEmitter,\n HostBinding,\n HostListener\n} from '@angular/core';\n\n@Directive({\n selector: '[impdcFileDrop]'\n})\nexport class FileDropDirective {\n @HostBinding('class.file-hover')\n fileHovering = false;\n\n @Output() filesDropped = new EventEmitter<FileList>();\n\n @HostListener('dragover', ['$event']) onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.fileHovering = true;\n }\n\n @HostListener('dragleave', ['$event']) public onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.fileHovering = false;\n }\n\n @HostListener('drop', ['$event']) public OnDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.fileHovering = false;\n let fileList = event.dataTransfer?.files;\n if (fileList) {\n this.filesDropped.emit(fileList);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'humanReadableByteSize'\n})\nexport class HumanReadableByteSizePipe implements PipeTransform {\n transform(bytes: number): string {\n if (bytes < 1024) {\n return `${bytes}B`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(1024));\n const num = bytes / Math.pow(1024, i);\n const round = Math.round(num);\n const display =\n round < 10 ? num.toFixed(2) : round < 100 ? num.toFixed(1) : round;\n\n return `${display}${'KMGTPEZY'[i - 1]}B`;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Self,\n ViewChild\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormGroupDirective,\n NgControl,\n NgForm,\n ValidationErrors,\n Validator,\n Validators\n} from '@angular/forms';\nimport { nanoid } from 'nanoid';\nimport { Subject } from 'rxjs';\nimport { BooleanInput, coerceBooleanPropertyValue } from '../../utilities';\nimport {\n ErrorStateMatcher,\n ICanUpdateErrorState,\n IHasErrorState,\n ImpdcFormFieldControl,\n ImpdcFormRoot,\n IMPDC_FORM_ROOT,\n mixinDisabled,\n mixinErrorState,\n mixinTabIndex\n} from '../form-field';\nimport { FileDropDirective } from './directives';\n\nconst _FileUploadComponentBase = mixinTabIndex(\n mixinDisabled(\n mixinErrorState(\n class {\n public readonly stateChanges = new Subject<void>();\n\n constructor(\n public _defaultErrorStateMatcher: ErrorStateMatcher,\n public _formRoot: ImpdcFormRoot,\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n public ngControl: NgControl | null\n ) {}\n }\n )\n )\n);\n\n/**\n * The `FileUploadComponent` (`<impdc-file-upload` or `<any impdc-file-upload`) is a file selector that supports drag and drop.\n * To use, import `FileUploadModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-file-upload, [impdc-file-upload]',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['disabled', 'tabIndex'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n class: 'impdc-file-upload',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'tabIndex',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[class.impdc-file-upload--required]': 'required',\n '[class.impdc-file-upload--disabled]': 'disabled',\n '[class.impdc-file-upload--invalid]': 'errorState',\n '[class.impdc-file-upload--multiple]': 'multiple',\n '[class.impdc-file-upload--empty]': 'empty',\n '(focus)': '_onFocus(); focus()'\n },\n providers: [\n {\n provide: ImpdcFormFieldControl,\n useExisting: FileUploadComponent\n }\n ]\n})\nexport class FileUploadComponent\n extends _FileUploadComponentBase\n implements\n ControlValueAccessor,\n Validator,\n ImpdcFormFieldControl<File | File[]>,\n ICanUpdateErrorState,\n IHasErrorState,\n DoCheck,\n OnDestroy\n{\n @ViewChild(FileDropDirective, { read: ElementRef })\n protected fileDropElementRef!: ElementRef<HTMLElement>;\n\n /** @ignore */\n @ViewChild('fileUploadInputElt', { static: false })\n public fileUploadInputEltRef!: ElementRef<HTMLInputElement>;\n\n /**\n * Whether the control supports uploading multiple files.\n */\n @Input()\n multiple = false;\n\n /**\n * The instructional text to display in the file upload dropzone.\n */\n @Input()\n uploadText = 'Drag and drop files here or click to upload';\n\n /**\n * The comma-delimited list of file types that are accepted by the control.\n */\n @Input()\n accept = '';\n\n @Input()\n public override errorStateMatcher!: ErrorStateMatcher;\n\n public get canUpload(): boolean {\n return this.multiple || this._value.length === 0;\n }\n\n private get acceptTypes(): string[] {\n if (!this.accept || !this.accept.length) {\n return [];\n }\n\n return this.accept\n .split(',')\n .map(a => a.trim())\n .filter(a => !!a);\n }\n\n public get empty(): boolean {\n return this._value.length === 0;\n }\n\n protected get filesForDisplay(): readonly File[] {\n return this._value || [];\n }\n\n private _cvaOnChange: Function | undefined;\n private _cvaOnTouched: Function | undefined;\n private _uid = `impdc-file-upload-${nanoid()}`;\n\n constructor(\n private readonly _changeDetector: ChangeDetectorRef,\n _defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Inject(IMPDC_FORM_ROOT) _formRoot: ImpdcFormRoot,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n @Self() @Optional() ngControl: NgControl | null\n ) {\n super(\n _defaultErrorStateMatcher,\n _formRoot,\n _parentForm,\n _parentFormGroup,\n ngControl\n );\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n this.ngControl.control?.addValidators(() => {\n return this.validate();\n });\n }\n\n this.id = this.id;\n }\n\n /** @ignore */\n public handleChange(event: Event) {\n const fileList: FileList | null = ((event.target as HTMLInputElement) || {})\n .files;\n\n if (!fileList) {\n return;\n }\n\n this._mergeNewFilesWithExistingFiles(fileList);\n }\n\n /** @ignore */\n public handleDrop(event: FileList) {\n if (this.disabled || !event) {\n return;\n }\n\n this._mergeNewFilesWithExistingFiles(event);\n }\n\n /** @ignore */\n public removeFile(fileIndex: number): void {\n const newFilesArr = [...this._value];\n newFilesArr.splice(fileIndex, 1);\n\n this._updateValueFromInteraction(newFilesArr);\n }\n\n /** @ignore */\n public focus(options?: FocusOptions): void {\n this.fileDropElementRef.nativeElement.focus(options);\n }\n\n /* Lifecycle Hooks */\n\n /** @ignore */\n public ngDoCheck(): void {\n this.updateErrorState();\n }\n\n /** @ignore */\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n /* ImpdcFormFieldControl */\n\n /**\n * The file(s) currently uploaded into the control. Returns `File | null` when `multiple` is `false`,\n * and `File[]` when `multiple` is `true`.\n */\n @Input()\n public get value(): File | File[] | null {\n return this.multiple ? [...this._value] : this._value[0];\n }\n public set value(newValue: File | File[] | null) {\n if (newValue !== this._value) {\n if (Array.isArray(newValue)) {\n this._value = newValue ? [...newValue] : [];\n } else {\n this._value = newValue ? [newValue] : [];\n }\n }\n\n const fileList = this._getFileList(this._value);\n\n if (\n this.fileUploadInputEltRef &&\n this.fileUploadInputEltRef.nativeElement\n ) {\n this.fileUploadInputEltRef.nativeElement.files = fileList;\n }\n }\n private _value: readonly File[] = [];\n\n /** @ignore */\n @Input()\n public get id(): string {\n return this._id;\n }\n public set id(value: string) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n private _id!: string;\n\n /**\n * Used to set requiredness of control in a template-based manner;\n * not necessary when using the Angular reactive forms API and `required` validator.\n *\n * @default false\n */\n @Input()\n public get required(): boolean {\n return (\n this._required ??\n this.ngControl?.control?.hasValidator(Validators.required) ??\n false\n );\n }\n public set required(value: BooleanInput) {\n this._required = coerceBooleanPropertyValue(value);\n this.stateChanges.next();\n }\n private _required: boolean | undefined;\n\n public get focused(): boolean {\n return this._focused;\n }\n private _focused = false;\n\n public readonly controlType: string = 'impdc-file-upload';\n public readonly supportsAffixes: boolean = false;\n\n /* ControlValueAccessor */\n\n /** @ignore */\n public writeValue(value: File[]): void {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n\n /** @ignore */\n public registerOnChange(fn: Function): void {\n this._cvaOnChange = fn;\n }\n\n /** @ignore */\n public registerOnTouched(fn: Function): void {\n this._cvaOnTouched = fn;\n this._changeDetector.markForCheck();\n }\n\n /** @ignore */\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /* Validator */\n\n /**\n * @ignore\n */\n public validate(): ValidationErrors | null {\n return !this.disabled && this.required && this._value.length === 0\n ? { required: true }\n : null;\n }\n\n /* Internals */\n\n protected _onFocus(): void {\n if (!this.disabled) {\n this._focused = true;\n this.stateChanges.next();\n }\n }\n\n protected _onBlur(): void {\n this._focused = false;\n\n if (!this.disabled) {\n this._cvaOnTouched && this._cvaOnTouched();\n this._changeDetector.markForCheck();\n this.stateChanges.next();\n }\n }\n\n private _updateValueFromInteraction(newValue: File[]): void {\n this.value = newValue;\n\n this._cvaOnChange && this._cvaOnChange(this.value);\n this._cvaOnTouched && this._cvaOnTouched();\n this.stateChanges.next();\n }\n\n private _mergeNewFilesWithExistingFiles(fileList: FileList | null) {\n if (!fileList) {\n return;\n }\n\n if (this._value && this._value.length == 1 && !this.multiple) {\n return;\n }\n\n const tempFiles = [...this._value];\n\n Array.from(fileList).forEach(newFile => {\n if (!this.multiple && tempFiles.length > 0) {\n return;\n }\n const existingFile = tempFiles.find(\n existing =>\n existing.name === newFile.name &&\n existing.lastModified === newFile.lastModified &&\n existing.size === newFile.size\n );\n\n if (existingFile) {\n return;\n }\n\n if (this._acceptedFileType(newFile.type, newFile.name)) {\n tempFiles.push(newFile);\n }\n });\n\n this._updateValueFromInteraction(tempFiles);\n }\n\n private _getFileList(files: readonly File[]): FileList {\n const dataTransfer = new DataTransfer();\n\n files.forEach(file => {\n dataTransfer.items.add(file);\n });\n\n return dataTransfer.files;\n }\n\n private _getExtensions(fileName: string): string[] {\n const nameSegments = fileName.split('.');\n let extensions: string[] = [];\n\n if (nameSegments.length < 2) {\n return extensions;\n }\n\n const extension = `.${nameSegments.slice(1).join('.')}`;\n extensions.push(extension);\n\n if (nameSegments.length === 2) {\n return extensions;\n }\n\n const sub = `.${nameSegments.slice(2).join('.')}`;\n const subExtensions = this._getExtensions(sub);\n extensions = [...extensions, ...subExtensions];\n\n return extensions;\n }\n\n private _acceptedFileType(type: string, fileName: string): boolean {\n if (!this.acceptTypes || this.acceptTypes.length === 0) {\n return true;\n }\n\n const acceptedByType = this.acceptTypes.includes(type);\n\n if (acceptedByType) {\n return true;\n }\n\n const fileExtensions = this._getExtensions(fileName);\n\n if (!fileExtensions || fileExtensions.length === 0) {\n return false;\n }\n\n const acceptedByExtension = this.acceptTypes.some(type =>\n fileExtensions.includes(type)\n );\n\n return acceptedByExtension;\n }\n}\n","<div class=\"impdc-file-upload-container\">\n <div\n class=\"impdc-file-upload-dropzone\"\n [ngClass]=\"{\n 'hide-upload': !canUpload\n }\"\n impdcFileDrop\n (filesDropped)=\"handleDrop($event)\"\n (keyup.enter)=\"fileUploadInputElt.click()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n [tabindex]=\"disabled ? '-1' : '0'\">\n <input\n class=\"file-upload-input\"\n type=\"file\"\n #fileUploadInputElt\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n (change)=\"handleChange($event)\"\n tabindex=\"-1\" />\n <span\n impdc-icon\n theme=\"regular\"\n name=\"cloud-upload-alt\"\n class=\"upload-icon\"></span>\n <p class=\"upload-text\">{{ uploadText }}</p>\n </div>\n <div class=\"current-files\" *ngIf=\"filesForDisplay.length\">\n <ng-container *ngFor=\"let file of filesForDisplay; let idx = index\">\n <div class=\"current-file\">\n <div class=\"current-file-details\">\n <div class=\"name\">{{ file.name }}</div>\n <div class=\"size\">{{ file.size | humanReadableByteSize }}</div>\n </div>\n <div *ngIf=\"!disabled\" class=\"current-file-actions\">\n <button\n impdcButton\n theme=\"close\"\n tabindex=\"0\"\n (keyup.enter)=\"removeFile(idx)\"\n (click)=\"removeFile(idx)\"></button>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FileDropDirective } from './directives';\nimport { FileUploadComponent } from './file-upload.component';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from '../button';\nimport { IconModule } from '../icon';\nimport { HumanReadableByteSizePipe } from './pipes';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ButtonModule, IconModule],\n declarations: [\n FileDropDirective,\n FileUploadComponent,\n HumanReadableByteSizePipe\n ],\n exports: [IconModule, FileDropDirective, FileUploadComponent]\n})\nexport class FileUploadModule {\n constructor() {}\n}\n","import { Component, Input } from '@angular/core';\nimport { ComponentSize, PrimaryComponentSizes } from '../../types';\n\n/**\n * The `AvatarComponent` (`<impdc-avatar`) is a rounded user avatar/icon with an optional status color.\n * For a horizontal container, see [AvatarGroupComponent](./?path=/docs/design-components-avatar--group).\n * To use, import `AvatarModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss']\n})\nexport class AvatarComponent {\n /**\n * The image source url to display as the Avatar's background.\n */\n @Input() imgSrc = '';\n\n /**\n * Initials to display if an `imgSrc` is not available.\n */\n @Input() initials = '';\n\n /**\n * A status to display as part of the Avatar.\n */\n @Input() status: '' | 'active' | 'inactive' | 'busy' = '';\n\n /**\n * The size of the Avatar.\n */\n @Input() size: PrimaryComponentSizes = ComponentSize.Medium;\n\n get avatarHasImg(): boolean {\n return this.imgSrc && this.imgSrc.length > 0 ? true : false;\n }\n}\n","<div class=\"avatar-container\">\n <span class=\"avatar-status\" *ngIf=\"status\" [ngClass]=\"[size, status]\"></span>\n\n <img\n class=\"avatar\"\n *ngIf=\"avatarHasImg\"\n [attr.src]=\"imgSrc\"\n [ngClass]=\"size\" />\n <div\n class=\"avatar initials\"\n *ngIf=\"!avatarHasImg && initials\"\n [ngClass]=\"size\">\n {{ initials.toUpperCase() }}\n </div>\n\n <div\n class=\"avatar fallback\"\n *ngIf=\"!avatarHasImg && !initials\"\n [ngClass]=\"size\">\n <span impdc-icon name=\"user\"></span>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '../icon';\nimport { AvatarComponent } from './avatar.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [AvatarComponent],\n exports: [IconModule, AvatarComponent]\n})\nexport class AvatarModule {}\n","import { Component } from '@angular/core';\n\n/**\n * The `AvatarGroupComponent` (`<impdc-avatar-group`) is a horizontal container for [AvatarComponent](./?path=/docs/design-components-avatar--single).\n * To use, import `AvatarGroupModule` or another module that imports and exports that module from `@impartner/design-components`.\n * `AvatarGroupModule` also imports and exports [AvatarModule](./?path=/docs/design-components-avatar--single)\n */\n@Component({\n selector: 'impdc-avatar-group',\n templateUrl: './avatar-group.component.html',\n styleUrls: ['./avatar-group.component.scss']\n})\nexport class AvatarGroupComponent {}\n","<div class=\"avatar-group\">\n <ng-content select=\"impdc-avatar\"></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AvatarGroupComponent } from './avatar-group.component';\nimport { AvatarModule } from '../avatar/avatar.module';\n\n@NgModule({\n declarations: [AvatarGroupComponent],\n imports: [CommonModule, AvatarModule],\n exports: [AvatarModule, AvatarGroupComponent]\n})\nexport class AvatarGroupModule {}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'impdc-breadcrumb-item',\n template: `\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `\n})\nexport class BreadcrumbItemComponent {\n @ViewChild('content', { read: TemplateRef })\n public contentTemplate!: TemplateRef<never>;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n HostBinding,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\n\n/**\n * The `BreadcrumbComponent` (`<impdc-breadcrumb` or `<div impdc-breadcrumb`) is for historical navigation so the user can get back\n * to a previous page. Items within must be wrapped with `BreadcrumbItemComponent` (`<impdc-breadcrumb-item`).\n * To use, import `BreadcrumbModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-breadcrumb, div[impdc-breadcrumb]',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BreadcrumbComponent implements AfterViewInit {\n /**\n * Sets the `aria-label` attribute for the Breadcrumb's `nav` element for accessibility.\n */\n @Input()\n public label = '';\n\n @HostBinding('class.impdc-breadcrumb') private impdcBreadcrumb = true;\n\n @ContentChildren(BreadcrumbItemComponent)\n protected breadcrumbItems!: QueryList<BreadcrumbItemComponent>;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n this._changeDetectorRef.detectChanges();\n }\n}\n","<nav class=\"impdc-breadcrumb\" [attr.aria-label]=\"label || 'breadcrumb'\">\n <ol>\n <li\n *ngFor=\"let breadcrumbItem of breadcrumbItems; last as isLast\"\n [attr.aria-current]=\"isLast ? 'page' : undefined\">\n <ng-container\n [ngTemplateOutlet]=\"breadcrumbItem.contentTemplate\"></ng-container>\n </li>\n </ol>\n</nav>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\n@NgModule({\n declarations: [BreadcrumbItemComponent, BreadcrumbComponent],\n imports: [CommonModule],\n exports: [BreadcrumbItemComponent, BreadcrumbComponent]\n})\nexport class BreadcrumbModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TextHighlightModule } from './text-highlight';\nimport { ButtonModule } from './button';\nimport { TableModule } from './table';\nimport { ModalModule } from './modal';\nimport { IconModule } from './icon';\nimport { ProgressBarModule } from './progress-bar';\nimport { DropdownModule } from './dropdown';\nimport { AlertModule } from './alert';\nimport { FileUploadModule } from './file-upload';\nimport { AvatarModule } from './avatar';\nimport { AvatarGroupModule } from './avatar-group';\nimport { BadgeModule } from './badge';\nimport { BreadcrumbModule } from './breadcrumb';\nimport { BrandingModule } from './branding';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TextHighlightModule,\n IconModule,\n BadgeModule,\n ProgressBarModule,\n ButtonModule,\n TableModule,\n DropdownModule,\n AlertModule,\n ModalModule,\n FileUploadModule,\n AvatarModule,\n AvatarGroupModule,\n BreadcrumbModule,\n BrandingModule\n ],\n exports: [\n TextHighlightModule,\n IconModule,\n BadgeModule,\n ProgressBarModule,\n ButtonModule,\n TableModule,\n DropdownModule,\n AlertModule,\n ModalModule,\n FileUploadModule,\n AvatarModule,\n AvatarGroupModule,\n BreadcrumbModule,\n BrandingModule\n ]\n})\nexport default class DesignComponentsModule {}\n","import {\n Component,\n Input,\n ViewEncapsulation,\n HostBinding\n} from '@angular/core';\n\n/**\n * The `ButtonGroupComponent` (`<impdc-button-group` or `<any impdc-button-group`) is a container for multiple [ButtonComponent](./?path=/docs/design-components-button)s.\n * To use, import `ButtonGroupModule` or another module that imports and exports that module from `@impartner/design-components`.\n * `ButtonGroupModule` imports and exports [ButtonModule](./?path=/docs/design-components-button).\n */\n@Component({\n selector: 'impdc-button-group, [impdc-button-group]',\n templateUrl: './button-group.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class ButtonGroupComponent {\n /**\n * Changes the orientation of the Button Group to vertical, making any Button within it stack vertically.\n */\n @Input()\n vertical = false;\n\n /**\n * Sets the `aria-label` attribute for the Button Group's element.\n */\n @Input()\n ariaLabel = '';\n\n @HostBinding('class.btn-group') private get classBtnGroup() {\n return !this.vertical;\n }\n\n @HostBinding('class.btn-group-vertical') private get classBtnGroupVertical() {\n return this.vertical;\n }\n\n @HostBinding('attr.role') private attrRole = 'group';\n\n @HostBinding('attr.aria-label') private get attrAriaLabel() {\n return this.ariaLabel || undefined;\n }\n}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from '../button/button.module';\nimport { ButtonGroupComponent } from './button-group.component';\n\n@NgModule({\n imports: [CommonModule, ButtonModule],\n declarations: [ButtonGroupComponent],\n exports: [ButtonModule, ButtonGroupComponent]\n})\nexport class ButtonGroupModule {\n constructor() {}\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * The `CardHeadingComponent` (`<impdc-card-heading` or `<div impdc-card-heading`) is used to display projected content as a card with a consistent heading.\n * To use, import `CardHeadingModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-card-heading, div[impdc-card-heading]',\n templateUrl: './card-heading.component.html',\n styleUrls: ['./card-heading.component.scss']\n})\nexport class CardHeadingComponent {\n /**\n * The subject text for a Card.\n */\n @Input()\n public title = '';\n\n /**\n * The description, subtitle, or other pre-text for a Card.\n */\n @Input()\n public description = '';\n\n constructor() {}\n}\n","<div class=\"card-heading\">\n <div class=\"heading\">\n <div class=\"heading-left\">\n <div class=\"heading-avatar\">\n <ng-content select=\"impdc-avatar\"></ng-content>\n </div>\n <div class=\"heading-title\">\n <h3 *ngIf=\"title\">{{ title }}</h3>\n <span class=\"description\" *ngIf=\"description\">{{ description }}</span>\n </div>\n </div>\n <div class=\"heading-actions\">\n <ng-content select=\"button[impdcButton]\"></ng-content>\n </div>\n </div>\n <div class=\"card-heading-body\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CardHeadingComponent } from './card-heading.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [CardHeadingComponent],\n exports: [CardHeadingComponent]\n})\nexport class CardHeadingModule {\n constructor() {}\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { IElementSize } from '../size-detection';\n\n/**\n * The `ScrollableComponent` (`<impdc-scrollable` or `<div impdc-scrollable`) is a container that hides items that wouldn't fit\n * with arrows on the left and right to slide between them.\n * To use, import `ScrollableModule` or another module that imports and exports that module from `@impartner/design-components`.\n * `ScrollableModule` also imports and exports [BrandingModule](./?path=/docs/design-components-directives-impdcbranded).\n */\n@Component({\n selector: 'impdc-scrollable, div[impdc-scrollable]',\n templateUrl: './scrollable.component.html',\n styleUrls: ['./scrollable.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ScrollableComponent implements OnChanges, AfterViewInit {\n private readonly GET_ANCESTOR_BG_SEARCH_DEPTH = 64;\n /**\n * The base amount to scroll.\n */\n @Input()\n public scrollUnit = 20;\n\n /**\n * Used in combination with `scrollUnit` to determine how far the Scrollable scrolls when directional arrows are clicked.\n */\n @Input()\n public clickScrollMultiplier = 5;\n\n @HostBinding('style.--impdc-scrollable-bg')\n private _scrollableBgColor: string | null = null;\n\n public get canScrollLeft(): boolean {\n if (!this._contentElement) {\n return false;\n }\n\n return Math.floor(this._contentElement.scrollLeft) > 0;\n }\n\n public get canScrollRight(): boolean {\n if (!this._contentElement) {\n return false;\n }\n\n return (\n Math.ceil(this._contentElement.scrollLeft + this._width) <\n this._contentElement.scrollWidth\n );\n }\n\n private _width = 0;\n\n @ViewChild('container', { static: false })\n public containerRef: ElementRef | undefined;\n\n private get _containerElement(): HTMLDivElement | null {\n if (!this.containerRef) {\n return null;\n }\n\n return this.containerRef.nativeElement;\n }\n\n @ViewChild('content', { static: false })\n public contentRef: ElementRef | undefined;\n\n private get _contentElement(): HTMLDivElement | null {\n if (!this.contentRef) {\n return null;\n }\n\n return this.contentRef.nativeElement;\n }\n\n constructor(\n private _cd: ChangeDetectorRef,\n private readonly _hostElementRef: ElementRef\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['scrollUnit'] || changes['clickScrollMultiplier']) {\n if (this._containerElement) {\n this._width = this._containerElement?.clientWidth;\n this._cd.detectChanges();\n }\n }\n }\n\n public ngAfterViewInit(): void {\n this._width = this.contentRef?.nativeElement.width;\n this._cd.detectChanges();\n\n Promise.resolve().then(() => this._getBackgroundColorForButtons());\n }\n\n public async scroll(direction: number): Promise<void> {\n if (!this._contentElement) {\n return;\n }\n\n let pixels = direction * this.scrollUnit * this.clickScrollMultiplier;\n let position = 0;\n\n if (!pixels) {\n if (direction === 1) {\n position = this._contentElement.scrollWidth;\n }\n } else {\n position = this._contentElement.scrollLeft + pixels;\n }\n\n await this._scrollToPosition(this._contentElement, position);\n\n this._cd.detectChanges();\n }\n\n public widthChanged(elementSize: IElementSize): void {\n if (!elementSize || !elementSize.width) {\n return;\n }\n this._width = elementSize.width;\n this._cd.detectChanges();\n }\n\n private async _scrollToPosition(container: HTMLDivElement, position: number) {\n position = Math.round(position);\n\n if (container.scrollLeft === position) {\n return;\n }\n\n let resolveFn: (value: unknown) => void;\n let scrollListener: () => void;\n let timeoutId: any;\n\n const promise = new Promise(resolve => {\n resolveFn = resolve;\n });\n\n const finished = () => {\n container.removeEventListener('scroll', scrollListener);\n resolveFn(null);\n };\n\n scrollListener = () => {\n clearTimeout(timeoutId);\n\n // scroll is finished when either the position has been reached, or 100ms have elapsed since the last scroll event\n if (container.scrollLeft === position) {\n finished();\n } else {\n timeoutId = setTimeout(finished, 100);\n }\n };\n\n container.addEventListener('scroll', scrollListener);\n\n container.scrollTo({\n left: position,\n behavior: 'smooth'\n });\n\n return promise;\n }\n\n private _getBackgroundColorForButtons(): void {\n let backgroundColor = this._getBackGroundColor(\n this._hostElementRef.nativeElement\n );\n\n if (!backgroundColor) {\n backgroundColor = this._getAncestorBackgroundColor();\n }\n\n if (this._scrollableBgColor !== backgroundColor) {\n this._scrollableBgColor = backgroundColor;\n this._cd.detectChanges();\n }\n }\n\n private _getAncestorBackgroundColor(): string | null {\n type parentBgResult = {\n parent: HTMLElement | null;\n backgroundColor: string | null;\n };\n\n let result: parentBgResult = {\n parent: this._hostElementRef.nativeElement.parentElement,\n backgroundColor: null\n };\n\n let count = this.GET_ANCESTOR_BG_SEARCH_DEPTH;\n\n function getParentBackgroundColor(\n currentContext: parentBgResult,\n getBackgroundColor: (element: HTMLElement) => string | null\n ): parentBgResult {\n const result: parentBgResult = { parent: null, backgroundColor: null };\n if (currentContext && currentContext.parent) {\n result.backgroundColor = getBackgroundColor(currentContext.parent);\n\n if (!result.backgroundColor) {\n result.parent = currentContext.parent.parentElement;\n }\n }\n\n return result;\n }\n\n while (count > 0) {\n if (result.backgroundColor) {\n break;\n }\n result = getParentBackgroundColor(result, this._getBackGroundColor);\n\n if (!result.parent) {\n break;\n }\n count = count - 1;\n }\n\n return result.backgroundColor;\n }\n\n private _getBackGroundColor(element: HTMLElement): string | null {\n const computedBackgroundColor =\n getComputedStyle(element)['backgroundColor'];\n\n if (computedBackgroundColor !== 'rgba(0, 0, 0, 0)') {\n return computedBackgroundColor;\n }\n\n return element.style.backgroundColor;\n }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BrandingModule } from '../branding';\nimport { SizeDetectionModule } from '../size-detection';\nimport { ScrollableComponent } from './scrollable.component';\n\n@NgModule({\n imports: [CommonModule, SizeDetectionModule, BrandingModule],\n declarations: [ScrollableComponent],\n exports: [ScrollableComponent, BrandingModule]\n})\nexport class ScrollableModule {\n constructor() {}\n}\n","/* eslint-disable @angular-eslint/no-conflicting-lifecycle */\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n Self,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormGroupDirective,\n NgControl,\n NgForm,\n Validators\n} from '@angular/forms';\nimport { nanoid } from 'nanoid';\nimport {\n BehaviorSubject,\n combineLatest,\n debounceTime,\n distinctUntilChanged,\n map,\n Observable,\n startWith,\n Subject\n} from 'rxjs';\nimport { FontAwesomeIcons } from '../../constants';\nimport { BooleanInput, coerceBooleanPropertyValue } from '../../utilities';\nimport {\n ErrorStateMatcher,\n ICanUpdateErrorState,\n IHasErrorState,\n ImpdcFormFieldControl,\n ImpdcFormRoot,\n IMPDC_FORM_ROOT,\n mixinDisabled,\n mixinErrorState,\n mixinTabIndex\n} from '../form-field';\n\nexport class ImpdcSelectIconChange {\n constructor(public source: SelectIconComponent, public value: any) {}\n}\n\nconst _SelectIconComponentBase = mixinTabIndex(\n mixinDisabled(\n mixinErrorState(\n class {\n public readonly stateChanges = new Subject<void>();\n\n constructor(\n public _defaultErrorStateMatcher: ErrorStateMatcher,\n public _formRoot: ImpdcFormRoot,\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n public ngControl: NgControl | null\n ) {}\n }\n )\n )\n);\n\n/**\n * The `SelectIconComponent` (`<impdc-select-icon`) is a select dropdown with search that shows all standard icons from Bootstrap 5.\n * To use, import `SelectIconModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-select-icon',\n templateUrl: './select-icon.component.html',\n styleUrls: ['./select-icon.component.scss'],\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['disabled', 'tabIndex'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n class: 'impdc-select-icon',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'tabIndex',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[class.form-select]': 'true',\n '[class.is-invalid]': 'errorState',\n '[class.impdc-form-field-control]': 'true',\n '[class.impdc-select-icon--required]': 'required',\n '[class.impdc-select-icon--disabled]': 'disabled',\n '[class.impdc-select-icon--invalid]': 'errorState',\n '[class.impdc-select-icon--empty]': 'empty',\n '(focus)': '_onFocus(); focus()'\n },\n providers: [\n {\n provide: ImpdcFormFieldControl,\n useExisting: SelectIconComponent\n }\n ]\n})\nexport class SelectIconComponent\n extends _SelectIconComponentBase\n implements\n ControlValueAccessor,\n ImpdcFormFieldControl<string | null>,\n ICanUpdateErrorState,\n IHasErrorState,\n DoCheck,\n OnChanges,\n OnDestroy\n{\n @ViewChild('toggleButton', { static: true, read: ElementRef })\n protected _toggleButtonRef!: ElementRef<HTMLButtonElement>;\n\n protected readonly filteredOptions$: Observable<string[]>;\n protected readonly searchControl = new FormControl<string>('');\n protected readonly _uid = `impdc-select-icon-${nanoid()}`;\n protected _dropdownOpen = false;\n\n private readonly _iconOptionsSubject = new BehaviorSubject<readonly string[]>(\n FontAwesomeIcons\n );\n private _previousControl?: AbstractControl | null;\n private _cvaOnChange: (value: any) => void = () => {};\n private _cvaOnTouched = () => {};\n\n /**\n * Set whether or not an input field will appear for searching and\n * filtering icon options.\n * @default true\n */\n @Input()\n public allowSearch: boolean;\n\n public get iconOptions(): string[] {\n return [...this._iconOptionsSubject.value];\n }\n\n /**\n * Set to override the default set of FontAwesome icon options.\n */\n @Input()\n public set iconOptions(iconOptions: string[]) {\n if (iconOptions) {\n this._iconOptionsSubject.next([...iconOptions]);\n }\n }\n\n /**\n * Set whether or not to show the icon names as labels for icon options.\n * @default true\n */\n @Input()\n public showText: boolean;\n\n /**\n * Set whether or not to show the name of the selected icon inside the control.\n * @default true\n */\n @Input()\n public showSelectedText: boolean;\n\n /**\n * The placeholder text that will be displayed when no selection has been made.\n *\n * @default \\- Select -\n */\n @Input()\n public get placeholder(): string {\n return this._placeholder;\n }\n public set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n private _placeholder = '- Select -';\n\n @Input()\n public override errorStateMatcher!: ErrorStateMatcher;\n\n /** Events fire when selection has been changed by the user. */\n @Output()\n public readonly selectionChange: EventEmitter<ImpdcSelectIconChange> = new EventEmitter<ImpdcSelectIconChange>();\n\n /**\n * Events fire when raw value of select changes. Mainly exists to handle\n * two-way binding of `value` input property.\n * @ignore\n */\n @Output()\n public readonly valueChange = new EventEmitter<string | null>();\n\n constructor(\n private readonly _changeDetector: ChangeDetectorRef,\n _defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Inject(IMPDC_FORM_ROOT) _formRoot: ImpdcFormRoot,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n @Self() @Optional() ngControl: NgControl\n ) {\n super(\n _defaultErrorStateMatcher,\n _formRoot,\n _parentForm,\n _parentFormGroup,\n ngControl\n );\n\n this.allowSearch = false;\n this.showText = true;\n this.showSelectedText = true;\n\n const debouncedSearchValues = this.searchControl.valueChanges.pipe(\n startWith(''),\n debounceTime(200),\n distinctUntilChanged()\n );\n this.filteredOptions$ = combineLatest([\n debouncedSearchValues,\n this._iconOptionsSubject.asObservable()\n ]).pipe(\n map(([searchTerm, iconOptions]) => {\n if (!searchTerm) {\n return [...iconOptions];\n }\n\n const searchTermLowerCase = searchTerm.toLowerCase();\n return iconOptions.filter(\n option => option.toLowerCase().indexOf(searchTermLowerCase) > -1\n );\n })\n );\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n\n this.id = this.id;\n }\n\n public get empty(): boolean {\n return !this.value;\n }\n\n /** @ignore */\n public focus(options?: FocusOptions): void {\n this._toggleButtonRef.nativeElement.focus(options);\n }\n\n /* Lifecycle Hooks */\n\n /** @ignore */\n public ngDoCheck(): void {\n const ngControl = this.ngControl;\n\n if (!ngControl) {\n return;\n }\n\n if (this._previousControl !== ngControl.control) {\n if (\n this._previousControl !== undefined &&\n ngControl.disabled !== null &&\n ngControl.disabled !== this.disabled\n ) {\n this.disabled = ngControl?.disabled;\n }\n\n this._previousControl = ngControl.control;\n }\n\n this.updateErrorState();\n }\n\n /** @ignore */\n public ngOnChanges(changes: SimpleChanges): void {\n // Managing disabled state is handled via the `mixinDisabled` mixin/generator, but we still need to signal\n // to the parent form field so it can run change detection when disabled state is changed.\n if (changes['disabled']) {\n this.stateChanges.next();\n }\n }\n\n /** @ignore */\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n /* ControlValueAccessor */\n\n /** @ignore */\n public writeValue(value: string): void {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n\n /** @ignore */\n public registerOnChange(fn: (value: any) => void): void {\n this._cvaOnChange = fn;\n }\n\n /** @ignore */\n public registerOnTouched(fn: () => {}): void {\n this._cvaOnTouched = fn;\n }\n\n /** @ignore */\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetector.markForCheck();\n }\n\n /* ImpdcFormFieldControl */\n\n @Input()\n public get value(): string | null {\n return this._value;\n }\n public set value(value: string | null) {\n const newValue =\n (value && this.iconOptions.find(opt => opt === value)) || null;\n\n if (newValue !== this._value) {\n this._value = newValue;\n this.stateChanges.next();\n }\n }\n private _value: string | null = null;\n\n @Input()\n public get id(): string {\n return this._id;\n }\n public set id(value: string) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n protected _id!: string;\n\n /**\n * Used to set requiredness of control in a template-based manner;\n * not necessary when using the Angular reactive forms API and `required` validator.\n *\n * @default false\n */\n @Input()\n public get required(): boolean {\n return (\n this._required ??\n this.ngControl?.control?.hasValidator(Validators.required) ??\n false\n );\n }\n public set required(value: BooleanInput) {\n this._required = coerceBooleanPropertyValue(value);\n this.stateChanges.next();\n }\n private _required: boolean | undefined;\n\n public get focused(): boolean {\n return this._focused || this._dropdownOpen;\n }\n protected _focused = false;\n\n public readonly controlType: string = 'impdc-select-icon';\n public readonly supportsAffixes: boolean = true;\n\n /* Internals */\n\n protected handleOpenChange(isOpen: boolean): void {\n this._dropdownOpen = isOpen;\n this.searchControl.reset();\n\n if (isOpen) {\n this._onFocus();\n } else {\n this._onBlur();\n }\n\n this.stateChanges.next();\n }\n\n protected selectIcon(iconName: string): void {\n if (iconName !== this.value) {\n this.value = iconName;\n this.valueChange.emit(this.value);\n this._cvaOnChange(this.value);\n this.selectionChange.emit(this._buildChangeEvent(this.value));\n this._changeDetector.markForCheck();\n }\n\n if (this._dropdownOpen) {\n this.focus();\n }\n }\n\n protected _onFocus(): void {\n if (!this.disabled) {\n this._focused = true;\n this.stateChanges.next();\n }\n }\n\n /**\n * Calls the CVA touched callback only if the dropdown is closed.\n */\n protected _onBlur(): void {\n this._focused = false;\n\n if (!this.disabled && !this._dropdownOpen) {\n this._cvaOnTouched();\n this._changeDetector.markForCheck();\n this.stateChanges.next();\n }\n }\n\n private _buildChangeEvent(value: string | null): ImpdcSelectIconChange {\n return new ImpdcSelectIconChange(this, value);\n }\n}\n","<div\n ngbDropdown\n autoClose=\"outside\"\n container=\"body\"\n dropdownClass=\"impartner-hex\"\n (openChange)=\"handleOpenChange($event)\"\n class=\"w-100\">\n <button\n #toggleButton\n class=\"impdc-select-icon--toggle btn border-0 text-start\"\n type=\"button\"\n role=\"combobox\"\n [disabled]=\"disabled\"\n ngbDropdownToggle>\n <ng-container [ngSwitch]=\"empty\">\n <span\n class=\"impdc-select-icon--text impdc-select-icon--placeholder\"\n *ngSwitchCase=\"true\">\n {{ placeholder }}\n </span>\n <div\n class=\"impdc-select-icon--text impdc-select-icon--value-text\"\n *ngSwitchCase=\"false\">\n <i impdc-icon [name]=\"value ?? undefined\"></i>\n <span *ngIf=\"showSelectedText\" class=\"ms-2\">{{ value }}</span>\n </div>\n </ng-container>\n </button>\n <div ngbDropdownMenu class=\"select-icon-dropdown-menu\" tabindex=\"-1\">\n <div *ngIf=\"allowSearch\" class=\"select-icon-search\">\n <impdc-form-field>\n <span impdcTextPrefix><i impdc-icon name=\"search\"></i></span>\n <input\n impdcInput\n [formControl]=\"searchControl\"\n class=\"select-icon-search-input\"\n type=\"search\" />\n </impdc-form-field>\n </div>\n <div class=\"select-icon-grid\">\n <button\n *ngFor=\"let iconName of filteredOptions$ | async\"\n type=\"button\"\n (click)=\"selectIcon(iconName)\"\n class=\"icon-option\"\n [class.selected]=\"value === iconName\"\n [title]=\"iconName\"\n [attr.aria-labelledby]=\"showText ? id + '_' + iconName : null\">\n <div class=\"icon-container\">\n <i impdc-icon [name]=\"iconName\" class=\"fs-2xl\"></i>\n </div>\n <div\n id=\"{{ id }}_{{ iconName }}\"\n class=\"icon-label\"\n [class.sr-only]=\"!showText\">\n {{ iconName }}\n </div>\n </button>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport {\n NgbDropdownModule,\n NgbTypeaheadModule\n} from '@ng-bootstrap/ng-bootstrap';\nimport { ImpdcFormsModule } from '../form-field';\nimport { SelectIconComponent } from './select-icon.component';\n\n@NgModule({\n declarations: [SelectIconComponent],\n imports: [\n CommonModule,\n ImpdcFormsModule,\n NgbTypeaheadModule,\n NgbDropdownModule,\n ReactiveFormsModule\n ],\n exports: [SelectIconComponent]\n})\nexport class SelectIconModule {}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n HostBinding\n} from '@angular/core';\n\n/**\n * The `CardHeadingComponent` (`<impdc-data-card` or `<any impdc-data-card`) is to display data snapshots with support for\n * previous values and differences.\n * To use, import `DataCardModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n selector: 'impdc-data-card, [impdc-data-card]',\n templateUrl: './data-card.component.html',\n styleUrls: ['./data-card.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class DataCardComponent {\n /**\n * The subject text for the Data Card.\n */\n @Input()\n title = '';\n\n /**\n * The current data value. Any number/currency format is supported.\n */\n @Input()\n current = '0';\n\n /**\n * The previous data value. Any number/currency format is supported.\n */\n @Input()\n previous = '';\n\n /**\n * The difference between the current and previous values. A numerical or percentage value is preferred,\n * but any number/currency format is supported.\n */\n @Input()\n difference = '';\n\n /**\n * Text for the link at the bottom of the Data Card. If provided, enables the `linkClicked` event to be emitted.\n */\n @Input()\n linkText = '';\n\n /**\n * When stacking multiple Data Card elements together, it's common to combine their borders.\n */\n @Input()\n sharedBorders = true;\n\n /**\n * Makes the title stand out more than it does by default.\n */\n // @Input()\n titleAttention = false;\n\n /**\n * Determines if the difference value will be wrapped in a `rounded-pill`.\n */\n @Input()\n differencePill = false;\n\n /**\n * Changes the text color for the current value.\n */\n @Input()\n currentColor = '';\n\n /**\n * Changes the color of the icon.\n */\n @Input()\n iconColor = '';\n\n /**\n * Changes the color of the icon's background.\n */\n @Input()\n iconBgColor = '';\n\n /**\n * Emitted when the link text is clicked.\n */\n @Output()\n linkClicked = new EventEmitter<MouseEvent | Event>();\n\n /**\n * Emitted when the corner content is clicked.\n */\n @Output()\n cornerClicked = new EventEmitter<MouseEvent | Event>();\n\n @HostBinding('class') private get classDataCard(): string {\n return 'card impdc-data-card';\n }\n\n @HostBinding('class.impdc-data-card-shared-borders')\n private get classDataCardSharedBorders(): boolean {\n return this.sharedBorders;\n }\n\n get differenceNumber(): number {\n return Number(this.difference.replace(/[^0-9\\.-]+/g, ''));\n }\n\n get differenceNegative(): boolean {\n return this.differenceNumber < 0;\n }\n\n get differencePositive(): boolean {\n return this.differenceNumber > 0;\n }\n\n get differenceDisplay(): string {\n return this.difference.replace('-', '');\n }\n\n handleLinkClick(event: MouseEvent | Event): void {\n this.linkClicked.emit(event);\n }\n\n handleCornerClick(event: MouseEvent | Event): void {\n this.cornerClicked.emit(event);\n }\n}\n","<div class=\"card-body impdc-data-card-body\">\n <div\n #iconContentEl\n class=\"impdc-data-card-icon\"\n [style.color]=\"iconColor ? iconColor : undefined\"\n [style.background-color]=\"iconBgColor ? iconBgColor : undefined\"\n [class.hide]=\"!iconContentEl.children.length\">\n <ng-content select=\"[icon]\"></ng-content>\n </div>\n <div class=\"impdc-data-card-container\">\n <div class=\"impdc-data-card-title\" [class.title-attention]=\"titleAttention\">\n {{ title }}\n </div>\n <div class=\"impdc-data-card-data\">\n <ng-content></ng-content>\n <span\n *ngIf=\"current\"\n class=\"data-current\"\n [class.data-current-enlarged]=\"\n !iconContentEl.children.length && !previous && !difference\n \"\n [style.color]=\"currentColor ? currentColor : undefined\"\n [innerText]=\"current\"></span>\n <span class=\"data-other\">\n <span\n *ngIf=\"previous\"\n class=\"data-previous\"\n [innerText]=\"previous\"></span>\n <span\n *ngIf=\"difference\"\n class=\"data-difference\"\n [class.difference-negative]=\"differenceNegative\"\n [class.difference-positive]=\"differencePositive\"\n [class.badge]=\"differencePill\"\n [class.rounded-pill]=\"differencePill\">\n <span *ngIf=\"differenceNegative\" impdc-icon name=\"arrow-down\"></span>\n <span *ngIf=\"differencePositive\" impdc-icon name=\"arrow-up\"></span>\n <span class=\"difference-display\">{{ differenceDisplay }}</span>\n </span>\n </span>\n </div>\n </div>\n <div\n #cornerContentEl\n class=\"impdc-data-card-corner\"\n [class.hide]=\"!cornerContentEl.children.length\"\n (click)=\"handleCornerClick($event); $event.stopPropagation()\">\n <ng-content select=\"[corner]\"></ng-content>\n </div>\n</div>\n<div\n class=\"card-footer impdc-data-card-footer\"\n [class.hide]=\"!linkText && !footerContentEl.children.length\">\n <div #footerContentEl [class.hide]=\"!footerContentEl.children.length\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n <a\n *ngIf=\"linkText\"\n class=\"footer-link\"\n (click)=\"handleLinkClick($event); $event.stopPropagation()\"\n >{{ linkText }}</a\n >\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DataCardComponent } from './data-card.component';\nimport { IconModule } from '../icon';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [DataCardComponent],\n exports: [IconModule, DataCardComponent]\n})\nexport class DataCardModule {\n constructor() {}\n}\n","import { Injectable } from '@angular/core';\nimport { BackdropComponent, DropdownComponent, ModalComponent } from '../lib';\n\nexport type InteractableComponent = ModalComponent | DropdownComponent;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InteractionService {\n private _backdrop?: BackdropComponent;\n private _interactables: InteractableComponent[] = [];\n private _backdropQueue: number[] = [];\n\n get showBackdrop(): boolean {\n return this._backdropQueue.length > 0;\n }\n\n registerBackdrop(modalBackdrop: BackdropComponent) {\n // WARNING: there should only be 1 backdrop component, preferably loaded in the body\n if (!this._backdrop) {\n this._backdrop = modalBackdrop;\n } else if (this._backdrop !== modalBackdrop) {\n this._backdrop.invalidate();\n this._backdrop = modalBackdrop;\n if (!modalBackdrop.valid) {\n // we invalidated and set backdrop to the same backdrop\n modalBackdrop.validate();\n }\n }\n }\n\n unregisterBackdrop(modalBackdrop: BackdropComponent) {\n if (this._backdrop === modalBackdrop) {\n this._backdrop = undefined;\n }\n }\n\n add(interactable: InteractableComponent): number {\n const interactableId = interactable.interactableId;\n if (interactableId > 0) {\n if (!this._interactables.some(i => i.interactableId === interactableId)) {\n this._interactables.push(interactable);\n }\n return interactableId;\n }\n this._interactables.push(interactable);\n return this._interactables.length;\n }\n\n remove(interactableId: number): void {\n if (interactableId <= 0 || interactableId > this._interactables.length) {\n return;\n }\n this._interactables.splice(interactableId - 1, 1);\n this.dequeueBackdrop(interactableId);\n }\n\n toggle(interactable: InteractableComponent): boolean {\n if (interactable.interactableId <= 0 || interactable.show) {\n // other interactables don't need to be altered/notified\n return false;\n }\n for (const otherInteractable of this._interactables.filter(oi => oi.show)) {\n if (otherInteractable instanceof DropdownComponent) {\n otherInteractable.hide();\n }\n }\n return true;\n }\n\n queueBackdrop(interactableId: number): void {\n if (!this._backdropQueue.includes(interactableId)) {\n this._backdropQueue.push(interactableId);\n }\n }\n\n dequeueBackdrop(interactableId: number): void {\n const interactableIdIndex = this._backdropQueue.indexOf(interactableId);\n if (interactableIdIndex !== -1) {\n this._backdropQueue.splice(interactableIdIndex, 1);\n }\n }\n}\n","/*\n * Public API Surface of design-components\n */\n\n// do not export design or utilities\n\nexport * from './constants';\nexport * from './types';\nexport * from './services';\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.IconComponent","getNestedValue","i1.ErrorStateMatcher","i3","i1","i2.ErrorStateMatcher","i2.ButtonComponent","i3.IconComponent","i4","i5.SelectOptionComponent","i6.SelectComponent","i7.FormFieldComponent","i8.InputDirective","i9.SizeDetectorDirective","i3.ToggleComponent","i4.ToggleInputComponent","i1.UniqueSelectionDispatcher","i2.ToggleComponent","i3.ToggleInputComponent","setNestedValue","i2.BrandedDirective","i3.BrandedDirective","i4.IconComponent","i5.CheckboxComponent","i6.SelectOptionComponent","i7.SelectComponent","i9","i10.SpinnerComponent","i11.BadgeComponent","i12.TableDirective","i13.ColumnHeadingComponent","i14.TableInjectComponentDirective","i1.InteractionService","i2","i3.ButtonComponent","i4.ButtonComponent","i5.IconComponent","i6.FileDropDirective","i7.HumanReadableByteSizePipe","i2.SizeDetectorDirective","debounceTime","i6.FormFieldComponent","i7.InputDirective","i8.PrefixDirective"],"mappings":"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"}
|