@impartner/design-components 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/dropdown/dropdown.component.mjs +4 -2
- package/esm2020/lib/modal/modal.component.mjs +17 -9
- package/esm2020/services/interaction.service.mjs +22 -5
- package/fesm2015/impartner-design-components.mjs +39 -12
- package/fesm2015/impartner-design-components.mjs.map +1 -1
- package/fesm2020/impartner-design-components.mjs +39 -12
- package/fesm2020/impartner-design-components.mjs.map +1 -1
- package/lib/dropdown/dropdown.component.d.ts +4 -3
- package/lib/modal/modal.component.d.ts +2 -2
- package/package.json +1 -1
- package/services/interaction.service.d.ts +3 -0
|
@@ -1 +1 @@
|
|
|
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/table.component.ts","../../../../projects/design-components/src/lib/table/table.component.html","../../../../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/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/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/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/input/input.directive.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/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/controls/select/select-model.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/controls/select/select.module.ts","../../../../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/impdc-forms.module.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/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/badge/badge.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/spinner/spinner.component.ts","../../../../projects/design-components/src/lib/spinner/spinner.component.html","../../../../projects/design-components/src/lib/spinner/spinner.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/pagination/pagination.component.ts","../../../../projects/design-components/src/lib/pagination/pagination.component.html","../../../../projects/design-components/src/lib/pagination/pagination.module.ts","../../../../projects/design-components/src/lib/size-detection/directive/size-detector.directive.ts","../../../../projects/design-components/src/lib/scrollable/scrollable.component.ts","../../../../projects/design-components/src/lib/scrollable/scrollable.component.html","../../../../projects/design-components/src/lib/size-detection/size-detection.module.ts","../../../../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 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 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 }\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 {\n Component,\n HostBinding,\n Input,\n ViewEncapsulation\n} from '@angular/core';\n\n/**\n * The `TableComponent` (`<table impdcTable`) is a simple table wrapper that requires less code than the native table.\n * To use, import `TableModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'table[impdcTable]',\n templateUrl: './table.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class TableComponent {\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","<thead>\n <tr>\n <ng-content select=\"th\"></ng-content>\n </tr>\n</thead>\n<tbody>\n <ng-content select=\"tr\"></ng-content>\n</tbody>\n","import { NgModule } from '@angular/core';\nimport { ButtonModule } from '../button';\nimport { TableComponent } from './table.component';\n\n@NgModule({\n imports: [ButtonModule],\n declarations: [TableComponent],\n exports: [ButtonModule, TableComponent]\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 this._show = show;\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 this._interactableId = this._interactionService.add(this);\n }\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 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._show = false;\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._show = false;\n this.deny.emit(event);\n }\n\n protected handleAccept(event: MouseEvent | Event): void {\n console.log('this.acceptEl', this.acceptEl);\n if (!!this.acceptEl?.nativeElement?.firstChild?.disabled) {\n return;\n }\n this._show = false;\n this.accept.emit(event);\n }\n\n /**\n * Opens/shows the modal programmatically.\n */\n open(): void {\n this._show = true;\n }\n\n /**\n * Closes/hides the modal programmatically.\n */\n close(): void {\n this._show = false;\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 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 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 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 constructor(private _interactionService: InteractionService) {\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.\n */\n @Input() headingText = '';\n\n /**\n * Event emitted when the Alert is dismissed.\n */\n @Output()\n dismiss = new EventEmitter<void>();\n\n get alertColor(): string {\n return 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 }\n\n closeAlert(): void {\n this.show = false;\n this.dismiss.emit();\n }\n}\n","<div *ngIf=\"show\" class=\"alert alert-dismissible\" [ngClass]=\"alertColor\">\n <div class=\"alert-heading\">\n <span class=\"alert-heading-left\">\n <ng-content select=\"[heading]\"></ng-content>\n <ng-container *ngIf=\"headingText\">\n <span class=\"alert-heading-text\">{{ headingText }}</span>\n </ng-container>\n </span>\n <div\n (click)=\"closeAlert()\"\n class=\"close-icon\"\n data-bs-dismiss=\"alert\"\n aria-label=\"Close\">\n <span class=\"fas fa-times\"></span>\n </div>\n </div>\n <div class=\"alert-body\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AlertComponent } from './alert.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AlertComponent],\n exports: [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 { 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 { 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","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","/* 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 { 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 { 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 *ngIf=\"selected\" class=\"selected-check ms-auto fas fa-check\"></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 { 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","/* 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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { SelectOptionComponent } from './option/select-option.component';\nimport { SelectComponent } from './select.component';\n\n@NgModule({\n declarations: [SelectOptionComponent, SelectComponent],\n imports: [CommonModule, NgbDropdownModule],\n exports: [SelectOptionComponent, SelectComponent, NgbDropdownModule]\n})\nexport class SelectModule {}\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","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 {\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 class=\"fas fa-cloud-upload-alt 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 { ButtonModule } from '../button';\nimport { CommonModule } from '@angular/common';\nimport { HumanReadableByteSizePipe } from './pipes';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ButtonModule],\n declarations: [\n FileDropDirective,\n FileUploadComponent,\n HumanReadableByteSizePipe\n ],\n exports: [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 class=\"fas fa-user\"></span>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AvatarComponent } from './avatar.component';\n\n@NgModule({\n declarations: [AvatarComponent],\n imports: [CommonModule],\n exports: [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","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\" class=\"fas fa-{{ icon === 'dot' ? 'circle' : icon }}\"></span>\n{{ text }}\n<a *ngIf=\"dismissable\" (click)=\"handleDismiss($event)\">\n <span class=\"fas fa-times\"></span>\n</a>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BadgeComponent } from './badge.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BadgeComponent],\n exports: [BadgeComponent]\n})\nexport class BadgeModule {\n constructor() {}\n}\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 `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","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 { 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 { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { sanitize } from '../../utilities';\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 * Emitted when the page number is changed, specifying the target page number.\n */\n @Output() public readonly goToPage = 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 if (this.total < 1 || this.page < 1 || this.perPage < 1) {\n return 0;\n }\n\n if (this.page === 1) {\n return 1;\n }\n\n if (this.page > Math.ceil(this.total / this.perPage)) {\n return this.total;\n }\n\n return (this.page - 1) * this.perPage + 1;\n }\n\n public get lastPageResult(): number {\n if (this.total <= 0 || this.page < 1 || this.perPage < 1) {\n return 0;\n }\n\n if (this.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 * this.page) {\n return this.total;\n } else {\n return this.perPage * this.page;\n }\n }\n\n public goToPreviousPage(): void {\n if (this.page <= 1) {\n return;\n }\n\n const previousPage = this.page - 1;\n this.page = previousPage;\n\n this.goToPage.emit(previousPage);\n }\n\n public goToNextPage(): void {\n if (this.page >= this.totalPages) {\n return;\n }\n\n const nextPage = this.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 if (!page) {\n return;\n }\n\n let allowedPageNumber = Number(page);\n\n if (allowedPageNumber < 0) {\n allowedPageNumber = 1;\n }\n\n if (allowedPageNumber > this.totalPages) {\n allowedPageNumber = this.totalPages;\n }\n\n this.page = allowedPageNumber;\n\n this.goToPage.emit(allowedPageNumber);\n }\n}\n","<div class=\"pagination-container\">\n <div class=\"mobile-pagination\">\n <button\n impdcButton\n theme=\"secondary\"\n [disabled]=\"page <= 1\"\n (click)=\"goToPreviousPage()\">\n <i class=\"fas fa-chevron-left\"></i>\n </button>\n <button\n impdcButton\n theme=\"secondary\"\n [disabled]=\"page === totalPages\"\n (click)=\"goToNextPage()\">\n <i class=\"fas fa-chevron-right\"></i>\n </button>\n </div>\n\n <div class=\"desktop-pagination\">\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 class=\"fas fa-chevron-left first\"></i>\n <i class=\"fas fa-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 class=\"fas fa-chevron-left\"></i>\n </button>\n <div class=\"page-change\">\n <input\n impdcInput\n maxlength=\"4\"\n [value]=\"page\"\n (blur)=\"goToExactPageFromEvent($event)\" />\n <span class=\"total-pages\"> / {{ totalPages }} </span>\n </div>\n <button\n impdcButton\n theme=\"secondary\"\n aria-label=\"Next\"\n (click)=\"goToNextPage()\"\n [disabled]=\"page === totalPages\">\n <i class=\"fas fa-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 class=\"fas fa-chevron-right\"></i>\n <i class=\"fas fa-chevron-right last\"></i>\n <!-- {{ totalPages }} -->\n </button>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from '../button';\nimport { ImpdcFormsModule } from '../form-field';\nimport { PaginationComponent } from './pagination.component';\n\n@NgModule({\n imports: [CommonModule, ButtonModule, ImpdcFormsModule],\n declarations: [PaginationComponent],\n exports: [ButtonModule, ImpdcFormsModule, PaginationComponent]\n})\nexport class PaginationModule {\n constructor() {}\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 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 class=\"fas fa-chevron-left 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 class=\"fas fa-chevron-right default\"></i>\n </a>\n</div>\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 { 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 class=\"fas fa-{{ value }}\"></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 class=\"fas fa-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 class=\"fs-2xl fas fa-{{ iconName }}\"></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\" class=\"fas fa-arrow-down\"></span>\n <span *ngIf=\"differencePositive\" class=\"fas fa-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';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [DataCardComponent],\n exports: [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\n get showBackdrop(): boolean {\n return this._interactables.some(\n i => i instanceof ModalComponent && i.shown && i.backdrop\n );\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 if (interactable.interactableId > 0) {\n return interactable.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 }\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","/*\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","i1.InteractionService","i2","i3.ButtonComponent","i4.IconComponent","i1.ErrorStateMatcher","i3.ToggleComponent","i4.ToggleInputComponent","i1","i2.ErrorStateMatcher","i1.UniqueSelectionDispatcher","i2.ToggleComponent","i3.ToggleInputComponent","i3","i4.ButtonComponent","i5.FileDropDirective","i6.HumanReadableByteSizePipe","i1.ButtonComponent","i2.InputDirective","i2.SizeDetectorDirective","i5.FormFieldComponent","i6.InputDirective","i7.PrefixDirective"],"mappings":"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"}
|
|
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/table.component.ts","../../../../projects/design-components/src/lib/table/table.component.html","../../../../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/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/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/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/input/input.directive.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/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/controls/select/select-model.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/controls/select/select.module.ts","../../../../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/impdc-forms.module.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/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/badge/badge.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/spinner/spinner.component.ts","../../../../projects/design-components/src/lib/spinner/spinner.component.html","../../../../projects/design-components/src/lib/spinner/spinner.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/pagination/pagination.component.ts","../../../../projects/design-components/src/lib/pagination/pagination.component.html","../../../../projects/design-components/src/lib/pagination/pagination.module.ts","../../../../projects/design-components/src/lib/size-detection/directive/size-detector.directive.ts","../../../../projects/design-components/src/lib/scrollable/scrollable.component.ts","../../../../projects/design-components/src/lib/scrollable/scrollable.component.html","../../../../projects/design-components/src/lib/size-detection/size-detection.module.ts","../../../../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 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 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 }\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 {\n Component,\n HostBinding,\n Input,\n ViewEncapsulation\n} from '@angular/core';\n\n/**\n * The `TableComponent` (`<table impdcTable`) is a simple table wrapper that requires less code than the native table.\n * To use, import `TableModule` or another module that imports and exports that module from `@impartner/design-components`.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'table[impdcTable]',\n templateUrl: './table.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class TableComponent {\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","<thead>\n <tr>\n <ng-content select=\"th\"></ng-content>\n </tr>\n</thead>\n<tbody>\n <ng-content select=\"tr\"></ng-content>\n</tbody>\n","import { NgModule } from '@angular/core';\nimport { ButtonModule } from '../button';\nimport { TableComponent } from './table.component';\n\n@NgModule({\n imports: [ButtonModule],\n declarations: [TableComponent],\n exports: [ButtonModule, TableComponent]\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.\n */\n @Input() headingText = '';\n\n /**\n * Event emitted when the Alert is dismissed.\n */\n @Output()\n dismiss = new EventEmitter<void>();\n\n get alertColor(): string {\n return 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 }\n\n closeAlert(): void {\n this.show = false;\n this.dismiss.emit();\n }\n}\n","<div *ngIf=\"show\" class=\"alert alert-dismissible\" [ngClass]=\"alertColor\">\n <div class=\"alert-heading\">\n <span class=\"alert-heading-left\">\n <ng-content select=\"[heading]\"></ng-content>\n <ng-container *ngIf=\"headingText\">\n <span class=\"alert-heading-text\">{{ headingText }}</span>\n </ng-container>\n </span>\n <div\n (click)=\"closeAlert()\"\n class=\"close-icon\"\n data-bs-dismiss=\"alert\"\n aria-label=\"Close\">\n <span class=\"fas fa-times\"></span>\n </div>\n </div>\n <div class=\"alert-body\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AlertComponent } from './alert.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AlertComponent],\n exports: [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 { 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 { 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","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","/* 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 { 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 { 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 *ngIf=\"selected\" class=\"selected-check ms-auto fas fa-check\"></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 { 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","/* 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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { SelectOptionComponent } from './option/select-option.component';\nimport { SelectComponent } from './select.component';\n\n@NgModule({\n declarations: [SelectOptionComponent, SelectComponent],\n imports: [CommonModule, NgbDropdownModule],\n exports: [SelectOptionComponent, SelectComponent, NgbDropdownModule]\n})\nexport class SelectModule {}\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","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 {\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 class=\"fas fa-cloud-upload-alt 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 { ButtonModule } from '../button';\nimport { CommonModule } from '@angular/common';\nimport { HumanReadableByteSizePipe } from './pipes';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ButtonModule],\n declarations: [\n FileDropDirective,\n FileUploadComponent,\n HumanReadableByteSizePipe\n ],\n exports: [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 class=\"fas fa-user\"></span>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AvatarComponent } from './avatar.component';\n\n@NgModule({\n declarations: [AvatarComponent],\n imports: [CommonModule],\n exports: [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","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\" class=\"fas fa-{{ icon === 'dot' ? 'circle' : icon }}\"></span>\n{{ text }}\n<a *ngIf=\"dismissable\" (click)=\"handleDismiss($event)\">\n <span class=\"fas fa-times\"></span>\n</a>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BadgeComponent } from './badge.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BadgeComponent],\n exports: [BadgeComponent]\n})\nexport class BadgeModule {\n constructor() {}\n}\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 `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","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 { 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 { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { sanitize } from '../../utilities';\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 * Emitted when the page number is changed, specifying the target page number.\n */\n @Output() public readonly goToPage = 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 if (this.total < 1 || this.page < 1 || this.perPage < 1) {\n return 0;\n }\n\n if (this.page === 1) {\n return 1;\n }\n\n if (this.page > Math.ceil(this.total / this.perPage)) {\n return this.total;\n }\n\n return (this.page - 1) * this.perPage + 1;\n }\n\n public get lastPageResult(): number {\n if (this.total <= 0 || this.page < 1 || this.perPage < 1) {\n return 0;\n }\n\n if (this.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 * this.page) {\n return this.total;\n } else {\n return this.perPage * this.page;\n }\n }\n\n public goToPreviousPage(): void {\n if (this.page <= 1) {\n return;\n }\n\n const previousPage = this.page - 1;\n this.page = previousPage;\n\n this.goToPage.emit(previousPage);\n }\n\n public goToNextPage(): void {\n if (this.page >= this.totalPages) {\n return;\n }\n\n const nextPage = this.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 if (!page) {\n return;\n }\n\n let allowedPageNumber = Number(page);\n\n if (allowedPageNumber < 0) {\n allowedPageNumber = 1;\n }\n\n if (allowedPageNumber > this.totalPages) {\n allowedPageNumber = this.totalPages;\n }\n\n this.page = allowedPageNumber;\n\n this.goToPage.emit(allowedPageNumber);\n }\n}\n","<div class=\"pagination-container\">\n <div class=\"mobile-pagination\">\n <button\n impdcButton\n theme=\"secondary\"\n [disabled]=\"page <= 1\"\n (click)=\"goToPreviousPage()\">\n <i class=\"fas fa-chevron-left\"></i>\n </button>\n <button\n impdcButton\n theme=\"secondary\"\n [disabled]=\"page === totalPages\"\n (click)=\"goToNextPage()\">\n <i class=\"fas fa-chevron-right\"></i>\n </button>\n </div>\n\n <div class=\"desktop-pagination\">\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 class=\"fas fa-chevron-left first\"></i>\n <i class=\"fas fa-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 class=\"fas fa-chevron-left\"></i>\n </button>\n <div class=\"page-change\">\n <input\n impdcInput\n maxlength=\"4\"\n [value]=\"page\"\n (blur)=\"goToExactPageFromEvent($event)\" />\n <span class=\"total-pages\"> / {{ totalPages }} </span>\n </div>\n <button\n impdcButton\n theme=\"secondary\"\n aria-label=\"Next\"\n (click)=\"goToNextPage()\"\n [disabled]=\"page === totalPages\">\n <i class=\"fas fa-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 class=\"fas fa-chevron-right\"></i>\n <i class=\"fas fa-chevron-right last\"></i>\n <!-- {{ totalPages }} -->\n </button>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from '../button';\nimport { ImpdcFormsModule } from '../form-field';\nimport { PaginationComponent } from './pagination.component';\n\n@NgModule({\n imports: [CommonModule, ButtonModule, ImpdcFormsModule],\n declarations: [PaginationComponent],\n exports: [ButtonModule, ImpdcFormsModule, PaginationComponent]\n})\nexport class PaginationModule {\n constructor() {}\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 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 class=\"fas fa-chevron-left 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 class=\"fas fa-chevron-right default\"></i>\n </a>\n</div>\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 { 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 class=\"fas fa-{{ value }}\"></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 class=\"fas fa-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 class=\"fs-2xl fas fa-{{ iconName }}\"></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\" class=\"fas fa-arrow-down\"></span>\n <span *ngIf=\"differencePositive\" class=\"fas fa-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';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [DataCardComponent],\n exports: [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","i1.InteractionService","i2","i3.ButtonComponent","i4.IconComponent","i1.ErrorStateMatcher","i3.ToggleComponent","i4.ToggleInputComponent","i1","i2.ErrorStateMatcher","i1.UniqueSelectionDispatcher","i2.ToggleComponent","i3.ToggleInputComponent","i3","i4.ButtonComponent","i5.FileDropDirective","i6.HumanReadableByteSizePipe","i1.ButtonComponent","i2.InputDirective","i2.SizeDetectorDirective","i5.FormFieldComponent","i6.InputDirective","i7.PrefixDirective"],"mappings":"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"}
|