@alauda/ui 6.5.2-beta.7 → 6.5.2-beta.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"alauda-ui.mjs","sources":["../../src/accordion/accordion.component.ts","../../src/accordion/accordion.component.html","../../src/types.ts","../../src/button/button.types.ts","../../src/utils/async.ts","../../src/utils/bem.ts","../../src/utils/coercion.ts","../../src/utils/fn.ts","../../src/utils/observe-dom.ts","../../src/utils/operators.ts","../../src/utils/scroll-into-view.ts","../../src/utils/watch-content-exist.ts","../../src/icon/icons.ts","../../src/icon/utils.ts","../../src/icon/icon-register.service.ts","../../src/theme/utils.ts","../../src/theme/theme.service.ts","../../src/theme/theme.pipe.ts","../../src/icon/icon.component.ts","../../src/icon/icon.component.html","../../src/button/button.component.ts","../../src/button/button.component.html","../../src/theme/theme.module.ts","../../src/icon/icon.module.ts","../../src/button/button-group/button-group.component.ts","../../src/button/button-group/button-group.component.html","../../src/button/button.module.ts","../../src/accordion/accordion-item/accordion-item.component.ts","../../src/accordion/accordion-item/accordion-item.component.html","../../src/accordion/accordion.module.ts","../../src/anchor/anchor.directive.ts","../../src/anchor/utils.ts","../../src/anchor/anchor.component.ts","../../src/anchor/anchor-tree.component.html","../../src/anchor/anchor.component.html","../../src/anchor/anchor.module.ts","../../src/autocomplete/autocomplete-placeholder.component.ts","../../src/autocomplete/suggestion/suggestion.component.ts","../../src/autocomplete/suggestion/suggestion.component.html","../../src/autocomplete/autocomplete.component.ts","../../src/autocomplete/autocomplete.component.html","../../src/tooltip/tooltip.types.ts","../../src/tooltip/tooltip.component.ts","../../src/tooltip/tooltip.component.html","../../src/tooltip/utils/index.ts","../../src/tooltip/base-tooltip.ts","../../src/tooltip/tooltip.directive.ts","../../src/tooltip/tooltip-active.directive.ts","../../src/tooltip/tooltip-intl.ts","../../src/tooltip/tooltip-copy.directive.ts","../../src/tooltip/tooltip.module.ts","../../src/autocomplete/autocomplete.directive.ts","../../src/autocomplete/helper-directives.ts","../../src/autocomplete/suggestion-group/suggestion-group.component.ts","../../src/autocomplete/suggestion-group/suggestion-group.component.html","../../src/autocomplete/autocomplete.module.ts","../../src/back-top/back-top.component.ts","../../src/back-top/back-top.component.html","../../src/back-top/back-top.module.ts","../../src/breadcrumb/breadcrumb-item.component.ts","../../src/breadcrumb/breadcrumb-item.component.html","../../src/breadcrumb/breadcrumb.component.ts","../../src/breadcrumb/breadcrumb.component.html","../../src/breadcrumb/breadcrumb.module.ts","../../src/card/card.component.ts","../../src/card/card.component.html","../../src/card/helper-directives.ts","../../src/card/section.component.ts","../../src/card/section.component.html","../../src/card/card.module.ts","../../src/form/common-form.ts","../../src/form/form.types.ts","../../src/form/form.directive.ts","../../src/form/helper-directives.ts","../../src/form/form-item/form-item.component.ts","../../src/form/form-item/form-item.component.html","../../src/form/form.module.ts","../../src/checkbox/checkbox-group/checkbox-group.component.ts","../../src/checkbox/checkbox-group/checkbox-group.component.html","../../src/checkbox/checkbox.component.ts","../../src/checkbox/checkbox.component.html","../../src/checkbox/checkbox.module.ts","../../src/color-picker/color-picker.component.ts","../../src/color-picker/color-picker.component.html","../../src/color-picker/color-picker.module.ts","../../src/date-picker/date-picker.type.ts","../../src/date-picker/calendar/constant.ts","../../src/date-picker/calendar/util.ts","../../src/i18n/language/en.ts","../../src/i18n/i18n.type.ts","../../src/i18n/i18n.service.ts","../../src/i18n/i18n.pipe.ts","../../src/date-picker/calendar/header/component.ts","../../src/date-picker/calendar/header/template.html","../../src/date-picker/calendar/panel/picker-panel.ts","../../src/date-picker/calendar/panel/picker-panel.template.html","../../src/date-picker/calendar/footer/component.ts","../../src/date-picker/calendar/footer/template.html","../../src/time-picker/time-picker.type.ts","../../src/input/helper-directives.ts","../../src/input/input.component.ts","../../src/input/input-group/input-group.component.ts","../../src/input/input-group/input-group.component.html","../../src/time-picker/constant.ts","../../src/time-picker/panel/panel.component.ts","../../src/time-picker/panel/panel.template.html","../../src/time-picker/component.ts","../../src/time-picker/template.html","../../src/date-picker/calendar/date-picker-panel/component.ts","../../src/date-picker/calendar/date-picker-panel/template.html","../../src/date-picker/calendar/range-picker-panel/component.ts","../../src/date-picker/calendar/range-picker-panel/template.html","../../src/i18n/i18n.module.ts","../../src/i18n/language/zh.ts","../../src/input/utils/index.ts","../../src/input/autosize.directive.ts","../../src/shared/click-outside.directive.ts","../../src/shared/shared.module.ts","../../src/tag/tag.types.ts","../../src/tag/check-tag/check-tag.component.ts","../../src/tag/check-tag/check-tag.component.html","../../src/tag/tag.component.ts","../../src/tag/tag.component.html","../../src/tag/tag.module.ts","../../src/input/number-input/number-input.component.ts","../../src/input/number-input/number-input.component.html","../../src/input/search/search.component.ts","../../src/input/search/search.component.html","../../src/input/tags-input/with-max-row-count.ts","../../src/input/tags-input/tags-input.component.ts","../../src/input/tags-input/tags-input.component.html","../../src/input/input.module.ts","../../src/time-picker/time-picker.module.ts","../../src/date-picker/trigger/trigger.component.ts","../../src/date-picker/trigger/trigger.template.html","../../src/date-picker/date-picker/date-picker.component.ts","../../src/date-picker/date-picker/date-picker.template.html","../../src/date-picker/range-picker/range-picker.component.ts","../../src/date-picker/range-picker/range-picker.template.html","../../src/date-picker/date-picker.module.ts","../../src/dialog/dialog.types.ts","../../src/dialog/dialog-config.ts","../../src/dialog/confirm-dialog/confirm-dialog-config.ts","../../src/core/animation/animation-consts.ts","../../src/utils/animations.ts","../../src/dialog/dialog-animations.ts","../../src/dialog/utils/errors.ts","../../src/dialog/utils/index.ts","../../src/dialog/dialog.component.ts","../../src/dialog/dialog.component.html","../../src/dialog/dialog-ref.ts","../../src/dialog/confirm-dialog/confirm-dialog.component.ts","../../src/dialog/confirm-dialog/confirm-dialog.component.html","../../src/dialog/dialog.service.ts","../../src/dialog/dialog-content/dialog-close.directive.ts","../../src/dialog/dialog-content/dialog-content.component.ts","../../src/dialog/dialog-content/dialog-content.component.html","../../src/dialog/dialog-content/dialog-footer.component.ts","../../src/dialog/dialog-content/dialog-footer.component.html","../../src/dialog/dialog-content/dialog-header.component.ts","../../src/dialog/dialog-content/dialog-header.component.html","../../src/dialog/dialog.module.ts","../../src/drawer/component/drawer-ref.ts","../../src/drawer/component/helper-directives.ts","../../src/drawer/component/drawer.component.ts","../../src/drawer/component/drawer.component.html","../../src/drawer/drawer.service.ts","../../src/drawer/drawer.module.ts","../../src/dropdown/dropdown-active.directive.ts","../../src/dropdown/dropdown.directive.ts","../../src/dropdown/dropdown.types.ts","../../src/dropdown/menu-item/menu-item.component.ts","../../src/dropdown/menu-item/menu-item.component.html","../../src/dropdown/menu/menu-content.directive.ts","../../src/dropdown/menu/menu.component.ts","../../src/dropdown/menu/menu.component.html","../../src/dropdown/dropdown-button/dropdown-button.component.ts","../../src/dropdown/dropdown-button/dropdown-button.component.html","../../src/dropdown/helper-directives.ts","../../src/dropdown/menu-group/menu-group.component.ts","../../src/dropdown/menu-group/menu-group.component.html","../../src/dropdown/submenu/submenu.component.ts","../../src/dropdown/submenu/submenu.component.html","../../src/dropdown/dropdown.module.ts","../../src/inline-alert/helper-directives.ts","../../src/inline-alert/inline-alert.types.ts","../../src/inline-alert/inline-alert.component.ts","../../src/inline-alert/inline-alert.component.html","../../src/inline-alert/inline-alert.module.ts","../../src/message/message.config.ts","../../src/message/message-wrapper.component.ts","../../src/message/message-animations.ts","../../src/message/message.component.ts","../../src/message/message.component.html","../../src/message/base-message.ts","../../src/message/message.service.ts","../../src/message/message.module.ts","../../src/notification/notification.component.ts","../../src/notification/notification.component.html","../../src/notification/notification.config.ts","../../src/notification/notification-wrapper.component.ts","../../src/notification/notification.service.ts","../../src/notification/notification.module.ts","../../src/paginator/paginator-intl.ts","../../src/select/helper-directives.ts","../../src/select/option/option.component.ts","../../src/select/option/option.component.html","../../src/select/base-select.ts","../../src/select/select.component.ts","../../src/select/select.component.html","../../src/paginator/paginator.component.ts","../../src/paginator/paginator.component.html","../../src/select/select.types.ts","../../src/select/multi-select/multi-select.component.ts","../../src/select/multi-select/multi-select.component.html","../../src/select/option-group/option-group.component.ts","../../src/select/option-group/option-group.component.html","../../src/select/option-placeholder.component.ts","../../src/select/validators.ts","../../src/select/select.module.ts","../../src/paginator/paginator.module.ts","../../src/radio/radio.types.ts","../../src/radio/radio-group/radio-group.component.ts","../../src/radio/radio-group/radio-group.component.html","../../src/radio/base-radio.ts","../../src/radio/radio.component.ts","../../src/radio/radio.component.html","../../src/radio/radio-button/radio-button.component.ts","../../src/radio/radio-button/radio-button.component.html","../../src/radio/radio.module.ts","../../src/table/table-placeholder.directive.ts","../../src/table/table.component.ts","../../src/table/table-cell-def.directive.ts","../../src/table/table-cell.component.ts","../../src/table/table-cell.directive.ts","../../src/table/table-column-def.directive.ts","../../src/table/table-header-cell-def.directive.ts","../../src/table/table-header-cell.directive.ts","../../src/table/table-header-row-def.directive.ts","../../src/table/table-header-row.component.ts","../../src/table/table-row-def.directive.ts","../../src/table/table-row.component.ts","../../src/table/table-scroll.directive.ts","../../src/table/table.module.ts","../../src/scrolling/fixed-size-table-virtual-scroll-strategy.ts","../../src/scrolling/fixed-size-table-virtual-scroll.directive.ts","../../src/scrolling/fixed-size-virtual-scroll.directive.ts","../../src/scrolling/virtual-for-of.directive.ts","../../src/scrolling/virtual-scroll-viewport.component.ts","../../src/scrolling/virtual-scroll-viewport.component.html","../../src/scrolling/scrolling.module.ts","../../src/sort/sort-errors.ts","../../src/sort/sort.directive.ts","../../src/sort/sort-header.component.ts","../../src/sort/sort-header.component.html","../../src/sort/sort.module.ts","../../src/status-bar/status-bar.types.ts","../../src/status-bar/status-bar.component.ts","../../src/status-bar/status-bar.component.html","../../src/status-bar/status-bar.module.ts","../../src/steps/types.ts","../../src/steps/steps.component.ts","../../src/steps/steps.component.html","../../src/steps/steps.module.ts","../../src/switch/switch.component.ts","../../src/switch/switch.component.html","../../src/switch/switch.module.ts","../../src/table-of-contents/toc-container.directive.ts","../../src/table-of-contents/toc-content.directive.ts","../../src/table-of-contents/toc-link.directive.ts","../../src/table-of-contents/table-of-contents.module.ts","../../src/tabs/tab-body.component.ts","../../src/tabs/tab-body.component.html","../../src/tabs/tab-context.service.ts","../../src/tabs/tab.component.ts","../../src/tabs/tab.component.html","../../src/tabs/tabs.types.ts","../../src/tabs/tab-header-active-indicator.component.ts","../../src/tabs/tab-header-active-indicator.component.html","../../src/tabs/tab-header.component.ts","../../src/tabs/tab-header.component.html","../../src/tabs/tab-group.component.ts","../../src/tabs/tab-group.component.html","../../src/tabs/tabs.module.ts","../../src/tree-select/tree-node-placeholder.component.ts","../../src/tree-select/tree-select.component.ts","../../src/tree-select/tree-select.component.html","../../src/tree-select/tree-node.component.html","../../src/tree-select/tree-select.module.ts","../../src/alauda-ui.ts"],"sourcesContent":["import { CdkAccordion } from '@angular/cdk/accordion';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n Optional,\n SkipSelf,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class AccordionComponent extends CdkAccordion {\n @Input()\n background = true;\n\n @HostBinding('attr.accordion-depth')\n depth: number;\n\n constructor(\n @SkipSelf()\n @Optional()\n public parent: AccordionComponent,\n ) {\n super();\n this.depth = parent ? parent.depth + 1 : 0;\n }\n}\n","<div\n class=\"aui-accordion\"\n [class.hasBg]=\"background\"\n>\n <ng-content></ng-content>\n</div>\n","export type ValueOf<T> = T[keyof T];\n\nexport const ComponentSize = {\n Large: 'large',\n Medium: 'medium',\n Small: 'small',\n Mini: 'mini',\n /**\n * represents default internally, @link https://github.com/angular/vscode-ng-language-service/issues/1147\n */\n Empty: '',\n} as const;\n\nexport type ComponentSize = ValueOf<typeof ComponentSize>;\n","import { ValueOf } from '../types';\n\nexport const ButtonType = {\n Default: 'default',\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Danger: 'danger',\n Text: 'text',\n Inline: 'inline',\n /**\n * represents default internally, @link https://github.com/angular/vscode-ng-language-service/issues/1147\n */\n Empty: '',\n /**\n * @deprecated use `ButtonType.Danger` instead\n */\n Error: 'danger',\n /**\n * @deprecated use `ButtonType.Default` instead\n */\n Info: 'default',\n} as const;\n\nexport type ButtonType = ValueOf<typeof ButtonType>;\n","export function sleep(ms = 0) {\n return new Promise(resolve => {\n setTimeout(resolve, ms);\n });\n}\n","// Experimental bem classname helper\nexport class Bem {\n constructor(private readonly namespace: string) {}\n\n block(...modifiers: Array<{ [name: string]: boolean } | string>) {\n const activatedModifiers = getActivatedModifiers(modifiers);\n if (activatedModifiers.length > 0) {\n return `${this.namespace} ${activatedModifiers\n .map(modifier => this.namespace + '--' + modifier)\n .join(' ')}`;\n }\n return this.namespace;\n }\n\n modifier(name: string) {\n return `${this.namespace}--${name}`;\n }\n\n element(\n name: string,\n ...modifiers: Array<{ [name: string]: boolean | '' } | string>\n ) {\n const activatedModifiers = getActivatedModifiers(modifiers);\n\n if (activatedModifiers.length > 0) {\n return `${this.namespace}__${name} ${activatedModifiers\n .map(modifier => this.namespace + '__' + name + '--' + modifier)\n .join(' ')}`;\n }\n\n return `${this.namespace}__${name}`;\n }\n}\n\nfunction getActivatedModifiers(\n modifiers: Array<{ [name: string]: boolean | '' } | string>,\n) {\n return modifiers.reduce<string[]>((acc, modifier) => {\n if (!modifier) {\n return acc;\n }\n return acc.concat(\n typeof modifier === 'string'\n ? [modifier]\n : getActivatedModifiersFromObject(modifier),\n );\n }, []);\n}\n\nfunction getActivatedModifiersFromObject(modifiers: {\n [name: string]: boolean | '';\n}) {\n return Object.keys(modifiers).filter(key => modifiers[key]);\n}\n\nexport function buildBem(namespace: string) {\n return new Bem(namespace);\n}\n","export function coerceString(val: any): string {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n return val == null ? '' : val?.toString() ?? '';\n}\n\nexport function coerceAttrBoolean(val: unknown): boolean {\n return val === '' ? true : !!val;\n}\n\nexport function coerceNumber(val: unknown, fallbackValue = 0): number {\n return _isNumberValue(val) ? Number(val) : fallbackValue;\n}\n\nexport function _isNumberValue(value: unknown): boolean {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value as string)) && !isNaN(Number(value));\n}\n","import { TemplateRef } from '@angular/core';\n\nexport function isUndefined(val: unknown): boolean {\n return val === undefined;\n}\n\nexport const last = <T>(values: T[]) => values?.[values.length - 1];\n\nexport const isTemplateRef = (label: any): label is TemplateRef<unknown> =>\n label instanceof TemplateRef;\n\nexport const isString = (label: any): label is string =>\n typeof label === 'string';\n\nexport const handlePixel = (value: number | string) =>\n Number.isNaN(+value) ? (value as string) : value + 'px';\n\nexport function getElementOffset(elem: HTMLElement): {\n top: number;\n left: number;\n} {\n if (!elem.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n\n const rect = elem.getBoundingClientRect();\n return {\n top: rect.top,\n left: rect.left,\n };\n}\n","import { Observable } from 'rxjs';\n\nexport const observeResizeOn = <T extends Element>(\n target: T,\n options?: ResizeObserverOptions,\n) =>\n new Observable<T>(observer => {\n const resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n observer.next(entry.target as T);\n }\n });\n resizeObserver.observe(target, options);\n return () => {\n resizeObserver.unobserve(target);\n resizeObserver.disconnect();\n };\n });\n\nexport const observeMutationOn = <T extends Node>(\n target: T,\n options?: MutationObserverInit,\n) =>\n new Observable<MutationRecord>(observer => {\n const mutationObserver = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n observer.next(mutation);\n }\n });\n mutationObserver.observe(target, options);\n return () => mutationObserver.disconnect();\n });\n","import { ReplaySubject, share, TimestampProvider } from 'rxjs';\n\nexport type PublishRefConfig<T> =\n | number\n | (import('rxjs/internal/operators/share').ShareConfig<T> & {\n bufferSize?: number;\n windowTime?: number;\n timestampProvider?: TimestampProvider;\n });\n\nexport const publishRef = <T>(bufferSizeOrConfig: PublishRefConfig<T> = {}) => {\n const {\n bufferSize = 1,\n windowTime,\n timestampProvider,\n connector = () =>\n new ReplaySubject(bufferSize, windowTime, timestampProvider),\n resetOnError = false,\n resetOnComplete = false,\n resetOnRefCountZero = true,\n } = typeof bufferSizeOrConfig === 'number'\n ? ({\n bufferSize: bufferSizeOrConfig,\n } as Exclude<PublishRefConfig<T>, number>)\n : bufferSizeOrConfig;\n return share<T>({\n connector,\n resetOnError,\n resetOnComplete,\n resetOnRefCountZero,\n });\n};\n","export function scrollIntoView(container: HTMLElement, selected: HTMLElement) {\n if (!selected) {\n container.scrollTop = 0;\n return;\n }\n\n const top = selected.offsetTop;\n const bottom = selected.offsetTop + selected.offsetHeight;\n const viewRectTop = container.scrollTop;\n const viewRectBottom = viewRectTop + container.clientHeight;\n\n if (viewRectTop > top) {\n container.scrollTop = top;\n } else if (viewRectBottom < bottom) {\n container.scrollTop = bottom - container.clientHeight;\n }\n}\n","import { QueryList } from '@angular/core';\nimport { map, startWith } from 'rxjs';\n\nimport { publishRef } from './operators';\n\nexport function watchContentExist(queryList: QueryList<unknown>) {\n return queryList.changes.pipe(\n startWith(queryList),\n map((list: QueryList<unknown>) => !!list.length),\n publishRef(),\n );\n}\n","export const auiIcons =\n '<svg><symbol id=\"aui-icon-sync_circle\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0a512 512 0 1 1 0 1024A512 512 0 0 1 512 0z m0 42.688a469.376 469.376 0 1 0 0 938.688A469.376 469.376 0 0 0 512 42.688z\" ></path><path d=\"M751.36 545.024c7.744 0 13.632 7.04 12.224 14.72a256 256 0 0 1-428.416 137.344l-36.864 36.864A24.768 24.768 0 0 1 256 716.416V578.048c0-13.696 11.136-24.768 24.768-24.768h138.368c22.144 0 33.152 26.688 17.536 42.24l-43.136 43.136a173.632 173.632 0 0 0 286.656-84.16 12.416 12.416 0 0 1 12.032-9.472h59.072z m-62.528-218.112l36.864-36.864a24.768 24.768 0 0 1 42.304 17.472v138.432a24.768 24.768 0 0 1-24.768 24.704H604.864a24.768 24.768 0 0 1-17.536-42.24l43.136-43.136a173.632 173.632 0 0 0-286.656 84.224 12.416 12.416 0 0 1-12.032 9.408h-59.072a12.416 12.416 0 0 1-12.288-14.592 256 256 0 0 1 428.416-137.408z\" ></path></symbol><symbol id=\"aui-icon-sync_circle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024z m148.032-670.336l-53.888 53.888a30.976 30.976 0 0 0 21.888 52.864h172.992A30.976 30.976 0 0 0 832 429.44V256.448a30.976 30.976 0 0 0-52.864-21.888l-46.08 46.08a320.064 320.064 0 0 0-535.488 171.776A15.488 15.488 0 0 0 212.8 470.72h73.92a15.552 15.552 0 0 0 15.04-11.84 217.024 217.024 0 0 1 210.048-163.648c55.552 0 107.904 20.672 148.224 58.432z m-437.12 209.92A30.976 30.976 0 0 0 192 594.56v172.992c0 27.584 33.344 41.408 52.864 21.888l46.08-46.08a320.128 320.128 0 0 0 535.488-171.776A15.488 15.488 0 0 0 811.2 553.28h-73.92a15.552 15.552 0 0 0-15.04 11.84 217.024 217.024 0 0 1-210.048 163.648 215.232 215.232 0 0 1-148.224-58.432l53.888-53.888a30.976 30.976 0 0 0-21.888-52.864H222.976z\" ></path></symbol><symbol id=\"aui-icon-angle_up\" viewBox=\"0 0 1024 1024\"><path d=\"M512 345.6a38.4 38.4 0 0 0-27.136 11.264l-256 256a38.272 38.272 0 0 0 0 54.272 38.272 38.272 0 0 0 54.272 0L512 438.336l228.864 228.8a38.272 38.272 0 0 0 54.272 0 38.272 38.272 0 0 0 0-54.272l-256-256A38.4 38.4 0 0 0 512 345.6\" ></path></symbol><symbol id=\"aui-icon-error_circle1\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0a512 512 0 1 1 0 1024A512 512 0 0 1 512 0z m0 42.688a469.312 469.312 0 1 0 0 938.688A469.312 469.312 0 0 0 512 42.688z m137.792 243.2c9.536 0 19.072 3.776 25.92 10.624l51.776 51.776c14.08 14.336 14.08 37.376 0 51.776L615.552 512l111.936 112c14.08 14.336 14.08 37.376 0 51.712l-51.776 51.776a36.928 36.928 0 0 1-51.776 0L512 615.552l-112 111.936a36.928 36.928 0 0 1-51.712 0l-51.776-51.776a36.928 36.928 0 0 1 0-51.776L408.448 512 296.512 400a36.928 36.928 0 0 1 0-51.712l51.776-51.776a36.928 36.928 0 0 1 51.776 0L512 408.448l112-111.936a36.736 36.736 0 0 1 25.792-10.624z\" ></path></symbol><symbol id=\"aui-icon-computer\" viewBox=\"0 0 1024 1024\"><path d=\"M896 128H128c-35.264 0-64 27.52-64 61.44v491.52c0 33.92 28.736 61.44 64 61.44h320v92.16H288a31.36 31.36 0 0 0-32 30.72V896h512v-30.72a31.36 31.36 0 0 0-32-30.72H576V742.4h320c35.392 0 64-27.52 64-61.44V189.44c0-33.92-28.608-61.44-64-61.44z m-416 552.96a31.36 31.36 0 0 1 32-30.72c17.728 0 32 13.76 32 30.72a31.36 31.36 0 0 1-32 30.72 31.36 31.36 0 0 1-32-30.72zM300.352 361.28l-24.32 108.736h-36.8l-45.44-159.872h36.8l26.88 103.552 24.64-103.552h36.48l24 103.552 27.264-103.552h73.92l26.88 103.552 24.64-103.552h36.48l24 103.552 27.264-103.552h73.92l26.88 103.552 24.64-103.552h36.48l24 103.552 27.52-103.552h37.504l-46.08 159.872h-36.48l-24.704-108.736-24.32 108.736H665.6l-45.12-159.232-45.76 159.232h-36.48l-24.704-108.736-24.32 108.736h-36.8L407.232 310.4l-45.76 159.552h-36.48l-24.704-108.736 0.064 0.064zM128.064 619.52V189.44h768v430.08H128h0.064z\" ></path></symbol><symbol id=\"aui-icon-square_s\" viewBox=\"0 0 1024 1024\"><path d=\"M950.857143 0a73.142857 73.142857 0 0 1 73.142857 73.142857v877.714286a73.142857 73.142857 0 0 1-73.142857 73.142857H73.142857a73.142857 73.142857 0 0 1-73.142857-73.142857V73.142857a73.142857 73.142857 0 0 1 73.142857-73.142857h877.714286z m-182.857143 219.428571h-512a36.571429 36.571429 0 0 0-35.986286 29.988572L219.428571 256v512a36.571429 36.571429 0 0 0 29.988572 35.986286L256 804.571429h512a36.571429 36.571429 0 0 0 35.986286-29.988572L804.571429 768v-512a36.571429 36.571429 0 0 0-29.988572-35.986286L768 219.428571z\" ></path></symbol><symbol id=\"aui-icon-close_small\" viewBox=\"0 0 1024 1024\"><path d=\"M597.333333 512l170.666667-170.666667a60.672 60.672 0 0 0 0-85.333333 60.672 60.672 0 0 0-85.333333 0L512 426.666667 341.333333 256a60.672 60.672 0 0 0-85.333333 0 60.672 60.672 0 0 0 0 85.333333l170.666667 170.666667-170.666667 170.666667a60.672 60.672 0 0 0 0 85.333333 60.672 60.672 0 0 0 85.333333 0l170.666667-170.666667 170.666667 170.666667a60.672 60.672 0 0 0 85.333333 0 60.672 60.672 0 0 0 0-85.333333L597.333333 512z\" ></path></symbol><symbol id=\"aui-icon-check_circle\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0c282.752 0 512 229.248 512 512s-229.248 512-512 512S0 794.752 0 512 229.248 0 512 0z m0 42.666667C252.8 42.666667 42.666667 252.8 42.666667 512s210.133333 469.333333 469.333333 469.333333 469.333333-210.133333 469.333333-469.333333S771.2 42.666667 512 42.666667z m192 298.666666L768 409.088 469.333333 725.333333l-170.666666-180.693333 64-67.797333 106.666666 112.981333L704 341.333333z\" ></path></symbol><symbol id=\"aui-icon-close\" viewBox=\"0 0 1024 1024\"><path d=\"M597.333 512l341.334-341.333a60.672 60.672 0 0 0 0-85.334 60.672 60.672 0 0 0-85.334 0L512 426.667 170.667 85.333a60.672 60.672 0 0 0-85.334 0 60.672 60.672 0 0 0 0 85.334L426.667 512 85.333 853.333a60.672 60.672 0 0 0 0 85.334 60.672 60.672 0 0 0 85.334 0L512 597.333l341.333 341.334a60.672 60.672 0 0 0 85.334 0 60.672 60.672 0 0 0 0-85.334L597.333 512z\" ></path></symbol><symbol id=\"aui-icon-arrow\" viewBox=\"0 0 1024 1024\"><path d=\"M700.352 180.16l301.696 301.696a42.56 42.56 0 0 1 0 60.288l-301.696 301.696a42.688 42.688 0 1 1-60.352-60.288l228.8-228.928H52.16a42.688 42.688 0 0 1 0-85.312h816.64L640 240.448a42.688 42.688 0 0 1 60.352-60.288z\" ></path></symbol><symbol id=\"aui-icon-time\" viewBox=\"0 0 1024 1024\"><path d=\"M567.678 277.319v278.584a20.735 20.735 0 0 1-5.951 15.36 20.735 20.735 0 0 1-15.36 5.951h-192.25a20.735 20.735 0 0 1-15.36-6.016 20.735 20.735 0 0 1-5.952-15.36V523.2c0-6.208 1.984-11.328 6.016-15.36a20.735 20.735 0 0 1 15.36-5.952h145.915v-224.57c0-6.207 1.92-11.327 5.952-15.359a20.735 20.735 0 0 1 15.36-5.952h24.959c6.208 0 11.328 1.984 15.36 6.016a20.735 20.735 0 0 1 6.015 15.36z m318.327 451.443A422.26 422.26 0 0 0 943.988 512a422.26 422.26 0 0 0-57.983-216.762 430.644 430.644 0 0 0-157.243-157.243A422.26 422.26 0 0 0 512 80.012a422.26 422.26 0 0 0-216.762 57.983 430.644 430.644 0 0 0-157.243 157.243A422.26 422.26 0 0 0 80.012 512c0 78.334 19.328 150.588 57.983 216.762a430.644 430.644 0 0 0 157.243 157.243A422.26 422.26 0 0 0 512 943.988a422.26 422.26 0 0 0 216.762-57.983 430.644 430.644 0 0 0 157.243-157.243z m69.31-473.395A499.058 499.058 0 0 1 1023.985 512c0 92.861-22.911 178.555-68.67 257.017a509.681 509.681 0 0 1-186.298 186.298A500.85 500.85 0 0 1 512 1023.985a500.85 500.85 0 0 1-257.017-68.67A509.681 509.681 0 0 1 68.685 769.017 500.85 500.85 0 0 1 0.015 512c0-92.861 22.911-178.555 68.67-257.017A509.681 509.681 0 0 1 254.983 68.685 500.85 500.85 0 0 1 512 0.015c92.861 0 178.555 22.911 257.017 68.67a508.913 508.913 0 0 1 186.298 186.682z\" ></path></symbol><symbol id=\"aui-icon-calendar\" viewBox=\"0 0 1024 1024\"><path d=\"M332.8 25.6L332.736 128h358.4L691.2 25.6H768L767.936 128H947.2v870.4H76.8V128h179.136L256 25.6h76.8zM255.936 209.6H158.4v707.2h707.2V209.6h-97.664L768 256h-76.8l-0.064-46.4h-358.4L332.8 256H256l-0.064-46.4zM704 601.6v76.8H320V601.6h384z m0-192v76.8H320V409.6h384z\" ></path></symbol><symbol id=\"aui-icon-check_circle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024zM248 536l192 192 336-336L704 320 440 584 320 464 248 536z\" ></path></symbol><symbol id=\"aui-icon-close_circle_small_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024z m85.333333-512l170.666667-170.666667a60.672 60.672 0 0 0 0-85.333333 60.672 60.672 0 0 0-85.333333 0L512 426.666667 341.333333 256a60.672 60.672 0 0 0-85.333333 0 60.672 60.672 0 0 0 0 85.333333l170.666667 170.666667-170.666667 170.666667a60.672 60.672 0 0 0 0 85.333333 60.672 60.672 0 0 0 85.333333 0l170.666667-170.666667 170.666667 170.666667a60.672 60.672 0 0 0 85.333333 0 60.672 60.672 0 0 0 0-85.333333L597.333333 512z\" ></path></symbol><symbol id=\"aui-icon-angle_down\" viewBox=\"0 0 1024 1024\"><path d=\"M512 678.4a38.4 38.4 0 0 1-27.136-11.264l-256-256a38.272 38.272 0 0 1 0-54.272 38.272 38.272 0 0 1 54.272 0L512 585.664l228.864-228.8a38.272 38.272 0 0 1 54.272 0 38.272 38.272 0 0 1 0 54.272l-256 256A38.4 38.4 0 0 1 512 678.4\" ></path></symbol><symbol id=\"aui-icon-angle_double_left\" viewBox=\"0 0 1024 1024\"><path d=\"M568.64 749.44a19.776 19.776 0 0 1-5.696 13.12l-28.544 28.544a19.584 19.584 0 0 1-13.12 5.696 19.776 19.776 0 0 1-13.12-5.696L241.856 524.8a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12L508.16 232.256a19.584 19.584 0 0 1 13.12-5.696c4.544 0 9.728 2.304 13.12 5.696l28.544 28.544a19.584 19.584 0 0 1 5.696 13.12 19.776 19.776 0 0 1-5.696 13.12L338.368 511.616l224.576 224.576a19.584 19.584 0 0 1 5.696 13.12v0.128z m219.456 0a19.776 19.776 0 0 1-5.696 13.12l-28.544 28.544a19.584 19.584 0 0 1-13.12 5.696 19.776 19.776 0 0 1-13.12-5.696L461.312 524.8a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l266.304-266.304a19.584 19.584 0 0 1 13.12-5.696c4.544 0 9.728 2.304 13.12 5.696l28.544 28.544a19.584 19.584 0 0 1 5.696 13.12 19.776 19.776 0 0 1-5.696 13.12L557.824 511.616l224.576 224.576a19.584 19.584 0 0 1 5.696 13.12v0.128z\" ></path></symbol><symbol id=\"aui-icon-angle_double_right\" viewBox=\"0 0 1024 1024\"><path d=\"M568.64 511.552a19.776 19.776 0 0 1-5.696 13.12l-266.304 266.304a19.584 19.584 0 0 1-13.12 5.696 19.776 19.776 0 0 1-13.12-5.696l-28.544-28.544a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l224.576-224.576-224.576-224.576a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l28.544-28.544a19.584 19.584 0 0 1 13.12-5.696c4.544 0 9.728 2.304 13.12 5.696L562.944 498.56a19.584 19.584 0 0 1 5.696 13.12v-0.128z m219.392 0a19.776 19.776 0 0 1-5.696 13.12l-266.304 266.304a19.584 19.584 0 0 1-13.12 5.696 19.776 19.776 0 0 1-13.12-5.696l-28.544-28.544a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l224.576-224.576-224.576-224.576a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l28.544-28.544a19.584 19.584 0 0 1 13.12-5.696c4.544 0 9.728 2.304 13.12 5.696l266.304 266.304a19.584 19.584 0 0 1 5.696 13.12v-0.128z\" ></path></symbol><symbol id=\"aui-icon-caret_down_s\" viewBox=\"0 0 1024 1024\"><path d=\"M269.248 384h485.504a32 32 0 0 1 22.592 54.656l-242.688 242.688a32 32 0 0 1-45.312 0L246.656 438.656A32 32 0 0 1 269.248 384z\" ></path></symbol><symbol id=\"aui-icon-angle_left\" viewBox=\"0 0 1024 1024\"><path d=\"M345.6 512a38.4 38.4 0 0 1 11.264-27.136l256-256a38.272 38.272 0 0 1 54.272 0 38.272 38.272 0 0 1 0 54.272L438.336 512l228.8 228.864a38.272 38.272 0 0 1 0 54.272 38.272 38.272 0 0 1-54.272 0l-256-256A38.4 38.4 0 0 1 345.6 512\" ></path></symbol><symbol id=\"aui-icon-check_triangle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M1024 1024H0L1024 0v1024z m-544-288L640 896l256-256-64-64-192 192-96-96-64 64z\" ></path></symbol><symbol id=\"aui-icon-check\" viewBox=\"0 0 1024 1024\"><path d=\"M974.656 224.96c11.552 12.064 17.344 26.72 17.344 43.968s-5.792 31.904-17.344 43.968L442.016 868.864c-11.552 12.064-25.6 18.112-42.112 18.112s-30.56-6.048-42.112-18.112L49.344 546.912C37.792 534.848 32 520.192 32 502.944s5.792-31.904 17.344-43.968l84.224-87.904c11.552-12.064 25.6-18.112 42.112-18.112s30.56 6.048 42.112 18.112l182.08 190.72L806.176 137.056c11.552-12.064 25.6-18.112 42.112-18.112s30.56 6.048 42.112 18.112l84.224 87.904z\" ></path></symbol><symbol id=\"aui-icon-ellipsis_h_s\" viewBox=\"0 0 1024 1024\"><path d=\"M192 416a96 96 0 1 1 0 192 96 96 0 0 1 0-192z m320 0a96 96 0 1 1 0 192 96 96 0 0 1 0-192z m320 0a96 96 0 1 1 0 192 96 96 0 0 1 0-192z\" ></path></symbol><symbol id=\"aui-icon-exclamation_circle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0c282.688 0 512 229.312 512 512s-229.312 512-512 512-512-229.312-512-512 229.312-512 512-512z m85.312 831.36v-126.72c0-11.968-9.344-21.952-20.672-21.952h-128a22.208 22.208 0 0 0-21.952 21.952v126.72c0 11.968 9.984 21.952 21.952 21.952h128c11.392 0 20.672-9.984 20.672-21.952z m-1.28-229.376L608 187.968a13.376 13.376 0 0 0-6.656-11.968 25.664 25.664 0 0 0-16-5.312H438.656a25.664 25.664 0 0 0-16 5.312 13.376 13.376 0 0 0-6.656 12.032l11.328 413.952c0 9.344 9.984 16.64 22.656 16.64h123.328c12.032 0 22.016-7.296 22.656-16.64z\" ></path></symbol><symbol id=\"aui-icon-check_s\" viewBox=\"0 0 1024 1024\"><path d=\"M169.024 534.976L247.04 456.96a12.8 12.8 0 0 1 18.048 0L416 608l342.976-342.976a12.8 12.8 0 0 1 18.048 0L855.04 343.04a12.8 12.8 0 0 1 0 18.048L424.96 791.04a12.8 12.8 0 0 1-18.048 0L168.96 552.96a12.8 12.8 0 0 1 0-18.048z\" ></path></symbol><symbol id=\"aui-icon-compress_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 549.952v265.856c0 10.24-3.776 19.2-11.264 26.688a36.48 36.48 0 0 1-26.688 11.264 36.48 36.48 0 0 1-26.752-11.264L361.856 757.12l-196.992 196.992a18.752 18.752 0 0 1-27.264 0L69.952 886.4a18.752 18.752 0 0 1 0-27.264l196.992-196.992L181.504 576.64a36.48 36.48 0 0 1-11.264-26.752c0-10.24 3.712-19.2 11.264-26.688A36.48 36.48 0 0 1 208.192 512h265.856c10.24 0 19.2 3.776 26.688 11.264A36.48 36.48 0 0 1 512 549.952z m442.048-412.352a18.752 18.752 0 0 1 0 27.264L757.12 361.856l85.44 85.44a36.48 36.48 0 0 1 11.264 26.752c0 10.24-3.712 19.2-11.264 26.688a36.48 36.48 0 0 1-26.688 11.264H549.952a36.48 36.48 0 0 1-26.688-11.264A36.48 36.48 0 0 1 512 474.048V208.192c0-10.24 3.776-19.2 11.264-26.688a36.48 36.48 0 0 1 26.688-11.264c10.304 0 19.2 3.712 26.752 11.264l85.44 85.44 196.992-196.992a18.752 18.752 0 0 1 27.264 0l67.648 67.648z\" ></path></symbol><symbol id=\"aui-icon-angle_right\" viewBox=\"0 0 1024 1024\"><path d=\"M678.4 512a38.4 38.4 0 0 1-11.264 27.136l-256 256a38.272 38.272 0 0 1-54.272 0 38.272 38.272 0 0 1 0-54.272L585.664 512 356.864 283.136a38.272 38.272 0 0 1 0-54.272 38.272 38.272 0 0 1 54.272 0l256 256A38.4 38.4 0 0 1 678.4 512\" ></path></symbol><symbol id=\"aui-icon-export\" viewBox=\"0 0 1024 1024\"><path d=\"M729.6 624H448v-96h281.6V452.352a32 32 0 0 1 52.48-24.64l148.48 123.712a32 32 0 0 1 0 49.152l-148.48 123.712a32 32 0 0 1-52.48-24.64V624zM832 384h-64V128H128v768h640v-128h64v128a64 64 0 0 1-64 64H128a64 64 0 0 1-64-64V128a64 64 0 0 1 64-64h640a64 64 0 0 1 64 64v256z\" ></path></symbol><symbol id=\"aui-icon-import\" viewBox=\"0 0 1024 1024\"><path d=\"M678.4 528H960v96h-281.6v75.648a32 32 0 0 1-52.48 24.64L477.44 600.576a32 32 0 0 1 0-49.152l148.48-123.712a32 32 0 0 1 52.48 24.64V528zM832 384h-64V128H128v768h640v-128h64v128a64 64 0 0 1-64 64H128a64 64 0 0 1-64-64V128a64 64 0 0 1 64-64h640a64 64 0 0 1 64 64v256z\" ></path></symbol><symbol id=\"aui-icon-exclamation_triangle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M585.152 849.792V741.12a18.56 18.56 0 0 0-18.304-18.88H457.152a18.56 18.56 0 0 0-18.304 18.88v108.608c0 10.24 8 18.88 18.304 18.88h109.696a18.56 18.56 0 0 0 18.304-18.88z m-1.152-213.76l10.24-262.272a13.824 13.824 0 0 0-5.632-10.88c-3.456-2.816-8.576-6.272-13.76-6.272H449.152c-5.12 0-10.24 3.456-13.696 6.272-3.968 2.88-5.76 8.576-5.76 12.032l9.792 261.12c0 7.488 8.576 13.184 19.392 13.184h105.728c10.304 0 18.88-5.76 19.456-13.12zM576 102.336l438.912 804.672a73.088 73.088 0 0 1-64 108.032H73.088c-25.664 0-49.664-13.76-62.848-36.032a72 72 0 0 1-1.152-72L448 102.272a72.704 72.704 0 0 1 128 0z\" ></path></symbol><symbol id=\"aui-icon-expand_s\" viewBox=\"0 0 1024 1024\"><path d=\"M498.56 591.936a18.432 18.432 0 0 1 0 26.816l-193.664 193.664 84.032 84.032a35.84 35.84 0 0 1 11.072 26.24 35.84 35.84 0 0 1-11.072 26.24 35.84 35.84 0 0 1-26.24 11.072H101.312a35.84 35.84 0 0 1-26.24-11.072 35.84 35.84 0 0 1-11.072-26.24v-261.376a35.84 35.84 0 0 1 11.072-26.24 35.84 35.84 0 0 1 26.24-11.072 35.84 35.84 0 0 1 26.24 11.072l84.032 84.032L405.248 525.44a18.432 18.432 0 0 1 26.88 0L498.56 591.936zM960 101.312v261.376a35.84 35.84 0 0 1-11.072 26.24 35.84 35.84 0 0 1-26.24 11.072 35.84 35.84 0 0 1-26.24-11.072l-84.032-84.032L618.752 498.56a18.432 18.432 0 0 1-26.88 0L525.44 432.064a18.432 18.432 0 0 1 0-26.816l193.664-193.664-84.032-84.032a35.84 35.84 0 0 1-11.072-26.24 35.84 35.84 0 0 1 11.072-26.24 35.84 35.84 0 0 1 26.24-11.072h261.376a35.84 35.84 0 0 1 26.24 11.072 35.84 35.84 0 0 1 11.072 26.24z\" ></path></symbol><symbol id=\"aui-icon-minus_s\" viewBox=\"0 0 1024 1024\"><path d=\"M256 448h512a64 64 0 0 1 0 128H256a64 64 0 0 1 0-128\" ></path></symbol><symbol id=\"aui-icon-minus\" viewBox=\"0 0 1024 1024\"><path d=\"M904 448H120C86.4 448 64 470.4 64 504s22.4 56 56 56h784c33.6 0 56-22.4 56-56S937.6 448 904 448z\" ></path></symbol><symbol id=\"aui-icon-info_circle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0a512 512 0 1 1 0 1024A512 512 0 0 1 512 0zM448 304v32c0 26.368 21.632 48 48 48h32c26.368 0 48-21.632 48-48v-32A48.192 48.192 0 0 0 528 256h-32a48.192 48.192 0 0 0-48 48zM640 768v-64H576V448H384v64h64v192H384v64h256z\" ></path></symbol><symbol id=\"aui-icon-navigation_expand\" viewBox=\"0 0 1024 1024\"><path d=\"M512 192l256 320-256 320H448V192h64zM256 192h64v640H256V192z\" ></path></symbol><symbol id=\"aui-icon-copy\" viewBox=\"0 0 1024 1024\"><path d=\"M742.848 865.728v40.768c0 29.44-25.088 53.504-55.936 53.504h-503.04C153.152 960 128 936 128 906.496V226.816c0-29.568 25.088-53.568 55.936-53.568h124.096v-40.96c0-37.76 29.824-68.288 66.624-68.288h271.36C784.192 64 896 178.56 896 320v477.44c0 37.76-29.824 68.288-66.624 68.288h-86.528z m0-51.2h86.528c9.152 0 16.64-7.616 16.64-17.024V319.936c0-113.088-89.536-204.8-199.936-204.8h-271.36c-9.28 0-16.704 7.68-16.704 17.088v41.024h192.768c128 127.744 192.064 192.768 192.064 195.008v446.272z m-52.608 95.104V388.864h-197.12V223.68H180.672v685.952h509.568zM533.44 347.52h126.912L533.504 223.488V347.52z\" ></path></symbol><symbol id=\"aui-icon-plus\" viewBox=\"0 0 1024 1024\"><path d=\"M904 456h-336v-336C568 86.4 545.6 64 512 64s-56 22.4-56 56v336h-336C86.4 456 64 478.4 64 512s22.4 56 56 56h336v336c0 33.6 22.4 56 56 56s56-22.4 56-56v-336h336c33.6 0 56-22.4 56-56s-22.4-56-56-56z\" ></path></symbol><symbol id=\"aui-icon-back_top\" viewBox=\"0 0 1024 1024\"><path d=\"M545.07353 181.552571a42.2855 42.2855 0 0 0-34.480914-12.346599l-0.511776 0.063972a37.551571 37.551571 0 0 0-1.471357 0.191916c-0.383832 0-0.703692 0.127944-1.023552 0.191916l-1.023552 0.127944a42.413444 42.413444 0 0 0-1.27944 0.319861l-0.63972 0.127944a37.103767 37.103767 0 0 0-1.471357 0.447804l-0.511776 0.127944a39.150871 39.150871 0 0 0-1.535328 0.511776l-0.447804 0.127944a43.820828 43.820828 0 0 0-1.535328 0.63972l-0.383833 0.063972a36.400075 36.400075 0 0 0-1.5993 0.703692l-0.255888 0.127944a44.460549 44.460549 0 0 0-1.663272 0.831636l-0.191916 0.127944a44.652465 44.652465 0 0 0-10.939214 8.316362L117.804461 551.502718a43.24508 43.24508 0 0 0 0 60.773411c16.632723 16.760667 43.692884 16.760667 60.325607 0l294.271256-296.510277v665.180984a42.861248 42.861248 0 0 0 42.541389 43.053164h-0.191916a42.733304 42.733304 0 0 0 42.477416-43.053164v-665.308928l294.463172 296.446305c16.632723 16.760667 43.692884 16.632723 60.325608-0.255888a42.989192 42.989192 0 0 0 0.063972-60.517523l-367.007435-369.758231zM991.790092 43.181108a42.60536 42.60536 0 0 0-42.477416-42.733304H74.687324C51.209596 0.447804 32.209908 19.575436 32.209908 43.181108c0 23.669645 18.999688 42.861248 42.477416 42.861248h874.625352c23.477728 0 42.477416-19.191604 42.477416-42.861248z\" ></path></symbol><symbol id=\"aui-icon-moon\" viewBox=\"0 0 1024 1024\"><path d=\"M831.68 749.568c-21.952 3.456-44.224 5.248-66.944 5.248a414.592 414.592 0 0 1-204.992-52.48 396.16 396.16 0 0 1-148.992-142.848 372.224 372.224 0 0 1-54.784-196.48c0-74.56 21.12-144 63.296-208.064a381.44 381.44 0 0 0-199.872 133.504 352.256 352.256 0 0 0-77.504 223.872c0 50.496 10.304 98.752 30.976 144.832 20.672 46.08 48.384 85.696 83.072 118.912 34.624 33.28 76.032 59.776 124.096 79.616 48 19.84 98.432 29.696 151.104 29.696 58.432 0 113.92-11.968 166.4-35.84a386.24 386.24 0 0 0 134.144-99.968z m123.456-49.536c-38.144 78.848-95.616 141.888-172.48 189.12A471.424 471.424 0 0 1 531.2 960a471.552 471.552 0 0 1-181.248-35.584 473.088 473.088 0 0 1-149.056-95.552 451.008 451.008 0 0 1-99.712-142.848A420.032 420.032 0 0 1 64 512.32c0-59.52 11.648-116.352 35.008-170.56a442.112 442.112 0 0 1 94.848-140.8 465.856 465.856 0 0 1 143.232-95.872 481.472 481.472 0 0 1 176.448-39.936c17.856-0.768 30.208 6.784 37.12 22.72 7.296 16 4.224 29.952-9.152 41.984a310.912 310.912 0 0 0-80 105.792 301.952 301.952 0 0 0-27.648 127.36c0 57.6 14.784 110.592 44.416 159.168 29.568 48.64 69.76 87.04 120.384 115.456a334.272 334.272 0 0 0 166.08 42.56c47.872 0 94.08-9.92 138.688-29.76 16.64-6.976 31.232-4.48 43.776 7.616a35.648 35.648 0 0 1 10.688 19.84 36.032 36.032 0 0 1-2.752 22.144z\" ></path></symbol><symbol id=\"aui-icon-navigation_collapse\" viewBox=\"0 0 1024 1024\"><path d=\"M512 832L256 512l256-320h64v640H512z m192-640h64v640h-64V192z\" ></path></symbol><symbol id=\"aui-icon-close_circle\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0C229.12 0 0 229.12 0 512s229.12 512 512 512 512-229.12 512-512-229.12-512-512-512z m0 924.928A412.8 412.8 0 0 1 99.072 512 412.8 412.8 0 0 1 512 99.072 412.8 412.8 0 0 1 924.928 512 412.8 412.8 0 0 1 512 924.928z m210.176-541.312L593.728 512l128.448 128.384a24.768 24.768 0 0 1 0 35.136l-46.72 46.656a24.768 24.768 0 0 1-35.072 0L512 593.728l-128.384 128.448a24.768 24.768 0 0 1-35.136 0l-46.656-46.72a24.768 24.768 0 0 1 0-35.072L430.272 512 301.824 383.616a24.768 24.768 0 0 1 0-35.136l46.72-46.656a24.768 24.768 0 0 1 35.072 0L512 430.272l128.384-128.448a24.768 24.768 0 0 1 35.136 0l46.656 46.72a24.768 24.768 0 0 1 0 35.072z\" ></path></symbol><symbol id=\"aui-icon-sun\" viewBox=\"0 0 1024 1024\"><path d=\"M787.392 623.808c16-35.712 24.064-73.024 24.064-112 0-39.04-7.936-76.352-23.808-111.872a288.96 288.96 0 0 0-64.32-92.032A303.68 303.68 0 0 0 627.2 246.336a305.792 305.792 0 0 0-116.8-22.72c-40.768 0-79.744 7.552-116.864 22.72-37.12 15.168-69.12 35.712-96.192 61.568a288.96 288.96 0 0 0-64.256 92.032 271.296 271.296 0 0 0-23.808 111.808c0 39.04 7.936 76.288 23.808 111.808a288.96 288.96 0 0 0 64.256 92.032c27.008 25.856 59.072 46.4 96.192 61.568 37.12 15.168 76.096 22.784 116.864 22.784s79.68-7.616 116.8-22.784a303.68 303.68 0 0 0 96.192-61.568 286.272 286.272 0 0 0 64-91.776z m168.32 26.496c-1.408 5.056-4.864 8.32-10.432 10.048l-152.704 48v153.088a15.424 15.424 0 0 1-6.784 12.992c-5.184 3.328-10.24 4.032-15.168 2.048l-152.64-47.04-94.08 124.032a16.64 16.64 0 0 1-13.568 6.528 16.64 16.64 0 0 1-13.632-6.528l-94.08-124.032-152.64 47.04c-4.864 1.92-9.92 1.28-15.168-2.048a15.424 15.424 0 0 1-6.784-12.992v-153.088l-152.64-48c-5.568-1.664-9.088-4.992-10.432-10.048-1.792-5.632-1.088-10.496 2.048-14.464l94.08-124.096-94.08-124.032a15.36 15.36 0 0 1-2.048-14.528c1.344-4.992 4.864-8.32 10.432-10.048l152.64-48V162.048c0-5.312 2.24-9.664 6.784-12.992 5.248-3.328 10.24-4.032 15.168-1.984l152.64 46.976 94.08-124.032A16.256 16.256 0 0 1 510.336 64c5.888 0 10.432 1.984 13.568 6.016l94.08 124.032 152.64-46.976c4.928-2.048 9.984-1.344 15.168 1.92 4.544 3.392 6.784 7.68 6.784 13.056v153.088l152.704 48c5.568 1.728 9.024 5.056 10.432 10.048a15.36 15.36 0 0 1-2.112 14.528l-94.08 124.032 94.08 124.096c3.2 3.968 3.84 8.832 2.112 14.464z\" ></path></symbol><symbol id=\"aui-icon-search_s\" viewBox=\"0 0 1024 1024\"><path d=\"M613.248 613.76c47.36-47.36 71.04-104.32 71.04-170.688 0-66.432-23.552-123.2-70.784-170.432-47.232-47.168-104-70.784-170.432-70.784-66.432 0-123.2 23.616-170.432 70.784-47.168 47.232-70.784 104-70.784 170.432 0 66.432 23.616 123.2 70.784 170.432 47.232 47.232 104 70.784 170.432 70.784A231.872 231.872 0 0 0 613.248 613.76zM960 891.072c0 18.688-6.848 34.816-20.48 48.448-13.632 13.632-29.76 20.48-48.448 20.48a64 64 0 0 1-48.448-20.48l-184.704-184.128a368.704 368.704 0 0 1-214.848 66.752 372.48 372.48 0 0 1-147.264-29.888 379.008 379.008 0 0 1-121.152-80.768 379.008 379.008 0 0 1-80.768-121.152A372.48 372.48 0 0 1 64 443.136c0-51.392 9.984-100.48 29.888-147.328a379.008 379.008 0 0 1 80.768-121.152c33.92-33.92 74.304-60.8 121.152-80.768A372.48 372.48 0 0 1 443.072 64c51.328 0 100.48 9.984 147.264 29.888a379.008 379.008 0 0 1 121.152 80.768c33.92 33.92 60.8 74.304 80.768 121.152a372.48 372.48 0 0 1 29.888 147.264 368.704 368.704 0 0 1-66.752 214.848l184.704 184.704c13.248 13.248 19.904 29.44 19.904 48.448z\" ></path></symbol><symbol id=\"aui-icon-history_s\" viewBox=\"0 0 1024 1024\"><path d=\"M924.416 338.176A435.84 435.84 0 0 1 960 512a435.84 435.84 0 0 1-35.584 173.824 451.968 451.968 0 0 1-95.68 142.912 451.968 451.968 0 0 1-142.912 95.68A435.84 435.84 0 0 1 512 960a444.8 444.8 0 0 1-190.72-42.24 437.952 437.952 0 0 1-154.048-119.36 20.8 20.8 0 0 1-3.776-13.12 17.28 17.28 0 0 1 4.992-11.968l79.872-80.448a20.992 20.992 0 0 1 14.592-5.312c6.208 0.832 10.688 3.2 13.44 7.04a292.8 292.8 0 0 0 104.384 85.76A294.144 294.144 0 0 0 512 810.688c40.448 0 79.04-7.872 115.84-23.68a300.928 300.928 0 0 0 95.36-63.872c26.816-26.816 48.064-58.624 63.872-95.36 15.744-36.736 23.616-75.328 23.616-115.776 0-40.448-7.872-79.04-23.68-115.84A300.928 300.928 0 0 0 723.2 300.8a300.928 300.928 0 0 0-95.36-63.872A290.944 290.944 0 0 0 512 213.312c-38.08 0-74.688 6.912-109.696 20.736a289.792 289.792 0 0 0-93.312 59.2L388.928 373.76c12.032 11.648 14.72 25.088 8.128 40.256-6.592 15.552-18.048 23.296-34.368 23.296H101.312a35.84 35.84 0 0 1-26.24-11.072A35.84 35.84 0 0 1 64 400V138.688c0-16.384 7.808-27.84 23.36-34.432 15.168-6.592 28.544-3.84 40.192 8.192l75.84 75.2a452.8 452.8 0 0 1 142.656-91.264A439.424 439.424 0 0 1 512 64a435.84 435.84 0 0 1 173.824 35.584c55.232 23.68 102.848 55.616 142.912 95.68a451.968 451.968 0 0 1 95.68 142.912z m-337.728 5.824v261.312a18.176 18.176 0 0 1-5.248 13.44 18.176 18.176 0 0 1-13.44 5.248H381.312a18.176 18.176 0 0 1-13.44-5.248 18.176 18.176 0 0 1-5.184-13.44v-37.312c0-5.44 1.728-9.92 5.248-13.44a18.176 18.176 0 0 1 13.44-5.248H512V344c0-5.44 1.728-9.92 5.248-13.44a18.176 18.176 0 0 1 13.44-5.248h37.312c5.44 0 9.92 1.792 13.44 5.248a18.176 18.176 0 0 1 5.248 13.44z\" ></path></symbol></svg>';\n","export function getAuiIconNoHttpProviderError(): Error {\n return new Error(\n 'Could not find HttpClient provider for use with Alauda UI icons. Please include the HttpClientModule from @angular/common/http in your app imports.',\n );\n}\n\nexport function getAuiIconFailedToLoadCustomIconFile(url: string) {\n return new Error(`AuiIcon failed to load custom icon file: ${url}.`);\n}\n","import { DOCUMENT } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, Optional, SkipSelf } from '@angular/core';\n\nimport { auiIcons } from './icons';\nimport {\n getAuiIconFailedToLoadCustomIconFile,\n getAuiIconNoHttpProviderError,\n} from './utils';\n\n@Injectable()\nexport class IconRegisterService {\n private defaultIconPrefix = 'aui-icon';\n private readonly doc: Document;\n\n constructor(\n @Optional()\n @Inject(DOCUMENT)\n document: any,\n @Optional() private readonly httpClient: HttpClient,\n ) {\n this.doc = document;\n this.registerSvgSymbolsByString(auiIcons);\n }\n\n getDefaultIconPrefix(): string {\n return this.defaultIconPrefix;\n }\n\n replaceDefaultIconPrefix(prefix: string): void {\n this.defaultIconPrefix = prefix;\n }\n\n registerSvgSymbolsByUrl(url: string) {\n if (!this.httpClient) {\n throw getAuiIconNoHttpProviderError();\n }\n this.httpClient\n .get(url, {\n responseType: 'text',\n })\n .subscribe({\n next: res => {\n this.registerSvgSymbolsByString(res);\n },\n error() {\n throw getAuiIconFailedToLoadCustomIconFile(url);\n },\n });\n }\n\n registerSvgSymbolsByString(str: string) {\n this.appendSvg(str);\n }\n\n private appendSvg(svgString: string) {\n const setEl = this.doc.createElement('div');\n setEl.className = 'aui-icon-set';\n setEl.style.display = 'none';\n setEl.innerHTML = svgString;\n this.doc.body.append(setEl);\n }\n}\n\n// eslint-disable-next-line sonar/function-name\nexport function ICON_REGISTER_PROVIDER_FACTORY(\n parentRegister: IconRegisterService,\n document: Document,\n httpClient: HttpClient,\n) {\n return parentRegister || new IconRegisterService(document, httpClient);\n}\n\nexport const ICON_REGISTER_SERVICE_PROVIDER = {\n provide: IconRegisterService,\n deps: [\n [new Optional(), new SkipSelf(), IconRegisterService],\n [new Optional(), DOCUMENT],\n [new Optional(), HttpClient],\n ],\n useFactory: ICON_REGISTER_PROVIDER_FACTORY,\n};\n","export function rgbColor(color: string): string {\n return `rgb(var(--aui-color-${color}))`;\n}\n\nexport function rgbaColor([color, opacity]: [string, number]) {\n return `rgba(var(--aui-color-${color}), ${opacity})`;\n}\n\nexport function cssVar(value: string) {\n return `var(--aui-${value})`;\n}\n","import { Injectable } from '@angular/core';\nimport { ReplaySubject, distinctUntilChanged } from 'rxjs';\n\nimport { Theme, ThemeMode } from './theme.types';\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly htmlEl: HTMLHtmlElement;\n private browserTheme: Theme;\n private themeMode: ThemeMode;\n\n private readonly currentAppTheme$$ = new ReplaySubject<Theme>(1);\n\n readonly currentTheme$ = this.currentAppTheme$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n constructor() {\n this.htmlEl = document.querySelector('html')!;\n\n switch (this.htmlEl.getAttribute('aui-theme-mode')) {\n case 'dark':\n this.themeMode = 'dark';\n break;\n case 'light':\n this.themeMode = 'light';\n break;\n case 'system':\n this.themeMode = 'system';\n break;\n default:\n this.themeMode = 'light';\n }\n\n const darkModeQuery = window.matchMedia('(prefers-color-scheme: dark)');\n this.browserTheme = darkModeQuery.matches ? 'dark' : 'light';\n\n darkModeQuery.addEventListener('change', ({ matches }) => {\n this.browserTheme = matches ? 'dark' : 'light';\n if (this.themeMode === 'system') {\n this.themeChanged();\n }\n });\n\n this.themeChanged();\n }\n\n setThemeMode(mode: ThemeMode) {\n this.htmlEl.setAttribute('aui-theme-mode', mode);\n this.themeMode = mode;\n this.themeChanged();\n }\n\n currentTheme() {\n return this.themeMode === 'system' ? this.browserTheme : this.themeMode;\n }\n\n private themeChanged() {\n this.currentAppTheme$$.next(this.currentTheme());\n }\n}\n","import {\n ChangeDetectorRef,\n OnDestroy,\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { ThemeService } from './theme.service';\nimport { Theme, ThemeSet } from './theme.types';\nimport { cssVar, rgbColor, rgbaColor } from './utils';\n\n@Pipe({ name: 'auiRgbColor', pure: true })\nexport class RgbColorPipe implements PipeTransform {\n transform = rgbColor;\n}\n\n@Pipe({ name: 'auiRgbaColor', pure: true })\nexport class RgbaColorPipe implements PipeTransform {\n transform = rgbaColor;\n}\n\n@Pipe({ name: 'auiCssVar', pure: true })\nexport class CssVarPipe implements PipeTransform {\n transform = cssVar;\n}\n\n@Pipe({ name: 'auiThemePicker', pure: false })\nexport class ThemePickerPipe<T> implements PipeTransform, OnDestroy {\n private currentTheme: Theme;\n private readonly destroy$$ = new Subject<void>();\n\n constructor(themeService: ThemeService, cdr: ChangeDetectorRef) {\n themeService.currentTheme$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(theme => {\n this.currentTheme = theme;\n cdr.markForCheck();\n });\n }\n\n transform(v: ThemeSet<T>) {\n if (v instanceof Function) {\n return v(this.currentTheme);\n }\n if (Array.isArray(v)) {\n return v[this.currentTheme === 'light' ? 0 : 1];\n }\n return v[this.currentTheme];\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem, handlePixel } from '../utils';\n\nimport { IconRegisterService } from './icon-register.service';\n\nlet id = 0;\n\n@Component({\n selector: 'aui-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class IconComponent {\n @Input()\n icon: string;\n\n @Input()\n light: string;\n\n @Input()\n dark: string;\n\n @Input()\n link = '';\n\n @Input()\n margin: 'left' | 'right';\n\n @Input()\n size: string;\n\n @Input()\n color: string;\n\n @Input()\n background: 'circle' | 'triangle';\n\n @Input()\n backgroundColor: string;\n\n bem: Bem = buildBem('aui-icon');\n\n id = id++;\n\n constructor(private readonly iconRegisterService: IconRegisterService) {}\n\n private parseIcon(icon: string): [string, string] {\n const defaultPrefix = this.iconRegisterService.getDefaultIconPrefix();\n const arr = (icon || '').split(':');\n return arr.length < 2 ? [defaultPrefix, arr[0]] : [arr[0], arr[1]];\n }\n\n getWidth() {\n if (!this.size) {\n return false;\n }\n return handlePixel((this.size || '').split(',')[0]);\n }\n\n getHeight() {\n if (!this.size) {\n return false;\n }\n const arr = (this.size || '').split(',');\n return handlePixel(arr[1] || arr[0]);\n }\n\n getIconId(icon: string) {\n const [prefix, name] = this.parseIcon(icon);\n return `${prefix}-${name}`;\n }\n\n getClass(id: string) {\n return `${this.bem.block(this.margin)} ${id}`;\n }\n}\n","<svg\n *ngIf=\"icon === 'spinner'; else icons\"\n [attr.class]=\"getClass('aui-icon-spinner')\"\n [style.fill]=\"color\"\n [style.width]=\"getWidth()\"\n [style.height]=\"getHeight()\"\n viewBox=\"0 0 200 200\"\n>\n <defs>\n <linearGradient\n [attr.id]=\"'right-' + id\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"150\"\n y1=\"20\"\n x2=\"150\"\n y2=\"180\"\n >\n <stop\n offset=\"0\"\n style=\"stop-color: #000\"\n />\n <stop\n offset=\"1\"\n style=\"stop-color: #808080\"\n />\n </linearGradient>\n <linearGradient\n [attr.id]=\"'left-' + id\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"50\"\n y1=\"0\"\n x2=\"50\"\n y2=\"180\"\n >\n <stop\n offset=\"0\"\n style=\"stop-color: #fff\"\n />\n <stop\n offset=\"1\"\n style=\"stop-color: #808080\"\n />\n </linearGradient>\n <mask [attr.id]=\"'mask-' + id\">\n <g>\n <path\n [attr.fill]=\"'url(#right-' + id + ')'\"\n d=\"M100,0v20c44.1,0,80,35.9,80,80c0,44.1-35.9,80-80,80v20c55.2,0,100-44.8,100-100S155.2,0,100,0z\"\n />\n <path\n [attr.fill]=\"'url(#left-' + id + ')'\"\n d=\"M20,100c0-44.1,35.9-80,80-80V0C44.8,0,0,44.8,0,100s44.8,100,100,100v-20C55.9,180,20,144.1,20,100z\"\n />\n </g>\n </mask>\n </defs>\n <rect\n x=\"0\"\n y=\"0\"\n width=\"200\"\n height=\"200\"\n [attr.mask]=\"'url(#mask-' + id + ')'\"\n />\n</svg>\n\n<ng-template #icons>\n <svg\n *ngIf=\"getIconId(icon ? icon : ([light, dark] | auiThemePicker)) as iconId\"\n [ngClass]=\"getClass(iconId)\"\n [style.fill]=\"color\"\n [style.width]=\"getWidth()\"\n [style.height]=\"getHeight()\"\n >\n <rect\n *ngIf=\"background\"\n class=\"aui-icon__background\"\n [ngClass]=\"background\"\n [attr.fill]=\"backgroundColor\"\n [style.width]=\"getWidth()\"\n [style.height]=\"getHeight()\"\n x=\"0\"\n y=\"0\"\n ></rect>\n <use [attr.xlink:href]=\"link + '#' + iconId\"></use>\n </svg>\n</ng-template>\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../types';\n\nimport { ButtonType } from './button.types';\n\nconst prefix = 'aui-button--';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[aui-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class ButtonComponent implements OnDestroy {\n @Input('aui-button')\n get type() {\n return this._type;\n }\n\n set type(val) {\n if (!val || val === this._type) {\n return;\n }\n this.renderer.removeClass(this.el.nativeElement, prefix + this._type);\n this.renderer.addClass(this.el.nativeElement, prefix + val);\n this._type = val;\n }\n\n @Input()\n get size() {\n return this._size;\n }\n\n set size(val) {\n // when change from other size to default\n if (!val) {\n val = ComponentSize.Medium;\n }\n if (this._size === val) {\n return;\n }\n this.renderer.removeClass(this.el.nativeElement, prefix + this._size);\n this.renderer.addClass(this.el.nativeElement, prefix + val);\n this._size = val;\n }\n\n @Input()\n get plain() {\n return this._plain;\n }\n\n set plain(val) {\n if (this._plain === val) {\n return;\n }\n this.switchAssertClass('isPlain', val);\n this._plain = val;\n }\n\n @Input()\n get loading() {\n return this._loading;\n }\n\n set loading(val) {\n if (this._loading === val) {\n return;\n }\n this.switchAssertClass('isLoading', val);\n this._loading = val;\n }\n\n @Input()\n get round() {\n return this._round;\n }\n\n set round(val) {\n if (this._round === val) {\n return;\n }\n this.switchAssertClass('isRound', val);\n this._round = val;\n }\n\n @Input()\n get square() {\n return this._square;\n }\n\n set square(val) {\n if (this._square === val) {\n return;\n }\n this.switchAssertClass('isSquare', val);\n this._square = val;\n }\n\n private _type: ButtonType = ButtonType.Default;\n private _size: ComponentSize = ComponentSize.Medium;\n private _plain = false;\n private _loading = false;\n private _round = false;\n private _square = false;\n\n constructor(\n private readonly el: ElementRef,\n private readonly renderer: Renderer2,\n private readonly focusMonitor: FocusMonitor,\n ) {\n this.renderer.addClass(this.el.nativeElement, 'aui-button');\n this.renderer.addClass(this.el.nativeElement, prefix + this.type);\n this.renderer.addClass(this.el.nativeElement, prefix + this.size);\n\n this.focusMonitor.monitor(this.el.nativeElement, false);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.el.nativeElement);\n }\n\n private switchAssertClass(className: string, val: boolean) {\n if (val) {\n this.renderer.addClass(this.el.nativeElement, className);\n } else {\n this.renderer.removeClass(this.el.nativeElement, className);\n }\n }\n}\n","<span class=\"aui-button__content\"><ng-content></ng-content></span>\n<aui-icon\n *ngIf=\"loading\"\n class=\"aui-button__spinner\"\n icon=\"spinner\"\n></aui-icon>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport {\n CssVarPipe,\n RgbColorPipe,\n RgbaColorPipe,\n ThemePickerPipe,\n} from './theme.pipe';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ThemePickerPipe, RgbColorPipe, RgbaColorPipe, CssVarPipe],\n exports: [ThemePickerPipe, RgbColorPipe, RgbaColorPipe, CssVarPipe],\n})\nexport class ThemeModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThemeModule } from '../theme';\n\nimport { ICON_REGISTER_SERVICE_PROVIDER } from './icon-register.service';\nimport { IconComponent } from './icon.component';\n\n@NgModule({\n imports: [CommonModule, ThemeModule],\n declarations: [IconComponent],\n exports: [IconComponent],\n providers: [ICON_REGISTER_SERVICE_PROVIDER],\n})\nexport class IconModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-button-group',\n templateUrl: './button-group.component.html',\n styleUrls: ['./button-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class ButtonGroupComponent {}\n","<div class=\"aui-button-group\"><ng-content></ng-content></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { ButtonGroupComponent } from './button-group/button-group.component';\nimport { ButtonComponent } from './button.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [ButtonComponent, ButtonGroupComponent],\n exports: [ButtonComponent, ButtonGroupComponent],\n})\nexport class ButtonModule {}\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { CdkAccordionItem } from '@angular/cdk/accordion';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n Input,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { filter, startWith, take } from 'rxjs';\n\nimport { AccordionComponent } from '../accordion.component';\n\n@Directive({\n selector: '[auiAccordionItemHeader]',\n})\nexport class AccordionItemHeaderDirective {}\n@Directive({\n selector: '[auiAccordionContent]',\n})\nexport class AccordionItemContentDirective {}\n@Component({\n selector: 'aui-accordion-item',\n templateUrl: 'accordion-item.component.html',\n styleUrls: ['accordion-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n animations: [\n trigger('expand', [\n state('*', style({ height: 0 })),\n state('expanded', style({ height: '*' })),\n transition('* <=> expanded', [animate('0.1s ease-in-out')]),\n ]),\n ],\n viewProviders: [AccordionItemComponent],\n})\nexport class AccordionItemComponent\n extends CdkAccordionItem\n implements AfterContentInit\n{\n @Input()\n background = true;\n\n @ContentChild(AccordionItemContentDirective, {\n read: TemplateRef,\n static: true,\n })\n _lazyContentTpl: TemplateRef<unknown>;\n\n lazyContentTpl: TemplateRef<unknown>;\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n accordion: AccordionComponent,\n cdr: ChangeDetectorRef,\n uniqueSelectionDispatcher: UniqueSelectionDispatcher,\n ) {\n super(accordion, cdr, uniqueSelectionDispatcher);\n }\n\n ngAfterContentInit() {\n if (this._lazyContentTpl) {\n // Render the content as soon as the accordion becomes open.\n this.opened\n .pipe(\n startWith(null as void),\n filter(() => !!this.expanded),\n take(1),\n )\n .subscribe(() => {\n this.lazyContentTpl = this._lazyContentTpl;\n });\n }\n }\n}\n","<div class=\"aui-accordion-item\">\n <div class=\"aui-accordion-item__header\">\n <button\n type=\"button\"\n class=\"aui-accordion-item__expand-button\"\n [class.isExpanded]=\"expanded\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <div\n class=\"aui-accordion-item__header-content\"\n [class.aui-accordion-item__header-content--expanded]=\"expanded\"\n >\n <ng-content select=\"[auiAccordionItemHeader]\"></ng-content>\n </div>\n </div>\n <div\n *ngIf=\"expanded\"\n class=\"aui-accordion-item__body\"\n [id]=\"id\"\n [@expand]=\"expanded ? 'expanded' : 'collapsed'\"\n >\n <div\n class=\"aui-accordion-item__content\"\n [class.hasBackground]=\"background\"\n >\n <ng-content></ng-content>\n <ng-template [ngTemplateOutlet]=\"lazyContentTpl\"></ng-template>\n </div>\n </div>\n</div>\n","import { CdkAccordionModule } from '@angular/cdk/accordion';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonModule } from '../button';\nimport { IconModule } from '../icon';\n\nimport {\n AccordionItemComponent,\n AccordionItemContentDirective,\n AccordionItemHeaderDirective,\n} from './accordion-item/accordion-item.component';\nimport { AccordionComponent } from './accordion.component';\n\n@NgModule({\n declarations: [\n AccordionComponent,\n AccordionItemComponent,\n AccordionItemHeaderDirective,\n AccordionItemContentDirective,\n ],\n imports: [CommonModule, CdkAccordionModule, IconModule, ButtonModule],\n exports: [\n AccordionComponent,\n AccordionItemComponent,\n AccordionItemHeaderDirective,\n AccordionItemContentDirective,\n ],\n providers: [],\n})\nexport class AccordionModule {}\n","import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport {\n AfterContentChecked,\n AfterContentInit,\n ApplicationRef,\n ComponentFactoryResolver,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n TemplateRef,\n} from '@angular/core';\nimport { Subject, fromEvent, merge, startWith, takeUntil } from 'rxjs';\n\nimport { observeResizeOn } from '../utils';\n\nimport { AnchorComponent } from './anchor.component';\n\nlet uid = 0;\n\n@Directive()\nexport class AnchorDirectiveChild {\n readonly parent: AnchorDirective;\n\n constructor(protected injector: Injector) {\n this.parent = this.injector.get(AnchorDirective);\n }\n}\n\n@Directive({\n selector: '[auiAnchorLabel]',\n})\nexport class AnchorLabelDirective\n extends AnchorDirectiveChild\n implements OnInit, AfterContentChecked\n{\n @HostBinding('class.aui-anchor__label')\n @Input('auiAnchorLabel')\n get label() {\n return this._label || this.elRef.nativeElement.textContent;\n }\n\n set label(value) {\n this._label = value;\n this.labelChange.emit(value);\n }\n\n private _label: string | TemplateRef<unknown>;\n\n @Input('auiAnchorLabelContext')\n labelContext: unknown;\n\n get target() {\n return this.elRef.nativeElement;\n }\n\n @Input()\n set id(id) {\n if (this.parent.injectId && !this.id) {\n this.elRef.nativeElement.id = id;\n }\n this._id = id;\n }\n\n get id() {\n return this._id;\n }\n\n private _id: string;\n\n @Input()\n set level(value: number | '') {\n this._level = value === '' ? 1 : value;\n }\n\n get level() {\n return this._level;\n }\n\n private _level = 0;\n\n @Output()\n labelChange = new EventEmitter<string | TemplateRef<unknown>>();\n\n constructor(\n protected override injector: Injector,\n public readonly elRef: ElementRef<HTMLElement>,\n ) {\n super(injector);\n this._id = this.elRef.nativeElement.id;\n }\n\n ngOnInit() {\n if (!this.id) {\n this.id = 'anchor-uid-' + uid++;\n }\n }\n\n ngAfterContentChecked() {\n if (!this._label) {\n this.labelChange.emit(this.label);\n }\n }\n}\n\n@Directive({\n selector: '[auiAnchor]',\n})\nexport class AnchorDirective implements AfterContentInit, OnDestroy {\n @Input()\n auiAnchor: HTMLElement | '';\n\n @Input()\n adaptPosition = true;\n\n @Input()\n padding = 20;\n\n @Input()\n minTop: number;\n\n @Input()\n injectId = window === window.top;\n\n @ContentChildren(AnchorLabelDirective, { descendants: true })\n anchorLabels: QueryList<AnchorLabelDirective>;\n\n get containerEl() {\n return this.elRef.nativeElement;\n }\n\n get scrollableEl() {\n const el = this.containerEl;\n return (\n this.auiAnchor ||\n this.cdkScrollable?.getElementRef().nativeElement ||\n (el.scrollHeight > el.offsetHeight ? el : window)\n );\n }\n\n anchorPortal: ComponentPortal<AnchorComponent>;\n\n destroy$$ = new Subject<void>();\n\n constructor(\n private readonly cfr: ComponentFactoryResolver,\n private readonly appRef: ApplicationRef,\n private readonly injector: Injector,\n public readonly elRef: ElementRef<HTMLElement>,\n @Optional() private readonly cdkScrollable: CdkScrollable,\n ) {}\n\n ngAfterContentInit() {\n const containerEl = this.containerEl;\n this.anchorPortal = new ComponentPortal(AnchorComponent);\n const portalOutlet = new DomPortalOutlet(\n document.body,\n this.cfr,\n this.appRef,\n this.injector,\n );\n const anchorComponentRef = this.anchorPortal.attach(portalOutlet);\n const anchorEl = anchorComponentRef.injector.get(ElementRef)\n .nativeElement as HTMLElement;\n\n requestAnimationFrame(() =>\n this.adaptAnchorPosition(containerEl, anchorEl),\n );\n\n this.anchorLabels.changes\n .pipe(startWith(this.anchorLabels), takeUntil(this.destroy$$))\n .subscribe((anchorLabels: QueryList<AnchorLabelDirective>) => {\n Object.assign(anchorComponentRef.instance, {\n items: anchorLabels.toArray(),\n });\n });\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n this.anchorPortal.detach();\n }\n\n adaptAnchorPosition(containerEl: HTMLElement, anchorEl: HTMLElement) {\n const pageContentEl = containerEl.closest('.aui-page__content');\n const anchorContentEl = anchorEl.querySelector('.aui-anchor');\n\n merge(observeResizeOn(containerEl), fromEvent(window, 'scroll'))\n .pipe(startWith(null as void), takeUntil(this.destroy$$))\n .subscribe(() => {\n const containerRect = containerEl.getBoundingClientRect();\n Object.assign(anchorEl.style, {\n display: !containerRect.width || !containerRect.height ? 'none' : '',\n left:\n containerRect.right -\n anchorContentEl.getBoundingClientRect().width +\n 'px',\n top:\n Math.max(\n containerRect.top,\n (this.minTop ??\n (pageContentEl &&\n +getComputedStyle(pageContentEl).paddingTop.slice(0, -2))) ||\n 0,\n ) + 'px',\n });\n });\n\n if (this.adaptPosition) {\n observeResizeOn(anchorContentEl)\n .pipe(takeUntil(this.destroy$$))\n .subscribe(el => {\n const width = el.getBoundingClientRect().width;\n const padding = width + this.padding;\n containerEl.style.paddingRight = padding + 'px';\n });\n }\n }\n}\n","import { last } from '../utils';\n\nimport { AnchorItem, AnchorTreeItem } from './types';\n\nexport const getAnchorTreeItems = (items: AnchorItem[], level = 0) => {\n const treeItems: AnchorTreeItem[] = [];\n const subItems: AnchorItem[] = [];\n for (const item of items) {\n if (item.level === level) {\n const lastTreeItem = last(treeItems);\n if (lastTreeItem) {\n const children = getAnchorTreeItems(subItems, level + 1);\n if (children.length) {\n lastTreeItem.children = children;\n }\n }\n treeItems.push(item);\n subItems.length = 0;\n } else {\n subItems.push(item);\n }\n }\n if (subItems.length) {\n last(treeItems).children = getAnchorTreeItems(subItems, level + 1);\n }\n return treeItems;\n};\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n EMPTY,\n Subject,\n combineLatest,\n fromEvent,\n of,\n debounceTime,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport { buildBem, isTemplateRef, last } from '../utils';\n\nimport { AnchorDirectiveChild } from './anchor.directive';\nimport { AnchorItem, AnchorTreeItem } from './types';\nimport { getAnchorTreeItems } from './utils';\n\nconst bem = buildBem('aui-anchor');\n\n@Component({\n selector: 'aui-anchor-tree',\n templateUrl: 'anchor-tree.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AnchorTreeComponent\n extends AnchorDirectiveChild\n implements OnDestroy\n{\n @Input()\n set treeItems(treeItems) {\n this._treeItems = treeItems;\n this.watchLabelsChange();\n }\n\n get treeItems() {\n return this._treeItems;\n }\n\n private _treeItems: AnchorTreeItem[];\n\n @Input()\n activeId: string;\n\n @Output()\n activeIdChange = new EventEmitter<string>();\n\n bem = bem;\n\n isTemplateRef = isTemplateRef;\n\n private readonly depose$$ = new Subject<void>();\n\n watchLabelsChange() {\n this.depose$$.next();\n const cdr = this.injector.get(ChangeDetectorRef);\n // FIXME: Is there any better way to achieve this?\n combineLatest(\n this.treeItems.map(({ labelChange }) => labelChange).filter(Boolean),\n )\n .pipe(debounceTime(0), takeUntil(this.depose$$))\n .subscribe(() => cdr.markForCheck());\n }\n\n ngOnDestroy() {\n this.depose$$.next();\n this.depose$$.complete();\n }\n\n isActive(item: AnchorTreeItem): boolean {\n return (\n item.id === this.activeId ||\n item.children?.some(subItem => this.isActive(subItem))\n );\n }\n\n onItemClick(e: Event, item: AnchorTreeItem) {\n e.preventDefault();\n\n if (this.parent.injectId) {\n const selector = '#' + item.id;\n\n if (location.hash === selector) {\n return;\n }\n\n history.pushState(\n null,\n null,\n location.pathname + location.search + selector,\n );\n }\n\n item.target.scrollIntoView({ behavior: 'smooth' });\n\n this.activeIdChange.emit(item.id);\n }\n\n trackById(_index: number, item: AnchorTreeItem) {\n return item.id;\n }\n}\n\n@Component({\n selector: 'aui-anchor',\n templateUrl: 'anchor.component.html',\n styleUrls: ['anchor.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AnchorComponent\n extends AnchorDirectiveChild\n implements AfterViewInit, OnDestroy\n{\n @Input()\n get items() {\n return this._items;\n }\n\n set items(items) {\n this._items = items;\n this.treeItems = getAnchorTreeItems(items);\n const anchorId =\n (this.parent.injectId && location.hash.slice(1)) || this.activeId;\n const activeItem =\n (anchorId && items.find(({ id }) => id === anchorId)) || items[0];\n if (activeItem) {\n if (this.parent.injectId && this.parent.scrollableEl !== window) {\n activeItem.target.scrollIntoView();\n }\n this.activeId = activeItem.id;\n }\n }\n\n private _items: AnchorItem[];\n\n @Input()\n treeItems: AnchorTreeItem[];\n\n @Input()\n activeId: string;\n\n bem = bem;\n\n private readonly destroy$$ = new Subject<void>();\n\n constructor(\n protected override injector: Injector,\n private readonly cdr: ChangeDetectorRef,\n ) {\n super(injector);\n }\n\n ngAfterViewInit() {\n const { injectId, containerEl, scrollableEl } = this.parent;\n const pageContentEl = containerEl.closest('.aui-page__content');\n const paddingTop = pageContentEl\n ? +getComputedStyle(pageContentEl).paddingTop.slice(0, -2)\n : 0;\n fromEvent(scrollableEl, 'scroll')\n .pipe(\n debounceTime(100),\n switchMap(() => {\n const { scrollTop } =\n scrollableEl === window\n ? document.documentElement\n : (scrollableEl as HTMLElement);\n const activedItem =\n this.items.find(\n ({ target }) =>\n target.offsetTop +\n target.offsetHeight / 2 +\n ((scrollableEl === window &&\n (target.offsetParent as HTMLElement)?.offsetTop) ||\n 0) >\n scrollTop + paddingTop,\n ) || last(this.items);\n return activedItem ? of(activedItem) : EMPTY;\n }),\n tap(activedItem => {\n if (activedItem.id) {\n this.activeId = activedItem.id;\n this.cdr.markForCheck();\n }\n }),\n debounceTime(100),\n tap(activedItem => {\n if (injectId && activedItem.id) {\n history.replaceState(\n null,\n null,\n location.pathname + location.search + '#' + activedItem.id,\n );\n }\n }),\n takeUntil(this.destroy$$),\n )\n .subscribe();\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n}\n","<div\n [class]=\"bem.element('item')\"\n [class.active]=\"isActive(item)\"\n *ngFor=\"let item of treeItems; trackBy: trackById\"\n>\n <a\n *ngIf=\"item.label as label\"\n [href]=\"parent.injectId ? '#' + item.id : undefined\"\n (click)=\"onItemClick($event, item)\"\n >\n <ng-container *ngIf=\"isTemplateRef(label); else plain\">\n <ng-container\n *ngTemplateOutlet=\"label; context: item.labelContext\"\n ></ng-container>\n </ng-container>\n <ng-template #plain>\n {{ item.label }}\n </ng-template>\n </a>\n <aui-anchor-tree\n *ngIf=\"item.children?.length\"\n [treeItems]=\"item.children\"\n [(activeId)]=\"activeId\"\n ></aui-anchor-tree>\n</div>\n","<div [class]=\"bem.block()\">\n <aui-anchor-tree\n [treeItems]=\"treeItems\"\n [(activeId)]=\"activeId\"\n ></aui-anchor-tree>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AnchorComponent, AnchorTreeComponent } from './anchor.component';\nimport { AnchorDirective, AnchorLabelDirective } from './anchor.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n AnchorComponent,\n AnchorTreeComponent,\n AnchorDirective,\n AnchorLabelDirective,\n ],\n exports: [\n AnchorComponent,\n AnchorTreeComponent,\n AnchorDirective,\n AnchorLabelDirective,\n ],\n entryComponents: [AnchorComponent],\n})\nexport class AnchorModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-autocomplete-placeholder',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class AutocompletePlaceholderComponent {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n combineLatest,\n map,\n switchMap,\n take,\n tap,\n} from 'rxjs';\n\nimport { Bem, buildBem, coerceAttrBoolean, publishRef } from '../../utils';\nimport { AutocompleteComponent } from '../autocomplete.component';\n\n@Component({\n selector: 'aui-suggestion',\n templateUrl: './suggestion.component.html',\n styleUrls: ['./suggestion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class SuggestionComponent {\n bem: Bem = buildBem('aui-suggestion');\n\n private _disabled = false;\n private _value: string;\n private readonly value$$ = new BehaviorSubject<string>(this.value);\n\n @Input()\n get value() {\n return this._value;\n }\n\n set value(val) {\n this._value = val;\n this.value$$.next(val);\n }\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n this._disabled = coerceAttrBoolean(val);\n }\n\n @ViewChild('elRef', { static: true })\n elRef: ElementRef;\n\n selected = false;\n visible = true;\n focused = false;\n\n private readonly autocomplete: AutocompleteComponent;\n selected$: Observable<boolean>;\n visible$: Observable<boolean>;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n @Inject(forwardRef(() => AutocompleteComponent))\n autocomplete: any, // FIXME: workaround temporarily\n ) {\n this.autocomplete = autocomplete;\n this.selected$ = combineLatest([\n this.autocomplete.directive$$.pipe(\n switchMap(directive => directive.inputValue$),\n ),\n this.value$$,\n ]).pipe(\n map(([inputValue, selfValue]) => inputValue === selfValue),\n tap(selected => {\n this.selected = selected;\n }),\n publishRef(),\n );\n this.visible$ = combineLatest([\n this.autocomplete.directive$$.pipe(\n switchMap(directive => directive.filterFn$),\n ),\n this.autocomplete.directive$$.pipe(\n switchMap(directive => directive.inputValue$),\n ),\n this.value$$,\n ]).pipe(\n map(([filterFn, filterString, suggestion]) =>\n filterFn(filterString, suggestion),\n ),\n tap(visible => {\n this.visible = visible;\n }),\n publishRef(),\n );\n }\n\n onClick() {\n if (this.disabled) {\n return;\n }\n this.autocomplete.directive$$.pipe(take(1)).subscribe(directive => {\n directive.onSuggestionClick(this.value);\n });\n }\n\n focus() {\n this.focused = true;\n this.cdr.markForCheck();\n }\n\n blur() {\n this.focused = false;\n this.cdr.markForCheck();\n }\n}\n","<div\n #elRef\n [hidden]=\"!(visible$ | async)\"\n [class]=\"bem.block('medium')\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"selected$ | async\"\n [class.isFocused]=\"focused\"\n (click)=\"onClick()\"\n>\n <ng-content></ng-content>\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n Observable,\n ReplaySubject,\n combineLatest,\n of,\n debounceTime,\n distinctUntilChanged,\n map,\n startWith,\n switchMap,\n tap,\n withLatestFrom,\n} from 'rxjs';\n\nimport { publishRef } from '../utils';\n\nimport { AutocompletePlaceholderComponent } from './autocomplete-placeholder.component';\nimport { AutoCompleteDirective } from './autocomplete.directive';\nimport { SuggestionComponent } from './suggestion/suggestion.component';\n\n@Component({\n selector: 'aui-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class AutocompleteComponent implements AfterContentInit {\n @ContentChildren(SuggestionComponent, { descendants: true })\n suggestions: QueryList<SuggestionComponent>;\n\n @ContentChildren(AutocompletePlaceholderComponent)\n placeholder: QueryList<AutocompletePlaceholderComponent>;\n\n @ViewChild(TemplateRef, { static: true })\n template: TemplateRef<any>;\n\n @ViewChild('suggestionListRef', { static: true })\n suggestionListRef: ElementRef;\n\n hasVisibleSuggestion$: Observable<boolean>;\n hasContent$: Observable<boolean>;\n\n directive$$ = new ReplaySubject<AutoCompleteDirective>(1);\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n ngAfterContentInit() {\n this.hasVisibleSuggestion$ = this.suggestions.changes.pipe(\n startWith(this.suggestions),\n switchMap((suggestions: QueryList<SuggestionComponent>) =>\n suggestions.length > 0\n ? combineLatest(suggestions.map(suggestion => suggestion.visible$))\n : of([] as boolean[]),\n ),\n map(visible => visible.some(Boolean)),\n withLatestFrom(this.directive$$),\n map(([hasVisibleSuggestion, directive]) => {\n if (hasVisibleSuggestion && directive.defaultFirstSuggestion) {\n directive.autoFocusFirstSuggestion();\n }\n return hasVisibleSuggestion;\n }),\n distinctUntilChanged(),\n debounceTime(0),\n tap(() => this.cdr.markForCheck()),\n publishRef(),\n );\n\n this.hasContent$ = combineLatest([\n this.hasVisibleSuggestion$,\n this.placeholder.changes.pipe(\n startWith(this.placeholder),\n map(\n (list: QueryList<AutocompletePlaceholderComponent>) => !!list.length,\n ),\n ),\n ]).pipe(\n map(\n ([hasVisibleSuggestion, hasPlaceholder]) =>\n hasVisibleSuggestion || hasPlaceholder,\n ),\n );\n }\n}\n","<ng-template let-width=\"width\">\n <div\n [hidden]=\"!(hasContent$ | async)\"\n class=\"aui-autocomplete\"\n [style.minWidth]=\"width\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #suggestionListRef\n class=\"aui-autocomplete__content\"\n >\n <ng-content></ng-content>\n </div>\n <div\n [hidden]=\"hasVisibleSuggestion$ | async\"\n class=\"aui-autocomplete__placeholder\"\n >\n <ng-content select=\"aui-autocomplete-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n","export enum TooltipType {\n Default = 'default',\n Primary = 'primary',\n Success = 'success',\n Warning = 'warning',\n Error = 'error',\n Info = 'info',\n Plain = 'plain',\n}\n\nexport enum TooltipTrigger {\n Hover = 'hover',\n Click = 'click',\n Focus = 'focus',\n Manual = 'manual',\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Observable, Subject, combineLatest, map, startWith } from 'rxjs';\n\nimport { Bem, buildBem, publishRef } from '../utils';\n\nimport { TooltipType } from './tooltip.types';\n\n@Component({\n selector: 'aui-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class TooltipComponent {\n text: string;\n template: TemplateRef<any>;\n bem: Bem = buildBem('aui-tooltip');\n\n inputContent$: Observable<string | TemplateRef<any>>;\n inputType$: Observable<TooltipType>;\n inputPosition$: Observable<string>;\n inputClass$: Observable<string>;\n inputContext$: Observable<any>;\n\n text$: Observable<string>;\n template$: Observable<TemplateRef<any>>;\n class$: Observable<string>;\n context$: Observable<any>;\n\n hover$ = new Subject<boolean>();\n\n constructor(\n public elRef: ElementRef<HTMLElement>,\n public cdr: ChangeDetectorRef,\n ) {}\n\n setupInputs(inputs: {\n inputContent$: Observable<string | TemplateRef<any>>;\n inputType$: Observable<TooltipType>;\n inputPosition$: Observable<string>;\n inputClass$: Observable<string>;\n inputContext$: Observable<any>;\n }) {\n Object.assign(this, inputs);\n this.text$ = this.inputContent$.pipe(\n map(val => {\n if (typeof val === 'string') {\n return val;\n }\n return '';\n }),\n publishRef(),\n );\n this.template$ = this.inputContent$.pipe(\n map(val => {\n if (typeof val !== 'string') {\n return val;\n }\n return null;\n }),\n publishRef(),\n );\n this.class$ = combineLatest([\n this.inputPosition$.pipe(startWith('top')),\n this.inputType$.pipe(startWith(TooltipType.Default)),\n this.inputClass$.pipe(startWith('')),\n ]).pipe(\n map(([inputPosition, inputType, inputClass]) => {\n const b = this.bem.block();\n const dir = inputPosition.split(' ')[0];\n return inputType === TooltipType.Plain\n ? `${b}--${dir} ${inputClass}`\n : `${b} ${b}--${inputType} ${b}--${dir} ${inputClass}`;\n }),\n publishRef(),\n );\n this.context$ = this.inputContext$.pipe(publishRef());\n }\n}\n","<div\n [class]=\"class$ | async\"\n (mouseenter)=\"hover$.next(true)\"\n (mouseleave)=\"hover$.next(false)\"\n>\n {{ text$ | async }}\n <ng-container\n *ngIf=\"template$ | async\"\n [ngTemplateOutlet]=\"template$ | async\"\n [ngTemplateOutletContext]=\"context$ | async\"\n ></ng-container>\n</div>\n","import {\n HorizontalConnectionPos,\n OriginConnectionPosition,\n OverlayConnectionPosition,\n VerticalConnectionPos,\n} from '@angular/cdk/overlay';\n\nexport function getOriginPosition(position: string): {\n main: OriginConnectionPosition;\n fallback: OriginConnectionPosition;\n} {\n const pos = position.split(' ');\n let isXDir;\n if (pos[0] === 'start' || pos[0] === 'end') {\n isXDir = true;\n }\n const main = {\n originX: (pos[isXDir ? 0 : 1] as HorizontalConnectionPos) || 'center',\n originY: (pos[isXDir ? 1 : 0] as VerticalConnectionPos) || 'center',\n };\n const { x, y } = invertPosition(main.originX, main.originY);\n const fallback = {\n originX: isXDir ? x : main.originX,\n originY: !isXDir ? y : main.originY,\n };\n return { main, fallback };\n}\n\nexport function getOverlayPosition(position: string): {\n main: OverlayConnectionPosition;\n fallback: OverlayConnectionPosition;\n} {\n const pos = position.split(' ');\n let isXDir;\n if (pos[0] === 'start' || pos[0] === 'end') {\n isXDir = true;\n }\n const horizontal =\n (pos[isXDir ? 0 : 1] as HorizontalConnectionPos) || 'center';\n const vertical = (pos[isXDir ? 1 : 0] as VerticalConnectionPos) || 'center';\n const main = {\n overlayX: isXDir ? invertHorizontal(horizontal) : horizontal,\n overlayY: !isXDir ? invertVertical(vertical) : vertical,\n };\n const { x, y } = invertPosition(main.overlayX, main.overlayY);\n const fallback = {\n overlayX: isXDir ? x : main.overlayX,\n overlayY: !isXDir ? y : main.overlayY,\n };\n return { main, fallback };\n}\n\nexport function invertHorizontal(dir: HorizontalConnectionPos) {\n if (dir === 'start') {\n dir = 'end';\n } else if (dir === 'end') {\n dir = 'start';\n }\n return dir;\n}\n\nexport function invertVertical(dir: VerticalConnectionPos) {\n if (dir === 'top') {\n dir = 'bottom';\n } else if (dir === 'bottom') {\n dir = 'top';\n }\n return dir;\n}\n\nexport function invertPosition(\n x: HorizontalConnectionPos,\n y: VerticalConnectionPos,\n): { x: HorizontalConnectionPos; y: VerticalConnectionPos } {\n return { x: invertHorizontal(x), y: invertVertical(y) };\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n NgZone,\n OnDestroy,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { ReplaySubject, merge, debounceTime } from 'rxjs';\n\nimport { sleep } from '../utils';\n\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipTrigger, TooltipType } from './tooltip.types';\nimport { getOriginPosition, getOverlayPosition } from './utils';\n\nexport interface TooltipInterface {\n content: string | TemplateRef<any>;\n context: any;\n class: string;\n type: TooltipType;\n position: string;\n trigger: TooltipTrigger;\n disabled: boolean;\n hideOnClick: boolean;\n show: EventEmitter<void>;\n hide: EventEmitter<void>;\n}\n\nexport const DISPLAY_DELAY = 50;\nexport const HIDDEN_DELAY = 150;\n\n@Directive()\nexport class BaseTooltip<T = any>\n implements TooltipInterface, AfterViewInit, OnDestroy\n{\n set content(value: string | TemplateRef<any>) {\n this._content = value;\n this.inputContent$$.next(value);\n }\n\n get content() {\n return this._content;\n }\n\n set context(value: T) {\n this._context = value;\n this.inputContext$$.next(value);\n }\n\n get context() {\n return this._context;\n }\n\n set class(value: string) {\n this.inputClass$$.next(value);\n }\n\n set type(value: TooltipType) {\n if (!value) {\n return;\n }\n this.inputType$$.next(value);\n }\n\n set position(value: string) {\n if (!value || value === this._position) {\n return;\n }\n this._position = value;\n this.inputPosition$$.next(value);\n this.disposeTooltip();\n }\n\n get position() {\n return this._position;\n }\n\n set trigger(value) {\n if (!value || value === this._trigger) {\n return;\n }\n this._trigger = value;\n this.disposeTooltip();\n this.ngZone.run(this.updateListeners, this);\n }\n\n get trigger() {\n return this._trigger;\n }\n\n set disabled(value) {\n this._disabled = value;\n if (value) {\n this.disposeTooltip();\n }\n }\n\n get disabled() {\n return this._disabled;\n }\n\n hideOnClick = false;\n\n show = new EventEmitter<void>();\n hide = new EventEmitter<void>();\n\n protected overlayRef: OverlayRef;\n protected componentClass: ComponentType<any> = TooltipComponent;\n protected componentIns: TooltipComponent;\n protected hostHovered = false;\n protected tooltipHovered = false;\n protected listeners: Array<() => void> = [];\n protected unlistenBody: () => void;\n\n protected inputContent$$ = new ReplaySubject<string | TemplateRef<any>>(1);\n protected inputType$$ = new ReplaySubject<TooltipType>(1);\n protected inputPosition$$ = new ReplaySubject<string>(1);\n protected inputClass$$ = new ReplaySubject<string>(1);\n protected inputContext$$ = new ReplaySubject<any>(1);\n protected tooltipChanged$ = merge(\n this.inputContent$$,\n this.inputType$$,\n this.inputPosition$$,\n this.inputClass$$,\n this.inputContext$$,\n );\n\n protected _position = 'top';\n protected _trigger = TooltipTrigger.Hover;\n protected _disabled = false;\n protected _context: T;\n protected _content: string | TemplateRef<unknown>;\n\n get isCreated() {\n return !!this.overlayRef;\n }\n\n constructor(\n protected overlay: Overlay,\n protected viewContainerRef: ViewContainerRef,\n protected elRef: ElementRef<HTMLInputElement>,\n protected renderer: Renderer2,\n protected cdr: ChangeDetectorRef,\n protected ngZone: NgZone,\n ) {\n this.tooltipChanged$.pipe(debounceTime(0)).subscribe(() => {\n this.updatePosition();\n });\n }\n\n createTooltip() {\n if (this.disabled || this.isCreated || !this.content) {\n return;\n }\n this.overlayRef = this.createOverlay();\n const portal = new ComponentPortal(\n this.componentClass,\n this.viewContainerRef,\n );\n this.componentIns = this.overlayRef.attach(portal).instance;\n this.componentIns.setupInputs({\n inputClass$: this.inputClass$$.asObservable(),\n inputContent$: this.inputContent$$.asObservable(),\n inputContext$: this.inputContext$$.asObservable(),\n inputPosition$: this.inputPosition$$.asObservable(),\n inputType$: this.inputType$$.asObservable(),\n });\n\n if (this.trigger === TooltipTrigger.Hover) {\n this.componentIns.hover$.subscribe(hovered => {\n this.onTooltipHovered(hovered);\n });\n }\n if (\n this.trigger === TooltipTrigger.Hover ||\n this.trigger === TooltipTrigger.Click\n ) {\n this.unlistenBody = this.renderer.listen(\n 'body',\n 'click',\n this.onBodyClick.bind(this),\n );\n }\n\n this.show.emit();\n\n this.cdr.markForCheck();\n }\n\n disposeTooltip() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n this.componentIns = null;\n this.tooltipHovered = false;\n if (this.unlistenBody) {\n this.unlistenBody();\n this.unlistenBody = null;\n }\n this.hide.emit();\n }\n }\n\n toggleTooltip() {\n if (this.isCreated) {\n this.disposeTooltip();\n } else {\n this.createTooltip();\n }\n }\n\n updatePosition() {\n if (this.overlayRef) {\n this.overlayRef.updatePosition();\n }\n }\n\n ngAfterViewInit() {\n if (this.trigger === TooltipTrigger.Hover) {\n this.updateListeners();\n }\n }\n\n ngOnDestroy() {\n this.disposeTooltip();\n this.clearListeners();\n }\n\n protected updateListeners() {\n this.clearListeners();\n switch (this.trigger) {\n case TooltipTrigger.Click:\n this.listeners.push(\n this.renderer.listen(\n this.elRef.nativeElement,\n 'click',\n this.onClick.bind(this) as () => void,\n ),\n );\n break;\n case TooltipTrigger.Hover:\n this.listeners.push(\n this.renderer.listen(\n this.elRef.nativeElement,\n 'mouseenter',\n this.onMouseEnter.bind(this) as () => void,\n ),\n this.renderer.listen(\n this.elRef.nativeElement,\n 'mouseleave',\n this.onMouseLeave.bind(this) as () => void,\n ),\n );\n break;\n case TooltipTrigger.Focus:\n this.listeners.push(\n this.renderer.listen(\n this.elRef.nativeElement,\n 'focus',\n this.onFocus.bind(this),\n ),\n this.renderer.listen(\n this.elRef.nativeElement,\n 'blur',\n this.onBlur.bind(this),\n ),\n );\n break;\n case TooltipTrigger.Manual:\n break;\n }\n }\n\n protected clearListeners() {\n this.listeners.forEach(unListen => {\n unListen();\n });\n this.listeners = [];\n }\n\n protected createOverlay(): OverlayRef {\n const originPosition = getOriginPosition(this.position);\n const overlayPosition = getOverlayPosition(this.position);\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elRef)\n .withGrowAfterOpen(true)\n .withPositions([\n { ...originPosition.main, ...overlayPosition.main },\n { ...originPosition.fallback, ...overlayPosition.fallback },\n ]);\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition();\n\n const config = new OverlayConfig({\n positionStrategy,\n scrollStrategy,\n });\n return this.overlay.create(config);\n }\n\n protected async onMouseEnter() {\n this.hostHovered = true;\n if (!this.isCreated) {\n await sleep(DISPLAY_DELAY);\n if (this.hostHovered) {\n this.createTooltip();\n }\n }\n }\n\n protected async onMouseLeave() {\n this.hostHovered = false;\n await sleep(HIDDEN_DELAY);\n if (!this.tooltipHovered && !this.hostHovered) {\n this.disposeTooltip();\n }\n }\n\n protected async onTooltipHovered(hovered: boolean) {\n this.tooltipHovered = hovered;\n if (!hovered) {\n await sleep(HIDDEN_DELAY);\n if (!this.tooltipHovered && !this.hostHovered) {\n this.disposeTooltip();\n }\n }\n }\n\n protected onClick() {\n this.toggleTooltip();\n }\n\n protected onBodyClick(event: Event) {\n if (\n !this.elRef.nativeElement.contains(event.target as Node) &&\n (this.hideOnClick ||\n !this.componentIns.elRef.nativeElement.contains(event.target as Node))\n ) {\n this.disposeTooltip();\n }\n }\n\n protected onFocus() {\n this.createTooltip();\n }\n\n protected onBlur() {\n this.disposeTooltip();\n }\n}\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\n\nimport { BaseTooltip } from './base-tooltip';\n\n@Directive({\n selector: '[auiTooltip]',\n providers: [\n {\n provide: BaseTooltip,\n useExisting: TooltipDirective,\n },\n ],\n exportAs: 'auiTooltip',\n inputs: [\n 'content:auiTooltip',\n 'context:auiTooltipContext',\n 'class:auiTooltipClass',\n 'type:auiTooltipType',\n 'position:auiTooltipPosition',\n 'trigger:auiTooltipTrigger',\n 'disabled:auiTooltipDisabled',\n ],\n})\nexport class TooltipDirective extends BaseTooltip {\n @Input('auiTooltipHideOnClick')\n override hideOnClick = false;\n\n @Output('auiTooltipShow')\n override show = new EventEmitter<void>();\n\n @Output('auiTooltipHide')\n override hide = new EventEmitter<void>();\n}\n","import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';\n\nimport { BaseTooltip } from './base-tooltip';\n\n@Directive({\n selector: '[auiTooltipActive]',\n})\nexport class TooltipActiveDirective {\n @Input('auiTooltipActive')\n customClass: string | string[] = '';\n\n constructor(\n tooltipDirective: BaseTooltip,\n private readonly el: ElementRef,\n private readonly renderer: Renderer2,\n ) {\n tooltipDirective.show.subscribe(() => {\n this.addClass();\n });\n tooltipDirective.hide.subscribe(() => {\n this.removeClass();\n });\n }\n\n private addClass() {\n const classArr =\n typeof this.customClass === 'string'\n ? this.customClass.split(' ')\n : this.customClass;\n classArr.forEach(name => {\n this.renderer.addClass(this.el.nativeElement, name);\n });\n }\n\n private removeClass() {\n const classArr =\n typeof this.customClass === 'string'\n ? this.customClass.split(' ')\n : this.customClass;\n classArr.forEach(name => {\n this.renderer.removeClass(this.el.nativeElement, name);\n });\n }\n}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\n\n/**\n * Texts to render on the code editor.\n */\n@Injectable()\nexport class TooltipCopyIntl {\n copyTip = 'Click to copy';\n\n copySuccessTip = 'Copied to clipboard';\n\n copyFailTip = 'Copy failed';\n}\n\n// eslint-disable-next-line sonar/function-name\nexport function TOOLTIP_COPY_INTL_PROVIDER_FACTORY(\n parentIntl: TooltipCopyIntl,\n) {\n return parentIntl || new TooltipCopyIntl();\n}\n\n/** @docs-private */\nexport const TOOLTIP_COPY_INTL_INTL_PROVIDER = {\n // If there is already an CodeEditorIntl available, use that. Otherwise, provide a new one.\n provide: TooltipCopyIntl,\n deps: [[new Optional(), new SkipSelf(), TooltipCopyIntl]],\n useFactory: TOOLTIP_COPY_INTL_PROVIDER_FACTORY,\n};\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n NgZone,\n OnInit,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { BaseTooltip } from './base-tooltip';\nimport { TooltipCopyIntl } from './tooltip-intl';\n\n@Directive({\n selector: '[auiTooltipCopy]',\n inputs: ['position:auiTooltipPosition', 'disabled:auiTooltipDisabled'],\n})\nexport class TooltipCopyDirective extends BaseTooltip implements OnInit {\n @HostBinding('class.aui-tooltip-copy')\n className = true;\n\n @Input()\n get auiTooltipCopy() {\n return this._copyText || this.elRef.nativeElement.textContent;\n }\n\n set auiTooltipCopy(value: string) {\n this._copyText = value;\n }\n\n @Input()\n get auiTooltipCopyTip() {\n return this._copyTip || this.toolTipIntl.copyTip;\n }\n\n set auiTooltipCopyTip(value: string) {\n this._copyTip = value;\n }\n\n @Input()\n get auiTooltipCopySuccessTip() {\n return this._copySuccessTip || this.toolTipIntl.copySuccessTip;\n }\n\n set auiTooltipCopySuccessTip(value: string) {\n this._copySuccessTip = value;\n }\n\n @Input()\n get auiTooltipCopyFailTip() {\n return this._copyFailTip || this.toolTipIntl.copyFailTip;\n }\n\n set auiTooltipCopyFailTip(value: string) {\n this._copyFailTip = value;\n }\n\n private _copyText: string;\n private _copyTip: string;\n private _copySuccessTip: string;\n private _copyFailTip: string;\n\n constructor(\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n elRef: ElementRef,\n renderer: Renderer2,\n cdr: ChangeDetectorRef,\n ngZone: NgZone,\n private readonly toolTipIntl: TooltipCopyIntl,\n ) {\n super(overlay, viewContainerRef, elRef, renderer, cdr, ngZone);\n }\n\n ngOnInit() {\n this.content = this.auiTooltipCopyTip;\n this.hide.subscribe(() => {\n this.content = this.auiTooltipCopyTip;\n });\n }\n\n @HostListener('click')\n async onSourceClick() {\n if (!this.disabled) {\n try {\n await navigator.clipboard.writeText(this.auiTooltipCopy);\n this.content = this.auiTooltipCopySuccessTip;\n } catch {\n this.content = this.auiTooltipCopyFailTip;\n }\n }\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TooltipActiveDirective } from './tooltip-active.directive';\nimport { TooltipCopyDirective } from './tooltip-copy.directive';\nimport { TOOLTIP_COPY_INTL_INTL_PROVIDER } from './tooltip-intl';\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n imports: [CommonModule, OverlayModule],\n declarations: [\n TooltipDirective,\n TooltipComponent,\n TooltipActiveDirective,\n TooltipCopyDirective,\n ],\n entryComponents: [TooltipComponent],\n exports: [TooltipDirective, TooltipActiveDirective, TooltipCopyDirective],\n providers: [TOOLTIP_COPY_INTL_INTL_PROVIDER],\n})\nexport class TooltipModule {}\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Host,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n fromEvent,\n merge,\n takeUntil,\n debounceTime,\n startWith,\n} from 'rxjs';\n\nimport { BaseTooltip, TooltipTrigger, TooltipType } from '../tooltip';\nimport { scrollIntoView } from '../utils';\n\nimport { AutocompleteComponent } from './autocomplete.component';\nimport { AutoCompleteContext, SuggestionFilterFn } from './autocomplete.types';\nimport { SuggestionComponent } from './suggestion/suggestion.component';\n\n@Directive({\n selector: 'input[auiAutocomplete],textarea[auiAutocomplete]',\n exportAs: 'auiAutocomplete',\n inputs: ['class:auiAutocompleteClass'],\n host: {\n autocomplete: 'off',\n },\n})\nexport class AutoCompleteDirective\n extends BaseTooltip<AutoCompleteContext>\n implements OnInit, OnDestroy, AfterViewInit\n{\n @Input('auiAutocomplete')\n get autocomplete() {\n return this._autocomplete;\n }\n\n set autocomplete(val) {\n if (val === this._autocomplete) {\n return;\n }\n val.directive$$.next(this);\n this._autocomplete = val;\n this.content = val.template;\n }\n\n @Input('auiAutocompleteFilterFn')\n @Input()\n get filterFn() {\n return this._filterFn;\n }\n\n set filterFn(val) {\n if (val !== this._filterFn) {\n this._filterFn = val;\n this.filterFn$$.next(val);\n }\n }\n\n @Input('auiAutocompleteDefaultFirstSuggestion')\n defaultFirstSuggestion = true;\n\n @Input('auiAutocompleteTrigger')\n suggestionTrigger: 'auto' | 'input' = 'auto';\n\n declare innerSelector: string;\n\n @Output('auiAutocompleteShow')\n override show = new EventEmitter<void>();\n\n @Output('auiAutocompleteHide')\n override hide = new EventEmitter<void>();\n\n @Output('auiAutocompleteSelected')\n selected = new EventEmitter<string>();\n\n private _autocomplete: AutocompleteComponent;\n private focusedSuggestion: SuggestionComponent;\n\n private readonly inputValue$$ = new BehaviorSubject<string>('');\n private readonly filterFn$$ = new BehaviorSubject<SuggestionFilterFn>(\n this.filterFn,\n );\n\n private readonly unsubscribe$ = new Subject<void>();\n\n inputValue$: Observable<string> = this.inputValue$$.asObservable();\n filterFn$: Observable<SuggestionFilterFn> = this.filterFn$$.asObservable();\n\n get input(): HTMLInputElement {\n const el = this.elRef.nativeElement;\n return this.innerSelector ? el.querySelector(this.innerSelector) : el;\n }\n\n constructor(\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n elRef: ElementRef<HTMLInputElement>,\n renderer: Renderer2,\n cdr: ChangeDetectorRef,\n ngZone: NgZone,\n @Optional()\n @Host()\n private readonly ngControl: NgControl,\n ) {\n super(overlay, viewContainerRef, elRef, renderer, cdr, ngZone);\n this.type = TooltipType.Plain;\n this.trigger = TooltipTrigger.Manual;\n this.position = 'bottom start';\n this.hideOnClick = true;\n }\n\n ngOnInit() {\n this.show.subscribe(() => {\n this.updateSuggestionsContext();\n });\n this.hide.subscribe(() => {\n this.resetFocusedSuggestion();\n });\n\n if (this.ngControl) {\n this.ngControl.valueChanges\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe((value: string | string[]) => {\n if (!Array.isArray(value)) {\n this.inputValue$$.next(value);\n }\n });\n\n this.ngControl.statusChanges\n .pipe(startWith(this.ngControl.status), takeUntil(this.unsubscribe$))\n .subscribe(status => {\n this.disabled = status === 'DISABLED';\n });\n }\n }\n\n override ngAfterViewInit() {\n const input = this.input;\n\n merge(\n fromEvent(this.elRef.nativeElement, 'click'),\n fromEvent(input, 'focus'),\n )\n .pipe(debounceTime(0), takeUntil(this.unsubscribe$))\n .subscribe(() => this.onFocus());\n\n fromEvent(input, 'blur')\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => this.onBlur());\n\n fromEvent(input, 'input')\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(ev => this.onInput(ev));\n\n fromEvent<KeyboardEvent>(input, 'keydown')\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(ev => this.onKeyDown(ev));\n }\n\n override ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n override onFocus() {\n if (this.suggestionTrigger === 'auto') {\n super.onFocus();\n }\n }\n\n onInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.inputValue$$.next(value);\n this.createTooltip();\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown':\n this.focusSuggestionDir('down');\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowUp':\n this.focusSuggestionDir('up');\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Enter':\n if (this.focusedSuggestion) {\n this.selectFocusedOption();\n event.stopPropagation();\n event.preventDefault();\n }\n break;\n case 'Escape':\n this.disposeTooltip();\n event.stopPropagation();\n event.preventDefault();\n break;\n }\n }\n\n updateSuggestionsContext() {\n this.context = {\n ...this.context,\n width: this.elRef.nativeElement.offsetWidth + 'px',\n };\n }\n\n onSuggestionClick(value: string) {\n let isArrCtrl = false;\n\n if (this.ngControl) {\n const { control } = this.ngControl;\n isArrCtrl = Array.isArray(control.value);\n control.patchValue(isArrCtrl ? [...control.value, value] : value);\n } else {\n this.input.value = value;\n }\n\n this.inputValue$$.next(isArrCtrl ? '' : value);\n\n this.selected.emit(value);\n this.disposeTooltip();\n }\n\n override createTooltip() {\n super.createTooltip();\n this.autoFocusFirstSuggestion();\n }\n\n autoFocusFirstSuggestion() {\n const focusedSuggestion = this.autocomplete.suggestions.find(\n suggestion => suggestion.focused,\n );\n if (focusedSuggestion) {\n return;\n }\n const selectedSuggestion = this.autocomplete.suggestions.find(\n suggestion => suggestion.selected,\n );\n if (selectedSuggestion) {\n this.resetFocusedSuggestion(selectedSuggestion);\n requestAnimationFrame(() => {\n this.scrollToSuggestion(selectedSuggestion);\n });\n } else if (this.defaultFirstSuggestion) {\n const firstFocusableSuggestion = this.autocomplete.suggestions.find(\n suggestion => suggestion.visible && !suggestion.disabled,\n );\n this.resetFocusedSuggestion(firstFocusableSuggestion);\n if (firstFocusableSuggestion) {\n requestAnimationFrame(() => {\n this.scrollToSuggestion(firstFocusableSuggestion);\n });\n }\n }\n }\n\n private focusSuggestionDir(dir: 'down' | 'up') {\n if (!this.isCreated) {\n this.createTooltip();\n return;\n }\n const visibleSuggestions = this.autocomplete.suggestions.filter(\n suggestion => suggestion.visible && !suggestion.disabled,\n );\n if (visibleSuggestions.length === 0) {\n return;\n }\n const step = dir === 'down' ? 1 : -1;\n let i = visibleSuggestions.indexOf(this.focusedSuggestion);\n i = i + step;\n if (i >= visibleSuggestions.length) {\n i = 0;\n } else if (i < 0) {\n i = visibleSuggestions.length - 1;\n }\n this.resetFocusedSuggestion(visibleSuggestions[i]);\n this.scrollToSuggestion(this.focusedSuggestion);\n }\n\n private resetFocusedSuggestion(\n focusedSuggestion: SuggestionComponent = null,\n ) {\n if (this.focusedSuggestion) {\n this.focusedSuggestion.blur();\n }\n this.focusedSuggestion = focusedSuggestion;\n if (this.focusedSuggestion) {\n this.focusedSuggestion.focus();\n }\n }\n\n private scrollToSuggestion(suggestion: SuggestionComponent) {\n if (this.autocomplete.suggestionListRef) {\n scrollIntoView(\n this.autocomplete.suggestionListRef.nativeElement,\n suggestion.elRef.nativeElement,\n );\n }\n }\n\n protected selectFocusedOption() {\n if (this.focusedSuggestion) {\n this.onSuggestionClick(this.focusedSuggestion.value);\n }\n }\n\n private _filterFn(inputValue: string, suggestion: string) {\n return suggestion?.toLowerCase().includes(inputValue?.toLowerCase() ?? '');\n }\n}\n\n@Directive({\n selector: '[auiAutocomplete]:not(input):not(textarea)',\n exportAs: 'auiAutocomplete',\n inputs: ['class:auiAutocompleteClass'],\n host: {\n autocomplete: 'off',\n },\n})\nexport class CustomAutoCompleteDirective extends AutoCompleteDirective {\n @Input('auiAutocompleteInnerSelector')\n override innerSelector = 'input,textarea';\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiSuggestionGroupTitle]',\n exportAs: 'auiSuggestionGroupTitle',\n host: {\n '[class.aui-suggestion-group__title]': 'true',\n },\n})\nexport class SuggestionGroupTitleDirective {}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n QueryList,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { Observable, combineLatest, of, map, startWith, switchMap } from 'rxjs';\n\nimport { publishRef } from '../../utils';\nimport { SuggestionComponent } from '../suggestion/suggestion.component';\n\n@Component({\n selector: 'aui-suggestion-group',\n templateUrl: './suggestion-group.component.html',\n styleUrls: ['./suggestion-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class SuggestionGroupComponent implements AfterContentInit {\n @ContentChildren(forwardRef(() => SuggestionComponent))\n suggestions: QueryList<SuggestionComponent>;\n\n hasVisibleSuggestion$: Observable<boolean>;\n\n ngAfterContentInit() {\n this.hasVisibleSuggestion$ = this.suggestions.changes.pipe(\n startWith(this.suggestions),\n switchMap((options: QueryList<SuggestionComponent>) =>\n options.length > 0\n ? combineLatest(options.map(node => node.visible$))\n : of([false]),\n ),\n map(visible => visible.some(Boolean)),\n publishRef(),\n );\n }\n}\n","<div\n [hidden]=\"!(hasVisibleSuggestion$ | async)\"\n class=\"aui-suggestion-group\"\n>\n <ng-content select=\"[auiSuggestionGroupTitle]\"></ng-content>\n <div class=\"aui-suggestion-group__content\"><ng-content></ng-content></div>\n</div>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TooltipModule } from '../tooltip';\n\nimport { AutocompletePlaceholderComponent } from './autocomplete-placeholder.component';\nimport { AutocompleteComponent } from './autocomplete.component';\nimport {\n AutoCompleteDirective,\n CustomAutoCompleteDirective,\n} from './autocomplete.directive';\nimport { SuggestionGroupTitleDirective } from './helper-directives';\nimport { SuggestionGroupComponent } from './suggestion-group/suggestion-group.component';\nimport { SuggestionComponent } from './suggestion/suggestion.component';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, TooltipModule],\n declarations: [\n AutoCompleteDirective,\n CustomAutoCompleteDirective,\n AutocompleteComponent,\n SuggestionComponent,\n AutocompletePlaceholderComponent,\n SuggestionGroupComponent,\n SuggestionGroupTitleDirective,\n ],\n exports: [\n AutoCompleteDirective,\n CustomAutoCompleteDirective,\n AutocompleteComponent,\n SuggestionComponent,\n AutocompletePlaceholderComponent,\n SuggestionGroupComponent,\n SuggestionGroupTitleDirective,\n ],\n})\nexport class AutocompleteModule {}\n","import { CdkScrollable } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Optional,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n combineLatest,\n fromEvent,\n distinctUntilChanged,\n map,\n switchMap,\n throttleTime,\n} from 'rxjs';\n\ntype TargetType = Element | Window | string;\n\n@Component({\n selector: 'aui-back-top',\n templateUrl: './back-top.component.html',\n styleUrls: ['./back-top.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class BackTopComponent {\n @Input()\n set visibilityHeight(val: number) {\n this._visibilityHeight = val;\n this.visibilityHeight$$.next(val);\n }\n\n get visibilityHeight() {\n return this._visibilityHeight;\n }\n\n @Input()\n set target(val: TargetType) {\n this._target = val;\n this.target$$.next(val);\n }\n\n get target() {\n return this._target;\n }\n\n @Output()\n click = new EventEmitter<Event>();\n\n private _visibilityHeight = 400;\n private readonly target$$ = new BehaviorSubject<TargetType>(this.target);\n private readonly visibilityHeight$$ = new BehaviorSubject<number>(\n this.visibilityHeight,\n );\n\n private _target: TargetType;\n private _scrollTarget: Element | Window;\n\n constructor(@Optional() private readonly cdkScrollable: CdkScrollable) {}\n\n isDisplayed$ = combineLatest([\n this.target$$.asObservable().pipe(\n map(target => this.getTarget(target)),\n switchMap(target =>\n fromEvent(target, 'scroll').pipe(\n // use default scheduler\n throttleTime(50, undefined, { leading: true, trailing: true }),\n map(() => this.getTargetScrollTop(target)),\n ),\n ),\n ),\n this.visibilityHeight$$,\n ]).pipe(\n map(([scrollTop, visibilityHeight]) => scrollTop >= visibilityHeight),\n distinctUntilChanged(),\n );\n\n getTargetScrollTop(target: Element | Window) {\n if (target === window) {\n return document.documentElement.scrollTop;\n }\n return (target as HTMLElement).scrollTop;\n }\n\n handleClick(event: Event) {\n this._scrollTarget.scrollTo({ top: 0, behavior: 'smooth' });\n this.click.emit(event);\n }\n\n getTarget(target: TargetType): Element | Window {\n const scrollTarget =\n (typeof target === 'string' && document.querySelector(target)) ||\n this.cdkScrollable?.getElementRef().nativeElement ||\n window;\n this._scrollTarget = scrollTarget;\n return scrollTarget;\n }\n}\n","<div\n class=\"aui-back-top\"\n (click)=\"handleClick($event)\"\n [class.show]=\"isDisplayed$ | async\"\n>\n <aui-icon\n icon=\"back_top\"\n class=\"aui-back-top__icon\"\n ></aui-icon>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/icon.module';\n\nimport { BackTopComponent } from './back-top.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [BackTopComponent],\n exports: [BackTopComponent],\n})\nexport class BackTopModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-breadcrumb-item',\n templateUrl: './breadcrumb-item.component.html',\n styleUrls: ['./breadcrumb-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class BreadcrumbItemComponent {\n get separator() {\n return this._separator;\n }\n\n set separator(val) {\n this._separator = val;\n this.cdr.markForCheck();\n }\n\n get separatorIcon() {\n return this._separatorIcon;\n }\n\n set separatorIcon(val) {\n this._separatorIcon = val;\n this.cdr.markForCheck();\n }\n\n private _separator = '/';\n private _separatorIcon = '';\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n}\n","<div class=\"aui-breadcrumb__item\">\n <span class=\"aui-breadcrumb__content\"><ng-content></ng-content></span>\n <span class=\"aui-breadcrumb__separator\">\n <ng-container *ngIf=\"!separatorIcon\">{{ separator }}</ng-container>\n <aui-icon\n *ngIf=\"separatorIcon\"\n [icon]=\"separatorIcon\"\n ></aui-icon>\n </span>\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\n\n@Component({\n selector: 'aui-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class BreadcrumbComponent implements AfterContentInit {\n @Input()\n get separator() {\n return this._separator;\n }\n\n set separator(val) {\n if (val === this._separator) {\n return;\n }\n this._separator = val;\n if (this.items) {\n this.items.forEach(item => {\n item.separator = val;\n });\n }\n }\n\n @Input()\n get separatorIcon() {\n return this._separatorIcon;\n }\n\n set separatorIcon(val) {\n if (val === this._separatorIcon) {\n return;\n }\n this._separatorIcon = val;\n if (this.items) {\n this.items.forEach(item => {\n item.separatorIcon = val;\n });\n }\n }\n\n @ContentChildren(BreadcrumbItemComponent)\n items: QueryList<BreadcrumbItemComponent>;\n\n private _separator = '/';\n private _separatorIcon = '';\n\n ngAfterContentInit() {\n this.items.forEach(item => {\n item.separator = this.separator;\n item.separatorIcon = this.separatorIcon;\n });\n }\n}\n","<div class=\"aui-breadcrumb\"><ng-content></ng-content></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [BreadcrumbComponent, BreadcrumbItemComponent],\n exports: [BreadcrumbComponent, BreadcrumbItemComponent],\n})\nexport class BreadcrumbModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class CardComponent {\n @Input() divider = true;\n}\n","<div\n class=\"aui-card\"\n [class.hasDivider]=\"divider\"\n>\n <ng-content select=\"[auiCardHeader]\"></ng-content>\n <div class=\"aui-card__content\"><ng-content></ng-content></div>\n <ng-content select=\"[auiCardFooter]\"></ng-content>\n</div>\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[auiCardHeader]',\n host: {\n '[class.aui-card__header]': 'true',\n '[class.aui-card__header--secondary]': 'size === \"secondary\"',\n },\n})\nexport class CardHeaderDirective {\n @Input()\n size: 'default' | 'secondary' = 'default';\n}\n\n@Directive({\n selector: '[auiCardFooter]',\n host: {\n '[class.aui-card__footer]': 'true',\n },\n})\nexport class CardFooterDirective {}\n\n@Directive({\n selector: '[auiSectionTitle]',\n host: {\n '[class.aui-section__title]': 'true',\n },\n})\nexport class SectionTitleDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-section',\n templateUrl: './section.component.html',\n styleUrls: ['./section.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class SectionComponent {}\n","<div class=\"aui-section\">\n <ng-content select=\"[auiSectionTitle]\"></ng-content>\n <div class=\"aui-section__content\"><ng-content></ng-content></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { CardComponent } from './card.component';\nimport {\n CardFooterDirective,\n CardHeaderDirective,\n SectionTitleDirective,\n} from './helper-directives';\nimport { SectionComponent } from './section.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n CardComponent,\n CardHeaderDirective,\n CardFooterDirective,\n SectionComponent,\n SectionTitleDirective,\n ],\n exports: [\n CardComponent,\n CardHeaderDirective,\n CardFooterDirective,\n SectionComponent,\n SectionTitleDirective,\n ],\n})\nexport class CardModule {}\n","import {\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ReplaySubject } from 'rxjs';\n\nimport { coerceAttrBoolean } from '../utils';\n\n/**\n * form control 内部不保持 value 属性,当不使用 ngModel 时可以通过 [(value)] 实现双向绑定;\n * 也可以分别传入 value 和 监听 valueChange 事件以实现阻断用户操作的功能。\n */\n@Directive()\nexport class CommonFormControl<V, M = V> implements ControlValueAccessor {\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n this._disabled = coerceAttrBoolean(val);\n }\n\n @Input()\n get readonly() {\n return this.disabled;\n }\n\n set readonly(val) {\n this.disabled = val;\n }\n\n @Input('value')\n get propValue() {\n return this._propValue;\n }\n\n set propValue(val) {\n if (val === this._propValue) {\n return;\n }\n this._propValue = val;\n this.writeValue(val);\n }\n\n @Output()\n valueChange = new EventEmitter<V>();\n\n protected onChange: (_: V) => void;\n protected onTouched: () => void;\n private _propValue: V;\n private _disabled = false;\n\n model: M = null;\n model$ = new ReplaySubject<M>(1);\n\n constructor(protected cdr: ChangeDetectorRef) {\n this.model$.subscribe(model => {\n this.model = model;\n this.cdr.markForCheck();\n });\n }\n\n registerOnChange(fn: (_: V) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n writeValue(value: V) {\n this.model$.next(this.valueIn(value));\n }\n\n emitModel(model: M) {\n this.emitValue(this.modelOut(model));\n }\n\n emitValue(value: V) {\n if (this.onChange) {\n this.onChange(value);\n this.writeValue(value);\n }\n this.valueChange.emit(value);\n }\n\n protected valueIn(value: V): M {\n return value as any;\n }\n\n protected modelOut(model: M): V {\n return model as any;\n }\n}\n\n/**\n * @deprecated use {@link CommonFormControl} instead\n */\nexport const CommonForm = CommonFormControl;\n","import { ValueOf } from '../types';\n\nexport const LabelPosition = {\n Top: 'top',\n Left: 'left',\n Right: 'right',\n} as const;\n\nexport const FormItemWidth = {\n Small: 'small',\n Medium: 'medium',\n Large: 'large',\n} as const;\n\nexport type LabelPosition = ValueOf<typeof LabelPosition>;\n\nexport type FormItemWidth = ValueOf<typeof FormItemWidth>;\n","import { Directive, Inject, Input, Optional } from '@angular/core';\nimport { ControlContainer, FormGroupDirective, NgForm } from '@angular/forms';\nimport { BehaviorSubject, Observable, distinctUntilChanged } from 'rxjs';\n\nimport { LabelPosition } from './form.types';\n\n@Directive({\n selector: 'form[auiForm]',\n exportAs: 'auiForm',\n host: {\n '[class.aui-form]': 'true',\n '[class.aui-form--inline]': 'inline',\n '[class.ng-submitted]': 'ngClassSubmitted',\n },\n})\nexport class FormDirective {\n get ngClassSubmitted() {\n return (this.controlContainer?.formDirective as NgForm | FormGroupDirective)\n .submitted;\n }\n\n private readonly labelWidth$$ = new BehaviorSubject<string>(null);\n private readonly labelPosition$$ = new BehaviorSubject<LabelPosition>(\n LabelPosition.Right,\n );\n\n private readonly emptyAddon$$ = new BehaviorSubject<boolean>(false);\n\n @Input('auiFormLabelWidth')\n set labelWidth(val: string) {\n this.labelWidth$$.next(val);\n }\n\n @Input('auiFormLabelPosition')\n set labelPosition(val: LabelPosition) {\n this.labelPosition$$.next(val);\n }\n\n @Input('auiFormEmptyAddon')\n set emptyAddon(val: boolean) {\n this.emptyAddon$$.next(val);\n }\n\n @Input('auiFormInline')\n inline = false;\n\n labelWidth$: Observable<string> = this.labelWidth$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n labelPosition$: Observable<LabelPosition> = this.labelPosition$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n emptyAddon$: Observable<boolean> = this.emptyAddon$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n constructor(\n @Inject(ControlContainer)\n @Optional()\n public controlContainer?: ControlContainer,\n ) {}\n}\n","import { Directive, Input } from '@angular/core';\n\nimport { coerceAttrBoolean } from '../utils';\n\n@Directive({\n selector: 'label[auiFormItemLabel]',\n host: {\n '[class.aui-form-item__label]': 'true',\n },\n})\nexport class FormItemLabelDirective {}\n\n@Directive({\n selector: '[auiFormItemHint]',\n host: {\n '[class.aui-form-item__hint]': 'true',\n },\n})\nexport class FormItemHintDirective {}\n\n@Directive({\n selector: '[auiFormItemAddon]',\n host: {\n '[class.aui-form-item__addon]': 'true',\n },\n})\nexport class FormItemAddonDirective {}\n\n@Directive({\n selector: '[auiFormItemError]',\n host: {\n '[class.aui-form-item__error]': 'true',\n },\n})\nexport class FormItemErrorDirective {}\n\n@Directive({\n selector: '[auiFormItemControl]',\n host: {\n '[class.aui-form-item__control]': 'true',\n },\n})\nexport class FormItemControlDirective {\n @Input()\n get required() {\n return this._required;\n }\n\n set required(val: boolean | '') {\n this._required = coerceAttrBoolean(val);\n }\n\n private _required = false;\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport {\n Observable,\n Subject,\n combineLatest,\n merge,\n map,\n startWith,\n switchMap,\n takeUntil,\n} from 'rxjs';\n\nimport { Bem, buildBem, publishRef } from '../../utils';\nimport { FormDirective } from '../form.directive';\nimport { FormItemWidth, LabelPosition } from '../form.types';\nimport {\n FormItemAddonDirective,\n FormItemControlDirective,\n FormItemErrorDirective,\n FormItemHintDirective,\n FormItemLabelDirective,\n} from '../helper-directives';\n\n@Component({\n selector: 'aui-form-item',\n templateUrl: './form-item.component.html',\n styleUrls: ['./form-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class FormItemComponent implements AfterContentInit, OnDestroy {\n bem: Bem = buildBem('aui-form-item');\n\n @Input()\n labelWidth: string = null;\n\n @Input()\n width: FormItemWidth;\n\n @Input()\n labelPosition: LabelPosition = LabelPosition.Right;\n\n @Input()\n emptyAddon = false;\n\n @Input()\n plain = false;\n\n @ContentChild(FormItemLabelDirective, { static: false })\n itemLabel: FormItemLabelDirective;\n\n @ContentChild(FormItemControlDirective, { static: false })\n itemControl: FormItemControlDirective;\n\n @ContentChildren(NgControl, { descendants: true })\n ngControls: QueryList<NgControl>;\n\n @ContentChildren(FormItemAddonDirective)\n addons: QueryList<FormItemAddonDirective>;\n\n @ContentChildren(FormItemErrorDirective)\n errors: QueryList<FormItemErrorDirective>;\n\n @ContentChildren(FormItemHintDirective)\n hints: QueryList<FormItemHintDirective>;\n\n hasError$: Observable<boolean>;\n errorCount$: Observable<number>;\n hintCount$: Observable<number>;\n parentForm: NgForm | FormGroupDirective;\n\n private readonly destroy$$ = new Subject<void>();\n\n get formItemWidthClass() {\n return this.width\n ? this.bem.element('content', { [this.width]: true })\n : '';\n }\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n @Optional() private readonly auiForm: FormDirective,\n @Optional() ngForm: NgForm,\n @Optional() formGroup: FormGroupDirective,\n ) {\n this.parentForm = formGroup || ngForm;\n if (this.auiForm) {\n this.subscribeInputsFromParent();\n }\n }\n\n ngAfterContentInit() {\n this.hasError$ = this.ngControls.changes.pipe(\n startWith(this.ngControls),\n switchMap((controls: QueryList<NgControl>) =>\n combineLatest(\n controls.map(control => this.mapControlStatus(control)),\n ).pipe(map(statuses => statuses.some(Boolean))),\n ),\n );\n\n this.errorCount$ = this.errors.changes.pipe(\n map(errors => errors.length),\n startWith(this.errors.length),\n );\n\n this.hintCount$ = this.hints.changes.pipe(\n map(hints => hints.length),\n startWith(this.hints.length),\n );\n }\n\n subscribeInputsFromParent() {\n this.auiForm.labelWidth$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(width => {\n this.labelWidth = width;\n this.cdr.markForCheck();\n });\n this.auiForm.labelPosition$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(position => {\n this.labelPosition = position;\n this.cdr.markForCheck();\n });\n this.auiForm.emptyAddon$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(emptyAddon => {\n this.emptyAddon = emptyAddon;\n this.cdr.markForCheck();\n });\n }\n\n mapControlStatus(control: NgControl) {\n return (\n this.parentForm\n ? combineLatest([\n control.statusChanges.pipe(startWith(control.status)),\n merge(\n this.parentForm.statusChanges.pipe(\n startWith(this.parentForm.status),\n ),\n this.parentForm.ngSubmit,\n ),\n ]).pipe(map(([status]: string[]) => status))\n : control.statusChanges\n ).pipe(\n map(\n (status: string) =>\n status === 'INVALID' && (control.dirty || this.parentForm?.submitted),\n ),\n publishRef(),\n );\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n }\n}\n","<div\n [class]=\"bem.block(labelPosition)\"\n [class.isPlain]=\"plain\"\n [class.hasError]=\"hasError$ | async\"\n>\n <div\n [ngClass]=\"\n bem.element(\n 'label-wrapper',\n { required: !!itemControl?.required },\n labelPosition\n )\n \"\n [class.hasLabel]=\"!!itemLabel\"\n [style.width]=\"labelWidth\"\n >\n <ng-content select=\"label[auiFormItemLabel]\"></ng-content>\n </div>\n <div class=\"aui-form-item__container\">\n <div\n class=\"aui-form-item__content\"\n [ngClass]=\"formItemWidthClass\"\n >\n <ng-content></ng-content>\n <div\n *ngIf=\"emptyAddon || addons?.length\"\n class=\"aui-form-item__addon-wrapper\"\n >\n <ng-content select=\"[auiFormItemAddon]\"></ng-content>\n </div>\n </div>\n <div\n *ngIf=\"(hasError$ | async) && (errorCount$ | async)\"\n class=\"aui-form-item__error-wrapper\"\n >\n <ng-content select=\"[auiFormItemError]\"></ng-content>\n </div>\n <div\n *ngIf=\"hintCount$ | async\"\n class=\"aui-form-item__hint-wrapper\"\n >\n <ng-content select=\"[auiFormItemHint]\"></ng-content>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { FormItemComponent } from './form-item/form-item.component';\nimport { FormDirective } from './form.directive';\nimport {\n FormItemAddonDirective,\n FormItemControlDirective,\n FormItemErrorDirective,\n FormItemHintDirective,\n FormItemLabelDirective,\n} from './helper-directives';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n FormDirective,\n FormItemComponent,\n FormItemAddonDirective,\n FormItemErrorDirective,\n FormItemHintDirective,\n FormItemLabelDirective,\n FormItemControlDirective,\n ],\n exports: [\n FormDirective,\n FormItemComponent,\n FormItemAddonDirective,\n FormItemErrorDirective,\n FormItemHintDirective,\n FormItemLabelDirective,\n FormItemControlDirective,\n ],\n})\nexport class FormModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { CommonFormControl } from '../../form';\nimport { TrackFn } from '../../select';\nimport { CheckboxComponent } from '../checkbox.component';\n\n@Component({\n selector: 'aui-checkbox-group',\n templateUrl: './checkbox-group.component.html',\n styleUrls: ['./checkbox-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxGroupComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxGroupComponent<T> extends CommonFormControl<T[]> {\n private _trackFn: TrackFn<T>;\n\n @Input()\n direction: 'row' | 'column' = 'row';\n\n @Input()\n get trackFn() {\n return this._trackFn;\n }\n\n set trackFn(val) {\n if (val !== this._trackFn) {\n this._trackFn = val;\n }\n }\n\n @ContentChildren(forwardRef(() => CheckboxComponent), {\n descendants: true,\n })\n checkboxes: QueryList<CheckboxComponent<T>>;\n\n onCheckboxChange(checkbox: CheckboxComponent<T>) {\n if (this.onTouched) {\n this.onTouched();\n }\n const values = this.checkboxes\n .filter(item => (item === checkbox ? !item.model : item.model))\n .map(item => item.label);\n this.emitValue(values);\n }\n\n onCheckboxBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n}\n","<div class=\"aui-checkbox-group aui-checkbox-group--{{ direction }}\">\n <ng-content></ng-content>\n</div>\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, Subject, combineLatest, map, takeUntil } from 'rxjs';\n\nimport { CommonFormControl } from '../form';\n\nimport { CheckboxGroupComponent } from './checkbox-group/checkbox-group.component';\n\nlet uniqueId = 0;\n@Component({\n selector: 'aui-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxComponent<T>\n extends CommonFormControl<boolean>\n implements AfterViewInit, OnDestroy\n{\n id = `aui-checkbox-${uniqueId++}`;\n\n @Input()\n name = '';\n\n @Input()\n type = 'label';\n\n @Input()\n get label() {\n return this._label;\n }\n\n set label(val) {\n this._label = val;\n this.label$$.next(val);\n }\n\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: boolean) {\n this._indeterminate = value;\n }\n\n @ViewChild('elRef', { static: true })\n elRef: ElementRef;\n\n private readonly checkboxGroup: CheckboxGroupComponent<T>;\n private _label: T;\n private readonly label$$ = new BehaviorSubject(this.label);\n private _indeterminate = false;\n private readonly destroy$$ = new Subject<void>();\n\n constructor(\n cdr: ChangeDetectorRef,\n @Optional()\n @Inject(forwardRef(() => CheckboxGroupComponent))\n checkboxGroup: CheckboxGroupComponent<T>,\n private readonly focusMonitor: FocusMonitor,\n ) {\n super(cdr);\n this.checkboxGroup = checkboxGroup;\n if (this.checkboxGroup) {\n combineLatest([this.checkboxGroup.model$, this.label$$])\n .pipe(\n takeUntil(this.destroy$$),\n map(([values, label]) => {\n if (this.checkboxGroup.trackFn) {\n return values?.some(\n v =>\n this.checkboxGroup.trackFn(v) ===\n this.checkboxGroup.trackFn(label),\n );\n }\n return values?.includes(label);\n }),\n )\n .subscribe(checked => {\n this.writeValue(!!checked);\n });\n }\n }\n\n ngAfterViewInit() {\n this.focusMonitor.monitor(this.elRef.nativeElement, true);\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.focusMonitor.stopMonitoring(this.elRef.nativeElement);\n }\n\n onClick() {\n if (this.disabled) {\n return;\n }\n if (this.indeterminate) {\n this._indeterminate = false;\n }\n this.emitValue(!this.model);\n if (this.checkboxGroup) {\n this.checkboxGroup.onCheckboxChange(this);\n }\n }\n\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n if (this.checkboxGroup) {\n this.checkboxGroup.onCheckboxBlur();\n }\n }\n}\n","<div\n #elRef\n class=\"aui-checkbox\"\n [class.isDisabled]=\"disabled\"\n [class.isChecked]=\"model\"\n [class.isIndeterminate]=\"indeterminate\"\n [class.isTag]=\"type === 'tag'\"\n>\n <input\n [name]=\"name\"\n [id]=\"id\"\n class=\"aui-checkbox__input\"\n type=\"checkbox\"\n [checked]=\"model\"\n [disabled]=\"disabled\"\n (click)=\"onClick()\"\n (blur)=\"onBlur()\"\n />\n <label\n class=\"aui-checkbox__label\"\n [for]=\"id\"\n >\n <i class=\"aui-checkbox__pointer\">\n <aui-icon\n [icon]=\"indeterminate ? 'square_s' : 'check_s'\"\n [hidden]=\"!model && !indeterminate\"\n ></aui-icon>\n </i>\n <span class=\"aui-checkbox__content\"><ng-content></ng-content></span>\n </label>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { CheckboxGroupComponent } from './checkbox-group/checkbox-group.component';\nimport { CheckboxComponent } from './checkbox.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [CheckboxComponent, CheckboxGroupComponent],\n exports: [CheckboxComponent, CheckboxGroupComponent],\n})\nexport class CheckboxModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { CommonFormControl } from '../form';\n\n@Component({\n selector: 'aui-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPickerComponent),\n multi: true,\n },\n ],\n})\nexport class ColorPickerComponent extends CommonFormControl<string> {\n onInput(event: Event) {\n this.emitValue((event.target as HTMLInputElement).value);\n }\n}\n","<input\n class=\"aui-color-picker\"\n type=\"color\"\n [disabled]=\"disabled\"\n [value]=\"model\"\n (input)=\"onInput($event)\"\n/>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ColorPickerComponent } from './color-picker.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [ColorPickerComponent],\n exports: [ColorPickerComponent],\n})\nexport class ColorPickerModule {}\n","import { ConfigType, Dayjs } from 'dayjs';\n\nexport enum Side {\n Left = 'left',\n Right = 'right',\n}\n\nexport type DisabledTimeFn = (date?: ConfigType) => {\n hours: () => number[];\n minutes: (hour?: number) => number[];\n seconds: (hour?: number, minute?: number) => number[];\n};\n\nexport interface CalendarHeaderRange {\n start: Dayjs;\n end?: Dayjs;\n}\n\nexport enum DateNavRange {\n Decade = 'decade',\n Year = 'year',\n Month = 'month',\n}\n\nexport type DisabledDateFn = (date: Dayjs, type: DateNavRange) => boolean;\n","import { DateNavRange } from '../date-picker.type';\n\nexport const DATE = 'date';\nexport const DAY = 'day';\nexport const MONTH = 'month';\nexport const YEAR = 'year';\nexport const HOUR = 'hour';\nexport const MINUTE = 'minute';\nexport const SECOND = 'second';\n\n// 根据日期类型,分为年,月,日\nexport enum DatePickerType {\n Day = 'date',\n Month = 'month',\n Year = 'year',\n}\n\nexport const MONTH_PANEL_COLUMN_COUNT = 3;\nexport const MONTH_PANEL_ROW_COUNT = 4;\n\nexport const YEAR_PANEL_COLUMN_COUNT = 3;\nexport const YEAR_PANEL_ROW_COUNT = 4;\n\nexport const DAY_PANEL_COLUMN_COUNT = 7;\nexport const DAY_PANEL_ROW_COUNT = 6;\n\nexport const DATE_TYPES = [\n DatePickerType.Year,\n DatePickerType.Month,\n DatePickerType.Day,\n];\n\nexport const DATE_NAV_RANGES = [\n DateNavRange.Decade,\n DateNavRange.Year,\n DateNavRange.Month,\n];\n","import { Dayjs, UnitType } from 'dayjs';\n\nimport { TimePickerModel } from '../../time-picker/time-picker.type';\nimport { DateNavRange, DisabledDateFn } from '../date-picker.type';\n\nimport {\n DATE_NAV_RANGES,\n DATE_TYPES,\n DAY,\n DAY_PANEL_COLUMN_COUNT,\n DAY_PANEL_ROW_COUNT,\n DatePickerType,\n MONTH,\n MONTH_PANEL_COLUMN_COUNT,\n MONTH_PANEL_ROW_COUNT,\n YEAR,\n YEAR_PANEL_COLUMN_COUNT,\n YEAR_PANEL_ROW_COUNT,\n} from './constant';\n\nexport class DateCell {\n isBackground?: boolean; // 面板中非本月日期\n inRange?: boolean; // 在范围组件的范围内\n isRangeStart?: boolean; // 范围组件的范围开始日期\n isRangeEnd?: boolean; // 范围组件的范围结束日期\n isDisabled?: boolean;\n\n constructor(public value: Dayjs, public label: string | number) {}\n}\n\nexport function getDatePanelIterable(\n date: Dayjs,\n navRange: DateNavRange,\n weekStartDay: number,\n): Iterable<Dayjs> & Iterator<Dayjs> {\n let firstData: Dayjs;\n let counts = 0;\n date = date.clone();\n switch (navRange) {\n case DateNavRange.Month: {\n firstData = date.date(-1).day(weekStartDay);\n if (firstData.isAfter(date)) {\n firstData = firstData.subtract(1, 'week');\n }\n counts = DAY_PANEL_COLUMN_COUNT * DAY_PANEL_ROW_COUNT;\n\n break;\n }\n case DateNavRange.Year: {\n firstData = date.month(0);\n counts = MONTH_PANEL_COLUMN_COUNT * MONTH_PANEL_ROW_COUNT;\n\n break;\n }\n case DateNavRange.Decade: {\n firstData = date.subtract(1, YEAR);\n counts = YEAR_PANEL_COLUMN_COUNT * YEAR_PANEL_ROW_COUNT;\n\n break;\n }\n // No default\n }\n let i = 0;\n return {\n [Symbol.iterator]() {\n return this;\n },\n next: () => {\n if (i < counts) {\n return {\n value: firstData.add(\n i++,\n navRange === DateNavRange.Month\n ? DAY\n : navRange === DateNavRange.Year\n ? MONTH\n : YEAR,\n ),\n done: false,\n };\n }\n return {\n done: true,\n value: null,\n };\n },\n };\n}\n\nexport function formatDate(type: DateNavRange, dateValue: Dayjs, date: Dayjs) {\n if (!dateValue) {\n return null;\n }\n const label =\n type === DateNavRange.Decade\n ? dateValue.year()\n : type === DateNavRange.Year\n ? dateValue.month() + 1\n : dateValue.date();\n const cell = new DateCell(dateValue, label);\n if (type === DateNavRange.Month && date.month() !== dateValue.month()) {\n cell.isBackground = true;\n }\n return cell;\n}\n\nexport function nextDatePickerType(\n current: DatePickerType,\n guard?: DatePickerType,\n) {\n const guardIndex = guard ? DATE_TYPES.indexOf(guard) : DATE_TYPES.length - 1;\n const currentIndex = DATE_TYPES.indexOf(current);\n if (currentIndex < guardIndex) {\n return DATE_TYPES[currentIndex + 1];\n }\n return current;\n}\n\nexport function nextNavRangeType(current: DateNavRange, guard?: DateNavRange) {\n const guardIndex = guard\n ? DATE_NAV_RANGES.indexOf(guard)\n : DATE_NAV_RANGES.length - 1;\n const currentIndex = DATE_NAV_RANGES.indexOf(current);\n if (currentIndex < guardIndex) {\n return DATE_NAV_RANGES[currentIndex + 1];\n }\n return current;\n}\n\nexport function updateDate(\n sourceValue: Dayjs,\n newValue: Dayjs,\n type: DatePickerType,\n) {\n const updateTypes = DATE_TYPES.slice(0, DATE_TYPES.indexOf(type) + 1);\n return updateTypes.reduce(\n (acc, curr) => acc.set(curr, newValue.get(curr)),\n sourceValue.clone(),\n );\n}\n\nexport function calcRangeValue(type: DateNavRange, date: Dayjs) {\n date = date.clone();\n return [DateNavRange.Month, DatePickerType.Year].includes(type)\n ? {\n start: date,\n }\n : {\n start: date.subtract(date.year() % 10, YEAR),\n end: date.add(9 - (date.year() % 10), YEAR),\n };\n}\n\nexport function sortDates(dates: Dayjs[]) {\n return [...(dates || [])].sort((a, b) =>\n a.isBefore(b) ? -1 : a.isSame(b) ? 0 : 1,\n );\n}\n\nexport function getNavRangeByType(type: DatePickerType) {\n return {\n [DatePickerType.Day]: DateNavRange.Month,\n [DatePickerType.Month]: DateNavRange.Year,\n [DatePickerType.Year]: DateNavRange.Decade,\n }[type];\n}\n\nexport function getTypeByNavRange(navRange: DateNavRange) {\n return {\n [DateNavRange.Month]: DatePickerType.Day,\n [DateNavRange.Year]: DatePickerType.Month,\n [DateNavRange.Decade]: DatePickerType.Year,\n }[navRange];\n}\n\nexport function getTimePickerModel(date: Dayjs): TimePickerModel {\n return date\n ? {\n second: date.second(),\n minute: date.minute(),\n hour: date.hour(),\n }\n : null;\n}\n\nexport function updateDateByTimeModel(date: Dayjs, time: TimePickerModel) {\n return time\n ? date\n .set('hour', time.hour || 0)\n .set('minute', time.minute || 0)\n .set('second', time.second || 0)\n : date;\n}\n\nexport const composeDisabledDateFn =\n (...fns: DisabledDateFn[]) =>\n (date: Dayjs, navRange: DateNavRange) =>\n !fns.filter(i => !!i).every(fn => !fn(date, navRange));\n\nexport function minDate(a: Dayjs, b: Dayjs, unit: UnitType = 'date') {\n return !a ? b : !b ? a : a.isBefore(b, unit) ? a : b;\n}\n\nexport function maxDate(a: Dayjs, b: Dayjs, unit: UnitType = 'date') {\n return !a ? b : !b ? a : a.isAfter(b, unit) ? a : b;\n}\n","import { I18NInterface } from '../i18n.type';\n\nexport const en: I18NInterface = {\n locale: 'en',\n translation: {\n start_date: 'Start Date',\n end_date: 'End Date',\n select_date: 'Select Date',\n select_time: 'Select time',\n clear: 'clear',\n confirm: 'confirm',\n to: 'To',\n year_suffix: '',\n month_suffix: '',\n monday: 'Mon',\n tuesday: 'Tues',\n wednesday: 'Wed',\n thursday: 'Thur',\n friday: 'Fri',\n saturday: 'Sat',\n sunday: 'Sun',\n now: 'Now',\n select_all: 'Select All',\n today: 'Today',\n },\n};\n","import { InjectionToken } from '@angular/core';\n\nimport { en } from './language/en';\n\nexport interface I18NInterface {\n locale: string;\n translation: Record<string, string>;\n}\n\nexport type StringMap = Record<string, string>;\n\nexport const I18NInterfaceToken = new InjectionToken('i18n token', {\n factory: () => en,\n});\n","import { Inject, Injectable, isDevMode } from '@angular/core';\nimport { BehaviorSubject, Observable, pluck } from 'rxjs';\n\nimport { I18NInterface, I18NInterfaceToken, StringMap } from './i18n.type';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class I18nService {\n private readonly i18nChange$$: BehaviorSubject<I18NInterface>;\n\n localeChange$: Observable<string>;\n\n constructor(@Inject(I18NInterfaceToken) private _i18n: I18NInterface) {\n this.i18nChange$$ = new BehaviorSubject<I18NInterface>(this._i18n);\n this.localeChange$ = this.i18nChange$$.asObservable().pipe(pluck('locale'));\n }\n\n setI18n(i18n: I18NInterface) {\n this._i18n = i18n;\n this.i18nChange$$.next(i18n);\n }\n\n get i18n() {\n return this._i18n;\n }\n\n translate(key: string, data?: StringMap, ignoreNonExist = false) {\n let content = this._i18n.translation[key];\n if (content == null) {\n if (isDevMode() && !ignoreNonExist) {\n console.warn(`No exist translate key for ${key}`);\n }\n return key;\n }\n if (data) {\n content = content.replaceAll(\n /{{([^{}]+)}}/,\n (_matched, $0: string) => data[$0.trim()],\n );\n }\n return content;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { I18nService } from './i18n.service';\nimport { StringMap } from './i18n.type';\n\n@Pipe({\n name: 'auiI18n',\n})\nexport class I18nPipe implements PipeTransform {\n constructor(private readonly i18n: I18nService) {}\n transform(value: any, data?: StringMap) {\n return this.i18n.translate(value, data);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport dayjs, { ConfigType, Dayjs } from 'dayjs';\n\nimport { buildBem } from '../../../utils';\nimport {\n CalendarHeaderRange,\n DateNavRange,\n Side,\n} from '../../date-picker.type';\nimport { MONTH, YEAR } from '../constant';\nimport { calcRangeValue } from '../util';\n\nconst bem = buildBem('aui-calendar-header');\n\n@Component({\n selector: 'aui-calendar-header',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarHeaderComponent {\n @Input()\n dateNavRange = DateNavRange.Month;\n\n @Input()\n anchor = dayjs();\n\n @Input()\n maxAvail?: ConfigType;\n\n private get _maxAvail() {\n return this.maxAvail ? dayjs(this.maxAvail) : null;\n }\n\n @Input()\n minAvail?: ConfigType;\n\n private get _minAvail() {\n return this.minAvail ? dayjs(this.minAvail) : null;\n }\n\n @Output()\n navRangeChange = new EventEmitter<DateNavRange>();\n\n @Output()\n anchorChange = new EventEmitter<Dayjs>();\n\n get headerRange(): CalendarHeaderRange {\n return calcRangeValue(this.dateNavRange, this.anchor);\n }\n\n bem = bem;\n\n DateNavRange = DateNavRange;\n\n // maxAvail > current date :right btn hide\n // minAvail > current date :left btn hide\n shouldShowNav(type: DateNavRange, side: Side) {\n const availValue = (\n side === Side.Left ? this._minAvail : this._maxAvail\n )?.clone();\n if (!availValue) {\n return true;\n }\n // 对于年的判别,2014-5-1至2015-6-1日,仍当展示按钮\n const constrainDate = [DateNavRange.Month, DateNavRange.Year].includes(type)\n ? availValue.add(side === Side.Left ? 1 : -1, type as 'month' | 'year')\n : availValue;\n return (\n this.compareNavValue(type, constrainDate, this.anchor) ===\n (side === Side.Left ? -1 : 1)\n );\n }\n\n // @return isBetween|isEqual:0, isBefore:-1,isAfter:1\n compareNavValue(type: DateNavRange, constrain: Dayjs, anchor: Dayjs) {\n const range = calcRangeValue(type, anchor);\n const constrainValue = constrain;\n if (type === DateNavRange.Decade) {\n if (constrainValue.isBetween(range.start, range.end, YEAR)) {\n return 0;\n }\n return constrainValue.isBefore(range.start) ? -1 : 1;\n }\n return constrainValue.isSame(range.start, MONTH)\n ? 0\n : constrainValue.isBefore(range.start, MONTH)\n ? -1\n : 1;\n }\n\n navHead(range: DateNavRange, value: number) {\n let anchor: Dayjs;\n switch (range) {\n case DateNavRange.Month: {\n anchor = this.anchor.add(value, MONTH);\n break;\n }\n case DateNavRange.Year: {\n anchor = this.anchor.add(value, YEAR);\n break;\n }\n case DateNavRange.Decade:\n anchor = this.anchor.add(value, YEAR);\n break;\n }\n this.anchorChange.next(anchor);\n }\n\n clickNav = (range: DateNavRange) => {\n if (![DateNavRange.Month, DateNavRange.Year].includes(range)) {\n return;\n }\n this.navRangeChange.next(\n range === DateNavRange.Month ? DateNavRange.Year : DateNavRange.Decade,\n );\n };\n}\n","<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- 内容区 -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ headerRange?.start?.month() + 1 }}{{ 'month_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ headerRange?.start.year() }} - {{ headerRange?.end?.year() }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angle_double_left' : 'angle_double_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angle_double_left' : 'angle_double_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport dayjs, { Dayjs } from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween';\n\nimport { buildBem } from '../../../utils';\nimport { DateNavRange } from '../../date-picker.type';\nimport {\n DAY,\n DAY_PANEL_COLUMN_COUNT,\n DAY_PANEL_ROW_COUNT,\n DatePickerType,\n MONTH,\n MONTH_PANEL_COLUMN_COUNT,\n MONTH_PANEL_ROW_COUNT,\n YEAR,\n YEAR_PANEL_COLUMN_COUNT,\n YEAR_PANEL_ROW_COUNT,\n} from '../constant';\nimport {\n DateCell,\n calcRangeValue,\n composeDisabledDateFn,\n formatDate,\n getDatePanelIterable,\n getNavRangeByType,\n getTypeByNavRange,\n sortDates,\n} from '../util';\n\ndayjs.extend(isBetween);\n\nconst bem = buildBem('aui-picker-panel');\n\n@Component({\n selector: 'aui-picker-panel',\n templateUrl: './picker-panel.template.html',\n styleUrls: ['./picker-panel.style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PickerPanelComponent implements OnChanges {\n @Input()\n navRange: DateNavRange;\n\n @Input()\n type: DatePickerType;\n\n @Input()\n anchor = dayjs();\n\n @Input()\n matchDates: Dayjs[];\n\n @Input()\n disabledDate: (date: Dayjs, navRange: DateNavRange) => boolean = () => false;\n\n @Input()\n set weekStartDay(day: number) {\n const normalized = Math.max(Math.min(Math.round(day), 6), 0);\n this.weekDefs = [\n ...this.weekDefs.slice(normalized),\n ...this.weekDefs.slice(0, normalized),\n ];\n this._weekStartDay = normalized;\n }\n\n get weekStartDay() {\n return this._weekStartDay;\n }\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n get disabledDateFn() {\n return composeDisabledDateFn(\n date => this.minDate && date.isBefore(this.minDate),\n date => this.maxDate && date.isAfter(this.maxDate),\n this.disabledDate,\n );\n }\n\n private _weekStartDay = 0;\n\n panelData: DateCell[][];\n\n @Output()\n select = new EventEmitter<Dayjs>();\n\n @Output()\n hovered = new EventEmitter<Dayjs>();\n\n bem = bem;\n DateNavRange = DateNavRange;\n\n weekDefs = [\n 'sunday',\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n ];\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n ngOnChanges() {\n // 如果 dateValue 是一个数组,必然是同一个面板上,否则应当给与不同的面板不同的dateValue值\n const headerRange = calcRangeValue(this.navRange, this.anchor);\n this.renderPanelData(headerRange.start, this.navRange);\n }\n\n // 根据当前数据,计算渲染表格\n // eslint-disable-next-line sonarjs/cognitive-complexity\n renderPanelData(date: Dayjs, navRange: DateNavRange) {\n const value = [];\n let colCounts = 0;\n let rowCounts = 0;\n if (!this.panelData) {\n this.panelData = [[]];\n }\n const [...values] = getDatePanelIterable(date, navRange, this.weekStartDay);\n switch (navRange) {\n case DateNavRange.Month: {\n colCounts = DAY_PANEL_COLUMN_COUNT;\n rowCounts = DAY_PANEL_ROW_COUNT;\n\n break;\n }\n case DateNavRange.Decade: {\n colCounts = YEAR_PANEL_COLUMN_COUNT;\n rowCounts = YEAR_PANEL_ROW_COUNT;\n\n break;\n }\n case DateNavRange.Year: {\n colCounts = MONTH_PANEL_COLUMN_COUNT;\n rowCounts = MONTH_PANEL_ROW_COUNT;\n\n break;\n }\n // No default\n }\n for (let k = 0; k < rowCounts; k++) {\n const row = [];\n for (let i = 0; i < colCounts; i++) {\n const cell = formatDate(navRange, values[k * colCounts + i], date);\n cell.isDisabled = this.disabledDateFn(cell.value, navRange);\n const sortedDates = sortDates(this.matchDates);\n if (sortedDates?.length === 2 && navRange === DateNavRange.Month) {\n if (\n cell.value.isBetween(sortedDates[0], sortedDates[1]) &&\n !cell.isBackground\n ) {\n cell.inRange = true;\n }\n cell.isRangeStart =\n cell.value.isSame(sortedDates[0], DAY) && !cell.isBackground;\n cell.isRangeEnd =\n cell.value.isSame(sortedDates[1], DAY) && !cell.isBackground;\n if (cell.isRangeStart && cell.isRangeEnd) {\n cell.isRangeStart = false;\n cell.isRangeEnd = false;\n }\n }\n row.push(cell);\n }\n value.push(row);\n }\n this.panelData = value.slice();\n this.cdr.markForCheck();\n }\n\n match(value: Dayjs) {\n if (\n !this.matchDates?.filter(v => !!v)?.length ||\n getNavRangeByType(this.type) !== this.navRange\n ) {\n return false;\n }\n return this.matchDates?.some(dateValue =>\n this.navRange === DateNavRange.Decade\n ? value.isSame(dateValue, YEAR)\n : this.navRange === DateNavRange.Year\n ? value.isSame(dateValue, MONTH)\n : value.isSame(dateValue, DAY),\n );\n }\n\n matchToday(value: Dayjs) {\n return value.isSame(dayjs(), getTypeByNavRange(this.navRange));\n }\n\n selectValue(value: Dayjs) {\n this.select.next(value);\n }\n\n trackByFn() {\n return this.navRange;\n }\n}\n","<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n 'day-panel-container': navRange === DateNavRange.Month,\n 'month-panel-container': navRange === DateNavRange.Year,\n 'year-panel-container': navRange === DateNavRange.Decade\n }\"\n>\n <div\n [class]=\"[bem.element('row'), 'week-header'].join(' ')\"\n *ngIf=\"navRange === DateNavRange.Month\"\n >\n <span\n *ngFor=\"let item of weekDefs\"\n [class]=\"bem.element('cell')\"\n >\n {{ item | auiI18n }}\n </span>\n </div>\n <div\n [class]=\"bem.element('row')\"\n *ngFor=\"let row of panelData; trackBy: trackByFn\"\n >\n <span\n *ngFor=\"let item of row; trackBy: trackByFn\"\n [class]=\"bem.element('cell')\"\n [ngClass]=\"{\n inRange: item.inRange && !item.isDisabled,\n isActive: match(item.value),\n isBackground: item.isBackground && !item.isDisabled,\n isRangeStart: item.isRangeStart,\n isRangeEnd: item.isRangeEnd,\n isToday: matchToday(item.value) && !item.isBackground,\n isDisabled: item.isDisabled\n }\"\n ><button\n aui-button=\"text\"\n [plain]=\"true\"\n [size]=\"navRange === DateNavRange.Month ? 'mini' : 'small'\"\n [disabled]=\"item.isDisabled\"\n (click)=\"selectValue(item.value)\"\n (mouseenter)=\"hovered.next(item.value)\"\n >\n {{ item.label\n }}<ng-container *ngIf=\"navRange === DateNavRange.Year\">{{\n 'month_suffix' | auiI18n\n }}</ng-container>\n </button>\n </span>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-calendar-footer',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarFooterComponent {\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n customAction: TemplateRef<any>;\n\n @Output()\n confirm = new EventEmitter<void>();\n\n @Output()\n clear = new EventEmitter<void>();\n}\n","<div class=\"aui-calendar-footer__wrapper\">\n <div style=\"flex: 1\">\n <ng-content></ng-content>\n </div>\n <div>\n <ng-container\n *ngIf=\"customAction; else default\"\n [ngTemplateOutlet]=\"customAction\"\n >\n </ng-container>\n <ng-template #default>\n <button\n aui-button=\"text\"\n *ngIf=\"clearable\"\n (click)=\"clear.emit()\"\n size=\"small\"\n >\n {{ clearText || ('clear' | auiI18n) }}\n </button>\n <button\n aui-button=\"primary\"\n (click)=\"confirm.emit()\"\n size=\"small\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </ng-template>\n </div>\n</div>\n","import { ConfigType } from 'dayjs';\n\nimport { _isNumberValue } from '../utils';\n\nexport enum TimePickerControlType {\n Hour = 'hour',\n Minute = 'minute',\n Second = 'second',\n}\n\nexport interface TimePickerModel {\n hour?: number;\n minute?: number;\n second?: number;\n}\n\nexport type TimePickerDataLike = ConfigType | TimePickerModel;\n\nexport function isTimePickerModel(item: any): item is TimePickerModel {\n return (\n _isNumberValue(item?.second) ||\n _isNumberValue(item?.minute) ||\n _isNumberValue(item?.hour)\n );\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiInputAddonBefore]',\n})\nexport class InputAddonBeforeDirective {}\n\n@Directive({\n selector: '[auiInputAddonAfter]',\n})\nexport class InputAddonAfterDirective {}\n\n@Directive({\n selector: '[auiInputPrefix]',\n})\nexport class InputPrefixDirective {}\n\n@Directive({\n selector: '[auiInputSuffix]',\n})\nexport class InputSuffixDirective {}\n","/* eslint-disable sonarjs/no-duplicate-string */\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { ComponentSize } from '../types';\nimport { coerceAttrBoolean } from '../utils';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[aui-input],textarea[aui-input]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class InputComponent {\n @Input()\n get size() {\n return this._size;\n }\n\n set size(val) {\n if (!val || this._size === val) {\n return;\n }\n this.renderer.removeClass(\n this.elementRef.nativeElement,\n 'aui-input--' + this._size,\n );\n this.renderer.addClass(this.elementRef.nativeElement, 'aui-input--' + val);\n this._size = val;\n this.size$.next(val);\n }\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n const booleanVal = coerceAttrBoolean(val);\n if (booleanVal === this._disabled) {\n return;\n }\n if (booleanVal) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'disabled', '');\n } else {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'disabled');\n }\n this._disabled = booleanVal;\n this.disabled$.next(booleanVal);\n }\n\n private _size: ComponentSize = ComponentSize.Medium;\n private _disabled = false;\n\n size$ = new BehaviorSubject<ComponentSize>(this.size);\n\n /**\n * workaround for @link https://github.com/microsoft/TypeScript/pull/42425\n */\n disabled$ = new BehaviorSubject<boolean>(this.disabled as boolean);\n\n constructor(\n public elementRef: ElementRef<HTMLInputElement>,\n private readonly renderer: Renderer2,\n ) {\n this.renderer.addClass(this.elementRef.nativeElement, 'aui-input');\n this.renderer.addClass(\n this.elementRef.nativeElement,\n 'aui-input--' + this.size,\n );\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { Bem, buildBem, watchContentExist } from '../../utils';\nimport {\n InputAddonAfterDirective,\n InputAddonBeforeDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n} from '../helper-directives';\nimport { InputComponent } from '../input.component';\n\n@Component({\n selector: 'aui-input-group',\n templateUrl: './input-group.component.html',\n styleUrls: ['./input-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class InputGroupComponent implements AfterContentInit {\n bem: Bem = buildBem('aui-input-group');\n\n @ContentChildren(InputAddonBeforeDirective)\n private readonly addonBeforeRefs: QueryList<InputAddonBeforeDirective>;\n\n @ContentChildren(InputAddonAfterDirective)\n private readonly addonAfterRefs: QueryList<InputAddonAfterDirective>;\n\n @ContentChildren(InputPrefixDirective)\n private readonly prefixRefs: QueryList<InputPrefixDirective>;\n\n @ContentChildren(InputSuffixDirective)\n private readonly suffixRefs: QueryList<InputSuffixDirective>;\n\n @ContentChild(InputComponent, { static: false })\n inputRef: InputComponent;\n\n hasAddonBefore$: Observable<boolean>;\n hasAddonAfter$: Observable<boolean>;\n hasPrefix$: Observable<boolean>;\n hasSuffix$: Observable<boolean>;\n\n ngAfterContentInit() {\n this.hasAddonBefore$ = watchContentExist(this.addonBeforeRefs);\n this.hasAddonAfter$ = watchContentExist(this.addonAfterRefs);\n this.hasPrefix$ = watchContentExist(this.prefixRefs);\n this.hasSuffix$ = watchContentExist(this.suffixRefs);\n }\n}\n","<div\n [ngClass]=\"bem.block(inputRef.size$ | async)\"\n [class.isDisabled]=\"inputRef.disabled$ | async\"\n [class.hasAddonBefore]=\"hasAddonBefore$ | async\"\n [class.hasAddonAfter]=\"hasAddonAfter$ | async\"\n [class.hasPrefix]=\"hasPrefix$ | async\"\n [class.hasSuffix]=\"hasSuffix$ | async\"\n>\n <div [class]=\"bem.element('inner-wrapper')\">\n <div\n *ngIf=\"hasAddonBefore$ | async\"\n [class]=\"bem.element('addon', 'before')\"\n >\n <ng-content select=\"[auiInputAddonBefore]\"></ng-content>\n </div>\n <div [class]=\"bem.element('input-wrapper')\">\n <span\n *ngIf=\"hasPrefix$ | async\"\n [class]=\"bem.element('prefix')\"\n >\n <ng-content select=\"[auiInputPrefix]\"></ng-content>\n </span>\n <ng-content></ng-content>\n <span\n *ngIf=\"hasSuffix$ | async\"\n [class]=\"bem.element('suffix')\"\n >\n <ng-content select=\"[auiInputSuffix]\"></ng-content>\n </span>\n </div>\n <div\n *ngIf=\"hasAddonAfter$ | async\"\n [class]=\"bem.element('addon', 'after')\"\n >\n <ng-content select=\"[auiInputAddonAfter]\"></ng-content>\n </div>\n </div>\n</div>\n","export const HOUR_ITEMS = Array.from({ length: 24 }).map((_, index) => index);\nexport const MINUTE_ITEMS = Array.from({ length: 60 }).map((_, index) => index);\nexport const SECOND_ITEMS = Array.from({ length: 60 }).map((_, index) => index);\n\nexport const CONTROL_ITEM_HEIGHT = 28;\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { Dayjs } from 'dayjs';\n\nimport { updateDateByTimeModel } from '../../date-picker/calendar/util';\nimport { CommonFormControl } from '../../form/common-form';\nimport { ComponentSize } from '../../types';\nimport { buildBem } from '../../utils';\nimport {\n CONTROL_ITEM_HEIGHT,\n HOUR_ITEMS,\n MINUTE_ITEMS,\n SECOND_ITEMS,\n} from '../constant';\nimport { TimePickerControlType } from '../time-picker.type';\n\nconst TIME_PICKER_COLUMN_WIDTH = 80;\nconst bem = buildBem('aui-time-picker-panel');\n\n@Component({\n selector: 'aui-time-picker-panel',\n templateUrl: './panel.template.html',\n styleUrls: ['./panel.style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimePickerPanelComponent),\n multi: true,\n },\n ],\n host: {\n mousedown: '$event.preventDefault()',\n },\n})\nexport class TimePickerPanelComponent\n extends CommonFormControl<Dayjs>\n implements OnChanges\n{\n @Input()\n set format(value: string) {\n if (value != null) {\n this._format = value;\n const charSet = new Set(value);\n this.hourEnabled = charSet.has('H') || charSet.has('h');\n this.minuteEnabled = charSet.has('m');\n this.secondEnabled = charSet.has('s');\n this.enabledColumns = [\n this.hourEnabled,\n this.minuteEnabled,\n this.secondEnabled,\n ].filter(Boolean).length;\n }\n }\n\n get format(): string {\n return this._format;\n }\n\n private _format: string;\n\n get totalWidth() {\n return this.enabledColumns * TIME_PICKER_COLUMN_WIDTH;\n }\n\n @Input()\n hourStep = 1;\n\n @Input()\n minuteStep = 1;\n\n @Input()\n secondStep = 1;\n\n @Input()\n footerTemplate: TemplateRef<void>;\n\n @Output()\n confirm = new EventEmitter<void>();\n\n @Input()\n disableHours: () => number[];\n\n @Input()\n disableMinutes: (hour?: number) => number[];\n\n @Input()\n disableSeconds: (hour?: number, minute?: number) => number[];\n\n hourEnabled: boolean;\n minuteEnabled: boolean;\n secondEnabled: boolean;\n\n TimePickerControlType = TimePickerControlType;\n HOUR_ITEM_CONFIG = HOUR_ITEMS;\n MINUTE_ITEM_CONFIG = MINUTE_ITEMS;\n SECOND_ITEM_CONFIG = SECOND_ITEMS;\n\n CONTROL_ITEM_HEIGHT = CONTROL_ITEM_HEIGHT;\n ComponentSize = ComponentSize;\n bem = bem;\n\n @ViewChild('hourRef', { static: false })\n hourRef: ElementRef<HTMLElement>;\n\n @ViewChild('minuteRef', { static: false })\n minuteRef: ElementRef<HTMLElement>;\n\n @ViewChild('secondRef', { static: false })\n secondRef: ElementRef<HTMLElement>;\n\n enabledColumns = 0;\n\n // 用于控制初次滚动,是否展示滚动动画效果\n firstScrolled = false;\n\n constructor(protected override cdr: ChangeDetectorRef) {\n super(cdr);\n this.model$.subscribe(_ => {\n this.cdr.markForCheck();\n });\n }\n\n isDisabled(value: number, type: TimePickerControlType) {\n const currentValue = this.model;\n if (this.disabled) {\n return true;\n }\n if (type === TimePickerControlType.Hour) {\n return (!this.disableHours ? [] : this.disableHours()).includes(value);\n }\n if (type === TimePickerControlType.Minute) {\n return (\n !this.disableMinutes ? [] : this.disableMinutes(currentValue?.hour())\n ).includes(value);\n }\n if (type === TimePickerControlType.Second) {\n return (\n !this.disableSeconds\n ? []\n : this.disableSeconds(currentValue?.hour(), currentValue?.minute())\n ).includes(value);\n }\n }\n\n ngOnChanges({ hourStep, minuteStep, secondStep }: SimpleChanges): void {\n if (hourStep?.currentValue > 0) {\n this.HOUR_ITEM_CONFIG = HOUR_ITEMS.filter(\n i => i % hourStep.currentValue === 0,\n );\n }\n if (minuteStep?.currentValue > 0) {\n this.MINUTE_ITEM_CONFIG = MINUTE_ITEMS.filter(\n i => i % minuteStep.currentValue === 0,\n );\n }\n if (secondStep?.currentValue > 0) {\n this.SECOND_ITEM_CONFIG = SECOND_ITEMS.filter(\n i => i % secondStep.currentValue === 0,\n );\n }\n this.cdr.markForCheck();\n }\n\n override writeValue(value: Dayjs) {\n super.writeValue(value);\n this.syncScrollOffset(!this.firstScrolled ? 0 : 120, value);\n }\n\n selectValue(value: number, type: TimePickerControlType): void {\n if (this.isDisabled(value, type)) {\n return;\n }\n this.firstScrolled = true;\n const result = this.syncValue(value, type, this.model);\n this.syncScrollOffset(120, result);\n }\n\n syncValue(value: number, type: TimePickerControlType, currentValue: Dayjs) {\n if (!type) {\n return;\n }\n const result = (\n currentValue ||\n updateDateByTimeModel(dayjs(), { hour: 0, minute: 0, second: 0 })\n ).set(type, value);\n this.emitModel(result);\n return result;\n }\n\n syncScrollOffset(duration: number, value: Dayjs) {\n const empty = !value;\n const config = [\n {\n ref: this.hourRef,\n enabled: this.hourEnabled,\n step: this.hourStep,\n type: 'hour',\n },\n {\n ref: this.minuteRef,\n enabled: this.minuteEnabled,\n step: this.minuteStep,\n type: 'minute',\n },\n {\n ref: this.secondRef,\n enabled: this.secondEnabled,\n step: this.secondStep,\n type: 'second',\n },\n ] as const;\n\n config.forEach(cf => {\n if (cf.enabled && cf.ref) {\n this.scrollByValue(\n cf.ref.nativeElement,\n empty ? 0 : value.get(cf.type),\n cf.step,\n empty ? 0 : duration,\n );\n }\n });\n if (!empty) {\n this.firstScrolled = true;\n }\n }\n\n private scrollByValue(\n element: HTMLElement,\n value: number,\n divideBy: number,\n duration: number,\n ) {\n const targetOffset = (value * CONTROL_ITEM_HEIGHT) / divideBy;\n const currentTop = element.scrollTop;\n if (currentTop === targetOffset) {\n return;\n }\n if (!duration) {\n element.scrollTop = targetOffset;\n } else {\n const difference = targetOffset - currentTop;\n // 每个tick滚动距离\n const perTick = (difference / duration) * 10;\n\n requestAnimationFrame(() => {\n element.scrollTop = currentTop + perTick;\n if (element.scrollTop === targetOffset) {\n return;\n }\n this.scrollByValue(element, value, divideBy, duration - 10);\n });\n }\n }\n\n matchValue(\n value: number,\n type: TimePickerControlType,\n currDate: Dayjs,\n ): boolean {\n return currDate?.get(type) === value;\n }\n\n getControlTypeConfig(type: TimePickerControlType): number[] {\n return {\n [TimePickerControlType.Hour]: this.HOUR_ITEM_CONFIG,\n [TimePickerControlType.Minute]: this.MINUTE_ITEM_CONFIG,\n [TimePickerControlType.Second]: this.SECOND_ITEM_CONFIG,\n }[type];\n }\n\n selectNow() {\n this.firstScrolled = true;\n this.emitModel(dayjs());\n }\n\n trackBy(_index: number, content: number) {\n return content;\n }\n}\n","<div\n *ngIf=\"enabledColumns\"\n [class]=\"bem.block()\"\n [style.width.px]=\"totalWidth\"\n>\n <div [class]=\"bem.element('content')\">\n <div\n [class]=\"bem.element('column')\"\n #hourRef\n *ngIf=\"hourEnabled\"\n >\n <ul>\n <li\n *ngFor=\"let item of getControlTypeConfig(TimePickerControlType.Hour)\"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Hour),\n selected: matchValue(item, TimePickerControlType.Hour, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Hour)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #minuteRef\n *ngIf=\"minuteEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Minute);\n trackBy: trackBy\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Minute),\n selected: matchValue(item, TimePickerControlType.Minute, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Minute)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #secondRef\n *ngIf=\"secondEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Second)\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Second),\n selected: matchValue(item, TimePickerControlType.Second, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Second)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n </div>\n\n <ng-container *ngIf=\"!footerTemplate; else customFooter\">\n <div [class]=\"bem.element('footer')\">\n <button\n aui-button=\"inline\"\n (click)=\"selectNow()\"\n [size]=\"ComponentSize.Small\"\n >\n {{ 'now' | auiI18n }}\n </button>\n <button\n aui-button=\"primary\"\n [size]=\"ComponentSize.Small\"\n (click)=\"$event.stopImmediatePropagation(); confirm.next()\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </div>\n </ng-container>\n <ng-template #customFooter>\n <ng-container\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: this }\"\n ></ng-container>\n </ng-template>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { Dayjs } from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\nimport { updateDateByTimeModel } from '../date-picker/calendar/util';\nimport { CommonFormControl } from '../form/common-form';\nimport { TooltipDirective } from '../tooltip';\nimport { ComponentSize } from '../types';\n\nimport {\n TimePickerDataLike,\n TimePickerModel,\n isTimePickerModel,\n} from './time-picker.type';\n\ndayjs.extend(customParseFormat);\n\n@Component({\n selector: 'aui-time-picker',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimePickerComponent),\n multi: true,\n },\n ],\n})\nexport class TimePickerComponent extends CommonFormControl<\n TimePickerDataLike,\n TimePickerModel\n> {\n @Input()\n format = 'HH:mm:ss';\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n placeholder = '';\n\n @Input()\n clearable = true;\n\n @Input()\n showIcon = true;\n\n @Input()\n disableHours: () => number[];\n\n @Input()\n disableMinutes: (hour?: number) => number[];\n\n @Input()\n disableSeconds: (hour?: number, minute?: number) => number[];\n\n @Input()\n hourStep = 1;\n\n @Input()\n minuteStep = 1;\n\n @Input()\n secondStep = 1;\n\n @Input()\n footerTemplate: TemplateRef<void>;\n\n @Output()\n readonly open = new EventEmitter<void>();\n\n @Output()\n readonly close = new EventEmitter<void>();\n\n @ViewChild('tooltipRef')\n tooltipRef: TooltipDirective;\n\n timeValue: Dayjs = null;\n timeFormatValue = '';\n\n override writeValue(value: TimePickerDataLike) {\n super.writeValue(value);\n if (!value) {\n return this.setValue(null);\n }\n let result: Dayjs;\n if (isTimePickerModel(value)) {\n result = updateDateByTimeModel(dayjs(), value);\n } else {\n result = dayjs(value);\n this.submit(false, result);\n }\n this.setValue(result);\n }\n\n setValue(value: Dayjs) {\n this.timeValue = value;\n this.timeFormatValue = value ? dayjs(value).format(this.format) : null;\n this.cdr.markForCheck();\n }\n\n changeFromPanel(value: Dayjs) {\n this.timeFormatValue = value?.format(this.format);\n }\n\n changeFromInput(source: string) {\n if (!source) {\n this.timeValue = null;\n } else {\n const afterParsed = dayjs(source, this.format);\n if (afterParsed.isValid()) {\n this.timeValue = afterParsed;\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Enter':\n this.openPanel();\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Escape':\n this.closePanel();\n event.stopPropagation();\n event.preventDefault();\n break;\n }\n }\n\n handleTooltipOpen() {\n this.open.emit();\n }\n\n handleTooltipHide() {\n if (this.onTouched) {\n this.onTouched();\n }\n this.setValue(this.timeValue);\n this.submit();\n\n this.close.emit();\n }\n\n openPanel() {\n if (this.tooltipRef.isCreated) {\n return;\n }\n this.tooltipRef.createTooltip();\n this.open.next();\n }\n\n closePanel() {\n if (!this.tooltipRef.isCreated) {\n return;\n }\n this.tooltipRef.disposeTooltip();\n this.close.next();\n }\n\n clearValue(event: Event) {\n this.setValue(null);\n this.submit();\n event.stopPropagation();\n event.preventDefault();\n }\n\n submit(close = true, value?: Dayjs) {\n const refer = value ?? this.timeValue;\n this.emitModel(\n refer\n ? {\n second: refer.second(),\n minute: refer.minute(),\n hour: refer.hour(),\n }\n : null,\n );\n if (close) {\n this.closePanel();\n }\n }\n}\n","<div\n class=\"aui-time-picker\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"clearable && timeFormatValue\"\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"template\"\n auiTooltipType=\"plain\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n [auiTooltipDisabled]=\"disabled\"\n (auiTooltipShow)=\"handleTooltipOpen()\"\n (auiTooltipHide)=\"handleTooltipHide()\"\n>\n <aui-input-group>\n <input\n aui-input\n autocomplete=\"off\"\n [size]=\"size\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"timeFormatValue\"\n (ngModelChange)=\"changeFromInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <span\n *ngIf=\"showIcon\"\n auiInputSuffix\n class=\"aui-time-picker__icon-container\"\n >\n <aui-icon\n class=\"aui-time-picker__indicator\"\n icon=\"time\"\n ></aui-icon>\n <aui-icon\n class=\"aui-time-picker__clear\"\n icon=\"close_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </aui-input-group>\n</div>\n\n<ng-template #template>\n <aui-time-picker-panel\n [disabled]=\"disabled\"\n [disableHours]=\"disableHours\"\n [disableMinutes]=\"disableMinutes\"\n [disableSeconds]=\"disableSeconds\"\n [hourStep]=\"hourStep\"\n [minuteStep]=\"minuteStep\"\n [secondStep]=\"secondStep\"\n [format]=\"format\"\n [footerTemplate]=\"footerTemplate\"\n [(ngModel)]=\"timeValue\"\n (ngModelChange)=\"changeFromPanel($event)\"\n (confirm)=\"submit()\"\n (click)=\"$event.stopPropagation()\"\n (mousedown)=\"$event.preventDefault()\"\n ></aui-time-picker-panel>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { ConfigType, Dayjs } from 'dayjs';\n\nimport { CommonFormControl } from '../../../form/common-form';\nimport { TimePickerModel } from '../../../time-picker/time-picker.type';\nimport { DateNavRange, DisabledTimeFn } from '../../date-picker.type';\nimport { DatePickerType } from '../constant';\nimport {\n getNavRangeByType,\n getTimePickerModel,\n getTypeByNavRange,\n nextNavRangeType,\n updateDate,\n updateDateByTimeModel,\n} from '../util';\n\n@Component({\n selector: 'aui-date-picker-panel',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePickerPanelComponent),\n multi: true,\n },\n ],\n})\nexport class DatePickerPanelComponent extends CommonFormControl<Dayjs> {\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n set type(type: DatePickerType) {\n this.navRange = getNavRangeByType(type);\n this._type = type;\n }\n\n get type() {\n return this._type;\n }\n\n private _type: DatePickerType;\n\n @Input()\n showTime = false;\n\n @Input()\n disabledDate: (date: Dayjs, type: DateNavRange) => boolean = () => false;\n\n @Input()\n disabledTime: DisabledTimeFn = () => null;\n\n @Input()\n weekStartDay = 0;\n\n @Input()\n showFooter = true;\n\n @Input()\n footerTemplate: TemplateRef<unknown>;\n\n @Input()\n extraFooter: TemplateRef<unknown>;\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n @Output()\n confirm = new EventEmitter<Dayjs>();\n\n @Output()\n clear = new EventEmitter<void>();\n\n private _cacheSelectedDate: Dayjs;\n private _cacheDisabledTimeFn: ReturnType<DisabledTimeFn>;\n\n getDisabledTimeFn(\n selectedDate: Dayjs,\n type: keyof ReturnType<DisabledTimeFn>,\n ) {\n if (selectedDate !== this._cacheSelectedDate) {\n this._cacheDisabledTimeFn = this.disabledTime(selectedDate);\n this._cacheSelectedDate = selectedDate;\n }\n return this._cacheDisabledTimeFn?.[type];\n }\n\n navRange: DateNavRange;\n\n get currentNavType() {\n return getTypeByNavRange(this.navRange);\n }\n\n anchor: Dayjs;\n\n selectedDate: Dayjs;\n\n selectedTime: TimePickerModel;\n\n DateNavRange = DateNavRange;\n DatePickerType = DatePickerType;\n\n override writeValue(obj: Dayjs) {\n super.writeValue(obj);\n this.selectedDate = obj;\n this.selectedTime = getTimePickerModel(obj);\n this.anchor = obj || dayjs();\n this.cdr.markForCheck();\n }\n\n panelValueChange(value: Dayjs) {\n this.selectedDate = updateDate(\n this.selectedDate || dayjs(),\n value,\n this.currentNavType,\n );\n this.anchor = this.selectedDate;\n this.selectedDate = updateDateByTimeModel(\n this.selectedDate,\n this.selectedTime,\n );\n if (this.type === this.currentNavType) {\n this.confirmValue(this.selectedDate, !this.showTime);\n }\n const nextNavRange = nextNavRangeType(\n this.navRange,\n getNavRangeByType(this.type),\n );\n if (this.navRange !== nextNavRange) {\n this.navRange = nextNavRange;\n }\n }\n\n confirmValue(value?: ConfigType, closeAfterConfirm = true) {\n this.emitValue(value ? dayjs(value) : this.selectedDate);\n closeAfterConfirm && this.confirm.next(null);\n }\n\n timeDateChange(time: TimePickerModel) {\n if (!this.selectedDate) {\n return;\n }\n this.selectedDate = updateDateByTimeModel(this.selectedDate, time);\n this.emitValue(this.selectedDate);\n }\n\n setToday() {\n this.confirmValue(dayjs(), true);\n }\n}\n","<div class=\"aui-date-picker-panel__wrapper\">\n <aui-calendar-header\n [dateNavRange]=\"navRange\"\n [anchor]=\"anchor\"\n [minAvail]=\"minDate\"\n [maxAvail]=\"maxDate\"\n [style.margin-inline.px]=\"4\"\n (navRangeChange)=\"navRange = $event\"\n (anchorChange)=\"anchor = $event\"\n ></aui-calendar-header>\n\n <aui-picker-panel\n [style.margin]=\"'16px 0'\"\n [anchor]=\"anchor\"\n [navRange]=\"navRange\"\n [disabledDate]=\"disabledDate\"\n [weekStartDay]=\"weekStartDay\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [type]=\"type\"\n [matchDates]=\"[selectedDate]\"\n (select)=\"panelValueChange($event)\"\n ></aui-picker-panel>\n\n <ng-container\n *ngIf=\"extraFooter\"\n [ngTemplateOutlet]=\"extraFooter\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-container *ngIf=\"showFooter\">\n <aui-calendar-footer\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue()\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n *ngIf=\"showTime; else today\"\n >\n <ng-container\n *ngIf=\"footerTemplate; else default\"\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-template #default>\n <aui-time-picker\n *ngIf=\"currentNavType === DatePickerType.Day && showTime\"\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"selectedTime\"\n [disableHours]=\"getDisabledTimeFn(selectedDate, 'hours')\"\n [disableMinutes]=\"getDisabledTimeFn(selectedDate, 'minutes')\"\n [disableSeconds]=\"getDisabledTimeFn(selectedDate, 'seconds')\"\n tooltipPosition=\"top start\"\n (ngModelChange)=\"timeDateChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n ></aui-time-picker>\n </ng-template>\n </aui-calendar-footer>\n\n <ng-template #today>\n <aui-calendar-footer\n *ngIf=\"type === DatePickerType.Day\"\n [clearable]=\"false\"\n [customAction]=\"todayBtn\"\n >\n </aui-calendar-footer>\n <ng-template #todayBtn>\n <button\n aui-button=\"inline\"\n (click)=\"setToday()\"\n >\n {{ 'today' | auiI18n }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { Dayjs } from 'dayjs';\n\nimport { CommonFormControl } from '../../../form/common-form';\nimport { TimePickerModel } from '../../../time-picker/time-picker.type';\nimport { buildBem } from '../../../utils';\nimport { DateNavRange, DisabledTimeFn, Side } from '../../date-picker.type';\nimport { DatePickerType, MONTH, YEAR } from '../constant';\nimport {\n composeDisabledDateFn,\n getTimePickerModel,\n getTypeByNavRange,\n maxDate,\n minDate,\n nextNavRangeType,\n sortDates,\n updateDate,\n updateDateByTimeModel,\n} from '../util';\n\nconst bem = buildBem('aui-date-range-picker-panel');\n\n@Component({\n selector: 'aui-date-range-picker-panel',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateRangePickerPanelComponent),\n multi: true,\n },\n ],\n})\nexport class DateRangePickerPanelComponent extends CommonFormControl<Dayjs[]> {\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n showTime = true;\n\n @Input()\n showFooter = true;\n\n @Input()\n disabledDate: (date: Dayjs, navRange: DateNavRange) => boolean = () => false;\n\n @Input()\n disabledTime: { left: DisabledTimeFn; right: DisabledTimeFn } = {\n left: () => null,\n right: () => null,\n };\n\n @Input()\n weekStartDay = 0;\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n @Output()\n clear = new EventEmitter<void>();\n\n @Output()\n confirm = new EventEmitter<void>();\n\n bem = bem;\n Side = Side;\n DatePickerType = DatePickerType;\n leftDateRange = DateNavRange.Month;\n rightDateRange = DateNavRange.Month;\n\n FOOTER_DATE_FORMAT = 'YYYY-MM-dd';\n\n leftAnchor = dayjs();\n rightAnchor = dayjs().add(1, MONTH);\n\n get maxHeaderAvail() {\n return minDate(this.rightAnchor, this.maxDate);\n }\n\n get minHeaderAvail() {\n return maxDate(this.minDate, this.leftAnchor);\n }\n\n // 用于存放 range data 序列,数量为 2 时清除\n rangeValue: Dayjs[] = [];\n\n // 用于组装匹配日期序列\n matchValues: Dayjs[];\n\n startTime: TimePickerModel;\n endTime: TimePickerModel;\n\n override writeValue(obj: Dayjs[]) {\n super.writeValue(obj);\n this.rangeValue = obj || [];\n this.matchValues = [...this.rangeValue];\n this.startTime = getTimePickerModel(obj?.[0]);\n this.endTime = getTimePickerModel(obj?.[1]);\n if (obj?.length === 2) {\n this.reorder(sortDates(obj));\n }\n this.cdr.markForCheck();\n }\n\n calendarRangeChange(type: DateNavRange, side: Side) {\n if (side === Side.Left) {\n this.leftDateRange = type;\n } else {\n this.rightDateRange = type;\n }\n }\n\n // range 组件范围受控\n getDateDisabledFn(side: Side, constrainValue: Dayjs) {\n return composeDisabledDateFn((date: Dayjs, navRange: DateNavRange) => {\n if (navRange === DateNavRange.Month) {\n return false;\n }\n if (navRange === DateNavRange.Decade) {\n return date[side === Side.Left ? 'isAfter' : 'isBefore'](\n constrainValue,\n YEAR,\n );\n }\n return !date[side === Side.Left ? 'isBefore' : 'isAfter'](\n constrainValue,\n MONTH,\n );\n }, this.disabledDate);\n }\n\n private getDisabledTimeCachedFn(side: Side) {\n let cacheSelectedDate: Dayjs;\n let cacheDisabledTimeFn: ReturnType<DisabledTimeFn>;\n return (value: Dayjs, key: keyof ReturnType<DisabledTimeFn>) => {\n if (value !== cacheSelectedDate) {\n cacheDisabledTimeFn = (this.disabledTime?.[side] || (() => null))(\n value,\n );\n cacheSelectedDate = value;\n }\n return cacheDisabledTimeFn?.[key];\n };\n }\n\n leftDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Left);\n rightDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Right);\n\n selectPickerPanel(value: Dayjs, side: Side) {\n const navRange =\n side === Side.Left ? this.leftDateRange : this.rightDateRange;\n const type = getTypeByNavRange(navRange);\n const dateValue = updateDate(\n side === Side.Left ? this.leftAnchor : this.rightAnchor,\n value,\n type,\n );\n const nextRange = nextNavRangeType(navRange, DateNavRange.Month);\n\n if (side === Side.Left) {\n this.leftAnchor = dateValue;\n this.leftDateRange = nextRange;\n } else {\n this.rightAnchor = dateValue;\n this.rightDateRange = nextRange;\n }\n\n if (navRange !== DateNavRange.Month) {\n return;\n }\n\n if (this.leftAnchor.isSame(this.rightAnchor, MONTH)) {\n this.rightAnchor = this.rightAnchor.add(1, MONTH);\n }\n\n this.rangeValue =\n this.rangeValue.length === 2\n ? [dateValue]\n : sortDates([...this.rangeValue, dateValue]);\n this.matchValues = [...this.rangeValue];\n this.syncTime();\n if (this.rangeValue.length === 2) {\n this.reorder(this.rangeValue);\n this.confirmValue(this.rangeValue, !this.showTime);\n }\n }\n\n reorder(sortedDate: Dayjs[]) {\n if (!sortedDate[0].isSame(sortedDate[1], MONTH)) {\n this.leftAnchor = updateDate(\n this.leftAnchor,\n sortedDate[0],\n DatePickerType.Day,\n );\n this.rightAnchor = updateDate(\n this.leftAnchor,\n sortedDate[1],\n DatePickerType.Day,\n );\n }\n }\n\n hoverItem(date: Dayjs) {\n if (this.rangeValue.length === 1) {\n this.matchValues[1] = date;\n }\n }\n\n confirmValue(value: Dayjs[], closeThen = true) {\n this.emitValue(value);\n closeThen && this.confirm.next();\n }\n\n timeChange(time: TimePickerModel) {\n if (!time) {\n return;\n }\n this.syncTime();\n if (!this.rangeValue?.length) {\n const date = updateDateByTimeModel(dayjs(), time);\n this.rangeValue = [date, date];\n this.matchValues = [...this.rangeValue];\n this.startTime = this.endTime = time;\n }\n this.emitValue(this.rangeValue);\n }\n\n syncTime() {\n if (this.showTime && !!this.rangeValue?.length) {\n const startDate = this.rangeValue[0]\n ? updateDateByTimeModel(this.rangeValue[0], this.startTime)\n : null;\n const endDate = this.rangeValue[1]\n ? updateDateByTimeModel(this.rangeValue[1], this.endTime)\n : null;\n if (!this.startTime && startDate) {\n this.startTime = getTimePickerModel(this.rangeValue[0]);\n }\n if (!this.endTime && endDate) {\n this.endTime = getTimePickerModel(this.rangeValue[1]);\n }\n this.rangeValue = [startDate, endDate].filter(i => !!i);\n }\n }\n}\n","<div [class]=\"bem.element('container')\">\n <div [class]=\"bem.element('header')\">\n <aui-calendar-header\n [dateNavRange]=\"leftDateRange\"\n [anchor]=\"leftAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Left)\"\n (anchorChange)=\"leftAnchor = $event\"\n [maxAvail]=\"maxHeaderAvail\"\n [minAvail]=\"minDate\"\n ></aui-calendar-header>\n <aui-calendar-header\n [dateNavRange]=\"rightDateRange\"\n [anchor]=\"rightAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Right)\"\n (anchorChange)=\"rightAnchor = $event\"\n [minAvail]=\"minHeaderAvail\"\n [maxAvail]=\"maxDate\"\n ></aui-calendar-header>\n </div>\n <div [class]=\"bem.element('body')\">\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"leftDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"leftAnchor\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Left, rightAnchor)\"\n [weekStartDay]=\"weekStartDay\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Left)\"\n ></aui-picker-panel>\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"rightDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"rightAnchor\"\n [weekStartDay]=\"weekStartDay\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Right, leftAnchor)\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Right)\"\n ></aui-picker-panel>\n </div>\n\n <aui-calendar-footer\n [class]=\"bem.element('footer')\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue(rangeValue)\"\n *ngIf=\"showFooter && showTime\"\n >\n <div\n [class]=\"bem.element('footer-content')\"\n *ngIf=\"showTime\"\n >\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'start_date' | auiI18n,\n value: rangeValue[0]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n [(ngModel)]=\"startTime\"\n size=\"small\"\n (ngModelChange)=\"timeChange($event)\"\n [disableHours]=\"leftDisabledTimeFn(rangeValue[0], 'hours')\"\n [disableMinutes]=\"leftDisabledTimeFn(rangeValue[0], 'minutes')\"\n [disableSeconds]=\"leftDisabledTimeFn(rangeValue[0], 'seconds')\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n\n <span class=\"placeholder separator\">{{ 'to' | auiI18n }}</span>\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'end_date' | auiI18n,\n value: rangeValue[1]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"endTime\"\n [disableHours]=\"rightDisabledTimeFn(rangeValue[1], 'hours')\"\n [disableMinutes]=\"rightDisabledTimeFn(rangeValue[1], 'minutes')\"\n [disableSeconds]=\"rightDisabledTimeFn(rangeValue[1], 'seconds')\"\n (ngModelChange)=\"timeChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n </div>\n </aui-calendar-footer>\n</div>\n\n<ng-template\n #datePlaceholder\n let-placeholder=\"placeholder\"\n let-value=\"value\"\n>\n <span\n *ngIf=\"!value\"\n class=\"placeholder date-holder\"\n >{{ placeholder }}</span\n >\n <span\n *ngIf=\"value\"\n class=\"date-value date-holder\"\n >{{ value | date: FOOTER_DATE_FORMAT }}</span\n >\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { I18nPipe } from './i18n.pipe';\n\n@NgModule({\n declarations: [I18nPipe],\n exports: [I18nPipe],\n})\nexport class I18nModule {}\n","import { I18NInterface } from '../i18n.type';\n\nexport const zh: I18NInterface = {\n locale: 'zh',\n translation: {\n start_date: '开始日期',\n end_date: '结束日期',\n select_time: '选择时间',\n select_date: '选择日期',\n clear: '清除',\n confirm: '确定',\n to: '至',\n year_suffix: '年',\n month_suffix: '月',\n monday: '一',\n tuesday: '二',\n wednesday: '三',\n thursday: '四',\n friday: '五',\n saturday: '六',\n sunday: '日',\n now: '此刻',\n select_all: '全选',\n today: '今天',\n },\n};\n","let hiddenTextarea: HTMLTextAreaElement;\n\nconst HIDDEN_STYLE = `\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n`;\n\nconst CONTEXT_STYLE = [\n 'letter-spacing',\n 'line-height',\n 'padding-top',\n 'padding-bottom',\n 'font-family',\n 'font-weight',\n 'font-size',\n 'text-rendering',\n 'text-transform',\n 'width',\n 'text-indent',\n 'padding-left',\n 'padding-right',\n 'border-width',\n 'box-sizing',\n];\n\nfunction calculateNodeStyling(targetElement: HTMLTextAreaElement) {\n const style = window.getComputedStyle(targetElement);\n\n const boxSizing = style.getPropertyValue('box-sizing');\n\n const paddingSize =\n parseFloat(style.getPropertyValue('padding-bottom')) +\n parseFloat(style.getPropertyValue('padding-top'));\n\n const borderSize =\n parseFloat(style.getPropertyValue('border-bottom-width')) +\n parseFloat(style.getPropertyValue('border-top-width'));\n\n const contextStyle = CONTEXT_STYLE.map(\n name => `${name}:${style.getPropertyValue(name)}`,\n ).join(';');\n\n return { contextStyle, paddingSize, borderSize, boxSizing };\n}\n\nexport function calcTextareaHeight(\n targetElement: HTMLTextAreaElement,\n minRows = 1,\n maxRows: number = null,\n) {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.append(hiddenTextarea);\n }\n\n const { paddingSize, borderSize, contextStyle } =\n calculateNodeStyling(targetElement);\n\n hiddenTextarea.setAttribute('style', `${contextStyle};${HIDDEN_STYLE}`);\n hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';\n\n let height = hiddenTextarea.scrollHeight + borderSize;\n\n hiddenTextarea.value = '';\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n\n const result: {\n minHeight?: string;\n maxHeight?: string;\n height?: string;\n } = {};\n\n if (minRows !== null) {\n const minHeight = singleRowHeight * minRows + paddingSize + borderSize;\n height = Math.max(minHeight, height);\n result.minHeight = `${minHeight}px`;\n }\n if (maxRows !== null) {\n const maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;\n height = Math.min(maxHeight, height);\n result.maxHeight = `${maxHeight}px`;\n }\n result.height = `${height}px`;\n\n if (hiddenTextarea.parentNode) {\n hiddenTextarea.remove();\n }\n hiddenTextarea = null;\n\n return result;\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subject, startWith, takeUntil } from 'rxjs';\n\nimport { calcTextareaHeight } from './utils';\n\nconst DEFAULT_VALUE = {\n minRows: 3,\n maxRows: 6,\n};\n\nexport interface AutoSizeValue {\n minRows: number;\n maxRows?: number;\n}\n\n/**\n * Directive to automatically resize a textarea to fit its content.\n */\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'textarea[autosize][ngModel],textarea[autosize][formControl],textarea[autosize][formControlName]',\n exportAs: 'TextareaAutosize',\n})\nexport class AutosizeDirective implements AfterViewInit, OnDestroy {\n private _autoSize: AutoSizeValue = DEFAULT_VALUE;\n\n private readonly destroy$$ = new Subject<void>();\n\n @Input('autosize')\n get autoSize() {\n return this._autoSize;\n }\n\n set autoSize(value: AutoSizeValue | '') {\n if (!value) {\n value = DEFAULT_VALUE;\n }\n this._autoSize = value;\n this.resizeTextarea();\n }\n\n constructor(\n private readonly elRef: ElementRef<HTMLTextAreaElement>,\n private readonly ngControl: NgControl,\n ) {}\n\n resizeTextarea() {\n const el = this.elRef.nativeElement;\n const autoSize = this._autoSize;\n Object.assign(\n el.style,\n calcTextareaHeight(\n el,\n autoSize.minRows ?? DEFAULT_VALUE.minRows,\n autoSize.maxRows || DEFAULT_VALUE.maxRows, // 0 is unacceptable\n ),\n );\n }\n\n ngAfterViewInit() {\n this.ngControl.valueChanges\n .pipe(startWith(null as void), takeUntil(this.destroy$$))\n .subscribe(() => this.resizeTextarea());\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Output,\n} from '@angular/core';\n\n@Directive({\n selector: '[auiClickOutside]',\n exportAs: 'auiClickOutside',\n})\nexport class ClickOutsideDirective {\n @Output()\n auiClickOutside = new EventEmitter<Event>();\n\n @HostListener('document:click', ['$event'])\n onBodyClick(event: Event) {\n if (!this.el.nativeElement.contains(event.target as Node)) {\n this.auiClickOutside.emit(event);\n }\n }\n\n constructor(private readonly el: ElementRef<HTMLElement>) {}\n}\n","import { NgModule } from '@angular/core';\n\nimport { ClickOutsideDirective } from './click-outside.directive';\n\n@NgModule({\n declarations: [ClickOutsideDirective],\n exports: [ClickOutsideDirective],\n})\nexport class SharedModule {}\n","import { ValueOf } from '../types';\n\nexport const TagType = {\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Error: 'error',\n Info: 'info',\n} as const;\n\nexport type TagType = ValueOf<typeof TagType>;\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\nimport { TagType } from '../tag.types';\n\n@Component({\n selector: 'aui-check-tag',\n templateUrl: './check-tag.component.html',\n styleUrls: ['./check-tag.component.scss', '../tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class CheckTagComponent {\n bem: Bem = buildBem('aui-tag');\n hovered = false;\n\n @Input()\n checked = false;\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n round = true;\n\n @Output()\n checkedChange = new EventEmitter<boolean>();\n\n get rootClass() {\n return `aui-check-tag ${this.bem.block(\n this.size,\n this.checked || this.hovered ? TagType.Primary : TagType.Info,\n )} ${this.round ? 'isRound' : ''}`;\n }\n}\n","<div\n [class]=\"rootClass\"\n (click)=\"checkedChange.emit(!checked)\"\n (mouseenter)=\"hovered = true\"\n (mouseleave)=\"hovered = false\"\n [class.isSolid]=\"checked\"\n>\n <span class=\"aui-tag__content\"><ng-content></ng-content></span>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../types';\nimport { Bem, buildBem } from '../utils';\n\nimport { TagType } from './tag.types';\n\n@Component({\n selector: 'aui-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class TagComponent {\n bem: Bem = buildBem('aui-tag');\n\n @Input()\n type: TagType = TagType.Primary;\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n closeable = false;\n\n @Input()\n border = false;\n\n @Input()\n solid = false;\n\n @Input()\n invalid = false;\n\n @Input()\n round = true;\n\n @Input()\n color = '';\n\n @Input()\n allowClick = false;\n\n @Output()\n close = new EventEmitter<void>();\n\n get rootClass() {\n return `${this.bem.block(\n this.type || TagType.Primary,\n this.size || ComponentSize.Medium,\n )} ${this.solid ? 'isSolid' : ''} ${this.border ? 'hasBorder' : ''} ${\n this.invalid ? 'isInvalid' : ''\n } ${this.round ? 'isRound' : ''} ${\n this.allowClick && this.isNormalTag ? 'allowClick' : ''\n }`;\n }\n\n // 只有常规标签支持单击样式\n get isNormalTag() {\n return !this.solid && !this.closeable && !this.invalid;\n }\n\n get customStyle() {\n const arr = this.color.split(',');\n return {\n color: arr[0],\n 'border-color': arr[0],\n 'background-color': arr[1] || arr[0],\n };\n }\n}\n","<div\n [class]=\"rootClass\"\n [ngStyle]=\"customStyle\"\n>\n <span class=\"aui-tag__content\"><ng-content></ng-content></span>\n <aui-icon\n *ngIf=\"closeable\"\n class=\"aui-tag__close\"\n icon=\"close_small\"\n (click)=\"close.emit(); $event.stopPropagation()\"\n ></aui-icon>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { CheckTagComponent } from './check-tag/check-tag.component';\nimport { TagComponent } from './tag.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [TagComponent, CheckTagComponent],\n exports: [TagComponent, CheckTagComponent],\n})\nexport class TagModule {}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n ContentChildren,\n QueryList,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\nimport { CommonFormControl } from '../../form';\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem, coerceNumber, watchContentExist } from '../../utils';\nimport {\n InputAddonAfterDirective,\n InputAddonBeforeDirective,\n} from '../helper-directives';\n\n@Component({\n selector: 'aui-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberInputComponent),\n multi: true,\n },\n ],\n})\nexport class NumberInputComponent\n extends CommonFormControl<number>\n implements AfterContentInit, AfterViewInit\n{\n bem: Bem = buildBem('aui-number-input');\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n min: string | number = Number.MIN_SAFE_INTEGER;\n\n @Input()\n max: string | number = Number.MAX_SAFE_INTEGER;\n\n @Input()\n step = 1;\n\n @Input()\n precision: number;\n\n @Input()\n controls = true;\n\n @Input()\n placeholder = '';\n\n @Input()\n controlsPosition = '';\n\n @Input()\n angleControls = false;\n\n @ViewChild('inputRef', { read: ElementRef })\n inputRef: ElementRef<HTMLInputElement>;\n\n @ContentChildren(InputAddonBeforeDirective)\n private readonly addonBeforeRefs: QueryList<InputAddonBeforeDirective>;\n\n @ContentChildren(InputAddonAfterDirective)\n private readonly addonAfterRefs: QueryList<InputAddonAfterDirective>;\n\n isFocus = false;\n\n hasAddonBefore$: Observable<boolean>;\n hasAddonAfter$: Observable<boolean>;\n\n ngAfterContentInit() {\n this.hasAddonBefore$ = watchContentExist(this.addonBeforeRefs);\n this.hasAddonAfter$ = watchContentExist(this.addonAfterRefs);\n }\n\n ngAfterViewInit() {\n this.inputRef.nativeElement.value = (this.model ?? '') + '';\n }\n\n override valueIn(v: number) {\n if (this.inputRef) {\n this.inputRef.nativeElement.value = (v ?? '') + '';\n }\n return v;\n }\n\n override modelOut(value: number) {\n return Math.max(\n coerceNumber(this.min, Number.MIN_SAFE_INTEGER),\n Math.min(\n coerceNumber(this.max, Number.MAX_SAFE_INTEGER),\n this.parsePrecision(value),\n ),\n );\n }\n\n inputChanged(value: string) {\n this.emitModel(coerceNumber(value, this.model));\n }\n\n takeOneStep(positive: boolean) {\n if (positive) {\n this.emitModel((this.model ?? 0) + this.step);\n } else {\n this.emitModel((this.model ?? 0) - this.step);\n }\n }\n\n private parsePrecision(value: number) {\n const precision = this.precision ?? this.getStepPrecision();\n return parseFloat(value.toFixed(precision));\n }\n\n private getStepPrecision() {\n const step = this.step + '';\n const index = step.indexOf('.');\n return index < 0 ? 0 : step.slice(index + 1).length;\n }\n}\n","<div\n [class]=\"bem.block(size)\"\n [ngClass]=\"{\n isFocused: isFocus,\n isDisabled: disabled,\n hasBefore: hasAddonBefore$ | async,\n hasAfter: hasAddonAfter$ | async\n }\"\n>\n <div\n *ngIf=\"hasAddonBefore$ | async\"\n [class]=\"bem.element('addon', 'before')\"\n >\n <ng-content select=\"[auiInputAddonBefore]\"></ng-content>\n </div>\n <div\n [class]=\"bem.element('inner')\"\n auiClickOutside\n (auiClickOutside)=\"isFocus = false\"\n >\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'decrease')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"minus\"></aui-icon>\n </button>\n <input\n #inputRef\n autocomplete=\"off\"\n (change)=\"inputChanged($any($event).target.value)\"\n [disabled]=\"disabled\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n (focus)=\"isFocus = true\"\n (blur)=\"isFocus = false\"\n [ngStyle]=\"{ 'text-align': angleControls ? 'left' : 'center' }\"\n />\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'increase')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"plus\"></aui-icon>\n </button>\n <div\n *ngIf=\"controls && angleControls\"\n class=\"aui-number-input__controls\"\n >\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-up')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"angle_up\"></aui-icon>\n </button>\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-down')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"angle_down\"></aui-icon>\n </button>\n </div>\n </div>\n <div\n *ngIf=\"hasAddonAfter$ | async\"\n [class]=\"bem.element('addon', 'after')\"\n >\n <ng-content select=\"[auiInputAddonAfter]\"></ng-content>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\n\n@Component({\n selector: 'aui-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class SearchComponent {\n bem: Bem = buildBem('aui-search');\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n searchButton = false;\n\n @Input()\n clearable = true;\n\n @Input()\n searching = false;\n\n @Input()\n placeholder = '';\n\n @Input()\n disabled = false;\n\n @Input()\n get keyword() {\n return this.value;\n }\n\n set keyword(value: string) {\n this.value = value;\n }\n\n @Output()\n keywordChange = new EventEmitter<string>();\n\n @Output()\n search = new EventEmitter<string>();\n\n @Output()\n clear = new EventEmitter<void>();\n\n @ViewChild('input', { read: ElementRef })\n inputRef: ElementRef<HTMLInputElement>;\n\n value = '';\n\n get showSpinner() {\n return this.searching && !this.searchButton;\n }\n\n get showClear() {\n return !this.disabled && this.clearable && this.value && !this.showSpinner;\n }\n\n focus() {\n this.inputRef.nativeElement.focus();\n }\n\n emitChange(value: string): void {\n this.value = value;\n this.keywordChange.emit(value);\n }\n\n emitSearch(): void {\n if (this.disabled) {\n return;\n }\n this.search.emit(this.value);\n }\n\n emitClear(): void {\n if (this.disabled) {\n return;\n }\n this.value = '';\n this.keywordChange.emit('');\n this.search.emit('');\n this.clear.emit();\n this.inputRef.nativeElement.focus();\n }\n}\n","<div\n [ngClass]=\"bem.block(size)\"\n [class.hasIcon]=\"!searchButton\"\n [class.hasButton]=\"searchButton\"\n [class.isClearable]=\"showClear\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"search_s\"></aui-icon>\n </div>\n <input\n #input\n aui-input\n autocomplete=\"off\"\n [ngModel]=\"value\"\n (ngModelChange)=\"emitChange($event)\"\n [disabled]=\"disabled\"\n (keyup.enter)=\"emitSearch()\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n />\n <div\n *ngIf=\"showSpinner\"\n [class]=\"bem.element('spinner')\"\n >\n <aui-icon icon=\"spinner\"></aui-icon>\n </div>\n <div\n [hidden]=\"!showClear\"\n [class]=\"bem.element('clear')\"\n (click)=\"emitClear()\"\n >\n <aui-icon icon=\"close_small\"></aui-icon>\n </div>\n <div\n *ngIf=\"searchButton\"\n [class]=\"bem.element('button')\"\n (click)=\"emitSearch()\"\n >\n <div [class]=\"bem.element('button-icon')\">\n <aui-icon [icon]=\"searching ? 'spinner' : 'search_s'\"></aui-icon>\n </div>\n </div>\n</div>\n","import { ComponentSize } from '../../types';\n\nfunction getRowHeight(size: ComponentSize) {\n switch (size) {\n case ComponentSize.Large:\n return 33;\n case ComponentSize.Small:\n return 23;\n case ComponentSize.Mini:\n return 21;\n default:\n return 25;\n }\n}\n\nfunction getContainerPaddingPatch(size: ComponentSize) {\n switch (size) {\n case ComponentSize.Mini:\n return 3;\n case ComponentSize.Small:\n return 5;\n default:\n return 7;\n }\n}\n\nexport function createWithMaxRowCount<\n T extends {\n maxRowCount: number;\n customRowHeight?: number;\n size: ComponentSize;\n },\n>(component: T) {\n const hostPosition = () => (component.maxRowCount > 0 ? 'relative' : null);\n const hostDisplay = () => (component.maxRowCount ? 'block' : null);\n const maxHeight = () => {\n if (component.maxRowCount <= 0) {\n return null;\n }\n\n const paddingPatch = getContainerPaddingPatch(component.size);\n\n const rowHeight =\n isNaN(component.customRowHeight) || component.customRowHeight <= 0\n ? getRowHeight(component.size)\n : component.customRowHeight;\n\n return `${rowHeight * component.maxRowCount + paddingPatch}px`;\n };\n\n return {\n hostPosition,\n hostDisplay,\n maxHeight,\n };\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Injector,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport {\n AsyncValidatorFn,\n FormBuilder,\n NG_VALUE_ACCESSOR,\n NgControl,\n ValidatorFn,\n Validators,\n FormControl,\n} from '@angular/forms';\nimport { take } from 'rxjs';\n\nimport { CommonFormControl } from '../../form';\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\n\nimport { createWithMaxRowCount } from './with-max-row-count';\n\nexport const INPUT_ERROR_KEY = 'input_data_error';\n\n@Component({\n selector: 'aui-tags-input',\n templateUrl: './tags-input.component.html',\n styleUrls: [\n '../../input/input.component.scss',\n '../../tag/tag.component.scss',\n './tags-input.component.scss',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TagsInputComponent),\n multi: true,\n },\n ],\n})\nexport class TagsInputComponent\n extends CommonFormControl<string[]>\n implements AfterViewInit, OnChanges\n{\n bem: Bem = buildBem('aui-tags-input');\n\n @Input()\n placeholder = '';\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n // TODO: implement this feature\n @Input()\n clearable: boolean | '' = false;\n\n @Input()\n allowRepeat: boolean | '' = false;\n\n @Input()\n allowEmpty: boolean | '' = false;\n\n @Input()\n readonlyTags: string[] | readonly string[] = [];\n\n @Input()\n maxRowCount = 0;\n\n @Input()\n customRowHeight = 0; // 0: use default style const value, > 1: for ```tagClassFn``` maybe affect lineHeight\n\n _inputValidator: ValidatorFn;\n _inputAsyncValidator: AsyncValidatorFn;\n\n @Input()\n set inputValidator(fn: ValidatorFn | ValidatorFn[]) {\n this._inputValidator = Array.isArray(fn) ? Validators.compose(fn) : fn;\n }\n\n get inputValidator() {\n return this._inputValidator;\n }\n\n @Input()\n set inputAsyncValidator(fn: AsyncValidatorFn | AsyncValidatorFn[]) {\n this._inputAsyncValidator = Array.isArray(fn)\n ? Validators.composeAsync(fn)\n : fn;\n }\n\n get inputAsyncValidator() {\n return this._inputAsyncValidator;\n }\n\n @ViewChild('inputRef', { static: true })\n inputRef: ElementRef<HTMLInputElement>;\n\n @ViewChild('inputValueMirror', { static: true })\n inputValueMirror: ElementRef<HTMLElement>;\n\n @HostBinding('style.position')\n get hostPosition() {\n return this.withMaxRowCount.hostPosition();\n }\n\n @HostBinding('style.display')\n get hostDisplay() {\n return this.withMaxRowCount.hostDisplay();\n }\n\n get maxHeight() {\n return this.withMaxRowCount.maxHeight();\n }\n\n private readonly withMaxRowCount = createWithMaxRowCount(this);\n\n focused = false;\n override model: string[] = [];\n\n // 内置form control,仅作校验使用\n readonly inputControl: FormControl;\n // 外层 FormControl,所有的校验逻辑针对输入数据\n controlContainer: NgControl;\n\n get rootClass() {\n const size = this.size || ComponentSize.Medium;\n return `aui-input ${this.bem.block(size)} ${\n this.disabled ? 'isDisabled' : ''\n } ${this.focused ? 'isFocused' : ''} ${\n this.clearable ? 'isClearable' : ''\n } ${this.maxRowCount > 0 ? 'withHeightLimit' : ''}`;\n }\n\n get tagSize() {\n return this.size === ComponentSize.Large\n ? ComponentSize.Medium\n : ComponentSize.Mini;\n }\n\n get inputClass() {\n return `${this.bem.element('input', {\n hidden:\n this.disabled || (!this.focused && !this.inputRef?.nativeElement.value),\n })} aui-tag aui-tag--${this.tagSize}`;\n }\n\n constructor(\n cdr: ChangeDetectorRef,\n private readonly fb: FormBuilder,\n private readonly renderer: Renderer2,\n private readonly injector: Injector,\n ) {\n super(cdr);\n this.inputControl = this.fb.control('');\n }\n\n ngOnChanges({\n inputValidator,\n inputAsyncValidator,\n disabled,\n }: SimpleChanges) {\n if (disabled) {\n this.inputControl[disabled.currentValue ? 'disable' : 'enable']({\n emitEvent: false,\n });\n }\n if (inputValidator) {\n this.inputControl.setValidators(this.inputValidator);\n }\n if (inputAsyncValidator) {\n this.inputControl.setAsyncValidators(this.inputAsyncValidator);\n }\n }\n\n ngAfterViewInit() {\n this.controlContainer = this.injector.get(NgControl, null);\n }\n\n onRemove(index: number) {\n const target = this.model[index];\n if (target && this.readonlyTags.includes(target)) {\n return;\n }\n this.emitValue(this.model.filter((_, i) => i !== index));\n }\n\n onInput() {\n const value = this.inputRef.nativeElement.value;\n // make sure value sync to span element\n requestAnimationFrame(() => {\n if (!value.length) {\n this.renderer.removeStyle(this.inputRef.nativeElement, 'width');\n } else {\n this.renderer.setStyle(\n this.inputRef.nativeElement,\n 'width',\n this.inputValueMirror.nativeElement.scrollWidth + 'px',\n );\n }\n });\n if (\n this.controlContainer?.control?.errors?.[INPUT_ERROR_KEY] &&\n Object.keys(this.controlContainer.control.errors).length === 1\n ) {\n this.controlContainer.control.setErrors(null);\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n const inputEl = event.target as HTMLInputElement;\n if (event.key === 'Backspace' && inputEl.value === '') {\n this.onRemove(this.model.length - 1);\n event.stopPropagation();\n event.preventDefault();\n } else if (event.key === 'Enter') {\n event.stopPropagation();\n event.preventDefault();\n requestAnimationFrame(() => {\n this.pushValue(inputEl.value);\n });\n }\n }\n\n onInputFocus() {\n this.focused = true;\n }\n\n onInputBlur(event: Event) {\n this.focused = false;\n this.pushValue((event.target as HTMLInputElement).value);\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n trackByValue(_: number, value: string) {\n return value;\n }\n\n protected override valueIn(v: string[]): string[] {\n this.clearInput();\n return this.sortByReadonly(v || []);\n }\n\n private sortByReadonly(items: string[]) {\n return this.readonlyTags.length\n ? [\n ...items.reduce(\n (acc, curr) => acc.add(curr),\n new Set(this.readonlyTags),\n ),\n ]\n : items;\n }\n\n private pushValue(value: string) {\n if (!this.allowEmpty && !value) {\n this.removeInputControlError();\n return;\n }\n if (!this.allowRepeat && this.model.includes(value)) {\n return;\n }\n this.inputControl.setValue(this.inputRef.nativeElement.value);\n // inputControl 自身的状态为同步计算\n this.syncControlStatus();\n if (this.inputControl.valid) {\n this.emitValue(this.model.concat(value));\n } else if (this.inputControl.pending) {\n // PENDING 后只会变为 VALID 或 INVALID 的决议状态\n this.inputControl.statusChanges.pipe(take(1)).subscribe(_ => {\n this.syncControlStatus();\n if (this.inputControl.valid) {\n this.emitValue(this.model.concat(value));\n }\n });\n }\n }\n\n private syncControlStatus() {\n const { pending, valid, invalid, disabled, errors } = this.inputControl;\n if (valid) {\n this.removeInputControlError();\n this.controlContainer?.control.markAsDirty();\n } else if (pending) {\n this.controlContainer?.control.markAsPending();\n } else if (invalid) {\n this.controlContainer?.control.markAsDirty();\n this.controlContainer?.control.setErrors({\n ...this.controlContainer?.control?.errors,\n [INPUT_ERROR_KEY]: errors,\n });\n } else if (disabled) {\n // 与当前 input 校验脱离\n this.controlContainer?.control?.updateValueAndValidity();\n }\n }\n\n private removeInputControlError() {\n let errors = this.controlContainer?.control.errors;\n if (errors?.[INPUT_ERROR_KEY]) {\n delete errors[INPUT_ERROR_KEY];\n }\n if (Object.keys(errors || {}).length === 0) {\n errors = null;\n }\n this.controlContainer?.control.setErrors(errors);\n }\n\n private clearInput() {\n this.renderer.removeStyle(this.inputRef.nativeElement, 'width');\n this.inputRef.nativeElement.value = '';\n this.inputControl.setValue('');\n }\n}\n","<div\n [class]=\"rootClass\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"inputRef.focus()\"\n [style.max-height]=\"maxHeight\"\n>\n <span\n [hidden]=\"model.length || inputRef.value.length\"\n [class]=\"bem.element('placeholder')\"\n >\n {{ placeholder }}\n </span>\n <aui-tag\n *ngFor=\"let tag of model; let index = index; trackBy: trackByValue\"\n type=\"info\"\n [title]=\"tag\"\n [size]=\"tagSize\"\n [round]=\"true\"\n [border]=\"true\"\n [closeable]=\"!(disabled || readonlyTags.includes(tag))\"\n (close)=\"onRemove(index)\"\n >\n {{ tag }}\n </aui-tag>\n <input\n #inputRef\n [class]=\"inputClass\"\n [disabled]=\"disabled\"\n autocomplete=\"off\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeyDown($event)\"\n (input)=\"onInput()\"\n />\n <span\n #inputValueMirror\n [class]=\"bem.element('mirror')\"\n >{{ inputRef.value }}</span\n >\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { IconModule } from '../icon';\nimport { SharedModule } from '../shared/shared.module';\nimport { TagModule } from '../tag';\n\nimport { AutosizeDirective } from './autosize.directive';\nimport {\n InputAddonAfterDirective,\n InputAddonBeforeDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n} from './helper-directives';\nimport { InputGroupComponent } from './input-group/input-group.component';\nimport { InputComponent } from './input.component';\nimport { NumberInputComponent } from './number-input/number-input.component';\nimport { SearchComponent } from './search/search.component';\nimport { TagsInputComponent } from './tags-input/tags-input.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n IconModule,\n TagModule,\n SharedModule,\n ],\n declarations: [\n AutosizeDirective,\n InputComponent,\n InputGroupComponent,\n InputAddonBeforeDirective,\n InputAddonAfterDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n SearchComponent,\n TagsInputComponent,\n NumberInputComponent,\n ],\n exports: [\n AutosizeDirective,\n InputComponent,\n InputGroupComponent,\n InputAddonBeforeDirective,\n InputAddonAfterDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n SearchComponent,\n TagsInputComponent,\n NumberInputComponent,\n ],\n})\nexport class InputModule {}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '../button';\nimport { I18nModule } from '../i18n';\nimport { IconModule } from '../icon';\nimport { InputModule } from '../input';\nimport { TooltipModule } from '../tooltip';\n\nimport { TimePickerComponent } from './component';\nimport { TimePickerPanelComponent } from './panel/panel.component';\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n PortalModule,\n OverlayModule,\n CommonModule,\n InputModule,\n TooltipModule,\n IconModule,\n ButtonModule,\n I18nModule,\n ],\n declarations: [TimePickerComponent, TimePickerPanelComponent],\n exports: [TimePickerComponent, TimePickerPanelComponent],\n})\nexport class TimePickerModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Dayjs } from 'dayjs';\n\nimport { InputComponent } from '../../input/input.component';\nimport { ComponentSize } from '../../types';\nimport { buildBem } from '../../utils';\n\nconst bem = buildBem('aui-date-picker-trigger');\n\n@Component({\n selector: 'aui-date-picker-trigger',\n templateUrl: './trigger.template.html',\n styleUrls: ['./trigger.style.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class DatePickerTriggerComponent {\n @Input()\n format = 'YYYY-MM-DD';\n\n @Input()\n size: ComponentSize;\n\n @Input()\n isRange: boolean;\n\n @Input()\n value: Dayjs | Dayjs[];\n\n @Input()\n clearable = true;\n\n @Input()\n placeholder: string;\n\n @Input()\n startPlaceholder: string;\n\n @Input()\n endPlaceholder: string;\n\n @Input()\n disabled = false;\n\n @Output()\n blur = new EventEmitter<void>();\n\n @Output()\n clear = new EventEmitter<void>();\n\n @ViewChild('focusRef', { static: false })\n focusInputRef: InputComponent;\n\n centerFocus = false;\n leftFocus = false;\n rightFocus = false;\n hovered = false;\n bem = bem;\n\n get isFocus() {\n return this.isRange ? this.leftFocus || this.rightFocus : this.centerFocus;\n }\n\n get hasValue() {\n return !this.isRange\n ? !!this.value\n : (this.value as Dayjs[])?.[0] || (this.value as Dayjs[])?.[1];\n }\n\n get showClear() {\n return !this.disabled && this.clearable && this.hasValue && this.hovered;\n }\n\n constructor() {\n this.focusInput = this.focusInput.bind(this);\n }\n\n focusInput() {\n this.focusInputRef.elementRef.nativeElement.focus();\n }\n}\n","<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n isFocused: isFocus,\n isRange: isRange,\n disabled: disabled\n }\"\n (mouseenter)=\"hovered = true\"\n (mouseleave)=\"hovered = false\"\n>\n <span [class]=\"bem.element('content')\">\n <ng-container *ngIf=\"isRange\">\n <input\n style=\"flex: 1\"\n aui-input\n #focusRef\n [value]=\"$any(value || [])[0]?.format(format)\"\n [readonly]=\"true\"\n [size]=\"size\"\n (focus)=\"leftFocus = true\"\n (blur)=\"leftFocus = false; blur.next()\"\n [placeholder]=\"startPlaceholder || ('start_date' | auiI18n)\"\n />\n <span\n class=\"placeholder\"\n (click)=\"focusInput()\"\n >{{ 'to' | auiI18n }}</span\n >\n <input\n style=\"flex: 1\"\n aui-input\n [value]=\"$any(value || [])[1]?.format(format)\"\n [readonly]=\"true\"\n [size]=\"size\"\n (focus)=\"rightFocus = true\"\n (blur)=\"rightFocus = false; blur.next()\"\n [placeholder]=\"endPlaceholder || ('end_date' | auiI18n)\"\n />\n </ng-container>\n <ng-container *ngIf=\"!isRange\">\n <input\n aui-input\n auiTooltipType=\"plain\"\n [value]=\"$any(value)?.format(format)\"\n [readonly]=\"true\"\n #focusRef\n [size]=\"size\"\n auiTooltipType=\"info\"\n (focus)=\"centerFocus = true\"\n (blur)=\"centerFocus = false; blur.next()\"\n [placeholder]=\"placeholder || ('select_date' | auiI18n)\"\n />\n </ng-container>\n </span>\n <span\n [class]=\"bem.element('addon')\"\n (click)=\"focusInput()\"\n >\n <aui-icon\n *ngIf=\"showClear; else calendar\"\n class=\"clear\"\n size=\"16px\"\n icon=\"close_small\"\n (click)=\"$event.stopImmediatePropagation(); this.clear.next()\"\n ></aui-icon>\n <ng-template #calendar>\n <aui-icon icon=\"calendar\"></aui-icon>\n </ng-template>\n </span>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { ConfigType, Dayjs } from 'dayjs';\n\nimport { CommonFormControl } from '../../form/common-form';\nimport { ComponentSize } from '../../types';\nimport { DatePickerType } from '../calendar/constant';\nimport { DateNavRange, DisabledTimeFn } from '../date-picker.type';\n\n@Component({\n selector: 'aui-date-picker',\n templateUrl: './date-picker.template.html',\n styleUrls: ['./date-picker.style.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true,\n },\n ],\n})\nexport class DatePickerComponent\n extends CommonFormControl<ConfigType, Dayjs>\n implements OnInit\n{\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n format: string;\n\n @Input()\n showTime = false;\n\n @Input()\n type = DatePickerType.Day;\n\n @Input()\n size = ComponentSize.Medium;\n\n @Input()\n disabledDate: (date: Dayjs, type: DateNavRange) => boolean = () => false;\n\n @Input()\n disabledTime: DisabledTimeFn = () => null;\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n @Input()\n weekStartDay = 0;\n\n @Input()\n showFooter = true;\n\n @Input()\n footerTemplate: TemplateRef<unknown>;\n\n @Input()\n extraFooter: TemplateRef<unknown>;\n\n @Input()\n placeholder: string;\n\n @Output()\n openChange = new EventEmitter<boolean>();\n\n value: Dayjs;\n DatePickerType = DatePickerType;\n\n ngOnInit() {\n if (!this.format) {\n this.format = this.getDefaultFormat(this.type);\n this.cdr.markForCheck();\n }\n }\n\n override valueIn(obj: ConfigType) {\n return obj ? dayjs(obj) : null;\n }\n\n override writeValue(obj: Dayjs) {\n super.writeValue(obj);\n this.value = obj;\n this.cdr.markForCheck();\n }\n\n private getDefaultFormat(type = DatePickerType.Day) {\n return type === DatePickerType.Year\n ? 'YYYY'\n : type === DatePickerType.Month\n ? 'YYYY-MM'\n : this.showTime\n ? 'YYYY-MM-DD HH:mm:ss'\n : 'YYYY-MM-DD';\n }\n\n clearValue() {\n this.value = null;\n this.emitValue(null);\n }\n}\n","<aui-date-picker-trigger\n [size]=\"size\"\n [value]=\"value\"\n [format]=\"format\"\n style=\"display: flex\"\n [auiTooltip]=\"template\"\n auiTooltipType=\"info\"\n auiTooltipClass=\"date-picker-wrapper\"\n [disabled]=\"!!disabled\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipTrigger=\"click\"\n [auiTooltipDisabled]=\"!!disabled\"\n [auiTooltipHideOnClick]=\"true\"\n [placeholder]=\"placeholder\"\n (auiTooltipHide)=\"openChange.next(false); emitValue(value)\"\n (auiTooltipShow)=\"openChange.next(true)\"\n (clear)=\"clearValue()\"\n #tooltip=\"auiTooltip\"\n></aui-date-picker-trigger>\n\n<ng-template #template>\n <aui-date-picker-panel\n [type]=\"type\"\n style=\"padding-top: 9px; display: inline-block\"\n [(ngModel)]=\"value\"\n [showTime]=\"showTime\"\n [showFooter]=\"showFooter\"\n [disabledDate]=\"disabledDate\"\n [disabledTime]=\"disabledTime\"\n [weekStartDay]=\"weekStartDay\"\n [extraFooter]=\"extraFooter\"\n [footerTemplate]=\"footerTemplate\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (click)=\"$event.stopImmediatePropagation()\"\n (clear)=\"clearValue()\"\n (confirm)=\"tooltip.disposeTooltip(); emitValue(value)\"\n ></aui-date-picker-panel>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { ConfigType, Dayjs } from 'dayjs';\n\nimport { CommonFormControl } from '../../form/common-form';\nimport { ComponentSize } from '../../types';\nimport { DisabledDateFn, DisabledTimeFn } from '../date-picker.type';\n\n@Component({\n selector: 'aui-range-picker',\n templateUrl: './range-picker.template.html',\n styleUrls: ['./range-picker.style.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangePickerComponent),\n multi: true,\n },\n ],\n})\nexport class RangePickerComponent extends CommonFormControl<\n ConfigType[],\n Dayjs[]\n> {\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n format = 'YYYY-MM-DD';\n\n @Input()\n showFooter = true;\n\n @Input()\n showTime = true;\n\n @Input()\n disabledDate: DisabledDateFn = () => false;\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n @Input()\n disabledTime: { left: DisabledTimeFn; right: DisabledTimeFn } = {\n left: () => null,\n right: () => null,\n };\n\n @Input()\n weekStartDay = 0;\n\n @Input()\n size: ComponentSize;\n\n @Output()\n openChange = new EventEmitter<boolean>();\n\n value: [Dayjs, Dayjs];\n\n override valueIn(obj: [ConfigType, ConfigType]) {\n return obj?.map(i => dayjs(i));\n }\n\n override writeValue(obj: [Dayjs, Dayjs]) {\n super.writeValue(obj);\n this.value = obj;\n this.cdr.markForCheck();\n }\n\n clearValue() {\n this.value = null;\n this.emitValue(null);\n }\n}\n","<aui-date-picker-trigger\n [format]=\"format\"\n [isRange]=\"true\"\n [size]=\"size\"\n [value]=\"value\"\n [auiTooltip]=\"template\"\n [disabled]=\"!!disabled\"\n style=\"display: flex\"\n auiTooltipType=\"info\"\n auiTooltipClass=\"range-picker-wrapper\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipTrigger=\"click\"\n [auiTooltipHideOnClick]=\"true\"\n [auiTooltipDisabled]=\"!!disabled\"\n (auiTooltipHide)=\"openChange.next(false); emitValue(value)\"\n (auiTooltipShow)=\"openChange.next(true)\"\n (clear)=\"clearValue()\"\n #tooltip=\"auiTooltip\"\n></aui-date-picker-trigger>\n\n<ng-template #template>\n <aui-date-range-picker-panel\n style=\"padding-top: 9px; display: inline-block\"\n [showTime]=\"showTime\"\n [showFooter]=\"showFooter\"\n [(ngModel)]=\"value\"\n [disabledDate]=\"disabledDate\"\n [disabledTime]=\"disabledTime\"\n [weekStartDay]=\"weekStartDay\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (click)=\"$event.stopImmediatePropagation()\"\n (clear)=\"clearValue()\"\n (confirm)=\"tooltip.disposeTooltip(); emitValue(value)\"\n ></aui-date-range-picker-panel>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '../button';\nimport { I18nModule } from '../i18n';\nimport { IconModule } from '../icon/icon.module';\nimport { InputModule } from '../input';\nimport { TimePickerModule } from '../time-picker';\nimport { TooltipModule } from '../tooltip';\n\nimport { DatePickerPanelComponent } from './calendar/date-picker-panel/component';\nimport { CalendarFooterComponent } from './calendar/footer/component';\nimport { CalendarHeaderComponent } from './calendar/header/component';\nimport { PickerPanelComponent } from './calendar/panel/picker-panel';\nimport { DateRangePickerPanelComponent } from './calendar/range-picker-panel/component';\nimport { DatePickerComponent } from './date-picker/date-picker.component';\nimport { RangePickerComponent } from './range-picker/range-picker.component';\nimport { DatePickerTriggerComponent } from './trigger/trigger.component';\n\nconst COMPONENTS = [\n CalendarHeaderComponent,\n CalendarFooterComponent,\n DateRangePickerPanelComponent,\n PickerPanelComponent,\n RangePickerComponent,\n DatePickerPanelComponent,\n DatePickerComponent,\n DatePickerTriggerComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n InputModule,\n ButtonModule,\n TooltipModule,\n ReactiveFormsModule,\n FormsModule,\n TimePickerModule,\n IconModule,\n I18nModule,\n ],\n declarations: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class DatePickerModule {}\n","import { Observable } from 'rxjs';\n\nexport enum DialogSize {\n Small = 'small',\n Medium = 'medium',\n Big = 'big',\n Large = 'large',\n Fullscreen = 'fullscreen',\n FitContent = 'fit-content',\n}\n\nexport enum ConfirmType {\n Primary = 'primary',\n Success = 'success',\n Warning = 'warning',\n Danger = 'danger',\n}\n\nexport type PromiseExecutor<T> = (\n resolve: (result?: T | PromiseLike<T>) => void,\n reject: (reason?: unknown) => void,\n) => void;\n\nexport type CustomBeforeAction<T> = () => PromiseLike<T> | Observable<T>;\n\nexport type BeforeAction<T> = PromiseExecutor<T> | CustomBeforeAction<T>;\n","import { ViewContainerRef } from '@angular/core';\n\nimport { DialogSize } from './dialog.types';\n\nexport class BaseDialogConfig {\n noAnimation? = false;\n}\n\nexport class DialogConfig<D = any> extends BaseDialogConfig {\n id?: number;\n viewContainerRef?: ViewContainerRef;\n data?: D;\n size?: DialogSize = DialogSize.Big;\n hasBackdrop? = true;\n fitViewport? = false;\n customClass?: string;\n}\n","import { TemplateRef, Type } from '@angular/core';\n\nimport { BaseDialogConfig } from '../dialog-config';\nimport { BeforeAction, ConfirmType } from '../dialog.types';\n\nexport class ConfirmDialogConfig<\n T = unknown,\n R = unknown,\n> extends BaseDialogConfig {\n title: string;\n content?: string | TemplateRef<any> | Type<any>;\n cancelButton? = true;\n confirmType?: ConfirmType = ConfirmType.Primary;\n confirmText? = 'OK';\n cancelText? = 'Cancel';\n\n beforeConfirm?: BeforeAction<T>;\n beforeCancel?: BeforeAction<R>;\n}\n","export enum AnimationDuration {\n Slow = '0.3s',\n Base = '0.24s',\n Fast = '0.2s',\n}\n","import { AnimationQueryMetadata } from '@angular/animations';\n\nexport const getAnimationQueryMetadatas = (\n classNames: string[],\n query: (className: string) => AnimationQueryMetadata,\n) => classNames?.map(className => query(className));\n","import {\n animate,\n AnimationTriggerMetadata,\n query,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nimport { AnimationDuration } from '../core/animation/animation-consts';\nimport { getAnimationQueryMetadatas } from '../utils/animations';\n\nexport const ZOOM_CLASS_NAME_MAP = {\n enter: 'aui-zoom-enter',\n enterActive: 'aui-zoom-enter-active',\n leave: 'aui-zoom-leave',\n leaveActive: 'aui-zoom-leave-active',\n};\n\nexport const ZOOM_SLOW_CLASS_NAME_MAP = {\n enter: 'aui-zoom-slow-enter',\n enterActive: 'aui-zoom-slow-enter-active',\n leave: 'aui-zoom-slow-leave',\n leaveActive: 'aui-zoom-slow-leave-active',\n};\n\nexport const FADE_CLASS_NAME_MAP = {\n enter: 'aui-fade-enter',\n enterActive: 'aui-fade-enter-active',\n leave: 'aui-fade-leave',\n leaveActive: 'aui-fade-leave-active',\n};\n\nexport const FADE_SLOW_CLASS_NAME_MAP = {\n enter: 'aui-fade-slow-enter',\n enterActive: 'aui-fade-slow-enter-active',\n leave: 'aui-fade-slow-leave',\n leaveActive: 'aui-fade-slow-leave-active',\n};\n\nexport const ANIMATION_DURATION_BASE_CLASSES = [\n '.aui-dialog--small',\n '.aui-dialog--medium',\n '.aui-dialog--fit-content',\n];\n\nexport const ANIMATION_DURATION_SLOW_CLASSES = [\n '.aui-dialog--big',\n '.aui-dialog--large',\n '.aui-dialog--fullscreen',\n '.aui-dialog--fit-viewport',\n];\n\nconst getAnimationQueryMetadata = (duration: string) => (className: string) =>\n query(className, animate(duration, style({})), {\n optional: true,\n });\n\nexport const dialogAnimations: {\n readonly dialogContainer: AnimationTriggerMetadata;\n} = {\n dialogContainer: trigger('dialogContainer', [\n state('void, exit', style({})),\n state('enter', style({})),\n transition('* => enter', [\n ...getAnimationQueryMetadatas(\n ANIMATION_DURATION_BASE_CLASSES,\n getAnimationQueryMetadata(AnimationDuration.Base),\n ),\n ...getAnimationQueryMetadatas(\n ANIMATION_DURATION_SLOW_CLASSES,\n getAnimationQueryMetadata(AnimationDuration.Slow),\n ),\n ]),\n transition('* => void, * => exit', [\n ...getAnimationQueryMetadatas(\n ANIMATION_DURATION_BASE_CLASSES,\n getAnimationQueryMetadata(AnimationDuration.Base),\n ),\n ...getAnimationQueryMetadatas(\n ANIMATION_DURATION_SLOW_CLASSES,\n getAnimationQueryMetadata(AnimationDuration.Slow),\n ),\n ]),\n ]),\n};\n\n// Whitelist dom elements that are allowed to transition with transform\nexport const WHITELIST_TRANSFORM_ANIMATION_ELEMENTS = ['BUTTON'];\n","export function throwDialogContentAlreadyAttachedError() {\n throw new Error(\n 'Attempting to attach dialog content after content is already attached',\n );\n}\n","import { ElementRef } from '@angular/core';\n\nimport { DialogRef } from '../dialog-ref';\n\nexport function getClosestDialog(\n element: ElementRef,\n openDialogs: Array<DialogRef<any>>,\n) {\n let parent = (element.nativeElement as HTMLElement).parentElement;\n\n while (parent?.tagName !== 'AUI-DIALOG') {\n parent = parent.parentElement;\n }\n\n return parent\n ? openDialogs.find(dialog => dialog.id === parent.dataset.id)\n : null;\n}\n\nexport * from './errors';\n","import { AnimationEvent } from '@angular/animations';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport {\n CdkPortalOutlet,\n ComponentPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n ViewChild,\n ViewEncapsulation,\n Renderer2,\n} from '@angular/core';\n\nimport { Bem, buildBem, getElementOffset } from '../utils';\n\nimport {\n dialogAnimations,\n FADE_CLASS_NAME_MAP,\n FADE_SLOW_CLASS_NAME_MAP,\n ZOOM_CLASS_NAME_MAP,\n ZOOM_SLOW_CLASS_NAME_MAP,\n ANIMATION_DURATION_BASE_CLASSES,\n WHITELIST_TRANSFORM_ANIMATION_ELEMENTS,\n} from './dialog-animations';\nimport { DialogConfig } from './dialog-config';\nimport { throwDialogContentAlreadyAttachedError } from './utils';\n\n@Component({\n selector: 'aui-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n preserveWhitespaces: false,\n animations: [dialogAnimations.dialogContainer],\n host: {\n '[@.disabled]': 'config.noAnimation',\n '[@dialogContainer]': 'state',\n '(@dialogContainer.start)': 'onAnimationStart($event)',\n '(@dialogContainer.done)': 'onAnimationDone($event)',\n },\n})\nexport class DialogComponent {\n @ViewChild(CdkPortalOutlet, { static: true })\n portalOutlet: CdkPortalOutlet;\n\n bem: Bem = buildBem('aui-dialog');\n\n config: DialogConfig;\n\n hidden = false;\n // animation state\n state: 'void' | 'enter' | 'exit' = 'enter';\n\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n elementFocusedBeforeModalWasOpened: HTMLElement;\n\n overlayRef: OverlayRef;\n\n get id() {\n return this._id;\n }\n\n set id(value) {\n this.elementRef.nativeElement.dataset.id = value;\n }\n\n private readonly _id: string;\n\n get rootClass() {\n return `${this.bem.block(this.config.size)} ${\n this.config.fitViewport ? this.bem.modifier('fit-viewport') : ''\n } ${this.config.customClass || ''}`;\n }\n\n get customStyle() {\n return this.hidden\n ? {\n opacity: 0,\n }\n : {};\n }\n\n get zoomClassMap() {\n return ANIMATION_DURATION_BASE_CLASSES.includes(this.config.size)\n ? ZOOM_CLASS_NAME_MAP\n : ZOOM_SLOW_CLASS_NAME_MAP;\n }\n\n get fadeClassMap() {\n return ANIMATION_DURATION_BASE_CLASSES.includes(this.config.size)\n ? FADE_CLASS_NAME_MAP\n : FADE_SLOW_CLASS_NAME_MAP;\n }\n\n constructor(\n private readonly elementRef: ElementRef<HTMLElement>,\n private readonly render: Renderer2,\n ) {}\n\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (this.portalOutlet.hasAttached()) {\n throwDialogContentAlreadyAttachedError();\n }\n this.blurActiveElement();\n return this.portalOutlet.attachComponentPortal(portal);\n }\n\n attachTemplatePortal<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T> {\n if (this.portalOutlet.hasAttached()) {\n throwDialogContentAlreadyAttachedError();\n }\n this.blurActiveElement();\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n onAnimationDone(event: AnimationEvent): void {\n this.cleanAnimationClass();\n this.animationStateChanged.emit(event);\n }\n\n onAnimationStart(event: AnimationEvent): void {\n if (event.toState === 'enter') {\n this.setEnterAnimationClass();\n } else if (event.toState === 'exit') {\n this.setExitAnimationClass();\n }\n }\n\n startExitAnimation(): void {\n this.state = 'exit';\n }\n\n private blurActiveElement() {\n const activeElement = document.activeElement as HTMLElement;\n if (document) {\n this.elementFocusedBeforeModalWasOpened =\n WHITELIST_TRANSFORM_ANIMATION_ELEMENTS.includes(activeElement.tagName)\n ? activeElement\n : null;\n activeElement.blur();\n }\n }\n\n private cleanAnimationClass(): void {\n if (this.config.noAnimation) {\n return;\n }\n const backdropElement = this.overlayRef.backdropElement;\n const modalElement = this.elementRef.nativeElement.firstElementChild;\n\n if (backdropElement) {\n backdropElement.classList.remove(this.fadeClassMap.enter);\n backdropElement.classList.remove(this.fadeClassMap.enterActive);\n }\n\n modalElement.classList.remove(this.zoomClassMap.enter);\n modalElement.classList.remove(this.zoomClassMap.enterActive);\n modalElement.classList.remove(this.zoomClassMap.leave);\n modalElement.classList.remove(this.zoomClassMap.leaveActive);\n }\n\n private setEnterAnimationClass(): void {\n if (this.config.noAnimation) {\n return;\n }\n\n this.setModalTransformOrigin();\n\n const modalElement = this.elementRef.nativeElement.firstElementChild;\n const backdropElement = this.overlayRef.backdropElement;\n modalElement.classList.add(this.zoomClassMap.enter);\n modalElement.classList.add(this.zoomClassMap.enterActive);\n\n if (backdropElement) {\n backdropElement.classList.add(this.fadeClassMap.enter);\n backdropElement.classList.add(this.fadeClassMap.enterActive);\n }\n }\n\n private setExitAnimationClass(): void {\n if (this.config.noAnimation) {\n return;\n }\n\n const modalElement = this.elementRef.nativeElement.firstElementChild;\n modalElement.classList.add(this.zoomClassMap.leave);\n modalElement.classList.add(this.zoomClassMap.leaveActive);\n\n this.setMaskExitAnimationClass();\n }\n\n private setMaskExitAnimationClass(): void {\n const backdropElement = this.overlayRef.backdropElement;\n\n if (backdropElement) {\n backdropElement.classList.add(this.fadeClassMap.leave);\n backdropElement.classList.add(this.fadeClassMap.leaveActive);\n }\n }\n\n private setModalTransformOrigin(): void {\n const modalElement = this.elementRef.nativeElement\n .firstElementChild as HTMLDivElement;\n\n if (this.elementFocusedBeforeModalWasOpened) {\n const previouslyDOMRect =\n this.elementFocusedBeforeModalWasOpened.getBoundingClientRect();\n const lastPosition = getElementOffset(\n this.elementFocusedBeforeModalWasOpened,\n );\n const x = lastPosition.left + previouslyDOMRect.width / 2;\n const y = lastPosition.top + previouslyDOMRect.height / 2;\n const transformOrigin = `${x - modalElement.offsetLeft}px ${\n y - modalElement.offsetTop\n }px 0px`;\n this.render.setStyle(modalElement, 'transform-origin', transformOrigin);\n }\n }\n}\n","<div\n [ngClass]=\"rootClass\"\n [ngStyle]=\"customStyle\"\n>\n <ng-template cdkPortalOutlet></ng-template>\n</div>\n","import {\n CdkScrollable,\n ComponentType,\n GlobalPositionStrategy,\n OverlayRef,\n ScrollDispatcher,\n} from '@angular/cdk/overlay';\nimport { NgZone } from '@angular/core';\nimport { filter, Observable, Subject, take } from 'rxjs';\n\nimport { DialogComponent } from './dialog.component';\n\nlet uniqueId = 0;\n\nexport class DialogRef<T = ComponentType<any>, R = any> {\n componentInstance?: T;\n readonly id = `aui-dialog-${uniqueId++}`;\n\n private readonly afterOpen$ = new Subject<void>();\n private readonly afterClosed$ = new Subject<R>();\n\n private readonly scrollable: CdkScrollable;\n\n constructor(\n private readonly overlayRef: OverlayRef,\n public dialogInstance: DialogComponent,\n scrollDispatcher: ScrollDispatcher,\n ngZone: NgZone,\n ) {\n dialogInstance.id = this.id;\n this.scrollable = new CdkScrollable(\n { nativeElement: overlayRef.overlayElement },\n scrollDispatcher,\n ngZone,\n );\n this.scrollable.ngOnInit();\n }\n\n close(result: R = null): void {\n this.scrollable.ngOnDestroy();\n\n this.dialogInstance.animationStateChanged\n .pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'exit'),\n take(1),\n )\n .subscribe(() => {\n this.overlayRef.detachBackdrop();\n this.overlayRef.dispose();\n this.afterClosed$.next(result);\n this.afterClosed$.complete();\n });\n this.dialogInstance.startExitAnimation();\n }\n\n afterOpen(): Observable<void> {\n return this.afterOpen$.asObservable();\n }\n\n afterClosed(): Observable<R> {\n return this.afterClosed$.asObservable();\n }\n\n updatePosition(): this {\n this.getPositionStrategy().top('0').left('0');\n this.overlayRef.updatePosition();\n return this;\n }\n\n updateSize(): this {\n this.getPositionStrategy();\n this.overlayRef.updatePosition();\n return this;\n }\n\n private getPositionStrategy(): GlobalPositionStrategy {\n return this.overlayRef.getConfig()\n .positionStrategy as GlobalPositionStrategy;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\nimport { firstValueFrom, Observable } from 'rxjs';\n\nimport { Bem, buildBem, isString, isTemplateRef } from '../../utils';\nimport { DialogRef } from '../dialog-ref';\nimport {\n BeforeAction,\n ConfirmType,\n CustomBeforeAction,\n PromiseExecutor,\n} from '../dialog.types';\n\nimport { ConfirmDialogConfig } from './confirm-dialog-config';\n\n@Component({\n selector: 'aui-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class ConfirmDialogComponent<T = unknown, R = unknown> {\n bem: Bem = buildBem('aui-confirm-dialog');\n\n config: ConfirmDialogConfig<T, R>;\n\n waitConfirm = false;\n waitCancel = false;\n isTemplateRef = isTemplateRef;\n isString = isString;\n constructor(\n private readonly dialogRef: DialogRef<any>,\n private readonly cdr: ChangeDetectorRef,\n ) {}\n\n setConfig(config: ConfirmDialogConfig<T, R>) {\n this.config = { ...new ConfirmDialogConfig(), ...config };\n }\n\n iconMap(type: ConfirmType) {\n switch (type) {\n case ConfirmType.Success:\n return 'check_circle_s';\n case ConfirmType.Danger:\n return 'exclamation_triangle_s';\n default:\n return 'exclamation_circle_s';\n }\n }\n\n async confirm() {\n if (!this.config.beforeConfirm) {\n this.dialogRef.close({ confirm: true, result: null });\n return;\n }\n this.waitConfirm = true;\n try {\n const result = await this.toPromise(this.config.beforeConfirm);\n this.dialogRef.close({ confirm: true, result });\n } catch {\n } finally {\n this.waitConfirm = false;\n this.cdr.markForCheck();\n }\n }\n\n async cancel() {\n if (!this.config.beforeCancel) {\n this.dialogRef.close({ confirm: false, result: null });\n return;\n }\n this.waitCancel = true;\n try {\n const result = await this.toPromise(this.config.beforeCancel);\n this.dialogRef.close({ confirm: false, result });\n } catch {\n } finally {\n this.waitCancel = false;\n this.cdr.markForCheck();\n }\n }\n\n private toPromise<T>(beforeAction: BeforeAction<T>) {\n if (beforeAction.length) {\n return new Promise(beforeAction as PromiseExecutor<T>);\n }\n\n const result = (beforeAction as CustomBeforeAction<T>)();\n\n if (result instanceof Observable) {\n return firstValueFrom(result);\n }\n\n return result;\n }\n}\n","<div [class]=\"bem.block()\">\n <div [class]=\"bem.element('title')\">\n <span [class]=\"bem.element('icon', config.confirmType + '')\">\n <aui-icon\n [icon]=\"iconMap(config.confirmType)\"\n [background]=\"\n iconMap(config.confirmType).endsWith('_triangle_s')\n ? 'triangle'\n : 'circle'\n \"\n ></aui-icon>\n </span>\n <span>{{ config.title }}</span>\n </div>\n <div [class]=\"bem.element('content')\">\n <ng-container *ngIf=\"config.content\">\n <ng-container\n *ngIf=\"\n isTemplateRef(config.content) || isString(config.content);\n else componentTemplate\n \"\n >\n <ng-container\n *ngIf=\"isTemplateRef(config.content); else stringTemplate\"\n >\n <ng-template *ngTemplateOutlet=\"config.content\"></ng-template>\n </ng-container>\n <ng-template #stringTemplate>\n {{ config.content }}\n </ng-template>\n </ng-container>\n <ng-template #componentTemplate>\n <ng-container *ngComponentOutlet=\"$any(config.content)\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n <div [class]=\"bem.element('button-wrapper')\">\n <div>\n <button\n [aui-button]=\"config.confirmType\"\n [ngClass]=\"bem.element('confirm-button')\"\n [loading]=\"waitConfirm\"\n [disabled]=\"waitConfirm || waitCancel\"\n (click)=\"confirm()\"\n >\n {{ config.confirmText }}\n </button>\n <button\n *ngIf=\"config.cancelButton\"\n aui-button\n [ngClass]=\"bem.element('cancel-button')\"\n [loading]=\"waitCancel\"\n [disabled]=\"waitConfirm || waitCancel\"\n (click)=\"cancel()\"\n >\n {{ config.cancelText }}\n </button>\n </div>\n </div>\n</div>\n","import {\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollDispatcher,\n} from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n ComponentType,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n Injectable,\n InjectionToken,\n Injector,\n NgZone,\n TemplateRef,\n} from '@angular/core';\n\nimport { ConfirmDialogConfig } from './confirm-dialog/confirm-dialog-config';\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { DialogConfig } from './dialog-config';\nimport { DialogRef } from './dialog-ref';\nimport { DialogComponent } from './dialog.component';\nimport { DialogSize } from './dialog.types';\n\nexport const DIALOG_DATA = new InjectionToken<any>('aui-dialog-data');\n\n@Injectable()\nexport class DialogService {\n static readonly DIALOG_OVERLAY_PANE_CLASS = 'aui-dialog-overlay-pane';\n static readonly DIALOG_BACKDROP_CLASS = 'aui-dialog-backdrop';\n static readonly DIALOG_OVERLAY_PANE_FIT_VIEWPORT_CLASS =\n 'aui-dialog-overlay-pane--fit-viewport';\n\n openDialogs: Array<DialogRef<any>> = [];\n\n constructor(\n private readonly overlay: Overlay,\n private readonly injector: Injector,\n private readonly scrollDispatcher: ScrollDispatcher,\n private readonly ngZone: NgZone,\n ) {}\n\n open<T, D = any, R = any>(\n compOrTempRef: ComponentType<T> | TemplateRef<T>,\n config: DialogConfig<D> = null,\n ): DialogRef<T, R> {\n this.hiddenPrevDialog();\n\n config = { ...new DialogConfig(), ...config };\n\n const overlayRef = this.createOverlay(config);\n const dialogIns = this.attachDialog(overlayRef, config);\n const dialogRef = this.attachDialogContent<T, D, R>(\n compOrTempRef,\n dialogIns,\n overlayRef,\n config,\n );\n this.openDialogs.push(dialogRef);\n dialogRef.updatePosition().updateSize();\n dialogRef.afterClosed().subscribe(() => {\n this.removeDialog(dialogRef);\n this.showPrevDialog();\n });\n\n return dialogRef;\n }\n\n confirm<T = unknown, R = unknown>(\n config: ConfirmDialogConfig<T, R>,\n ): Promise<T> {\n const dialogRef = this.open<\n ConfirmDialogComponent<T, R>,\n void,\n { confirm: boolean; result: T | R }\n >(ConfirmDialogComponent, {\n size: DialogSize.FitContent,\n noAnimation: !!config.noAnimation,\n });\n dialogRef.componentInstance.setConfig(config);\n return new Promise((resolve, reject) => {\n dialogRef.afterClosed().subscribe(action => {\n if (action.confirm) {\n resolve(action.result as T);\n } else {\n // eslint-disable-next-line prefer-promise-reject-errors\n reject(action.result as R);\n }\n });\n });\n }\n\n closeAll() {\n this.openDialogs.forEach(dialogRef => {\n dialogRef.close();\n });\n }\n\n private hiddenPrevDialog() {\n if (this.openDialogs.length > 0) {\n this.openDialogs[this.openDialogs.length - 1].dialogInstance.hidden =\n true;\n }\n }\n\n private showPrevDialog() {\n if (this.openDialogs.length > 0) {\n this.openDialogs[this.openDialogs.length - 1].dialogInstance.hidden =\n false;\n }\n }\n\n private createOverlay(config: DialogConfig): OverlayRef {\n const overlayConfig = this.getOverlayConfig(config);\n return this.overlay.create(overlayConfig);\n }\n\n private getOverlayConfig(dialogConfig: DialogConfig): OverlayConfig {\n return {\n positionStrategy: this.overlay.position().global(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n hasBackdrop: dialogConfig.hasBackdrop && !this.openDialogs.length,\n backdropClass: DialogService.DIALOG_BACKDROP_CLASS,\n panelClass:\n dialogConfig.fitViewport || dialogConfig.size === DialogSize.Fullscreen\n ? DialogService.DIALOG_OVERLAY_PANE_FIT_VIEWPORT_CLASS\n : DialogService.DIALOG_OVERLAY_PANE_CLASS,\n width: '100vw',\n height: '100vh',\n };\n }\n\n private attachDialog(\n overlayRef: OverlayRef,\n config: DialogConfig,\n ): DialogComponent {\n const dialogPortal = new ComponentPortal(\n DialogComponent,\n config.viewContainerRef,\n );\n const dialogRef = overlayRef.attach(dialogPortal);\n dialogRef.instance.config = config;\n dialogRef.instance.overlayRef = overlayRef;\n return dialogRef.instance;\n }\n\n private attachDialogContent<T, D, R>(\n compOrTempRef: ComponentType<T> | TemplateRef<T>,\n dialogIns: DialogComponent,\n overlayRef: OverlayRef,\n config: DialogConfig<D>,\n ): DialogRef<T, R> {\n const dialogRef = new DialogRef<T, R>(\n overlayRef,\n dialogIns,\n this.scrollDispatcher,\n this.ngZone,\n );\n\n if (compOrTempRef instanceof TemplateRef) {\n dialogIns.attachTemplatePortal(\n new TemplatePortal(compOrTempRef, null, {\n $implicit: config.data,\n } as any),\n );\n } else {\n const injector = this.createInjector(config, dialogRef, dialogIns);\n const contentRef = dialogIns.attachComponentPortal<T>(\n new ComponentPortal(compOrTempRef, null, injector),\n );\n dialogRef.componentInstance = contentRef.instance;\n }\n return dialogRef;\n }\n\n private createInjector<T>(\n config: DialogConfig,\n dialogRef: DialogRef<T>,\n dialogIns: DialogComponent,\n ): Injector {\n const userInjector = config?.viewContainerRef?.injector;\n return Injector.create({\n providers: [\n {\n provide: DialogRef,\n useValue: dialogRef,\n },\n {\n provide: DIALOG_DATA,\n useValue: config.data || dialogIns,\n },\n ],\n parent: userInjector || this.injector,\n });\n }\n\n private removeDialog(dialogRef: DialogRef<any>) {\n const index = this.openDialogs.indexOf(dialogRef);\n this.openDialogs.splice(index, 1);\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnInit,\n Optional,\n} from '@angular/core';\n\nimport { DialogRef } from '../dialog-ref';\nimport { DialogService } from '../dialog.service';\nimport { getClosestDialog } from '../utils';\n\n@Directive({\n selector: 'button[auiDialogClose]',\n exportAs: 'auiDialogClose',\n})\nexport class DialogCloseDirective implements OnInit {\n @Input('auiDialogClose')\n result: any;\n\n constructor(\n @Optional() public dialogRef: DialogRef<any>,\n private readonly elementRef: ElementRef,\n private readonly dialogService: DialogService,\n ) {}\n\n ngOnInit() {\n if (!this.dialogRef) {\n this.dialogRef = getClosestDialog(\n this.elementRef,\n this.dialogService.openDialogs,\n );\n }\n }\n\n @HostListener('click')\n closeDialog() {\n this.dialogRef.close(this.result);\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { CdkScrollable, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n NgZone,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../../utils';\n\n@Component({\n selector: 'aui-dialog-content',\n templateUrl: './dialog-content.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class DialogContentComponent extends CdkScrollable {\n bem: Bem = buildBem('aui-dialog');\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n elementRef: ElementRef<HTMLElement>,\n scrollDispatcher: ScrollDispatcher,\n ngZone: NgZone,\n dir?: Directionality,\n ) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n}\n","<div [class]=\"bem.element('content')\"><ng-content></ng-content></div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../../utils';\n\n@Component({\n selector: 'aui-dialog-footer',\n templateUrl: './dialog-footer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class DialogFooterComponent {\n bem: Bem = buildBem('aui-dialog');\n}\n","<div [class]=\"bem.element('footer')\"><ng-content></ng-content></div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnInit,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../../utils';\nimport { DialogRef } from '../dialog-ref';\nimport { DialogService } from '../dialog.service';\nimport { getClosestDialog } from '../utils';\n\n@Component({\n selector: 'aui-dialog-header',\n templateUrl: './dialog-header.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class DialogHeaderComponent implements OnInit {\n bem: Bem = buildBem('aui-dialog');\n\n @Input()\n divider = true;\n\n @Input()\n closeable = true;\n\n @Input()\n result: any = false;\n\n constructor(\n @Optional() public dialogRef: DialogRef<any>,\n private readonly elementRef: ElementRef,\n private readonly dialogService: DialogService,\n ) {}\n\n ngOnInit() {\n if (!this.dialogRef) {\n this.dialogRef = getClosestDialog(\n this.elementRef,\n this.dialogService.openDialogs,\n );\n }\n }\n}\n","<div\n [class]=\"bem.element('header')\"\n [class.hasDivider]=\"divider\"\n>\n <div [class]=\"bem.element('header-title')\"><ng-content></ng-content></div>\n <div\n *ngIf=\"closeable\"\n [class]=\"bem.element('header-close')\"\n (click)=\"dialogRef.close(result)\"\n >\n <aui-icon icon=\"close\"></aui-icon>\n </div>\n</div>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonModule } from '../button';\nimport { IconModule } from '../icon';\n\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { DialogCloseDirective } from './dialog-content/dialog-close.directive';\nimport { DialogContentComponent } from './dialog-content/dialog-content.component';\nimport { DialogFooterComponent } from './dialog-content/dialog-footer.component';\nimport { DialogHeaderComponent } from './dialog-content/dialog-header.component';\nimport { DialogComponent } from './dialog.component';\nimport { DialogService } from './dialog.service';\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n IconModule,\n ButtonModule,\n ],\n declarations: [\n DialogComponent,\n DialogHeaderComponent,\n DialogContentComponent,\n DialogFooterComponent,\n DialogCloseDirective,\n ConfirmDialogComponent,\n ],\n exports: [\n DialogComponent,\n DialogHeaderComponent,\n DialogContentComponent,\n DialogFooterComponent,\n DialogCloseDirective,\n ],\n entryComponents: [DialogComponent, ConfirmDialogComponent],\n providers: [DialogService],\n})\nexport class DialogModule {}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport enum DrawerSize {\n Small = 'small',\n Medium = 'medium',\n Big = 'big',\n}\n\nexport abstract class DrawerRef<T = ComponentType<any>, R = any> {\n abstract afterClosed: Observable<R>;\n abstract afterOpen: Observable<void>;\n abstract dispose(result?: R): void;\n abstract open(): void;\n abstract componentInstance: T | null;\n\n abstract title?: string | TemplateRef<unknown>;\n abstract footer?: string | TemplateRef<unknown>;\n abstract size?: DrawerSize;\n abstract offsetY?: string;\n abstract visible?: boolean;\n abstract hideOnClickOutside?: boolean;\n abstract showClose?: boolean;\n abstract drawerClass?: string;\n abstract mask?: boolean;\n abstract maskClosable?: boolean;\n abstract width?: number;\n abstract divider?: boolean;\n}\n","/**\n * @packageDocumentation\n * @module page-guard\n */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiDrawerHeader]',\n})\nexport class DrawerHeaderDirective {}\n\n@Directive({\n selector: '[auiDrawerContent]',\n})\nexport class DrawerContentDirective {}\n\n@Directive({\n selector: '[auiDrawerFooter]',\n})\nexport class DrawerFooterDirective {}\n","import {\n ComponentType,\n Overlay,\n OverlayConfig,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {\n CdkPortalOutlet,\n ComponentPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n InjectionToken,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nimport { isTemplateRef } from '../../utils';\n\nimport { DrawerRef, DrawerSize } from './drawer-ref';\nimport {\n DrawerContentDirective,\n DrawerFooterDirective,\n DrawerHeaderDirective,\n} from './helper-directives';\n\nexport const DATA = new InjectionToken('drawer-data');\n\nconst DRAWER_OVERLAY_CLASS = 'aui-drawer-overlay';\n\nconst SIZE_MAPPER = {\n [DrawerSize.Small]: 400,\n [DrawerSize.Medium]: 600,\n [DrawerSize.Big]: 800,\n};\n\n@Component({\n selector: 'aui-drawer',\n templateUrl: './drawer.component.html',\n styleUrls: ['./drawer.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrawerComponent<\n T = ComponentType<unknown>,\n R = unknown,\n D = unknown,\n >\n extends DrawerRef<T, R>\n implements OnInit, AfterViewInit, OnChanges, OnDestroy\n{\n @Input()\n title: string | TemplateRef<unknown>;\n\n @Input()\n footer: string | TemplateRef<unknown>;\n\n @Input()\n size: DrawerSize = DrawerSize.Medium;\n\n @Input()\n offsetY = '0px';\n\n @Input() visible: boolean;\n\n @Input()\n content: TemplateRef<T> | ComponentType<T>;\n\n @Input()\n hideOnClickOutside = false;\n\n @Input()\n showClose = true;\n\n @Input()\n drawerClass: string;\n\n @Input()\n mask: boolean;\n\n @Input()\n maskClosable: boolean;\n\n @Input()\n divider = true;\n\n private _value = SIZE_MAPPER[DrawerSize.Medium];\n @Input()\n set width(value: number) {\n this._value = value;\n }\n\n get width() {\n return this._value;\n }\n\n get drawerClasses(): Record<string, boolean> {\n return {\n 'aui-drawer': true,\n hasDivider: this.divider,\n ...(!this.drawerClass ? null : { [this.drawerClass]: true }),\n };\n }\n\n private readonly afterClosed$ = new Subject<R>();\n\n get afterClosed(): Observable<R> {\n return this.afterClosed$.asObservable();\n }\n\n private readonly afterOpen$ = new Subject<void>();\n\n get afterOpen(): Observable<void> {\n return this.afterOpen$.asObservable();\n }\n\n @Output()\n drawerViewInit = new EventEmitter<void>();\n\n @Output() readonly close = new EventEmitter<MouseEvent>();\n\n @ViewChild('drawerTemplate', { static: true })\n drawerTemplate: TemplateRef<void>;\n\n @ViewChild(CdkPortalOutlet, { static: false })\n bodyPortalOutlet: CdkPortalOutlet;\n\n @ContentChild(DrawerHeaderDirective, { read: TemplateRef })\n titleTemplate: TemplateRef<T>;\n\n @ContentChild(DrawerContentDirective, { read: TemplateRef })\n contentTemplate: TemplateRef<T> | ComponentType<T>;\n\n @ContentChild(DrawerFooterDirective, { read: TemplateRef })\n footerTemplate: TemplateRef<T>;\n\n onDestroy$ = new Subject<void>();\n\n isTemplateRef = isTemplateRef;\n\n componentInstance: T | null = null;\n\n contentParams: D;\n overlayRef: OverlayRef;\n portal: TemplatePortal;\n templateContext = {};\n get transform() {\n return `translateX(${this.visible ? 0 : '100%'})`;\n }\n\n constructor(\n private readonly viewContainerRef: ViewContainerRef,\n private readonly overlay: Overlay,\n private readonly injector: Injector,\n private readonly cdr: ChangeDetectorRef,\n ) {\n super();\n }\n\n ngOnInit() {\n this.attachOverlay();\n this.updateBodyOverflow();\n this.templateContext = { $implicit: this.contentParams };\n this.cdr.detectChanges();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { visible } = changes;\n if (visible) {\n const value = visible.currentValue;\n if (value) {\n this.open();\n } else if (!visible.firstChange) {\n // 不希望默认关闭时,drawer 渲染后就触发 close 事件\n this.dispose();\n }\n }\n }\n\n ngAfterViewInit() {\n this.attachBodyContent();\n setTimeout(() => {\n this.drawerViewInit.emit();\n }, 0);\n }\n\n private attachOverlay() {\n if (!this.overlayRef) {\n this.portal = new TemplatePortal(\n this.drawerTemplate,\n this.viewContainerRef,\n );\n this.overlayRef = this.overlay.create(this.getOverlayConfig());\n }\n if (this.overlayRef) {\n this.overlayRef.attach(this.portal);\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.onDestroy$))\n .subscribe(event => {\n // 判断鼠标点击事件的 target 是否为 overlay-container 的子节点,如果是,则不关闭 drawer。\n // 为了避免点击 drawer 里的 tooltip 后 drawer 被关闭。\n if (\n this.visible &&\n this.hideOnClickOutside &&\n event.target instanceof Node &&\n !this.overlayRef.hostElement?.parentNode?.contains(event.target)\n ) {\n event.stopPropagation();\n event.preventDefault();\n this.dispose();\n }\n });\n }\n }\n\n private getOverlayConfig(): OverlayConfig {\n return new OverlayConfig({\n panelClass: DRAWER_OVERLAY_CLASS,\n positionStrategy: this.overlay.position().global(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n }\n\n private attachBodyContent(): void {\n this.bodyPortalOutlet?.dispose();\n const content = this.content || this.contentTemplate;\n if (content instanceof Type) {\n const componentPortal = new ComponentPortal<T>(\n content,\n null,\n Injector.create({\n providers: [\n {\n provide: DATA,\n useValue: this.contentParams,\n },\n ],\n parent: this.injector,\n }),\n );\n const componentRef =\n this.bodyPortalOutlet?.attachComponentPortal(componentPortal);\n this.componentInstance = componentRef.instance;\n Object.assign(componentRef.instance, this.contentParams);\n componentRef.changeDetectorRef.detectChanges();\n }\n }\n\n private updateBodyOverflow(): void {\n if (this.overlayRef) {\n if (this.visible) {\n this.overlayRef.getConfig().scrollStrategy.enable();\n } else {\n this.overlayRef.getConfig().scrollStrategy.disable();\n }\n }\n }\n\n open() {\n this.visible = true;\n this.afterOpen$.next();\n this.afterOpen$.complete();\n this.updateBodyOverflow();\n this.cdr.markForCheck();\n }\n\n dispose(result: R = null) {\n this.visible = false;\n this.close.emit();\n this.afterClosed$.next(result);\n this.afterClosed$.complete();\n this.updateBodyOverflow();\n this.cdr.markForCheck();\n }\n\n private disposeOverlay(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\n }\n\n maskClick() {\n if (this.maskClosable && this.mask) {\n this.dispose();\n }\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.disposeOverlay();\n }\n}\n","<ng-template #drawerTemplate>\n <div\n *ngIf=\"mask\"\n class=\"aui-drawer-mask\"\n [class.isOpen]=\"visible\"\n (click)=\"maskClick()\"\n ></div>\n <div\n [style.marginTop]=\"offsetY\"\n [ngClass]=\"drawerClasses\"\n [class.isOpen]=\"visible\"\n [ngStyle]=\"{\n transform: transform,\n width: width + 'px'\n }\"\n >\n <div class=\"aui-drawer__content\">\n <div class=\"aui-drawer__body-wrapper\">\n <div class=\"aui-drawer__header\">\n <div class=\"aui-drawer__title\">\n <ng-container\n *ngIf=\"!isTemplateRef(title || titleTemplate); else elseTemplate\"\n >\n {{ title }}\n </ng-container>\n <ng-template #elseTemplate>\n <ng-container\n *ngIf=\"title || titleTemplate\"\n [ngTemplateOutlet]=\"$any(title || titleTemplate)\"\n [ngTemplateOutletContext]=\"templateContext\"\n ></ng-container>\n </ng-template>\n </div>\n <div\n class=\"aui-drawer__close\"\n *ngIf=\"showClose\"\n (click)=\"dispose()\"\n >\n <aui-icon icon=\"close\"></aui-icon>\n </div>\n </div>\n\n <div\n class=\"aui-drawer__body\"\n cdkScrollable\n >\n <ng-template cdkPortalOutlet></ng-template>\n <ng-container *ngIf=\"isTemplateRef(content || contentTemplate)\">\n <ng-container\n *ngTemplateOutlet=\"\n $any(content || contentTemplate);\n context: templateContext\n \"\n >\n </ng-container>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"footer || footerTemplate\"\n class=\"aui-drawer__footer\"\n >\n <ng-container\n *ngIf=\"!isTemplateRef(footer || footerTemplate); else elseTemplate\"\n >\n {{ footer }}\n </ng-container>\n <ng-template #elseTemplate>\n <ng-container\n *ngIf=\"footer || footerTemplate\"\n [ngTemplateOutlet]=\"$any(footer || footerTemplate)\"\n [ngTemplateOutletContext]=\"templateContext\"\n ></ng-container>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, TemplateRef } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { DrawerComponent } from './component/drawer.component';\n\nimport { DrawerSize } from '.';\n\nexport interface DrawerOptions<T = any, D = any> {\n title?: string | TemplateRef<unknown>;\n width?: number;\n content?: ComponentType<T> | TemplateRef<T>;\n contentParams?: D;\n footer?: string | TemplateRef<unknown>;\n offsetY?: string;\n divider?: boolean;\n drawerClass?: string;\n size?: DrawerSize;\n visible?: boolean;\n hideOnClickOutside?: boolean;\n showClose?: boolean;\n mask?: boolean;\n maskClosable?: boolean;\n}\n@Injectable()\nexport class DrawerService {\n private drawerRef: ComponentRef<DrawerComponent>;\n private overlayRef: OverlayRef;\n private readonly unsubscribe$ = new Subject<void>();\n\n constructor(private readonly overlay: Overlay) {}\n\n open<T = unknown>(options: DrawerOptions<T>) {\n this.drawerRef?.instance?.dispose();\n this.createDrawer();\n this.updateOptions(options);\n return this.drawerRef?.instance;\n }\n\n updateOptions(options: DrawerOptions): void {\n Object.assign(this.drawerRef.instance, options);\n }\n\n private createDrawer(): void {\n this.overlayRef = this.overlay.create();\n this.drawerRef = this.overlayRef.attach(\n new ComponentPortal(DrawerComponent),\n );\n this.drawerRef.instance.drawerViewInit\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n this.drawerRef.instance.open();\n });\n\n this.drawerRef.instance.afterClosed\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n this.overlayRef.dispose();\n this.drawerRef = null;\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n });\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { DrawerComponent } from './component/drawer.component';\nimport {\n DrawerContentDirective,\n DrawerFooterDirective,\n DrawerHeaderDirective,\n} from './component/helper-directives';\nimport { DrawerService } from './drawer.service';\n\nconst COMMON = [\n DrawerComponent,\n DrawerHeaderDirective,\n DrawerContentDirective,\n DrawerFooterDirective,\n];\n\n@NgModule({\n imports: [CommonModule, IconModule, IconModule, OverlayModule, PortalModule],\n declarations: COMMON,\n exports: COMMON,\n entryComponents: [DrawerComponent],\n providers: [DrawerService],\n})\nexport class DrawerModule {}\n","import { Directive, Input } from '@angular/core';\n\nimport { TooltipActiveDirective } from '../tooltip';\n\n@Directive({\n selector: '[auiDropdownActive]',\n})\nexport class DropdownActiveDirective extends TooltipActiveDirective {\n @Input('auiDropdownActive')\n override customClass: string | string[] = '';\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnInit,\n Output,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { debounceTime } from 'rxjs';\n\nimport { BaseTooltip, TooltipTrigger, TooltipType } from '../tooltip';\n\nimport { DropdownActiveDirective } from './dropdown-active.directive';\nimport { MenuComponent } from './menu/menu.component';\n\n@Directive({\n selector: '[auiDropdown]',\n exportAs: 'auiDropdown',\n inputs: [\n 'class:auiDropdownClass',\n 'disabled:auiDropdownDisabled',\n 'position:auiDropdownPosition',\n 'trigger:auiDropdownTrigger',\n ],\n providers: [\n {\n provide: BaseTooltip,\n useExisting: DropdownDirective,\n },\n ],\n})\nexport class DropdownDirective extends BaseTooltip implements OnInit {\n @Input('auiDropdown')\n get menu() {\n return this._menu;\n }\n\n set menu(value) {\n if (value === this._menu) {\n return;\n }\n this._menu = value;\n this.content = value.template;\n }\n\n @Input('auiDropdownContext')\n lazyContentContext: any;\n\n @Input('auiDropdownHideOnClick')\n override hideOnClick = true;\n\n @Output('auiDropdownShow')\n override show = new EventEmitter<void>();\n\n @Output('auiDropdownHide')\n override hide = new EventEmitter<void>();\n\n private _menu: MenuComponent;\n\n constructor(\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n elRef: ElementRef,\n renderer: Renderer2,\n cdr: ChangeDetectorRef,\n ngZone: NgZone,\n ) {\n super(overlay, viewContainerRef, elRef, renderer, cdr, ngZone);\n new DropdownActiveDirective(this, elRef, renderer).customClass = 'isActive';\n this.type = TooltipType.Plain;\n this.position = 'bottom end';\n this.trigger = TooltipTrigger.Click;\n }\n\n ngOnInit() {\n this.show.pipe(debounceTime(0)).subscribe(() => {\n if (this.menu.lazyContent) {\n this.menu.lazyContent.attach(this.lazyContentContext);\n this.updatePosition();\n }\n });\n\n this.hide.subscribe(() => {\n if (this.menu.lazyContent) {\n this.menu.lazyContent.detach();\n }\n });\n }\n}\n","import { ValueOf } from '../types';\n\nexport const MenuItemType = {\n Default: 'default',\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Danger: 'danger',\n} as const;\n\nexport type MenuItemType = ValueOf<typeof MenuItemType>;\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../../utils';\nimport { MenuItemType } from '../dropdown.types';\n\n@Component({\n selector: 'aui-menu-item',\n templateUrl: './menu-item.component.html',\n styleUrls: ['./menu-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class MenuItemComponent {\n bem: Bem = buildBem('aui-menu-item');\n\n protected _disabled = false;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = value;\n }\n\n @Input()\n divide = false;\n\n @Input()\n type: MenuItemType = MenuItemType.Default;\n\n @Input()\n actived = false;\n\n get className() {\n return `${this.bem.block(this.type)} ${this.divide ? 'hasDivider' : ''} ${\n this.actived ? 'isActive' : ''\n }`;\n }\n}\n","<button\n [class]=\"className\"\n [disabled]=\"disabled\"\n>\n <ng-content></ng-content>\n</button>\n","import { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n Directive,\n Inject,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\n@Directive({\n selector: '*[auiMenuContent]',\n exportAs: 'auiMenuContent',\n})\nexport class MenuContentDirective implements OnDestroy {\n private portal: TemplatePortal;\n private outlet: DomPortalOutlet;\n\n private readonly doc: Document;\n\n constructor(\n private readonly templateRef: TemplateRef<unknown>,\n private readonly appRef: ApplicationRef,\n private readonly viewContainerRef: ViewContainerRef,\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n private readonly injector: Injector,\n @Inject(DOCUMENT) document: any,\n ) {\n this.doc = document;\n }\n\n attach(context?: any) {\n if (this.portal?.isAttached) {\n return;\n }\n if (!this.portal) {\n this.portal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n }\n if (!this.outlet) {\n this.outlet = new DomPortalOutlet(\n this.doc.createElement('div'),\n this.componentFactoryResolver,\n this.appRef,\n this.injector,\n );\n }\n const el = this.templateRef.elementRef.nativeElement as HTMLElement;\n el.parentNode.insertBefore(this.outlet.outletElement, el);\n this.portal.attach(this.outlet, context);\n }\n\n detach() {\n if (this.portal?.isAttached) {\n this.portal.detach();\n }\n }\n\n ngOnDestroy() {\n if (this.outlet) {\n this.outlet.dispose();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\n\nimport { MenuContentDirective } from './menu-content.directive';\n\n@Component({\n selector: 'aui-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class MenuComponent {\n bem: Bem = buildBem('aui-menu');\n\n @Input()\n size: ComponentSize = ComponentSize.Small;\n\n @ViewChild(TemplateRef, { static: true })\n template: TemplateRef<any>;\n\n @ContentChild(MenuContentDirective, { static: true })\n lazyContent: MenuContentDirective;\n\n @ContentChildren(MenuItemComponent, { descendants: true })\n menuItems: QueryList<MenuItemComponent>;\n\n get hasEnabledItem() {\n return this.menuItems?.length > 0;\n }\n}\n","<ng-template>\n <div [class]=\"bem.block(size)\"><ng-content></ng-content></div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ButtonType } from '../../button';\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem, coerceAttrBoolean } from '../../utils';\nimport { MenuComponent } from '../menu/menu.component';\n\n@Component({\n selector: 'aui-dropdown-button',\n templateUrl: './dropdown-button.component.html',\n styleUrls: ['./dropdown-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class DropdownButtonComponent {\n bem: Bem = buildBem('aui-dropdown-button');\n\n @Input()\n type: ButtonType = ButtonType.Default;\n\n @Input()\n plain = true;\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n loading = false;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n this._disabled = coerceAttrBoolean(val);\n }\n\n @Output()\n buttonClick = new EventEmitter<Event>();\n\n @ContentChild(MenuComponent, { static: true })\n menu: MenuComponent;\n\n get disableTrigger() {\n return !this.menu?.hasEnabledItem;\n }\n\n private _disabled = false;\n}\n","<div [class]=\"bem.block(size)\">\n <button\n type=\"button\"\n class=\"aui-dropdown-button__content\"\n [aui-button]=\"type\"\n [plain]=\"plain\"\n [size]=\"size\"\n [loading]=\"loading\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick.emit($event)\"\n >\n <ng-content></ng-content>\n </button>\n <button\n type=\"button\"\n class=\"aui-dropdown-button__trigger\"\n [aui-button]=\"type\"\n [plain]=\"plain\"\n [size]=\"size\"\n [auiDropdown]=\"menu\"\n [disabled]=\"disableTrigger\"\n >\n <aui-icon icon=\"angle_down\"></aui-icon>\n </button>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiMenuGroupTitle]',\n exportAs: 'auiMenuGroupTitle',\n host: {\n '[class.aui-menu-group__title]': 'true',\n },\n})\nexport class MenuGroupTitleDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-menu-group',\n templateUrl: './menu-group.component.html',\n styleUrls: ['./menu-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class MenuGroupComponent {}\n","<div class=\"aui-menu-group\">\n <ng-content select=\"[auiMenuGroupTitle]\"></ng-content>\n <div class=\"aui-menu-group__content\"><ng-content></ng-content></div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { TooltipTrigger } from '../../tooltip';\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\n\n@Component({\n selector: 'aui-submenu',\n templateUrl: './submenu.component.html',\n styleUrls: ['./submenu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class SubmenuComponent extends MenuItemComponent {\n override bem: Bem = buildBem('aui-submenu');\n\n @Input()\n trigger = TooltipTrigger.Hover;\n\n @Input()\n size: ComponentSize = ComponentSize.Small;\n\n @Input()\n override get disabled() {\n return this._disabled || !this.hasEnabledItem;\n }\n\n @ContentChildren(MenuItemComponent, { descendants: true })\n menuItems: QueryList<MenuItemComponent>;\n\n get hasEnabledItem() {\n return this.menuItems?.length > 0;\n }\n}\n","<button\n [class]=\"className\"\n [auiTooltip]=\"menu.template\"\n [auiTooltipDisabled]=\"disabled\"\n [auiTooltipTrigger]=\"trigger\"\n [auiTooltipHideOnClick]=\"true\"\n auiTooltipPosition=\"end top\"\n auiTooltipType=\"plain\"\n auiTooltipClass=\"aui-sub-dropdown\"\n auiTooltipActive=\"isActive\"\n (click)=\"$event.stopPropagation()\"\n>\n <span class=\"aui-submenu__title\"><ng-content></ng-content></span>\n <aui-icon\n class=\"aui-submenu__arrow\"\n icon=\"angle_right\"\n ></aui-icon>\n</button>\n\n<aui-menu\n #menu\n [size]=\"size\"\n>\n <ng-content select=\"aui-menu-item\"></ng-content>\n</aui-menu>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonModule } from '../button';\nimport { IconModule } from '../icon';\nimport { TooltipModule } from '../tooltip';\n\nimport { DropdownActiveDirective } from './dropdown-active.directive';\nimport { DropdownButtonComponent } from './dropdown-button/dropdown-button.component';\nimport { DropdownDirective } from './dropdown.directive';\nimport { MenuGroupTitleDirective } from './helper-directives';\nimport { MenuGroupComponent } from './menu-group/menu-group.component';\nimport { MenuItemComponent } from './menu-item/menu-item.component';\nimport { MenuContentDirective } from './menu/menu-content.directive';\nimport { MenuComponent } from './menu/menu.component';\nimport { SubmenuComponent } from './submenu/submenu.component';\n\n@NgModule({\n imports: [CommonModule, TooltipModule, IconModule, ButtonModule],\n declarations: [\n DropdownDirective,\n DropdownActiveDirective,\n DropdownButtonComponent,\n MenuComponent,\n MenuGroupComponent,\n MenuGroupTitleDirective,\n MenuItemComponent,\n SubmenuComponent,\n MenuContentDirective,\n ],\n exports: [\n DropdownDirective,\n DropdownActiveDirective,\n DropdownButtonComponent,\n MenuComponent,\n MenuGroupComponent,\n MenuGroupTitleDirective,\n MenuItemComponent,\n SubmenuComponent,\n MenuContentDirective,\n ],\n})\nexport class DropdownModule {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiInlineAlertTitle]',\n exportAs: 'auiInlineAlertTitle',\n})\nexport class InlineAlertTitleDirective {}\n","import { ValueOf } from '../types';\n\nexport const InlineAlertType = {\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Danger: 'danger',\n Error: 'error',\n Info: 'info',\n} as const;\n\nexport type InlineAlertType = ValueOf<typeof InlineAlertType>;\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { InlineAlertTitleDirective } from './helper-directives';\nimport { InlineAlertType } from './inline-alert.types';\n\n@Component({\n selector: 'aui-inline-alert',\n templateUrl: './inline-alert.component.html',\n styleUrls: ['./inline-alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class InlineAlertComponent {\n bem: Bem = buildBem('aui-inline-alert');\n\n @Input()\n title: string;\n\n @Input()\n content: string;\n\n @Input()\n closable = false;\n\n @Input()\n type: InlineAlertType = InlineAlertType.Info;\n\n @Output()\n close = new EventEmitter<void>();\n\n @ContentChild(InlineAlertTitleDirective)\n titleRef: InlineAlertTitleDirective;\n\n visible = true;\n\n iconMap(type: InlineAlertType) {\n switch (type) {\n case InlineAlertType.Success:\n return 'check_circle_s';\n case InlineAlertType.Warning:\n return 'exclamation_circle_s';\n case InlineAlertType.Danger:\n case InlineAlertType.Error:\n return 'exclamation_triangle_s';\n default:\n return 'info_circle_s';\n }\n }\n\n closeSelf() {\n this.visible = false;\n this.close.emit();\n }\n}\n","<div\n *ngIf=\"visible\"\n [class]=\"bem.block(type)\"\n [class.hasTitle]=\"title || titleRef\"\n>\n <aui-icon\n class=\"aui-inline-alert__icon\"\n [icon]=\"iconMap(type)\"\n [background]=\"iconMap(type).endsWith('_triangle_s') ? 'triangle' : 'circle'\"\n ></aui-icon>\n <div class=\"aui-inline-alert__body\">\n <div\n class=\"aui-inline-alert__title\"\n *ngIf=\"title || titleRef\"\n >\n <ng-container *ngIf=\"title\">{{ title }}</ng-container>\n <ng-content select=\"[auiInlineAlertTitle]\"></ng-content>\n </div>\n <div class=\"aui-inline-alert__content\">\n <ng-container *ngIf=\"content\">{{ content }}</ng-container>\n <ng-content></ng-content>\n </div>\n </div>\n <aui-icon\n *ngIf=\"closable\"\n class=\"aui-inline-alert__close\"\n icon=\"close\"\n (click)=\"closeSelf()\"\n ></aui-icon>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { InlineAlertTitleDirective } from './helper-directives';\nimport { InlineAlertComponent } from './inline-alert.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [InlineAlertComponent, InlineAlertTitleDirective],\n exports: [InlineAlertComponent, InlineAlertTitleDirective],\n})\nexport class InlineAlertModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport enum MessageType {\n Error = 'error',\n Success = 'success',\n Warning = 'warning',\n Info = 'info',\n}\n\n/**\n * messageOptions: contains Basic configuration\n * Just for some containers like Message-Container\n * Detailed document: http://confluence.alaudatech.com/pages/viewpage.action?pageId=23383163\n */\n\nexport class MessageConfig {\n /**\n * the message type\n */\n type?: MessageType;\n\n /**\n * The id of this message, The same ID can only have one at the same time\n */\n id?: string | number;\n\n /**\n * automatically shut down after a few seconds, if <= 0 ,non automatic closure\n */\n duration?: number;\n\n /**\n * message content\n */\n content?: string;\n}\n\nexport interface MessageGlobalConfig {\n /**\n * max instance in one time\n */\n maxStack: number;\n duration: number | { [key in MessageType]: number };\n}\n\nexport const MESSAGE_CONFIG = new InjectionToken<MessageGlobalConfig>(\n 'MESSAGE_CONFIG',\n);\n\nexport const MESSAGE_DEFAULT_CONFIG = {\n duration: 3000,\n maxStack: 8,\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-message-wrapper',\n styleUrls: ['./message-wrapper.component.scss'],\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class MessageWrapperComponent {\n constructor(public elementRef: ElementRef) {}\n}\n","import {\n AnimationTriggerMetadata,\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const MessageAnimations: {\n readonly inOut: AnimationTriggerMetadata;\n} = {\n inOut: trigger('inOut', [\n state(\n 'flyRight, flyLeft',\n style({ opacity: 1, transform: 'translateX(0)' }),\n ),\n state('slideDown', style({ opacity: 1, transform: 'translateY(0)' })),\n transition('* => slideDown', [\n style({ opacity: 0, transform: 'translateY(-50%)' }),\n animate('100ms ease-in-out'),\n ]),\n state('slideUp', style({ opacity: 0, 'margin-top': '-50%' })),\n transition('* => slideUp', [\n style({ opacity: 1, 'margin-top': '0' }),\n animate('100ms 200ms ease-in-out'),\n ]),\n\n state('flyLeft', style({ opacity: 1, transform: 'translateX(0)' })),\n transition('* => flyLeft', [\n style({ opacity: 0, transform: 'translateX(5%)' }),\n animate('100ms ease-in-out'),\n ]),\n state('flyUp', style({ opacity: 0, 'margin-top': '-30%' })),\n transition('* => flyUp', [\n style({ opacity: 1, 'margin-top': '0' }),\n animate('100ms 150ms ease-in-out'),\n ]),\n state('void', style({ opacity: 0 })),\n state('true', style({ opacity: 1 })),\n state('false', style({ opacity: 0 })),\n transition('* => true', animate('150ms cubic-bezier(0.0, 0.0, 0.2, 1)')),\n transition('* => void', animate('150ms cubic-bezier(0.4, 0.0, 1, 1)')),\n ]),\n};\n","import { AnimationEvent } from '@angular/animations';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { MessageAnimations } from './message-animations';\nimport { MessageConfig, MessageType } from './message.config';\n\nlet uniqueId = 0;\n\nconst typeIcon: { [key: string]: string } = {\n [MessageType.Error]: 'exclamation_triangle_s',\n [MessageType.Success]: 'check_circle_s',\n [MessageType.Warning]: 'exclamation_circle_s',\n [MessageType.Info]: 'info_circle_s',\n};\n\n@Component({\n selector: 'aui-message',\n templateUrl: './message.component.html',\n animations: [MessageAnimations.inOut],\n styleUrls: ['./message.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class MessageComponent implements AfterViewInit {\n protected readonly animateStartState: string = 'slideDown';\n protected readonly animateStartEnd: string = 'slideUp';\n\n bem: Bem = buildBem('aui-message');\n animateState = this.animateStartState;\n uniqueId = `aui-message-${uniqueId++}`;\n beforeClosed: Subject<void> = new Subject();\n afterClosed: Subject<void> = new Subject();\n\n id: string | number;\n type: MessageType;\n content: string;\n duration: number;\n\n get icon(): string {\n return typeIcon[this.type];\n }\n\n protected timerId: number;\n\n constructor(\n protected viewContainerRef: ViewContainerRef,\n protected cdr: ChangeDetectorRef,\n ) {}\n\n ngAfterViewInit(): void {\n if (this.duration > 0) {\n this.timerId = window.setTimeout(() => {\n this.remove();\n }, this.duration);\n }\n }\n\n setConfig(config: MessageConfig) {\n this.id = config.id;\n this.type = config.type;\n this.content = config.content;\n this.duration = config.duration;\n }\n\n remove() {\n clearTimeout(this.timerId);\n this.beforeClosed.next();\n this.beforeClosed.complete();\n this.animateState = this.animateStartEnd;\n this.cdr.markForCheck();\n }\n\n onAnimationEnd(event: AnimationEvent) {\n try {\n if (\n this.viewContainerRef.element &&\n event.toState === this.animateStartEnd\n ) {\n (this.viewContainerRef.element.nativeElement as HTMLElement).remove();\n this.afterClosed.next();\n this.afterClosed.complete();\n }\n } catch {\n throw new Error('No outer layer can be found!');\n }\n }\n}\n","<div\n [@inOut]=\"animateState\"\n (@inOut.done)=\"onAnimationEnd($event)\"\n [class]=\"bem.block(type) + ' ' + uniqueId\"\n>\n <div [class]=\"bem.element('icon', type)\">\n <aui-icon\n [icon]=\"icon\"\n [background]=\"icon.endsWith('_triangle_s') ? 'triangle' : 'circle'\"\n ></aui-icon>\n </div>\n <div [class]=\"bem.element('content')\">{{ content }}</div>\n</div>\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n ComponentType,\n DomPortalOutlet,\n} from '@angular/cdk/portal';\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n Injector,\n} from '@angular/core';\n\nimport { MessageWrapperComponent } from './message-wrapper.component';\nimport { MessageComponent } from './message.component';\nimport {\n MessageConfig,\n MessageGlobalConfig,\n MessageType,\n} from './message.config';\n\nexport abstract class BaseMessage<\n Wrapper extends MessageWrapperComponent,\n Component extends MessageComponent,\n Config extends MessageConfig,\n> {\n wrapperInstance: { elementRef: ElementRef<HTMLElement> };\n componentRefs: Array<ComponentRef<Component>> = [];\n\n constructor(\n protected overlay: Overlay,\n protected injector: Injector,\n protected applicationRef: ApplicationRef,\n protected cfr: ComponentFactoryResolver,\n protected overlayPaneClassName: string,\n protected wrapperClass: ComponentType<Wrapper>,\n protected componentClass: ComponentType<Component>,\n protected globalConfig: MessageGlobalConfig,\n ) {\n this.initWrapperContainer();\n }\n\n create(config: Config): ComponentRef<Component>;\n create(config: MessageType, content: string): ComponentRef<Component>;\n create(config: Config | MessageType, content?: string) {\n const type = content ? (config as MessageType) : (config as Config).type;\n const mergedConfig = {\n duration:\n typeof this.globalConfig.duration === 'number'\n ? this.globalConfig.duration\n : this.globalConfig.duration[type],\n ...(content\n ? { type: config as MessageType, content }\n : (config as Config)),\n } as Config;\n\n this.removeNeedless(mergedConfig.id);\n\n const componentRef = this.initComponentRef(mergedConfig);\n componentRef.instance.afterClosed.subscribe(() => {\n componentRef.destroy();\n this.remove(componentRef.instance.uniqueId);\n });\n this.componentRefs.push(componentRef);\n return componentRef;\n }\n\n createType(type: MessageType, option: Config | string) {\n return typeof option === 'string'\n ? this.create(type, option)\n : this.create({ ...option, type } as Config);\n }\n\n success(option: Config | string): ComponentRef<Component> {\n return this.createType(MessageType.Success, option);\n }\n\n warning(option: Config | string): ComponentRef<Component> {\n return this.createType(MessageType.Warning, option);\n }\n\n error(option: Config | string): ComponentRef<Component> {\n return this.createType(MessageType.Error, option);\n }\n\n info(option: Config | string): ComponentRef<Component> {\n return this.createType(MessageType.Info, option);\n }\n\n remove(id: string | number) {\n const index = this.componentRefs.findIndex(\n ref => ref.instance.uniqueId === id || ref.instance.id === id,\n );\n if (index >= 0) {\n this.componentRefs[index].instance.remove();\n this.componentRefs.splice(index, 1);\n }\n }\n\n removeAll() {\n this.componentRefs.forEach(ref => {\n ref.instance.remove();\n });\n this.componentRefs = [];\n }\n\n protected initWrapperContainer() {\n this.wrapperInstance = this.overlay\n .create({\n panelClass: this.overlayPaneClassName,\n })\n .attach(new ComponentPortal(this.wrapperClass)).instance;\n }\n\n protected initComponentRef(config: Config): ComponentRef<Component> {\n const portalHost = new DomPortalOutlet(\n this.wrapperInstance.elementRef.nativeElement,\n this.cfr,\n this.applicationRef,\n this.injector,\n );\n const componentRef = portalHost.attachComponentPortal(\n new ComponentPortal(this.componentClass),\n );\n componentRef.instance.setConfig(config);\n return componentRef;\n }\n\n protected removeNeedless(id: string | number) {\n if (id) {\n this.remove(id);\n }\n if (\n this.globalConfig.maxStack &&\n this.componentRefs.length >= this.globalConfig.maxStack\n ) {\n this.componentRefs\n .slice(0, this.componentRefs.length - this.globalConfig.maxStack + 1)\n .forEach(ref => this.remove(ref.instance.uniqueId));\n }\n }\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n Inject,\n Injectable,\n Injector,\n Optional,\n} from '@angular/core';\n\nimport { BaseMessage } from './base-message';\nimport { MessageWrapperComponent } from './message-wrapper.component';\nimport { MessageComponent } from './message.component';\nimport {\n MESSAGE_CONFIG,\n MESSAGE_DEFAULT_CONFIG,\n MessageConfig,\n MessageGlobalConfig,\n} from './message.config';\n\n@Injectable()\nexport class MessageService extends BaseMessage<\n MessageWrapperComponent,\n MessageComponent,\n MessageConfig\n> {\n constructor(\n overlay: Overlay,\n injector: Injector,\n applicationRef: ApplicationRef,\n cfr: ComponentFactoryResolver,\n @Optional()\n @Inject(MESSAGE_CONFIG)\n globalConfig: MessageGlobalConfig,\n ) {\n super(\n overlay,\n injector,\n applicationRef,\n cfr,\n 'aui-message-overlay-pane',\n MessageWrapperComponent,\n MessageComponent,\n {\n ...MESSAGE_DEFAULT_CONFIG,\n ...globalConfig,\n },\n );\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/icon.module';\n\nimport { MessageWrapperComponent } from './message-wrapper.component';\nimport { MessageComponent } from './message.component';\nimport { MessageService } from './message.service';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, IconModule],\n declarations: [MessageWrapperComponent, MessageComponent],\n entryComponents: [MessageWrapperComponent, MessageComponent],\n providers: [MessageService],\n})\nexport class MessageModule {}\n","import { CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EmbeddedViewRef,\n HostListener,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { MessageAnimations } from '../message/message-animations';\nimport { MessageComponent } from '../message/message.component';\nimport { Bem, buildBem } from '../utils';\n\nimport { NotificationConfig } from './notification.config';\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'aui-notification',\n templateUrl: './notification.component.html',\n animations: [MessageAnimations.inOut],\n styleUrls: ['./notification.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class NotificationComponent\n extends MessageComponent\n implements AfterViewInit\n{\n protected override readonly animateStartState = 'flyLeft';\n protected override readonly animateStartEnd = 'flyUp';\n\n override bem: Bem = buildBem('aui-notification');\n override animateState = this.animateStartState;\n override uniqueId = `aui-notification-${uniqueId++}`;\n isHover = false;\n\n title: string;\n remains: number;\n childComponentInstance: unknown;\n customClass = '';\n footerPortal: TemplatePortal<unknown>;\n\n @ViewChild(CdkPortalOutlet, { static: true })\n private readonly portalOutlet: CdkPortalOutlet;\n\n @ViewChild('modalComponent', { read: ViewContainerRef, static: true })\n private readonly modalEl: ViewContainerRef;\n\n @HostListener('mouseenter')\n onMouseEnter() {\n if (this.duration <= 0) {\n return;\n }\n this.isHover = true;\n clearTimeout(this.timerId);\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n if (this.duration <= 0) {\n return;\n }\n this.isHover = false;\n this.countDown();\n }\n\n override ngAfterViewInit() {\n if (this.remains > 0) {\n this.countDown();\n }\n }\n\n override setConfig(config: NotificationConfig) {\n super.setConfig(config);\n this.title = config.title;\n this.remains = Math.ceil(this.duration / 1000);\n this.customClass = config.customClass || '';\n\n if (config.contentRef) {\n if (config.contentRef instanceof TemplateRef) {\n const portal = new TemplatePortal(config.contentRef, null, {\n $implicit: config.context,\n });\n this.attachTemplatePortal(portal);\n } else {\n this.attachComponentRef(config.contentRef);\n }\n }\n\n if (config.footerRef && config.footerRef instanceof TemplateRef) {\n this.footerPortal = new TemplatePortal(config.footerRef, null, {\n $implicit: config.context,\n });\n }\n }\n\n /**\n * Attach a TemplatePortal as content to this modal container.\n * @param portal Portal to be attached as the modal content.\n */\n private attachTemplatePortal<C>(\n portal: TemplatePortal<C>,\n ): EmbeddedViewRef<C> {\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n private attachComponentRef(componentRef: Type<unknown>) {\n this.childComponentInstance = this.modalEl.createComponent(componentRef, {\n injector: this.viewContainerRef.injector,\n }).instance;\n return this.childComponentInstance;\n }\n\n private countDown() {\n this.timerId = window.setTimeout(() => {\n this.remains -= 1;\n if (this.remains === 0) {\n this.remove();\n } else {\n this.countDown();\n }\n this.cdr.markForCheck();\n }, 1000);\n }\n}\n","<div\n [@inOut]=\"animateState\"\n (@inOut.done)=\"onAnimationEnd($event)\"\n [class]=\"bem.block(type) + ' ' + uniqueId + ' ' + customClass\"\n>\n <div [class]=\"bem.element('icon')\">\n <aui-icon\n [icon]=\"icon\"\n [background]=\"icon.endsWith('_triangle_s') ? 'triangle' : 'circle'\"\n ></aui-icon>\n </div>\n <div [class]=\"bem.element('body')\">\n <div\n *ngIf=\"title\"\n [class]=\"bem.element('title')\"\n >\n {{ title }}\n </div>\n <div\n *ngIf=\"content\"\n [class]=\"bem.element('content')\"\n >\n {{ content }}\n </div>\n <ng-template cdkPortalHost></ng-template>\n <ng-template #modalComponent></ng-template>\n </div>\n <div [class]=\"bem.element('close')\">\n <div\n *ngIf=\"duration <= 0 || isHover\"\n [class]=\"bem.element('remove')\"\n (click)=\"remove()\"\n >\n <aui-icon icon=\"close\"></aui-icon>\n </div>\n <div\n *ngIf=\"duration > 0 && !isHover\"\n [class]=\"bem.element('duration')\"\n >\n {{ remains > 0 ? remains : 1 }}s\n </div>\n </div>\n <div\n *ngIf=\"footerPortal\"\n [class]=\"bem.element('footer')\"\n >\n <ng-template [cdkPortalOutlet]=\"footerPortal\"></ng-template>\n </div>\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { InjectionToken, TemplateRef } from '@angular/core';\n\nimport { MessageConfig, MessageGlobalConfig } from '../message';\n\nexport interface NotificationConfig extends MessageConfig {\n title?: string;\n contentRef?: TemplateRef<any> | ComponentType<void>;\n footerRef?: TemplateRef<any>;\n context?: unknown;\n customClass?: string;\n}\n\n// eslint-disable-next-line no-restricted-syntax\nexport type NotificationGlobalConfig = MessageGlobalConfig;\n\nexport const NOTIFICATION_CONFIG = new InjectionToken<NotificationGlobalConfig>(\n 'NOTIFICATION_CONFIG',\n);\n\nexport const NOTIFICATION_DEFAULT_CONFIG = {\n duration: 6000,\n maxStack: 8,\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { MessageWrapperComponent } from '../message/message-wrapper.component';\n\n@Component({\n selector: 'aui-notification-wrapper',\n styleUrls: ['./notification-wrapper.component.scss'],\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class NotificationWrapperComponent extends MessageWrapperComponent {\n constructor(public override elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n Inject,\n Injectable,\n Injector,\n Optional,\n} from '@angular/core';\n\nimport { BaseMessage } from '../message/base-message';\n\nimport { NotificationWrapperComponent } from './notification-wrapper.component';\nimport { NotificationComponent } from './notification.component';\nimport {\n NOTIFICATION_CONFIG,\n NOTIFICATION_DEFAULT_CONFIG,\n NotificationConfig,\n NotificationGlobalConfig,\n} from './notification.config';\n\n@Injectable()\nexport class NotificationService extends BaseMessage<\n NotificationWrapperComponent,\n NotificationComponent,\n NotificationConfig\n> {\n constructor(\n overlay: Overlay,\n injector: Injector,\n applicationRef: ApplicationRef,\n cfr: ComponentFactoryResolver,\n @Optional()\n @Inject(NOTIFICATION_CONFIG)\n globalConfig: NotificationGlobalConfig,\n ) {\n super(\n overlay,\n injector,\n applicationRef,\n cfr,\n 'aui-notification-overlay-pane',\n NotificationWrapperComponent,\n NotificationComponent,\n {\n ...NOTIFICATION_DEFAULT_CONFIG,\n ...globalConfig,\n },\n );\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { NotificationWrapperComponent } from './notification-wrapper.component';\nimport { NotificationComponent } from './notification.component';\nimport { NotificationService } from './notification.service';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, PortalModule, IconModule],\n declarations: [NotificationWrapperComponent, NotificationComponent],\n entryComponents: [NotificationWrapperComponent, NotificationComponent],\n providers: [NotificationService],\n})\nexport class NotificationModule {}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/**\n * To modify the labels and text displayed, create a new instance of MatPaginatorIntl and\n * include it in a custom provider\n */\n@Injectable()\nexport class PaginatorIntl {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n readonly changes: Subject<void> = new Subject<void>();\n\n /** A label for the page size selector. */\n itemsPerPageLabel = 'perPage';\n\n jumperLabelPrefix = 'Goto';\n jumperLabelSuffix = '';\n\n getTotalLabel = (length: number) => `Total ${length}`;\n}\n\n// eslint-disable-next-line sonar/function-name\nexport function PAGINATOR_INTL_PROVIDER_FACTORY(parentIntl: PaginatorIntl) {\n return parentIntl || new PaginatorIntl();\n}\n\nexport const PAGINATOR_INTL_PROVIDER = {\n // If there is already an PaginatorIntl available, use that. Otherwise, provide a new one.\n provide: PaginatorIntl,\n deps: [[new Optional(), new SkipSelf(), PaginatorIntl]],\n useFactory: PAGINATOR_INTL_PROVIDER_FACTORY,\n};\n","import { Directive } from '@angular/core';\n\nimport { MenuContentDirective } from '../dropdown';\n\n@Directive({\n selector: '[auiOptionGroupTitle]',\n exportAs: 'auiOptionGroupTitle',\n host: {\n '[class.aui-option-group__title]': 'true',\n },\n})\nexport class OptionGroupTitleDirective {}\n\n@Directive({\n selector: '*[auiOptionContent]',\n exportAs: 'auiOptionContent',\n})\nexport class OptionContentDirective extends MenuContentDirective {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n combineLatest,\n distinctUntilChanged,\n map,\n tap,\n} from 'rxjs';\n\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem, coerceAttrBoolean, publishRef } from '../../utils';\nimport { BaseSelect } from '../base-select';\n\n@Component({\n selector: 'aui-option',\n templateUrl: './option.component.html',\n styleUrls: ['./option.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class OptionComponent<T> {\n bem: Bem = buildBem('aui-option');\n\n private _disabled = false;\n private _label: string | TemplateRef<unknown> = '';\n private _labelContext: unknown = {};\n private _value: T;\n private readonly label$$ = new BehaviorSubject(this.label);\n\n private readonly labelContext$$ = new BehaviorSubject(this.labelContext);\n\n private readonly value$$ = new BehaviorSubject(this.value);\n\n private readonly disabled$$ = new BehaviorSubject(this.disabled);\n\n @Input()\n get label() {\n return this._label;\n }\n\n set label(val) {\n this._label = val;\n this.label$$.next(val);\n }\n\n @Input()\n get labelContext() {\n return this._labelContext;\n }\n\n set labelContext(val) {\n this._labelContext = val;\n this.labelContext$$.next(val);\n }\n\n @Input()\n get value() {\n return this._value;\n }\n\n set value(val) {\n this._value = val;\n this.value$$.next(val);\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n this._disabled = coerceAttrBoolean(val);\n this.disabled$$.next(this._disabled);\n }\n\n isMulti = false;\n\n @ViewChild('elRef', { static: true })\n elRef: ElementRef<HTMLDivElement>;\n\n private readonly select: BaseSelect<T>;\n selected = false;\n visible = true;\n size: ComponentSize = ComponentSize.Medium;\n focused = false;\n\n value$ = this.value$$.asObservable();\n label$ = this.label$$.asObservable();\n labelContext$ = this.labelContext$$.asObservable();\n disabled$ = this.disabled$$.asObservable();\n\n selected$: Observable<boolean>;\n size$: Observable<ComponentSize>;\n visible$: Observable<boolean>;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n @Inject(forwardRef(() => BaseSelect))\n select: any, // FIXME: workaround temporarily\n ) {\n this.isMulti = select.isMulti;\n this.select = select;\n this.selected$ = combineLatest([this.select.values$, this.value$$]).pipe(\n map(([selectValue, selfValue]) =>\n selectValue\n ?.map(this.select.trackFn)\n .includes(this.select.trackFn(selfValue)),\n ),\n distinctUntilChanged(),\n tap(selected => {\n this.selected = selected;\n }),\n publishRef(),\n );\n this.size$ = this.select.size$.pipe(\n tap(size => {\n this.size = size;\n }),\n );\n this.visible$ = combineLatest([\n this.select.filterString$,\n combineLatest([this.label$, this.value$, this.labelContext$]).pipe(\n map(([label, value, labelContext]) => ({ label, value, labelContext })),\n ),\n ]).pipe(\n map(([filterString, option]) =>\n this.select.filterFn(filterString, option),\n ),\n distinctUntilChanged(),\n tap(visible => {\n this.visible = visible;\n }),\n publishRef(),\n );\n }\n\n onClick() {\n if (this.disabled) {\n return;\n }\n this.select.onOptionClick(this);\n }\n\n focus() {\n if (this.disabled) {\n return;\n }\n this.focused = true;\n this.cdr.markForCheck();\n }\n\n blur() {\n this.focused = false;\n this.cdr.markForCheck();\n }\n}\n","<div\n #elRef\n [hidden]=\"!(visible$ | async)\"\n [class]=\"bem.block(size$ | async)\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"selected$ | async\"\n [class.isMulti]=\"isMulti\"\n [class.isFocused]=\"focused\"\n (click)=\"onClick()\"\n>\n <i\n *ngIf=\"isMulti\"\n class=\"aui-option__pointer\"\n >\n <aui-icon\n [hidden]=\"!(selected$ | async)\"\n icon=\"check_s\"\n ></aui-icon>\n </i>\n <ng-content></ng-content>\n</div>\n","import {\n AfterContentInit,\n AfterViewInit,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n combineLatest,\n of,\n map,\n startWith,\n switchMap,\n takeUntil,\n} from 'rxjs';\n\nimport { CommonFormControl } from '../form';\nimport { TooltipDirective } from '../tooltip';\nimport { ComponentSize } from '../types';\nimport {\n coerceAttrBoolean,\n coerceString,\n isTemplateRef,\n publishRef,\n scrollIntoView,\n} from '../utils';\n\nimport { OptionContentDirective } from './helper-directives';\nimport { OptionComponent } from './option/option.component';\nimport { OptionFilterFn, SelectFilterOption, TrackFn } from './select.types';\n\n@Directive()\nexport abstract class BaseSelect<T, V = T>\n extends CommonFormControl<V>\n implements AfterContentInit, AfterViewInit, OnDestroy\n{\n @Input()\n get size() {\n return this._size;\n }\n\n set size(val) {\n if (!val || this._size === val) {\n return;\n }\n this._size = val;\n this.size$$.next(val);\n }\n\n @Input()\n get filterable() {\n return this._filterable;\n }\n\n set filterable(val: boolean | '') {\n this._filterable = coerceAttrBoolean(val);\n }\n\n @Input()\n get clearable() {\n return this._clearable;\n }\n\n set clearable(val: boolean | '') {\n this._clearable = coerceAttrBoolean(val);\n }\n\n @Input()\n filterFn: OptionFilterFn<T> = this._filterFn.bind(this);\n\n @Input()\n trackFn: TrackFn<T> = this._trackFn;\n\n @Input()\n labelFn?: (value: T) => string;\n\n @Input()\n get allowCreate() {\n return this._allowCreate;\n }\n\n set allowCreate(val: boolean | '') {\n this._allowCreate = coerceAttrBoolean(val);\n }\n\n get allOptions() {\n return [\n ...(this.customOptions ? this.customOptions.toArray() : []),\n ...(this.contentOptions ? this.contentOptions.toArray() : []),\n ];\n }\n\n get opened() {\n return this.tooltipRef.isCreated;\n }\n\n get inputReadonly() {\n return !(this.filterable && this.opened);\n }\n\n get filterString() {\n return this._filterString;\n }\n\n set filterString(val) {\n if (val !== this._filterString) {\n this._filterString = val;\n this.filterString$$.next(val);\n this.filterChange.emit(val);\n }\n }\n\n @Input()\n loading = false;\n\n @Input()\n placeholder = '';\n\n @Input()\n defaultFirstOption = true;\n\n @Input()\n lazy = true;\n\n @Output()\n filterChange = new EventEmitter<string>();\n\n @Output()\n show = new EventEmitter<void>();\n\n @Output()\n hide = new EventEmitter<void>();\n\n @ViewChild('selectRef', { static: true })\n protected selectRef: ElementRef<HTMLElement>;\n\n @ViewChild('tooltipRef', { static: true })\n protected tooltipRef: TooltipDirective;\n\n @ViewChild('optionListRef', { static: false })\n protected optionListRef: ElementRef<HTMLDivElement>;\n\n @ViewChild('inputtingOption', { static: false })\n protected inputtingOption: OptionComponent<T>;\n\n @ContentChild(OptionContentDirective)\n protected optionContent?: OptionContentDirective;\n\n @ViewChildren(OptionComponent)\n customOptions: QueryList<OptionComponent<T>>;\n\n @ContentChildren(OptionComponent, { descendants: true })\n contentOptions: QueryList<OptionComponent<T>>;\n\n isTemplateRef = isTemplateRef;\n isMulti = false;\n\n /**\n * Utility field to make sure the users always see the value as type array\n */\n abstract readonly values$: Observable<T[]>;\n\n allOptions$: Observable<Array<OptionComponent<T>>>;\n\n protected focusedOption: OptionComponent<T>;\n\n private _size: ComponentSize = ComponentSize.Medium;\n private _filterable = true;\n private _clearable = false;\n private _allowCreate = false;\n private _filterString = '';\n\n protected destroy$$ = new Subject<void>();\n protected size$$ = new BehaviorSubject<ComponentSize>(this.size);\n private readonly filterString$$ = new BehaviorSubject<string>(\n this.filterString,\n );\n\n size$ = this.size$$.asObservable();\n filterString$ = this.filterString$$.asObservable();\n hasVisibleOption$: Observable<boolean>;\n hasMatchedOption$: Observable<boolean>;\n customCreatedOptions$: Observable<Array<SelectFilterOption<T>>>;\n containerWidth: string;\n\n ngAfterContentInit() {\n this.customCreatedOptions$ = combineLatest([\n this.values$,\n (\n this.contentOptions.changes as Observable<QueryList<OptionComponent<T>>>\n ).pipe(\n startWith(this.contentOptions),\n switchMap((options: QueryList<OptionComponent<T>>) =>\n options.length > 0\n ? combineLatest(options.map(option => option.value$))\n : of([] as T[]),\n ),\n ),\n ]).pipe(\n map(([values, optionValues]) =>\n values.reduce<Array<SelectFilterOption<T>>>((acc, value) => {\n const included = optionValues\n .map(value => this.trackFn(value))\n .includes(this.trackFn(value));\n if (!included) {\n const label =\n this.labelFn?.(value) || coerceString(this.trackFn(value));\n if (label) {\n acc.push({\n label,\n value,\n });\n }\n }\n return acc;\n }, []),\n ),\n publishRef(),\n );\n }\n\n ngAfterViewInit() {\n this.allOptions$ = combineLatest([\n this.customOptions.changes.pipe(startWith(this.customOptions)),\n this.contentOptions.changes.pipe(startWith(this.contentOptions)),\n ]).pipe(\n map(\n ([customOptions, contentOptions]: [\n QueryList<OptionComponent<T>>,\n QueryList<OptionComponent<T>>,\n ]) => [...customOptions.toArray(), ...contentOptions.toArray()],\n ),\n publishRef(),\n );\n\n // support dynamic options loading on filtering\n this.allOptions$.pipe(takeUntil(this.destroy$$)).subscribe(() => {\n if (this.opened) {\n requestAnimationFrame(() => {\n this.autoFocusFirstOption();\n });\n }\n });\n\n this.hasMatchedOption$ = combineLatest([\n this.allOptions$.pipe(\n map(customOptions =>\n customOptions.filter(option => option !== this.inputtingOption),\n ),\n // eslint-disable-next-line sonarjs/no-identical-functions\n switchMap(options =>\n options.length > 0\n ? combineLatest(options.map(option => option.value$))\n : of([] as T[]),\n ),\n ),\n this.filterString$,\n ]).pipe(\n map(([values, filterString]) =>\n values.some(value => this.trackFn(value) === filterString),\n ),\n publishRef(),\n );\n\n this.hasVisibleOption$ = (\n this.contentOptions.changes as Observable<QueryList<OptionComponent<T>>>\n ).pipe(\n startWith(this.contentOptions),\n switchMap((options: QueryList<OptionComponent<T>>) =>\n options.length > 0\n ? combineLatest(options.map(option => option.visible$))\n : of([] as boolean[]),\n ),\n map(visible => visible.some(Boolean)),\n publishRef(),\n );\n }\n\n ngOnDestroy() {\n this.optionContent?.detach();\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n\n openOption() {\n this.tooltipRef.createTooltip();\n }\n\n closeOption() {\n this.tooltipRef.disposeTooltip();\n }\n\n onShowOptions() {\n const exec = () => {\n this.containerWidth = this.selectRef.nativeElement.offsetWidth + 'px';\n\n requestAnimationFrame(() => {\n this.autoFocusFirstOption();\n });\n\n this.show.emit();\n };\n\n if (this.optionContent) {\n requestAnimationFrame(() => {\n this.optionContent.attach();\n exec();\n });\n } else {\n exec();\n }\n }\n\n onHideOptions() {\n if (this.onTouched) {\n this.onTouched();\n }\n if (!this.lazy) {\n this.optionContent?.detach();\n }\n this.resetFocusedOption();\n this.filterString = '';\n this.hide.emit();\n }\n\n onInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.filterString = value;\n\n requestAnimationFrame(() => {\n this.autoFocusFirstOption();\n });\n\n this.cdr.markForCheck();\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown':\n this.focusOptionDir('down');\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowUp':\n this.focusOptionDir('up');\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Enter':\n this.selectFocusedOption();\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Escape':\n this.escSelect();\n event.stopPropagation();\n event.preventDefault();\n break;\n }\n }\n\n onOptionClick(option: OptionComponent<T>) {\n this.resetFocusedOption(option);\n this.selectOption(option);\n }\n\n protected autoFocusFirstOption() {\n if (this.defaultFirstOption && this.allowCreate && this.filterString) {\n const matchedOption = this.contentOptions.find(\n option => this.trackFn(option.value) === this.filterString,\n );\n this.resetFocusedOption(matchedOption || this.customOptions.first);\n return;\n }\n\n const selectedOption = this.allOptions.find(\n option => option.selected && option.visible,\n );\n if (this.defaultFirstOption) {\n this.resetFocusedOption(\n selectedOption ||\n this.allOptions.find(option => option.visible && !option.disabled),\n );\n } else if (selectedOption) {\n this.scrollToOption(selectedOption);\n }\n }\n\n protected focusOptionDir(dir: 'down' | 'up') {\n if (!this.opened) {\n this.openOption();\n return;\n }\n const visibleOptions = this.allOptions.filter(\n option => option.visible && !option.disabled,\n );\n if (visibleOptions.length === 0) {\n return;\n }\n const step = dir === 'down' ? 1 : -1;\n let i = visibleOptions.indexOf(this.focusedOption);\n i = i + step;\n if (i >= visibleOptions.length) {\n i = 0;\n } else if (i < 0) {\n i = visibleOptions.length - 1;\n }\n this.resetFocusedOption(visibleOptions[i]);\n }\n\n protected resetFocusedOption(focusedOption?: OptionComponent<T>) {\n if (this.focusedOption === focusedOption) {\n return;\n }\n\n if (this.focusedOption) {\n this.focusedOption.blur();\n }\n\n this.focusedOption = focusedOption;\n\n if (this.focusedOption) {\n this.focusedOption.focus();\n this.scrollToOption(this.focusedOption);\n }\n }\n\n protected scrollToOption(option: OptionComponent<T>) {\n if (this.optionListRef) {\n scrollIntoView(\n this.optionListRef.nativeElement,\n option.elRef.nativeElement,\n );\n }\n }\n\n protected selectFocusedOption() {\n if (!this.opened) {\n this.openOption();\n return;\n }\n if (this.focusedOption && !this.focusedOption.disabled) {\n this.selectOption(this.focusedOption);\n }\n }\n\n protected escSelect() {\n this.closeOption();\n }\n\n private _trackFn<T>(value: T) {\n return value;\n }\n\n private _filterFn(\n filterString: string,\n { label, value }: SelectFilterOption<T>,\n ) {\n return (\n (typeof label === 'string' && label) ||\n this.labelFn?.(value) ||\n coerceString(this.trackFn(value))\n )\n ?.toLowerCase()\n .includes(filterString?.toLowerCase() ?? '');\n }\n\n abstract selectOption(option: OptionComponent<T>): void;\n abstract clearValue(event: Event): void;\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n Observable,\n combineLatest,\n of,\n distinctUntilChanged,\n map,\n startWith,\n switchMap,\n} from 'rxjs';\n\nimport { InputComponent } from '../input';\nimport { coerceString, publishRef } from '../utils';\n\nimport { BaseSelect } from './base-select';\nimport { OptionComponent } from './option/option.component';\nimport { SelectOption } from './select.types';\n\n@Component({\n selector: 'aui-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n {\n provide: BaseSelect,\n useExisting: SelectComponent,\n },\n ],\n})\nexport class SelectComponent<T = unknown>\n extends BaseSelect<T>\n implements AfterContentInit\n{\n @ViewChild('inputRef', { static: true })\n inputRef: InputComponent;\n\n values$ = this.model$.asObservable().pipe(map(val => [val]));\n\n selectedOption$: Observable<SelectOption>;\n\n hasSelected$: Observable<boolean>;\n\n get rootClass() {\n return `aui-select aui-select--${this.size}`;\n }\n\n get containerClass() {\n return `aui-option-container aui-option-container--${this.size}`;\n }\n\n isClearable = (hasSelected: boolean) =>\n !this.disabled && this.clearable && hasSelected;\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n\n this.selectedOption$ = combineLatest([\n (\n this.contentOptions.changes as Observable<QueryList<OptionComponent<T>>>\n ).pipe(\n startWith(this.contentOptions),\n switchMap(options =>\n combineLatest(options.map(option => option.selected$)).pipe(\n startWith(null as void),\n map(() => options.find(option => option.selected)),\n distinctUntilChanged(),\n switchMap(option =>\n option\n ? combineLatest([\n option.value$,\n option.label$,\n option.labelContext$,\n ]).pipe(\n map(([value, label, labelContext]) => ({\n value,\n label,\n labelContext,\n })),\n )\n : of(null as void),\n ),\n ),\n ),\n ),\n this.model$,\n ]).pipe(\n map(([option, value]) =>\n option\n ? {\n label:\n option.label ||\n this.labelFn?.(option.value) ||\n coerceString(this.trackFn(option.value)),\n // https://github.com/angular/angular/issues/24515\n labelContext: {\n ...(option.labelContext as Record<string, unknown>),\n },\n }\n : {\n label: this.labelFn?.(value) || coerceString(this.trackFn(value)),\n },\n ),\n publishRef(),\n );\n\n this.hasSelected$ = this.selectedOption$.pipe(\n map(({ label }) => !!label),\n publishRef(),\n );\n }\n\n override onShowOptions() {\n super.onShowOptions();\n }\n\n override onHideOptions() {\n super.onHideOptions();\n this.inputRef.elementRef.nativeElement.value = '';\n }\n\n protected override valueIn(v: T): T {\n this.closeOption();\n return v;\n }\n\n selectOption(option: OptionComponent<T>) {\n this.emitValue(option.value);\n this.closeOption();\n }\n\n clearValue(event: Event) {\n this.emitValue(null);\n event.stopPropagation();\n event.preventDefault();\n }\n}\n","<div\n [class]=\"rootClass\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable(hasSelected$ | async)\"\n [class.isFilterable]=\"filterable\"\n [class.isOpened]=\"opened\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipShow)=\"onShowOptions()\"\n (auiTooltipHide)=\"onHideOptions()\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-select__input\"\n autocomplete=\"off\"\n aui-input\n [disabled]=\"disabled\"\n [size]=\"size\"\n [readonly]=\"inputReadonly\"\n [placeholder]=\"!(hasSelected$ | async) ? placeholder : ''\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"closeOption()\"\n />\n <span\n auiInputSuffix\n class=\"aui-select__icon-container\"\n >\n <aui-icon\n class=\"aui-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-select__clear\"\n icon=\"close_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n <div\n *ngIf=\"(selectedOption$ | async) && !filterString\"\n class=\"aui-select__label-container aui-input aui-input--{{ size }}\"\n [attr.disabled]=\"disabled ? true : null\"\n >\n <div class=\"aui-select__label\">\n <ng-container *ngIf=\"(selectedOption$ | async).label as optionLabel\">\n <ng-container\n *ngIf=\"isTemplateRef(optionLabel); else label\"\n [ngTemplateOutlet]=\"optionLabel\"\n [ngTemplateOutletContext]=\"(selectedOption$ | async).labelContext\"\n ></ng-container>\n <ng-template #label>{{ optionLabel }}</ng-template>\n </ng-container>\n </div>\n </div>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n [class]=\"containerClass\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { PaginatorIntl } from './paginator-intl';\n\n/**\n * Change event object that is emitted when the user selects a\n * different page size or navigates to another page.\n * @deprecated use Output events directly instead\n */\nexport class PageEvent {\n /** The current page index. */\n pageIndex: number;\n\n /**\n * Index of the page that was selected previously.\n */\n previousPageIndex: number;\n\n /** The current page size */\n pageSize: number;\n\n /** The current total number of items being paged */\n length: number;\n}\n\n@Component({\n selector: 'aui-paginator',\n templateUrl: 'paginator.component.html',\n styleUrls: ['paginator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class PaginatorComponent implements OnDestroy {\n bem: Bem = buildBem('aui-paginator');\n\n @Input()\n get pageIndex() {\n return this.currentPage - 1;\n }\n\n set pageIndex(val) {\n this.currentPage = val + 1;\n }\n\n @Input()\n currentPage = 1;\n\n @Input()\n pageSize = 20;\n\n @Input()\n pageSizeOptions: number[] = [20, 50, 100];\n\n @Input()\n total = 0;\n\n /**\n * @deprecated use `total` instead\n */\n @Input()\n get length() {\n return this.total;\n }\n\n set length(val) {\n this.total = val;\n }\n\n @Input()\n layout: string | string[] = 'total,pager,sizes';\n\n @Input()\n disabled = false;\n\n @Output()\n readonly currentPageChange = new EventEmitter<number>();\n\n @Output()\n readonly pageSizeChange = new EventEmitter<number>();\n\n private readonly intlChangeSub: Subscription;\n\n get pageCount() {\n return Math.ceil(this.total / this.pageSize);\n }\n\n constructor(\n public intl: PaginatorIntl,\n private readonly cdr: ChangeDetectorRef,\n ) {\n this.intlChangeSub = intl.changes.subscribe(() => this.cdr.markForCheck());\n }\n\n ngOnDestroy() {\n this.intlChangeSub.unsubscribe();\n }\n\n getLayoutArr() {\n return typeof this.layout === 'string'\n ? this.layout.split(',').map(item => item.trim())\n : this.layout;\n }\n\n getCenterPages() {\n const start = Math.min(\n Math.max(0, this.currentPage - 4),\n Math.max(0, this.pageCount - 7),\n );\n return Array.from({ length: Math.max(this.pageCount - 2, 0) })\n .fill(null)\n .map((_, index) => index + 2)\n .slice(start, start + 5);\n }\n\n jumpTo(page: number) {\n if (page === this.currentPage) {\n return;\n }\n this.currentPageChange.emit(page);\n }\n\n navigate(step: number) {\n this.jumpTo(Math.min(Math.max(this.currentPage + step, 1), this.pageCount));\n }\n\n changePageSize(size: number) {\n if (size === this.pageSize) {\n return;\n }\n this.pageSizeChange.emit(size);\n }\n\n onKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n const inputEl = event.target as HTMLInputElement;\n const nextPage = parseInt(inputEl.value, 10);\n if (nextPage > 0 && nextPage <= this.pageCount) {\n this.jumpTo(nextPage);\n } else {\n inputEl.value = this.currentPage + '';\n }\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n trackByIndex(index: number) {\n return index;\n }\n}\n","<div [class]=\"bem.block()\">\n <div\n *ngFor=\"let layout of getLayoutArr()\"\n [class]=\"bem.element('layout')\"\n >\n <div\n *ngIf=\"layout === 'pager'\"\n [class]=\"bem.element('pager')\"\n >\n <button\n [ngClass]=\"bem.element('navigator')\"\n aui-button\n [disabled]=\"disabled || currentPage <= 1\"\n (click)=\"navigate(-1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n <button\n [ngClass]=\"bem.element('page')\"\n [aui-button]=\"currentPage === 1 ? 'primary' : 'default'\"\n [plain]=\"!(currentPage === 1)\"\n [disabled]=\"disabled\"\n (click)=\"jumpTo(1)\"\n >\n 1\n </button>\n <button\n *ngIf=\"pageCount > 7 && currentPage > 4\"\n [ngClass]=\"bem.element('fast-navigator')\"\n aui-button\n [disabled]=\"disabled\"\n (click)=\"navigate(-5)\"\n >\n <aui-icon icon=\"ellipsis_h_s\"></aui-icon>\n <aui-icon icon=\"angle_double_left\"></aui-icon>\n </button>\n <button\n *ngFor=\"let page of getCenterPages(); trackBy: trackByIndex\"\n [ngClass]=\"bem.element('page')\"\n [aui-button]=\"currentPage === page ? 'primary' : 'default'\"\n [plain]=\"!(currentPage === page)\"\n [disabled]=\"disabled\"\n (click)=\"jumpTo(page)\"\n >\n {{ page }}\n </button>\n <button\n *ngIf=\"pageCount > 7 && currentPage < pageCount - 3\"\n [ngClass]=\"bem.element('fast-navigator')\"\n aui-button\n [disabled]=\"disabled\"\n (click)=\"navigate(5)\"\n >\n <aui-icon icon=\"ellipsis_h_s\"></aui-icon>\n <aui-icon icon=\"angle_double_right\"></aui-icon>\n </button>\n <button\n *ngIf=\"pageCount > 1\"\n [ngClass]=\"bem.element('page')\"\n [aui-button]=\"currentPage === pageCount ? 'primary' : 'default'\"\n [plain]=\"!(currentPage === pageCount)\"\n [disabled]=\"disabled\"\n (click)=\"jumpTo(pageCount)\"\n >\n {{ pageCount }}\n </button>\n <button\n aui-button\n [ngClass]=\"bem.element('navigator')\"\n [disabled]=\"disabled || currentPage >= pageCount\"\n (click)=\"navigate(1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n </div>\n <div\n *ngIf=\"layout === 'total'\"\n [class]=\"bem.element('total')\"\n >\n {{ intl.getTotalLabel(total) }}\n </div>\n <div\n *ngIf=\"layout === 'sizes'\"\n [class]=\"bem.element('sizes')\"\n >\n <aui-select\n [disabled]=\"disabled\"\n [value]=\"pageSize\"\n [filterable]=\"false\"\n (valueChange)=\"changePageSize($event)\"\n >\n <aui-option\n *ngFor=\"let size of pageSizeOptions\"\n [value]=\"size\"\n >\n {{ size }}\n </aui-option>\n </aui-select>\n <span>{{ intl.itemsPerPageLabel }}</span>\n </div>\n <div\n *ngIf=\"layout === 'jumper'\"\n [class]=\"bem.element('jumper')\"\n >\n <span *ngIf=\"intl.jumperLabelPrefix\">{{ intl.jumperLabelPrefix }}</span>\n <input\n aui-input\n type=\"number\"\n min=\"1\"\n [max]=\"pageCount\"\n [value]=\"currentPage\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydown($event)\"\n />\n <span *ngIf=\"intl.jumperLabelSuffix\">{{ intl.jumperLabelSuffix }}</span>\n </div>\n <div\n *ngIf=\"layout === 'content'\"\n [class]=\"bem.element('content')\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import { TemplateRef } from '@angular/core';\n\nexport interface SelectOption {\n label: string | TemplateRef<unknown>;\n labelContext?: unknown;\n}\n\nexport interface SelectFilterOption<T> extends SelectOption {\n disabled?: boolean;\n value: T;\n}\n\nexport type OptionFilterFn<T> = (\n filter: string,\n option: SelectFilterOption<T>,\n) => boolean;\n\nexport type TrackFn<T, R = unknown> = (value: T) => R;\n\nexport type TagClassFn<\n V,\n T extends string | TemplateRef<unknown> = string | TemplateRef<unknown>,\n> = (\n label: T,\n value: V,\n) => string | string[] | Set<string> | { [className: string]: unknown };\n\nexport enum SelectAllStatus {\n Empty = '',\n Checked = 'checked',\n Indeterminate = 'indeterminate',\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n QueryList,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n Observable,\n combineLatest,\n of,\n map,\n startWith,\n switchMap,\n tap,\n} from 'rxjs';\n\nimport { createWithMaxRowCount } from '../../input/tags-input/with-max-row-count';\nimport { ComponentSize } from '../../types';\nimport {\n Bem,\n buildBem,\n coerceAttrBoolean,\n coerceString,\n publishRef,\n} from '../../utils';\nimport { BaseSelect } from '../base-select';\nimport { OptionComponent } from '../option/option.component';\nimport {\n SelectAllStatus,\n SelectFilterOption,\n TagClassFn,\n} from '../select.types';\n\n@Component({\n selector: 'aui-multi-select',\n templateUrl: './multi-select.component.html',\n styleUrls: [\n '../../input/input.component.scss',\n '../../tag/tag.component.scss',\n './multi-select.component.scss',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectComponent),\n multi: true,\n },\n {\n provide: BaseSelect,\n useExisting: MultiSelectComponent,\n },\n ],\n})\nexport class MultiSelectComponent<T = unknown>\n extends BaseSelect<T, T[]>\n implements AfterContentInit, AfterViewInit\n{\n bem: Bem = buildBem('aui-multi-select');\n bemSelectAll: Bem = buildBem('aui-option');\n selectedOptions$: Observable<Array<SelectFilterOption<T>>>;\n selectAllStatus$: Observable<SelectAllStatus>;\n selectAllStatus: SelectAllStatus;\n hasEnabledOptions$: Observable<boolean>;\n\n private _allowSelectAll = false;\n override isMulti = true;\n override model: T[] = [];\n\n values$ = this.model$;\n\n @Input()\n tagClassFn: TagClassFn<T>;\n\n @Input()\n maxRowCount = 0;\n\n @Input()\n customRowHeight = 0; // 0: use default style const value, > 1: for ```tagClassFn``` maybe affect lineHeight\n\n @Input()\n get allowSelectAll() {\n return this._allowSelectAll;\n }\n\n set allowSelectAll(val: boolean | '') {\n this._allowSelectAll = coerceAttrBoolean(val);\n }\n\n @ViewChild('inputRef', { static: true })\n inputRef: ElementRef<HTMLInputElement>;\n\n @ViewChild('inputValueMirror', { static: true })\n inputValueMirror: ElementRef<HTMLElement>;\n\n @HostBinding('style.position')\n get hostPosition() {\n return this.withMaxRowCount.hostPosition();\n }\n\n @HostBinding('style.display')\n get hostDisplay() {\n return this.withMaxRowCount.hostDisplay();\n }\n\n inputValue = '';\n hasDisabledOption = false;\n\n get rootClass() {\n const size = this.size || ComponentSize.Medium;\n return `aui-input ${this.bem.block(size)} ${\n this.disabled ? 'isDisabled' : ''\n } ${this.focused ? 'isFocused' : ''} ${\n this.displayClearBtn ? 'isClearable' : ''\n } ${this.maxRowCount > 0 ? 'withHeightLimit' : ''}`;\n }\n\n get tagSize() {\n return this.size === ComponentSize.Large\n ? ComponentSize.Medium\n : ComponentSize.Mini;\n }\n\n get inputClass() {\n return `${this.bem.element('input', {\n hidden: this.inputReadonly,\n })} aui-tag aui-tag--${this.tagSize}`;\n }\n\n get displayClearBtn() {\n return !this.disabled && this.clearable && this.model.length;\n }\n\n get maxHeight() {\n return this.withMaxRowCount.maxHeight();\n }\n\n private readonly withMaxRowCount = createWithMaxRowCount(this);\n\n focused = false;\n\n trackByValue = (_: number, item: SelectFilterOption<T>) =>\n this.trackFn(item.value);\n\n constructor(cdr: ChangeDetectorRef, private readonly renderer: Renderer2) {\n super(cdr);\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n\n this.selectedOptions$ = combineLatest([\n this.model$,\n (\n this.contentOptions.changes as Observable<QueryList<OptionComponent<T>>>\n ).pipe(\n startWith(this.contentOptions),\n switchMap((options: QueryList<OptionComponent<T>>) =>\n options.length > 0\n ? combineLatest(\n options.map(option =>\n combineLatest([\n option.value$,\n option.label$,\n option.labelContext$,\n option.disabled$,\n ]).pipe(\n map(([value, label, labelContext, disabled]) => ({\n value,\n label,\n labelContext,\n disabled,\n })),\n ),\n ),\n )\n : of([] as Array<SelectFilterOption<T>>),\n ),\n ),\n ]).pipe(\n map(([values, options]) =>\n values\n .map(value => {\n const option = options.find(\n option => this.trackFn(option.value) === this.trackFn(value),\n );\n return option\n ? {\n label:\n option.label || coerceString(this.trackFn(option.value)),\n labelContext: option.labelContext,\n value: option.value,\n disabled: option.disabled,\n }\n : {\n label:\n this.labelFn?.(value) || coerceString(this.trackFn(value)),\n value,\n };\n })\n // sort disabled options as first\n .sort((a, b) => {\n if (a.disabled) {\n return -1;\n }\n\n if (b.disabled) {\n return 1;\n }\n\n return 0;\n }),\n ),\n tap(options => (this.hasDisabledOption = options.some(o => o.disabled))),\n publishRef(),\n );\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n this.selectAllStatus$ = combineLatest([\n this.allOptions$,\n this.filterString$,\n ]).pipe(\n switchMap(([allOptions]) =>\n combineLatest([\n ...(allOptions ?? [])\n .filter(({ visible, disabled }) => visible && !disabled)\n .map(({ selected$ }) => selected$),\n ]),\n ),\n map(statuses => {\n const selected = statuses.filter(Boolean);\n return selected.length === 0\n ? SelectAllStatus.Empty\n : selected.length !== statuses.length\n ? SelectAllStatus.Indeterminate\n : SelectAllStatus.Checked;\n }),\n startWith(SelectAllStatus.Empty),\n tap(selectAllStatus => (this.selectAllStatus = selectAllStatus)),\n publishRef(),\n );\n this.hasEnabledOptions$ = combineLatest([\n this.allOptions$,\n this.filterString$,\n ]).pipe(\n map(\n ([allOptions]) =>\n !!allOptions.filter(({ visible, disabled }) => visible && !disabled)\n .length,\n ),\n );\n }\n\n override onShowOptions() {\n super.onShowOptions();\n this.inputRef.nativeElement.focus();\n }\n\n override onHideOptions() {\n super.onHideOptions();\n this.inputRef.nativeElement.value = '';\n this.renderer.removeStyle(this.inputRef.nativeElement, 'width');\n }\n\n override onInput(event: Event) {\n super.onInput(event);\n this.setInputWidth();\n this.tooltipRef.updatePosition();\n }\n\n onInputFocus() {\n this.focused = true;\n }\n\n onInputBlur() {\n this.focused = false;\n this.closeOption();\n }\n\n override onKeyDown(event: KeyboardEvent) {\n if (\n event.key === 'Backspace' &&\n this.filterString === '' &&\n this.model.length > 0 &&\n !this.hasDisabledOption // Disabled backspace when any of select options have disabled state.\n ) {\n this.removeValue(this.model[this.model.length - 1]);\n event.stopPropagation();\n event.preventDefault();\n } else if (event.key === 'Enter') {\n if (\n this.model\n .map(value => this.trackFn(value))\n .includes((event.target as HTMLInputElement).value)\n ) {\n return;\n }\n this.selectFocusedOption();\n event.stopPropagation();\n event.preventDefault();\n } else {\n super.onKeyDown(event);\n }\n }\n\n selectOption(option: OptionComponent<T>) {\n if (option.selected) {\n this.removeValue(option.value);\n } else {\n this.addValue(option.value);\n }\n const isCustom = !this.contentOptions.some(\n ({ value }) => value === option.value,\n );\n if (isCustom) {\n this.resetFocusedOption();\n }\n }\n\n addValue(value: T) {\n const values = this.model.concat(value);\n this.emitValue(values);\n if (this.onChange) {\n this.resetInput();\n requestAnimationFrame(() => {\n this.tooltipRef.updatePosition();\n });\n }\n }\n\n removeValue(value: T) {\n const values = this.model.filter(\n item => this.trackFn(item) !== this.trackFn(value),\n );\n this.emitValue(values);\n if (this.onChange) {\n this.resetInput();\n requestAnimationFrame(() => {\n this.tooltipRef.updatePosition();\n });\n }\n }\n\n clearValue(event: Event) {\n this.emitValue([]);\n event.stopPropagation();\n event.preventDefault();\n }\n\n onSelectAllClick() {\n if (this.disabled) {\n return;\n }\n const visibleOptionsValue = this.allOptions\n .filter(({ visible, disabled }) => visible && !disabled)\n .map(({ value }) => value);\n\n if (this.selectAllStatus === SelectAllStatus.Checked) {\n this.emitValue(\n this.model.filter(value => !this.includes(visibleOptionsValue, value)),\n );\n } else {\n this.emitValue(\n this.model.concat(visibleOptionsValue).reduce<T[]>((acc, curr) => {\n if (!this.includes(acc, curr)) {\n acc.push(curr);\n }\n return acc;\n }, []),\n );\n }\n }\n\n private includes(values: T[], value: T) {\n return values.some(v => this.trackFn(v) === this.trackFn(value));\n }\n\n protected override valueIn(v: T[]): T[] {\n this.resetInput();\n requestAnimationFrame(() => {\n this.tooltipRef.updatePosition();\n });\n return v || [];\n }\n\n private resetInput() {\n this.inputRef.nativeElement.value = '';\n this.setInputWidth();\n this.filterString = '';\n }\n\n // calculate input element width according to its value\n private setInputWidth() {\n const { value } = this.inputRef.nativeElement;\n if (!value.length) {\n this.inputValue = '';\n requestAnimationFrame(() => {\n this.renderer.removeStyle(this.inputRef.nativeElement, 'width');\n });\n } else {\n this.inputValue = value;\n requestAnimationFrame(() => {\n this.renderer.setStyle(\n this.inputRef.nativeElement,\n 'width',\n `${this.inputValueMirror.nativeElement.scrollWidth}px`,\n );\n });\n }\n }\n}\n","<div\n [class]=\"rootClass\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipShow)=\"onShowOptions()\"\n (auiTooltipHide)=\"onHideOptions()\"\n (mousedown)=\"$event.preventDefault()\"\n [style.max-height]=\"maxHeight\"\n>\n <div class=\"aui-multi-select__suffix\">\n <span class=\"aui-multi-select__icon-container\">\n <aui-icon\n class=\"aui-multi-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-multi-select__clear\"\n icon=\"close_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </div>\n <span\n [hidden]=\"model.length || inputRef.value.length\"\n [class]=\"bem.element('placeholder')\"\n >\n {{ placeholder }}\n </span>\n <aui-tag\n *ngFor=\"let option of selectedOptions$ | async; trackBy: trackByValue\"\n type=\"info\"\n [round]=\"true\"\n [border]=\"true\"\n [size]=\"tagSize\"\n [closeable]=\"!disabled && !option.disabled\"\n (close)=\"removeValue(option.value)\"\n [ngClass]=\"tagClassFn && tagClassFn(option.label, option.value)\"\n >\n <ng-container\n *ngIf=\"isTemplateRef(option.label); else label\"\n [ngTemplateOutlet]=\"option.label\"\n [ngTemplateOutletContext]=\"option.labelContext\"\n ></ng-container>\n <ng-template #label>\n {{ option.label }}\n </ng-template>\n </aui-tag>\n <input\n #inputRef\n autocomplete=\"off\"\n [readonly]=\"inputReadonly\"\n [class]=\"inputClass\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur()\"\n (keydown)=\"onKeyDown($event)\"\n (input)=\"onInput($event)\"\n />\n <span\n #inputValueMirror\n [class]=\"bem.element('mirror')\"\n >\n {{ inputValue }}\n </span>\n</div>\n\n<ng-template #templateRef>\n <div\n class=\"aui-option-container\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <ng-container\n *ngIf=\"\n allowSelectAll &&\n (hasEnabledOptions$ | async) &&\n ((hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString))\n \"\n >\n <div\n class=\"aui-option\"\n [class]=\"bemSelectAll.block(size$ | async)\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"!!(selectAllStatus$ | async)\"\n [class.isMulti]=\"true\"\n (click)=\"onSelectAllClick()\"\n >\n <i class=\"aui-option__pointer\">\n <aui-icon\n [icon]=\"\n (selectAllStatus$ | async) === 'checked'\n ? 'check_s'\n : 'square_s'\n \"\n [hidden]=\"!(selectAllStatus$ | async)\"\n ></aui-icon>\n </i>\n {{ 'select_all' | auiI18n }}\n </div>\n <hr class=\"divider\" />\n </ng-container>\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n QueryList,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { Observable, combineLatest, of, map, startWith, switchMap } from 'rxjs';\n\nimport { publishRef } from '../../utils';\nimport { OptionComponent } from '../option/option.component';\n\n@Component({\n selector: 'aui-option-group',\n templateUrl: './option-group.component.html',\n styleUrls: ['./option-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class OptionGroupComponent<T> implements AfterContentInit {\n @ContentChildren(forwardRef(() => OptionComponent))\n options: QueryList<OptionComponent<T>>;\n\n hasVisibleOption$: Observable<boolean>;\n\n ngAfterContentInit() {\n this.hasVisibleOption$ = this.options.changes.pipe(\n startWith(this.options),\n switchMap((options: QueryList<OptionComponent<T>>) =>\n options.length > 0\n ? combineLatest(options.map(node => node.visible$))\n : of([false]),\n ),\n map(visible => visible.some(Boolean)),\n publishRef(),\n );\n }\n}\n","<div\n [hidden]=\"!(hasVisibleOption$ | async)\"\n class=\"aui-option-group\"\n>\n <ng-content select=\"[auiOptionGroupTitle]\"></ng-content>\n <div class=\"aui-option-group__content\"><ng-content></ng-content></div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-option-placeholder',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class OptionPlaceholderComponent {}\n","import { AfterContentInit, Directive, Input, forwardRef } from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n ValidatorFn,\n} from '@angular/forms';\n\nimport { coerceAttrBoolean } from '../utils';\n\nimport { SelectComponent } from './select.component';\nimport { TrackFn } from './select.types';\n\n// @dynamic\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class AuiSelectValidators {\n static includes<T>(\n options: T[],\n trackFn: TrackFn<T> = val => val,\n ): ValidatorFn {\n return (control: AbstractControl) =>\n options.some(option => trackFn(option) === trackFn(control.value))\n ? null\n : {\n includes: control.value,\n };\n }\n}\n\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'aui-select[ngModel][includes],aui-select[formControl][includes],aui-select[formControlName][includes]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => IncludesDirective),\n multi: true,\n },\n ],\n})\nexport class IncludesDirective<T> implements Validator, AfterContentInit {\n @Input()\n get includes() {\n return this._includes;\n }\n\n set includes(val: boolean | '') {\n this._includes = coerceAttrBoolean(val);\n if (this.onValidatorChange) {\n this.onValidatorChange();\n }\n }\n\n @Input()\n trackFn: TrackFn<T>;\n\n private _includes = false;\n\n onValidatorChange: () => void;\n\n constructor(private readonly selectRef: SelectComponent<T>) {}\n\n ngAfterContentInit() {\n this.selectRef.contentOptions.changes.subscribe(() => {\n if (this.onValidatorChange) {\n this.onValidatorChange();\n }\n });\n }\n\n registerOnValidatorChange(fn: () => void) {\n this.onValidatorChange = fn;\n }\n\n validate(control: AbstractControl): ValidationErrors {\n if (!this.selectRef.contentOptions || !control.value) {\n return;\n }\n return !this.includes\n ? null\n : AuiSelectValidators.includes(\n this.selectRef.contentOptions\n .filter(option => !option.disabled)\n .map(option => option.value),\n this.trackFn,\n )(control);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { I18nModule } from '../i18n';\nimport { IconModule } from '../icon';\nimport { InputModule } from '../input';\nimport { TagModule } from '../tag';\nimport { TooltipModule } from '../tooltip';\n\nimport {\n OptionContentDirective,\n OptionGroupTitleDirective,\n} from './helper-directives';\nimport { MultiSelectComponent } from './multi-select/multi-select.component';\nimport { OptionGroupComponent } from './option-group/option-group.component';\nimport { OptionPlaceholderComponent } from './option-placeholder.component';\nimport { OptionComponent } from './option/option.component';\nimport { SelectComponent } from './select.component';\nimport { IncludesDirective } from './validators';\n\n@NgModule({\n imports: [\n CommonModule,\n InputModule,\n I18nModule,\n IconModule,\n TooltipModule,\n TagModule,\n ],\n declarations: [\n SelectComponent,\n OptionComponent,\n OptionGroupComponent,\n OptionPlaceholderComponent,\n MultiSelectComponent,\n IncludesDirective,\n OptionGroupTitleDirective,\n OptionContentDirective,\n ],\n exports: [\n SelectComponent,\n OptionComponent,\n OptionGroupComponent,\n OptionPlaceholderComponent,\n MultiSelectComponent,\n IncludesDirective,\n OptionGroupTitleDirective,\n OptionContentDirective,\n ],\n})\nexport class SelectModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonModule } from '../button';\nimport { IconModule } from '../icon';\nimport { InputModule } from '../input';\nimport { SelectModule } from '../select';\n\nimport { PAGINATOR_INTL_PROVIDER } from './paginator-intl';\nimport { PaginatorComponent } from './paginator.component';\n\n@NgModule({\n imports: [CommonModule, ButtonModule, IconModule, SelectModule, InputModule],\n declarations: [PaginatorComponent],\n exports: [PaginatorComponent],\n providers: [PAGINATOR_INTL_PROVIDER],\n})\nexport class PaginatorModule {}\n","import { ValueOf } from '../types';\n\nexport const RadioSize = {\n Medium: 'medium',\n Small: 'small',\n Mini: 'mini',\n} as const;\n\nexport type RadioSize = ValueOf<typeof RadioSize>;\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, Observable, distinctUntilChanged } from 'rxjs';\n\nimport { CommonFormControl } from '../../form';\nimport { RadioSize } from '../radio.types';\n\n@Component({\n selector: 'aui-radio-group',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n})\nexport class RadioGroupComponent extends CommonFormControl<any> {\n private readonly size$$ = new BehaviorSubject<RadioSize>(RadioSize.Medium);\n private readonly isPlain$$ = new BehaviorSubject<boolean>(true);\n private readonly name$$ = new BehaviorSubject<string>('');\n\n @Input()\n set size(val: RadioSize) {\n this.size$$.next(val);\n }\n\n @Input()\n direction: 'row' | 'column' = 'row';\n\n /**\n * @deprecated use `plain` instead\n */\n @Input()\n set isPlain(val: boolean) {\n this.plain = val;\n }\n\n @Input()\n set plain(val: boolean) {\n this.isPlain$$.next(val);\n }\n\n @Input()\n set name(val: string) {\n this.name$$.next(val);\n }\n\n size$: Observable<RadioSize> = this.size$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n isPlain$: Observable<boolean> = this.isPlain$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n name$: Observable<string> = this.name$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n onRadioChange(value: any) {\n this.emitValue(value);\n }\n\n onRadioBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n}\n","<div class=\"aui-radio-group aui-radio-group--{{ direction }}\">\n <ng-content></ng-content>\n</div>\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { BehaviorSubject, Subject, combineLatest, map, takeUntil } from 'rxjs';\n\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\n\nlet uniqueId = 0;\n\n@Directive()\nexport class BaseRadio implements OnInit, AfterViewInit, OnDestroy {\n id = `aui-radio-${uniqueId++}`;\n\n @Input()\n disabled: boolean | '' = false;\n\n @Input()\n get value() {\n return this._value;\n }\n\n set value(val) {\n this._value = val;\n this.value$$.next(val);\n }\n\n @ViewChild('elRef', { static: true })\n elRef: ElementRef;\n\n checked = false;\n name = '';\n\n protected _value: unknown;\n protected readonly value$$ = new BehaviorSubject(this.value);\n protected destroy$$ = new Subject<void>();\n\n constructor(\n protected radioGroup: RadioGroupComponent,\n protected focusMonitor: FocusMonitor,\n protected cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.radioGroup.name$.pipe(takeUntil(this.destroy$$)).subscribe(name => {\n this.name = name;\n this.cdr.markForCheck();\n });\n\n combineLatest([this.radioGroup.model$, this.value$$])\n .pipe(\n takeUntil(this.destroy$$),\n map(([groupValue, selfValue]) => groupValue === selfValue),\n )\n .subscribe(checked => {\n this.checked = checked;\n this.cdr.markForCheck();\n });\n }\n\n ngAfterViewInit() {\n this.focusMonitor.monitor(this.elRef.nativeElement, true);\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.focusMonitor.stopMonitoring(this.elRef.nativeElement);\n }\n\n onClick() {\n if (this.checked || this.disabled) {\n return;\n }\n this.radioGroup.onRadioChange(this.value);\n }\n\n onBlur() {\n this.radioGroup.onRadioBlur();\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { BaseRadio } from './base-radio';\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\n\n@Component({\n selector: 'aui-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class RadioComponent extends BaseRadio {\n bem: Bem = buildBem('aui-radio');\n\n get rootClass() {\n return `${this.bem.block()} ${this.disabled ? 'isDisabled' : ''} ${\n this.checked ? 'isChecked' : ''\n }`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n radioGroup: RadioGroupComponent,\n focusMonitor: FocusMonitor,\n cdr: ChangeDetectorRef,\n ) {\n super(radioGroup, focusMonitor, cdr);\n }\n}\n","<div\n #elRef\n [ngClass]=\"rootClass\"\n>\n <input\n [name]=\"name\"\n [id]=\"id\"\n class=\"aui-radio__input\"\n type=\"radio\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (click)=\"onClick()\"\n (blur)=\"onBlur()\"\n />\n <label\n class=\"aui-radio__label\"\n [for]=\"id\"\n >\n <i class=\"aui-radio__pointer\"></i>\n <span class=\"aui-radio__content\"><ng-content></ng-content></span>\n </label>\n</div>\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntil } from 'rxjs';\n\nimport { Bem, buildBem } from '../../utils';\nimport { BaseRadio } from '../base-radio';\nimport { RadioGroupComponent } from '../radio-group/radio-group.component';\nimport { RadioSize } from '../radio.types';\n\n@Component({\n selector: 'aui-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class RadioButtonComponent extends BaseRadio implements OnInit {\n bem: Bem = buildBem('aui-radio-button');\n\n size: RadioSize = RadioSize.Medium;\n isPlain = true;\n\n get rootClass() {\n return `${this.bem.block(this.size)} ${this.disabled ? 'isDisabled' : ''} ${\n this.checked ? 'isChecked' : ''\n } ${this.isPlain ? 'isPlain' : ''}`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n radioGroup: RadioGroupComponent,\n focusMonitor: FocusMonitor,\n cdr: ChangeDetectorRef,\n ) {\n super(radioGroup, focusMonitor, cdr);\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this.radioGroup.size$.pipe(takeUntil(this.destroy$$)).subscribe(size => {\n this.size = size;\n this.cdr.markForCheck();\n });\n this.radioGroup.isPlain$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(isPlain => {\n this.isPlain = isPlain;\n this.cdr.markForCheck();\n });\n }\n}\n","<div\n #elRef\n [ngClass]=\"rootClass\"\n>\n <input\n [name]=\"name\"\n [id]=\"id\"\n class=\"aui-radio-button__input\"\n type=\"radio\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (click)=\"onClick()\"\n (blur)=\"onBlur()\"\n />\n <aui-icon\n *ngIf=\"checked && isPlain\"\n class=\"aui-radio-button__pointer\"\n icon=\"check_triangle_s\"\n ></aui-icon>\n <label\n class=\"aui-radio-button__label\"\n [for]=\"id\"\n >\n <span class=\"aui-radio-button__content\"><ng-content></ng-content></span>\n </label>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\nimport { RadioComponent } from './radio.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [RadioComponent, RadioGroupComponent, RadioButtonComponent],\n exports: [RadioComponent, RadioGroupComponent, RadioButtonComponent],\n})\nexport class RadioModule {}\n","import { RowOutlet } from '@angular/cdk/table';\nimport {\n Directive,\n ElementRef,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\n@Directive({\n selector: 'ng-template[auiTablePlaceholderDef]',\n})\nexport class TablePlaceholderDefDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n\n@Directive({\n selector: '[auiTablePlaceholderOutlet]',\n})\nexport class TablePlaceholderOutletDirective implements RowOutlet {\n constructor(\n public viewContainer: ViewContainerRef,\n public elementRef: ElementRef,\n ) {}\n}\n","import {\n _DisposeViewRepeaterStrategy,\n _VIEW_REPEATER_STRATEGY,\n} from '@angular/cdk/collections';\nimport {\n CDK_TABLE,\n CDK_TABLE_TEMPLATE,\n CdkTable,\n _COALESCED_STYLE_SCHEDULER,\n _CoalescedStyleScheduler,\n} from '@angular/cdk/table';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n TablePlaceholderDefDirective,\n TablePlaceholderOutletDirective,\n} from './table-placeholder.directive';\n\n@Component({\n selector: 'aui-table',\n exportAs: 'auiTable',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['table.component.scss', 'table-scroll.scss'],\n template:\n CDK_TABLE_TEMPLATE +\n '<ng-container auiTablePlaceholderOutlet></ng-container>',\n host: {\n class: 'aui-table',\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: CDK_TABLE,\n useExisting: TableComponent,\n },\n {\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _DisposeViewRepeaterStrategy,\n },\n {\n provide: _COALESCED_STYLE_SCHEDULER,\n useClass: _CoalescedStyleScheduler,\n },\n ],\n})\nexport class TableComponent<T>\n extends CdkTable<T>\n implements AfterContentInit, OnDestroy\n{\n @Input()\n enableScrollWrapper: boolean;\n\n @ViewChild(TablePlaceholderOutletDirective, { static: true })\n _placeholderOutlet: TablePlaceholderOutletDirective;\n\n @ContentChild(TablePlaceholderDefDirective, { static: true })\n _placeholderDef: TablePlaceholderDefDirective;\n\n // FIXME: workaround to override because it will break constructor if it is field, but why MatTable works?\n // @ts-ignore\n protected get stickyCssClass() {\n return 'aui-table-sticky';\n }\n\n protected override set stickyCssClass(_: string) {\n // nothing\n }\n\n ngAfterContentInit() {\n this._createPlaceholder();\n }\n\n private _createPlaceholder() {\n const footerRow = this._placeholderDef;\n if (!this._placeholderDef) {\n return;\n }\n\n const container = this._placeholderOutlet.viewContainer;\n container.createEmbeddedView(footerRow.templateRef);\n }\n\n private _clearPlaceholder() {\n this._placeholderOutlet.viewContainer.clear();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this._clearPlaceholder();\n }\n}\n","import { CdkCellDef } from '@angular/cdk/table';\nimport { Directive } from '@angular/core';\n\n/**\n * Cell definition for the aui-table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\n@Directive({\n selector: '[auiTableCellDef]',\n providers: [\n {\n provide: CdkCellDef,\n useExisting: TableCellDefDirective,\n },\n ],\n})\nexport class TableCellDefDirective extends CdkCellDef {}\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { CdkCell } from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-table-cell[auiExpandButton]',\n template: `\n <button\n type=\"button\"\n class=\"aui-expand-button\"\n [class.isExpanded]=\"expand\"\n [disabled]=\"disabled\"\n (click)=\"expandChange.next(null)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class TableExpandButtonCellComponent extends CdkCell {\n @Input()\n expand = false;\n\n @Input()\n disabled = false;\n\n @Output()\n expandChange = new EventEmitter();\n\n get expanded() {\n return this.expand ? 'expanded' : null;\n }\n}\n@Component({\n selector: 'aui-table-cell[auiExpandPanel]',\n template: `\n <div\n *ngIf=\"expand\"\n class=\"aui-table__cell-expand-panel\"\n [@expand]=\"expanded\"\n >\n <div\n class=\"aui-table__cell-expand-panel-content\"\n [class.hasBackground]=\"background\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n animations: [\n trigger('expand', [\n state('*', style({ height: 0 })),\n state('expanded', style({ height: '*', 'margin-bottom': '15px' })),\n transition('* <=> expanded', [animate('0.1s ease-in-out')]),\n ]),\n ],\n})\nexport class TableExpandPanelCellComponent extends CdkCell {\n @Input()\n expand = false;\n\n @Input()\n background = true;\n\n get expanded() {\n return this.expand ? 'expanded' : null;\n }\n}\n","import { CdkCell, CdkColumnDef } from '@angular/cdk/table';\nimport { Directive, ElementRef, Input } from '@angular/core';\n\nimport { buildBem } from '../utils';\n\nconst bem = buildBem('aui-table');\n\n/** Cell template container that adds the right classes and role. */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'aui-table-cell',\n host: {\n class: 'aui-table__cell',\n role: 'gridcell',\n '[class.aui-table__cell--column]': 'direction === \"column\"',\n },\n})\nexport class TableCellDirective extends CdkCell {\n @Input()\n direction: 'row' | 'column' = 'row';\n\n constructor(columnDef: CdkColumnDef, elementRef: ElementRef<HTMLElement>) {\n super(columnDef, elementRef);\n elementRef.nativeElement.classList.add(\n bem.element(`column-${columnDef.cssClassFriendlyName}`),\n );\n }\n}\n","import { CdkColumnDef } from '@angular/cdk/table';\nimport { Directive, Input } from '@angular/core';\n\n/**\n * Column definition for the aui-table.\n * Defines a set of cells available for a table column.\n */\n@Directive({\n selector: '[auiTableColumnDef]',\n providers: [\n {\n provide: CdkColumnDef,\n useExisting: TableColumnDefDirective,\n },\n ],\n inputs: ['sticky'],\n})\nexport class TableColumnDefDirective extends CdkColumnDef {\n // Unique name for this column\n // Why it does not work in `inputs` property?\n @Input()\n set auiTableColumnDef(value: string) {\n this.name = value;\n }\n}\n","import { CdkHeaderCellDef } from '@angular/cdk/table';\nimport { Directive } from '@angular/core';\n\n/**\n * Header cell definition for the aui-table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\n@Directive({\n selector: '[auiTableHeaderCellDef]',\n providers: [\n {\n provide: CdkHeaderCellDef,\n useExisting: TableHeaderCellDefDirective,\n },\n ],\n})\nexport class TableHeaderCellDefDirective extends CdkHeaderCellDef {}\n","import { CdkColumnDef, CdkHeaderCell } from '@angular/cdk/table';\nimport { Directive, ElementRef } from '@angular/core';\n\nimport { buildBem } from '../utils';\n\nconst bem = buildBem('aui-table');\n\n/** Header cell template container that adds the right classes and role. */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'aui-table-header-cell',\n host: {\n class: 'aui-table__header-cell',\n role: 'columnheader',\n },\n})\nexport class TableHeaderCellDirective extends CdkHeaderCell {\n constructor(columnDef: CdkColumnDef, elementRef: ElementRef<HTMLElement>) {\n super(columnDef, elementRef);\n elementRef.nativeElement.classList.add(\n bem.element(`column-${columnDef.cssClassFriendlyName}`),\n );\n }\n}\n","import { CdkHeaderRowDef } from '@angular/cdk/table';\nimport { Directive, Input } from '@angular/core';\n\n/**\n * Header row definition for the aui-table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\n@Directive({\n selector: '[auiTableHeaderRowDef]',\n providers: [\n {\n provide: CdkHeaderRowDef,\n useExisting: TableHeaderRowDefDirective,\n },\n ],\n})\nexport class TableHeaderRowDefDirective extends CdkHeaderRowDef {\n @Input('auiTableHeaderRowDef')\n override columns: Iterable<string> = [];\n\n @Input('auiTableHeaderRowDefSticky')\n override sticky: boolean;\n}\n","import { CDK_ROW_TEMPLATE, CdkHeaderRow } from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n/** Header template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'aui-table-header-row',\n template: CDK_ROW_TEMPLATE,\n host: {\n class: 'aui-table__header-row',\n role: 'row',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'auiTableHeaderRow',\n preserveWhitespaces: false,\n})\nexport class TableHeaderRowComponent extends CdkHeaderRow {}\n","import { CdkRowDef } from '@angular/cdk/table';\nimport { Directive, Input } from '@angular/core';\n\n/**\n * Data row definition for the aui-table.\n * Captures the header row's template and other row properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\n@Directive({\n selector: '[auiTableRowDef]',\n providers: [\n {\n provide: CdkRowDef,\n useExisting: TableRowDefDirective,\n },\n ],\n})\nexport class TableRowDefDirective<T> extends CdkRowDef<T> {\n @Input('auiTableRowDefColumns')\n override columns: Iterable<string> = [];\n\n @Input()\n set auiTableRowDefWhen(v: (index: number, rowData: T) => boolean) {\n this.when = v;\n }\n}\n","import { CDK_ROW_TEMPLATE, CdkRow } from '@angular/cdk/table';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'aui-table-row',\n template: CDK_ROW_TEMPLATE,\n host: {\n class: 'aui-table__row',\n role: 'row',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'auiTableRow',\n preserveWhitespaces: false,\n})\nexport class TableRowComponent extends CdkRow implements AfterContentInit {\n @Input()\n @HostBinding('class.isDisabled')\n disabled = false;\n\n @HostBinding('class.hasPanel')\n hasPanel = false;\n\n constructor(private readonly elRef: ElementRef<HTMLElement>) {\n super();\n }\n\n ngAfterContentInit() {\n const panel = this.elRef.nativeElement.querySelector(\n 'aui-table-cell[auiExpandPanel]',\n );\n this.hasPanel = !!panel;\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { CdkScrollable, ScrollDispatcher } from '@angular/cdk/scrolling';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n Host,\n HostBinding,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport {\n Subject,\n fromEvent,\n merge,\n startWith,\n takeUntil,\n switchMap,\n NEVER,\n BehaviorSubject,\n} from 'rxjs';\n\nimport { coerceAttrBoolean, observeResizeOn } from '../utils';\n\nimport { TableComponent } from './table.component';\n\nconst CLASS_PREFIX = 'aui-table';\nconst SHADOW_CLASS = `${CLASS_PREFIX}__scroll-shadow`;\nconst HAS_SCROLL_CLASS = `${SHADOW_CLASS}--has-scroll`;\nconst SCROLLING_CLASS = `${SHADOW_CLASS}--scrolling`;\nconst SCROLL_BEFORE_END_CLASS = `${SHADOW_CLASS}--before-end`;\n\nconst HAS_TABLE_TOP_SHADOW = 'hasTableTopShadow';\nconst HAS_TABLE_BOTTOM_SHADOW = 'hasTableBottomShadow';\nconst HAS_TABLE_VERTICAL_SCROLL = 'hasTableVerticalScroll';\n\n@Directive({\n selector: '[auiTableScrollWrapper]',\n host: {\n class: 'aui-table__scroll-wrapper',\n },\n})\nexport class TableScrollWrapperDirective {\n @HostBinding('style.max-height')\n @Input()\n auiTableScrollWrapper = '100%';\n}\n\n@Directive({\n selector: '[auiTableScrollable]',\n providers: [\n { provide: CdkScrollable, useExisting: TableScrollableDirective },\n ],\n})\nexport class TableScrollableDirective\n extends CdkScrollable\n implements AfterViewInit, OnInit, OnDestroy\n{\n @Input('auiTableScrollable')\n set scrollable(scrollable: boolean | '') {\n this._scrollable = coerceAttrBoolean(scrollable);\n this.scrollable$$.next(this._scrollable);\n }\n\n get scrollable() {\n return this._scrollable;\n }\n\n private _scrollable = true;\n\n scrollable$$ = new BehaviorSubject<boolean>(this._scrollable);\n destroy$$ = new Subject<void>();\n\n constructor(\n private readonly el: ElementRef<HTMLElement>,\n scrollDispatcher: ScrollDispatcher,\n ngZone: NgZone,\n @Host() private readonly table: TableComponent<unknown>,\n @Optional() dir?: Directionality,\n ) {\n super(el, scrollDispatcher, ngZone, dir);\n }\n\n @HostBinding(`class.${SCROLL_BEFORE_END_CLASS}`)\n SCROLL_BEFORE_END_CLASS = true;\n\n @HostBinding(`class.${SHADOW_CLASS}`)\n SHADOW_CLASS = true;\n\n get containerEl() {\n return this.el.nativeElement;\n }\n\n override ngOnInit() {\n if (this.scrollable) {\n this.scrollDispatcher.register(this);\n }\n }\n\n ngAfterViewInit() {\n this.viewMutation();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n\n viewMutation() {\n this.scrollable$$\n .pipe(\n switchMap(scrollable => {\n if (scrollable) {\n this.scrollDispatcher.register(this);\n return merge(\n observeResizeOn(this.containerEl),\n fromEvent(this.containerEl, 'scroll'),\n ).pipe(startWith(null));\n }\n\n this.scrollDispatcher.deregister(this);\n return NEVER;\n }),\n )\n .pipe(takeUntil(this.destroy$$))\n .subscribe(() => {\n this.mutateVerticalScroll();\n this.mutateHorizontalScroll();\n });\n }\n\n mutateVerticalScroll() {\n const scrollDis =\n this.containerEl.scrollHeight - this.containerEl.offsetHeight;\n\n this.placeClassList(\n this.containerEl.classList,\n scrollDis > 0,\n HAS_TABLE_VERTICAL_SCROLL,\n );\n\n const scrollTop = this.containerEl.scrollTop;\n this.placeClassList(\n this.containerEl.classList,\n scrollTop > 0,\n HAS_TABLE_TOP_SHADOW,\n );\n this.placeClassList(\n this.containerEl.classList,\n scrollTop < scrollDis,\n HAS_TABLE_BOTTOM_SHADOW,\n );\n\n // 兼容屏幕缩放是 sticky多列的样式问题\n this.table.updateStickyColumnStyles();\n }\n\n mutateHorizontalScroll() {\n const scrollDis =\n this.containerEl.scrollWidth - this.containerEl.offsetWidth;\n\n this.placeClassList(\n this.containerEl.classList,\n scrollDis > 0,\n HAS_SCROLL_CLASS,\n );\n\n const scrollLeft = this.containerEl.scrollLeft;\n this.placeClassList(\n this.containerEl.classList,\n scrollLeft > 0,\n SCROLLING_CLASS,\n );\n this.placeClassList(\n this.containerEl.classList,\n scrollLeft < scrollDis,\n SCROLL_BEFORE_END_CLASS,\n );\n }\n\n placeClassList(\n classList: DOMTokenList,\n condition: boolean,\n className: string,\n ) {\n classList[condition ? 'add' : 'remove'](className);\n }\n}\n","import { CdkTableModule } from '@angular/cdk/table';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/icon.module';\n\nimport { TableCellDefDirective } from './table-cell-def.directive';\nimport {\n TableExpandButtonCellComponent,\n TableExpandPanelCellComponent,\n} from './table-cell.component';\nimport { TableCellDirective } from './table-cell.directive';\nimport { TableColumnDefDirective } from './table-column-def.directive';\nimport { TableHeaderCellDefDirective } from './table-header-cell-def.directive';\nimport { TableHeaderCellDirective } from './table-header-cell.directive';\nimport { TableHeaderRowDefDirective } from './table-header-row-def.directive';\nimport { TableHeaderRowComponent } from './table-header-row.component';\nimport {\n TablePlaceholderDefDirective,\n TablePlaceholderOutletDirective,\n} from './table-placeholder.directive';\nimport { TableRowDefDirective } from './table-row-def.directive';\nimport { TableRowComponent } from './table-row.component';\nimport {\n TableScrollableDirective,\n TableScrollWrapperDirective,\n} from './table-scroll.directive';\nimport { TableComponent } from './table.component';\n\n@NgModule({\n imports: [CommonModule, IconModule, CdkTableModule],\n declarations: [\n TableComponent,\n TableRowComponent,\n TableHeaderRowComponent,\n TableExpandButtonCellComponent,\n TableExpandPanelCellComponent,\n TableCellDirective,\n TableCellDefDirective,\n TableHeaderCellDirective,\n TableRowDefDirective,\n TableHeaderRowDefDirective,\n TableHeaderCellDefDirective,\n TableColumnDefDirective,\n TableScrollableDirective,\n TablePlaceholderOutletDirective,\n TablePlaceholderDefDirective,\n TableScrollWrapperDirective,\n ],\n exports: [\n TableComponent,\n TableRowComponent,\n TableHeaderRowComponent,\n TableExpandButtonCellComponent,\n TableExpandPanelCellComponent,\n TableCellDirective,\n TableCellDefDirective,\n TableHeaderCellDirective,\n TableRowDefDirective,\n TableHeaderRowDefDirective,\n TableHeaderCellDefDirective,\n TableColumnDefDirective,\n TableScrollableDirective,\n TablePlaceholderOutletDirective,\n TablePlaceholderDefDirective,\n TableScrollWrapperDirective,\n ],\n})\nexport class TableModule {}\n","import { ListRange } from '@angular/cdk/collections';\nimport {\n CdkVirtualScrollViewport,\n VirtualScrollStrategy,\n} from '@angular/cdk/scrolling';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject, distinctUntilChanged } from 'rxjs';\n\n@Injectable()\nexport class FixedSizeTableVirtualScrollStrategy\n implements VirtualScrollStrategy\n{\n private _rowHeight = 42;\n private _headerHeight = 42;\n private _bufferSize = 10;\n private readonly _indexChange = new Subject<number>();\n viewport: CdkVirtualScrollViewport;\n\n scrolledIndexChange = this._indexChange.pipe(distinctUntilChanged());\n stickyChange = new Subject<number>();\n\n renderedRangeStream = new BehaviorSubject<ListRange>({ start: 0, end: 0 });\n\n get dataLength(): number {\n return this._dataLength;\n }\n\n set dataLength(value: number) {\n if (value !== this._dataLength) {\n this._dataLength = value;\n this.onDataLengthChanged();\n }\n }\n\n private _dataLength = 0;\n\n attach(viewport: CdkVirtualScrollViewport): void {\n this.viewport = viewport;\n this.viewport.renderedRangeStream.subscribe(this.renderedRangeStream);\n this.onDataLengthChanged();\n }\n\n detach(): void {\n this._indexChange.complete();\n this.renderedRangeStream.complete();\n this.stickyChange.complete();\n }\n\n onContentScrolled(): void {\n this._updateContent();\n }\n\n onDataLengthChanged(): void {\n if (this.viewport) {\n this.viewport.setTotalContentSize(this._rowHeight * this.dataLength);\n }\n this._updateContent();\n }\n\n onContentRendered(): void {\n // no-op\n }\n\n onRenderedOffsetChanged(): void {\n // no-op\n }\n\n scrollToIndex(index: number, behavior: ScrollBehavior): void {\n if (!this.viewport || !this._rowHeight) {\n return;\n }\n this.viewport.scrollToOffset(\n (index - 1) * this._rowHeight + this._headerHeight,\n behavior,\n );\n }\n\n setConfig(rowHeight: number, headerHeight: number, bufferSize: number) {\n this._rowHeight = rowHeight;\n this._headerHeight = headerHeight;\n this._bufferSize = bufferSize;\n this.onDataLengthChanged();\n }\n\n private _updateContent() {\n if (!this.viewport) {\n return;\n }\n const newIndex =\n Math.round(\n (this.viewport.measureScrollOffset() - this._headerHeight) /\n this._rowHeight,\n ) + 1;\n const start = Math.max(0, newIndex - this._bufferSize);\n const end = Math.min(\n this._dataLength,\n newIndex +\n Math.ceil(this.viewport.getViewportSize() / this._rowHeight) +\n this._bufferSize,\n );\n const renderedOffset = start * this._rowHeight;\n this.viewport.setRenderedContentOffset(renderedOffset);\n this.viewport.setRenderedRange({ start, end });\n this.stickyChange.next(renderedOffset);\n this._indexChange.next(newIndex);\n }\n}\n","import { VIRTUAL_SCROLL_STRATEGY } from '@angular/cdk/scrolling';\nimport { CdkHeaderRowDef } from '@angular/cdk/table';\nimport {\n AfterContentInit,\n ContentChild,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n forwardRef,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Subject,\n combineLatest,\n filter,\n map,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport { TableComponent } from '../table';\n\nimport { FixedSizeTableVirtualScrollStrategy } from './fixed-size-table-virtual-scroll-strategy';\n\nexport function _tableVirtualScrollDirectiveStrategyFactory(\n tableDir: FixedSizeTableVirtualScrollDirective,\n) {\n return tableDir.scrollStrategy;\n}\n\nconst stickyHeaderSelector = '.aui-table__header-row.aui-table-sticky';\n\nconst defaults = {\n rowHeight: 42,\n headerHeight: 42,\n buffer: 10,\n};\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'aui-virtual-scroll-viewport[fixedSize]',\n exportAs: 'viewPort',\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _tableVirtualScrollDirectiveStrategyFactory,\n deps: [forwardRef(() => FixedSizeTableVirtualScrollDirective)],\n },\n ],\n})\nexport class FixedSizeTableVirtualScrollDirective<T = unknown>\n implements AfterContentInit, OnChanges, OnDestroy\n{\n private readonly onDestroy$ = new Subject();\n private readonly _dataSource$$ = new BehaviorSubject<T[]>([]);\n\n @Input()\n rowHeight: number = defaults.rowHeight;\n\n @Input()\n headerHeight: number = defaults.headerHeight;\n\n @Input()\n buffer: number = defaults.buffer;\n\n @Input()\n set dataSource(dataSource: T[]) {\n this._dataSource$$.next(dataSource);\n this.scrollStrategy.dataLength = dataSource?.length;\n }\n\n @ContentChild(TableComponent, { static: false })\n table: TableComponent<any>;\n\n scrollStrategy = new FixedSizeTableVirtualScrollStrategy();\n\n private stickyPositions: Map<HTMLElement, number>;\n\n ngAfterContentInit() {\n this.scrollStrategy.stickyChange\n .pipe(\n filter(() => this.isStickyEnabled()),\n tap(() => {\n if (!this.stickyPositions) {\n this.initStickyPositions();\n }\n }),\n takeUntil(this.onDestroy$),\n )\n .subscribe(stickyOffset => {\n this.setSticky(stickyOffset);\n });\n combineLatest([this.scrollStrategy.renderedRangeStream, this._dataSource$$])\n .pipe(\n map(([{ start, end }, dataSource]) =>\n typeof start !== 'number' || typeof end !== 'number'\n ? dataSource\n : dataSource?.slice(start, end),\n ),\n takeUntil(this.onDestroy$),\n )\n .subscribe(data => {\n this.table.dataSource = data;\n });\n }\n\n ngOnChanges({ rowHeight, headerHeight, buffer }: SimpleChanges) {\n if (rowHeight || headerHeight || buffer) {\n this.scrollStrategy.setConfig(\n this.rowHeight,\n this.headerHeight,\n this.buffer,\n );\n }\n }\n\n ngOnDestroy() {\n this.onDestroy$.next(null);\n this.onDestroy$.complete();\n }\n\n private isStickyEnabled(): boolean {\n return (\n !!this.scrollStrategy.viewport &&\n // @ts-expect-error\n (this.table._headerRowDefs as CdkHeaderRowDef[])\n .map(def => def.sticky)\n .reduce((prev, curr) => prev && curr, true)\n );\n }\n\n private initStickyPositions() {\n this.stickyPositions = new Map<HTMLElement, number>();\n this.scrollStrategy.viewport.elementRef.nativeElement\n .querySelectorAll(stickyHeaderSelector)\n .forEach(el => {\n const parent = el.parentElement;\n if (!this.stickyPositions.has(parent)) {\n this.stickyPositions.set(parent, parent.offsetTop);\n }\n });\n }\n\n private setSticky(offset: number) {\n this.scrollStrategy.viewport.elementRef.nativeElement\n .querySelectorAll<HTMLElement>(stickyHeaderSelector)\n .forEach(el => {\n const parent = el.parentElement;\n let baseOffset = 0;\n if (this.stickyPositions.has(parent)) {\n baseOffset = this.stickyPositions.get(parent);\n }\n el.style.top = `${baseOffset - offset}px`;\n });\n }\n}\n","import {\n CdkFixedSizeVirtualScroll,\n VIRTUAL_SCROLL_STRATEGY,\n _fixedSizeVirtualScrollStrategyFactory,\n} from '@angular/cdk/scrolling';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'aui-virtual-scroll-viewport[itemSize]',\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => FixedSizeVirtualScrollDirective)],\n },\n ],\n})\nexport class FixedSizeVirtualScrollDirective extends CdkFixedSizeVirtualScroll {}\n","import { DataSource } from '@angular/cdk/collections';\nimport {\n CdkVirtualForOf,\n CdkVirtualForOfContext,\n} from '@angular/cdk/scrolling';\nimport {\n Directive,\n Input,\n NgIterable,\n TemplateRef,\n TrackByFunction,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Directive({\n selector: '[auiVirtualFor][auiVirtualForOf]',\n})\nexport class VirtualForOfDirective<T> extends CdkVirtualForOf<T> {\n @Input()\n set auiVirtualForOf(\n value: DataSource<T> | Observable<T[]> | NgIterable<T> | null | undefined,\n ) {\n this.cdkVirtualForOf = value;\n }\n\n @Input()\n set auiVirtualForTrackBy(fn: TrackByFunction<T> | undefined) {\n this.cdkVirtualForTrackBy = fn;\n }\n\n @Input()\n set auiVirtualForTemplate(value: TemplateRef<CdkVirtualForOfContext<T>>) {\n this.cdkVirtualForTemplate = value;\n }\n\n @Input()\n set auiVirtualForTemplateCacheSize(size: number) {\n this.cdkVirtualForTemplateCacheSize = size;\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-virtual-scroll-viewport',\n templateUrl: 'virtual-scroll-viewport.component.html',\n styleUrls: ['virtual-scroll-viewport.component.scss'],\n host: {\n class: 'aui-virtual-scroll-viewport',\n '[class.aui-virtual-scroll-orientation-horizontal]':\n 'orientation === \"horizontal\"',\n '[class.aui-virtual-scroll-orientation-vertical]':\n 'orientation !== \"horizontal\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: CdkVirtualScrollViewport,\n useExisting: VirtualScrollViewportComponent,\n },\n ],\n})\nexport class VirtualScrollViewportComponent extends CdkVirtualScrollViewport {}\n","<!--\n Wrap the rendered content in an element that will be used to offset it based on the scroll\n position.\n-->\n<div\n #contentWrapper\n class=\"aui-virtual-scroll-content-wrapper\"\n>\n <ng-content></ng-content>\n</div>\n<!--\n Spacer used to force the scrolling container to the correct size for the *total* number of items\n so that the scrollbar captures the size of the entire data set.\n-->\n<div\n class=\"aui-virtual-scroll-spacer\"\n [style.width]=\"_totalContentWidth\"\n [style.height]=\"_totalContentHeight\"\n></div>\n","import { NgModule } from '@angular/core';\n\nimport { FixedSizeTableVirtualScrollDirective } from './fixed-size-table-virtual-scroll.directive';\nimport { FixedSizeVirtualScrollDirective } from './fixed-size-virtual-scroll.directive';\nimport { VirtualForOfDirective } from './virtual-for-of.directive';\nimport { VirtualScrollViewportComponent } from './virtual-scroll-viewport.component';\n\nconst EXPORTABLE_COMPONENTS = [VirtualScrollViewportComponent];\nconst EXPORTABLE_DIRECTIVES = [\n FixedSizeTableVirtualScrollDirective,\n FixedSizeVirtualScrollDirective,\n VirtualForOfDirective,\n];\n\nconst EXPORTABLE = [...EXPORTABLE_COMPONENTS, ...EXPORTABLE_DIRECTIVES];\n\n@NgModule({\n declarations: EXPORTABLE,\n exports: EXPORTABLE,\n})\nexport class ScrollingModule {}\n","/** @docs-private */\nexport function getSortDuplicateSortableIdError(id: string): Error {\n return new Error(`Cannot have two MatSortables with the same id (${id}).`);\n}\n\n/** @docs-private */\nexport function getSortHeaderNotContainedWithinSortError(): Error {\n return new Error(\n `MatSortHeader must be placed within a parent element with the MatSort directive.`,\n );\n}\n\n/** @docs-private */\nexport function getSortHeaderMissingIdError(): Error {\n return new Error(`MatSortHeader must be provided with a unique id.`);\n}\n\n/** @docs-private */\nexport function getSortInvalidDirectionError(direction: string): Error {\n return new Error(\n `${direction} is not a valid sort direction ('asc' or 'desc').`,\n );\n}\n","// Original code from material2\n\nimport {\n Directive,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n isDevMode,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport {\n getSortDuplicateSortableIdError,\n getSortHeaderMissingIdError,\n getSortInvalidDirectionError,\n} from './sort-errors';\nimport { Sort, SortDirection, Sortable } from './sort.types';\n\n@Directive({\n selector: '[auiSort]',\n exportAs: 'auiSort',\n})\nexport class SortDirective implements OnChanges, OnDestroy {\n sortables = new Map<string, Sortable>();\n\n readonly _stateChanges = new Subject<void>();\n\n @Input()\n active: string;\n\n @Input()\n start: 'asc' | 'desc' = 'asc';\n\n @Input()\n get direction(): SortDirection {\n return this._direction;\n }\n\n set direction(direction: SortDirection) {\n if (\n isDevMode() &&\n direction &&\n direction !== 'asc' &&\n direction !== 'desc'\n ) {\n throw getSortInvalidDirectionError(direction);\n }\n this._direction = direction;\n }\n\n private _direction: SortDirection = '';\n\n @Output()\n readonly sortChange: EventEmitter<Sort> = new EventEmitter<Sort>();\n\n register(sortable: Sortable): void {\n if (!sortable.id) {\n throw getSortHeaderMissingIdError();\n }\n\n if (this.sortables.has(sortable.id)) {\n throw getSortDuplicateSortableIdError(sortable.id);\n }\n\n this.sortables.set(sortable.id, sortable);\n }\n\n deregister(sortable: Sortable): void {\n this.sortables.delete(sortable.id);\n }\n\n sort(sortable: Sortable): void {\n if (this.active !== sortable.id) {\n this.active = sortable.id;\n this.direction = sortable.start ? sortable.start : this.start;\n } else {\n this.direction = this.direction === 'asc' ? 'desc' : 'asc';\n }\n\n this.sortChange.emit({\n active: this.active,\n direction: this.direction,\n });\n }\n\n ngOnChanges() {\n this._stateChanges.next();\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n}\n","import { CdkColumnDef } from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription, merge } from 'rxjs';\n\n/*\n * TODO: prevent ```public property '' of exported class has or is using name ''\n * from external module '' but cannot be named``` issue.\n */\nimport { Bem, buildBem } from '../utils';\n\nimport { getSortHeaderNotContainedWithinSortError } from './sort-errors';\nimport { SortDirective } from './sort.directive';\nimport { ArrowViewState, SortDirection, Sortable } from './sort.types';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[aui-sort-header]',\n templateUrl: 'sort-header.component.html',\n styleUrls: ['sort-header.component.scss'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SortHeaderComponent implements Sortable, OnInit, OnDestroy {\n private readonly _rerenderSubscription: Subscription;\n\n _viewState: ArrowViewState;\n\n arrowDirection: SortDirection = '';\n\n @Input('aui-sort-header')\n id: string;\n\n @Input()\n start: 'asc' | 'desc';\n\n bem: Bem = buildBem('aui-sort-header');\n\n constructor(\n cdr: ChangeDetectorRef,\n @Optional() public _sort: SortDirective,\n @Optional() public _cdkColumnRef: CdkColumnDef,\n ) {\n if (!_sort) {\n throw getSortHeaderNotContainedWithinSortError();\n }\n\n this._rerenderSubscription = merge(\n _sort.sortChange,\n _sort._stateChanges,\n ).subscribe(() => {\n if (this._isSorted()) {\n this._updateArrowDirection();\n }\n\n if (!this._isSorted() && this._viewState === 'active') {\n this._viewState = '';\n }\n\n cdr.markForCheck();\n });\n }\n\n ngOnInit() {\n if (!this.id && this._cdkColumnRef) {\n this.id = this._cdkColumnRef.name;\n }\n this._updateArrowDirection();\n this._viewState = this._isSorted() ? 'active' : '';\n this._sort.register(this);\n }\n\n ngOnDestroy() {\n this._sort.deregister(this);\n this._rerenderSubscription.unsubscribe();\n }\n\n _handleClick() {\n this._sort.sort(this);\n this._viewState = this._isSorted() ? 'active' : '';\n }\n\n _isSorted() {\n return (\n this._sort.active === this.id &&\n ['asc', 'desc'].includes(this._sort.direction)\n );\n }\n\n _updateArrowDirection() {\n this.arrowDirection = this._isSorted()\n ? this._sort.direction\n : this.start || this._sort.start;\n }\n}\n","<div\n [class]=\"bem.block({ active: _isSorted() })\"\n (click)=\"_handleClick()\"\n>\n <button\n [class]=\"bem.element('button')\"\n type=\"button\"\n >\n <ng-content></ng-content>\n </button>\n <div [class]=\"bem.element('indicator', arrowDirection)\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SortHeaderComponent } from './sort-header.component';\nimport { SortDirective } from './sort.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SortDirective, SortHeaderComponent],\n exports: [SortDirective, SortHeaderComponent],\n})\nexport class SortModule {}\n","import { ValueOf } from '../types';\n\nexport interface Status {\n type?: StatusType;\n class?: string;\n scale: number;\n [key: string]: unknown;\n}\n\nexport const StatusType = {\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Error: 'error',\n Info: 'info',\n Pending: 'pending',\n} as const;\n\nexport type StatusType = ValueOf<typeof StatusType>;\n\nexport const StatusBarSize = {\n Medium: 'medium',\n Small: 'small',\n} as const;\n\nexport type StatusBarSize = ValueOf<typeof StatusBarSize>;\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { Status, StatusBarSize } from './status-bar.types';\n\n@Component({\n selector: 'aui-status-bar',\n templateUrl: './status-bar.component.html',\n styleUrls: ['./status-bar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class StatusBarComponent {\n bem: Bem = buildBem('aui-status-bar');\n\n @Input()\n status: Status[] = [];\n\n @Input()\n size: StatusBarSize = StatusBarSize.Medium;\n\n @Input()\n template: TemplateRef<any>;\n\n @Output()\n statusClick = new EventEmitter<Status>();\n}\n","<div [class]=\"bem.block(size)\">\n <ng-container *ngFor=\"let item of status\">\n <div\n *ngIf=\"item.scale\"\n [ngClass]=\"[bem.element('chunk', item.type), item.class || '']\"\n [style.width]=\"item.scale * 100 + '%'\"\n (click)=\"statusClick.emit(item)\"\n [auiTooltip]=\"template\"\n [auiTooltipContext]=\"item\"\n [auiTooltipDisabled]=\"!template\"\n ></div>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TooltipModule } from '../tooltip';\n\nimport { StatusBarComponent } from './status-bar.component';\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [StatusBarComponent],\n exports: [StatusBarComponent],\n})\nexport class StatusBarModule {}\n","import { ValueOf } from '../types';\n\nexport const StepState = {\n Default: 'default',\n Done: 'done',\n Error: 'error',\n Pending: 'pending',\n} as const;\n\nexport type StepState = ValueOf<typeof StepState>;\n\nexport interface StepItem {\n label: string;\n description?: string;\n state?: StepState;\n optional?: boolean;\n /**\n * @deprecated 每个步骤不再需要单独控制。通过组件参数 selectable 统一控制\n */\n editable?: boolean;\n}\n\nexport type StepsOrientation = 'horizontal' | 'vertical';\n\nexport type StepsType = 'step' | 'progress';\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\n\nimport { StepItem, StepState, StepsOrientation, StepsType } from './types';\n\nconst StepDefaultIcon = {\n [StepState.Default]: 'number',\n [StepState.Done]: 'check_circle',\n [StepState.Error]: 'close_circle',\n [StepState.Pending]: 'sync_circle',\n};\n\nconst StepSelectedIcon = {\n [StepState.Default]: 'number',\n [StepState.Done]: 'check_circle_s',\n [StepState.Error]: 'close_circle_s',\n [StepState.Pending]: 'sync_circle_s',\n};\n\n@Component({\n selector: 'aui-steps',\n exportAs: 'auiSteps',\n templateUrl: './steps.component.html',\n styleUrls: ['./steps.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class StepsComponent implements OnInit, OnDestroy {\n _currentIndex: number;\n private _steps: StepItem[] = [];\n @Input()\n get steps() {\n return this._steps;\n }\n\n set steps(val: StepItem[]) {\n this._steps = val;\n this.stepsChange$$.next(val);\n }\n\n /**\n * @deprecated type 为 step 时一般在使用上下文中控制是否可以进行下一步;type 为 progress 时强制按顺序执行\n */\n @Input()\n linear = false;\n\n @Input()\n get currentIndex() {\n return this._currentIndex;\n }\n\n set currentIndex(index: number) {\n this.currentIndexChange$$.next(index);\n }\n\n @Input()\n orientation: StepsOrientation = 'horizontal';\n\n @Input()\n type: StepsType = 'step';\n\n @Input()\n selectable = false;\n\n @Output()\n currentIndexChange = new EventEmitter<number>();\n\n @Output()\n selectedIndexChange = new EventEmitter<number>();\n\n currentIndexChange$$ = new BehaviorSubject<number>(0);\n stepsChange$$ = new BehaviorSubject<StepItem[]>([]);\n\n selectedIndex: number;\n\n private readonly destroy$$ = new Subject<void>();\n\n ngOnInit() {\n this.currentIndexChange$$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(index => {\n if (this.type === 'step') {\n this.setCurrentIndex(index);\n }\n });\n this.stepsChange$$.pipe(takeUntil(this.destroy$$)).subscribe(steps => {\n if (this.type === 'progress') {\n this.getProgressCurrentIndex(steps);\n }\n });\n }\n\n private setCurrentIndex(index: number) {\n if (this.linear) {\n if (this.steps?.length) {\n const ret = Math.min(Math.max(0, index), this.steps.length - 1);\n const reversedPrevSteps = this.steps.slice(0, ret).reverse();\n const doneIndex = reversedPrevSteps.findIndex(\n step => step.state === StepState.Done || step.optional,\n );\n const lastDoneStepIndex =\n doneIndex > -1 ? reversedPrevSteps.length - doneIndex : 0;\n this._currentIndex = this.selectedIndex = Math.min(\n lastDoneStepIndex,\n ret,\n );\n }\n } else {\n this._currentIndex = this.selectedIndex = index;\n }\n }\n\n private getProgressCurrentIndex(steps: StepItem[]) {\n if (!steps?.length) {\n if (this._currentIndex !== 0) {\n this.currentIndexChange.emit(0);\n }\n this._currentIndex = 0;\n } else {\n const reversedSteps = this.steps.slice(0).reverse();\n const doneStepIndex = reversedSteps.findIndex(\n step => step.state === StepState.Done,\n );\n const lastDoneStepIndex =\n doneStepIndex > -1 ? reversedSteps.length - doneStepIndex : 0;\n const newIndex = Math.min(lastDoneStepIndex, steps.length - 1);\n if (this._currentIndex !== newIndex) {\n this.currentIndexChange.emit(newIndex);\n }\n this._currentIndex =\n this._currentIndex === this.selectedIndex\n ? (this.selectedIndex = newIndex)\n : newIndex;\n }\n }\n\n get isVertical() {\n return this.orientation === 'vertical';\n }\n\n get isProgress() {\n return this.type === 'progress';\n }\n\n getIcon(i: number, state?: StepState): string {\n if (!state) {\n return StepDefaultIcon.default;\n }\n return this.getActiveIndex() === i\n ? StepSelectedIcon[state]\n : StepDefaultIcon[state];\n }\n\n select(i: number) {\n if (this.isSelectable(i)) {\n if (this.isProgress) {\n this.selectedIndexChange.emit(i);\n this.selectedIndex = i;\n } else {\n this.currentIndexChange.emit(i);\n this._currentIndex = i;\n this.selectedIndex = i;\n }\n }\n }\n\n isSelectable(i: number) {\n const currentStep = this.steps[this._currentIndex];\n if (!this.selectable || this.selectedIndex === i) {\n return false;\n }\n const isLinear = this.isProgress ? true : this.linear;\n if (\n isLinear &&\n !currentStep.optional &&\n ((currentStep.state === StepState.Done && i > this._currentIndex + 1) ||\n (currentStep.state !== StepState.Done && i > this._currentIndex))\n ) {\n return false;\n }\n // eslint-disable-next-line sonarjs/prefer-single-boolean-return\n if (i < this._currentIndex && !this.selectable) {\n return false;\n }\n return true;\n }\n\n getActiveIndex() {\n return this.selectedIndex !== undefined\n ? this.selectedIndex\n : this._currentIndex;\n }\n\n isLastActive(i: number, steps: StepItem[]) {\n const firstDefaultIndex = steps.findIndex(\n step => !step.state || step.state === StepState.Default,\n );\n return i === this.selectedIndex\n ? true\n : firstDefaultIndex === 0\n ? false\n : firstDefaultIndex === i;\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n }\n}\n","<div\n class=\"aui-steps aui-steps--{{ orientation || 'horizontal' }} aui-steps--{{\n type || 'step'\n }}\"\n>\n <ng-container *ngFor=\"let step of steps; let i = index; let isLast = last\">\n <div\n class=\"aui-step\"\n (click)=\"select(i)\"\n [class.isLastActive]=\"isLastActive(i, steps)\"\n [class.clickable]=\"isSelectable(i)\"\n >\n <div class=\"aui-step__indicator\">\n <ng-container *ngIf=\"isProgress\">\n <ng-container [ngSwitch]=\"getIcon(i, step.state)\">\n <span\n class=\"aui-step__indicator-number aui-step__indicator-number--{{\n step.state\n }}\"\n *ngSwitchCase=\"'number'\"\n [class.selected]=\"getActiveIndex() === i\"\n >\n {{ i + 1 }}\n </span>\n <aui-icon\n class=\"aui-step__indicator-icon aui-step__indicator-icon--{{\n step.state\n }}\"\n *ngSwitchDefault\n [class.selected]=\"getActiveIndex() === i\"\n [icon]=\"getIcon(i, step.state)\"\n ></aui-icon>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!isProgress\">\n <span\n class=\"aui-step__indicator-number\"\n [class.selected]=\"_currentIndex === i\"\n *ngIf=\"i >= _currentIndex\"\n >\n {{ i + 1 }}\n </span>\n <aui-icon\n class=\"aui-step__indicator-icon aui-step__indicator-icon--done\"\n [class.selected]=\"_currentIndex === i\"\n *ngIf=\"i < _currentIndex\"\n [icon]=\"getIcon(i, 'done')\"\n ></aui-icon>\n </ng-container>\n <div\n *ngIf=\"!isLast && isVertical\"\n class=\"aui-steps__vertical-line aui-steps__vertical-line--{{\n step.state\n }}\"\n ></div>\n </div>\n <div\n class=\"aui-step__info aui-step__info--{{\n isProgress\n ? step.state || 'default'\n : i < _currentIndex\n ? 'done'\n : 'default'\n }}\"\n [class.aui-step__info--selected]=\"getActiveIndex() === i\"\n >\n <div class=\"aui-step__name\">\n {{ step.label }}\n </div>\n <div\n class=\"aui-step__description\"\n *ngIf=\"step.description\"\n >\n {{ step.description }}\n </div>\n </div>\n </div>\n <div\n *ngIf=\"!isLast && !isVertical\"\n class=\"aui-steps__horizontal-line\"\n ></div>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { StepsComponent } from './steps.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [StepsComponent],\n exports: [StepsComponent],\n})\nexport class StepsModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { CommonFormControl } from '../form';\nimport { Bem, buildBem } from '../utils';\n\nconst prefix = 'aui-switch';\n\n@Component({\n selector: 'aui-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n },\n ],\n})\nexport class SwitchComponent extends CommonFormControl<boolean> {\n bem: Bem = buildBem(prefix);\n\n @Input()\n loading = false;\n\n onSwitch() {\n if (this.disabled) {\n return;\n }\n this.emitValue(!this.model);\n }\n\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n}\n","<div\n class=\"aui-switch\"\n [class.isLoading]=\"loading\"\n [class.isDisabled]=\"disabled\"\n [class.isChecked]=\"model\"\n (click)=\"onSwitch()\"\n>\n <input\n #input\n [ngClass]=\"bem.element('input')\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"model\"\n (blur)=\"onBlur()\"\n />\n <span [ngClass]=\"bem.element('bar')\">\n <i [ngClass]=\"bem.element('dot')\"></i>\n </span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SwitchComponent } from './switch.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SwitchComponent],\n exports: [SwitchComponent],\n})\nexport class SwitchModule {}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {\n EMPTY,\n Subject,\n Subscription,\n animationFrameScheduler,\n of,\n debounceTime,\n endWith,\n map,\n observeOn,\n repeat,\n startWith,\n switchMap,\n takeUntil,\n takeWhile,\n tap,\n} from 'rxjs';\n\nimport { TocContentDirective } from './toc-content.directive';\n\n@Directive({\n selector: '[auiTocContainer]',\n exportAs: 'auiTocContainer',\n})\nexport class TocContainerDirective implements AfterContentInit, OnDestroy {\n @Output()\n activedChange = new EventEmitter<string>();\n\n private _contents: TocContentDirective[] = [];\n private readonly _scrollTop$ = new Subject<number>();\n private readonly _scrollTo$ = new Subject<string>();\n private readonly _onDestroy$ = new Subject<void>();\n private readonly _subs: Subscription[] = [];\n private _nativeElement: HTMLElement;\n\n get scrollTop(): number {\n return this._nativeElement.scrollTop || 0;\n }\n\n set scrollTop(value: number) {\n this._nativeElement.scrollTop = value;\n }\n\n get isScrollEnd() {\n return (\n this._nativeElement.scrollHeight - this._nativeElement.scrollTop ===\n this._nativeElement.clientHeight\n );\n }\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private readonly cdr: ChangeDetectorRef,\n ) {\n this._nativeElement = elementRef.nativeElement;\n }\n\n getOffsetTop(element: HTMLElement): number {\n if (element.parentElement === this._nativeElement) {\n return element.offsetTop;\n }\n return element.offsetTop + this.getOffsetTop(element.parentElement);\n }\n\n private getMinContent(scrollTop: number) {\n return (minContent: TocContentDirective, content: TocContentDirective) => {\n if (\n Math.abs(scrollTop - this.getOffsetTop(content.nativeElement)) <\n Math.abs(scrollTop - this.getOffsetTop(minContent.nativeElement))\n ) {\n minContent = content;\n }\n return minContent;\n };\n }\n\n private getMaxContent(\n maxContent: TocContentDirective,\n content: TocContentDirective,\n ) {\n if (\n this.getOffsetTop(content.nativeElement) >\n this.getOffsetTop(maxContent.nativeElement)\n ) {\n maxContent = content;\n }\n return maxContent;\n }\n\n @HostListener('scroll')\n onScroll() {\n this._scrollTop$.next(this.scrollTop);\n }\n\n ngAfterContentInit() {\n const actived$ = this._scrollTop$\n .pipe(\n startWith(this.scrollTop),\n debounceTime(200),\n map(scrollTop =>\n this._contents.reduce(\n this.isScrollEnd\n ? this.getMaxContent.bind(this)\n : this.getMinContent(scrollTop),\n ),\n ),\n map(actived => actived.auiTocContent),\n )\n .pipe(\n tap(actived => {\n this._contents.forEach(content => {\n content.active = actived === content.auiTocContent;\n });\n this.cdr.detectChanges();\n }),\n );\n\n const scrollTween$ = this._scrollTo$.pipe(\n switchMap(name => {\n const target = this._contents.find(\n content => content.auiTocContent === name,\n );\n\n if (!target) {\n return EMPTY;\n }\n const destination = this.getOffsetTop(target.nativeElement);\n\n const start = performance.now();\n const source = this.scrollTop;\n const duration = 500;\n\n return of(0).pipe(\n observeOn(animationFrameScheduler),\n repeat(),\n map(() => (performance.now() - start) / duration),\n takeWhile(t => t < 1),\n endWith(1),\n map(t => t * t * t),\n map(t => source * (1 - t) + destination * t),\n );\n }),\n takeUntil(this._onDestroy$),\n );\n\n this._subs.push(\n actived$.subscribe(this.activedChange),\n scrollTween$.subscribe(tweenValue => {\n this.scrollTop = tweenValue;\n }),\n );\n }\n\n ngOnDestroy() {\n this._subs.forEach(sub => sub.unsubscribe());\n this._onDestroy$.next();\n }\n\n scrollTo(content: string | string[]) {\n if (Array.isArray(content)) {\n this._scrollTo$.next(content[0]);\n } else {\n this._scrollTo$.next(content);\n }\n }\n\n registerContent(tocContent: TocContentDirective) {\n this._contents = [...this._contents, tocContent];\n }\n\n deregisterContent(tocContent: TocContentDirective) {\n this._contents = this._contents.filter(\n content => content.auiTocContent !== tocContent.auiTocContent,\n );\n }\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\n\nimport { TocContainerDirective } from './toc-container.directive';\n\n@Directive({\n selector: '[auiTocContent]',\n})\nexport class TocContentDirective implements OnInit, OnDestroy {\n @HostBinding('class.isActive')\n active: boolean;\n\n @Input()\n auiTocContent: string;\n\n nativeElement: HTMLElement;\n\n constructor(\n elemRef: ElementRef<HTMLElement>,\n @Optional() private readonly containerDirective: TocContainerDirective,\n ) {\n this.nativeElement = elemRef.nativeElement;\n }\n\n ngOnInit(): void {\n if (this.containerDirective) {\n this.containerDirective.registerContent(this);\n }\n }\n\n ngOnDestroy(): void {\n if (this.containerDirective) {\n this.containerDirective.deregisterContent(this);\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { TocContainerDirective } from './toc-container.directive';\n\n@Directive({\n selector: '[auiTocLink]',\n})\nexport class TocLinkDirective implements OnInit, OnDestroy {\n @HostBinding('class.isActive')\n active: boolean;\n\n @Input()\n for: TocContainerDirective;\n\n @Input()\n auiTocLink: string | string[];\n\n private readonly _subs: Subscription[] = [];\n\n @HostListener('click')\n onClick() {\n this.for.scrollTo(this.auiTocLink);\n }\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n ngOnInit() {\n if (!this.for || !this.auiTocLink) {\n return;\n }\n this._subs.push(\n this.for.activedChange.subscribe((actived: string) => {\n this.active = Array.isArray(this.auiTocLink)\n ? this.auiTocLink.includes(actived)\n : actived === this.auiTocLink;\n this.cdr.detectChanges();\n }),\n );\n }\n\n ngOnDestroy() {\n this._subs.forEach(sub => sub.unsubscribe());\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TocContainerDirective } from './toc-container.directive';\nimport { TocContentDirective } from './toc-content.directive';\nimport { TocLinkDirective } from './toc-link.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TocContentDirective, TocContainerDirective, TocLinkDirective],\n exports: [TocContentDirective, TocContainerDirective, TocLinkDirective],\n})\nexport class TableOfContentsModule {}\n","import {\n CdkPortal,\n CdkPortalOutlet,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\nimport { coerceAttrBoolean } from '../utils';\n\n@Component({\n selector: 'aui-tab-body',\n templateUrl: './tab-body.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class TabBodyComponent implements OnDestroy {\n private _content: TemplatePortal;\n\n content$ = new BehaviorSubject<TemplatePortal>(null);\n\n /** The portal host inside of this container into which the tab body content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true })\n _portalOutlet: CdkPortalOutlet;\n\n /** The tab body content to display. */\n @Input()\n get content() {\n return this._content;\n }\n\n set content(content: TemplatePortal) {\n if (this._content !== content) {\n this.content$.next(content);\n }\n this._content = content;\n }\n\n ngOnDestroy() {\n this.content$.complete();\n }\n}\n\n/** Used to flag tab labels for use with the portal directive */\n@Directive({\n selector: '[auiTabLabel]',\n})\nexport class TabLabelDirective extends CdkPortal {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n templateRef: TemplateRef<any>,\n viewContainerRef: ViewContainerRef,\n ) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * Lazy load the embedded template for a tab content.\n */\n@Directive({\n selector: '[auiTabContent]',\n})\nexport class TabContentDirective {\n constructor(public template: TemplateRef<any>) {}\n}\n\n/** Used to project additional template from host to the tab header. */\n@Directive({\n selector: '[auiTabHeaderAddon]',\n})\nexport class TabHeaderAddonDirective extends CdkPortal {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n templateRef: TemplateRef<any>,\n viewContainerRef: ViewContainerRef,\n ) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * Used in the `aui-tab-group` view to display tab labels.\n */\n@Directive({\n selector: '[auiTabLabelWrapper]',\n host: {\n '[class.aui-tab-label]': 'true',\n '[class.aui-tab-label--disabled]': '!!disabled',\n },\n})\nexport class TabLabelWrapperDirective {\n private _disabled: boolean;\n\n /** Whether or not the tab is disabled */\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: boolean | '') {\n this._disabled = coerceAttrBoolean(value);\n }\n\n getOffsetLeft(): number {\n return this.elementRef.nativeElement.offsetLeft;\n }\n\n getOffsetWidth(): number {\n return this.elementRef.nativeElement.offsetWidth;\n }\n\n /** Sets focus on the wrapper element */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n}\n\n@Directive({\n selector: '[auiTabTitle]',\n})\nexport class TabTitleDirective extends CdkPortal {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n templateRef: TemplateRef<any>,\n viewContainerRef: ViewContainerRef,\n ) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * The portal host directive for the contents of the tab.\n */\n@Directive({\n selector: '[auiTabBodyHost]',\n})\nexport class TabBodyPortalDirective\n extends CdkPortalOutlet\n implements OnInit, OnDestroy\n{\n private _hostSubscription = Subscription.EMPTY;\n\n constructor(\n componentFactoryResolver: ComponentFactoryResolver,\n viewContainerRef: ViewContainerRef,\n private readonly _host: TabBodyComponent,\n ) {\n super(componentFactoryResolver, viewContainerRef);\n }\n\n /** Set initial visibility or set up subscription for changing visibility. */\n override ngOnInit(): void {\n super.ngOnInit();\n this._hostSubscription = this._host.content$.subscribe(content => {\n if (this.hasAttached) {\n this.detach();\n }\n this.attach(content);\n });\n }\n\n override ngOnDestroy() {\n this._hostSubscription.unsubscribe();\n }\n}\n","<div class=\"aui-tab-body\">\n <div\n #content\n class=\"aui-tab-body__content\"\n >\n <ng-template auiTabBodyHost></ng-template>\n </div>\n</div>\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n combineLatest,\n distinctUntilChanged,\n map,\n} from 'rxjs';\n\n@Injectable()\nexport class TabContextService {\n private readonly active$$ = new BehaviorSubject(false);\n\n /**\n * Whether the tab is currently active.\n */\n get isActive() {\n return this.active$$.value;\n }\n\n set isActive(isActive: boolean) {\n this.active$$.next(isActive);\n }\n\n readonly active$: Observable<boolean>;\n\n constructor(\n @Optional()\n @SkipSelf()\n readonly _parent: TabContextService,\n ) {\n this.active$ = (\n _parent\n ? combineLatest([_parent.active$, this.active$$]).pipe(\n map(([a, b]) => a && b),\n )\n : this.active$$\n ).pipe(distinctUntilChanged());\n }\n}\n","/* eslint-disable no-prototype-builtins */\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { coerceAttrBoolean } from '../utils';\n\nimport { TabContentDirective, TabLabelDirective } from './tab-body.component';\nimport { TabContextService } from './tab-context.service';\n\n@Component({\n selector: 'aui-tab',\n exportAs: 'auiTab',\n templateUrl: './tab.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n providers: [TabContextService],\n})\nexport class TabComponent implements AfterContentInit, OnDestroy, OnChanges {\n @Input()\n name: string;\n\n /** Plain text label for the tab, used when there is no template label. */\n @Input('label')\n textLabel = '';\n\n /** Whether or not to show the close button in the header */\n @Input()\n closeable = false;\n\n /** Whether or not the tab is disabled */\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: boolean | '') {\n this._disabled = coerceAttrBoolean(value);\n }\n\n @Output()\n close = new EventEmitter<void>();\n\n /** Content for the tab label given by `<ng-template [auiTabLabel]>`. */\n @ContentChild(TabLabelDirective, { static: false })\n templateLabel: TabLabelDirective;\n\n /**\n * Template provided in the tab content that will be used if present, used to enable lazy-loading\n */\n @ContentChild(TabContentDirective, { read: TemplateRef, static: false })\n _explicitContent: TemplateRef<any>;\n\n /** Template inside the AuiTab view that contains an `<ng-content>`. */\n @ViewChild(TemplateRef, { static: true })\n _implicitContent: TemplateRef<any>;\n\n get content(): TemplatePortal | null {\n return this._contentPortal;\n }\n\n /**\n * The relatively indexed position where 0 represents the center, negative is left, and positive\n * represents the right.\n */\n position: number | null = null;\n\n /**\n * The initial relatively index origin of the tab if it was created and selected after there\n * was already a selected tab. Provides context of what position the tab should originate from.\n */\n origin: number | null = null;\n\n /** Emits whenever the internal state of the tab changes. */\n readonly _stateChanges = new Subject<void>();\n\n /** Portal that will be the hosted content of the tab */\n private _contentPortal: TemplatePortal | null = null;\n\n private _disabled = false;\n\n constructor(\n private readonly _viewContainerRef: ViewContainerRef,\n public readonly tabContext: TabContextService,\n ) {}\n\n ngAfterContentInit(): void {\n this._contentPortal = new TemplatePortal(\n this._explicitContent || this._implicitContent,\n this._viewContainerRef,\n );\n }\n\n ngOnDestroy(): void {\n this._stateChanges.complete();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.hasOwnProperty('textLabel') ||\n changes.hasOwnProperty('disabled') ||\n changes.hasOwnProperty('closeable')\n ) {\n this._stateChanges.next();\n }\n }\n}\n","<!--\n Create a template for the content of the <aui-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group.\n-->\n<ng-template><ng-content></ng-content></ng-template>\n","import { ValueOf } from '../types';\n\nexport const TabSize = {\n /** 卡片级尺寸 */\n Large: 'large',\n\n /** 页面级尺寸 */\n Medium: 'medium',\n\n /** 小尺寸 */\n Small: 'small',\n} as const;\n\nexport type TabSize = ValueOf<typeof TabSize>;\n\nexport const TabType = {\n Line: 'line',\n Card: 'card',\n} as const;\n\nexport type TabType = ValueOf<typeof TabType>;\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n NgZone,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { TabType } from './tabs.types';\n\n@Component({\n selector: 'aui-tab-header-active-indicator',\n templateUrl: './tab-header-active-indicator.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class TabHeaderActiveIndicatorComponent {\n @Input()\n type: TabType = TabType.Line;\n\n bem: Bem = buildBem('aui-tab-header-active-indicator');\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n private readonly _ngZone: NgZone,\n ) {}\n\n /**\n * Calculates the styles from the provided element in order to align the indicator to that element.\n * Shows the indicator if previously set as hidden.\n * @param element\n */\n alignToElement(element: HTMLElement) {\n if (typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => this._setStyles(element));\n });\n } else {\n this._setStyles(element);\n }\n }\n\n /**\n * Sets the proper styles to the element.\n * @param element\n */\n private _setStyles(element: HTMLElement) {\n const positions = this._getElementPosition(element);\n const nativeEl = this._elementRef.nativeElement;\n nativeEl.style.left = positions.left;\n nativeEl.style.width = positions.width;\n }\n\n private _getElementPosition(element: HTMLElement) {\n return {\n left: element ? (element.offsetLeft || 0) + 'px' : '0',\n width: element ? (element.offsetWidth || 0) + 'px' : '0',\n };\n }\n}\n","<div [ngClass]=\"bem.block(type)\"></div>\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { Bem, buildBem, coerceNumber } from '../utils';\n\nimport {\n TabHeaderAddonDirective,\n TabLabelWrapperDirective,\n TabTitleDirective,\n} from './tab-body.component';\nimport { TabHeaderActiveIndicatorComponent } from './tab-header-active-indicator.component';\nimport { TabSize, TabType } from './tabs.types';\n\n/**\n * The directions that scrolling can go in when the header's tabs exceed the header width. 'After'\n * will scroll the header towards the end of the tabs list and 'before' will scroll towards the\n * beginning of the list.\n */\nexport type ScrollDirection = 'after' | 'before';\n/**\n * The distance in pixels that will be overshot when scrolling a tab label into view. This helps\n * provide a small affordance to the label next to it.\n */\nconst EXAGGERATED_OVERSCROLL = 60;\n\n@Component({\n selector: 'aui-tab-header',\n templateUrl: './tab-header.component.html',\n styleUrls: ['./tab-header.component.scss'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabHeaderComponent\n implements OnDestroy, AfterContentChecked, AfterContentInit\n{\n bem: Bem = buildBem('aui-tab-header');\n\n _showAddon = false;\n\n /** Whether the controls for pagination should be displayed */\n _showPaginationControls = false;\n\n /** Whether the tab list can be scrolled more towards the end of the tab label list. */\n _disableScrollAfter = true;\n\n /** Whether the tab list can be scrolled more towards the beginning of the tab label list. */\n _disableScrollBefore = true;\n\n /** Whether the scroll distance has changed and should be applied after the view is checked. */\n private _scrollDistanceChanged: boolean;\n\n /** Whether the header should scroll to the selected index after the view has been checked. */\n private _selectedIndexChanged = false;\n\n /** The distance in pixels that the tab labels should be translated to the left. */\n private _scrollDistance = 0;\n\n private _selectedIndex = 0;\n\n /** Emits when the component is destroyed. */\n private readonly _destroyed = new Subject<void>();\n\n /** Used to manage focus between the tabs. */\n private _keyManager: FocusKeyManager<TabLabelWrapperDirective>;\n\n /**\n * The number of tab labels that are displayed on the header. When this changes, the header\n * should re-evaluate the scroll position.\n */\n private _tabLabelCount: number;\n\n @Input()\n type: TabType = TabType.Line;\n\n @Input()\n size: TabSize = TabSize.Medium;\n\n /** The index of the active tab. */\n @Input()\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n set selectedIndex(value: number) {\n value = coerceNumber(value);\n this._selectedIndexChanged = this._selectedIndex !== value;\n this._selectedIndex = value;\n\n if (this._keyManager) {\n this._keyManager.updateActiveItem(value);\n }\n }\n\n /** Event emitted when the option is selected. */\n @Output()\n readonly selectFocusedIndex = new EventEmitter<number>();\n\n /** Event emitted when a label is focused. */\n @Output()\n readonly indexFocused = new EventEmitter<number>();\n\n @ContentChild(TabHeaderAddonDirective, { static: false })\n _headerAddon: TabHeaderAddonDirective;\n\n @ContentChild(TabTitleDirective, { static: false })\n _title: TabTitleDirective;\n\n @ContentChildren(TabLabelWrapperDirective)\n /**\n * workaround for @link https://github.com/microsoft/TypeScript/pull/42425\n */\n _labelWrappers: QueryList<TabLabelWrapperDirective & { disabled?: boolean }>;\n\n @ViewChild('tabListContainer', { static: true })\n _tabListContainer: ElementRef<HTMLElement>;\n\n @ViewChild('tabList', { static: true })\n _tabList: ElementRef<HTMLElement>;\n\n @ViewChild('paginationWrapper', { static: true })\n _paginationWrapper: ElementRef<HTMLElement>;\n\n @ViewChild(TabHeaderActiveIndicatorComponent, { static: true })\n _activeIndicator: TabHeaderActiveIndicatorComponent;\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n ngAfterContentChecked(): void {\n // If the number of tab labels have changed, check if scrolling should be enabled\n if (this._tabLabelCount !== this._labelWrappers.length) {\n this._updatePagination();\n this._tabLabelCount = this._labelWrappers.length;\n this._changeDetectorRef.markForCheck();\n }\n\n // If the selected index has changed, scroll to the label and check if the scrolling controls\n // should be disabled.\n if (this._selectedIndexChanged) {\n this._scrollToLabel(this._selectedIndex);\n this._checkScrollingControls();\n this._alignActiveIndicatorToSelectedTab();\n this._selectedIndexChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n\n // If the scroll distance has been changed (tab selected, focused, scroll controls activated),\n // then translate the header to reflect this.\n if (this._scrollDistanceChanged) {\n this._updateTabScrollPosition();\n this._scrollDistanceChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n\n if (this._showAddon !== !!this._headerAddon) {\n this._showAddon = !!this._headerAddon;\n this._updatePagination();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Aligns the ink bar to the selected tab on load.\n */\n ngAfterContentInit() {\n const resize = this._viewportRuler.change(150);\n const realign = () => {\n this._updatePagination();\n this._alignActiveIndicatorToSelectedTab();\n };\n\n this._keyManager = new FocusKeyManager(this._labelWrappers)\n .withHorizontalOrientation('ltr')\n .withWrap();\n this._keyManager.updateActiveItem(0);\n\n // Defer the first call in order to allow for slower browsers to lay out the elements.\n // This helps in cases where the user lands directly on a page with paginated tabs.\n typeof requestAnimationFrame !== 'undefined'\n ? requestAnimationFrame(realign)\n : realign();\n\n // On window resize, realign the ink bar and update the orientation of\n // the key manager if the direction has changed.\n resize.pipe(takeUntil(this._destroyed)).subscribe(() => {\n realign();\n });\n\n // If there is a change in the focus key manager we need to emit the `indexFocused`\n // event in order to provide a public event that notifies about focus changes. Also we realign\n // the tabs container by scrolling the new focused tab into the visible section.\n this._keyManager.change\n .pipe(takeUntil(this._destroyed))\n .subscribe(newFocusIndex => {\n this.indexFocused.emit(newFocusIndex);\n this._setTabFocus(newFocusIndex);\n });\n }\n\n /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */\n get scrollDistance(): number {\n return this._scrollDistance;\n }\n\n set scrollDistance(v: number) {\n this._scrollDistance = Math.max(\n 0,\n Math.min(this._getMaxScrollDistance(), v),\n );\n // Mark that the scroll distance has changed so that after the view is checked, the CSS\n // transformation can move the header.\n this._scrollDistanceChanged = true;\n this._checkScrollingControls();\n }\n\n /** Tracks which element has focus; used for keyboard navigation */\n get focusIndex(): number {\n return this._keyManager ? this._keyManager.activeItemIndex : 0;\n }\n\n /** When the focus index is set, we must manually send focus to the correct label */\n set focusIndex(value: number) {\n if (\n !this._isValidIndex(value) ||\n this.focusIndex === value ||\n !this._keyManager\n ) {\n return;\n }\n this._keyManager.setActiveItem(value);\n }\n\n /**\n * Determines if an index is valid. If the tabs are not ready yet, we assume that the user is\n * providing a valid index and return true.\n */\n _isValidIndex(index: number): boolean {\n if (!this._labelWrappers) {\n return true;\n }\n const tab = this._labelWrappers\n ? this._labelWrappers.toArray()[index]\n : null;\n return !!tab && !tab.disabled;\n }\n\n _handleKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Home':\n this._keyManager.setFirstItemActive();\n event.preventDefault();\n break;\n case 'End':\n this._keyManager.setLastItemActive();\n event.preventDefault();\n break;\n case 'Enter':\n case 'Space':\n this.selectFocusedIndex.emit(this.focusIndex);\n event.preventDefault();\n break;\n default:\n this._keyManager.onKeydown(event);\n }\n }\n\n /**\n * Sets focus on the HTML element for the label wrapper and scrolls it into the view if\n * scrolling is enabled.\n */\n _setTabFocus(tabIndex: number) {\n if (this._showPaginationControls) {\n this._scrollToLabel(tabIndex);\n }\n if (this._labelWrappers?.length > 0) {\n this._labelWrappers.toArray()[tabIndex].focus();\n // Do not let the browser manage scrolling to focus the element, this will be handled\n // by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width\n // should be the full width minus the offset width.\n const containerEl = this._tabListContainer.nativeElement;\n containerEl.scrollLeft = 0;\n }\n }\n\n /**\n * Moves the tab list such that the desired tab label (marked by index) is moved into view.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _scrollToLabel(labelIndex: number) {\n const selectedLabel = this._labelWrappers\n ? this._labelWrappers.toArray()[labelIndex]\n : null;\n if (!selectedLabel) {\n return;\n }\n // The view length is the visible width of the tab labels.\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n const labelBeforePos = selectedLabel.getOffsetLeft();\n const labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();\n const beforeVisiblePos = this.scrollDistance;\n const afterVisiblePos = this.scrollDistance + viewLength;\n if (labelBeforePos < beforeVisiblePos) {\n // Scroll header to move label to the before direction\n this.scrollDistance -=\n beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;\n } else if (labelAfterPos > afterVisiblePos) {\n // Scroll header to move label to the after direction\n this.scrollDistance +=\n labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;\n }\n }\n\n /**\n * Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or\n * the end of the list, respectively). The distance to scroll is computed to be a third of the\n * length of the tab list view window.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _scrollHeader(scrollDir: ScrollDirection) {\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n // Move the scroll distance one-third the length of the tab list's viewport.\n this.scrollDistance += ((scrollDir === 'before' ? -1 : 1) * viewLength) / 3;\n }\n\n /**\n * Callback for when the MutationObserver detects that the content has changed.\n */\n _onContentChanges() {\n this._updatePagination();\n this._alignActiveIndicatorToSelectedTab();\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Updating the view whether pagination should be enabled or not\n */\n _updatePagination() {\n this._checkPaginationEnabled();\n this._checkScrollingControls();\n this._updateTabScrollPosition();\n }\n\n /**\n * Evaluate whether the pagination controls should be displayed. If the scroll width of the\n * tab list is wider than the size of the header container, then the pagination controls should\n * be shown.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _checkPaginationEnabled() {\n const isEnabled =\n this._tabList.nativeElement.scrollWidth >\n this._paginationWrapper.nativeElement.offsetWidth + 2; // 2 is the border size\n if (!isEnabled) {\n this.scrollDistance = 0;\n }\n const detectChanges = isEnabled !== this._showPaginationControls;\n this._showPaginationControls = isEnabled;\n\n if (detectChanges) {\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Evaluate whether the before and after controls should be enabled or disabled.\n * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the\n * before button. If the header is at the end of the list (scroll distance is equal to the\n * maximum distance we can scroll), then disable the after button.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _checkScrollingControls() {\n // Check if the pagination arrows should be activated.\n this._disableScrollBefore = this.scrollDistance === 0;\n this._disableScrollAfter =\n this.scrollDistance === this._getMaxScrollDistance();\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Determines what is the maximum length in pixels that can be set for the scroll distance. This\n * is equal to the difference in width between the tab list container and tab header container.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _getMaxScrollDistance(): number {\n const lengthOfTabList = this._tabList.nativeElement.scrollWidth;\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n return lengthOfTabList - viewLength || 0;\n }\n\n /** Performs the CSS transformation on the tab list that will cause the list to scroll. */\n _updateTabScrollPosition() {\n const scrollDistance = this.scrollDistance;\n const translateX = -scrollDistance;\n // Don't use `translate3d` here because we don't want to create a new layer. A new layer\n // seems to cause flickering and overflow in Internet Explorer. For example, the ink bar\n // and ripples will exceed the boundaries of the visible tab bar.\n // See: https://github.com/angular/material2/issues/10276\n this._tabList.nativeElement.style.transform = `translateX(${translateX}px)`;\n }\n\n /** Tells the active indicator to align itself to the current label wrapper */\n _alignActiveIndicatorToSelectedTab(): void {\n const selectedLabelWrapper =\n this._labelWrappers?.length > 0\n ? this._labelWrappers.toArray()[this.selectedIndex].elementRef\n .nativeElement\n : null;\n this._activeIndicator.alignToElement(selectedLabelWrapper);\n }\n\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _viewportRuler: ViewportRuler,\n ) {}\n}\n","<div [ngClass]=\"bem.block(type, size)\">\n <ng-container *ngIf=\"_title\">\n <div [ngClass]=\"bem.element('title')\">\n <ng-template [cdkPortalOutlet]=\"_title\"></ng-template>\n </div>\n </ng-container>\n <div [ngClass]=\"bem.element('header-wrapper')\">\n <div\n [ngClass]=\"bem.element('pagination-wrapper')\"\n #paginationWrapper\n >\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('before')\"\n [attr.disabled]=\"_disableScrollBefore ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </div>\n <div\n [ngClass]=\"bem.element('tab-list-container')\"\n (keydown)=\"_handleKeydown($event)\"\n #tabListContainer\n >\n <div\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\"\n [ngClass]=\"bem.element('tab-list')\"\n #tabList\n >\n <div [ngClass]=\"bem.element('labels')\"><ng-content></ng-content></div>\n <aui-tab-header-active-indicator\n [type]=\"type\"\n ></aui-tab-header-active-indicator>\n </div>\n </div>\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('after')\"\n [attr.disabled]=\"_disableScrollAfter ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </div>\n </div>\n <!-- If there is addon template, use it. -->\n <ng-container *ngIf=\"_showAddon\">\n <div [ngClass]=\"bem.element('addon')\">\n <ng-template [cdkPortalOutlet]=\"_headerAddon\"></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n","/* eslint-disable no-prototype-builtins */\nimport {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, Subscription, merge } from 'rxjs';\n\nimport { Bem, buildBem, coerceNumber } from '../utils';\n\nimport {\n TabHeaderAddonDirective,\n TabTitleDirective,\n} from './tab-body.component';\nimport { TabHeaderComponent } from './tab-header.component';\nimport { TabComponent } from './tab.component';\nimport { TabSize, TabType } from './tabs.types';\n\n/** A simple change event emitted on focus or selection changes. */\nexport class TabChangeEvent {\n /** Index of the currently-selected tab. */\n index: number;\n /** Reference to the currently-selected tab. */\n tab: TabComponent;\n}\n\n@Component({\n selector: 'aui-tab-group',\n exportAs: 'auiTabGroup',\n templateUrl: './tab-group.component.html',\n styleUrls: ['./tab-group.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class TabGroupComponent\n implements OnChanges, AfterContentChecked, AfterContentInit, OnDestroy\n{\n bem: Bem = buildBem('aui-tab-group');\n\n @ContentChildren(TabComponent)\n _tabs: QueryList<TabComponent>;\n\n @ContentChild(TabHeaderAddonDirective, { static: false })\n _headerAddon: TabHeaderAddonDirective;\n\n @ViewChild(TabHeaderComponent, { static: false })\n _tabHeader: TabHeaderComponent;\n\n @ContentChild(TabTitleDirective, { static: false })\n _tabTitle: TabTitleDirective;\n\n /** The tab index that should be selected after the content has been checked. */\n private _indexToSelect: number | null = 0;\n\n /** Subscription to tabs being added/removed. */\n private _tabsSubscription = Subscription.EMPTY;\n\n /** Subscription to changes in the tab labels. */\n private _tabLabelSubscription = Subscription.EMPTY;\n\n private _selectedIndex: number | null = null;\n private _tab: string = null;\n private _type: TabType = TabType.Line;\n private _size: TabSize = TabSize.Medium;\n\n /** true lazy mode for template ref children */\n private _lazy: boolean;\n\n private _previousHeaderAddon: TabHeaderAddonDirective;\n\n /** Emits whenever the type changes */\n readonly _typeChange = new Subject<void>();\n\n /** Emits whenever the size changes */\n readonly _sizeChange = new Subject<void>();\n\n /** The index of the active tab. */\n @Input()\n get selectedIndex(): number | null {\n return this._selectedIndex;\n }\n\n set selectedIndex(value: number | null) {\n this._indexToSelect = coerceNumber(value, null);\n this._changeActivatedTabs();\n }\n\n @Input()\n get tab(): string {\n return this._tab;\n }\n\n set tab(value: string) {\n this._tab = value;\n if (this._tabs) {\n this.selectedIndex = this._findIndexByTab(value);\n }\n }\n\n @Input()\n get type() {\n return this._type;\n }\n\n set type(type: TabType) {\n this._type = type;\n }\n\n @Input()\n title: string | TemplateRef<unknown>;\n\n @Input()\n get size() {\n return this._size;\n }\n\n set size(val) {\n if (!val || this._size === val) {\n return;\n }\n this._size = val;\n }\n\n @Input()\n get lazy() {\n return this._lazy;\n }\n\n set lazy(lazy: boolean) {\n if (this._lazy === lazy) {\n return;\n }\n this._lazy = lazy;\n if (lazy) {\n this._changeActivatedTabs();\n } else {\n this.activatedTabs.length = 0;\n }\n }\n\n /** Output to enable support for two-way binding on `[(selectedIndex)]` */\n @Output()\n readonly selectedIndexChange = new EventEmitter<number>();\n\n @Output()\n readonly tabChange = new EventEmitter<string>();\n\n /** Event emitted when the tab selection has changed. */\n @Output()\n readonly selectedTabChange = new EventEmitter<TabChangeEvent>(true);\n\n /** Event emitted when focus has changed within a tab group. */\n @Output()\n readonly focusChange: EventEmitter<TabChangeEvent> = new EventEmitter<TabChangeEvent>();\n\n constructor(private readonly _changeDetectorRef: ChangeDetectorRef) {}\n\n activatedTabs: TabComponent[] = [];\n\n get activeTab() {\n return this._tabs.length > 0 && this.selectedIndex !== null\n ? this._tabs.toArray()[this.selectedIndex]\n : null;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.hasOwnProperty('type')) {\n this._typeChange.next();\n }\n\n if (changes.hasOwnProperty('size')) {\n this._sizeChange.next();\n }\n }\n\n /**\n * After the content is checked, this component knows what tabs have been defined\n * and what the selected index should be. This is where we can know exactly what position\n * each tab should be in according to the new selected index.\n */\n ngAfterContentChecked(): void {\n // Don't clamp the `indexToSelect` immediately in the setter because it can happen that\n // the amount of tabs changes before the actual change detection runs.\n const indexToSelect = (this._indexToSelect = this._clampTabIndex(\n this._indexToSelect,\n ));\n\n // If there is a change in selected index, emit a change event. Should not trigger if\n // the selected index has not yet been initialized.\n if (this._selectedIndex !== indexToSelect && this._selectedIndex != null) {\n this._changeActivatedTabs();\n const tabChangeEvent = this._createChangeEvent(indexToSelect);\n this.selectedTabChange.emit(tabChangeEvent);\n // Emitting this value after change detection has run\n // since the checked content may contain this variable'\n Promise.resolve().then(() => {\n this.selectedIndexChange.emit(indexToSelect);\n this.tabChange.emit(this._tabs.get(indexToSelect).name);\n });\n }\n\n // Setup the position for each tab and optionally setup an origin on the next selected tab.\n this._tabs.forEach((tab: TabComponent, index: number) => {\n tab.position = index - indexToSelect;\n tab.tabContext.isActive = index === indexToSelect;\n // If there is already a selected tab, then set up an origin for the next selected tab\n // if it doesn't have one already.\n if (this._selectedIndex != null && tab.position === 0 && !tab.origin) {\n tab.origin = indexToSelect - this._selectedIndex;\n }\n });\n\n if (this._selectedIndex !== indexToSelect) {\n this._selectedIndex = indexToSelect;\n this._changeDetectorRef.markForCheck();\n }\n\n if (this._previousHeaderAddon !== this._headerAddon) {\n this._previousHeaderAddon = this._headerAddon;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n ngAfterContentInit() {\n if (this.tab) {\n this._indexToSelect = this._findIndexByTab(this.tab);\n }\n\n this._changeActivatedTabs();\n this._subscribeToTabLabels();\n // Subscribe to changes in the amount of tabs, in order to be\n // able to re-render the content as new tabs are added or removed.\n this._tabsSubscription = this._tabs.changes.subscribe(() => {\n const tabs = this._tabs.toArray();\n if (this._lazy) {\n this.activatedTabs = this.activatedTabs.filter(tab =>\n tabs.includes(tab),\n );\n }\n const indexToSelect = this._clampTabIndex(this._indexToSelect);\n // Maintain the previously-selected tab if a new tab is added or removed and there is no\n // explicit change that selects a different tab.\n if (indexToSelect === this._selectedIndex) {\n for (const [i, tab] of tabs.entries()) {\n if (tab.tabContext.isActive) {\n // Assign both to the `_indexToSelect` and `_selectedIndex` so we don't fire a changed\n // event, otherwise the consumer may end up in an infinite loop in some edge cases like\n // adding a tab within the `selectedIndexChange` event.\n this._indexToSelect = this._selectedIndex = i;\n break;\n }\n }\n }\n this._changeActivatedTabs();\n this._subscribeToTabLabels();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n ngOnDestroy() {\n this._tabsSubscription.unsubscribe();\n this._tabLabelSubscription.unsubscribe();\n\n this._typeChange.complete();\n this._sizeChange.complete();\n }\n\n /** Handle click events, setting new selected index if appropriate. */\n _handleClick(tab: TabComponent, idx: number) {\n if (!tab.disabled) {\n this.selectedIndex = this._tabHeader.focusIndex = idx;\n }\n }\n\n _focusChanged(index: number) {\n this.focusChange.emit(this._createChangeEvent(index));\n }\n\n /** Re-aligns the ink bar to the selected tab element. */\n realignActiveIndicator() {\n if (this._tabHeader) {\n this._tabHeader._alignActiveIndicatorToSelectedTab();\n }\n }\n\n private _changeActivatedTabs() {\n if (\n !this._lazy ||\n !this._tabs ||\n this._indexToSelect < 0 ||\n this._indexToSelect >= this._tabs.length\n ) {\n return;\n }\n const tab = this._tabs.find((_, index) => index === this._indexToSelect);\n if (tab && !this.activatedTabs.includes(tab)) {\n this.activatedTabs.push(tab);\n }\n }\n\n /** Clamps the given index to the bounds of 0 and the tabs length. */\n private _clampTabIndex(index: number | null): number {\n // Note the `|| 0`, which ensures that values like NaN can't get through\n // and which would otherwise throw the component into an infinite loop\n // (since Math.max(NaN, 0) === NaN).\n return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));\n }\n\n private _findIndexByTab(name: string) {\n return Math.max(\n this._tabs.toArray().findIndex(tab => tab.name === name),\n 0,\n );\n }\n\n private _createChangeEvent(index: number): TabChangeEvent {\n const event = new TabChangeEvent();\n event.index = index;\n if (this._tabs?.length > 0) {\n event.tab = this._tabs.toArray()[index];\n }\n return event;\n }\n\n /**\n * Subscribes to changes in the tab labels. This is needed, because the @Input for the label is\n * on the Tab component, whereas the data binding is inside the TabGroup. In order for the\n * binding to be updated, we need to subscribe to changes in it and trigger change detection\n * manually.\n */\n private _subscribeToTabLabels() {\n if (this._tabLabelSubscription) {\n this._tabLabelSubscription.unsubscribe();\n }\n this._tabLabelSubscription = merge(\n ...this._tabs.map(tab => tab._stateChanges),\n this._typeChange,\n this._sizeChange,\n ).subscribe(() => {\n this.realignActiveIndicator();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /** Retrieves the tabindex for the tab. */\n _getTabIndex(tab: TabComponent, idx: number): number | null {\n if (tab.disabled) {\n return null;\n }\n return this.selectedIndex === idx ? 0 : -1;\n }\n}\n","<div [ngClass]=\"bem.block()\">\n <aui-tab-header\n [selectedIndex]=\"selectedIndex\"\n [type]=\"type\"\n [size]=\"size\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\"\n >\n <ng-container *ngIf=\"_tabTitle\">\n <ng-container *auiTabTitle>\n <ng-template [cdkPortalOutlet]=\"_tabTitle\"></ng-template>\n </ng-container>\n </ng-container>\n <div\n role=\"tab\"\n *ngFor=\"let tab of _tabs; let i = index\"\n auiTabLabelWrapper\n cdkMonitorElementFocus\n [class.isActive]=\"selectedIndex === i\"\n [class.closeable]=\"tab.closeable && !tab.disabled\"\n [disabled]=\"tab.disabled\"\n (click)=\"_handleClick(tab, i)\"\n [title]=\"tab.textLabel\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-label]=\"tab.textLabel\"\n >\n <div class=\"aui-tab-label__content\">\n <!-- If there is a label template, use it. -->\n <ng-template [ngIf]=\"tab.templateLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n </ng-template>\n <!-- If there is not a label template, fall back to the text label. -->\n <ng-template [ngIf]=\"!tab.templateLabel\">\n {{ tab.textLabel }}\n </ng-template>\n </div>\n\n <aui-icon\n *ngIf=\"tab.closeable && !tab.disabled\"\n class=\"aui-tab-label__close\"\n icon=\"close_small\"\n (click)=\"tab.close.emit(); $event.stopPropagation()\"\n ></aui-icon>\n </div>\n\n <ng-container *ngIf=\"_headerAddon\">\n <ng-container *auiTabHeaderAddon>\n <ng-template [cdkPortalOutlet]=\"_headerAddon\"></ng-template>\n </ng-container>\n </ng-container>\n </aui-tab-header>\n\n <div [class]=\"bem.element('body-wrapper')\">\n <ng-container *ngIf=\"lazy\">\n <aui-tab-body\n role=\"tabpanel\"\n *ngFor=\"let tab of activatedTabs\"\n [content]=\"tab.content\"\n [hidden]=\"tab !== activeTab\"\n ></aui-tab-body>\n </ng-container>\n <aui-tab-body\n role=\"tabpanel\"\n *ngIf=\"!lazy && activeTab\"\n [content]=\"activeTab.content\"\n ></aui-tab-body>\n </div>\n</div>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '../button';\nimport { IconModule } from '../icon';\n\nimport {\n TabBodyComponent,\n TabBodyPortalDirective,\n TabContentDirective,\n TabHeaderAddonDirective,\n TabLabelDirective,\n TabLabelWrapperDirective,\n TabTitleDirective,\n} from './tab-body.component';\nimport { TabGroupComponent } from './tab-group.component';\nimport { TabHeaderActiveIndicatorComponent } from './tab-header-active-indicator.component';\nimport { TabHeaderComponent } from './tab-header.component';\nimport { TabComponent } from './tab.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n PortalModule,\n ButtonModule,\n IconModule,\n A11yModule,\n ObserversModule,\n ],\n declarations: [\n TabGroupComponent,\n TabComponent,\n TabLabelDirective,\n TabContentDirective,\n TabHeaderAddonDirective,\n TabTitleDirective,\n TabHeaderComponent,\n TabBodyComponent,\n TabBodyPortalDirective,\n TabLabelWrapperDirective,\n TabHeaderActiveIndicatorComponent,\n ],\n exports: [\n TabGroupComponent,\n TabComponent,\n TabLabelDirective,\n TabContentDirective,\n TabHeaderAddonDirective,\n TabTitleDirective,\n TabLabelWrapperDirective,\n TabHeaderComponent,\n ],\n})\nexport class TabsModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-tree-node-placeholder',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class TreeNodePlaceholderComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n forwardRef,\n QueryList,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n BehaviorSubject,\n combineLatest,\n map,\n Observable,\n of,\n startWith,\n Subject,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport { CommonFormControl } from '../form';\nimport { InputComponent } from '../input';\nimport { TrackFn } from '../select/select.types';\nimport { TooltipDirective } from '../tooltip';\nimport {\n Bem,\n buildBem,\n coerceAttrBoolean,\n coerceString,\n publishRef,\n scrollIntoView,\n} from '../utils';\n\nimport { TreeNode } from './tree-select.types';\n\n@Component({\n selector: 'aui-tree-select',\n templateUrl: './tree-select.component.html',\n styleUrls: ['./tree-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TreeSelectComponent),\n multi: true,\n },\n ],\n})\nexport class TreeSelectComponent<T = unknown> extends CommonFormControl<T> {\n @Input()\n get nodesData() {\n return this._nodesData;\n }\n\n set nodesData(val) {\n if (!val || val === this._nodesData) {\n return;\n }\n this._nodesData = val;\n this.flattedNodes = this.flatNodesData(val);\n this.updateSelectDisplay(this.propValue);\n }\n\n @Input()\n loading = false;\n\n @Input()\n placeholder = '';\n\n @Input()\n get filterable() {\n return this._filterable;\n }\n\n set filterable(val: boolean | '') {\n this._filterable = coerceAttrBoolean(val);\n }\n\n @Input()\n get clearable() {\n return this._clearable;\n }\n\n set clearable(val: boolean | '') {\n this._clearable = coerceAttrBoolean(val);\n }\n\n @Input()\n get leafOnly() {\n return this._leafOnly;\n }\n\n set leafOnly(val: boolean | '') {\n this._leafOnly = coerceAttrBoolean(val);\n }\n\n @Input()\n filterFn = this._filterFn;\n\n @Input()\n trackFn: TrackFn<T> = this._trackFn;\n\n @Input()\n labelFn?: (value: T) => string;\n\n @Output()\n filterChange = new EventEmitter<string>();\n\n @Output()\n show = new EventEmitter<void>();\n\n @Output()\n hide = new EventEmitter<void>();\n\n @ViewChild('selectRef', { static: true })\n protected selectRef: ElementRef<HTMLElement>;\n\n @ViewChild('tooltipRef', { static: true })\n protected tooltipRef: TooltipDirective;\n\n @ViewChild('nodeListRef', { static: true })\n nodeListRef: ElementRef<HTMLElement>;\n\n @ViewChild('inputRef', { static: true })\n inputRef: InputComponent;\n\n private _nodesData: Array<TreeNode<T>> = [];\n private _filterString = '';\n private _filterable = false;\n private _clearable = false;\n private _leafOnly = false;\n private readonly filterString$$ = new BehaviorSubject(this.filterString);\n\n filterString$: Observable<string> = this.filterString$$.asObservable();\n\n containerWidth: string;\n displayText = '';\n flattedNodes: Array<TreeNode<T>> = [];\n\n get isClearable() {\n return !this.disabled && this.clearable && this.getInputValue();\n }\n\n get opened() {\n return this.tooltipRef.isCreated;\n }\n\n get inputReadonly() {\n return !(this.filterable && this.opened);\n }\n\n get filterString() {\n return this._filterString;\n }\n\n set filterString(val) {\n if (val !== this._filterString) {\n this._filterString = val;\n this.filterString$$.next(val);\n this.filterChange.emit(val);\n }\n }\n\n openNodes() {\n this.tooltipRef.createTooltip();\n }\n\n closeNodes() {\n this.tooltipRef.disposeTooltip();\n }\n\n updatePosition() {\n this.tooltipRef.updatePosition();\n }\n\n onShowNodes() {\n this.containerWidth = this.selectRef.nativeElement.offsetWidth + 'px';\n this.show.emit();\n this.cdr.detectChanges();\n }\n\n onHideNodes() {\n if (this.onTouched) {\n this.onTouched();\n }\n this.filterString = '';\n this.hide.emit();\n }\n\n onInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.filterString = value;\n this.cdr.markForCheck();\n }\n\n onNodeClick(node: TreeNodeComponent<T>) {\n this.selectNode(node);\n }\n\n getVisibleNodeCount() {\n return this.flattedNodes.filter(node =>\n this.filterFn(this.filterString, node),\n ).length;\n }\n\n selectNode(node: TreeNodeComponent<T>) {\n if (!node.selected) {\n this.emitValue(node.nodeData.value);\n if (this.onChange) {\n this.closeNodes();\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.closeOption();\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n closeOption() {\n this.tooltipRef.disposeTooltip();\n }\n\n updateSelectDisplay(value: any) {\n const pickedNode = this.flattedNodes.find(\n node => this.trackFn(node.value) === this.trackFn(value),\n );\n this.displayText = pickedNode\n ? this.getLabelFromNode(pickedNode).toString()\n : coerceString(this.trackFn(value));\n }\n\n clearValue(event: Event) {\n this.emitValue(null);\n event.stopPropagation();\n event.preventDefault();\n }\n\n protected override valueIn(v: T): T {\n this.updateSelectDisplay(v);\n this.closeNodes();\n return v;\n }\n\n getPlaceholder() {\n return this.filterable && this.opened ? this.displayText : this.placeholder;\n }\n\n getInputValue() {\n return this.filterable && this.opened ? '' : this.displayText;\n }\n\n // `this` is not available in `trackBy`...\n trackByLabel = (_: number, node: TreeNode<T>) => this.getLabelFromNode(node);\n\n private flatNodesData(nodes: Array<TreeNode<T>> = []): Array<TreeNode<T>> {\n return nodes.reduce(\n (prevValue: Array<TreeNode<T>>, currentNode) =>\n prevValue.concat(currentNode, this.flatNodesData(currentNode.children)),\n [],\n );\n }\n\n private getLabelFromNode(node: TreeNode<T>) {\n return (\n this.labelFn?.(node.value) ||\n node.label ||\n coerceString(this.trackFn(node.value))\n );\n }\n\n private _filterFn(filterString: string, node: TreeNode<T>) {\n return this.getLabelFromNode(node)?.includes(filterString ?? '');\n }\n\n private _trackFn<T>(value: T) {\n return value;\n }\n}\n\n@Component({\n selector: 'aui-tree-node',\n templateUrl: './tree-node.component.html',\n styleUrls: ['./tree-node.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class TreeNodeComponent<T> implements AfterViewInit, OnDestroy {\n bem: Bem = buildBem('aui-tree-node');\n\n private _nodeData: TreeNode<T>;\n private readonly nodeData$$ = new BehaviorSubject<TreeNode<T>>(this.nodeData);\n private readonly destroy$$ = new Subject<void>();\n\n @Input()\n get nodeData() {\n return this._nodeData;\n }\n\n set nodeData(val) {\n if (val === this._nodeData) {\n return;\n }\n this._nodeData = val;\n this.nodeData$$.next(val);\n }\n\n @Input()\n get leafOnly() {\n return this._leafOnly;\n }\n\n set leafOnly(val: boolean | '') {\n this._leafOnly = coerceAttrBoolean(val);\n }\n\n @ViewChild('titleRef', { static: true })\n titleRef: ElementRef<HTMLElement>;\n\n @ViewChildren(TreeNodeComponent)\n childNodes: QueryList<TreeNodeComponent<T>>;\n\n selected = false;\n visible = true;\n isLeaf = false;\n\n private _leafOnly = true;\n private readonly select: TreeSelectComponent<T>;\n selected$: Observable<boolean>;\n selfVisible$: Observable<boolean>;\n visible$: Observable<boolean>;\n\n constructor(\n select: TreeSelectComponent<T>,\n private readonly cdr: ChangeDetectorRef,\n ) {\n this.select = select;\n this.selected$ = combineLatest([\n this.select.model$,\n this.nodeData$$.pipe(map(data => data.value)),\n ]).pipe(\n map(\n ([selectValue, selfValue]) =>\n selectValue &&\n this.select.trackFn(selectValue) === this.select.trackFn(selfValue),\n ),\n tap(selected => {\n this.selected = selected;\n }),\n publishRef(),\n );\n this.selfVisible$ = combineLatest([\n this.select.filterString$,\n this.nodeData$$,\n ]).pipe(\n map(([filterString, nodeData]) =>\n this.select.filterFn(filterString, nodeData),\n ),\n publishRef(),\n );\n }\n\n ngAfterViewInit() {\n const hasVisibleChildNodes$ = this.childNodes.changes.pipe(\n startWith(this.childNodes),\n switchMap((nodes: QueryList<TreeNodeComponent<T>>) =>\n nodes.length > 0\n ? combineLatest(nodes.map(node => node.visible$))\n : of([false]),\n ),\n map(visible => visible.some(Boolean)),\n tap(hasVisibleChildren => (this.isLeaf = !hasVisibleChildren)),\n );\n this.visible$ = combineLatest([\n this.selfVisible$,\n hasVisibleChildNodes$,\n ]).pipe(\n map(visible => visible.some(Boolean)),\n publishRef(),\n );\n\n this.visible$.pipe(takeUntil(this.destroy$$)).subscribe(visible => {\n this.visible = visible;\n this.cdr.markForCheck();\n });\n this.selected$.pipe(takeUntil(this.destroy$$)).subscribe(selected => {\n this.selected = selected;\n this.cdr.markForCheck();\n });\n\n if (this.selected) {\n requestAnimationFrame(() => {\n this.scrollToNode(this);\n });\n }\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n\n onClick() {\n if (this.nodeData.disabled) {\n return;\n }\n if (this.leafOnly && !this.isLeaf) {\n this.switchExpanded();\n return;\n }\n this.select.onNodeClick(this);\n }\n\n switchExpanded() {\n this.nodeData.expanded = !this.nodeData.expanded;\n if (this.nodeData.expanded && this.childNodes.last) {\n requestAnimationFrame(() => {\n this.scrollToNode(this.childNodes.last);\n });\n }\n requestAnimationFrame(() => {\n this.select.updatePosition();\n });\n }\n\n getIcon() {\n return this.nodeData.expanded\n ? this.nodeData.expandedIcon || this.nodeData.icon\n : this.nodeData.icon;\n }\n\n trackByLabel(_: number, data: TreeNode<T>) {\n return data.label;\n }\n\n scrollToNode(node: TreeNodeComponent<T>) {\n if (this.select.nodeListRef) {\n scrollIntoView(\n this.select.nodeListRef.nativeElement,\n node.titleRef.nativeElement,\n );\n }\n }\n}\n","<div\n class=\"aui-tree-select\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipShow)=\"onShowNodes()\"\n (auiTooltipHide)=\"onHideNodes()\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-tree-select__input\"\n autocomplete=\"off\"\n aui-input\n [value]=\"getInputValue()\"\n [disabled]=\"disabled\"\n [placeholder]=\"getPlaceholder()\"\n [readonly]=\"inputReadonly\"\n (input)=\"onInput($event)\"\n (blur)=\"closeNodes()\"\n (keydown)=\"onKeyDown($event)\"\n />\n <span\n auiInputSuffix\n class=\"aui-tree-select__icon-container\"\n >\n <aui-icon\n class=\"aui-tree-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-tree-select__clear\"\n icon=\"close_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n class=\"aui-tree-node-container\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #nodeListRef\n class=\"aui-tree-node-container__content\"\n >\n <aui-tree-node\n *ngFor=\"let data of nodesData; trackBy: trackByLabel\"\n [nodeData]=\"data\"\n [leafOnly]=\"leafOnly\"\n ></aui-tree-node>\n </div>\n <div\n *ngIf=\"!getVisibleNodeCount()\"\n class=\"aui-tree-node-container__placeholder\"\n >\n <ng-content select=\"aui-tree-node-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n","<div\n [hidden]=\"!visible\"\n class=\"aui-tree-node\"\n [class.isDisabled]=\"nodeData.disabled\"\n [class.isSelected]=\"selected\"\n [attr.data-value]=\"nodeData.value\"\n>\n <div class=\"aui-tree-node__content\">\n <aui-icon\n *ngIf=\"nodeData.children\"\n class=\"aui-tree-node__indicator\"\n [icon]=\"nodeData.expanded ? 'angle_down' : 'angle_right'\"\n (click)=\"switchExpanded()\"\n ></aui-icon>\n <span\n #titleRef\n class=\"aui-tree-node__title\"\n [class.isDisabled]=\"nodeData.disabled\"\n [class.isSelected]=\"selected\"\n [class.unselectable]=\"leafOnly && !isLeaf\"\n (click)=\"onClick()\"\n >\n <aui-icon\n *ngIf=\"nodeData.icon\"\n margin=\"right\"\n [icon]=\"getIcon()\"\n ></aui-icon>\n {{ nodeData.label }}\n </span>\n </div>\n <div\n *ngIf=\"nodeData.children\"\n [hidden]=\"!nodeData.expanded\"\n class=\"aui-tree-node__children\"\n >\n <aui-tree-node\n *ngFor=\"let data of nodeData.children; trackBy: trackByLabel\"\n [nodeData]=\"data\"\n [leafOnly]=\"leafOnly\"\n ></aui-tree-node>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\nimport { InputModule } from '../input';\nimport { TooltipModule } from '../tooltip';\n\nimport { TreeNodePlaceholderComponent } from './tree-node-placeholder.component';\nimport {\n TreeNodeComponent,\n TreeSelectComponent,\n} from './tree-select.component';\n\n@NgModule({\n imports: [CommonModule, TooltipModule, IconModule, InputModule],\n declarations: [\n TreeSelectComponent,\n TreeNodeComponent,\n TreeNodePlaceholderComponent,\n ],\n exports: [\n TreeSelectComponent,\n TreeNodeComponent,\n TreeNodePlaceholderComponent,\n ],\n})\nexport class TreeSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThemeService","i1.IconRegisterService","i3.ThemePickerPipe","prefix","i1","i2.IconComponent","i3","i1.AccordionComponent","i2","i3.IconComponent","i4","bem","i1.BaseTooltip","i2.TooltipCopyIntl","i1.IconComponent","i1.FormDirective","uniqueId","i1.I18nService","i1.ButtonComponent","i4.I18nPipe","i3.I18nPipe","i1.InputGroupComponent","i2.InputComponent","i4.TimePickerPanelComponent","i5.TooltipDirective","i6","i7","i8.InputSuffixDirective","i1.CalendarHeaderComponent","i2.PickerPanelComponent","i3.CalendarFooterComponent","i4.TimePickerComponent","i5.ButtonComponent","i8.I18nPipe","i5","i7.I18nPipe","i3.ClickOutsideDirective","i2.TagComponent","i1.InputComponent","i1.DatePickerTriggerComponent","i2.DatePickerPanelComponent","i3.TooltipDirective","i2.DateRangePickerPanelComponent","i1.DialogRef","i3.ButtonComponent","i2.DialogService","i3.DropdownDirective","i2.MenuComponent","i3.TooltipActiveDirective","i4.TooltipDirective","i4.OptionComponent","i6.InputSuffixDirective","i1.PaginatorIntl","i2.ButtonComponent","i4.SelectComponent","i5.OptionComponent","i6.InputComponent","i3.OptionComponent","i6.I18nPipe","i1.SelectComponent","i1.RadioGroupComponent","i2.TablePlaceholderOutletDirective","CdkScrollable","i2.TableComponent","i1.SortDirective","i2.TooltipDirective","i1.TocContainerDirective","i1.TabContextService","i3.TabHeaderActiveIndicatorComponent","i1.TabHeaderComponent","i3.TabBodyComponent","i3.TabTitleDirective","i3.TabLabelWrapperDirective","i3.TabHeaderAddonDirective","i5.InputSuffixDirective"],"mappings":"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"}
1
+ {"version":3,"file":"alauda-ui.mjs","sources":["../../src/accordion/accordion.component.ts","../../src/accordion/accordion.component.html","../../src/types.ts","../../src/button/button.types.ts","../../src/utils/async.ts","../../src/utils/bem.ts","../../src/utils/coercion.ts","../../src/utils/fn.ts","../../src/utils/observe-dom.ts","../../src/utils/operators.ts","../../src/utils/scroll-into-view.ts","../../src/utils/watch-content-exist.ts","../../src/icon/icons.ts","../../src/icon/utils.ts","../../src/icon/icon-register.service.ts","../../src/theme/utils.ts","../../src/theme/theme.service.ts","../../src/theme/theme.pipe.ts","../../src/icon/icon.component.ts","../../src/icon/icon.component.html","../../src/button/button.component.ts","../../src/button/button.component.html","../../src/theme/theme.module.ts","../../src/icon/icon.module.ts","../../src/button/button-group/button-group.component.ts","../../src/button/button-group/button-group.component.html","../../src/button/button.module.ts","../../src/accordion/accordion-item/accordion-item.component.ts","../../src/accordion/accordion-item/accordion-item.component.html","../../src/accordion/accordion.module.ts","../../src/anchor/anchor.directive.ts","../../src/anchor/utils.ts","../../src/anchor/anchor.component.ts","../../src/anchor/anchor-tree.component.html","../../src/anchor/anchor.component.html","../../src/anchor/anchor.module.ts","../../src/autocomplete/autocomplete-placeholder.component.ts","../../src/autocomplete/suggestion/suggestion.component.ts","../../src/autocomplete/suggestion/suggestion.component.html","../../src/autocomplete/autocomplete.component.ts","../../src/autocomplete/autocomplete.component.html","../../src/tooltip/tooltip.types.ts","../../src/tooltip/tooltip.component.ts","../../src/tooltip/tooltip.component.html","../../src/tooltip/utils/index.ts","../../src/tooltip/base-tooltip.ts","../../src/tooltip/tooltip.directive.ts","../../src/tooltip/tooltip-active.directive.ts","../../src/tooltip/tooltip-intl.ts","../../src/tooltip/tooltip-copy.directive.ts","../../src/tooltip/tooltip.module.ts","../../src/autocomplete/autocomplete.directive.ts","../../src/autocomplete/helper-directives.ts","../../src/autocomplete/suggestion-group/suggestion-group.component.ts","../../src/autocomplete/suggestion-group/suggestion-group.component.html","../../src/autocomplete/autocomplete.module.ts","../../src/back-top/back-top.component.ts","../../src/back-top/back-top.component.html","../../src/back-top/back-top.module.ts","../../src/breadcrumb/breadcrumb-item.component.ts","../../src/breadcrumb/breadcrumb-item.component.html","../../src/breadcrumb/breadcrumb.component.ts","../../src/breadcrumb/breadcrumb.component.html","../../src/breadcrumb/breadcrumb.module.ts","../../src/card/card.component.ts","../../src/card/card.component.html","../../src/card/helper-directives.ts","../../src/card/section.component.ts","../../src/card/section.component.html","../../src/card/card.module.ts","../../src/form/common-form.ts","../../src/form/form.types.ts","../../src/form/form.directive.ts","../../src/form/helper-directives.ts","../../src/form/form-item/form-item.component.ts","../../src/form/form-item/form-item.component.html","../../src/form/form.module.ts","../../src/checkbox/checkbox-group/checkbox-group.component.ts","../../src/checkbox/checkbox-group/checkbox-group.component.html","../../src/checkbox/checkbox.component.ts","../../src/checkbox/checkbox.component.html","../../src/checkbox/checkbox.module.ts","../../src/color-picker/color-picker.component.ts","../../src/color-picker/color-picker.component.html","../../src/color-picker/color-picker.module.ts","../../src/date-picker/date-picker.type.ts","../../src/date-picker/calendar/constant.ts","../../src/date-picker/calendar/util.ts","../../src/i18n/language/en.ts","../../src/i18n/i18n.type.ts","../../src/i18n/i18n.service.ts","../../src/i18n/i18n.pipe.ts","../../src/date-picker/calendar/header/component.ts","../../src/date-picker/calendar/header/template.html","../../src/date-picker/calendar/panel/picker-panel.ts","../../src/date-picker/calendar/panel/picker-panel.template.html","../../src/date-picker/calendar/footer/component.ts","../../src/date-picker/calendar/footer/template.html","../../src/time-picker/time-picker.type.ts","../../src/input/helper-directives.ts","../../src/input/input.component.ts","../../src/input/input-group/input-group.component.ts","../../src/input/input-group/input-group.component.html","../../src/time-picker/constant.ts","../../src/time-picker/panel/panel.component.ts","../../src/time-picker/panel/panel.template.html","../../src/time-picker/component.ts","../../src/time-picker/template.html","../../src/date-picker/calendar/date-picker-panel/component.ts","../../src/date-picker/calendar/date-picker-panel/template.html","../../src/date-picker/calendar/range-picker-panel/component.ts","../../src/date-picker/calendar/range-picker-panel/template.html","../../src/i18n/i18n.module.ts","../../src/i18n/language/zh.ts","../../src/input/utils/index.ts","../../src/input/autosize.directive.ts","../../src/shared/click-outside.directive.ts","../../src/shared/shared.module.ts","../../src/tag/tag.types.ts","../../src/tag/check-tag/check-tag.component.ts","../../src/tag/check-tag/check-tag.component.html","../../src/tag/tag.component.ts","../../src/tag/tag.component.html","../../src/tag/tag.module.ts","../../src/input/number-input/number-input.component.ts","../../src/input/number-input/number-input.component.html","../../src/input/search/search.component.ts","../../src/input/search/search.component.html","../../src/input/tags-input/with-max-row-count.ts","../../src/input/tags-input/tags-input.component.ts","../../src/input/tags-input/tags-input.component.html","../../src/input/input.module.ts","../../src/time-picker/time-picker.module.ts","../../src/date-picker/trigger/trigger.component.ts","../../src/date-picker/trigger/trigger.template.html","../../src/date-picker/date-picker/date-picker.component.ts","../../src/date-picker/date-picker/date-picker.template.html","../../src/date-picker/range-picker/range-picker.component.ts","../../src/date-picker/range-picker/range-picker.template.html","../../src/date-picker/date-picker.module.ts","../../src/dialog/dialog.types.ts","../../src/dialog/dialog-config.ts","../../src/dialog/confirm-dialog/confirm-dialog-config.ts","../../src/core/animation/animation-consts.ts","../../src/utils/animations.ts","../../src/dialog/dialog-animations.ts","../../src/dialog/utils/errors.ts","../../src/dialog/utils/index.ts","../../src/dialog/dialog.component.ts","../../src/dialog/dialog.component.html","../../src/dialog/dialog-ref.ts","../../src/dialog/confirm-dialog/confirm-dialog.component.ts","../../src/dialog/confirm-dialog/confirm-dialog.component.html","../../src/dialog/dialog.service.ts","../../src/dialog/dialog-content/dialog-close.directive.ts","../../src/dialog/dialog-content/dialog-content.component.ts","../../src/dialog/dialog-content/dialog-content.component.html","../../src/dialog/dialog-content/dialog-footer.component.ts","../../src/dialog/dialog-content/dialog-footer.component.html","../../src/dialog/dialog-content/dialog-header.component.ts","../../src/dialog/dialog-content/dialog-header.component.html","../../src/dialog/dialog.module.ts","../../src/drawer/component/drawer-ref.ts","../../src/drawer/component/helper-directives.ts","../../src/drawer/component/drawer.component.ts","../../src/drawer/component/drawer.component.html","../../src/drawer/drawer.service.ts","../../src/drawer/drawer.module.ts","../../src/dropdown/dropdown-active.directive.ts","../../src/dropdown/dropdown.directive.ts","../../src/dropdown/dropdown.types.ts","../../src/dropdown/menu-item/menu-item.component.ts","../../src/dropdown/menu-item/menu-item.component.html","../../src/dropdown/menu/menu-content.directive.ts","../../src/dropdown/menu/menu.component.ts","../../src/dropdown/menu/menu.component.html","../../src/dropdown/dropdown-button/dropdown-button.component.ts","../../src/dropdown/dropdown-button/dropdown-button.component.html","../../src/dropdown/helper-directives.ts","../../src/dropdown/menu-group/menu-group.component.ts","../../src/dropdown/menu-group/menu-group.component.html","../../src/dropdown/submenu/submenu.component.ts","../../src/dropdown/submenu/submenu.component.html","../../src/dropdown/dropdown.module.ts","../../src/inline-alert/helper-directives.ts","../../src/inline-alert/inline-alert.types.ts","../../src/inline-alert/inline-alert.component.ts","../../src/inline-alert/inline-alert.component.html","../../src/inline-alert/inline-alert.module.ts","../../src/message/message.config.ts","../../src/message/message-wrapper.component.ts","../../src/message/message-animations.ts","../../src/message/message.component.ts","../../src/message/message.component.html","../../src/message/base-message.ts","../../src/message/message.service.ts","../../src/message/message.module.ts","../../src/notification/notification.component.ts","../../src/notification/notification.component.html","../../src/notification/notification.config.ts","../../src/notification/notification-wrapper.component.ts","../../src/notification/notification.service.ts","../../src/notification/notification.module.ts","../../src/paginator/paginator-intl.ts","../../src/select/helper-directives.ts","../../src/select/option/option.component.ts","../../src/select/option/option.component.html","../../src/select/base-select.ts","../../src/select/select.component.ts","../../src/select/select.component.html","../../src/paginator/paginator.component.ts","../../src/paginator/paginator.component.html","../../src/select/select.types.ts","../../src/select/multi-select/multi-select.component.ts","../../src/select/multi-select/multi-select.component.html","../../src/select/option-group/option-group.component.ts","../../src/select/option-group/option-group.component.html","../../src/select/option-placeholder.component.ts","../../src/select/validators.ts","../../src/select/select.module.ts","../../src/paginator/paginator.module.ts","../../src/radio/radio.types.ts","../../src/radio/radio-group/radio-group.component.ts","../../src/radio/radio-group/radio-group.component.html","../../src/radio/base-radio.ts","../../src/radio/radio.component.ts","../../src/radio/radio.component.html","../../src/radio/radio-button/radio-button.component.ts","../../src/radio/radio-button/radio-button.component.html","../../src/radio/radio.module.ts","../../src/table/table-placeholder.directive.ts","../../src/table/table.component.ts","../../src/table/table-cell-def.directive.ts","../../src/table/table-cell.component.ts","../../src/table/table-cell.directive.ts","../../src/table/table-column-def.directive.ts","../../src/table/table-header-cell-def.directive.ts","../../src/table/table-header-cell.directive.ts","../../src/table/table-header-row-def.directive.ts","../../src/table/table-header-row.component.ts","../../src/table/table-row-def.directive.ts","../../src/table/table-row.component.ts","../../src/table/table-scroll.directive.ts","../../src/table/table.module.ts","../../src/scrolling/fixed-size-table-virtual-scroll-strategy.ts","../../src/scrolling/fixed-size-table-virtual-scroll.directive.ts","../../src/scrolling/fixed-size-virtual-scroll.directive.ts","../../src/scrolling/virtual-for-of.directive.ts","../../src/scrolling/virtual-scroll-viewport.component.ts","../../src/scrolling/virtual-scroll-viewport.component.html","../../src/scrolling/scrolling.module.ts","../../src/sort/sort-errors.ts","../../src/sort/sort.directive.ts","../../src/sort/sort-header.component.ts","../../src/sort/sort-header.component.html","../../src/sort/sort.module.ts","../../src/status-bar/status-bar.types.ts","../../src/status-bar/status-bar.component.ts","../../src/status-bar/status-bar.component.html","../../src/status-bar/status-bar.module.ts","../../src/steps/types.ts","../../src/steps/steps.component.ts","../../src/steps/steps.component.html","../../src/steps/steps.module.ts","../../src/switch/switch.component.ts","../../src/switch/switch.component.html","../../src/switch/switch.module.ts","../../src/table-of-contents/toc-container.directive.ts","../../src/table-of-contents/toc-content.directive.ts","../../src/table-of-contents/toc-link.directive.ts","../../src/table-of-contents/table-of-contents.module.ts","../../src/tabs/tab-body.component.ts","../../src/tabs/tab-body.component.html","../../src/tabs/tab-context.service.ts","../../src/tabs/tab.component.ts","../../src/tabs/tab.component.html","../../src/tabs/tabs.types.ts","../../src/tabs/tab-header-active-indicator.component.ts","../../src/tabs/tab-header-active-indicator.component.html","../../src/tabs/tab-header.component.ts","../../src/tabs/tab-header.component.html","../../src/tabs/tab-group.component.ts","../../src/tabs/tab-group.component.html","../../src/tabs/tabs.module.ts","../../src/tree-select/tree-node-placeholder.component.ts","../../src/tree-select/tree-select.component.ts","../../src/tree-select/tree-select.component.html","../../src/tree-select/tree-node.component.html","../../src/tree-select/tree-select.module.ts","../../src/alauda-ui.ts"],"sourcesContent":["import { CdkAccordion } from '@angular/cdk/accordion';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n Optional,\n SkipSelf,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class AccordionComponent extends CdkAccordion {\n @Input()\n background = true;\n\n @HostBinding('attr.accordion-depth')\n depth: number;\n\n constructor(\n @SkipSelf()\n @Optional()\n public parent: AccordionComponent,\n ) {\n super();\n this.depth = parent ? parent.depth + 1 : 0;\n }\n}\n","<div\n class=\"aui-accordion\"\n [class.hasBg]=\"background\"\n>\n <ng-content></ng-content>\n</div>\n","export type ValueOf<T> = T[keyof T];\n\nexport const ComponentSize = {\n Large: 'large',\n Medium: 'medium',\n Small: 'small',\n Mini: 'mini',\n /**\n * represents default internally, @link https://github.com/angular/vscode-ng-language-service/issues/1147\n */\n Empty: '',\n} as const;\n\nexport type ComponentSize = ValueOf<typeof ComponentSize>;\n","import { ValueOf } from '../types';\n\nexport const ButtonType = {\n Default: 'default',\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Danger: 'danger',\n Text: 'text',\n Inline: 'inline',\n /**\n * represents default internally, @link https://github.com/angular/vscode-ng-language-service/issues/1147\n */\n Empty: '',\n /**\n * @deprecated use `ButtonType.Danger` instead\n */\n Error: 'danger',\n /**\n * @deprecated use `ButtonType.Default` instead\n */\n Info: 'default',\n} as const;\n\nexport type ButtonType = ValueOf<typeof ButtonType>;\n","export function sleep(ms = 0) {\n return new Promise(resolve => {\n setTimeout(resolve, ms);\n });\n}\n","// Experimental bem classname helper\nexport class Bem {\n constructor(private readonly namespace: string) {}\n\n block(...modifiers: Array<{ [name: string]: boolean } | string>) {\n const activatedModifiers = getActivatedModifiers(modifiers);\n if (activatedModifiers.length > 0) {\n return `${this.namespace} ${activatedModifiers\n .map(modifier => this.namespace + '--' + modifier)\n .join(' ')}`;\n }\n return this.namespace;\n }\n\n modifier(name: string) {\n return `${this.namespace}--${name}`;\n }\n\n element(\n name: string,\n ...modifiers: Array<{ [name: string]: boolean | '' } | string>\n ) {\n const activatedModifiers = getActivatedModifiers(modifiers);\n\n if (activatedModifiers.length > 0) {\n return `${this.namespace}__${name} ${activatedModifiers\n .map(modifier => this.namespace + '__' + name + '--' + modifier)\n .join(' ')}`;\n }\n\n return `${this.namespace}__${name}`;\n }\n}\n\nfunction getActivatedModifiers(\n modifiers: Array<{ [name: string]: boolean | '' } | string>,\n) {\n return modifiers.reduce<string[]>((acc, modifier) => {\n if (!modifier) {\n return acc;\n }\n return acc.concat(\n typeof modifier === 'string'\n ? [modifier]\n : getActivatedModifiersFromObject(modifier),\n );\n }, []);\n}\n\nfunction getActivatedModifiersFromObject(modifiers: {\n [name: string]: boolean | '';\n}) {\n return Object.keys(modifiers).filter(key => modifiers[key]);\n}\n\nexport function buildBem(namespace: string) {\n return new Bem(namespace);\n}\n","export function coerceString(val: any): string {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n return val == null ? '' : val?.toString() ?? '';\n}\n\nexport function coerceAttrBoolean(val: unknown): boolean {\n return val === '' ? true : !!val;\n}\n\nexport function coerceNumber(val: unknown, fallbackValue = 0): number {\n return _isNumberValue(val) ? Number(val) : fallbackValue;\n}\n\nexport function _isNumberValue(value: unknown): boolean {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value as string)) && !isNaN(Number(value));\n}\n","import { TemplateRef } from '@angular/core';\n\nexport function isUndefined(val: unknown): boolean {\n return val === undefined;\n}\n\nexport const last = <T>(values: T[]) => values?.[values.length - 1];\n\nexport const isTemplateRef = (label: any): label is TemplateRef<unknown> =>\n label instanceof TemplateRef;\n\nexport const isString = (label: any): label is string =>\n typeof label === 'string';\n\nexport const handlePixel = (value: number | string) =>\n Number.isNaN(+value) ? (value as string) : value + 'px';\n\nexport function getElementOffset(elem: HTMLElement): {\n top: number;\n left: number;\n} {\n if (!elem.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n\n const rect = elem.getBoundingClientRect();\n return {\n top: rect.top,\n left: rect.left,\n };\n}\n","import { Observable } from 'rxjs';\n\nexport const observeResizeOn = <T extends Element>(\n target: T,\n options?: ResizeObserverOptions,\n) =>\n new Observable<T>(observer => {\n const resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n observer.next(entry.target as T);\n }\n });\n resizeObserver.observe(target, options);\n return () => {\n resizeObserver.unobserve(target);\n resizeObserver.disconnect();\n };\n });\n\nexport const observeMutationOn = <T extends Node>(\n target: T,\n options?: MutationObserverInit,\n) =>\n new Observable<MutationRecord>(observer => {\n const mutationObserver = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n observer.next(mutation);\n }\n });\n mutationObserver.observe(target, options);\n return () => mutationObserver.disconnect();\n });\n","import { ReplaySubject, share, TimestampProvider } from 'rxjs';\n\nexport type PublishRefConfig<T> =\n | number\n | (import('rxjs/internal/operators/share').ShareConfig<T> & {\n bufferSize?: number;\n windowTime?: number;\n timestampProvider?: TimestampProvider;\n });\n\nexport const publishRef = <T>(bufferSizeOrConfig: PublishRefConfig<T> = {}) => {\n const {\n bufferSize = 1,\n windowTime,\n timestampProvider,\n connector = () =>\n new ReplaySubject(bufferSize, windowTime, timestampProvider),\n resetOnError = false,\n resetOnComplete = false,\n resetOnRefCountZero = true,\n } = typeof bufferSizeOrConfig === 'number'\n ? ({\n bufferSize: bufferSizeOrConfig,\n } as Exclude<PublishRefConfig<T>, number>)\n : bufferSizeOrConfig;\n return share<T>({\n connector,\n resetOnError,\n resetOnComplete,\n resetOnRefCountZero,\n });\n};\n","export function scrollIntoView(container: HTMLElement, selected: HTMLElement) {\n if (!selected) {\n container.scrollTop = 0;\n return;\n }\n\n const top = selected.offsetTop;\n const bottom = selected.offsetTop + selected.offsetHeight;\n const viewRectTop = container.scrollTop;\n const viewRectBottom = viewRectTop + container.clientHeight;\n\n if (viewRectTop > top) {\n container.scrollTop = top;\n } else if (viewRectBottom < bottom) {\n container.scrollTop = bottom - container.clientHeight;\n }\n}\n","import { QueryList } from '@angular/core';\nimport { map, startWith } from 'rxjs';\n\nimport { publishRef } from './operators';\n\nexport function watchContentExist(queryList: QueryList<unknown>) {\n return queryList.changes.pipe(\n startWith(queryList),\n map((list: QueryList<unknown>) => !!list.length),\n publishRef(),\n );\n}\n","export const auiIcons =\n '<svg><symbol id=\"aui-icon-sync_circle\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0a512 512 0 1 1 0 1024A512 512 0 0 1 512 0z m0 42.688a469.376 469.376 0 1 0 0 938.688A469.376 469.376 0 0 0 512 42.688z\" ></path><path d=\"M751.36 545.024c7.744 0 13.632 7.04 12.224 14.72a256 256 0 0 1-428.416 137.344l-36.864 36.864A24.768 24.768 0 0 1 256 716.416V578.048c0-13.696 11.136-24.768 24.768-24.768h138.368c22.144 0 33.152 26.688 17.536 42.24l-43.136 43.136a173.632 173.632 0 0 0 286.656-84.16 12.416 12.416 0 0 1 12.032-9.472h59.072z m-62.528-218.112l36.864-36.864a24.768 24.768 0 0 1 42.304 17.472v138.432a24.768 24.768 0 0 1-24.768 24.704H604.864a24.768 24.768 0 0 1-17.536-42.24l43.136-43.136a173.632 173.632 0 0 0-286.656 84.224 12.416 12.416 0 0 1-12.032 9.408h-59.072a12.416 12.416 0 0 1-12.288-14.592 256 256 0 0 1 428.416-137.408z\" ></path></symbol><symbol id=\"aui-icon-sync_circle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024z m148.032-670.336l-53.888 53.888a30.976 30.976 0 0 0 21.888 52.864h172.992A30.976 30.976 0 0 0 832 429.44V256.448a30.976 30.976 0 0 0-52.864-21.888l-46.08 46.08a320.064 320.064 0 0 0-535.488 171.776A15.488 15.488 0 0 0 212.8 470.72h73.92a15.552 15.552 0 0 0 15.04-11.84 217.024 217.024 0 0 1 210.048-163.648c55.552 0 107.904 20.672 148.224 58.432z m-437.12 209.92A30.976 30.976 0 0 0 192 594.56v172.992c0 27.584 33.344 41.408 52.864 21.888l46.08-46.08a320.128 320.128 0 0 0 535.488-171.776A15.488 15.488 0 0 0 811.2 553.28h-73.92a15.552 15.552 0 0 0-15.04 11.84 217.024 217.024 0 0 1-210.048 163.648 215.232 215.232 0 0 1-148.224-58.432l53.888-53.888a30.976 30.976 0 0 0-21.888-52.864H222.976z\" ></path></symbol><symbol id=\"aui-icon-angle_up\" viewBox=\"0 0 1024 1024\"><path d=\"M512 345.6a38.4 38.4 0 0 0-27.136 11.264l-256 256a38.272 38.272 0 0 0 0 54.272 38.272 38.272 0 0 0 54.272 0L512 438.336l228.864 228.8a38.272 38.272 0 0 0 54.272 0 38.272 38.272 0 0 0 0-54.272l-256-256A38.4 38.4 0 0 0 512 345.6\" ></path></symbol><symbol id=\"aui-icon-error_circle1\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0a512 512 0 1 1 0 1024A512 512 0 0 1 512 0z m0 42.688a469.312 469.312 0 1 0 0 938.688A469.312 469.312 0 0 0 512 42.688z m137.792 243.2c9.536 0 19.072 3.776 25.92 10.624l51.776 51.776c14.08 14.336 14.08 37.376 0 51.776L615.552 512l111.936 112c14.08 14.336 14.08 37.376 0 51.712l-51.776 51.776a36.928 36.928 0 0 1-51.776 0L512 615.552l-112 111.936a36.928 36.928 0 0 1-51.712 0l-51.776-51.776a36.928 36.928 0 0 1 0-51.776L408.448 512 296.512 400a36.928 36.928 0 0 1 0-51.712l51.776-51.776a36.928 36.928 0 0 1 51.776 0L512 408.448l112-111.936a36.736 36.736 0 0 1 25.792-10.624z\" ></path></symbol><symbol id=\"aui-icon-computer\" viewBox=\"0 0 1024 1024\"><path d=\"M896 128H128c-35.264 0-64 27.52-64 61.44v491.52c0 33.92 28.736 61.44 64 61.44h320v92.16H288a31.36 31.36 0 0 0-32 30.72V896h512v-30.72a31.36 31.36 0 0 0-32-30.72H576V742.4h320c35.392 0 64-27.52 64-61.44V189.44c0-33.92-28.608-61.44-64-61.44z m-416 552.96a31.36 31.36 0 0 1 32-30.72c17.728 0 32 13.76 32 30.72a31.36 31.36 0 0 1-32 30.72 31.36 31.36 0 0 1-32-30.72zM300.352 361.28l-24.32 108.736h-36.8l-45.44-159.872h36.8l26.88 103.552 24.64-103.552h36.48l24 103.552 27.264-103.552h73.92l26.88 103.552 24.64-103.552h36.48l24 103.552 27.264-103.552h73.92l26.88 103.552 24.64-103.552h36.48l24 103.552 27.52-103.552h37.504l-46.08 159.872h-36.48l-24.704-108.736-24.32 108.736H665.6l-45.12-159.232-45.76 159.232h-36.48l-24.704-108.736-24.32 108.736h-36.8L407.232 310.4l-45.76 159.552h-36.48l-24.704-108.736 0.064 0.064zM128.064 619.52V189.44h768v430.08H128h0.064z\" ></path></symbol><symbol id=\"aui-icon-square_s\" viewBox=\"0 0 1024 1024\"><path d=\"M950.857143 0a73.142857 73.142857 0 0 1 73.142857 73.142857v877.714286a73.142857 73.142857 0 0 1-73.142857 73.142857H73.142857a73.142857 73.142857 0 0 1-73.142857-73.142857V73.142857a73.142857 73.142857 0 0 1 73.142857-73.142857h877.714286z m-182.857143 219.428571h-512a36.571429 36.571429 0 0 0-35.986286 29.988572L219.428571 256v512a36.571429 36.571429 0 0 0 29.988572 35.986286L256 804.571429h512a36.571429 36.571429 0 0 0 35.986286-29.988572L804.571429 768v-512a36.571429 36.571429 0 0 0-29.988572-35.986286L768 219.428571z\" ></path></symbol><symbol id=\"aui-icon-close_small\" viewBox=\"0 0 1024 1024\"><path d=\"M597.333333 512l170.666667-170.666667a60.672 60.672 0 0 0 0-85.333333 60.672 60.672 0 0 0-85.333333 0L512 426.666667 341.333333 256a60.672 60.672 0 0 0-85.333333 0 60.672 60.672 0 0 0 0 85.333333l170.666667 170.666667-170.666667 170.666667a60.672 60.672 0 0 0 0 85.333333 60.672 60.672 0 0 0 85.333333 0l170.666667-170.666667 170.666667 170.666667a60.672 60.672 0 0 0 85.333333 0 60.672 60.672 0 0 0 0-85.333333L597.333333 512z\" ></path></symbol><symbol id=\"aui-icon-check_circle\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0c282.752 0 512 229.248 512 512s-229.248 512-512 512S0 794.752 0 512 229.248 0 512 0z m0 42.666667C252.8 42.666667 42.666667 252.8 42.666667 512s210.133333 469.333333 469.333333 469.333333 469.333333-210.133333 469.333333-469.333333S771.2 42.666667 512 42.666667z m192 298.666666L768 409.088 469.333333 725.333333l-170.666666-180.693333 64-67.797333 106.666666 112.981333L704 341.333333z\" ></path></symbol><symbol id=\"aui-icon-close\" viewBox=\"0 0 1024 1024\"><path d=\"M597.333 512l341.334-341.333a60.672 60.672 0 0 0 0-85.334 60.672 60.672 0 0 0-85.334 0L512 426.667 170.667 85.333a60.672 60.672 0 0 0-85.334 0 60.672 60.672 0 0 0 0 85.334L426.667 512 85.333 853.333a60.672 60.672 0 0 0 0 85.334 60.672 60.672 0 0 0 85.334 0L512 597.333l341.333 341.334a60.672 60.672 0 0 0 85.334 0 60.672 60.672 0 0 0 0-85.334L597.333 512z\" ></path></symbol><symbol id=\"aui-icon-arrow\" viewBox=\"0 0 1024 1024\"><path d=\"M700.352 180.16l301.696 301.696a42.56 42.56 0 0 1 0 60.288l-301.696 301.696a42.688 42.688 0 1 1-60.352-60.288l228.8-228.928H52.16a42.688 42.688 0 0 1 0-85.312h816.64L640 240.448a42.688 42.688 0 0 1 60.352-60.288z\" ></path></symbol><symbol id=\"aui-icon-time\" viewBox=\"0 0 1024 1024\"><path d=\"M567.678 277.319v278.584a20.735 20.735 0 0 1-5.951 15.36 20.735 20.735 0 0 1-15.36 5.951h-192.25a20.735 20.735 0 0 1-15.36-6.016 20.735 20.735 0 0 1-5.952-15.36V523.2c0-6.208 1.984-11.328 6.016-15.36a20.735 20.735 0 0 1 15.36-5.952h145.915v-224.57c0-6.207 1.92-11.327 5.952-15.359a20.735 20.735 0 0 1 15.36-5.952h24.959c6.208 0 11.328 1.984 15.36 6.016a20.735 20.735 0 0 1 6.015 15.36z m318.327 451.443A422.26 422.26 0 0 0 943.988 512a422.26 422.26 0 0 0-57.983-216.762 430.644 430.644 0 0 0-157.243-157.243A422.26 422.26 0 0 0 512 80.012a422.26 422.26 0 0 0-216.762 57.983 430.644 430.644 0 0 0-157.243 157.243A422.26 422.26 0 0 0 80.012 512c0 78.334 19.328 150.588 57.983 216.762a430.644 430.644 0 0 0 157.243 157.243A422.26 422.26 0 0 0 512 943.988a422.26 422.26 0 0 0 216.762-57.983 430.644 430.644 0 0 0 157.243-157.243z m69.31-473.395A499.058 499.058 0 0 1 1023.985 512c0 92.861-22.911 178.555-68.67 257.017a509.681 509.681 0 0 1-186.298 186.298A500.85 500.85 0 0 1 512 1023.985a500.85 500.85 0 0 1-257.017-68.67A509.681 509.681 0 0 1 68.685 769.017 500.85 500.85 0 0 1 0.015 512c0-92.861 22.911-178.555 68.67-257.017A509.681 509.681 0 0 1 254.983 68.685 500.85 500.85 0 0 1 512 0.015c92.861 0 178.555 22.911 257.017 68.67a508.913 508.913 0 0 1 186.298 186.682z\" ></path></symbol><symbol id=\"aui-icon-calendar\" viewBox=\"0 0 1024 1024\"><path d=\"M332.8 25.6L332.736 128h358.4L691.2 25.6H768L767.936 128H947.2v870.4H76.8V128h179.136L256 25.6h76.8zM255.936 209.6H158.4v707.2h707.2V209.6h-97.664L768 256h-76.8l-0.064-46.4h-358.4L332.8 256H256l-0.064-46.4zM704 601.6v76.8H320V601.6h384z m0-192v76.8H320V409.6h384z\" ></path></symbol><symbol id=\"aui-icon-check_circle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024zM248 536l192 192 336-336L704 320 440 584 320 464 248 536z\" ></path></symbol><symbol id=\"aui-icon-close_circle_small_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024z m85.333333-512l170.666667-170.666667a60.672 60.672 0 0 0 0-85.333333 60.672 60.672 0 0 0-85.333333 0L512 426.666667 341.333333 256a60.672 60.672 0 0 0-85.333333 0 60.672 60.672 0 0 0 0 85.333333l170.666667 170.666667-170.666667 170.666667a60.672 60.672 0 0 0 0 85.333333 60.672 60.672 0 0 0 85.333333 0l170.666667-170.666667 170.666667 170.666667a60.672 60.672 0 0 0 85.333333 0 60.672 60.672 0 0 0 0-85.333333L597.333333 512z\" ></path></symbol><symbol id=\"aui-icon-angle_down\" viewBox=\"0 0 1024 1024\"><path d=\"M512 678.4a38.4 38.4 0 0 1-27.136-11.264l-256-256a38.272 38.272 0 0 1 0-54.272 38.272 38.272 0 0 1 54.272 0L512 585.664l228.864-228.8a38.272 38.272 0 0 1 54.272 0 38.272 38.272 0 0 1 0 54.272l-256 256A38.4 38.4 0 0 1 512 678.4\" ></path></symbol><symbol id=\"aui-icon-angle_double_left\" viewBox=\"0 0 1024 1024\"><path d=\"M568.64 749.44a19.776 19.776 0 0 1-5.696 13.12l-28.544 28.544a19.584 19.584 0 0 1-13.12 5.696 19.776 19.776 0 0 1-13.12-5.696L241.856 524.8a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12L508.16 232.256a19.584 19.584 0 0 1 13.12-5.696c4.544 0 9.728 2.304 13.12 5.696l28.544 28.544a19.584 19.584 0 0 1 5.696 13.12 19.776 19.776 0 0 1-5.696 13.12L338.368 511.616l224.576 224.576a19.584 19.584 0 0 1 5.696 13.12v0.128z m219.456 0a19.776 19.776 0 0 1-5.696 13.12l-28.544 28.544a19.584 19.584 0 0 1-13.12 5.696 19.776 19.776 0 0 1-13.12-5.696L461.312 524.8a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l266.304-266.304a19.584 19.584 0 0 1 13.12-5.696c4.544 0 9.728 2.304 13.12 5.696l28.544 28.544a19.584 19.584 0 0 1 5.696 13.12 19.776 19.776 0 0 1-5.696 13.12L557.824 511.616l224.576 224.576a19.584 19.584 0 0 1 5.696 13.12v0.128z\" ></path></symbol><symbol id=\"aui-icon-angle_double_right\" viewBox=\"0 0 1024 1024\"><path d=\"M568.64 511.552a19.776 19.776 0 0 1-5.696 13.12l-266.304 266.304a19.584 19.584 0 0 1-13.12 5.696 19.776 19.776 0 0 1-13.12-5.696l-28.544-28.544a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l224.576-224.576-224.576-224.576a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l28.544-28.544a19.584 19.584 0 0 1 13.12-5.696c4.544 0 9.728 2.304 13.12 5.696L562.944 498.56a19.584 19.584 0 0 1 5.696 13.12v-0.128z m219.392 0a19.776 19.776 0 0 1-5.696 13.12l-266.304 266.304a19.584 19.584 0 0 1-13.12 5.696 19.776 19.776 0 0 1-13.12-5.696l-28.544-28.544a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l224.576-224.576-224.576-224.576a19.584 19.584 0 0 1-5.696-13.12c0-4.544 2.304-9.728 5.696-13.12l28.544-28.544a19.584 19.584 0 0 1 13.12-5.696c4.544 0 9.728 2.304 13.12 5.696l266.304 266.304a19.584 19.584 0 0 1 5.696 13.12v-0.128z\" ></path></symbol><symbol id=\"aui-icon-caret_down_s\" viewBox=\"0 0 1024 1024\"><path d=\"M269.248 384h485.504a32 32 0 0 1 22.592 54.656l-242.688 242.688a32 32 0 0 1-45.312 0L246.656 438.656A32 32 0 0 1 269.248 384z\" ></path></symbol><symbol id=\"aui-icon-angle_left\" viewBox=\"0 0 1024 1024\"><path d=\"M345.6 512a38.4 38.4 0 0 1 11.264-27.136l256-256a38.272 38.272 0 0 1 54.272 0 38.272 38.272 0 0 1 0 54.272L438.336 512l228.8 228.864a38.272 38.272 0 0 1 0 54.272 38.272 38.272 0 0 1-54.272 0l-256-256A38.4 38.4 0 0 1 345.6 512\" ></path></symbol><symbol id=\"aui-icon-check_triangle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M1024 1024H0L1024 0v1024z m-544-288L640 896l256-256-64-64-192 192-96-96-64 64z\" ></path></symbol><symbol id=\"aui-icon-check\" viewBox=\"0 0 1024 1024\"><path d=\"M974.656 224.96c11.552 12.064 17.344 26.72 17.344 43.968s-5.792 31.904-17.344 43.968L442.016 868.864c-11.552 12.064-25.6 18.112-42.112 18.112s-30.56-6.048-42.112-18.112L49.344 546.912C37.792 534.848 32 520.192 32 502.944s5.792-31.904 17.344-43.968l84.224-87.904c11.552-12.064 25.6-18.112 42.112-18.112s30.56 6.048 42.112 18.112l182.08 190.72L806.176 137.056c11.552-12.064 25.6-18.112 42.112-18.112s30.56 6.048 42.112 18.112l84.224 87.904z\" ></path></symbol><symbol id=\"aui-icon-ellipsis_h_s\" viewBox=\"0 0 1024 1024\"><path d=\"M192 416a96 96 0 1 1 0 192 96 96 0 0 1 0-192z m320 0a96 96 0 1 1 0 192 96 96 0 0 1 0-192z m320 0a96 96 0 1 1 0 192 96 96 0 0 1 0-192z\" ></path></symbol><symbol id=\"aui-icon-exclamation_circle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0c282.688 0 512 229.312 512 512s-229.312 512-512 512-512-229.312-512-512 229.312-512 512-512z m85.312 831.36v-126.72c0-11.968-9.344-21.952-20.672-21.952h-128a22.208 22.208 0 0 0-21.952 21.952v126.72c0 11.968 9.984 21.952 21.952 21.952h128c11.392 0 20.672-9.984 20.672-21.952z m-1.28-229.376L608 187.968a13.376 13.376 0 0 0-6.656-11.968 25.664 25.664 0 0 0-16-5.312H438.656a25.664 25.664 0 0 0-16 5.312 13.376 13.376 0 0 0-6.656 12.032l11.328 413.952c0 9.344 9.984 16.64 22.656 16.64h123.328c12.032 0 22.016-7.296 22.656-16.64z\" ></path></symbol><symbol id=\"aui-icon-check_s\" viewBox=\"0 0 1024 1024\"><path d=\"M169.024 534.976L247.04 456.96a12.8 12.8 0 0 1 18.048 0L416 608l342.976-342.976a12.8 12.8 0 0 1 18.048 0L855.04 343.04a12.8 12.8 0 0 1 0 18.048L424.96 791.04a12.8 12.8 0 0 1-18.048 0L168.96 552.96a12.8 12.8 0 0 1 0-18.048z\" ></path></symbol><symbol id=\"aui-icon-compress_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 549.952v265.856c0 10.24-3.776 19.2-11.264 26.688a36.48 36.48 0 0 1-26.688 11.264 36.48 36.48 0 0 1-26.752-11.264L361.856 757.12l-196.992 196.992a18.752 18.752 0 0 1-27.264 0L69.952 886.4a18.752 18.752 0 0 1 0-27.264l196.992-196.992L181.504 576.64a36.48 36.48 0 0 1-11.264-26.752c0-10.24 3.712-19.2 11.264-26.688A36.48 36.48 0 0 1 208.192 512h265.856c10.24 0 19.2 3.776 26.688 11.264A36.48 36.48 0 0 1 512 549.952z m442.048-412.352a18.752 18.752 0 0 1 0 27.264L757.12 361.856l85.44 85.44a36.48 36.48 0 0 1 11.264 26.752c0 10.24-3.712 19.2-11.264 26.688a36.48 36.48 0 0 1-26.688 11.264H549.952a36.48 36.48 0 0 1-26.688-11.264A36.48 36.48 0 0 1 512 474.048V208.192c0-10.24 3.776-19.2 11.264-26.688a36.48 36.48 0 0 1 26.688-11.264c10.304 0 19.2 3.712 26.752 11.264l85.44 85.44 196.992-196.992a18.752 18.752 0 0 1 27.264 0l67.648 67.648z\" ></path></symbol><symbol id=\"aui-icon-angle_right\" viewBox=\"0 0 1024 1024\"><path d=\"M678.4 512a38.4 38.4 0 0 1-11.264 27.136l-256 256a38.272 38.272 0 0 1-54.272 0 38.272 38.272 0 0 1 0-54.272L585.664 512 356.864 283.136a38.272 38.272 0 0 1 0-54.272 38.272 38.272 0 0 1 54.272 0l256 256A38.4 38.4 0 0 1 678.4 512\" ></path></symbol><symbol id=\"aui-icon-export\" viewBox=\"0 0 1024 1024\"><path d=\"M729.6 624H448v-96h281.6V452.352a32 32 0 0 1 52.48-24.64l148.48 123.712a32 32 0 0 1 0 49.152l-148.48 123.712a32 32 0 0 1-52.48-24.64V624zM832 384h-64V128H128v768h640v-128h64v128a64 64 0 0 1-64 64H128a64 64 0 0 1-64-64V128a64 64 0 0 1 64-64h640a64 64 0 0 1 64 64v256z\" ></path></symbol><symbol id=\"aui-icon-import\" viewBox=\"0 0 1024 1024\"><path d=\"M678.4 528H960v96h-281.6v75.648a32 32 0 0 1-52.48 24.64L477.44 600.576a32 32 0 0 1 0-49.152l148.48-123.712a32 32 0 0 1 52.48 24.64V528zM832 384h-64V128H128v768h640v-128h64v128a64 64 0 0 1-64 64H128a64 64 0 0 1-64-64V128a64 64 0 0 1 64-64h640a64 64 0 0 1 64 64v256z\" ></path></symbol><symbol id=\"aui-icon-exclamation_triangle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M585.152 849.792V741.12a18.56 18.56 0 0 0-18.304-18.88H457.152a18.56 18.56 0 0 0-18.304 18.88v108.608c0 10.24 8 18.88 18.304 18.88h109.696a18.56 18.56 0 0 0 18.304-18.88z m-1.152-213.76l10.24-262.272a13.824 13.824 0 0 0-5.632-10.88c-3.456-2.816-8.576-6.272-13.76-6.272H449.152c-5.12 0-10.24 3.456-13.696 6.272-3.968 2.88-5.76 8.576-5.76 12.032l9.792 261.12c0 7.488 8.576 13.184 19.392 13.184h105.728c10.304 0 18.88-5.76 19.456-13.12zM576 102.336l438.912 804.672a73.088 73.088 0 0 1-64 108.032H73.088c-25.664 0-49.664-13.76-62.848-36.032a72 72 0 0 1-1.152-72L448 102.272a72.704 72.704 0 0 1 128 0z\" ></path></symbol><symbol id=\"aui-icon-expand_s\" viewBox=\"0 0 1024 1024\"><path d=\"M498.56 591.936a18.432 18.432 0 0 1 0 26.816l-193.664 193.664 84.032 84.032a35.84 35.84 0 0 1 11.072 26.24 35.84 35.84 0 0 1-11.072 26.24 35.84 35.84 0 0 1-26.24 11.072H101.312a35.84 35.84 0 0 1-26.24-11.072 35.84 35.84 0 0 1-11.072-26.24v-261.376a35.84 35.84 0 0 1 11.072-26.24 35.84 35.84 0 0 1 26.24-11.072 35.84 35.84 0 0 1 26.24 11.072l84.032 84.032L405.248 525.44a18.432 18.432 0 0 1 26.88 0L498.56 591.936zM960 101.312v261.376a35.84 35.84 0 0 1-11.072 26.24 35.84 35.84 0 0 1-26.24 11.072 35.84 35.84 0 0 1-26.24-11.072l-84.032-84.032L618.752 498.56a18.432 18.432 0 0 1-26.88 0L525.44 432.064a18.432 18.432 0 0 1 0-26.816l193.664-193.664-84.032-84.032a35.84 35.84 0 0 1-11.072-26.24 35.84 35.84 0 0 1 11.072-26.24 35.84 35.84 0 0 1 26.24-11.072h261.376a35.84 35.84 0 0 1 26.24 11.072 35.84 35.84 0 0 1 11.072 26.24z\" ></path></symbol><symbol id=\"aui-icon-minus_s\" viewBox=\"0 0 1024 1024\"><path d=\"M256 448h512a64 64 0 0 1 0 128H256a64 64 0 0 1 0-128\" ></path></symbol><symbol id=\"aui-icon-minus\" viewBox=\"0 0 1024 1024\"><path d=\"M904 448H120C86.4 448 64 470.4 64 504s22.4 56 56 56h784c33.6 0 56-22.4 56-56S937.6 448 904 448z\" ></path></symbol><symbol id=\"aui-icon-info_circle_s\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0a512 512 0 1 1 0 1024A512 512 0 0 1 512 0zM448 304v32c0 26.368 21.632 48 48 48h32c26.368 0 48-21.632 48-48v-32A48.192 48.192 0 0 0 528 256h-32a48.192 48.192 0 0 0-48 48zM640 768v-64H576V448H384v64h64v192H384v64h256z\" ></path></symbol><symbol id=\"aui-icon-navigation_expand\" viewBox=\"0 0 1024 1024\"><path d=\"M512 192l256 320-256 320H448V192h64zM256 192h64v640H256V192z\" ></path></symbol><symbol id=\"aui-icon-copy\" viewBox=\"0 0 1024 1024\"><path d=\"M742.848 865.728v40.768c0 29.44-25.088 53.504-55.936 53.504h-503.04C153.152 960 128 936 128 906.496V226.816c0-29.568 25.088-53.568 55.936-53.568h124.096v-40.96c0-37.76 29.824-68.288 66.624-68.288h271.36C784.192 64 896 178.56 896 320v477.44c0 37.76-29.824 68.288-66.624 68.288h-86.528z m0-51.2h86.528c9.152 0 16.64-7.616 16.64-17.024V319.936c0-113.088-89.536-204.8-199.936-204.8h-271.36c-9.28 0-16.704 7.68-16.704 17.088v41.024h192.768c128 127.744 192.064 192.768 192.064 195.008v446.272z m-52.608 95.104V388.864h-197.12V223.68H180.672v685.952h509.568zM533.44 347.52h126.912L533.504 223.488V347.52z\" ></path></symbol><symbol id=\"aui-icon-plus\" viewBox=\"0 0 1024 1024\"><path d=\"M904 456h-336v-336C568 86.4 545.6 64 512 64s-56 22.4-56 56v336h-336C86.4 456 64 478.4 64 512s22.4 56 56 56h336v336c0 33.6 22.4 56 56 56s56-22.4 56-56v-336h336c33.6 0 56-22.4 56-56s-22.4-56-56-56z\" ></path></symbol><symbol id=\"aui-icon-back_top\" viewBox=\"0 0 1024 1024\"><path d=\"M545.07353 181.552571a42.2855 42.2855 0 0 0-34.480914-12.346599l-0.511776 0.063972a37.551571 37.551571 0 0 0-1.471357 0.191916c-0.383832 0-0.703692 0.127944-1.023552 0.191916l-1.023552 0.127944a42.413444 42.413444 0 0 0-1.27944 0.319861l-0.63972 0.127944a37.103767 37.103767 0 0 0-1.471357 0.447804l-0.511776 0.127944a39.150871 39.150871 0 0 0-1.535328 0.511776l-0.447804 0.127944a43.820828 43.820828 0 0 0-1.535328 0.63972l-0.383833 0.063972a36.400075 36.400075 0 0 0-1.5993 0.703692l-0.255888 0.127944a44.460549 44.460549 0 0 0-1.663272 0.831636l-0.191916 0.127944a44.652465 44.652465 0 0 0-10.939214 8.316362L117.804461 551.502718a43.24508 43.24508 0 0 0 0 60.773411c16.632723 16.760667 43.692884 16.760667 60.325607 0l294.271256-296.510277v665.180984a42.861248 42.861248 0 0 0 42.541389 43.053164h-0.191916a42.733304 42.733304 0 0 0 42.477416-43.053164v-665.308928l294.463172 296.446305c16.632723 16.760667 43.692884 16.632723 60.325608-0.255888a42.989192 42.989192 0 0 0 0.063972-60.517523l-367.007435-369.758231zM991.790092 43.181108a42.60536 42.60536 0 0 0-42.477416-42.733304H74.687324C51.209596 0.447804 32.209908 19.575436 32.209908 43.181108c0 23.669645 18.999688 42.861248 42.477416 42.861248h874.625352c23.477728 0 42.477416-19.191604 42.477416-42.861248z\" ></path></symbol><symbol id=\"aui-icon-moon\" viewBox=\"0 0 1024 1024\"><path d=\"M831.68 749.568c-21.952 3.456-44.224 5.248-66.944 5.248a414.592 414.592 0 0 1-204.992-52.48 396.16 396.16 0 0 1-148.992-142.848 372.224 372.224 0 0 1-54.784-196.48c0-74.56 21.12-144 63.296-208.064a381.44 381.44 0 0 0-199.872 133.504 352.256 352.256 0 0 0-77.504 223.872c0 50.496 10.304 98.752 30.976 144.832 20.672 46.08 48.384 85.696 83.072 118.912 34.624 33.28 76.032 59.776 124.096 79.616 48 19.84 98.432 29.696 151.104 29.696 58.432 0 113.92-11.968 166.4-35.84a386.24 386.24 0 0 0 134.144-99.968z m123.456-49.536c-38.144 78.848-95.616 141.888-172.48 189.12A471.424 471.424 0 0 1 531.2 960a471.552 471.552 0 0 1-181.248-35.584 473.088 473.088 0 0 1-149.056-95.552 451.008 451.008 0 0 1-99.712-142.848A420.032 420.032 0 0 1 64 512.32c0-59.52 11.648-116.352 35.008-170.56a442.112 442.112 0 0 1 94.848-140.8 465.856 465.856 0 0 1 143.232-95.872 481.472 481.472 0 0 1 176.448-39.936c17.856-0.768 30.208 6.784 37.12 22.72 7.296 16 4.224 29.952-9.152 41.984a310.912 310.912 0 0 0-80 105.792 301.952 301.952 0 0 0-27.648 127.36c0 57.6 14.784 110.592 44.416 159.168 29.568 48.64 69.76 87.04 120.384 115.456a334.272 334.272 0 0 0 166.08 42.56c47.872 0 94.08-9.92 138.688-29.76 16.64-6.976 31.232-4.48 43.776 7.616a35.648 35.648 0 0 1 10.688 19.84 36.032 36.032 0 0 1-2.752 22.144z\" ></path></symbol><symbol id=\"aui-icon-navigation_collapse\" viewBox=\"0 0 1024 1024\"><path d=\"M512 832L256 512l256-320h64v640H512z m192-640h64v640h-64V192z\" ></path></symbol><symbol id=\"aui-icon-close_circle\" viewBox=\"0 0 1024 1024\"><path d=\"M512 0C229.12 0 0 229.12 0 512s229.12 512 512 512 512-229.12 512-512-229.12-512-512-512z m0 924.928A412.8 412.8 0 0 1 99.072 512 412.8 412.8 0 0 1 512 99.072 412.8 412.8 0 0 1 924.928 512 412.8 412.8 0 0 1 512 924.928z m210.176-541.312L593.728 512l128.448 128.384a24.768 24.768 0 0 1 0 35.136l-46.72 46.656a24.768 24.768 0 0 1-35.072 0L512 593.728l-128.384 128.448a24.768 24.768 0 0 1-35.136 0l-46.656-46.72a24.768 24.768 0 0 1 0-35.072L430.272 512 301.824 383.616a24.768 24.768 0 0 1 0-35.136l46.72-46.656a24.768 24.768 0 0 1 35.072 0L512 430.272l128.384-128.448a24.768 24.768 0 0 1 35.136 0l46.656 46.72a24.768 24.768 0 0 1 0 35.072z\" ></path></symbol><symbol id=\"aui-icon-sun\" viewBox=\"0 0 1024 1024\"><path d=\"M787.392 623.808c16-35.712 24.064-73.024 24.064-112 0-39.04-7.936-76.352-23.808-111.872a288.96 288.96 0 0 0-64.32-92.032A303.68 303.68 0 0 0 627.2 246.336a305.792 305.792 0 0 0-116.8-22.72c-40.768 0-79.744 7.552-116.864 22.72-37.12 15.168-69.12 35.712-96.192 61.568a288.96 288.96 0 0 0-64.256 92.032 271.296 271.296 0 0 0-23.808 111.808c0 39.04 7.936 76.288 23.808 111.808a288.96 288.96 0 0 0 64.256 92.032c27.008 25.856 59.072 46.4 96.192 61.568 37.12 15.168 76.096 22.784 116.864 22.784s79.68-7.616 116.8-22.784a303.68 303.68 0 0 0 96.192-61.568 286.272 286.272 0 0 0 64-91.776z m168.32 26.496c-1.408 5.056-4.864 8.32-10.432 10.048l-152.704 48v153.088a15.424 15.424 0 0 1-6.784 12.992c-5.184 3.328-10.24 4.032-15.168 2.048l-152.64-47.04-94.08 124.032a16.64 16.64 0 0 1-13.568 6.528 16.64 16.64 0 0 1-13.632-6.528l-94.08-124.032-152.64 47.04c-4.864 1.92-9.92 1.28-15.168-2.048a15.424 15.424 0 0 1-6.784-12.992v-153.088l-152.64-48c-5.568-1.664-9.088-4.992-10.432-10.048-1.792-5.632-1.088-10.496 2.048-14.464l94.08-124.096-94.08-124.032a15.36 15.36 0 0 1-2.048-14.528c1.344-4.992 4.864-8.32 10.432-10.048l152.64-48V162.048c0-5.312 2.24-9.664 6.784-12.992 5.248-3.328 10.24-4.032 15.168-1.984l152.64 46.976 94.08-124.032A16.256 16.256 0 0 1 510.336 64c5.888 0 10.432 1.984 13.568 6.016l94.08 124.032 152.64-46.976c4.928-2.048 9.984-1.344 15.168 1.92 4.544 3.392 6.784 7.68 6.784 13.056v153.088l152.704 48c5.568 1.728 9.024 5.056 10.432 10.048a15.36 15.36 0 0 1-2.112 14.528l-94.08 124.032 94.08 124.096c3.2 3.968 3.84 8.832 2.112 14.464z\" ></path></symbol><symbol id=\"aui-icon-search_s\" viewBox=\"0 0 1024 1024\"><path d=\"M613.248 613.76c47.36-47.36 71.04-104.32 71.04-170.688 0-66.432-23.552-123.2-70.784-170.432-47.232-47.168-104-70.784-170.432-70.784-66.432 0-123.2 23.616-170.432 70.784-47.168 47.232-70.784 104-70.784 170.432 0 66.432 23.616 123.2 70.784 170.432 47.232 47.232 104 70.784 170.432 70.784A231.872 231.872 0 0 0 613.248 613.76zM960 891.072c0 18.688-6.848 34.816-20.48 48.448-13.632 13.632-29.76 20.48-48.448 20.48a64 64 0 0 1-48.448-20.48l-184.704-184.128a368.704 368.704 0 0 1-214.848 66.752 372.48 372.48 0 0 1-147.264-29.888 379.008 379.008 0 0 1-121.152-80.768 379.008 379.008 0 0 1-80.768-121.152A372.48 372.48 0 0 1 64 443.136c0-51.392 9.984-100.48 29.888-147.328a379.008 379.008 0 0 1 80.768-121.152c33.92-33.92 74.304-60.8 121.152-80.768A372.48 372.48 0 0 1 443.072 64c51.328 0 100.48 9.984 147.264 29.888a379.008 379.008 0 0 1 121.152 80.768c33.92 33.92 60.8 74.304 80.768 121.152a372.48 372.48 0 0 1 29.888 147.264 368.704 368.704 0 0 1-66.752 214.848l184.704 184.704c13.248 13.248 19.904 29.44 19.904 48.448z\" ></path></symbol><symbol id=\"aui-icon-history_s\" viewBox=\"0 0 1024 1024\"><path d=\"M924.416 338.176A435.84 435.84 0 0 1 960 512a435.84 435.84 0 0 1-35.584 173.824 451.968 451.968 0 0 1-95.68 142.912 451.968 451.968 0 0 1-142.912 95.68A435.84 435.84 0 0 1 512 960a444.8 444.8 0 0 1-190.72-42.24 437.952 437.952 0 0 1-154.048-119.36 20.8 20.8 0 0 1-3.776-13.12 17.28 17.28 0 0 1 4.992-11.968l79.872-80.448a20.992 20.992 0 0 1 14.592-5.312c6.208 0.832 10.688 3.2 13.44 7.04a292.8 292.8 0 0 0 104.384 85.76A294.144 294.144 0 0 0 512 810.688c40.448 0 79.04-7.872 115.84-23.68a300.928 300.928 0 0 0 95.36-63.872c26.816-26.816 48.064-58.624 63.872-95.36 15.744-36.736 23.616-75.328 23.616-115.776 0-40.448-7.872-79.04-23.68-115.84A300.928 300.928 0 0 0 723.2 300.8a300.928 300.928 0 0 0-95.36-63.872A290.944 290.944 0 0 0 512 213.312c-38.08 0-74.688 6.912-109.696 20.736a289.792 289.792 0 0 0-93.312 59.2L388.928 373.76c12.032 11.648 14.72 25.088 8.128 40.256-6.592 15.552-18.048 23.296-34.368 23.296H101.312a35.84 35.84 0 0 1-26.24-11.072A35.84 35.84 0 0 1 64 400V138.688c0-16.384 7.808-27.84 23.36-34.432 15.168-6.592 28.544-3.84 40.192 8.192l75.84 75.2a452.8 452.8 0 0 1 142.656-91.264A439.424 439.424 0 0 1 512 64a435.84 435.84 0 0 1 173.824 35.584c55.232 23.68 102.848 55.616 142.912 95.68a451.968 451.968 0 0 1 95.68 142.912z m-337.728 5.824v261.312a18.176 18.176 0 0 1-5.248 13.44 18.176 18.176 0 0 1-13.44 5.248H381.312a18.176 18.176 0 0 1-13.44-5.248 18.176 18.176 0 0 1-5.184-13.44v-37.312c0-5.44 1.728-9.92 5.248-13.44a18.176 18.176 0 0 1 13.44-5.248H512V344c0-5.44 1.728-9.92 5.248-13.44a18.176 18.176 0 0 1 13.44-5.248h37.312c5.44 0 9.92 1.792 13.44 5.248a18.176 18.176 0 0 1 5.248 13.44z\" ></path></symbol></svg>';\n","export function getAuiIconNoHttpProviderError(): Error {\n return new Error(\n 'Could not find HttpClient provider for use with Alauda UI icons. Please include the HttpClientModule from @angular/common/http in your app imports.',\n );\n}\n\nexport function getAuiIconFailedToLoadCustomIconFile(url: string) {\n return new Error(`AuiIcon failed to load custom icon file: ${url}.`);\n}\n","import { DOCUMENT } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, Optional, SkipSelf } from '@angular/core';\n\nimport { auiIcons } from './icons';\nimport {\n getAuiIconFailedToLoadCustomIconFile,\n getAuiIconNoHttpProviderError,\n} from './utils';\n\n@Injectable()\nexport class IconRegisterService {\n private defaultIconPrefix = 'aui-icon';\n private readonly doc: Document;\n\n constructor(\n @Optional()\n @Inject(DOCUMENT)\n document: any,\n @Optional() private readonly httpClient: HttpClient,\n ) {\n this.doc = document;\n this.registerSvgSymbolsByString(auiIcons);\n }\n\n getDefaultIconPrefix(): string {\n return this.defaultIconPrefix;\n }\n\n replaceDefaultIconPrefix(prefix: string): void {\n this.defaultIconPrefix = prefix;\n }\n\n registerSvgSymbolsByUrl(url: string) {\n if (!this.httpClient) {\n throw getAuiIconNoHttpProviderError();\n }\n this.httpClient\n .get(url, {\n responseType: 'text',\n })\n .subscribe({\n next: res => {\n this.registerSvgSymbolsByString(res);\n },\n error() {\n throw getAuiIconFailedToLoadCustomIconFile(url);\n },\n });\n }\n\n registerSvgSymbolsByString(str: string) {\n this.appendSvg(str);\n }\n\n private appendSvg(svgString: string) {\n const setEl = this.doc.createElement('div');\n setEl.className = 'aui-icon-set';\n setEl.style.display = 'none';\n setEl.innerHTML = svgString;\n this.doc.body.append(setEl);\n }\n}\n\n// eslint-disable-next-line sonar/function-name\nexport function ICON_REGISTER_PROVIDER_FACTORY(\n parentRegister: IconRegisterService,\n document: Document,\n httpClient: HttpClient,\n) {\n return parentRegister || new IconRegisterService(document, httpClient);\n}\n\nexport const ICON_REGISTER_SERVICE_PROVIDER = {\n provide: IconRegisterService,\n deps: [\n [new Optional(), new SkipSelf(), IconRegisterService],\n [new Optional(), DOCUMENT],\n [new Optional(), HttpClient],\n ],\n useFactory: ICON_REGISTER_PROVIDER_FACTORY,\n};\n","export function rgbColor(color: string): string {\n return `rgb(var(--aui-color-${color}))`;\n}\n\nexport function rgbaColor([color, opacity]: [string, number]) {\n return `rgba(var(--aui-color-${color}), ${opacity})`;\n}\n\nexport function cssVar(value: string) {\n return `var(--aui-${value})`;\n}\n","import { Injectable } from '@angular/core';\nimport { ReplaySubject, distinctUntilChanged } from 'rxjs';\n\nimport { Theme, ThemeMode } from './theme.types';\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly htmlEl: HTMLHtmlElement;\n private browserTheme: Theme;\n private themeMode: ThemeMode;\n\n private readonly currentAppTheme$$ = new ReplaySubject<Theme>(1);\n\n readonly currentTheme$ = this.currentAppTheme$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n constructor() {\n this.htmlEl = document.querySelector('html')!;\n\n switch (this.htmlEl.getAttribute('aui-theme-mode')) {\n case 'dark':\n this.themeMode = 'dark';\n break;\n case 'light':\n this.themeMode = 'light';\n break;\n case 'system':\n this.themeMode = 'system';\n break;\n default:\n this.themeMode = 'light';\n }\n\n const darkModeQuery = window.matchMedia('(prefers-color-scheme: dark)');\n this.browserTheme = darkModeQuery.matches ? 'dark' : 'light';\n\n darkModeQuery.addEventListener('change', ({ matches }) => {\n this.browserTheme = matches ? 'dark' : 'light';\n if (this.themeMode === 'system') {\n this.themeChanged();\n }\n });\n\n this.themeChanged();\n }\n\n setThemeMode(mode: ThemeMode) {\n this.htmlEl.setAttribute('aui-theme-mode', mode);\n this.themeMode = mode;\n this.themeChanged();\n }\n\n currentTheme() {\n return this.themeMode === 'system' ? this.browserTheme : this.themeMode;\n }\n\n private themeChanged() {\n this.currentAppTheme$$.next(this.currentTheme());\n }\n}\n","import {\n ChangeDetectorRef,\n OnDestroy,\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { ThemeService } from './theme.service';\nimport { Theme, ThemeSet } from './theme.types';\nimport { cssVar, rgbColor, rgbaColor } from './utils';\n\n@Pipe({ name: 'auiRgbColor', pure: true })\nexport class RgbColorPipe implements PipeTransform {\n transform = rgbColor;\n}\n\n@Pipe({ name: 'auiRgbaColor', pure: true })\nexport class RgbaColorPipe implements PipeTransform {\n transform = rgbaColor;\n}\n\n@Pipe({ name: 'auiCssVar', pure: true })\nexport class CssVarPipe implements PipeTransform {\n transform = cssVar;\n}\n\n@Pipe({ name: 'auiThemePicker', pure: false })\nexport class ThemePickerPipe<T> implements PipeTransform, OnDestroy {\n private currentTheme: Theme;\n private readonly destroy$$ = new Subject<void>();\n\n constructor(themeService: ThemeService, cdr: ChangeDetectorRef) {\n themeService.currentTheme$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(theme => {\n this.currentTheme = theme;\n cdr.markForCheck();\n });\n }\n\n transform(v: ThemeSet<T>) {\n if (v instanceof Function) {\n return v(this.currentTheme);\n }\n if (Array.isArray(v)) {\n return v[this.currentTheme === 'light' ? 0 : 1];\n }\n return v[this.currentTheme];\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem, handlePixel } from '../utils';\n\nimport { IconRegisterService } from './icon-register.service';\n\nlet id = 0;\n\n@Component({\n selector: 'aui-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class IconComponent {\n @Input()\n icon: string;\n\n @Input()\n light: string;\n\n @Input()\n dark: string;\n\n @Input()\n link = '';\n\n @Input()\n margin: 'left' | 'right';\n\n @Input()\n size: string;\n\n @Input()\n color: string;\n\n @Input()\n background: 'circle' | 'triangle';\n\n @Input()\n backgroundColor: string;\n\n bem: Bem = buildBem('aui-icon');\n\n id = id++;\n\n constructor(private readonly iconRegisterService: IconRegisterService) {}\n\n private parseIcon(icon: string): [string, string] {\n const defaultPrefix = this.iconRegisterService.getDefaultIconPrefix();\n const arr = (icon || '').split(':');\n return arr.length < 2 ? [defaultPrefix, arr[0]] : [arr[0], arr[1]];\n }\n\n getWidth() {\n if (!this.size) {\n return false;\n }\n return handlePixel((this.size || '').split(',')[0]);\n }\n\n getHeight() {\n if (!this.size) {\n return false;\n }\n const arr = (this.size || '').split(',');\n return handlePixel(arr[1] || arr[0]);\n }\n\n getIconId(icon: string) {\n const [prefix, name] = this.parseIcon(icon);\n return `${prefix}-${name}`;\n }\n\n getClass(id: string) {\n return `${this.bem.block(this.margin)} ${id}`;\n }\n}\n","<svg\n *ngIf=\"icon === 'spinner'; else icons\"\n [attr.class]=\"getClass('aui-icon-spinner')\"\n [style.fill]=\"color\"\n [style.width]=\"getWidth()\"\n [style.height]=\"getHeight()\"\n viewBox=\"0 0 200 200\"\n>\n <defs>\n <linearGradient\n [attr.id]=\"'right-' + id\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"150\"\n y1=\"20\"\n x2=\"150\"\n y2=\"180\"\n >\n <stop\n offset=\"0\"\n style=\"stop-color: #000\"\n />\n <stop\n offset=\"1\"\n style=\"stop-color: #808080\"\n />\n </linearGradient>\n <linearGradient\n [attr.id]=\"'left-' + id\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"50\"\n y1=\"0\"\n x2=\"50\"\n y2=\"180\"\n >\n <stop\n offset=\"0\"\n style=\"stop-color: #fff\"\n />\n <stop\n offset=\"1\"\n style=\"stop-color: #808080\"\n />\n </linearGradient>\n <mask [attr.id]=\"'mask-' + id\">\n <g>\n <path\n [attr.fill]=\"'url(#right-' + id + ')'\"\n d=\"M100,0v20c44.1,0,80,35.9,80,80c0,44.1-35.9,80-80,80v20c55.2,0,100-44.8,100-100S155.2,0,100,0z\"\n />\n <path\n [attr.fill]=\"'url(#left-' + id + ')'\"\n d=\"M20,100c0-44.1,35.9-80,80-80V0C44.8,0,0,44.8,0,100s44.8,100,100,100v-20C55.9,180,20,144.1,20,100z\"\n />\n </g>\n </mask>\n </defs>\n <rect\n x=\"0\"\n y=\"0\"\n width=\"200\"\n height=\"200\"\n [attr.mask]=\"'url(#mask-' + id + ')'\"\n />\n</svg>\n\n<ng-template #icons>\n <svg\n *ngIf=\"getIconId(icon ? icon : ([light, dark] | auiThemePicker)) as iconId\"\n [ngClass]=\"getClass(iconId)\"\n [style.fill]=\"color\"\n [style.width]=\"getWidth()\"\n [style.height]=\"getHeight()\"\n >\n <rect\n *ngIf=\"background\"\n class=\"aui-icon__background\"\n [ngClass]=\"background\"\n [attr.fill]=\"backgroundColor\"\n [style.width]=\"getWidth()\"\n [style.height]=\"getHeight()\"\n x=\"0\"\n y=\"0\"\n ></rect>\n <use [attr.xlink:href]=\"link + '#' + iconId\"></use>\n </svg>\n</ng-template>\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../types';\n\nimport { ButtonType } from './button.types';\n\nconst prefix = 'aui-button--';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[aui-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class ButtonComponent implements OnDestroy {\n @Input('aui-button')\n get type() {\n return this._type;\n }\n\n set type(val) {\n if (!val || val === this._type) {\n return;\n }\n this.renderer.removeClass(this.el.nativeElement, prefix + this._type);\n this.renderer.addClass(this.el.nativeElement, prefix + val);\n this._type = val;\n }\n\n @Input()\n get size() {\n return this._size;\n }\n\n set size(val) {\n // when change from other size to default\n if (!val) {\n val = ComponentSize.Medium;\n }\n if (this._size === val) {\n return;\n }\n this.renderer.removeClass(this.el.nativeElement, prefix + this._size);\n this.renderer.addClass(this.el.nativeElement, prefix + val);\n this._size = val;\n }\n\n @Input()\n get plain() {\n return this._plain;\n }\n\n set plain(val) {\n if (this._plain === val) {\n return;\n }\n this.switchAssertClass('isPlain', val);\n this._plain = val;\n }\n\n @Input()\n get loading() {\n return this._loading;\n }\n\n set loading(val) {\n if (this._loading === val) {\n return;\n }\n this.switchAssertClass('isLoading', val);\n this._loading = val;\n }\n\n @Input()\n get round() {\n return this._round;\n }\n\n set round(val) {\n if (this._round === val) {\n return;\n }\n this.switchAssertClass('isRound', val);\n this._round = val;\n }\n\n @Input()\n get square() {\n return this._square;\n }\n\n set square(val) {\n if (this._square === val) {\n return;\n }\n this.switchAssertClass('isSquare', val);\n this._square = val;\n }\n\n private _type: ButtonType = ButtonType.Default;\n private _size: ComponentSize = ComponentSize.Medium;\n private _plain = false;\n private _loading = false;\n private _round = false;\n private _square = false;\n\n constructor(\n private readonly el: ElementRef,\n private readonly renderer: Renderer2,\n private readonly focusMonitor: FocusMonitor,\n ) {\n this.renderer.addClass(this.el.nativeElement, 'aui-button');\n this.renderer.addClass(this.el.nativeElement, prefix + this.type);\n this.renderer.addClass(this.el.nativeElement, prefix + this.size);\n\n this.focusMonitor.monitor(this.el.nativeElement, false);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.el.nativeElement);\n }\n\n private switchAssertClass(className: string, val: boolean) {\n if (val) {\n this.renderer.addClass(this.el.nativeElement, className);\n } else {\n this.renderer.removeClass(this.el.nativeElement, className);\n }\n }\n}\n","<span class=\"aui-button__content\"><ng-content></ng-content></span>\n<aui-icon\n *ngIf=\"loading\"\n class=\"aui-button__spinner\"\n icon=\"spinner\"\n></aui-icon>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport {\n CssVarPipe,\n RgbColorPipe,\n RgbaColorPipe,\n ThemePickerPipe,\n} from './theme.pipe';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ThemePickerPipe, RgbColorPipe, RgbaColorPipe, CssVarPipe],\n exports: [ThemePickerPipe, RgbColorPipe, RgbaColorPipe, CssVarPipe],\n})\nexport class ThemeModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThemeModule } from '../theme';\n\nimport { ICON_REGISTER_SERVICE_PROVIDER } from './icon-register.service';\nimport { IconComponent } from './icon.component';\n\n@NgModule({\n imports: [CommonModule, ThemeModule],\n declarations: [IconComponent],\n exports: [IconComponent],\n providers: [ICON_REGISTER_SERVICE_PROVIDER],\n})\nexport class IconModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-button-group',\n templateUrl: './button-group.component.html',\n styleUrls: ['./button-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class ButtonGroupComponent {}\n","<div class=\"aui-button-group\"><ng-content></ng-content></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { ButtonGroupComponent } from './button-group/button-group.component';\nimport { ButtonComponent } from './button.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [ButtonComponent, ButtonGroupComponent],\n exports: [ButtonComponent, ButtonGroupComponent],\n})\nexport class ButtonModule {}\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { CdkAccordionItem } from '@angular/cdk/accordion';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n Input,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { filter, startWith, take } from 'rxjs';\n\nimport { AccordionComponent } from '../accordion.component';\n\n@Directive({\n selector: '[auiAccordionItemHeader]',\n})\nexport class AccordionItemHeaderDirective {}\n@Directive({\n selector: '[auiAccordionContent]',\n})\nexport class AccordionItemContentDirective {}\n@Component({\n selector: 'aui-accordion-item',\n templateUrl: 'accordion-item.component.html',\n styleUrls: ['accordion-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n animations: [\n trigger('expand', [\n state('*', style({ height: 0 })),\n state('expanded', style({ height: '*' })),\n transition('* <=> expanded', [animate('0.1s ease-in-out')]),\n ]),\n ],\n viewProviders: [AccordionItemComponent],\n})\nexport class AccordionItemComponent\n extends CdkAccordionItem\n implements AfterContentInit\n{\n @Input()\n background = true;\n\n @ContentChild(AccordionItemContentDirective, {\n read: TemplateRef,\n static: true,\n })\n _lazyContentTpl: TemplateRef<unknown>;\n\n lazyContentTpl: TemplateRef<unknown>;\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n accordion: AccordionComponent,\n cdr: ChangeDetectorRef,\n uniqueSelectionDispatcher: UniqueSelectionDispatcher,\n ) {\n super(accordion, cdr, uniqueSelectionDispatcher);\n }\n\n ngAfterContentInit() {\n if (this._lazyContentTpl) {\n // Render the content as soon as the accordion becomes open.\n this.opened\n .pipe(\n startWith(null as void),\n filter(() => !!this.expanded),\n take(1),\n )\n .subscribe(() => {\n this.lazyContentTpl = this._lazyContentTpl;\n });\n }\n }\n}\n","<div class=\"aui-accordion-item\">\n <div class=\"aui-accordion-item__header\">\n <button\n type=\"button\"\n class=\"aui-accordion-item__expand-button\"\n [class.isExpanded]=\"expanded\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <div\n class=\"aui-accordion-item__header-content\"\n [class.aui-accordion-item__header-content--expanded]=\"expanded\"\n >\n <ng-content select=\"[auiAccordionItemHeader]\"></ng-content>\n </div>\n </div>\n <div\n *ngIf=\"expanded\"\n class=\"aui-accordion-item__body\"\n [id]=\"id\"\n [@expand]=\"expanded ? 'expanded' : 'collapsed'\"\n >\n <div\n class=\"aui-accordion-item__content\"\n [class.hasBackground]=\"background\"\n >\n <ng-content></ng-content>\n <ng-template [ngTemplateOutlet]=\"lazyContentTpl\"></ng-template>\n </div>\n </div>\n</div>\n","import { CdkAccordionModule } from '@angular/cdk/accordion';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonModule } from '../button';\nimport { IconModule } from '../icon';\n\nimport {\n AccordionItemComponent,\n AccordionItemContentDirective,\n AccordionItemHeaderDirective,\n} from './accordion-item/accordion-item.component';\nimport { AccordionComponent } from './accordion.component';\n\n@NgModule({\n declarations: [\n AccordionComponent,\n AccordionItemComponent,\n AccordionItemHeaderDirective,\n AccordionItemContentDirective,\n ],\n imports: [CommonModule, CdkAccordionModule, IconModule, ButtonModule],\n exports: [\n AccordionComponent,\n AccordionItemComponent,\n AccordionItemHeaderDirective,\n AccordionItemContentDirective,\n ],\n providers: [],\n})\nexport class AccordionModule {}\n","import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport {\n AfterContentChecked,\n AfterContentInit,\n ApplicationRef,\n ComponentFactoryResolver,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n TemplateRef,\n} from '@angular/core';\nimport { Subject, fromEvent, merge, startWith, takeUntil } from 'rxjs';\n\nimport { observeResizeOn } from '../utils';\n\nimport { AnchorComponent } from './anchor.component';\n\nlet uid = 0;\n\n@Directive()\nexport class AnchorDirectiveChild {\n readonly parent: AnchorDirective;\n\n constructor(protected injector: Injector) {\n this.parent = this.injector.get(AnchorDirective);\n }\n}\n\n@Directive({\n selector: '[auiAnchorLabel]',\n})\nexport class AnchorLabelDirective\n extends AnchorDirectiveChild\n implements OnInit, AfterContentChecked\n{\n @HostBinding('class.aui-anchor__label')\n @Input('auiAnchorLabel')\n get label() {\n return this._label || this.elRef.nativeElement.textContent;\n }\n\n set label(value) {\n this._label = value;\n this.labelChange.emit(value);\n }\n\n private _label: string | TemplateRef<unknown>;\n\n @Input('auiAnchorLabelContext')\n labelContext: unknown;\n\n get target() {\n return this.elRef.nativeElement;\n }\n\n @Input()\n set id(id) {\n if (this.parent.injectId && !this.id) {\n this.elRef.nativeElement.id = id;\n }\n this._id = id;\n }\n\n get id() {\n return this._id;\n }\n\n private _id: string;\n\n @Input()\n set level(value: number | '') {\n this._level = value === '' ? 1 : value;\n }\n\n get level() {\n return this._level;\n }\n\n private _level = 0;\n\n @Output()\n labelChange = new EventEmitter<string | TemplateRef<unknown>>();\n\n constructor(\n protected override injector: Injector,\n public readonly elRef: ElementRef<HTMLElement>,\n ) {\n super(injector);\n this._id = this.elRef.nativeElement.id;\n }\n\n ngOnInit() {\n if (!this.id) {\n this.id = 'anchor-uid-' + uid++;\n }\n }\n\n ngAfterContentChecked() {\n if (!this._label) {\n this.labelChange.emit(this.label);\n }\n }\n}\n\n@Directive({\n selector: '[auiAnchor]',\n})\nexport class AnchorDirective implements AfterContentInit, OnDestroy {\n @Input()\n auiAnchor: HTMLElement | '';\n\n @Input()\n adaptPosition = true;\n\n @Input()\n padding = 20;\n\n @Input()\n minTop: number;\n\n @Input()\n injectId = window === window.top;\n\n @ContentChildren(AnchorLabelDirective, { descendants: true })\n anchorLabels: QueryList<AnchorLabelDirective>;\n\n get containerEl() {\n return this.elRef.nativeElement;\n }\n\n get scrollableEl() {\n const el = this.containerEl;\n return (\n this.auiAnchor ||\n this.cdkScrollable?.getElementRef().nativeElement ||\n (el.scrollHeight > el.offsetHeight ? el : window)\n );\n }\n\n anchorPortal: ComponentPortal<AnchorComponent>;\n\n destroy$$ = new Subject<void>();\n\n constructor(\n private readonly cfr: ComponentFactoryResolver,\n private readonly appRef: ApplicationRef,\n private readonly injector: Injector,\n public readonly elRef: ElementRef<HTMLElement>,\n @Optional() private readonly cdkScrollable: CdkScrollable,\n ) {}\n\n ngAfterContentInit() {\n const containerEl = this.containerEl;\n this.anchorPortal = new ComponentPortal(AnchorComponent);\n const portalOutlet = new DomPortalOutlet(\n document.body,\n this.cfr,\n this.appRef,\n this.injector,\n );\n const anchorComponentRef = this.anchorPortal.attach(portalOutlet);\n const anchorEl = anchorComponentRef.injector.get(ElementRef)\n .nativeElement as HTMLElement;\n\n requestAnimationFrame(() =>\n this.adaptAnchorPosition(containerEl, anchorEl),\n );\n\n this.anchorLabels.changes\n .pipe(startWith(this.anchorLabels), takeUntil(this.destroy$$))\n .subscribe((anchorLabels: QueryList<AnchorLabelDirective>) => {\n Object.assign(anchorComponentRef.instance, {\n items: anchorLabels.toArray(),\n });\n });\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n this.anchorPortal.detach();\n }\n\n adaptAnchorPosition(containerEl: HTMLElement, anchorEl: HTMLElement) {\n const pageContentEl = containerEl.closest('.aui-page__content');\n const anchorContentEl = anchorEl.querySelector('.aui-anchor');\n\n merge(observeResizeOn(containerEl), fromEvent(window, 'scroll'))\n .pipe(startWith(null as void), takeUntil(this.destroy$$))\n .subscribe(() => {\n const containerRect = containerEl.getBoundingClientRect();\n Object.assign(anchorEl.style, {\n display: !containerRect.width || !containerRect.height ? 'none' : '',\n left:\n containerRect.right -\n anchorContentEl.getBoundingClientRect().width +\n 'px',\n top:\n Math.max(\n containerRect.top,\n (this.minTop ??\n (pageContentEl &&\n +getComputedStyle(pageContentEl).paddingTop.slice(0, -2))) ||\n 0,\n ) + 'px',\n });\n });\n\n if (this.adaptPosition) {\n observeResizeOn(anchorContentEl)\n .pipe(takeUntil(this.destroy$$))\n .subscribe(el => {\n const width = el.getBoundingClientRect().width;\n const padding = width + this.padding;\n containerEl.style.paddingRight = padding + 'px';\n });\n }\n }\n}\n","import { last } from '../utils';\n\nimport { AnchorItem, AnchorTreeItem } from './types';\n\nexport const getAnchorTreeItems = (items: AnchorItem[], level = 0) => {\n const treeItems: AnchorTreeItem[] = [];\n const subItems: AnchorItem[] = [];\n for (const item of items) {\n if (item.level === level) {\n const lastTreeItem = last(treeItems);\n if (lastTreeItem) {\n const children = getAnchorTreeItems(subItems, level + 1);\n if (children.length) {\n lastTreeItem.children = children;\n }\n }\n treeItems.push(item);\n subItems.length = 0;\n } else {\n subItems.push(item);\n }\n }\n if (subItems.length) {\n last(treeItems).children = getAnchorTreeItems(subItems, level + 1);\n }\n return treeItems;\n};\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n EMPTY,\n Subject,\n combineLatest,\n fromEvent,\n of,\n debounceTime,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport { buildBem, isTemplateRef, last } from '../utils';\n\nimport { AnchorDirectiveChild } from './anchor.directive';\nimport { AnchorItem, AnchorTreeItem } from './types';\nimport { getAnchorTreeItems } from './utils';\n\nconst bem = buildBem('aui-anchor');\n\n@Component({\n selector: 'aui-anchor-tree',\n templateUrl: 'anchor-tree.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AnchorTreeComponent\n extends AnchorDirectiveChild\n implements OnDestroy\n{\n @Input()\n set treeItems(treeItems) {\n this._treeItems = treeItems;\n this.watchLabelsChange();\n }\n\n get treeItems() {\n return this._treeItems;\n }\n\n private _treeItems: AnchorTreeItem[];\n\n @Input()\n activeId: string;\n\n @Output()\n activeIdChange = new EventEmitter<string>();\n\n bem = bem;\n\n isTemplateRef = isTemplateRef;\n\n private readonly depose$$ = new Subject<void>();\n\n watchLabelsChange() {\n this.depose$$.next();\n const cdr = this.injector.get(ChangeDetectorRef);\n // FIXME: Is there any better way to achieve this?\n combineLatest(\n this.treeItems.map(({ labelChange }) => labelChange).filter(Boolean),\n )\n .pipe(debounceTime(0), takeUntil(this.depose$$))\n .subscribe(() => cdr.markForCheck());\n }\n\n ngOnDestroy() {\n this.depose$$.next();\n this.depose$$.complete();\n }\n\n isActive(item: AnchorTreeItem): boolean {\n return (\n item.id === this.activeId ||\n item.children?.some(subItem => this.isActive(subItem))\n );\n }\n\n onItemClick(e: Event, item: AnchorTreeItem) {\n e.preventDefault();\n\n if (this.parent.injectId) {\n const selector = '#' + item.id;\n\n if (location.hash === selector) {\n return;\n }\n\n history.pushState(\n null,\n null,\n location.pathname + location.search + selector,\n );\n }\n\n item.target.scrollIntoView({ behavior: 'smooth' });\n\n this.activeIdChange.emit(item.id);\n }\n\n trackById(_index: number, item: AnchorTreeItem) {\n return item.id;\n }\n}\n\n@Component({\n selector: 'aui-anchor',\n templateUrl: 'anchor.component.html',\n styleUrls: ['anchor.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AnchorComponent\n extends AnchorDirectiveChild\n implements AfterViewInit, OnDestroy\n{\n @Input()\n get items() {\n return this._items;\n }\n\n set items(items) {\n this._items = items;\n this.treeItems = getAnchorTreeItems(items);\n const anchorId =\n (this.parent.injectId && location.hash.slice(1)) || this.activeId;\n const activeItem =\n (anchorId && items.find(({ id }) => id === anchorId)) || items[0];\n if (activeItem) {\n if (this.parent.injectId && this.parent.scrollableEl !== window) {\n activeItem.target.scrollIntoView();\n }\n this.activeId = activeItem.id;\n }\n }\n\n private _items: AnchorItem[];\n\n @Input()\n treeItems: AnchorTreeItem[];\n\n @Input()\n activeId: string;\n\n bem = bem;\n\n private readonly destroy$$ = new Subject<void>();\n\n constructor(\n protected override injector: Injector,\n private readonly cdr: ChangeDetectorRef,\n ) {\n super(injector);\n }\n\n ngAfterViewInit() {\n const { injectId, containerEl, scrollableEl } = this.parent;\n const pageContentEl = containerEl.closest('.aui-page__content');\n const paddingTop = pageContentEl\n ? +getComputedStyle(pageContentEl).paddingTop.slice(0, -2)\n : 0;\n fromEvent(scrollableEl, 'scroll')\n .pipe(\n debounceTime(100),\n switchMap(() => {\n const { scrollTop } =\n scrollableEl === window\n ? document.documentElement\n : (scrollableEl as HTMLElement);\n const activedItem =\n this.items.find(\n ({ target }) =>\n target.offsetTop +\n target.offsetHeight / 2 +\n ((scrollableEl === window &&\n (target.offsetParent as HTMLElement)?.offsetTop) ||\n 0) >\n scrollTop + paddingTop,\n ) || last(this.items);\n return activedItem ? of(activedItem) : EMPTY;\n }),\n tap(activedItem => {\n if (activedItem.id) {\n this.activeId = activedItem.id;\n this.cdr.markForCheck();\n }\n }),\n debounceTime(100),\n tap(activedItem => {\n if (injectId && activedItem.id) {\n history.replaceState(\n null,\n null,\n location.pathname + location.search + '#' + activedItem.id,\n );\n }\n }),\n takeUntil(this.destroy$$),\n )\n .subscribe();\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n}\n","<div\n [class]=\"bem.element('item')\"\n [class.active]=\"isActive(item)\"\n *ngFor=\"let item of treeItems; trackBy: trackById\"\n>\n <a\n *ngIf=\"item.label as label\"\n [href]=\"parent.injectId ? '#' + item.id : undefined\"\n (click)=\"onItemClick($event, item)\"\n >\n <ng-container *ngIf=\"isTemplateRef(label); else plain\">\n <ng-container\n *ngTemplateOutlet=\"label; context: item.labelContext\"\n ></ng-container>\n </ng-container>\n <ng-template #plain>\n {{ item.label }}\n </ng-template>\n </a>\n <aui-anchor-tree\n *ngIf=\"item.children?.length\"\n [treeItems]=\"item.children\"\n [(activeId)]=\"activeId\"\n ></aui-anchor-tree>\n</div>\n","<div [class]=\"bem.block()\">\n <aui-anchor-tree\n [treeItems]=\"treeItems\"\n [(activeId)]=\"activeId\"\n ></aui-anchor-tree>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AnchorComponent, AnchorTreeComponent } from './anchor.component';\nimport { AnchorDirective, AnchorLabelDirective } from './anchor.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n AnchorComponent,\n AnchorTreeComponent,\n AnchorDirective,\n AnchorLabelDirective,\n ],\n exports: [\n AnchorComponent,\n AnchorTreeComponent,\n AnchorDirective,\n AnchorLabelDirective,\n ],\n entryComponents: [AnchorComponent],\n})\nexport class AnchorModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-autocomplete-placeholder',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class AutocompletePlaceholderComponent {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n combineLatest,\n map,\n switchMap,\n take,\n tap,\n} from 'rxjs';\n\nimport { Bem, buildBem, coerceAttrBoolean, publishRef } from '../../utils';\nimport { AutocompleteComponent } from '../autocomplete.component';\n\n@Component({\n selector: 'aui-suggestion',\n templateUrl: './suggestion.component.html',\n styleUrls: ['./suggestion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class SuggestionComponent {\n bem: Bem = buildBem('aui-suggestion');\n\n private _disabled = false;\n private _value: string;\n private readonly value$$ = new BehaviorSubject<string>(this.value);\n\n @Input()\n get value() {\n return this._value;\n }\n\n set value(val) {\n this._value = val;\n this.value$$.next(val);\n }\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n this._disabled = coerceAttrBoolean(val);\n }\n\n @ViewChild('elRef', { static: true })\n elRef: ElementRef;\n\n selected = false;\n visible = true;\n focused = false;\n\n private readonly autocomplete: AutocompleteComponent;\n selected$: Observable<boolean>;\n visible$: Observable<boolean>;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n @Inject(forwardRef(() => AutocompleteComponent))\n autocomplete: any, // FIXME: workaround temporarily\n ) {\n this.autocomplete = autocomplete;\n this.selected$ = combineLatest([\n this.autocomplete.directive$$.pipe(\n switchMap(directive => directive.inputValue$),\n ),\n this.value$$,\n ]).pipe(\n map(([inputValue, selfValue]) => inputValue === selfValue),\n tap(selected => {\n this.selected = selected;\n }),\n publishRef(),\n );\n this.visible$ = combineLatest([\n this.autocomplete.directive$$.pipe(\n switchMap(directive => directive.filterFn$),\n ),\n this.autocomplete.directive$$.pipe(\n switchMap(directive => directive.inputValue$),\n ),\n this.value$$,\n ]).pipe(\n map(([filterFn, filterString, suggestion]) =>\n filterFn(filterString, suggestion),\n ),\n tap(visible => {\n this.visible = visible;\n }),\n publishRef(),\n );\n }\n\n onClick() {\n if (this.disabled) {\n return;\n }\n this.autocomplete.directive$$.pipe(take(1)).subscribe(directive => {\n directive.onSuggestionClick(this.value);\n });\n }\n\n focus() {\n this.focused = true;\n this.cdr.markForCheck();\n }\n\n blur() {\n this.focused = false;\n this.cdr.markForCheck();\n }\n}\n","<div\n #elRef\n [hidden]=\"!(visible$ | async)\"\n [class]=\"bem.block('medium')\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"selected$ | async\"\n [class.isFocused]=\"focused\"\n (click)=\"onClick()\"\n>\n <ng-content></ng-content>\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n Observable,\n ReplaySubject,\n combineLatest,\n of,\n debounceTime,\n distinctUntilChanged,\n map,\n startWith,\n switchMap,\n tap,\n withLatestFrom,\n} from 'rxjs';\n\nimport { publishRef } from '../utils';\n\nimport { AutocompletePlaceholderComponent } from './autocomplete-placeholder.component';\nimport { AutoCompleteDirective } from './autocomplete.directive';\nimport { SuggestionComponent } from './suggestion/suggestion.component';\n\n@Component({\n selector: 'aui-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class AutocompleteComponent implements AfterContentInit {\n @ContentChildren(SuggestionComponent, { descendants: true })\n suggestions: QueryList<SuggestionComponent>;\n\n @ContentChildren(AutocompletePlaceholderComponent)\n placeholder: QueryList<AutocompletePlaceholderComponent>;\n\n @ViewChild(TemplateRef, { static: true })\n template: TemplateRef<any>;\n\n @ViewChild('suggestionListRef', { static: true })\n suggestionListRef: ElementRef;\n\n hasVisibleSuggestion$: Observable<boolean>;\n hasContent$: Observable<boolean>;\n\n directive$$ = new ReplaySubject<AutoCompleteDirective>(1);\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n ngAfterContentInit() {\n this.hasVisibleSuggestion$ = this.suggestions.changes.pipe(\n startWith(this.suggestions),\n switchMap((suggestions: QueryList<SuggestionComponent>) =>\n suggestions.length > 0\n ? combineLatest(suggestions.map(suggestion => suggestion.visible$))\n : of([] as boolean[]),\n ),\n map(visible => visible.some(Boolean)),\n withLatestFrom(this.directive$$),\n map(([hasVisibleSuggestion, directive]) => {\n if (hasVisibleSuggestion && directive.defaultFirstSuggestion) {\n directive.autoFocusFirstSuggestion();\n }\n return hasVisibleSuggestion;\n }),\n distinctUntilChanged(),\n debounceTime(0),\n tap(() => this.cdr.markForCheck()),\n publishRef(),\n );\n\n this.hasContent$ = combineLatest([\n this.hasVisibleSuggestion$,\n this.placeholder.changes.pipe(\n startWith(this.placeholder),\n map(\n (list: QueryList<AutocompletePlaceholderComponent>) => !!list.length,\n ),\n ),\n ]).pipe(\n map(\n ([hasVisibleSuggestion, hasPlaceholder]) =>\n hasVisibleSuggestion || hasPlaceholder,\n ),\n );\n }\n}\n","<ng-template let-width=\"width\">\n <div\n [hidden]=\"!(hasContent$ | async)\"\n class=\"aui-autocomplete\"\n [style.minWidth]=\"width\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #suggestionListRef\n class=\"aui-autocomplete__content\"\n >\n <ng-content></ng-content>\n </div>\n <div\n [hidden]=\"hasVisibleSuggestion$ | async\"\n class=\"aui-autocomplete__placeholder\"\n >\n <ng-content select=\"aui-autocomplete-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n","export enum TooltipType {\n Default = 'default',\n Primary = 'primary',\n Success = 'success',\n Warning = 'warning',\n Error = 'error',\n Info = 'info',\n Plain = 'plain',\n}\n\nexport enum TooltipTrigger {\n Hover = 'hover',\n Click = 'click',\n Focus = 'focus',\n Manual = 'manual',\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Observable, Subject, combineLatest, map, startWith } from 'rxjs';\n\nimport { Bem, buildBem, publishRef } from '../utils';\n\nimport { TooltipType } from './tooltip.types';\n\n@Component({\n selector: 'aui-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class TooltipComponent {\n text: string;\n template: TemplateRef<any>;\n bem: Bem = buildBem('aui-tooltip');\n\n inputContent$: Observable<string | TemplateRef<any>>;\n inputType$: Observable<TooltipType>;\n inputPosition$: Observable<string>;\n inputClass$: Observable<string>;\n inputContext$: Observable<any>;\n\n text$: Observable<string>;\n template$: Observable<TemplateRef<any>>;\n class$: Observable<string>;\n context$: Observable<any>;\n\n hover$ = new Subject<boolean>();\n\n constructor(\n public elRef: ElementRef<HTMLElement>,\n public cdr: ChangeDetectorRef,\n ) {}\n\n setupInputs(inputs: {\n inputContent$: Observable<string | TemplateRef<any>>;\n inputType$: Observable<TooltipType>;\n inputPosition$: Observable<string>;\n inputClass$: Observable<string>;\n inputContext$: Observable<any>;\n }) {\n Object.assign(this, inputs);\n this.text$ = this.inputContent$.pipe(\n map(val => {\n if (typeof val === 'string') {\n return val;\n }\n return '';\n }),\n publishRef(),\n );\n this.template$ = this.inputContent$.pipe(\n map(val => {\n if (typeof val !== 'string') {\n return val;\n }\n return null;\n }),\n publishRef(),\n );\n this.class$ = combineLatest([\n this.inputPosition$.pipe(startWith('top')),\n this.inputType$.pipe(startWith(TooltipType.Default)),\n this.inputClass$.pipe(startWith('')),\n ]).pipe(\n map(([inputPosition, inputType, inputClass]) => {\n const b = this.bem.block();\n const dir = inputPosition.split(' ')[0];\n return inputType === TooltipType.Plain\n ? `${b}--${dir} ${inputClass}`\n : `${b} ${b}--${inputType} ${b}--${dir} ${inputClass}`;\n }),\n publishRef(),\n );\n this.context$ = this.inputContext$.pipe(publishRef());\n }\n}\n","<div\n *ngIf=\"inputContent$ | async\"\n [class]=\"class$ | async\"\n (mouseenter)=\"hover$.next(true)\"\n (mouseleave)=\"hover$.next(false)\"\n>\n {{ text$ | async }}\n <ng-container\n *ngIf=\"template$ | async\"\n [ngTemplateOutlet]=\"template$ | async\"\n [ngTemplateOutletContext]=\"context$ | async\"\n ></ng-container>\n</div>\n","import {\n HorizontalConnectionPos,\n OriginConnectionPosition,\n OverlayConnectionPosition,\n VerticalConnectionPos,\n} from '@angular/cdk/overlay';\n\nexport function getOriginPosition(position: string): {\n main: OriginConnectionPosition;\n fallback: OriginConnectionPosition;\n} {\n const pos = position.split(' ');\n let isXDir;\n if (pos[0] === 'start' || pos[0] === 'end') {\n isXDir = true;\n }\n const main = {\n originX: (pos[isXDir ? 0 : 1] as HorizontalConnectionPos) || 'center',\n originY: (pos[isXDir ? 1 : 0] as VerticalConnectionPos) || 'center',\n };\n const { x, y } = invertPosition(main.originX, main.originY);\n const fallback = {\n originX: isXDir ? x : main.originX,\n originY: !isXDir ? y : main.originY,\n };\n return { main, fallback };\n}\n\nexport function getOverlayPosition(position: string): {\n main: OverlayConnectionPosition;\n fallback: OverlayConnectionPosition;\n} {\n const pos = position.split(' ');\n let isXDir;\n if (pos[0] === 'start' || pos[0] === 'end') {\n isXDir = true;\n }\n const horizontal =\n (pos[isXDir ? 0 : 1] as HorizontalConnectionPos) || 'center';\n const vertical = (pos[isXDir ? 1 : 0] as VerticalConnectionPos) || 'center';\n const main = {\n overlayX: isXDir ? invertHorizontal(horizontal) : horizontal,\n overlayY: !isXDir ? invertVertical(vertical) : vertical,\n };\n const { x, y } = invertPosition(main.overlayX, main.overlayY);\n const fallback = {\n overlayX: isXDir ? x : main.overlayX,\n overlayY: !isXDir ? y : main.overlayY,\n };\n return { main, fallback };\n}\n\nexport function invertHorizontal(dir: HorizontalConnectionPos) {\n if (dir === 'start') {\n dir = 'end';\n } else if (dir === 'end') {\n dir = 'start';\n }\n return dir;\n}\n\nexport function invertVertical(dir: VerticalConnectionPos) {\n if (dir === 'top') {\n dir = 'bottom';\n } else if (dir === 'bottom') {\n dir = 'top';\n }\n return dir;\n}\n\nexport function invertPosition(\n x: HorizontalConnectionPos,\n y: VerticalConnectionPos,\n): { x: HorizontalConnectionPos; y: VerticalConnectionPos } {\n return { x: invertHorizontal(x), y: invertVertical(y) };\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n NgZone,\n OnDestroy,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { ReplaySubject, merge, debounceTime } from 'rxjs';\n\nimport { sleep } from '../utils';\n\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipTrigger, TooltipType } from './tooltip.types';\nimport { getOriginPosition, getOverlayPosition } from './utils';\n\nexport interface TooltipInterface {\n content: string | TemplateRef<any>;\n context: any;\n class: string;\n type: TooltipType;\n position: string;\n trigger: TooltipTrigger;\n disabled: boolean;\n hideOnClick: boolean;\n show: EventEmitter<void>;\n hide: EventEmitter<void>;\n}\n\nexport const DISPLAY_DELAY = 50;\nexport const HIDDEN_DELAY = 150;\n\n@Directive()\nexport class BaseTooltip<T = any>\n implements TooltipInterface, AfterViewInit, OnDestroy\n{\n set content(value: string | TemplateRef<any>) {\n this._content = value;\n this.inputContent$$.next(value);\n }\n\n get content() {\n return this._content;\n }\n\n set context(value: T) {\n this._context = value;\n this.inputContext$$.next(value);\n }\n\n get context() {\n return this._context;\n }\n\n set class(value: string) {\n this.inputClass$$.next(value);\n }\n\n set type(value: TooltipType) {\n if (!value) {\n return;\n }\n this.inputType$$.next(value);\n }\n\n set position(value: string) {\n if (!value || value === this._position) {\n return;\n }\n this._position = value;\n this.inputPosition$$.next(value);\n this.disposeTooltip();\n }\n\n get position() {\n return this._position;\n }\n\n set trigger(value) {\n if (!value || value === this._trigger) {\n return;\n }\n this._trigger = value;\n this.disposeTooltip();\n this.ngZone.run(this.updateListeners, this);\n }\n\n get trigger() {\n return this._trigger;\n }\n\n set disabled(value) {\n this._disabled = value;\n if (value) {\n this.disposeTooltip();\n }\n }\n\n get disabled() {\n return this._disabled;\n }\n\n hideOnClick = false;\n\n show = new EventEmitter<void>();\n hide = new EventEmitter<void>();\n\n protected overlayRef: OverlayRef;\n protected componentClass: ComponentType<any> = TooltipComponent;\n protected componentIns: TooltipComponent;\n protected hostHovered = false;\n protected tooltipHovered = false;\n protected listeners: Array<() => void> = [];\n protected unlistenBody: () => void;\n\n protected inputContent$$ = new ReplaySubject<string | TemplateRef<any>>(1);\n protected inputType$$ = new ReplaySubject<TooltipType>(1);\n protected inputPosition$$ = new ReplaySubject<string>(1);\n protected inputClass$$ = new ReplaySubject<string>(1);\n protected inputContext$$ = new ReplaySubject<any>(1);\n protected tooltipChanged$ = merge(\n this.inputContent$$,\n this.inputType$$,\n this.inputPosition$$,\n this.inputClass$$,\n this.inputContext$$,\n );\n\n protected _position = 'top';\n protected _trigger = TooltipTrigger.Hover;\n protected _disabled = false;\n protected _context: T;\n protected _content: string | TemplateRef<unknown>;\n\n get isCreated() {\n return !!this.overlayRef;\n }\n\n constructor(\n protected overlay: Overlay,\n protected viewContainerRef: ViewContainerRef,\n protected elRef: ElementRef<HTMLInputElement>,\n protected renderer: Renderer2,\n protected cdr: ChangeDetectorRef,\n protected ngZone: NgZone,\n ) {\n this.tooltipChanged$.pipe(debounceTime(0)).subscribe(() => {\n this.updatePosition();\n });\n }\n\n createTooltip() {\n if (this.disabled || this.isCreated) {\n return;\n }\n this.overlayRef = this.createOverlay();\n const portal = new ComponentPortal(\n this.componentClass,\n this.viewContainerRef,\n );\n this.componentIns = this.overlayRef.attach(portal).instance;\n this.componentIns.setupInputs({\n inputClass$: this.inputClass$$.asObservable(),\n inputContent$: this.inputContent$$.asObservable(),\n inputContext$: this.inputContext$$.asObservable(),\n inputPosition$: this.inputPosition$$.asObservable(),\n inputType$: this.inputType$$.asObservable(),\n });\n\n if (this.trigger === TooltipTrigger.Hover) {\n this.componentIns.hover$.subscribe(hovered => {\n this.onTooltipHovered(hovered);\n });\n }\n if (\n this.trigger === TooltipTrigger.Hover ||\n this.trigger === TooltipTrigger.Click\n ) {\n this.unlistenBody = this.renderer.listen(\n 'body',\n 'click',\n this.onBodyClick.bind(this),\n );\n }\n\n this.show.emit();\n\n this.cdr.markForCheck();\n }\n\n disposeTooltip() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n this.componentIns = null;\n this.tooltipHovered = false;\n if (this.unlistenBody) {\n this.unlistenBody();\n this.unlistenBody = null;\n }\n this.hide.emit();\n }\n }\n\n toggleTooltip() {\n if (this.isCreated) {\n this.disposeTooltip();\n } else {\n this.createTooltip();\n }\n }\n\n updatePosition() {\n if (this.overlayRef) {\n this.overlayRef.updatePosition();\n }\n }\n\n ngAfterViewInit() {\n if (this.trigger === TooltipTrigger.Hover) {\n this.updateListeners();\n }\n }\n\n ngOnDestroy() {\n this.disposeTooltip();\n this.clearListeners();\n }\n\n protected updateListeners() {\n this.clearListeners();\n switch (this.trigger) {\n case TooltipTrigger.Click:\n this.listeners.push(\n this.renderer.listen(\n this.elRef.nativeElement,\n 'click',\n this.onClick.bind(this) as () => void,\n ),\n );\n break;\n case TooltipTrigger.Hover:\n this.listeners.push(\n this.renderer.listen(\n this.elRef.nativeElement,\n 'mouseenter',\n this.onMouseEnter.bind(this) as () => void,\n ),\n this.renderer.listen(\n this.elRef.nativeElement,\n 'mouseleave',\n this.onMouseLeave.bind(this) as () => void,\n ),\n );\n break;\n case TooltipTrigger.Focus:\n this.listeners.push(\n this.renderer.listen(\n this.elRef.nativeElement,\n 'focus',\n this.onFocus.bind(this),\n ),\n this.renderer.listen(\n this.elRef.nativeElement,\n 'blur',\n this.onBlur.bind(this),\n ),\n );\n break;\n case TooltipTrigger.Manual:\n break;\n }\n }\n\n protected clearListeners() {\n this.listeners.forEach(unListen => {\n unListen();\n });\n this.listeners = [];\n }\n\n protected createOverlay(): OverlayRef {\n const originPosition = getOriginPosition(this.position);\n const overlayPosition = getOverlayPosition(this.position);\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elRef)\n .withGrowAfterOpen(true)\n .withPositions([\n { ...originPosition.main, ...overlayPosition.main },\n { ...originPosition.fallback, ...overlayPosition.fallback },\n ]);\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition();\n\n const config = new OverlayConfig({\n positionStrategy,\n scrollStrategy,\n });\n return this.overlay.create(config);\n }\n\n protected async onMouseEnter() {\n this.hostHovered = true;\n if (!this.isCreated) {\n await sleep(DISPLAY_DELAY);\n if (this.hostHovered) {\n this.createTooltip();\n }\n }\n }\n\n protected async onMouseLeave() {\n this.hostHovered = false;\n await sleep(HIDDEN_DELAY);\n if (!this.tooltipHovered && !this.hostHovered) {\n this.disposeTooltip();\n }\n }\n\n protected async onTooltipHovered(hovered: boolean) {\n this.tooltipHovered = hovered;\n if (!hovered) {\n await sleep(HIDDEN_DELAY);\n if (!this.tooltipHovered && !this.hostHovered) {\n this.disposeTooltip();\n }\n }\n }\n\n protected onClick() {\n this.toggleTooltip();\n }\n\n protected onBodyClick(event: Event) {\n if (\n !this.elRef.nativeElement.contains(event.target as Node) &&\n (this.hideOnClick ||\n !this.componentIns.elRef.nativeElement.contains(event.target as Node))\n ) {\n this.disposeTooltip();\n }\n }\n\n protected onFocus() {\n this.createTooltip();\n }\n\n protected onBlur() {\n this.disposeTooltip();\n }\n}\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\n\nimport { BaseTooltip } from './base-tooltip';\n\n@Directive({\n selector: '[auiTooltip]',\n providers: [\n {\n provide: BaseTooltip,\n useExisting: TooltipDirective,\n },\n ],\n exportAs: 'auiTooltip',\n inputs: [\n 'content:auiTooltip',\n 'context:auiTooltipContext',\n 'class:auiTooltipClass',\n 'type:auiTooltipType',\n 'position:auiTooltipPosition',\n 'trigger:auiTooltipTrigger',\n 'disabled:auiTooltipDisabled',\n ],\n})\nexport class TooltipDirective extends BaseTooltip {\n @Input('auiTooltipHideOnClick')\n override hideOnClick = false;\n\n @Output('auiTooltipShow')\n override show = new EventEmitter<void>();\n\n @Output('auiTooltipHide')\n override hide = new EventEmitter<void>();\n}\n","import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';\n\nimport { BaseTooltip } from './base-tooltip';\n\n@Directive({\n selector: '[auiTooltipActive]',\n})\nexport class TooltipActiveDirective {\n @Input('auiTooltipActive')\n customClass: string | string[] = '';\n\n constructor(\n tooltipDirective: BaseTooltip,\n private readonly el: ElementRef,\n private readonly renderer: Renderer2,\n ) {\n tooltipDirective.show.subscribe(() => {\n this.addClass();\n });\n tooltipDirective.hide.subscribe(() => {\n this.removeClass();\n });\n }\n\n private addClass() {\n const classArr =\n typeof this.customClass === 'string'\n ? this.customClass.split(' ')\n : this.customClass;\n classArr.forEach(name => {\n this.renderer.addClass(this.el.nativeElement, name);\n });\n }\n\n private removeClass() {\n const classArr =\n typeof this.customClass === 'string'\n ? this.customClass.split(' ')\n : this.customClass;\n classArr.forEach(name => {\n this.renderer.removeClass(this.el.nativeElement, name);\n });\n }\n}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\n\n/**\n * Texts to render on the code editor.\n */\n@Injectable()\nexport class TooltipCopyIntl {\n copyTip = 'Click to copy';\n\n copySuccessTip = 'Copied to clipboard';\n\n copyFailTip = 'Copy failed';\n}\n\n// eslint-disable-next-line sonar/function-name\nexport function TOOLTIP_COPY_INTL_PROVIDER_FACTORY(\n parentIntl: TooltipCopyIntl,\n) {\n return parentIntl || new TooltipCopyIntl();\n}\n\n/** @docs-private */\nexport const TOOLTIP_COPY_INTL_INTL_PROVIDER = {\n // If there is already an CodeEditorIntl available, use that. Otherwise, provide a new one.\n provide: TooltipCopyIntl,\n deps: [[new Optional(), new SkipSelf(), TooltipCopyIntl]],\n useFactory: TOOLTIP_COPY_INTL_PROVIDER_FACTORY,\n};\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n NgZone,\n OnInit,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { BaseTooltip } from './base-tooltip';\nimport { TooltipCopyIntl } from './tooltip-intl';\n\n@Directive({\n selector: '[auiTooltipCopy]',\n inputs: ['position:auiTooltipPosition', 'disabled:auiTooltipDisabled'],\n})\nexport class TooltipCopyDirective extends BaseTooltip implements OnInit {\n @HostBinding('class.aui-tooltip-copy')\n className = true;\n\n @Input()\n get auiTooltipCopy() {\n return this._copyText || this.elRef.nativeElement.textContent;\n }\n\n set auiTooltipCopy(value: string) {\n this._copyText = value;\n }\n\n @Input()\n get auiTooltipCopyTip() {\n return this._copyTip || this.toolTipIntl.copyTip;\n }\n\n set auiTooltipCopyTip(value: string) {\n this._copyTip = value;\n }\n\n @Input()\n get auiTooltipCopySuccessTip() {\n return this._copySuccessTip || this.toolTipIntl.copySuccessTip;\n }\n\n set auiTooltipCopySuccessTip(value: string) {\n this._copySuccessTip = value;\n }\n\n @Input()\n get auiTooltipCopyFailTip() {\n return this._copyFailTip || this.toolTipIntl.copyFailTip;\n }\n\n set auiTooltipCopyFailTip(value: string) {\n this._copyFailTip = value;\n }\n\n private _copyText: string;\n private _copyTip: string;\n private _copySuccessTip: string;\n private _copyFailTip: string;\n\n constructor(\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n elRef: ElementRef,\n renderer: Renderer2,\n cdr: ChangeDetectorRef,\n ngZone: NgZone,\n private readonly toolTipIntl: TooltipCopyIntl,\n ) {\n super(overlay, viewContainerRef, elRef, renderer, cdr, ngZone);\n }\n\n ngOnInit() {\n this.content = this.auiTooltipCopyTip;\n this.hide.subscribe(() => {\n this.content = this.auiTooltipCopyTip;\n });\n }\n\n @HostListener('click')\n async onSourceClick() {\n if (!this.disabled) {\n try {\n await navigator.clipboard.writeText(this.auiTooltipCopy);\n this.content = this.auiTooltipCopySuccessTip;\n } catch {\n this.content = this.auiTooltipCopyFailTip;\n }\n }\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TooltipActiveDirective } from './tooltip-active.directive';\nimport { TooltipCopyDirective } from './tooltip-copy.directive';\nimport { TOOLTIP_COPY_INTL_INTL_PROVIDER } from './tooltip-intl';\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n imports: [CommonModule, OverlayModule],\n declarations: [\n TooltipDirective,\n TooltipComponent,\n TooltipActiveDirective,\n TooltipCopyDirective,\n ],\n entryComponents: [TooltipComponent],\n exports: [TooltipDirective, TooltipActiveDirective, TooltipCopyDirective],\n providers: [TOOLTIP_COPY_INTL_INTL_PROVIDER],\n})\nexport class TooltipModule {}\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Host,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n fromEvent,\n merge,\n takeUntil,\n debounceTime,\n startWith,\n} from 'rxjs';\n\nimport { BaseTooltip, TooltipTrigger, TooltipType } from '../tooltip';\nimport { scrollIntoView } from '../utils';\n\nimport { AutocompleteComponent } from './autocomplete.component';\nimport { AutoCompleteContext, SuggestionFilterFn } from './autocomplete.types';\nimport { SuggestionComponent } from './suggestion/suggestion.component';\n\n@Directive({\n selector: 'input[auiAutocomplete],textarea[auiAutocomplete]',\n exportAs: 'auiAutocomplete',\n inputs: ['class:auiAutocompleteClass'],\n host: {\n autocomplete: 'off',\n },\n})\nexport class AutoCompleteDirective\n extends BaseTooltip<AutoCompleteContext>\n implements OnInit, OnDestroy, AfterViewInit\n{\n @Input('auiAutocomplete')\n get autocomplete() {\n return this._autocomplete;\n }\n\n set autocomplete(val) {\n if (val === this._autocomplete) {\n return;\n }\n val.directive$$.next(this);\n this._autocomplete = val;\n this.content = val.template;\n }\n\n @Input('auiAutocompleteFilterFn')\n @Input()\n get filterFn() {\n return this._filterFn;\n }\n\n set filterFn(val) {\n if (val !== this._filterFn) {\n this._filterFn = val;\n this.filterFn$$.next(val);\n }\n }\n\n @Input('auiAutocompleteDefaultFirstSuggestion')\n defaultFirstSuggestion = true;\n\n @Input('auiAutocompleteTrigger')\n suggestionTrigger: 'auto' | 'input' = 'auto';\n\n declare innerSelector: string;\n\n @Output('auiAutocompleteShow')\n override show = new EventEmitter<void>();\n\n @Output('auiAutocompleteHide')\n override hide = new EventEmitter<void>();\n\n @Output('auiAutocompleteSelected')\n selected = new EventEmitter<string>();\n\n private _autocomplete: AutocompleteComponent;\n private focusedSuggestion: SuggestionComponent;\n\n private readonly inputValue$$ = new BehaviorSubject<string>('');\n private readonly filterFn$$ = new BehaviorSubject<SuggestionFilterFn>(\n this.filterFn,\n );\n\n private readonly unsubscribe$ = new Subject<void>();\n\n inputValue$: Observable<string> = this.inputValue$$.asObservable();\n filterFn$: Observable<SuggestionFilterFn> = this.filterFn$$.asObservable();\n\n get input(): HTMLInputElement {\n const el = this.elRef.nativeElement;\n return this.innerSelector ? el.querySelector(this.innerSelector) : el;\n }\n\n constructor(\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n elRef: ElementRef<HTMLInputElement>,\n renderer: Renderer2,\n cdr: ChangeDetectorRef,\n ngZone: NgZone,\n @Optional()\n @Host()\n private readonly ngControl: NgControl,\n ) {\n super(overlay, viewContainerRef, elRef, renderer, cdr, ngZone);\n this.type = TooltipType.Plain;\n this.trigger = TooltipTrigger.Manual;\n this.position = 'bottom start';\n this.hideOnClick = true;\n }\n\n ngOnInit() {\n this.show.subscribe(() => {\n this.updateSuggestionsContext();\n });\n this.hide.subscribe(() => {\n this.resetFocusedSuggestion();\n });\n\n if (this.ngControl) {\n this.ngControl.valueChanges\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe((value: string | string[]) => {\n if (!Array.isArray(value)) {\n this.inputValue$$.next(value);\n }\n });\n\n this.ngControl.statusChanges\n .pipe(startWith(this.ngControl.status), takeUntil(this.unsubscribe$))\n .subscribe(status => {\n this.disabled = status === 'DISABLED';\n });\n }\n }\n\n override ngAfterViewInit() {\n const input = this.input;\n\n merge(\n fromEvent(this.elRef.nativeElement, 'click'),\n fromEvent(input, 'focus'),\n )\n .pipe(debounceTime(0), takeUntil(this.unsubscribe$))\n .subscribe(() => this.onFocus());\n\n fromEvent(input, 'blur')\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => this.onBlur());\n\n fromEvent(input, 'input')\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(ev => this.onInput(ev));\n\n fromEvent<KeyboardEvent>(input, 'keydown')\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(ev => this.onKeyDown(ev));\n }\n\n override ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n override onFocus() {\n if (this.suggestionTrigger === 'auto') {\n super.onFocus();\n }\n }\n\n onInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.inputValue$$.next(value);\n this.createTooltip();\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown':\n this.focusSuggestionDir('down');\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowUp':\n this.focusSuggestionDir('up');\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Enter':\n if (this.focusedSuggestion) {\n this.selectFocusedOption();\n event.stopPropagation();\n event.preventDefault();\n }\n break;\n case 'Escape':\n this.disposeTooltip();\n event.stopPropagation();\n event.preventDefault();\n break;\n }\n }\n\n updateSuggestionsContext() {\n this.context = {\n ...this.context,\n width: this.elRef.nativeElement.offsetWidth + 'px',\n };\n }\n\n onSuggestionClick(value: string) {\n let isArrCtrl = false;\n\n if (this.ngControl) {\n const { control } = this.ngControl;\n isArrCtrl = Array.isArray(control.value);\n control.patchValue(isArrCtrl ? [...control.value, value] : value);\n } else {\n this.input.value = value;\n }\n\n this.inputValue$$.next(isArrCtrl ? '' : value);\n\n this.selected.emit(value);\n this.disposeTooltip();\n }\n\n override createTooltip() {\n super.createTooltip();\n this.autoFocusFirstSuggestion();\n }\n\n autoFocusFirstSuggestion() {\n const focusedSuggestion = this.autocomplete.suggestions.find(\n suggestion => suggestion.focused,\n );\n if (focusedSuggestion) {\n return;\n }\n const selectedSuggestion = this.autocomplete.suggestions.find(\n suggestion => suggestion.selected,\n );\n if (selectedSuggestion) {\n this.resetFocusedSuggestion(selectedSuggestion);\n requestAnimationFrame(() => {\n this.scrollToSuggestion(selectedSuggestion);\n });\n } else if (this.defaultFirstSuggestion) {\n const firstFocusableSuggestion = this.autocomplete.suggestions.find(\n suggestion => suggestion.visible && !suggestion.disabled,\n );\n this.resetFocusedSuggestion(firstFocusableSuggestion);\n if (firstFocusableSuggestion) {\n requestAnimationFrame(() => {\n this.scrollToSuggestion(firstFocusableSuggestion);\n });\n }\n }\n }\n\n private focusSuggestionDir(dir: 'down' | 'up') {\n if (!this.isCreated) {\n this.createTooltip();\n return;\n }\n const visibleSuggestions = this.autocomplete.suggestions.filter(\n suggestion => suggestion.visible && !suggestion.disabled,\n );\n if (visibleSuggestions.length === 0) {\n return;\n }\n const step = dir === 'down' ? 1 : -1;\n let i = visibleSuggestions.indexOf(this.focusedSuggestion);\n i = i + step;\n if (i >= visibleSuggestions.length) {\n i = 0;\n } else if (i < 0) {\n i = visibleSuggestions.length - 1;\n }\n this.resetFocusedSuggestion(visibleSuggestions[i]);\n this.scrollToSuggestion(this.focusedSuggestion);\n }\n\n private resetFocusedSuggestion(\n focusedSuggestion: SuggestionComponent = null,\n ) {\n if (this.focusedSuggestion) {\n this.focusedSuggestion.blur();\n }\n this.focusedSuggestion = focusedSuggestion;\n if (this.focusedSuggestion) {\n this.focusedSuggestion.focus();\n }\n }\n\n private scrollToSuggestion(suggestion: SuggestionComponent) {\n if (this.autocomplete.suggestionListRef) {\n scrollIntoView(\n this.autocomplete.suggestionListRef.nativeElement,\n suggestion.elRef.nativeElement,\n );\n }\n }\n\n protected selectFocusedOption() {\n if (this.focusedSuggestion) {\n this.onSuggestionClick(this.focusedSuggestion.value);\n }\n }\n\n private _filterFn(inputValue: string, suggestion: string) {\n return suggestion?.toLowerCase().includes(inputValue?.toLowerCase() ?? '');\n }\n}\n\n@Directive({\n selector: '[auiAutocomplete]:not(input):not(textarea)',\n exportAs: 'auiAutocomplete',\n inputs: ['class:auiAutocompleteClass'],\n host: {\n autocomplete: 'off',\n },\n})\nexport class CustomAutoCompleteDirective extends AutoCompleteDirective {\n @Input('auiAutocompleteInnerSelector')\n override innerSelector = 'input,textarea';\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiSuggestionGroupTitle]',\n exportAs: 'auiSuggestionGroupTitle',\n host: {\n '[class.aui-suggestion-group__title]': 'true',\n },\n})\nexport class SuggestionGroupTitleDirective {}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n QueryList,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { Observable, combineLatest, of, map, startWith, switchMap } from 'rxjs';\n\nimport { publishRef } from '../../utils';\nimport { SuggestionComponent } from '../suggestion/suggestion.component';\n\n@Component({\n selector: 'aui-suggestion-group',\n templateUrl: './suggestion-group.component.html',\n styleUrls: ['./suggestion-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class SuggestionGroupComponent implements AfterContentInit {\n @ContentChildren(forwardRef(() => SuggestionComponent))\n suggestions: QueryList<SuggestionComponent>;\n\n hasVisibleSuggestion$: Observable<boolean>;\n\n ngAfterContentInit() {\n this.hasVisibleSuggestion$ = this.suggestions.changes.pipe(\n startWith(this.suggestions),\n switchMap((options: QueryList<SuggestionComponent>) =>\n options.length > 0\n ? combineLatest(options.map(node => node.visible$))\n : of([false]),\n ),\n map(visible => visible.some(Boolean)),\n publishRef(),\n );\n }\n}\n","<div\n [hidden]=\"!(hasVisibleSuggestion$ | async)\"\n class=\"aui-suggestion-group\"\n>\n <ng-content select=\"[auiSuggestionGroupTitle]\"></ng-content>\n <div class=\"aui-suggestion-group__content\"><ng-content></ng-content></div>\n</div>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TooltipModule } from '../tooltip';\n\nimport { AutocompletePlaceholderComponent } from './autocomplete-placeholder.component';\nimport { AutocompleteComponent } from './autocomplete.component';\nimport {\n AutoCompleteDirective,\n CustomAutoCompleteDirective,\n} from './autocomplete.directive';\nimport { SuggestionGroupTitleDirective } from './helper-directives';\nimport { SuggestionGroupComponent } from './suggestion-group/suggestion-group.component';\nimport { SuggestionComponent } from './suggestion/suggestion.component';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, TooltipModule],\n declarations: [\n AutoCompleteDirective,\n CustomAutoCompleteDirective,\n AutocompleteComponent,\n SuggestionComponent,\n AutocompletePlaceholderComponent,\n SuggestionGroupComponent,\n SuggestionGroupTitleDirective,\n ],\n exports: [\n AutoCompleteDirective,\n CustomAutoCompleteDirective,\n AutocompleteComponent,\n SuggestionComponent,\n AutocompletePlaceholderComponent,\n SuggestionGroupComponent,\n SuggestionGroupTitleDirective,\n ],\n})\nexport class AutocompleteModule {}\n","import { CdkScrollable } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Optional,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n combineLatest,\n fromEvent,\n distinctUntilChanged,\n map,\n switchMap,\n throttleTime,\n} from 'rxjs';\n\ntype TargetType = Element | Window | string;\n\n@Component({\n selector: 'aui-back-top',\n templateUrl: './back-top.component.html',\n styleUrls: ['./back-top.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class BackTopComponent {\n @Input()\n set visibilityHeight(val: number) {\n this._visibilityHeight = val;\n this.visibilityHeight$$.next(val);\n }\n\n get visibilityHeight() {\n return this._visibilityHeight;\n }\n\n @Input()\n set target(val: TargetType) {\n this._target = val;\n this.target$$.next(val);\n }\n\n get target() {\n return this._target;\n }\n\n @Output()\n click = new EventEmitter<Event>();\n\n private _visibilityHeight = 400;\n private readonly target$$ = new BehaviorSubject<TargetType>(this.target);\n private readonly visibilityHeight$$ = new BehaviorSubject<number>(\n this.visibilityHeight,\n );\n\n private _target: TargetType;\n private _scrollTarget: Element | Window;\n\n constructor(@Optional() private readonly cdkScrollable: CdkScrollable) {}\n\n isDisplayed$ = combineLatest([\n this.target$$.asObservable().pipe(\n map(target => this.getTarget(target)),\n switchMap(target =>\n fromEvent(target, 'scroll').pipe(\n // use default scheduler\n throttleTime(50, undefined, { leading: true, trailing: true }),\n map(() => this.getTargetScrollTop(target)),\n ),\n ),\n ),\n this.visibilityHeight$$,\n ]).pipe(\n map(([scrollTop, visibilityHeight]) => scrollTop >= visibilityHeight),\n distinctUntilChanged(),\n );\n\n getTargetScrollTop(target: Element | Window) {\n if (target === window) {\n return document.documentElement.scrollTop;\n }\n return (target as HTMLElement).scrollTop;\n }\n\n handleClick(event: Event) {\n this._scrollTarget.scrollTo({ top: 0, behavior: 'smooth' });\n this.click.emit(event);\n }\n\n getTarget(target: TargetType): Element | Window {\n const scrollTarget =\n (typeof target === 'string' && document.querySelector(target)) ||\n this.cdkScrollable?.getElementRef().nativeElement ||\n window;\n this._scrollTarget = scrollTarget;\n return scrollTarget;\n }\n}\n","<div\n class=\"aui-back-top\"\n (click)=\"handleClick($event)\"\n [class.show]=\"isDisplayed$ | async\"\n>\n <aui-icon\n icon=\"back_top\"\n class=\"aui-back-top__icon\"\n ></aui-icon>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/icon.module';\n\nimport { BackTopComponent } from './back-top.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [BackTopComponent],\n exports: [BackTopComponent],\n})\nexport class BackTopModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-breadcrumb-item',\n templateUrl: './breadcrumb-item.component.html',\n styleUrls: ['./breadcrumb-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class BreadcrumbItemComponent {\n get separator() {\n return this._separator;\n }\n\n set separator(val) {\n this._separator = val;\n this.cdr.markForCheck();\n }\n\n get separatorIcon() {\n return this._separatorIcon;\n }\n\n set separatorIcon(val) {\n this._separatorIcon = val;\n this.cdr.markForCheck();\n }\n\n private _separator = '/';\n private _separatorIcon = '';\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n}\n","<div class=\"aui-breadcrumb__item\">\n <span class=\"aui-breadcrumb__content\"><ng-content></ng-content></span>\n <span class=\"aui-breadcrumb__separator\">\n <ng-container *ngIf=\"!separatorIcon\">{{ separator }}</ng-container>\n <aui-icon\n *ngIf=\"separatorIcon\"\n [icon]=\"separatorIcon\"\n ></aui-icon>\n </span>\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\n\n@Component({\n selector: 'aui-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class BreadcrumbComponent implements AfterContentInit {\n @Input()\n get separator() {\n return this._separator;\n }\n\n set separator(val) {\n if (val === this._separator) {\n return;\n }\n this._separator = val;\n if (this.items) {\n this.items.forEach(item => {\n item.separator = val;\n });\n }\n }\n\n @Input()\n get separatorIcon() {\n return this._separatorIcon;\n }\n\n set separatorIcon(val) {\n if (val === this._separatorIcon) {\n return;\n }\n this._separatorIcon = val;\n if (this.items) {\n this.items.forEach(item => {\n item.separatorIcon = val;\n });\n }\n }\n\n @ContentChildren(BreadcrumbItemComponent)\n items: QueryList<BreadcrumbItemComponent>;\n\n private _separator = '/';\n private _separatorIcon = '';\n\n ngAfterContentInit() {\n this.items.forEach(item => {\n item.separator = this.separator;\n item.separatorIcon = this.separatorIcon;\n });\n }\n}\n","<div class=\"aui-breadcrumb\"><ng-content></ng-content></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [BreadcrumbComponent, BreadcrumbItemComponent],\n exports: [BreadcrumbComponent, BreadcrumbItemComponent],\n})\nexport class BreadcrumbModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class CardComponent {\n @Input() divider = true;\n}\n","<div\n class=\"aui-card\"\n [class.hasDivider]=\"divider\"\n>\n <ng-content select=\"[auiCardHeader]\"></ng-content>\n <div class=\"aui-card__content\"><ng-content></ng-content></div>\n <ng-content select=\"[auiCardFooter]\"></ng-content>\n</div>\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[auiCardHeader]',\n host: {\n '[class.aui-card__header]': 'true',\n '[class.aui-card__header--secondary]': 'size === \"secondary\"',\n },\n})\nexport class CardHeaderDirective {\n @Input()\n size: 'default' | 'secondary' = 'default';\n}\n\n@Directive({\n selector: '[auiCardFooter]',\n host: {\n '[class.aui-card__footer]': 'true',\n },\n})\nexport class CardFooterDirective {}\n\n@Directive({\n selector: '[auiSectionTitle]',\n host: {\n '[class.aui-section__title]': 'true',\n },\n})\nexport class SectionTitleDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-section',\n templateUrl: './section.component.html',\n styleUrls: ['./section.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class SectionComponent {}\n","<div class=\"aui-section\">\n <ng-content select=\"[auiSectionTitle]\"></ng-content>\n <div class=\"aui-section__content\"><ng-content></ng-content></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { CardComponent } from './card.component';\nimport {\n CardFooterDirective,\n CardHeaderDirective,\n SectionTitleDirective,\n} from './helper-directives';\nimport { SectionComponent } from './section.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n CardComponent,\n CardHeaderDirective,\n CardFooterDirective,\n SectionComponent,\n SectionTitleDirective,\n ],\n exports: [\n CardComponent,\n CardHeaderDirective,\n CardFooterDirective,\n SectionComponent,\n SectionTitleDirective,\n ],\n})\nexport class CardModule {}\n","import {\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ReplaySubject } from 'rxjs';\n\nimport { coerceAttrBoolean } from '../utils';\n\n/**\n * form control 内部不保持 value 属性,当不使用 ngModel 时可以通过 [(value)] 实现双向绑定;\n * 也可以分别传入 value 和 监听 valueChange 事件以实现阻断用户操作的功能。\n */\n@Directive()\nexport class CommonFormControl<V, M = V> implements ControlValueAccessor {\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n this._disabled = coerceAttrBoolean(val);\n }\n\n @Input()\n get readonly() {\n return this.disabled;\n }\n\n set readonly(val) {\n this.disabled = val;\n }\n\n @Input('value')\n get propValue() {\n return this._propValue;\n }\n\n set propValue(val) {\n if (val === this._propValue) {\n return;\n }\n this._propValue = val;\n this.writeValue(val);\n }\n\n @Output()\n valueChange = new EventEmitter<V>();\n\n protected onChange: (_: V) => void;\n protected onTouched: () => void;\n private _propValue: V;\n private _disabled = false;\n\n model: M = null;\n model$ = new ReplaySubject<M>(1);\n\n constructor(protected cdr: ChangeDetectorRef) {\n this.model$.subscribe(model => {\n this.model = model;\n this.cdr.markForCheck();\n });\n }\n\n registerOnChange(fn: (_: V) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n writeValue(value: V) {\n this.model$.next(this.valueIn(value));\n }\n\n emitModel(model: M) {\n this.emitValue(this.modelOut(model));\n }\n\n emitValue(value: V) {\n if (this.onChange) {\n this.onChange(value);\n this.writeValue(value);\n }\n this.valueChange.emit(value);\n }\n\n protected valueIn(value: V): M {\n return value as any;\n }\n\n protected modelOut(model: M): V {\n return model as any;\n }\n}\n\n/**\n * @deprecated use {@link CommonFormControl} instead\n */\nexport const CommonForm = CommonFormControl;\n","import { ValueOf } from '../types';\n\nexport const LabelPosition = {\n Top: 'top',\n Left: 'left',\n Right: 'right',\n} as const;\n\nexport const FormItemWidth = {\n Small: 'small',\n Medium: 'medium',\n Large: 'large',\n} as const;\n\nexport type LabelPosition = ValueOf<typeof LabelPosition>;\n\nexport type FormItemWidth = ValueOf<typeof FormItemWidth>;\n","import { Directive, Inject, Input, Optional } from '@angular/core';\nimport { ControlContainer, FormGroupDirective, NgForm } from '@angular/forms';\nimport { BehaviorSubject, Observable, distinctUntilChanged } from 'rxjs';\n\nimport { LabelPosition } from './form.types';\n\n@Directive({\n selector: 'form[auiForm]',\n exportAs: 'auiForm',\n host: {\n '[class.aui-form]': 'true',\n '[class.aui-form--inline]': 'inline',\n '[class.ng-submitted]': 'ngClassSubmitted',\n },\n})\nexport class FormDirective {\n get ngClassSubmitted() {\n return (this.controlContainer?.formDirective as NgForm | FormGroupDirective)\n .submitted;\n }\n\n private readonly labelWidth$$ = new BehaviorSubject<string>(null);\n private readonly labelPosition$$ = new BehaviorSubject<LabelPosition>(\n LabelPosition.Right,\n );\n\n private readonly emptyAddon$$ = new BehaviorSubject<boolean>(false);\n\n @Input('auiFormLabelWidth')\n set labelWidth(val: string) {\n this.labelWidth$$.next(val);\n }\n\n @Input('auiFormLabelPosition')\n set labelPosition(val: LabelPosition) {\n this.labelPosition$$.next(val);\n }\n\n @Input('auiFormEmptyAddon')\n set emptyAddon(val: boolean) {\n this.emptyAddon$$.next(val);\n }\n\n @Input('auiFormInline')\n inline = false;\n\n labelWidth$: Observable<string> = this.labelWidth$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n labelPosition$: Observable<LabelPosition> = this.labelPosition$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n emptyAddon$: Observable<boolean> = this.emptyAddon$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n constructor(\n @Inject(ControlContainer)\n @Optional()\n public controlContainer?: ControlContainer,\n ) {}\n}\n","import { Directive, Input } from '@angular/core';\n\nimport { coerceAttrBoolean } from '../utils';\n\n@Directive({\n selector: 'label[auiFormItemLabel]',\n host: {\n '[class.aui-form-item__label]': 'true',\n },\n})\nexport class FormItemLabelDirective {}\n\n@Directive({\n selector: '[auiFormItemHint]',\n host: {\n '[class.aui-form-item__hint]': 'true',\n },\n})\nexport class FormItemHintDirective {}\n\n@Directive({\n selector: '[auiFormItemAddon]',\n host: {\n '[class.aui-form-item__addon]': 'true',\n },\n})\nexport class FormItemAddonDirective {}\n\n@Directive({\n selector: '[auiFormItemError]',\n host: {\n '[class.aui-form-item__error]': 'true',\n },\n})\nexport class FormItemErrorDirective {}\n\n@Directive({\n selector: '[auiFormItemControl]',\n host: {\n '[class.aui-form-item__control]': 'true',\n },\n})\nexport class FormItemControlDirective {\n @Input()\n get required() {\n return this._required;\n }\n\n set required(val: boolean | '') {\n this._required = coerceAttrBoolean(val);\n }\n\n private _required = false;\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport {\n Observable,\n Subject,\n combineLatest,\n merge,\n map,\n startWith,\n switchMap,\n takeUntil,\n} from 'rxjs';\n\nimport { Bem, buildBem, publishRef } from '../../utils';\nimport { FormDirective } from '../form.directive';\nimport { FormItemWidth, LabelPosition } from '../form.types';\nimport {\n FormItemAddonDirective,\n FormItemControlDirective,\n FormItemErrorDirective,\n FormItemHintDirective,\n FormItemLabelDirective,\n} from '../helper-directives';\n\n@Component({\n selector: 'aui-form-item',\n templateUrl: './form-item.component.html',\n styleUrls: ['./form-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class FormItemComponent implements AfterContentInit, OnDestroy {\n bem: Bem = buildBem('aui-form-item');\n\n @Input()\n labelWidth: string = null;\n\n @Input()\n width: FormItemWidth;\n\n @Input()\n labelPosition: LabelPosition = LabelPosition.Right;\n\n @Input()\n emptyAddon = false;\n\n @Input()\n plain = false;\n\n @ContentChild(FormItemLabelDirective, { static: false })\n itemLabel: FormItemLabelDirective;\n\n @ContentChild(FormItemControlDirective, { static: false })\n itemControl: FormItemControlDirective;\n\n @ContentChildren(NgControl, { descendants: true })\n ngControls: QueryList<NgControl>;\n\n @ContentChildren(FormItemAddonDirective)\n addons: QueryList<FormItemAddonDirective>;\n\n @ContentChildren(FormItemErrorDirective)\n errors: QueryList<FormItemErrorDirective>;\n\n @ContentChildren(FormItemHintDirective)\n hints: QueryList<FormItemHintDirective>;\n\n hasError$: Observable<boolean>;\n errorCount$: Observable<number>;\n hintCount$: Observable<number>;\n parentForm: NgForm | FormGroupDirective;\n\n private readonly destroy$$ = new Subject<void>();\n\n get formItemWidthClass() {\n return this.width\n ? this.bem.element('content', { [this.width]: true })\n : '';\n }\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n @Optional() private readonly auiForm: FormDirective,\n @Optional() ngForm: NgForm,\n @Optional() formGroup: FormGroupDirective,\n ) {\n this.parentForm = formGroup || ngForm;\n if (this.auiForm) {\n this.subscribeInputsFromParent();\n }\n }\n\n ngAfterContentInit() {\n this.hasError$ = this.ngControls.changes.pipe(\n startWith(this.ngControls),\n switchMap((controls: QueryList<NgControl>) =>\n combineLatest(\n controls.map(control => this.mapControlStatus(control)),\n ).pipe(map(statuses => statuses.some(Boolean))),\n ),\n );\n\n this.errorCount$ = this.errors.changes.pipe(\n map(errors => errors.length),\n startWith(this.errors.length),\n );\n\n this.hintCount$ = this.hints.changes.pipe(\n map(hints => hints.length),\n startWith(this.hints.length),\n );\n }\n\n subscribeInputsFromParent() {\n this.auiForm.labelWidth$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(width => {\n this.labelWidth = width;\n this.cdr.markForCheck();\n });\n this.auiForm.labelPosition$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(position => {\n this.labelPosition = position;\n this.cdr.markForCheck();\n });\n this.auiForm.emptyAddon$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(emptyAddon => {\n this.emptyAddon = emptyAddon;\n this.cdr.markForCheck();\n });\n }\n\n mapControlStatus(control: NgControl) {\n return (\n this.parentForm\n ? combineLatest([\n control.statusChanges.pipe(startWith(control.status)),\n merge(\n this.parentForm.statusChanges.pipe(\n startWith(this.parentForm.status),\n ),\n this.parentForm.ngSubmit,\n ),\n ]).pipe(map(([status]: string[]) => status))\n : control.statusChanges\n ).pipe(\n map(\n (status: string) =>\n status === 'INVALID' && (control.dirty || this.parentForm?.submitted),\n ),\n publishRef(),\n );\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n }\n}\n","<div\n [class]=\"bem.block(labelPosition)\"\n [class.isPlain]=\"plain\"\n [class.hasError]=\"hasError$ | async\"\n>\n <div\n [ngClass]=\"\n bem.element(\n 'label-wrapper',\n { required: !!itemControl?.required },\n labelPosition\n )\n \"\n [class.hasLabel]=\"!!itemLabel\"\n [style.width]=\"labelWidth\"\n >\n <ng-content select=\"label[auiFormItemLabel]\"></ng-content>\n </div>\n <div class=\"aui-form-item__container\">\n <div\n class=\"aui-form-item__content\"\n [ngClass]=\"formItemWidthClass\"\n >\n <ng-content></ng-content>\n <div\n *ngIf=\"emptyAddon || addons?.length\"\n class=\"aui-form-item__addon-wrapper\"\n >\n <ng-content select=\"[auiFormItemAddon]\"></ng-content>\n </div>\n </div>\n <div\n *ngIf=\"(hasError$ | async) && (errorCount$ | async)\"\n class=\"aui-form-item__error-wrapper\"\n >\n <ng-content select=\"[auiFormItemError]\"></ng-content>\n </div>\n <div\n *ngIf=\"hintCount$ | async\"\n class=\"aui-form-item__hint-wrapper\"\n >\n <ng-content select=\"[auiFormItemHint]\"></ng-content>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { FormItemComponent } from './form-item/form-item.component';\nimport { FormDirective } from './form.directive';\nimport {\n FormItemAddonDirective,\n FormItemControlDirective,\n FormItemErrorDirective,\n FormItemHintDirective,\n FormItemLabelDirective,\n} from './helper-directives';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n FormDirective,\n FormItemComponent,\n FormItemAddonDirective,\n FormItemErrorDirective,\n FormItemHintDirective,\n FormItemLabelDirective,\n FormItemControlDirective,\n ],\n exports: [\n FormDirective,\n FormItemComponent,\n FormItemAddonDirective,\n FormItemErrorDirective,\n FormItemHintDirective,\n FormItemLabelDirective,\n FormItemControlDirective,\n ],\n})\nexport class FormModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { CommonFormControl } from '../../form';\nimport { TrackFn } from '../../select';\nimport { CheckboxComponent } from '../checkbox.component';\n\n@Component({\n selector: 'aui-checkbox-group',\n templateUrl: './checkbox-group.component.html',\n styleUrls: ['./checkbox-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxGroupComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxGroupComponent<T> extends CommonFormControl<T[]> {\n private _trackFn: TrackFn<T>;\n\n @Input()\n direction: 'row' | 'column' = 'row';\n\n @Input()\n get trackFn() {\n return this._trackFn;\n }\n\n set trackFn(val) {\n if (val !== this._trackFn) {\n this._trackFn = val;\n }\n }\n\n @ContentChildren(forwardRef(() => CheckboxComponent), {\n descendants: true,\n })\n checkboxes: QueryList<CheckboxComponent<T>>;\n\n onCheckboxChange(checkbox: CheckboxComponent<T>) {\n if (this.onTouched) {\n this.onTouched();\n }\n const values = this.checkboxes\n .filter(item => (item === checkbox ? !item.model : item.model))\n .map(item => item.label);\n this.emitValue(values);\n }\n\n onCheckboxBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n}\n","<div class=\"aui-checkbox-group aui-checkbox-group--{{ direction }}\">\n <ng-content></ng-content>\n</div>\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, Subject, combineLatest, map, takeUntil } from 'rxjs';\n\nimport { CommonFormControl } from '../form';\n\nimport { CheckboxGroupComponent } from './checkbox-group/checkbox-group.component';\n\nlet uniqueId = 0;\n@Component({\n selector: 'aui-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxComponent<T>\n extends CommonFormControl<boolean>\n implements AfterViewInit, OnDestroy\n{\n id = `aui-checkbox-${uniqueId++}`;\n\n @Input()\n name = '';\n\n @Input()\n type = 'label';\n\n @Input()\n get label() {\n return this._label;\n }\n\n set label(val) {\n this._label = val;\n this.label$$.next(val);\n }\n\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: boolean) {\n this._indeterminate = value;\n }\n\n @ViewChild('elRef', { static: true })\n elRef: ElementRef;\n\n private readonly checkboxGroup: CheckboxGroupComponent<T>;\n private _label: T;\n private readonly label$$ = new BehaviorSubject(this.label);\n private _indeterminate = false;\n private readonly destroy$$ = new Subject<void>();\n\n constructor(\n cdr: ChangeDetectorRef,\n @Optional()\n @Inject(forwardRef(() => CheckboxGroupComponent))\n checkboxGroup: CheckboxGroupComponent<T>,\n private readonly focusMonitor: FocusMonitor,\n ) {\n super(cdr);\n this.checkboxGroup = checkboxGroup;\n if (this.checkboxGroup) {\n combineLatest([this.checkboxGroup.model$, this.label$$])\n .pipe(\n takeUntil(this.destroy$$),\n map(([values, label]) => {\n if (this.checkboxGroup.trackFn) {\n return values?.some(\n v =>\n this.checkboxGroup.trackFn(v) ===\n this.checkboxGroup.trackFn(label),\n );\n }\n return values?.includes(label);\n }),\n )\n .subscribe(checked => {\n this.writeValue(!!checked);\n });\n }\n }\n\n ngAfterViewInit() {\n this.focusMonitor.monitor(this.elRef.nativeElement, true);\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.focusMonitor.stopMonitoring(this.elRef.nativeElement);\n }\n\n onClick() {\n if (this.disabled) {\n return;\n }\n if (this.indeterminate) {\n this._indeterminate = false;\n }\n this.emitValue(!this.model);\n if (this.checkboxGroup) {\n this.checkboxGroup.onCheckboxChange(this);\n }\n }\n\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n if (this.checkboxGroup) {\n this.checkboxGroup.onCheckboxBlur();\n }\n }\n}\n","<div\n #elRef\n class=\"aui-checkbox\"\n [class.isDisabled]=\"disabled\"\n [class.isChecked]=\"model\"\n [class.isIndeterminate]=\"indeterminate\"\n [class.isTag]=\"type === 'tag'\"\n>\n <input\n [name]=\"name\"\n [id]=\"id\"\n class=\"aui-checkbox__input\"\n type=\"checkbox\"\n [checked]=\"model\"\n [disabled]=\"disabled\"\n (click)=\"onClick()\"\n (blur)=\"onBlur()\"\n />\n <label\n class=\"aui-checkbox__label\"\n [for]=\"id\"\n >\n <i class=\"aui-checkbox__pointer\">\n <aui-icon\n [icon]=\"indeterminate ? 'square_s' : 'check_s'\"\n [hidden]=\"!model && !indeterminate\"\n ></aui-icon>\n </i>\n <span class=\"aui-checkbox__content\"><ng-content></ng-content></span>\n </label>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { CheckboxGroupComponent } from './checkbox-group/checkbox-group.component';\nimport { CheckboxComponent } from './checkbox.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [CheckboxComponent, CheckboxGroupComponent],\n exports: [CheckboxComponent, CheckboxGroupComponent],\n})\nexport class CheckboxModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { CommonFormControl } from '../form';\n\n@Component({\n selector: 'aui-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPickerComponent),\n multi: true,\n },\n ],\n})\nexport class ColorPickerComponent extends CommonFormControl<string> {\n onInput(event: Event) {\n this.emitValue((event.target as HTMLInputElement).value);\n }\n}\n","<input\n class=\"aui-color-picker\"\n type=\"color\"\n [disabled]=\"disabled\"\n [value]=\"model\"\n (input)=\"onInput($event)\"\n/>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ColorPickerComponent } from './color-picker.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [ColorPickerComponent],\n exports: [ColorPickerComponent],\n})\nexport class ColorPickerModule {}\n","import { ConfigType, Dayjs } from 'dayjs';\n\nexport enum Side {\n Left = 'left',\n Right = 'right',\n}\n\nexport type DisabledTimeFn = (date?: ConfigType) => {\n hours: () => number[];\n minutes: (hour?: number) => number[];\n seconds: (hour?: number, minute?: number) => number[];\n};\n\nexport interface CalendarHeaderRange {\n start: Dayjs;\n end?: Dayjs;\n}\n\nexport enum DateNavRange {\n Decade = 'decade',\n Year = 'year',\n Month = 'month',\n}\n\nexport type DisabledDateFn = (date: Dayjs, type: DateNavRange) => boolean;\n","import { DateNavRange } from '../date-picker.type';\n\nexport const DATE = 'date';\nexport const DAY = 'day';\nexport const MONTH = 'month';\nexport const YEAR = 'year';\nexport const HOUR = 'hour';\nexport const MINUTE = 'minute';\nexport const SECOND = 'second';\n\n// 根据日期类型,分为年,月,日\nexport enum DatePickerType {\n Day = 'date',\n Month = 'month',\n Year = 'year',\n}\n\nexport const MONTH_PANEL_COLUMN_COUNT = 3;\nexport const MONTH_PANEL_ROW_COUNT = 4;\n\nexport const YEAR_PANEL_COLUMN_COUNT = 3;\nexport const YEAR_PANEL_ROW_COUNT = 4;\n\nexport const DAY_PANEL_COLUMN_COUNT = 7;\nexport const DAY_PANEL_ROW_COUNT = 6;\n\nexport const DATE_TYPES = [\n DatePickerType.Year,\n DatePickerType.Month,\n DatePickerType.Day,\n];\n\nexport const DATE_NAV_RANGES = [\n DateNavRange.Decade,\n DateNavRange.Year,\n DateNavRange.Month,\n];\n","import { Dayjs, UnitType } from 'dayjs';\n\nimport { TimePickerModel } from '../../time-picker/time-picker.type';\nimport { DateNavRange, DisabledDateFn } from '../date-picker.type';\n\nimport {\n DATE_NAV_RANGES,\n DATE_TYPES,\n DAY,\n DAY_PANEL_COLUMN_COUNT,\n DAY_PANEL_ROW_COUNT,\n DatePickerType,\n MONTH,\n MONTH_PANEL_COLUMN_COUNT,\n MONTH_PANEL_ROW_COUNT,\n YEAR,\n YEAR_PANEL_COLUMN_COUNT,\n YEAR_PANEL_ROW_COUNT,\n} from './constant';\n\nexport class DateCell {\n isBackground?: boolean; // 面板中非本月日期\n inRange?: boolean; // 在范围组件的范围内\n isRangeStart?: boolean; // 范围组件的范围开始日期\n isRangeEnd?: boolean; // 范围组件的范围结束日期\n isDisabled?: boolean;\n\n constructor(public value: Dayjs, public label: string | number) {}\n}\n\nexport function getDatePanelIterable(\n date: Dayjs,\n navRange: DateNavRange,\n weekStartDay: number,\n): Iterable<Dayjs> & Iterator<Dayjs> {\n let firstData: Dayjs;\n let counts = 0;\n date = date.clone();\n switch (navRange) {\n case DateNavRange.Month: {\n firstData = date.date(-1).day(weekStartDay);\n if (firstData.isAfter(date)) {\n firstData = firstData.subtract(1, 'week');\n }\n counts = DAY_PANEL_COLUMN_COUNT * DAY_PANEL_ROW_COUNT;\n\n break;\n }\n case DateNavRange.Year: {\n firstData = date.month(0);\n counts = MONTH_PANEL_COLUMN_COUNT * MONTH_PANEL_ROW_COUNT;\n\n break;\n }\n case DateNavRange.Decade: {\n firstData = date.subtract(1, YEAR);\n counts = YEAR_PANEL_COLUMN_COUNT * YEAR_PANEL_ROW_COUNT;\n\n break;\n }\n // No default\n }\n let i = 0;\n return {\n [Symbol.iterator]() {\n return this;\n },\n next: () => {\n if (i < counts) {\n return {\n value: firstData.add(\n i++,\n navRange === DateNavRange.Month\n ? DAY\n : navRange === DateNavRange.Year\n ? MONTH\n : YEAR,\n ),\n done: false,\n };\n }\n return {\n done: true,\n value: null,\n };\n },\n };\n}\n\nexport function formatDate(type: DateNavRange, dateValue: Dayjs, date: Dayjs) {\n if (!dateValue) {\n return null;\n }\n const label =\n type === DateNavRange.Decade\n ? dateValue.year()\n : type === DateNavRange.Year\n ? dateValue.month() + 1\n : dateValue.date();\n const cell = new DateCell(dateValue, label);\n if (type === DateNavRange.Month && date.month() !== dateValue.month()) {\n cell.isBackground = true;\n }\n return cell;\n}\n\nexport function nextDatePickerType(\n current: DatePickerType,\n guard?: DatePickerType,\n) {\n const guardIndex = guard ? DATE_TYPES.indexOf(guard) : DATE_TYPES.length - 1;\n const currentIndex = DATE_TYPES.indexOf(current);\n if (currentIndex < guardIndex) {\n return DATE_TYPES[currentIndex + 1];\n }\n return current;\n}\n\nexport function nextNavRangeType(current: DateNavRange, guard?: DateNavRange) {\n const guardIndex = guard\n ? DATE_NAV_RANGES.indexOf(guard)\n : DATE_NAV_RANGES.length - 1;\n const currentIndex = DATE_NAV_RANGES.indexOf(current);\n if (currentIndex < guardIndex) {\n return DATE_NAV_RANGES[currentIndex + 1];\n }\n return current;\n}\n\nexport function updateDate(\n sourceValue: Dayjs,\n newValue: Dayjs,\n type: DatePickerType,\n) {\n const updateTypes = DATE_TYPES.slice(0, DATE_TYPES.indexOf(type) + 1);\n return updateTypes.reduce(\n (acc, curr) => acc.set(curr, newValue.get(curr)),\n sourceValue.clone(),\n );\n}\n\nexport function calcRangeValue(type: DateNavRange, date: Dayjs) {\n date = date.clone();\n return [DateNavRange.Month, DatePickerType.Year].includes(type)\n ? {\n start: date,\n }\n : {\n start: date.subtract(date.year() % 10, YEAR),\n end: date.add(9 - (date.year() % 10), YEAR),\n };\n}\n\nexport function sortDates(dates: Dayjs[]) {\n return [...(dates || [])].sort((a, b) =>\n a.isBefore(b) ? -1 : a.isSame(b) ? 0 : 1,\n );\n}\n\nexport function getNavRangeByType(type: DatePickerType) {\n return {\n [DatePickerType.Day]: DateNavRange.Month,\n [DatePickerType.Month]: DateNavRange.Year,\n [DatePickerType.Year]: DateNavRange.Decade,\n }[type];\n}\n\nexport function getTypeByNavRange(navRange: DateNavRange) {\n return {\n [DateNavRange.Month]: DatePickerType.Day,\n [DateNavRange.Year]: DatePickerType.Month,\n [DateNavRange.Decade]: DatePickerType.Year,\n }[navRange];\n}\n\nexport function getTimePickerModel(date: Dayjs): TimePickerModel {\n return date\n ? {\n second: date.second(),\n minute: date.minute(),\n hour: date.hour(),\n }\n : null;\n}\n\nexport function updateDateByTimeModel(date: Dayjs, time: TimePickerModel) {\n return time\n ? date\n .set('hour', time.hour || 0)\n .set('minute', time.minute || 0)\n .set('second', time.second || 0)\n : date;\n}\n\nexport const composeDisabledDateFn =\n (...fns: DisabledDateFn[]) =>\n (date: Dayjs, navRange: DateNavRange) =>\n !fns.filter(i => !!i).every(fn => !fn(date, navRange));\n\nexport function minDate(a: Dayjs, b: Dayjs, unit: UnitType = 'date') {\n return !a ? b : !b ? a : a.isBefore(b, unit) ? a : b;\n}\n\nexport function maxDate(a: Dayjs, b: Dayjs, unit: UnitType = 'date') {\n return !a ? b : !b ? a : a.isAfter(b, unit) ? a : b;\n}\n","import { I18NInterface } from '../i18n.type';\n\nexport const en: I18NInterface = {\n locale: 'en',\n translation: {\n start_date: 'Start Date',\n end_date: 'End Date',\n select_date: 'Select Date',\n select_time: 'Select time',\n clear: 'clear',\n confirm: 'confirm',\n to: 'To',\n year_suffix: '',\n month_suffix: '',\n monday: 'Mon',\n tuesday: 'Tues',\n wednesday: 'Wed',\n thursday: 'Thur',\n friday: 'Fri',\n saturday: 'Sat',\n sunday: 'Sun',\n now: 'Now',\n select_all: 'Select All',\n today: 'Today',\n },\n};\n","import { InjectionToken } from '@angular/core';\n\nimport { en } from './language/en';\n\nexport interface I18NInterface {\n locale: string;\n translation: Record<string, string>;\n}\n\nexport type StringMap = Record<string, string>;\n\nexport const I18NInterfaceToken = new InjectionToken('i18n token', {\n factory: () => en,\n});\n","import { Inject, Injectable, isDevMode } from '@angular/core';\nimport { BehaviorSubject, Observable, pluck } from 'rxjs';\n\nimport { I18NInterface, I18NInterfaceToken, StringMap } from './i18n.type';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class I18nService {\n private readonly i18nChange$$: BehaviorSubject<I18NInterface>;\n\n localeChange$: Observable<string>;\n\n constructor(@Inject(I18NInterfaceToken) private _i18n: I18NInterface) {\n this.i18nChange$$ = new BehaviorSubject<I18NInterface>(this._i18n);\n this.localeChange$ = this.i18nChange$$.asObservable().pipe(pluck('locale'));\n }\n\n setI18n(i18n: I18NInterface) {\n this._i18n = i18n;\n this.i18nChange$$.next(i18n);\n }\n\n get i18n() {\n return this._i18n;\n }\n\n translate(key: string, data?: StringMap, ignoreNonExist = false) {\n let content = this._i18n.translation[key];\n if (content == null) {\n if (isDevMode() && !ignoreNonExist) {\n console.warn(`No exist translate key for ${key}`);\n }\n return key;\n }\n if (data) {\n content = content.replaceAll(\n /{{([^{}]+)}}/,\n (_matched, $0: string) => data[$0.trim()],\n );\n }\n return content;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { I18nService } from './i18n.service';\nimport { StringMap } from './i18n.type';\n\n@Pipe({\n name: 'auiI18n',\n})\nexport class I18nPipe implements PipeTransform {\n constructor(private readonly i18n: I18nService) {}\n transform(value: any, data?: StringMap) {\n return this.i18n.translate(value, data);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport dayjs, { ConfigType, Dayjs } from 'dayjs';\n\nimport { buildBem } from '../../../utils';\nimport {\n CalendarHeaderRange,\n DateNavRange,\n Side,\n} from '../../date-picker.type';\nimport { MONTH, YEAR } from '../constant';\nimport { calcRangeValue } from '../util';\n\nconst bem = buildBem('aui-calendar-header');\n\n@Component({\n selector: 'aui-calendar-header',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarHeaderComponent {\n @Input()\n dateNavRange = DateNavRange.Month;\n\n @Input()\n anchor = dayjs();\n\n @Input()\n maxAvail?: ConfigType;\n\n private get _maxAvail() {\n return this.maxAvail ? dayjs(this.maxAvail) : null;\n }\n\n @Input()\n minAvail?: ConfigType;\n\n private get _minAvail() {\n return this.minAvail ? dayjs(this.minAvail) : null;\n }\n\n @Output()\n navRangeChange = new EventEmitter<DateNavRange>();\n\n @Output()\n anchorChange = new EventEmitter<Dayjs>();\n\n get headerRange(): CalendarHeaderRange {\n return calcRangeValue(this.dateNavRange, this.anchor);\n }\n\n bem = bem;\n\n DateNavRange = DateNavRange;\n\n // maxAvail > current date :right btn hide\n // minAvail > current date :left btn hide\n shouldShowNav(type: DateNavRange, side: Side) {\n const availValue = (\n side === Side.Left ? this._minAvail : this._maxAvail\n )?.clone();\n if (!availValue) {\n return true;\n }\n // 对于年的判别,2014-5-1至2015-6-1日,仍当展示按钮\n const constrainDate = [DateNavRange.Month, DateNavRange.Year].includes(type)\n ? availValue.add(side === Side.Left ? 1 : -1, type as 'month' | 'year')\n : availValue;\n return (\n this.compareNavValue(type, constrainDate, this.anchor) ===\n (side === Side.Left ? -1 : 1)\n );\n }\n\n // @return isBetween|isEqual:0, isBefore:-1,isAfter:1\n compareNavValue(type: DateNavRange, constrain: Dayjs, anchor: Dayjs) {\n const range = calcRangeValue(type, anchor);\n const constrainValue = constrain;\n if (type === DateNavRange.Decade) {\n if (constrainValue.isBetween(range.start, range.end, YEAR)) {\n return 0;\n }\n return constrainValue.isBefore(range.start) ? -1 : 1;\n }\n return constrainValue.isSame(range.start, MONTH)\n ? 0\n : constrainValue.isBefore(range.start, MONTH)\n ? -1\n : 1;\n }\n\n navHead(range: DateNavRange, value: number) {\n let anchor: Dayjs;\n switch (range) {\n case DateNavRange.Month: {\n anchor = this.anchor.add(value, MONTH);\n break;\n }\n case DateNavRange.Year: {\n anchor = this.anchor.add(value, YEAR);\n break;\n }\n case DateNavRange.Decade:\n anchor = this.anchor.add(value, YEAR);\n break;\n }\n this.anchorChange.next(anchor);\n }\n\n clickNav = (range: DateNavRange) => {\n if (![DateNavRange.Month, DateNavRange.Year].includes(range)) {\n return;\n }\n this.navRangeChange.next(\n range === DateNavRange.Month ? DateNavRange.Year : DateNavRange.Decade,\n );\n };\n}\n","<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- 内容区 -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ headerRange?.start?.month() + 1 }}{{ 'month_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ headerRange?.start.year() }} - {{ headerRange?.end?.year() }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angle_double_left' : 'angle_double_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angle_double_left' : 'angle_double_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport dayjs, { Dayjs } from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween';\n\nimport { buildBem } from '../../../utils';\nimport { DateNavRange } from '../../date-picker.type';\nimport {\n DAY,\n DAY_PANEL_COLUMN_COUNT,\n DAY_PANEL_ROW_COUNT,\n DatePickerType,\n MONTH,\n MONTH_PANEL_COLUMN_COUNT,\n MONTH_PANEL_ROW_COUNT,\n YEAR,\n YEAR_PANEL_COLUMN_COUNT,\n YEAR_PANEL_ROW_COUNT,\n} from '../constant';\nimport {\n DateCell,\n calcRangeValue,\n composeDisabledDateFn,\n formatDate,\n getDatePanelIterable,\n getNavRangeByType,\n getTypeByNavRange,\n sortDates,\n} from '../util';\n\ndayjs.extend(isBetween);\n\nconst bem = buildBem('aui-picker-panel');\n\n@Component({\n selector: 'aui-picker-panel',\n templateUrl: './picker-panel.template.html',\n styleUrls: ['./picker-panel.style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PickerPanelComponent implements OnChanges {\n @Input()\n navRange: DateNavRange;\n\n @Input()\n type: DatePickerType;\n\n @Input()\n anchor = dayjs();\n\n @Input()\n matchDates: Dayjs[];\n\n @Input()\n disabledDate: (date: Dayjs, navRange: DateNavRange) => boolean = () => false;\n\n @Input()\n set weekStartDay(day: number) {\n const normalized = Math.max(Math.min(Math.round(day), 6), 0);\n this.weekDefs = [\n ...this.weekDefs.slice(normalized),\n ...this.weekDefs.slice(0, normalized),\n ];\n this._weekStartDay = normalized;\n }\n\n get weekStartDay() {\n return this._weekStartDay;\n }\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n get disabledDateFn() {\n return composeDisabledDateFn(\n date => this.minDate && date.isBefore(this.minDate),\n date => this.maxDate && date.isAfter(this.maxDate),\n this.disabledDate,\n );\n }\n\n private _weekStartDay = 0;\n\n panelData: DateCell[][];\n\n @Output()\n select = new EventEmitter<Dayjs>();\n\n @Output()\n hovered = new EventEmitter<Dayjs>();\n\n bem = bem;\n DateNavRange = DateNavRange;\n\n weekDefs = [\n 'sunday',\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n ];\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n ngOnChanges() {\n // 如果 dateValue 是一个数组,必然是同一个面板上,否则应当给与不同的面板不同的dateValue值\n const headerRange = calcRangeValue(this.navRange, this.anchor);\n this.renderPanelData(headerRange.start, this.navRange);\n }\n\n // 根据当前数据,计算渲染表格\n // eslint-disable-next-line sonarjs/cognitive-complexity\n renderPanelData(date: Dayjs, navRange: DateNavRange) {\n const value = [];\n let colCounts = 0;\n let rowCounts = 0;\n if (!this.panelData) {\n this.panelData = [[]];\n }\n const [...values] = getDatePanelIterable(date, navRange, this.weekStartDay);\n switch (navRange) {\n case DateNavRange.Month: {\n colCounts = DAY_PANEL_COLUMN_COUNT;\n rowCounts = DAY_PANEL_ROW_COUNT;\n\n break;\n }\n case DateNavRange.Decade: {\n colCounts = YEAR_PANEL_COLUMN_COUNT;\n rowCounts = YEAR_PANEL_ROW_COUNT;\n\n break;\n }\n case DateNavRange.Year: {\n colCounts = MONTH_PANEL_COLUMN_COUNT;\n rowCounts = MONTH_PANEL_ROW_COUNT;\n\n break;\n }\n // No default\n }\n for (let k = 0; k < rowCounts; k++) {\n const row = [];\n for (let i = 0; i < colCounts; i++) {\n const cell = formatDate(navRange, values[k * colCounts + i], date);\n cell.isDisabled = this.disabledDateFn(cell.value, navRange);\n const sortedDates = sortDates(this.matchDates);\n if (sortedDates?.length === 2 && navRange === DateNavRange.Month) {\n if (\n cell.value.isBetween(sortedDates[0], sortedDates[1]) &&\n !cell.isBackground\n ) {\n cell.inRange = true;\n }\n cell.isRangeStart =\n cell.value.isSame(sortedDates[0], DAY) && !cell.isBackground;\n cell.isRangeEnd =\n cell.value.isSame(sortedDates[1], DAY) && !cell.isBackground;\n if (cell.isRangeStart && cell.isRangeEnd) {\n cell.isRangeStart = false;\n cell.isRangeEnd = false;\n }\n }\n row.push(cell);\n }\n value.push(row);\n }\n this.panelData = value.slice();\n this.cdr.markForCheck();\n }\n\n match(value: Dayjs) {\n if (\n !this.matchDates?.filter(v => !!v)?.length ||\n getNavRangeByType(this.type) !== this.navRange\n ) {\n return false;\n }\n return this.matchDates?.some(dateValue =>\n this.navRange === DateNavRange.Decade\n ? value.isSame(dateValue, YEAR)\n : this.navRange === DateNavRange.Year\n ? value.isSame(dateValue, MONTH)\n : value.isSame(dateValue, DAY),\n );\n }\n\n matchToday(value: Dayjs) {\n return value.isSame(dayjs(), getTypeByNavRange(this.navRange));\n }\n\n selectValue(value: Dayjs) {\n this.select.next(value);\n }\n\n trackByFn() {\n return this.navRange;\n }\n}\n","<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n 'day-panel-container': navRange === DateNavRange.Month,\n 'month-panel-container': navRange === DateNavRange.Year,\n 'year-panel-container': navRange === DateNavRange.Decade\n }\"\n>\n <div\n [class]=\"[bem.element('row'), 'week-header'].join(' ')\"\n *ngIf=\"navRange === DateNavRange.Month\"\n >\n <span\n *ngFor=\"let item of weekDefs\"\n [class]=\"bem.element('cell')\"\n >\n {{ item | auiI18n }}\n </span>\n </div>\n <div\n [class]=\"bem.element('row')\"\n *ngFor=\"let row of panelData; trackBy: trackByFn\"\n >\n <span\n *ngFor=\"let item of row; trackBy: trackByFn\"\n [class]=\"bem.element('cell')\"\n [ngClass]=\"{\n inRange: item.inRange && !item.isDisabled,\n isActive: match(item.value),\n isBackground: item.isBackground && !item.isDisabled,\n isRangeStart: item.isRangeStart,\n isRangeEnd: item.isRangeEnd,\n isToday: matchToday(item.value) && !item.isBackground,\n isDisabled: item.isDisabled\n }\"\n ><button\n aui-button=\"text\"\n [plain]=\"true\"\n [size]=\"navRange === DateNavRange.Month ? 'mini' : 'small'\"\n [disabled]=\"item.isDisabled\"\n (click)=\"selectValue(item.value)\"\n (mouseenter)=\"hovered.next(item.value)\"\n >\n {{ item.label\n }}<ng-container *ngIf=\"navRange === DateNavRange.Year\">{{\n 'month_suffix' | auiI18n\n }}</ng-container>\n </button>\n </span>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-calendar-footer',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarFooterComponent {\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n customAction: TemplateRef<any>;\n\n @Output()\n confirm = new EventEmitter<void>();\n\n @Output()\n clear = new EventEmitter<void>();\n}\n","<div class=\"aui-calendar-footer__wrapper\">\n <div style=\"flex: 1\">\n <ng-content></ng-content>\n </div>\n <div>\n <ng-container\n *ngIf=\"customAction; else default\"\n [ngTemplateOutlet]=\"customAction\"\n >\n </ng-container>\n <ng-template #default>\n <button\n aui-button=\"text\"\n *ngIf=\"clearable\"\n (click)=\"clear.emit()\"\n size=\"small\"\n >\n {{ clearText || ('clear' | auiI18n) }}\n </button>\n <button\n aui-button=\"primary\"\n (click)=\"confirm.emit()\"\n size=\"small\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </ng-template>\n </div>\n</div>\n","import { ConfigType } from 'dayjs';\n\nimport { _isNumberValue } from '../utils';\n\nexport enum TimePickerControlType {\n Hour = 'hour',\n Minute = 'minute',\n Second = 'second',\n}\n\nexport interface TimePickerModel {\n hour?: number;\n minute?: number;\n second?: number;\n}\n\nexport type TimePickerDataLike = ConfigType | TimePickerModel;\n\nexport function isTimePickerModel(item: any): item is TimePickerModel {\n return (\n _isNumberValue(item?.second) ||\n _isNumberValue(item?.minute) ||\n _isNumberValue(item?.hour)\n );\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiInputAddonBefore]',\n})\nexport class InputAddonBeforeDirective {}\n\n@Directive({\n selector: '[auiInputAddonAfter]',\n})\nexport class InputAddonAfterDirective {}\n\n@Directive({\n selector: '[auiInputPrefix]',\n})\nexport class InputPrefixDirective {}\n\n@Directive({\n selector: '[auiInputSuffix]',\n})\nexport class InputSuffixDirective {}\n","/* eslint-disable sonarjs/no-duplicate-string */\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { ComponentSize } from '../types';\nimport { coerceAttrBoolean } from '../utils';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[aui-input],textarea[aui-input]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class InputComponent {\n @Input()\n get size() {\n return this._size;\n }\n\n set size(val) {\n if (!val || this._size === val) {\n return;\n }\n this.renderer.removeClass(\n this.elementRef.nativeElement,\n 'aui-input--' + this._size,\n );\n this.renderer.addClass(this.elementRef.nativeElement, 'aui-input--' + val);\n this._size = val;\n this.size$.next(val);\n }\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n const booleanVal = coerceAttrBoolean(val);\n if (booleanVal === this._disabled) {\n return;\n }\n if (booleanVal) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'disabled', '');\n } else {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'disabled');\n }\n this._disabled = booleanVal;\n this.disabled$.next(booleanVal);\n }\n\n private _size: ComponentSize = ComponentSize.Medium;\n private _disabled = false;\n\n size$ = new BehaviorSubject<ComponentSize>(this.size);\n\n /**\n * workaround for @link https://github.com/microsoft/TypeScript/pull/42425\n */\n disabled$ = new BehaviorSubject<boolean>(this.disabled as boolean);\n\n constructor(\n public elementRef: ElementRef<HTMLInputElement>,\n private readonly renderer: Renderer2,\n ) {\n this.renderer.addClass(this.elementRef.nativeElement, 'aui-input');\n this.renderer.addClass(\n this.elementRef.nativeElement,\n 'aui-input--' + this.size,\n );\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { Bem, buildBem, watchContentExist } from '../../utils';\nimport {\n InputAddonAfterDirective,\n InputAddonBeforeDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n} from '../helper-directives';\nimport { InputComponent } from '../input.component';\n\n@Component({\n selector: 'aui-input-group',\n templateUrl: './input-group.component.html',\n styleUrls: ['./input-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class InputGroupComponent implements AfterContentInit {\n bem: Bem = buildBem('aui-input-group');\n\n @ContentChildren(InputAddonBeforeDirective)\n private readonly addonBeforeRefs: QueryList<InputAddonBeforeDirective>;\n\n @ContentChildren(InputAddonAfterDirective)\n private readonly addonAfterRefs: QueryList<InputAddonAfterDirective>;\n\n @ContentChildren(InputPrefixDirective)\n private readonly prefixRefs: QueryList<InputPrefixDirective>;\n\n @ContentChildren(InputSuffixDirective)\n private readonly suffixRefs: QueryList<InputSuffixDirective>;\n\n @ContentChild(InputComponent, { static: false })\n inputRef: InputComponent;\n\n hasAddonBefore$: Observable<boolean>;\n hasAddonAfter$: Observable<boolean>;\n hasPrefix$: Observable<boolean>;\n hasSuffix$: Observable<boolean>;\n\n ngAfterContentInit() {\n this.hasAddonBefore$ = watchContentExist(this.addonBeforeRefs);\n this.hasAddonAfter$ = watchContentExist(this.addonAfterRefs);\n this.hasPrefix$ = watchContentExist(this.prefixRefs);\n this.hasSuffix$ = watchContentExist(this.suffixRefs);\n }\n}\n","<div\n [ngClass]=\"bem.block(inputRef.size$ | async)\"\n [class.isDisabled]=\"inputRef.disabled$ | async\"\n [class.hasAddonBefore]=\"hasAddonBefore$ | async\"\n [class.hasAddonAfter]=\"hasAddonAfter$ | async\"\n [class.hasPrefix]=\"hasPrefix$ | async\"\n [class.hasSuffix]=\"hasSuffix$ | async\"\n>\n <div [class]=\"bem.element('inner-wrapper')\">\n <div\n *ngIf=\"hasAddonBefore$ | async\"\n [class]=\"bem.element('addon', 'before')\"\n >\n <ng-content select=\"[auiInputAddonBefore]\"></ng-content>\n </div>\n <div [class]=\"bem.element('input-wrapper')\">\n <span\n *ngIf=\"hasPrefix$ | async\"\n [class]=\"bem.element('prefix')\"\n >\n <ng-content select=\"[auiInputPrefix]\"></ng-content>\n </span>\n <ng-content></ng-content>\n <span\n *ngIf=\"hasSuffix$ | async\"\n [class]=\"bem.element('suffix')\"\n >\n <ng-content select=\"[auiInputSuffix]\"></ng-content>\n </span>\n </div>\n <div\n *ngIf=\"hasAddonAfter$ | async\"\n [class]=\"bem.element('addon', 'after')\"\n >\n <ng-content select=\"[auiInputAddonAfter]\"></ng-content>\n </div>\n </div>\n</div>\n","export const HOUR_ITEMS = Array.from({ length: 24 }).map((_, index) => index);\nexport const MINUTE_ITEMS = Array.from({ length: 60 }).map((_, index) => index);\nexport const SECOND_ITEMS = Array.from({ length: 60 }).map((_, index) => index);\n\nexport const CONTROL_ITEM_HEIGHT = 28;\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { Dayjs } from 'dayjs';\n\nimport { updateDateByTimeModel } from '../../date-picker/calendar/util';\nimport { CommonFormControl } from '../../form/common-form';\nimport { ComponentSize } from '../../types';\nimport { buildBem } from '../../utils';\nimport {\n CONTROL_ITEM_HEIGHT,\n HOUR_ITEMS,\n MINUTE_ITEMS,\n SECOND_ITEMS,\n} from '../constant';\nimport { TimePickerControlType } from '../time-picker.type';\n\nconst TIME_PICKER_COLUMN_WIDTH = 80;\nconst bem = buildBem('aui-time-picker-panel');\n\n@Component({\n selector: 'aui-time-picker-panel',\n templateUrl: './panel.template.html',\n styleUrls: ['./panel.style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimePickerPanelComponent),\n multi: true,\n },\n ],\n host: {\n mousedown: '$event.preventDefault()',\n },\n})\nexport class TimePickerPanelComponent\n extends CommonFormControl<Dayjs>\n implements OnChanges\n{\n @Input()\n set format(value: string) {\n if (value != null) {\n this._format = value;\n const charSet = new Set(value);\n this.hourEnabled = charSet.has('H') || charSet.has('h');\n this.minuteEnabled = charSet.has('m');\n this.secondEnabled = charSet.has('s');\n this.enabledColumns = [\n this.hourEnabled,\n this.minuteEnabled,\n this.secondEnabled,\n ].filter(Boolean).length;\n }\n }\n\n get format(): string {\n return this._format;\n }\n\n private _format: string;\n\n get totalWidth() {\n return this.enabledColumns * TIME_PICKER_COLUMN_WIDTH;\n }\n\n @Input()\n hourStep = 1;\n\n @Input()\n minuteStep = 1;\n\n @Input()\n secondStep = 1;\n\n @Input()\n footerTemplate: TemplateRef<void>;\n\n @Output()\n confirm = new EventEmitter<void>();\n\n @Input()\n disableHours: () => number[];\n\n @Input()\n disableMinutes: (hour?: number) => number[];\n\n @Input()\n disableSeconds: (hour?: number, minute?: number) => number[];\n\n hourEnabled: boolean;\n minuteEnabled: boolean;\n secondEnabled: boolean;\n\n TimePickerControlType = TimePickerControlType;\n HOUR_ITEM_CONFIG = HOUR_ITEMS;\n MINUTE_ITEM_CONFIG = MINUTE_ITEMS;\n SECOND_ITEM_CONFIG = SECOND_ITEMS;\n\n CONTROL_ITEM_HEIGHT = CONTROL_ITEM_HEIGHT;\n ComponentSize = ComponentSize;\n bem = bem;\n\n @ViewChild('hourRef', { static: false })\n hourRef: ElementRef<HTMLElement>;\n\n @ViewChild('minuteRef', { static: false })\n minuteRef: ElementRef<HTMLElement>;\n\n @ViewChild('secondRef', { static: false })\n secondRef: ElementRef<HTMLElement>;\n\n enabledColumns = 0;\n\n // 用于控制初次滚动,是否展示滚动动画效果\n firstScrolled = false;\n\n constructor(protected override cdr: ChangeDetectorRef) {\n super(cdr);\n this.model$.subscribe(_ => {\n this.cdr.markForCheck();\n });\n }\n\n isDisabled(value: number, type: TimePickerControlType) {\n const currentValue = this.model;\n if (this.disabled) {\n return true;\n }\n if (type === TimePickerControlType.Hour) {\n return (!this.disableHours ? [] : this.disableHours()).includes(value);\n }\n if (type === TimePickerControlType.Minute) {\n return (\n !this.disableMinutes ? [] : this.disableMinutes(currentValue?.hour())\n ).includes(value);\n }\n if (type === TimePickerControlType.Second) {\n return (\n !this.disableSeconds\n ? []\n : this.disableSeconds(currentValue?.hour(), currentValue?.minute())\n ).includes(value);\n }\n }\n\n ngOnChanges({ hourStep, minuteStep, secondStep }: SimpleChanges): void {\n if (hourStep?.currentValue > 0) {\n this.HOUR_ITEM_CONFIG = HOUR_ITEMS.filter(\n i => i % hourStep.currentValue === 0,\n );\n }\n if (minuteStep?.currentValue > 0) {\n this.MINUTE_ITEM_CONFIG = MINUTE_ITEMS.filter(\n i => i % minuteStep.currentValue === 0,\n );\n }\n if (secondStep?.currentValue > 0) {\n this.SECOND_ITEM_CONFIG = SECOND_ITEMS.filter(\n i => i % secondStep.currentValue === 0,\n );\n }\n this.cdr.markForCheck();\n }\n\n override writeValue(value: Dayjs) {\n super.writeValue(value);\n this.syncScrollOffset(!this.firstScrolled ? 0 : 120, value);\n }\n\n selectValue(value: number, type: TimePickerControlType): void {\n if (this.isDisabled(value, type)) {\n return;\n }\n this.firstScrolled = true;\n const result = this.syncValue(value, type, this.model);\n this.syncScrollOffset(120, result);\n }\n\n syncValue(value: number, type: TimePickerControlType, currentValue: Dayjs) {\n if (!type) {\n return;\n }\n const result = (\n currentValue ||\n updateDateByTimeModel(dayjs(), { hour: 0, minute: 0, second: 0 })\n ).set(type, value);\n this.emitModel(result);\n return result;\n }\n\n syncScrollOffset(duration: number, value: Dayjs) {\n const empty = !value;\n const config = [\n {\n ref: this.hourRef,\n enabled: this.hourEnabled,\n step: this.hourStep,\n type: 'hour',\n },\n {\n ref: this.minuteRef,\n enabled: this.minuteEnabled,\n step: this.minuteStep,\n type: 'minute',\n },\n {\n ref: this.secondRef,\n enabled: this.secondEnabled,\n step: this.secondStep,\n type: 'second',\n },\n ] as const;\n\n config.forEach(cf => {\n if (cf.enabled && cf.ref) {\n this.scrollByValue(\n cf.ref.nativeElement,\n empty ? 0 : value.get(cf.type),\n cf.step,\n empty ? 0 : duration,\n );\n }\n });\n if (!empty) {\n this.firstScrolled = true;\n }\n }\n\n private scrollByValue(\n element: HTMLElement,\n value: number,\n divideBy: number,\n duration: number,\n ) {\n const targetOffset = (value * CONTROL_ITEM_HEIGHT) / divideBy;\n const currentTop = element.scrollTop;\n if (currentTop === targetOffset) {\n return;\n }\n if (!duration) {\n element.scrollTop = targetOffset;\n } else {\n const difference = targetOffset - currentTop;\n // 每个tick滚动距离\n const perTick = (difference / duration) * 10;\n\n requestAnimationFrame(() => {\n element.scrollTop = currentTop + perTick;\n if (element.scrollTop === targetOffset) {\n return;\n }\n this.scrollByValue(element, value, divideBy, duration - 10);\n });\n }\n }\n\n matchValue(\n value: number,\n type: TimePickerControlType,\n currDate: Dayjs,\n ): boolean {\n return currDate?.get(type) === value;\n }\n\n getControlTypeConfig(type: TimePickerControlType): number[] {\n return {\n [TimePickerControlType.Hour]: this.HOUR_ITEM_CONFIG,\n [TimePickerControlType.Minute]: this.MINUTE_ITEM_CONFIG,\n [TimePickerControlType.Second]: this.SECOND_ITEM_CONFIG,\n }[type];\n }\n\n selectNow() {\n this.firstScrolled = true;\n this.emitModel(dayjs());\n }\n\n trackBy(_index: number, content: number) {\n return content;\n }\n}\n","<div\n *ngIf=\"enabledColumns\"\n [class]=\"bem.block()\"\n [style.width.px]=\"totalWidth\"\n>\n <div [class]=\"bem.element('content')\">\n <div\n [class]=\"bem.element('column')\"\n #hourRef\n *ngIf=\"hourEnabled\"\n >\n <ul>\n <li\n *ngFor=\"let item of getControlTypeConfig(TimePickerControlType.Hour)\"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Hour),\n selected: matchValue(item, TimePickerControlType.Hour, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Hour)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #minuteRef\n *ngIf=\"minuteEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Minute);\n trackBy: trackBy\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Minute),\n selected: matchValue(item, TimePickerControlType.Minute, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Minute)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #secondRef\n *ngIf=\"secondEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Second)\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Second),\n selected: matchValue(item, TimePickerControlType.Second, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Second)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n </div>\n\n <ng-container *ngIf=\"!footerTemplate; else customFooter\">\n <div [class]=\"bem.element('footer')\">\n <button\n aui-button=\"inline\"\n (click)=\"selectNow()\"\n [size]=\"ComponentSize.Small\"\n >\n {{ 'now' | auiI18n }}\n </button>\n <button\n aui-button=\"primary\"\n [size]=\"ComponentSize.Small\"\n (click)=\"$event.stopImmediatePropagation(); confirm.next()\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </div>\n </ng-container>\n <ng-template #customFooter>\n <ng-container\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: this }\"\n ></ng-container>\n </ng-template>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { Dayjs } from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\nimport { updateDateByTimeModel } from '../date-picker/calendar/util';\nimport { CommonFormControl } from '../form/common-form';\nimport { TooltipDirective } from '../tooltip';\nimport { ComponentSize } from '../types';\n\nimport {\n TimePickerDataLike,\n TimePickerModel,\n isTimePickerModel,\n} from './time-picker.type';\n\ndayjs.extend(customParseFormat);\n\n@Component({\n selector: 'aui-time-picker',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimePickerComponent),\n multi: true,\n },\n ],\n})\nexport class TimePickerComponent extends CommonFormControl<\n TimePickerDataLike,\n TimePickerModel\n> {\n @Input()\n format = 'HH:mm:ss';\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n placeholder = '';\n\n @Input()\n clearable = true;\n\n @Input()\n showIcon = true;\n\n @Input()\n disableHours: () => number[];\n\n @Input()\n disableMinutes: (hour?: number) => number[];\n\n @Input()\n disableSeconds: (hour?: number, minute?: number) => number[];\n\n @Input()\n hourStep = 1;\n\n @Input()\n minuteStep = 1;\n\n @Input()\n secondStep = 1;\n\n @Input()\n footerTemplate: TemplateRef<void>;\n\n @Output()\n readonly open = new EventEmitter<void>();\n\n @Output()\n readonly close = new EventEmitter<void>();\n\n @ViewChild('tooltipRef')\n tooltipRef: TooltipDirective;\n\n timeValue: Dayjs = null;\n timeFormatValue = '';\n\n override writeValue(value: TimePickerDataLike) {\n super.writeValue(value);\n if (!value) {\n return this.setValue(null);\n }\n let result: Dayjs;\n if (isTimePickerModel(value)) {\n result = updateDateByTimeModel(dayjs(), value);\n } else {\n result = dayjs(value);\n this.submit(false, result);\n }\n this.setValue(result);\n }\n\n setValue(value: Dayjs) {\n this.timeValue = value;\n this.timeFormatValue = value ? dayjs(value).format(this.format) : null;\n this.cdr.markForCheck();\n }\n\n changeFromPanel(value: Dayjs) {\n this.timeFormatValue = value?.format(this.format);\n }\n\n changeFromInput(source: string) {\n if (!source) {\n this.timeValue = null;\n } else {\n const afterParsed = dayjs(source, this.format);\n if (afterParsed.isValid()) {\n this.timeValue = afterParsed;\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Enter':\n this.openPanel();\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Escape':\n this.closePanel();\n event.stopPropagation();\n event.preventDefault();\n break;\n }\n }\n\n handleTooltipOpen() {\n this.open.emit();\n }\n\n handleTooltipHide() {\n if (this.onTouched) {\n this.onTouched();\n }\n this.setValue(this.timeValue);\n this.submit();\n\n this.close.emit();\n }\n\n openPanel() {\n if (this.tooltipRef.isCreated) {\n return;\n }\n this.tooltipRef.createTooltip();\n this.open.next();\n }\n\n closePanel() {\n if (!this.tooltipRef.isCreated) {\n return;\n }\n this.tooltipRef.disposeTooltip();\n this.close.next();\n }\n\n clearValue(event: Event) {\n this.setValue(null);\n this.submit();\n event.stopPropagation();\n event.preventDefault();\n }\n\n submit(close = true, value?: Dayjs) {\n const refer = value ?? this.timeValue;\n this.emitModel(\n refer\n ? {\n second: refer.second(),\n minute: refer.minute(),\n hour: refer.hour(),\n }\n : null,\n );\n if (close) {\n this.closePanel();\n }\n }\n}\n","<div\n class=\"aui-time-picker\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"clearable && timeFormatValue\"\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"template\"\n auiTooltipType=\"plain\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n [auiTooltipDisabled]=\"disabled\"\n (auiTooltipShow)=\"handleTooltipOpen()\"\n (auiTooltipHide)=\"handleTooltipHide()\"\n>\n <aui-input-group>\n <input\n aui-input\n autocomplete=\"off\"\n [size]=\"size\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"timeFormatValue\"\n (ngModelChange)=\"changeFromInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n />\n <span\n *ngIf=\"showIcon\"\n auiInputSuffix\n class=\"aui-time-picker__icon-container\"\n >\n <aui-icon\n class=\"aui-time-picker__indicator\"\n icon=\"time\"\n ></aui-icon>\n <aui-icon\n class=\"aui-time-picker__clear\"\n icon=\"close_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </aui-input-group>\n</div>\n\n<ng-template #template>\n <aui-time-picker-panel\n [disabled]=\"disabled\"\n [disableHours]=\"disableHours\"\n [disableMinutes]=\"disableMinutes\"\n [disableSeconds]=\"disableSeconds\"\n [hourStep]=\"hourStep\"\n [minuteStep]=\"minuteStep\"\n [secondStep]=\"secondStep\"\n [format]=\"format\"\n [footerTemplate]=\"footerTemplate\"\n [(ngModel)]=\"timeValue\"\n (ngModelChange)=\"changeFromPanel($event)\"\n (confirm)=\"submit()\"\n (click)=\"$event.stopPropagation()\"\n (mousedown)=\"$event.preventDefault()\"\n ></aui-time-picker-panel>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { ConfigType, Dayjs } from 'dayjs';\n\nimport { CommonFormControl } from '../../../form/common-form';\nimport { TimePickerModel } from '../../../time-picker/time-picker.type';\nimport { DateNavRange, DisabledTimeFn } from '../../date-picker.type';\nimport { DatePickerType } from '../constant';\nimport {\n getNavRangeByType,\n getTimePickerModel,\n getTypeByNavRange,\n nextNavRangeType,\n updateDate,\n updateDateByTimeModel,\n} from '../util';\n\n@Component({\n selector: 'aui-date-picker-panel',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePickerPanelComponent),\n multi: true,\n },\n ],\n})\nexport class DatePickerPanelComponent extends CommonFormControl<Dayjs> {\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n set type(type: DatePickerType) {\n this.navRange = getNavRangeByType(type);\n this._type = type;\n }\n\n get type() {\n return this._type;\n }\n\n private _type: DatePickerType;\n\n @Input()\n showTime = false;\n\n @Input()\n disabledDate: (date: Dayjs, type: DateNavRange) => boolean = () => false;\n\n @Input()\n disabledTime: DisabledTimeFn = () => null;\n\n @Input()\n weekStartDay = 0;\n\n @Input()\n showFooter = true;\n\n @Input()\n footerTemplate: TemplateRef<unknown>;\n\n @Input()\n extraFooter: TemplateRef<unknown>;\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n @Output()\n confirm = new EventEmitter<Dayjs>();\n\n @Output()\n clear = new EventEmitter<void>();\n\n private _cacheSelectedDate: Dayjs;\n private _cacheDisabledTimeFn: ReturnType<DisabledTimeFn>;\n\n getDisabledTimeFn(\n selectedDate: Dayjs,\n type: keyof ReturnType<DisabledTimeFn>,\n ) {\n if (selectedDate !== this._cacheSelectedDate) {\n this._cacheDisabledTimeFn = this.disabledTime(selectedDate);\n this._cacheSelectedDate = selectedDate;\n }\n return this._cacheDisabledTimeFn?.[type];\n }\n\n navRange: DateNavRange;\n\n get currentNavType() {\n return getTypeByNavRange(this.navRange);\n }\n\n anchor: Dayjs;\n\n selectedDate: Dayjs;\n\n selectedTime: TimePickerModel;\n\n DateNavRange = DateNavRange;\n DatePickerType = DatePickerType;\n\n override writeValue(obj: Dayjs) {\n super.writeValue(obj);\n this.selectedDate = obj;\n this.selectedTime = getTimePickerModel(obj);\n this.anchor = obj || dayjs();\n this.cdr.markForCheck();\n }\n\n panelValueChange(value: Dayjs) {\n this.selectedDate = updateDate(\n this.selectedDate || dayjs(),\n value,\n this.currentNavType,\n );\n this.anchor = this.selectedDate;\n this.selectedDate = updateDateByTimeModel(\n this.selectedDate,\n this.selectedTime,\n );\n if (this.type === this.currentNavType) {\n this.confirmValue(this.selectedDate, !this.showTime);\n }\n const nextNavRange = nextNavRangeType(\n this.navRange,\n getNavRangeByType(this.type),\n );\n if (this.navRange !== nextNavRange) {\n this.navRange = nextNavRange;\n }\n }\n\n confirmValue(value?: ConfigType, closeAfterConfirm = true) {\n this.emitValue(value ? dayjs(value) : this.selectedDate);\n closeAfterConfirm && this.confirm.next(null);\n }\n\n timeDateChange(time: TimePickerModel) {\n if (!this.selectedDate) {\n return;\n }\n this.selectedDate = updateDateByTimeModel(this.selectedDate, time);\n this.emitValue(this.selectedDate);\n }\n\n setToday() {\n this.confirmValue(dayjs(), true);\n }\n}\n","<div class=\"aui-date-picker-panel__wrapper\">\n <aui-calendar-header\n [dateNavRange]=\"navRange\"\n [anchor]=\"anchor\"\n [minAvail]=\"minDate\"\n [maxAvail]=\"maxDate\"\n [style.margin-inline.px]=\"4\"\n (navRangeChange)=\"navRange = $event\"\n (anchorChange)=\"anchor = $event\"\n ></aui-calendar-header>\n\n <aui-picker-panel\n [style.margin]=\"'16px 0'\"\n [anchor]=\"anchor\"\n [navRange]=\"navRange\"\n [disabledDate]=\"disabledDate\"\n [weekStartDay]=\"weekStartDay\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [type]=\"type\"\n [matchDates]=\"[selectedDate]\"\n (select)=\"panelValueChange($event)\"\n ></aui-picker-panel>\n\n <ng-container\n *ngIf=\"extraFooter\"\n [ngTemplateOutlet]=\"extraFooter\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-container *ngIf=\"showFooter\">\n <aui-calendar-footer\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue()\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n *ngIf=\"showTime; else today\"\n >\n <ng-container\n *ngIf=\"footerTemplate; else default\"\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-template #default>\n <aui-time-picker\n *ngIf=\"currentNavType === DatePickerType.Day && showTime\"\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"selectedTime\"\n [disableHours]=\"getDisabledTimeFn(selectedDate, 'hours')\"\n [disableMinutes]=\"getDisabledTimeFn(selectedDate, 'minutes')\"\n [disableSeconds]=\"getDisabledTimeFn(selectedDate, 'seconds')\"\n tooltipPosition=\"top start\"\n (ngModelChange)=\"timeDateChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n ></aui-time-picker>\n </ng-template>\n </aui-calendar-footer>\n\n <ng-template #today>\n <aui-calendar-footer\n *ngIf=\"type === DatePickerType.Day\"\n [clearable]=\"false\"\n [customAction]=\"todayBtn\"\n >\n </aui-calendar-footer>\n <ng-template #todayBtn>\n <button\n aui-button=\"inline\"\n (click)=\"setToday()\"\n >\n {{ 'today' | auiI18n }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { Dayjs } from 'dayjs';\n\nimport { CommonFormControl } from '../../../form/common-form';\nimport { TimePickerModel } from '../../../time-picker/time-picker.type';\nimport { buildBem } from '../../../utils';\nimport { DateNavRange, DisabledTimeFn, Side } from '../../date-picker.type';\nimport { DatePickerType, MONTH, YEAR } from '../constant';\nimport {\n composeDisabledDateFn,\n getTimePickerModel,\n getTypeByNavRange,\n maxDate,\n minDate,\n nextNavRangeType,\n sortDates,\n updateDate,\n updateDateByTimeModel,\n} from '../util';\n\nconst bem = buildBem('aui-date-range-picker-panel');\n\n@Component({\n selector: 'aui-date-range-picker-panel',\n templateUrl: './template.html',\n styleUrls: ['./style.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateRangePickerPanelComponent),\n multi: true,\n },\n ],\n})\nexport class DateRangePickerPanelComponent extends CommonFormControl<Dayjs[]> {\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n showTime = true;\n\n @Input()\n showFooter = true;\n\n @Input()\n disabledDate: (date: Dayjs, navRange: DateNavRange) => boolean = () => false;\n\n @Input()\n disabledTime: { left: DisabledTimeFn; right: DisabledTimeFn } = {\n left: () => null,\n right: () => null,\n };\n\n @Input()\n weekStartDay = 0;\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n @Output()\n clear = new EventEmitter<void>();\n\n @Output()\n confirm = new EventEmitter<void>();\n\n bem = bem;\n Side = Side;\n DatePickerType = DatePickerType;\n leftDateRange = DateNavRange.Month;\n rightDateRange = DateNavRange.Month;\n\n FOOTER_DATE_FORMAT = 'YYYY-MM-dd';\n\n leftAnchor = dayjs();\n rightAnchor = dayjs().add(1, MONTH);\n\n get maxHeaderAvail() {\n return minDate(this.rightAnchor, this.maxDate);\n }\n\n get minHeaderAvail() {\n return maxDate(this.minDate, this.leftAnchor);\n }\n\n // 用于存放 range data 序列,数量为 2 时清除\n rangeValue: Dayjs[] = [];\n\n // 用于组装匹配日期序列\n matchValues: Dayjs[];\n\n startTime: TimePickerModel;\n endTime: TimePickerModel;\n\n override writeValue(obj: Dayjs[]) {\n super.writeValue(obj);\n this.rangeValue = obj || [];\n this.matchValues = [...this.rangeValue];\n this.startTime = getTimePickerModel(obj?.[0]);\n this.endTime = getTimePickerModel(obj?.[1]);\n if (obj?.length === 2) {\n this.reorder(sortDates(obj));\n }\n this.cdr.markForCheck();\n }\n\n calendarRangeChange(type: DateNavRange, side: Side) {\n if (side === Side.Left) {\n this.leftDateRange = type;\n } else {\n this.rightDateRange = type;\n }\n }\n\n // range 组件范围受控\n getDateDisabledFn(side: Side, constrainValue: Dayjs) {\n return composeDisabledDateFn((date: Dayjs, navRange: DateNavRange) => {\n if (navRange === DateNavRange.Month) {\n return false;\n }\n if (navRange === DateNavRange.Decade) {\n return date[side === Side.Left ? 'isAfter' : 'isBefore'](\n constrainValue,\n YEAR,\n );\n }\n return !date[side === Side.Left ? 'isBefore' : 'isAfter'](\n constrainValue,\n MONTH,\n );\n }, this.disabledDate);\n }\n\n private getDisabledTimeCachedFn(side: Side) {\n let cacheSelectedDate: Dayjs;\n let cacheDisabledTimeFn: ReturnType<DisabledTimeFn>;\n return (value: Dayjs, key: keyof ReturnType<DisabledTimeFn>) => {\n if (value !== cacheSelectedDate) {\n cacheDisabledTimeFn = (this.disabledTime?.[side] || (() => null))(\n value,\n );\n cacheSelectedDate = value;\n }\n return cacheDisabledTimeFn?.[key];\n };\n }\n\n leftDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Left);\n rightDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Right);\n\n selectPickerPanel(value: Dayjs, side: Side) {\n const navRange =\n side === Side.Left ? this.leftDateRange : this.rightDateRange;\n const type = getTypeByNavRange(navRange);\n const dateValue = updateDate(\n side === Side.Left ? this.leftAnchor : this.rightAnchor,\n value,\n type,\n );\n const nextRange = nextNavRangeType(navRange, DateNavRange.Month);\n\n if (side === Side.Left) {\n this.leftAnchor = dateValue;\n this.leftDateRange = nextRange;\n } else {\n this.rightAnchor = dateValue;\n this.rightDateRange = nextRange;\n }\n\n if (navRange !== DateNavRange.Month) {\n return;\n }\n\n if (this.leftAnchor.isSame(this.rightAnchor, MONTH)) {\n this.rightAnchor = this.rightAnchor.add(1, MONTH);\n }\n\n this.rangeValue =\n this.rangeValue.length === 2\n ? [dateValue]\n : sortDates([...this.rangeValue, dateValue]);\n this.matchValues = [...this.rangeValue];\n this.syncTime();\n if (this.rangeValue.length === 2) {\n this.reorder(this.rangeValue);\n this.confirmValue(this.rangeValue, !this.showTime);\n }\n }\n\n reorder(sortedDate: Dayjs[]) {\n if (!sortedDate[0].isSame(sortedDate[1], MONTH)) {\n this.leftAnchor = updateDate(\n this.leftAnchor,\n sortedDate[0],\n DatePickerType.Day,\n );\n this.rightAnchor = updateDate(\n this.leftAnchor,\n sortedDate[1],\n DatePickerType.Day,\n );\n }\n }\n\n hoverItem(date: Dayjs) {\n if (this.rangeValue.length === 1) {\n this.matchValues[1] = date;\n }\n }\n\n confirmValue(value: Dayjs[], closeThen = true) {\n this.emitValue(value);\n closeThen && this.confirm.next();\n }\n\n timeChange(time: TimePickerModel) {\n if (!time) {\n return;\n }\n this.syncTime();\n if (!this.rangeValue?.length) {\n const date = updateDateByTimeModel(dayjs(), time);\n this.rangeValue = [date, date];\n this.matchValues = [...this.rangeValue];\n this.startTime = this.endTime = time;\n }\n this.emitValue(this.rangeValue);\n }\n\n syncTime() {\n if (this.showTime && !!this.rangeValue?.length) {\n const startDate = this.rangeValue[0]\n ? updateDateByTimeModel(this.rangeValue[0], this.startTime)\n : null;\n const endDate = this.rangeValue[1]\n ? updateDateByTimeModel(this.rangeValue[1], this.endTime)\n : null;\n if (!this.startTime && startDate) {\n this.startTime = getTimePickerModel(this.rangeValue[0]);\n }\n if (!this.endTime && endDate) {\n this.endTime = getTimePickerModel(this.rangeValue[1]);\n }\n this.rangeValue = [startDate, endDate].filter(i => !!i);\n }\n }\n}\n","<div [class]=\"bem.element('container')\">\n <div [class]=\"bem.element('header')\">\n <aui-calendar-header\n [dateNavRange]=\"leftDateRange\"\n [anchor]=\"leftAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Left)\"\n (anchorChange)=\"leftAnchor = $event\"\n [maxAvail]=\"maxHeaderAvail\"\n [minAvail]=\"minDate\"\n ></aui-calendar-header>\n <aui-calendar-header\n [dateNavRange]=\"rightDateRange\"\n [anchor]=\"rightAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Right)\"\n (anchorChange)=\"rightAnchor = $event\"\n [minAvail]=\"minHeaderAvail\"\n [maxAvail]=\"maxDate\"\n ></aui-calendar-header>\n </div>\n <div [class]=\"bem.element('body')\">\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"leftDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"leftAnchor\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Left, rightAnchor)\"\n [weekStartDay]=\"weekStartDay\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Left)\"\n ></aui-picker-panel>\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"rightDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"rightAnchor\"\n [weekStartDay]=\"weekStartDay\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Right, leftAnchor)\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Right)\"\n ></aui-picker-panel>\n </div>\n\n <aui-calendar-footer\n [class]=\"bem.element('footer')\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue(rangeValue)\"\n *ngIf=\"showFooter && showTime\"\n >\n <div\n [class]=\"bem.element('footer-content')\"\n *ngIf=\"showTime\"\n >\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'start_date' | auiI18n,\n value: rangeValue[0]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n [(ngModel)]=\"startTime\"\n size=\"small\"\n (ngModelChange)=\"timeChange($event)\"\n [disableHours]=\"leftDisabledTimeFn(rangeValue[0], 'hours')\"\n [disableMinutes]=\"leftDisabledTimeFn(rangeValue[0], 'minutes')\"\n [disableSeconds]=\"leftDisabledTimeFn(rangeValue[0], 'seconds')\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n\n <span class=\"placeholder separator\">{{ 'to' | auiI18n }}</span>\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'end_date' | auiI18n,\n value: rangeValue[1]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"endTime\"\n [disableHours]=\"rightDisabledTimeFn(rangeValue[1], 'hours')\"\n [disableMinutes]=\"rightDisabledTimeFn(rangeValue[1], 'minutes')\"\n [disableSeconds]=\"rightDisabledTimeFn(rangeValue[1], 'seconds')\"\n (ngModelChange)=\"timeChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n </div>\n </aui-calendar-footer>\n</div>\n\n<ng-template\n #datePlaceholder\n let-placeholder=\"placeholder\"\n let-value=\"value\"\n>\n <span\n *ngIf=\"!value\"\n class=\"placeholder date-holder\"\n >{{ placeholder }}</span\n >\n <span\n *ngIf=\"value\"\n class=\"date-value date-holder\"\n >{{ value | date: FOOTER_DATE_FORMAT }}</span\n >\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { I18nPipe } from './i18n.pipe';\n\n@NgModule({\n declarations: [I18nPipe],\n exports: [I18nPipe],\n})\nexport class I18nModule {}\n","import { I18NInterface } from '../i18n.type';\n\nexport const zh: I18NInterface = {\n locale: 'zh',\n translation: {\n start_date: '开始日期',\n end_date: '结束日期',\n select_time: '选择时间',\n select_date: '选择日期',\n clear: '清除',\n confirm: '确定',\n to: '至',\n year_suffix: '年',\n month_suffix: '月',\n monday: '一',\n tuesday: '二',\n wednesday: '三',\n thursday: '四',\n friday: '五',\n saturday: '六',\n sunday: '日',\n now: '此刻',\n select_all: '全选',\n today: '今天',\n },\n};\n","let hiddenTextarea: HTMLTextAreaElement;\n\nconst HIDDEN_STYLE = `\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n`;\n\nconst CONTEXT_STYLE = [\n 'letter-spacing',\n 'line-height',\n 'padding-top',\n 'padding-bottom',\n 'font-family',\n 'font-weight',\n 'font-size',\n 'text-rendering',\n 'text-transform',\n 'width',\n 'text-indent',\n 'padding-left',\n 'padding-right',\n 'border-width',\n 'box-sizing',\n];\n\nfunction calculateNodeStyling(targetElement: HTMLTextAreaElement) {\n const style = window.getComputedStyle(targetElement);\n\n const boxSizing = style.getPropertyValue('box-sizing');\n\n const paddingSize =\n parseFloat(style.getPropertyValue('padding-bottom')) +\n parseFloat(style.getPropertyValue('padding-top'));\n\n const borderSize =\n parseFloat(style.getPropertyValue('border-bottom-width')) +\n parseFloat(style.getPropertyValue('border-top-width'));\n\n const contextStyle = CONTEXT_STYLE.map(\n name => `${name}:${style.getPropertyValue(name)}`,\n ).join(';');\n\n return { contextStyle, paddingSize, borderSize, boxSizing };\n}\n\nexport function calcTextareaHeight(\n targetElement: HTMLTextAreaElement,\n minRows = 1,\n maxRows: number = null,\n) {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.append(hiddenTextarea);\n }\n\n const { paddingSize, borderSize, contextStyle } =\n calculateNodeStyling(targetElement);\n\n hiddenTextarea.setAttribute('style', `${contextStyle};${HIDDEN_STYLE}`);\n hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';\n\n let height = hiddenTextarea.scrollHeight + borderSize;\n\n hiddenTextarea.value = '';\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n\n const result: {\n minHeight?: string;\n maxHeight?: string;\n height?: string;\n } = {};\n\n if (minRows !== null) {\n const minHeight = singleRowHeight * minRows + paddingSize + borderSize;\n height = Math.max(minHeight, height);\n result.minHeight = `${minHeight}px`;\n }\n if (maxRows !== null) {\n const maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;\n height = Math.min(maxHeight, height);\n result.maxHeight = `${maxHeight}px`;\n }\n result.height = `${height}px`;\n\n if (hiddenTextarea.parentNode) {\n hiddenTextarea.remove();\n }\n hiddenTextarea = null;\n\n return result;\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subject, startWith, takeUntil } from 'rxjs';\n\nimport { calcTextareaHeight } from './utils';\n\nconst DEFAULT_VALUE = {\n minRows: 3,\n maxRows: 6,\n};\n\nexport interface AutoSizeValue {\n minRows: number;\n maxRows?: number;\n}\n\n/**\n * Directive to automatically resize a textarea to fit its content.\n */\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'textarea[autosize][ngModel],textarea[autosize][formControl],textarea[autosize][formControlName]',\n exportAs: 'TextareaAutosize',\n})\nexport class AutosizeDirective implements AfterViewInit, OnDestroy {\n private _autoSize: AutoSizeValue = DEFAULT_VALUE;\n\n private readonly destroy$$ = new Subject<void>();\n\n @Input('autosize')\n get autoSize() {\n return this._autoSize;\n }\n\n set autoSize(value: AutoSizeValue | '') {\n if (!value) {\n value = DEFAULT_VALUE;\n }\n this._autoSize = value;\n this.resizeTextarea();\n }\n\n constructor(\n private readonly elRef: ElementRef<HTMLTextAreaElement>,\n private readonly ngControl: NgControl,\n ) {}\n\n resizeTextarea() {\n const el = this.elRef.nativeElement;\n const autoSize = this._autoSize;\n Object.assign(\n el.style,\n calcTextareaHeight(\n el,\n autoSize.minRows ?? DEFAULT_VALUE.minRows,\n autoSize.maxRows || DEFAULT_VALUE.maxRows, // 0 is unacceptable\n ),\n );\n }\n\n ngAfterViewInit() {\n this.ngControl.valueChanges\n .pipe(startWith(null as void), takeUntil(this.destroy$$))\n .subscribe(() => this.resizeTextarea());\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Output,\n} from '@angular/core';\n\n@Directive({\n selector: '[auiClickOutside]',\n exportAs: 'auiClickOutside',\n})\nexport class ClickOutsideDirective {\n @Output()\n auiClickOutside = new EventEmitter<Event>();\n\n @HostListener('document:click', ['$event'])\n onBodyClick(event: Event) {\n if (!this.el.nativeElement.contains(event.target as Node)) {\n this.auiClickOutside.emit(event);\n }\n }\n\n constructor(private readonly el: ElementRef<HTMLElement>) {}\n}\n","import { NgModule } from '@angular/core';\n\nimport { ClickOutsideDirective } from './click-outside.directive';\n\n@NgModule({\n declarations: [ClickOutsideDirective],\n exports: [ClickOutsideDirective],\n})\nexport class SharedModule {}\n","import { ValueOf } from '../types';\n\nexport const TagType = {\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Error: 'error',\n Info: 'info',\n} as const;\n\nexport type TagType = ValueOf<typeof TagType>;\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\nimport { TagType } from '../tag.types';\n\n@Component({\n selector: 'aui-check-tag',\n templateUrl: './check-tag.component.html',\n styleUrls: ['./check-tag.component.scss', '../tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class CheckTagComponent {\n bem: Bem = buildBem('aui-tag');\n hovered = false;\n\n @Input()\n checked = false;\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n round = true;\n\n @Output()\n checkedChange = new EventEmitter<boolean>();\n\n get rootClass() {\n return `aui-check-tag ${this.bem.block(\n this.size,\n this.checked || this.hovered ? TagType.Primary : TagType.Info,\n )} ${this.round ? 'isRound' : ''}`;\n }\n}\n","<div\n [class]=\"rootClass\"\n (click)=\"checkedChange.emit(!checked)\"\n (mouseenter)=\"hovered = true\"\n (mouseleave)=\"hovered = false\"\n [class.isSolid]=\"checked\"\n>\n <span class=\"aui-tag__content\"><ng-content></ng-content></span>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../types';\nimport { Bem, buildBem } from '../utils';\n\nimport { TagType } from './tag.types';\n\n@Component({\n selector: 'aui-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class TagComponent {\n bem: Bem = buildBem('aui-tag');\n\n @Input()\n type: TagType = TagType.Primary;\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n closeable = false;\n\n @Input()\n border = false;\n\n @Input()\n solid = false;\n\n @Input()\n invalid = false;\n\n @Input()\n round = true;\n\n @Input()\n color = '';\n\n @Input()\n allowClick = false;\n\n @Output()\n close = new EventEmitter<void>();\n\n get rootClass() {\n return `${this.bem.block(\n this.type || TagType.Primary,\n this.size || ComponentSize.Medium,\n )} ${this.solid ? 'isSolid' : ''} ${this.border ? 'hasBorder' : ''} ${\n this.invalid ? 'isInvalid' : ''\n } ${this.round ? 'isRound' : ''} ${\n this.allowClick && this.isNormalTag ? 'allowClick' : ''\n }`;\n }\n\n // 只有常规标签支持单击样式\n get isNormalTag() {\n return !this.solid && !this.closeable && !this.invalid;\n }\n\n get customStyle() {\n const arr = this.color.split(',');\n return {\n color: arr[0],\n 'border-color': arr[0],\n 'background-color': arr[1] || arr[0],\n };\n }\n}\n","<div\n [class]=\"rootClass\"\n [ngStyle]=\"customStyle\"\n>\n <span class=\"aui-tag__content\"><ng-content></ng-content></span>\n <aui-icon\n *ngIf=\"closeable\"\n class=\"aui-tag__close\"\n icon=\"close_small\"\n (click)=\"close.emit(); $event.stopPropagation()\"\n ></aui-icon>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { CheckTagComponent } from './check-tag/check-tag.component';\nimport { TagComponent } from './tag.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [TagComponent, CheckTagComponent],\n exports: [TagComponent, CheckTagComponent],\n})\nexport class TagModule {}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n ContentChildren,\n QueryList,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\nimport { CommonFormControl } from '../../form';\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem, coerceNumber, watchContentExist } from '../../utils';\nimport {\n InputAddonAfterDirective,\n InputAddonBeforeDirective,\n} from '../helper-directives';\n\n@Component({\n selector: 'aui-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberInputComponent),\n multi: true,\n },\n ],\n})\nexport class NumberInputComponent\n extends CommonFormControl<number>\n implements AfterContentInit, AfterViewInit\n{\n bem: Bem = buildBem('aui-number-input');\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n min: string | number = Number.MIN_SAFE_INTEGER;\n\n @Input()\n max: string | number = Number.MAX_SAFE_INTEGER;\n\n @Input()\n step = 1;\n\n @Input()\n precision: number;\n\n @Input()\n controls = true;\n\n @Input()\n placeholder = '';\n\n @Input()\n controlsPosition = '';\n\n @Input()\n angleControls = false;\n\n @ViewChild('inputRef', { read: ElementRef })\n inputRef: ElementRef<HTMLInputElement>;\n\n @ContentChildren(InputAddonBeforeDirective)\n private readonly addonBeforeRefs: QueryList<InputAddonBeforeDirective>;\n\n @ContentChildren(InputAddonAfterDirective)\n private readonly addonAfterRefs: QueryList<InputAddonAfterDirective>;\n\n isFocus = false;\n\n hasAddonBefore$: Observable<boolean>;\n hasAddonAfter$: Observable<boolean>;\n\n ngAfterContentInit() {\n this.hasAddonBefore$ = watchContentExist(this.addonBeforeRefs);\n this.hasAddonAfter$ = watchContentExist(this.addonAfterRefs);\n }\n\n ngAfterViewInit() {\n this.inputRef.nativeElement.value = (this.model ?? '') + '';\n }\n\n override valueIn(v: number) {\n if (this.inputRef) {\n this.inputRef.nativeElement.value = (v ?? '') + '';\n }\n return v;\n }\n\n override modelOut(value: number) {\n return Math.max(\n coerceNumber(this.min, Number.MIN_SAFE_INTEGER),\n Math.min(\n coerceNumber(this.max, Number.MAX_SAFE_INTEGER),\n this.parsePrecision(value),\n ),\n );\n }\n\n inputChanged(value: string) {\n this.emitModel(coerceNumber(value, this.model));\n }\n\n takeOneStep(positive: boolean) {\n if (positive) {\n this.emitModel((this.model ?? 0) + this.step);\n } else {\n this.emitModel((this.model ?? 0) - this.step);\n }\n }\n\n private parsePrecision(value: number) {\n const precision = this.precision ?? this.getStepPrecision();\n return parseFloat(value.toFixed(precision));\n }\n\n private getStepPrecision() {\n const step = this.step + '';\n const index = step.indexOf('.');\n return index < 0 ? 0 : step.slice(index + 1).length;\n }\n}\n","<div\n [class]=\"bem.block(size)\"\n [ngClass]=\"{\n isFocused: isFocus,\n isDisabled: disabled,\n hasBefore: hasAddonBefore$ | async,\n hasAfter: hasAddonAfter$ | async\n }\"\n>\n <div\n *ngIf=\"hasAddonBefore$ | async\"\n [class]=\"bem.element('addon', 'before')\"\n >\n <ng-content select=\"[auiInputAddonBefore]\"></ng-content>\n </div>\n <div\n [class]=\"bem.element('inner')\"\n auiClickOutside\n (auiClickOutside)=\"isFocus = false\"\n >\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'decrease')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"minus\"></aui-icon>\n </button>\n <input\n #inputRef\n autocomplete=\"off\"\n (change)=\"inputChanged($any($event).target.value)\"\n [disabled]=\"disabled\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n (focus)=\"isFocus = true\"\n (blur)=\"isFocus = false\"\n [ngStyle]=\"{ 'text-align': angleControls ? 'left' : 'center' }\"\n />\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'increase')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"plus\"></aui-icon>\n </button>\n <div\n *ngIf=\"controls && angleControls\"\n class=\"aui-number-input__controls\"\n >\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-up')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"angle_up\"></aui-icon>\n </button>\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-down')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"angle_down\"></aui-icon>\n </button>\n </div>\n </div>\n <div\n *ngIf=\"hasAddonAfter$ | async\"\n [class]=\"bem.element('addon', 'after')\"\n >\n <ng-content select=\"[auiInputAddonAfter]\"></ng-content>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\n\n@Component({\n selector: 'aui-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class SearchComponent {\n bem: Bem = buildBem('aui-search');\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n searchButton = false;\n\n @Input()\n clearable = true;\n\n @Input()\n searching = false;\n\n @Input()\n placeholder = '';\n\n @Input()\n disabled = false;\n\n @Input()\n get keyword() {\n return this.value;\n }\n\n set keyword(value: string) {\n this.value = value;\n }\n\n @Output()\n keywordChange = new EventEmitter<string>();\n\n @Output()\n search = new EventEmitter<string>();\n\n @Output()\n clear = new EventEmitter<void>();\n\n @ViewChild('input', { read: ElementRef })\n inputRef: ElementRef<HTMLInputElement>;\n\n value = '';\n\n get showSpinner() {\n return this.searching && !this.searchButton;\n }\n\n get showClear() {\n return !this.disabled && this.clearable && this.value && !this.showSpinner;\n }\n\n focus() {\n this.inputRef.nativeElement.focus();\n }\n\n emitChange(value: string): void {\n this.value = value;\n this.keywordChange.emit(value);\n }\n\n emitSearch(): void {\n if (this.disabled) {\n return;\n }\n this.search.emit(this.value);\n }\n\n emitClear(): void {\n if (this.disabled) {\n return;\n }\n this.value = '';\n this.keywordChange.emit('');\n this.search.emit('');\n this.clear.emit();\n this.inputRef.nativeElement.focus();\n }\n}\n","<div\n [ngClass]=\"bem.block(size)\"\n [class.hasIcon]=\"!searchButton\"\n [class.hasButton]=\"searchButton\"\n [class.isClearable]=\"showClear\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"search_s\"></aui-icon>\n </div>\n <input\n #input\n aui-input\n autocomplete=\"off\"\n [ngModel]=\"value\"\n (ngModelChange)=\"emitChange($event)\"\n [disabled]=\"disabled\"\n (keyup.enter)=\"emitSearch()\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n />\n <div\n *ngIf=\"showSpinner\"\n [class]=\"bem.element('spinner')\"\n >\n <aui-icon icon=\"spinner\"></aui-icon>\n </div>\n <div\n [hidden]=\"!showClear\"\n [class]=\"bem.element('clear')\"\n (click)=\"emitClear()\"\n >\n <aui-icon icon=\"close_small\"></aui-icon>\n </div>\n <div\n *ngIf=\"searchButton\"\n [class]=\"bem.element('button')\"\n (click)=\"emitSearch()\"\n >\n <div [class]=\"bem.element('button-icon')\">\n <aui-icon [icon]=\"searching ? 'spinner' : 'search_s'\"></aui-icon>\n </div>\n </div>\n</div>\n","import { ComponentSize } from '../../types';\n\nfunction getRowHeight(size: ComponentSize) {\n switch (size) {\n case ComponentSize.Large:\n return 33;\n case ComponentSize.Small:\n return 23;\n case ComponentSize.Mini:\n return 21;\n default:\n return 25;\n }\n}\n\nfunction getContainerPaddingPatch(size: ComponentSize) {\n switch (size) {\n case ComponentSize.Mini:\n return 3;\n case ComponentSize.Small:\n return 5;\n default:\n return 7;\n }\n}\n\nexport function createWithMaxRowCount<\n T extends {\n maxRowCount: number;\n customRowHeight?: number;\n size: ComponentSize;\n },\n>(component: T) {\n const hostPosition = () => (component.maxRowCount > 0 ? 'relative' : null);\n const hostDisplay = () => (component.maxRowCount ? 'block' : null);\n const maxHeight = () => {\n if (component.maxRowCount <= 0) {\n return null;\n }\n\n const paddingPatch = getContainerPaddingPatch(component.size);\n\n const rowHeight =\n isNaN(component.customRowHeight) || component.customRowHeight <= 0\n ? getRowHeight(component.size)\n : component.customRowHeight;\n\n return `${rowHeight * component.maxRowCount + paddingPatch}px`;\n };\n\n return {\n hostPosition,\n hostDisplay,\n maxHeight,\n };\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Injector,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport {\n AsyncValidatorFn,\n FormBuilder,\n NG_VALUE_ACCESSOR,\n NgControl,\n ValidatorFn,\n Validators,\n FormControl,\n} from '@angular/forms';\nimport { take } from 'rxjs';\n\nimport { CommonFormControl } from '../../form';\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\n\nimport { createWithMaxRowCount } from './with-max-row-count';\n\nexport const INPUT_ERROR_KEY = 'input_data_error';\n\n@Component({\n selector: 'aui-tags-input',\n templateUrl: './tags-input.component.html',\n styleUrls: [\n '../../input/input.component.scss',\n '../../tag/tag.component.scss',\n './tags-input.component.scss',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TagsInputComponent),\n multi: true,\n },\n ],\n})\nexport class TagsInputComponent\n extends CommonFormControl<string[]>\n implements AfterViewInit, OnChanges\n{\n bem: Bem = buildBem('aui-tags-input');\n\n @Input()\n placeholder = '';\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n // TODO: implement this feature\n @Input()\n clearable: boolean | '' = false;\n\n @Input()\n allowRepeat: boolean | '' = false;\n\n @Input()\n allowEmpty: boolean | '' = false;\n\n @Input()\n readonlyTags: string[] | readonly string[] = [];\n\n @Input()\n maxRowCount = 0;\n\n @Input()\n customRowHeight = 0; // 0: use default style const value, > 1: for ```tagClassFn``` maybe affect lineHeight\n\n _inputValidator: ValidatorFn;\n _inputAsyncValidator: AsyncValidatorFn;\n\n @Input()\n set inputValidator(fn: ValidatorFn | ValidatorFn[]) {\n this._inputValidator = Array.isArray(fn) ? Validators.compose(fn) : fn;\n }\n\n get inputValidator() {\n return this._inputValidator;\n }\n\n @Input()\n set inputAsyncValidator(fn: AsyncValidatorFn | AsyncValidatorFn[]) {\n this._inputAsyncValidator = Array.isArray(fn)\n ? Validators.composeAsync(fn)\n : fn;\n }\n\n get inputAsyncValidator() {\n return this._inputAsyncValidator;\n }\n\n @ViewChild('inputRef', { static: true })\n inputRef: ElementRef<HTMLInputElement>;\n\n @ViewChild('inputValueMirror', { static: true })\n inputValueMirror: ElementRef<HTMLElement>;\n\n @HostBinding('style.position')\n get hostPosition() {\n return this.withMaxRowCount.hostPosition();\n }\n\n @HostBinding('style.display')\n get hostDisplay() {\n return this.withMaxRowCount.hostDisplay();\n }\n\n get maxHeight() {\n return this.withMaxRowCount.maxHeight();\n }\n\n private readonly withMaxRowCount = createWithMaxRowCount(this);\n\n focused = false;\n override model: string[] = [];\n\n // 内置form control,仅作校验使用\n readonly inputControl: FormControl;\n // 外层 FormControl,所有的校验逻辑针对输入数据\n controlContainer: NgControl;\n\n get rootClass() {\n const size = this.size || ComponentSize.Medium;\n return `aui-input ${this.bem.block(size)} ${\n this.disabled ? 'isDisabled' : ''\n } ${this.focused ? 'isFocused' : ''} ${\n this.clearable ? 'isClearable' : ''\n } ${this.maxRowCount > 0 ? 'withHeightLimit' : ''}`;\n }\n\n get tagSize() {\n return this.size === ComponentSize.Large\n ? ComponentSize.Medium\n : ComponentSize.Mini;\n }\n\n get inputClass() {\n return `${this.bem.element('input', {\n hidden:\n this.disabled || (!this.focused && !this.inputRef?.nativeElement.value),\n })} aui-tag aui-tag--${this.tagSize}`;\n }\n\n constructor(\n cdr: ChangeDetectorRef,\n private readonly fb: FormBuilder,\n private readonly renderer: Renderer2,\n private readonly injector: Injector,\n ) {\n super(cdr);\n this.inputControl = this.fb.control('');\n }\n\n ngOnChanges({\n inputValidator,\n inputAsyncValidator,\n disabled,\n }: SimpleChanges) {\n if (disabled) {\n this.inputControl[disabled.currentValue ? 'disable' : 'enable']({\n emitEvent: false,\n });\n }\n if (inputValidator) {\n this.inputControl.setValidators(this.inputValidator);\n }\n if (inputAsyncValidator) {\n this.inputControl.setAsyncValidators(this.inputAsyncValidator);\n }\n }\n\n ngAfterViewInit() {\n this.controlContainer = this.injector.get(NgControl, null);\n }\n\n onRemove(index: number) {\n const target = this.model[index];\n if (target && this.readonlyTags.includes(target)) {\n return;\n }\n this.emitValue(this.model.filter((_, i) => i !== index));\n }\n\n onInput() {\n const value = this.inputRef.nativeElement.value;\n // make sure value sync to span element\n requestAnimationFrame(() => {\n if (!value.length) {\n this.renderer.removeStyle(this.inputRef.nativeElement, 'width');\n } else {\n this.renderer.setStyle(\n this.inputRef.nativeElement,\n 'width',\n this.inputValueMirror.nativeElement.scrollWidth + 'px',\n );\n }\n });\n if (\n this.controlContainer?.control?.errors?.[INPUT_ERROR_KEY] &&\n Object.keys(this.controlContainer.control.errors).length === 1\n ) {\n this.controlContainer.control.setErrors(null);\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n const inputEl = event.target as HTMLInputElement;\n if (event.key === 'Backspace' && inputEl.value === '') {\n this.onRemove(this.model.length - 1);\n event.stopPropagation();\n event.preventDefault();\n } else if (event.key === 'Enter') {\n event.stopPropagation();\n event.preventDefault();\n requestAnimationFrame(() => {\n this.pushValue(inputEl.value);\n });\n }\n }\n\n onInputFocus() {\n this.focused = true;\n }\n\n onInputBlur(event: Event) {\n this.focused = false;\n this.pushValue((event.target as HTMLInputElement).value);\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n trackByValue(_: number, value: string) {\n return value;\n }\n\n protected override valueIn(v: string[]): string[] {\n this.clearInput();\n return this.sortByReadonly(v || []);\n }\n\n private sortByReadonly(items: string[]) {\n return this.readonlyTags.length\n ? [\n ...items.reduce(\n (acc, curr) => acc.add(curr),\n new Set(this.readonlyTags),\n ),\n ]\n : items;\n }\n\n private pushValue(value: string) {\n if (!this.allowEmpty && !value) {\n this.removeInputControlError();\n return;\n }\n if (!this.allowRepeat && this.model.includes(value)) {\n return;\n }\n this.inputControl.setValue(this.inputRef.nativeElement.value);\n // inputControl 自身的状态为同步计算\n this.syncControlStatus();\n if (this.inputControl.valid) {\n this.emitValue(this.model.concat(value));\n } else if (this.inputControl.pending) {\n // PENDING 后只会变为 VALID 或 INVALID 的决议状态\n this.inputControl.statusChanges.pipe(take(1)).subscribe(_ => {\n this.syncControlStatus();\n if (this.inputControl.valid) {\n this.emitValue(this.model.concat(value));\n }\n });\n }\n }\n\n private syncControlStatus() {\n const { pending, valid, invalid, disabled, errors } = this.inputControl;\n if (valid) {\n this.removeInputControlError();\n this.controlContainer?.control.markAsDirty();\n } else if (pending) {\n this.controlContainer?.control.markAsPending();\n } else if (invalid) {\n this.controlContainer?.control.markAsDirty();\n this.controlContainer?.control.setErrors({\n ...this.controlContainer?.control?.errors,\n [INPUT_ERROR_KEY]: errors,\n });\n } else if (disabled) {\n // 与当前 input 校验脱离\n this.controlContainer?.control?.updateValueAndValidity();\n }\n }\n\n private removeInputControlError() {\n let errors = this.controlContainer?.control.errors;\n if (errors?.[INPUT_ERROR_KEY]) {\n delete errors[INPUT_ERROR_KEY];\n }\n if (Object.keys(errors || {}).length === 0) {\n errors = null;\n }\n this.controlContainer?.control.setErrors(errors);\n }\n\n private clearInput() {\n this.renderer.removeStyle(this.inputRef.nativeElement, 'width');\n this.inputRef.nativeElement.value = '';\n this.inputControl.setValue('');\n }\n}\n","<div\n [class]=\"rootClass\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"inputRef.focus()\"\n [style.max-height]=\"maxHeight\"\n>\n <span\n [hidden]=\"model.length || inputRef.value.length\"\n [class]=\"bem.element('placeholder')\"\n >\n {{ placeholder }}\n </span>\n <aui-tag\n *ngFor=\"let tag of model; let index = index; trackBy: trackByValue\"\n type=\"info\"\n [title]=\"tag\"\n [size]=\"tagSize\"\n [round]=\"true\"\n [border]=\"true\"\n [closeable]=\"!(disabled || readonlyTags.includes(tag))\"\n (close)=\"onRemove(index)\"\n >\n {{ tag }}\n </aui-tag>\n <input\n #inputRef\n [class]=\"inputClass\"\n [disabled]=\"disabled\"\n autocomplete=\"off\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeyDown($event)\"\n (input)=\"onInput()\"\n />\n <span\n #inputValueMirror\n [class]=\"bem.element('mirror')\"\n >{{ inputRef.value }}</span\n >\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { IconModule } from '../icon';\nimport { SharedModule } from '../shared/shared.module';\nimport { TagModule } from '../tag';\n\nimport { AutosizeDirective } from './autosize.directive';\nimport {\n InputAddonAfterDirective,\n InputAddonBeforeDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n} from './helper-directives';\nimport { InputGroupComponent } from './input-group/input-group.component';\nimport { InputComponent } from './input.component';\nimport { NumberInputComponent } from './number-input/number-input.component';\nimport { SearchComponent } from './search/search.component';\nimport { TagsInputComponent } from './tags-input/tags-input.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n IconModule,\n TagModule,\n SharedModule,\n ],\n declarations: [\n AutosizeDirective,\n InputComponent,\n InputGroupComponent,\n InputAddonBeforeDirective,\n InputAddonAfterDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n SearchComponent,\n TagsInputComponent,\n NumberInputComponent,\n ],\n exports: [\n AutosizeDirective,\n InputComponent,\n InputGroupComponent,\n InputAddonBeforeDirective,\n InputAddonAfterDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n SearchComponent,\n TagsInputComponent,\n NumberInputComponent,\n ],\n})\nexport class InputModule {}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '../button';\nimport { I18nModule } from '../i18n';\nimport { IconModule } from '../icon';\nimport { InputModule } from '../input';\nimport { TooltipModule } from '../tooltip';\n\nimport { TimePickerComponent } from './component';\nimport { TimePickerPanelComponent } from './panel/panel.component';\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n PortalModule,\n OverlayModule,\n CommonModule,\n InputModule,\n TooltipModule,\n IconModule,\n ButtonModule,\n I18nModule,\n ],\n declarations: [TimePickerComponent, TimePickerPanelComponent],\n exports: [TimePickerComponent, TimePickerPanelComponent],\n})\nexport class TimePickerModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Dayjs } from 'dayjs';\n\nimport { InputComponent } from '../../input/input.component';\nimport { ComponentSize } from '../../types';\nimport { buildBem } from '../../utils';\n\nconst bem = buildBem('aui-date-picker-trigger');\n\n@Component({\n selector: 'aui-date-picker-trigger',\n templateUrl: './trigger.template.html',\n styleUrls: ['./trigger.style.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class DatePickerTriggerComponent {\n @Input()\n format = 'YYYY-MM-DD';\n\n @Input()\n size: ComponentSize;\n\n @Input()\n isRange: boolean;\n\n @Input()\n value: Dayjs | Dayjs[];\n\n @Input()\n clearable = true;\n\n @Input()\n placeholder: string;\n\n @Input()\n startPlaceholder: string;\n\n @Input()\n endPlaceholder: string;\n\n @Input()\n disabled = false;\n\n @Output()\n blur = new EventEmitter<void>();\n\n @Output()\n clear = new EventEmitter<void>();\n\n @ViewChild('focusRef', { static: false })\n focusInputRef: InputComponent;\n\n centerFocus = false;\n leftFocus = false;\n rightFocus = false;\n hovered = false;\n bem = bem;\n\n get isFocus() {\n return this.isRange ? this.leftFocus || this.rightFocus : this.centerFocus;\n }\n\n get hasValue() {\n return !this.isRange\n ? !!this.value\n : (this.value as Dayjs[])?.[0] || (this.value as Dayjs[])?.[1];\n }\n\n get showClear() {\n return !this.disabled && this.clearable && this.hasValue && this.hovered;\n }\n\n constructor() {\n this.focusInput = this.focusInput.bind(this);\n }\n\n focusInput() {\n this.focusInputRef.elementRef.nativeElement.focus();\n }\n}\n","<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n isFocused: isFocus,\n isRange: isRange,\n disabled: disabled\n }\"\n (mouseenter)=\"hovered = true\"\n (mouseleave)=\"hovered = false\"\n>\n <span [class]=\"bem.element('content')\">\n <ng-container *ngIf=\"isRange\">\n <input\n style=\"flex: 1\"\n aui-input\n #focusRef\n [value]=\"$any(value || [])[0]?.format(format)\"\n [readonly]=\"true\"\n [size]=\"size\"\n (focus)=\"leftFocus = true\"\n (blur)=\"leftFocus = false; blur.next()\"\n [placeholder]=\"startPlaceholder || ('start_date' | auiI18n)\"\n />\n <span\n class=\"placeholder\"\n (click)=\"focusInput()\"\n >{{ 'to' | auiI18n }}</span\n >\n <input\n style=\"flex: 1\"\n aui-input\n [value]=\"$any(value || [])[1]?.format(format)\"\n [readonly]=\"true\"\n [size]=\"size\"\n (focus)=\"rightFocus = true\"\n (blur)=\"rightFocus = false; blur.next()\"\n [placeholder]=\"endPlaceholder || ('end_date' | auiI18n)\"\n />\n </ng-container>\n <ng-container *ngIf=\"!isRange\">\n <input\n aui-input\n auiTooltipType=\"plain\"\n [value]=\"$any(value)?.format(format)\"\n [readonly]=\"true\"\n #focusRef\n [size]=\"size\"\n auiTooltipType=\"info\"\n (focus)=\"centerFocus = true\"\n (blur)=\"centerFocus = false; blur.next()\"\n [placeholder]=\"placeholder || ('select_date' | auiI18n)\"\n />\n </ng-container>\n </span>\n <span\n [class]=\"bem.element('addon')\"\n (click)=\"focusInput()\"\n >\n <aui-icon\n *ngIf=\"showClear; else calendar\"\n class=\"clear\"\n size=\"16px\"\n icon=\"close_small\"\n (click)=\"$event.stopImmediatePropagation(); this.clear.next()\"\n ></aui-icon>\n <ng-template #calendar>\n <aui-icon icon=\"calendar\"></aui-icon>\n </ng-template>\n </span>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { ConfigType, Dayjs } from 'dayjs';\n\nimport { CommonFormControl } from '../../form/common-form';\nimport { ComponentSize } from '../../types';\nimport { DatePickerType } from '../calendar/constant';\nimport { DateNavRange, DisabledTimeFn } from '../date-picker.type';\n\n@Component({\n selector: 'aui-date-picker',\n templateUrl: './date-picker.template.html',\n styleUrls: ['./date-picker.style.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true,\n },\n ],\n})\nexport class DatePickerComponent\n extends CommonFormControl<ConfigType, Dayjs>\n implements OnInit\n{\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n format: string;\n\n @Input()\n showTime = false;\n\n @Input()\n type = DatePickerType.Day;\n\n @Input()\n size = ComponentSize.Medium;\n\n @Input()\n disabledDate: (date: Dayjs, type: DateNavRange) => boolean = () => false;\n\n @Input()\n disabledTime: DisabledTimeFn = () => null;\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n @Input()\n weekStartDay = 0;\n\n @Input()\n showFooter = true;\n\n @Input()\n footerTemplate: TemplateRef<unknown>;\n\n @Input()\n extraFooter: TemplateRef<unknown>;\n\n @Input()\n placeholder: string;\n\n @Output()\n openChange = new EventEmitter<boolean>();\n\n value: Dayjs;\n DatePickerType = DatePickerType;\n\n ngOnInit() {\n if (!this.format) {\n this.format = this.getDefaultFormat(this.type);\n this.cdr.markForCheck();\n }\n }\n\n override valueIn(obj: ConfigType) {\n return obj ? dayjs(obj) : null;\n }\n\n override writeValue(obj: Dayjs) {\n super.writeValue(obj);\n this.value = obj;\n this.cdr.markForCheck();\n }\n\n private getDefaultFormat(type = DatePickerType.Day) {\n return type === DatePickerType.Year\n ? 'YYYY'\n : type === DatePickerType.Month\n ? 'YYYY-MM'\n : this.showTime\n ? 'YYYY-MM-DD HH:mm:ss'\n : 'YYYY-MM-DD';\n }\n\n clearValue() {\n this.value = null;\n this.emitValue(null);\n }\n}\n","<aui-date-picker-trigger\n [size]=\"size\"\n [value]=\"value\"\n [format]=\"format\"\n style=\"display: flex\"\n [auiTooltip]=\"template\"\n auiTooltipType=\"info\"\n auiTooltipClass=\"date-picker-wrapper\"\n [disabled]=\"!!disabled\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipTrigger=\"click\"\n [auiTooltipDisabled]=\"!!disabled\"\n [auiTooltipHideOnClick]=\"true\"\n [placeholder]=\"placeholder\"\n (auiTooltipHide)=\"openChange.next(false); emitValue(value)\"\n (auiTooltipShow)=\"openChange.next(true)\"\n (clear)=\"clearValue()\"\n #tooltip=\"auiTooltip\"\n></aui-date-picker-trigger>\n\n<ng-template #template>\n <aui-date-picker-panel\n [type]=\"type\"\n style=\"padding-top: 9px; display: inline-block\"\n [(ngModel)]=\"value\"\n [showTime]=\"showTime\"\n [showFooter]=\"showFooter\"\n [disabledDate]=\"disabledDate\"\n [disabledTime]=\"disabledTime\"\n [weekStartDay]=\"weekStartDay\"\n [extraFooter]=\"extraFooter\"\n [footerTemplate]=\"footerTemplate\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (click)=\"$event.stopImmediatePropagation()\"\n (clear)=\"clearValue()\"\n (confirm)=\"tooltip.disposeTooltip(); emitValue(value)\"\n ></aui-date-picker-panel>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport dayjs, { ConfigType, Dayjs } from 'dayjs';\n\nimport { CommonFormControl } from '../../form/common-form';\nimport { ComponentSize } from '../../types';\nimport { DisabledDateFn, DisabledTimeFn } from '../date-picker.type';\n\n@Component({\n selector: 'aui-range-picker',\n templateUrl: './range-picker.template.html',\n styleUrls: ['./range-picker.style.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangePickerComponent),\n multi: true,\n },\n ],\n})\nexport class RangePickerComponent extends CommonFormControl<\n ConfigType[],\n Dayjs[]\n> {\n @Input()\n clearable = true;\n\n @Input()\n clearText: string;\n\n @Input()\n format = 'YYYY-MM-DD';\n\n @Input()\n showFooter = true;\n\n @Input()\n showTime = true;\n\n @Input()\n disabledDate: DisabledDateFn = () => false;\n\n @Input()\n minDate: Dayjs;\n\n @Input()\n maxDate: Dayjs;\n\n @Input()\n disabledTime: { left: DisabledTimeFn; right: DisabledTimeFn } = {\n left: () => null,\n right: () => null,\n };\n\n @Input()\n weekStartDay = 0;\n\n @Input()\n size: ComponentSize;\n\n @Output()\n openChange = new EventEmitter<boolean>();\n\n value: [Dayjs, Dayjs];\n\n override valueIn(obj: [ConfigType, ConfigType]) {\n return obj?.map(i => dayjs(i));\n }\n\n override writeValue(obj: [Dayjs, Dayjs]) {\n super.writeValue(obj);\n this.value = obj;\n this.cdr.markForCheck();\n }\n\n clearValue() {\n this.value = null;\n this.emitValue(null);\n }\n}\n","<aui-date-picker-trigger\n [format]=\"format\"\n [isRange]=\"true\"\n [size]=\"size\"\n [value]=\"value\"\n [auiTooltip]=\"template\"\n [disabled]=\"!!disabled\"\n style=\"display: flex\"\n auiTooltipType=\"info\"\n auiTooltipClass=\"range-picker-wrapper\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipTrigger=\"click\"\n [auiTooltipHideOnClick]=\"true\"\n [auiTooltipDisabled]=\"!!disabled\"\n (auiTooltipHide)=\"openChange.next(false); emitValue(value)\"\n (auiTooltipShow)=\"openChange.next(true)\"\n (clear)=\"clearValue()\"\n #tooltip=\"auiTooltip\"\n></aui-date-picker-trigger>\n\n<ng-template #template>\n <aui-date-range-picker-panel\n style=\"padding-top: 9px; display: inline-block\"\n [showTime]=\"showTime\"\n [showFooter]=\"showFooter\"\n [(ngModel)]=\"value\"\n [disabledDate]=\"disabledDate\"\n [disabledTime]=\"disabledTime\"\n [weekStartDay]=\"weekStartDay\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (click)=\"$event.stopImmediatePropagation()\"\n (clear)=\"clearValue()\"\n (confirm)=\"tooltip.disposeTooltip(); emitValue(value)\"\n ></aui-date-range-picker-panel>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '../button';\nimport { I18nModule } from '../i18n';\nimport { IconModule } from '../icon/icon.module';\nimport { InputModule } from '../input';\nimport { TimePickerModule } from '../time-picker';\nimport { TooltipModule } from '../tooltip';\n\nimport { DatePickerPanelComponent } from './calendar/date-picker-panel/component';\nimport { CalendarFooterComponent } from './calendar/footer/component';\nimport { CalendarHeaderComponent } from './calendar/header/component';\nimport { PickerPanelComponent } from './calendar/panel/picker-panel';\nimport { DateRangePickerPanelComponent } from './calendar/range-picker-panel/component';\nimport { DatePickerComponent } from './date-picker/date-picker.component';\nimport { RangePickerComponent } from './range-picker/range-picker.component';\nimport { DatePickerTriggerComponent } from './trigger/trigger.component';\n\nconst COMPONENTS = [\n CalendarHeaderComponent,\n CalendarFooterComponent,\n DateRangePickerPanelComponent,\n PickerPanelComponent,\n RangePickerComponent,\n DatePickerPanelComponent,\n DatePickerComponent,\n DatePickerTriggerComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n InputModule,\n ButtonModule,\n TooltipModule,\n ReactiveFormsModule,\n FormsModule,\n TimePickerModule,\n IconModule,\n I18nModule,\n ],\n declarations: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class DatePickerModule {}\n","import { Observable } from 'rxjs';\n\nexport enum DialogSize {\n Small = 'small',\n Medium = 'medium',\n Big = 'big',\n Large = 'large',\n Fullscreen = 'fullscreen',\n FitContent = 'fit-content',\n}\n\nexport enum ConfirmType {\n Primary = 'primary',\n Success = 'success',\n Warning = 'warning',\n Danger = 'danger',\n}\n\nexport type PromiseExecutor<T> = (\n resolve: (result?: T | PromiseLike<T>) => void,\n reject: (reason?: unknown) => void,\n) => void;\n\nexport type CustomBeforeAction<T> = () => PromiseLike<T> | Observable<T>;\n\nexport type BeforeAction<T> = PromiseExecutor<T> | CustomBeforeAction<T>;\n","import { ViewContainerRef } from '@angular/core';\n\nimport { DialogSize } from './dialog.types';\n\nexport class BaseDialogConfig {\n noAnimation? = false;\n}\n\nexport class DialogConfig<D = any> extends BaseDialogConfig {\n id?: number;\n viewContainerRef?: ViewContainerRef;\n data?: D;\n size?: DialogSize = DialogSize.Big;\n hasBackdrop? = true;\n fitViewport? = false;\n customClass?: string;\n}\n","import { TemplateRef, Type } from '@angular/core';\n\nimport { BaseDialogConfig } from '../dialog-config';\nimport { BeforeAction, ConfirmType } from '../dialog.types';\n\nexport class ConfirmDialogConfig<\n T = unknown,\n R = unknown,\n> extends BaseDialogConfig {\n title: string;\n content?: string | TemplateRef<any> | Type<any>;\n cancelButton? = true;\n confirmType?: ConfirmType = ConfirmType.Primary;\n confirmText? = 'OK';\n cancelText? = 'Cancel';\n\n beforeConfirm?: BeforeAction<T>;\n beforeCancel?: BeforeAction<R>;\n}\n","export enum AnimationDuration {\n Slow = '0.3s',\n Base = '0.24s',\n Fast = '0.2s',\n}\n","import { AnimationQueryMetadata } from '@angular/animations';\n\nexport const getAnimationQueryMetadatas = (\n classNames: string[],\n query: (className: string) => AnimationQueryMetadata,\n) => classNames?.map(className => query(className));\n","import {\n animate,\n AnimationTriggerMetadata,\n query,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nimport { AnimationDuration } from '../core/animation/animation-consts';\nimport { getAnimationQueryMetadatas } from '../utils/animations';\n\nexport const ZOOM_CLASS_NAME_MAP = {\n enter: 'aui-zoom-enter',\n enterActive: 'aui-zoom-enter-active',\n leave: 'aui-zoom-leave',\n leaveActive: 'aui-zoom-leave-active',\n};\n\nexport const ZOOM_SLOW_CLASS_NAME_MAP = {\n enter: 'aui-zoom-slow-enter',\n enterActive: 'aui-zoom-slow-enter-active',\n leave: 'aui-zoom-slow-leave',\n leaveActive: 'aui-zoom-slow-leave-active',\n};\n\nexport const FADE_CLASS_NAME_MAP = {\n enter: 'aui-fade-enter',\n enterActive: 'aui-fade-enter-active',\n leave: 'aui-fade-leave',\n leaveActive: 'aui-fade-leave-active',\n};\n\nexport const FADE_SLOW_CLASS_NAME_MAP = {\n enter: 'aui-fade-slow-enter',\n enterActive: 'aui-fade-slow-enter-active',\n leave: 'aui-fade-slow-leave',\n leaveActive: 'aui-fade-slow-leave-active',\n};\n\nexport const ANIMATION_DURATION_BASE_CLASSES = [\n '.aui-dialog--small',\n '.aui-dialog--medium',\n '.aui-dialog--fit-content',\n];\n\nexport const ANIMATION_DURATION_SLOW_CLASSES = [\n '.aui-dialog--big',\n '.aui-dialog--large',\n '.aui-dialog--fullscreen',\n '.aui-dialog--fit-viewport',\n];\n\nconst getAnimationQueryMetadata = (duration: string) => (className: string) =>\n query(className, animate(duration, style({})), {\n optional: true,\n });\n\nexport const dialogAnimations: {\n readonly dialogContainer: AnimationTriggerMetadata;\n} = {\n dialogContainer: trigger('dialogContainer', [\n state('void, exit', style({})),\n state('enter', style({})),\n transition('* => enter', [\n ...getAnimationQueryMetadatas(\n ANIMATION_DURATION_BASE_CLASSES,\n getAnimationQueryMetadata(AnimationDuration.Base),\n ),\n ...getAnimationQueryMetadatas(\n ANIMATION_DURATION_SLOW_CLASSES,\n getAnimationQueryMetadata(AnimationDuration.Slow),\n ),\n ]),\n transition('* => void, * => exit', [\n ...getAnimationQueryMetadatas(\n ANIMATION_DURATION_BASE_CLASSES,\n getAnimationQueryMetadata(AnimationDuration.Base),\n ),\n ...getAnimationQueryMetadatas(\n ANIMATION_DURATION_SLOW_CLASSES,\n getAnimationQueryMetadata(AnimationDuration.Slow),\n ),\n ]),\n ]),\n};\n\n// Whitelist dom elements that are allowed to transition with transform\nexport const WHITELIST_TRANSFORM_ANIMATION_ELEMENTS = ['BUTTON'];\n","export function throwDialogContentAlreadyAttachedError() {\n throw new Error(\n 'Attempting to attach dialog content after content is already attached',\n );\n}\n","import { ElementRef } from '@angular/core';\n\nimport { DialogRef } from '../dialog-ref';\n\nexport function getClosestDialog(\n element: ElementRef,\n openDialogs: Array<DialogRef<any>>,\n) {\n let parent = (element.nativeElement as HTMLElement).parentElement;\n\n while (parent?.tagName !== 'AUI-DIALOG') {\n parent = parent.parentElement;\n }\n\n return parent\n ? openDialogs.find(dialog => dialog.id === parent.dataset.id)\n : null;\n}\n\nexport * from './errors';\n","import { AnimationEvent } from '@angular/animations';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport {\n CdkPortalOutlet,\n ComponentPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n ViewChild,\n ViewEncapsulation,\n Renderer2,\n} from '@angular/core';\n\nimport { Bem, buildBem, getElementOffset } from '../utils';\n\nimport {\n dialogAnimations,\n FADE_CLASS_NAME_MAP,\n FADE_SLOW_CLASS_NAME_MAP,\n ZOOM_CLASS_NAME_MAP,\n ZOOM_SLOW_CLASS_NAME_MAP,\n ANIMATION_DURATION_BASE_CLASSES,\n WHITELIST_TRANSFORM_ANIMATION_ELEMENTS,\n} from './dialog-animations';\nimport { DialogConfig } from './dialog-config';\nimport { throwDialogContentAlreadyAttachedError } from './utils';\n\n@Component({\n selector: 'aui-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n preserveWhitespaces: false,\n animations: [dialogAnimations.dialogContainer],\n host: {\n '[@.disabled]': 'config.noAnimation',\n '[@dialogContainer]': 'state',\n '(@dialogContainer.start)': 'onAnimationStart($event)',\n '(@dialogContainer.done)': 'onAnimationDone($event)',\n },\n})\nexport class DialogComponent {\n @ViewChild(CdkPortalOutlet, { static: true })\n portalOutlet: CdkPortalOutlet;\n\n bem: Bem = buildBem('aui-dialog');\n\n config: DialogConfig;\n\n hidden = false;\n // animation state\n state: 'void' | 'enter' | 'exit' = 'enter';\n\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n elementFocusedBeforeModalWasOpened: HTMLElement;\n\n overlayRef: OverlayRef;\n\n get id() {\n return this._id;\n }\n\n set id(value) {\n this.elementRef.nativeElement.dataset.id = value;\n }\n\n private readonly _id: string;\n\n get rootClass() {\n return `${this.bem.block(this.config.size)} ${\n this.config.fitViewport ? this.bem.modifier('fit-viewport') : ''\n } ${this.config.customClass || ''}`;\n }\n\n get customStyle() {\n return this.hidden\n ? {\n opacity: 0,\n }\n : {};\n }\n\n get zoomClassMap() {\n return ANIMATION_DURATION_BASE_CLASSES.includes(this.config.size)\n ? ZOOM_CLASS_NAME_MAP\n : ZOOM_SLOW_CLASS_NAME_MAP;\n }\n\n get fadeClassMap() {\n return ANIMATION_DURATION_BASE_CLASSES.includes(this.config.size)\n ? FADE_CLASS_NAME_MAP\n : FADE_SLOW_CLASS_NAME_MAP;\n }\n\n constructor(\n private readonly elementRef: ElementRef<HTMLElement>,\n private readonly render: Renderer2,\n ) {}\n\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (this.portalOutlet.hasAttached()) {\n throwDialogContentAlreadyAttachedError();\n }\n this.blurActiveElement();\n return this.portalOutlet.attachComponentPortal(portal);\n }\n\n attachTemplatePortal<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T> {\n if (this.portalOutlet.hasAttached()) {\n throwDialogContentAlreadyAttachedError();\n }\n this.blurActiveElement();\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n onAnimationDone(event: AnimationEvent): void {\n this.cleanAnimationClass();\n this.animationStateChanged.emit(event);\n }\n\n onAnimationStart(event: AnimationEvent): void {\n if (event.toState === 'enter') {\n this.setEnterAnimationClass();\n } else if (event.toState === 'exit') {\n this.setExitAnimationClass();\n }\n }\n\n startExitAnimation(): void {\n this.state = 'exit';\n }\n\n private blurActiveElement() {\n const activeElement = document.activeElement as HTMLElement;\n if (document) {\n this.elementFocusedBeforeModalWasOpened =\n WHITELIST_TRANSFORM_ANIMATION_ELEMENTS.includes(activeElement.tagName)\n ? activeElement\n : null;\n activeElement.blur();\n }\n }\n\n private cleanAnimationClass(): void {\n if (this.config.noAnimation) {\n return;\n }\n const backdropElement = this.overlayRef.backdropElement;\n const modalElement = this.elementRef.nativeElement.firstElementChild;\n\n if (backdropElement) {\n backdropElement.classList.remove(this.fadeClassMap.enter);\n backdropElement.classList.remove(this.fadeClassMap.enterActive);\n }\n\n modalElement.classList.remove(this.zoomClassMap.enter);\n modalElement.classList.remove(this.zoomClassMap.enterActive);\n modalElement.classList.remove(this.zoomClassMap.leave);\n modalElement.classList.remove(this.zoomClassMap.leaveActive);\n }\n\n private setEnterAnimationClass(): void {\n if (this.config.noAnimation) {\n return;\n }\n\n this.setModalTransformOrigin();\n\n const modalElement = this.elementRef.nativeElement.firstElementChild;\n const backdropElement = this.overlayRef.backdropElement;\n modalElement.classList.add(this.zoomClassMap.enter);\n modalElement.classList.add(this.zoomClassMap.enterActive);\n\n if (backdropElement) {\n backdropElement.classList.add(this.fadeClassMap.enter);\n backdropElement.classList.add(this.fadeClassMap.enterActive);\n }\n }\n\n private setExitAnimationClass(): void {\n if (this.config.noAnimation) {\n return;\n }\n\n const modalElement = this.elementRef.nativeElement.firstElementChild;\n modalElement.classList.add(this.zoomClassMap.leave);\n modalElement.classList.add(this.zoomClassMap.leaveActive);\n\n this.setMaskExitAnimationClass();\n }\n\n private setMaskExitAnimationClass(): void {\n const backdropElement = this.overlayRef.backdropElement;\n\n if (backdropElement) {\n backdropElement.classList.add(this.fadeClassMap.leave);\n backdropElement.classList.add(this.fadeClassMap.leaveActive);\n }\n }\n\n private setModalTransformOrigin(): void {\n const modalElement = this.elementRef.nativeElement\n .firstElementChild as HTMLDivElement;\n\n if (this.elementFocusedBeforeModalWasOpened) {\n const previouslyDOMRect =\n this.elementFocusedBeforeModalWasOpened.getBoundingClientRect();\n const lastPosition = getElementOffset(\n this.elementFocusedBeforeModalWasOpened,\n );\n const x = lastPosition.left + previouslyDOMRect.width / 2;\n const y = lastPosition.top + previouslyDOMRect.height / 2;\n const transformOrigin = `${x - modalElement.offsetLeft}px ${\n y - modalElement.offsetTop\n }px 0px`;\n this.render.setStyle(modalElement, 'transform-origin', transformOrigin);\n }\n }\n}\n","<div\n [ngClass]=\"rootClass\"\n [ngStyle]=\"customStyle\"\n>\n <ng-template cdkPortalOutlet></ng-template>\n</div>\n","import {\n CdkScrollable,\n ComponentType,\n GlobalPositionStrategy,\n OverlayRef,\n ScrollDispatcher,\n} from '@angular/cdk/overlay';\nimport { NgZone } from '@angular/core';\nimport { filter, Observable, Subject, take } from 'rxjs';\n\nimport { DialogComponent } from './dialog.component';\n\nlet uniqueId = 0;\n\nexport class DialogRef<T = ComponentType<any>, R = any> {\n componentInstance?: T;\n readonly id = `aui-dialog-${uniqueId++}`;\n\n private readonly afterOpen$ = new Subject<void>();\n private readonly afterClosed$ = new Subject<R>();\n\n private readonly scrollable: CdkScrollable;\n\n constructor(\n private readonly overlayRef: OverlayRef,\n public dialogInstance: DialogComponent,\n scrollDispatcher: ScrollDispatcher,\n ngZone: NgZone,\n ) {\n dialogInstance.id = this.id;\n this.scrollable = new CdkScrollable(\n { nativeElement: overlayRef.overlayElement },\n scrollDispatcher,\n ngZone,\n );\n this.scrollable.ngOnInit();\n }\n\n close(result: R = null): void {\n this.scrollable.ngOnDestroy();\n\n this.dialogInstance.animationStateChanged\n .pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'exit'),\n take(1),\n )\n .subscribe(() => {\n this.overlayRef.detachBackdrop();\n this.overlayRef.dispose();\n this.afterClosed$.next(result);\n this.afterClosed$.complete();\n });\n this.dialogInstance.startExitAnimation();\n }\n\n afterOpen(): Observable<void> {\n return this.afterOpen$.asObservable();\n }\n\n afterClosed(): Observable<R> {\n return this.afterClosed$.asObservable();\n }\n\n updatePosition(): this {\n this.getPositionStrategy().top('0').left('0');\n this.overlayRef.updatePosition();\n return this;\n }\n\n updateSize(): this {\n this.getPositionStrategy();\n this.overlayRef.updatePosition();\n return this;\n }\n\n private getPositionStrategy(): GlobalPositionStrategy {\n return this.overlayRef.getConfig()\n .positionStrategy as GlobalPositionStrategy;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\nimport { firstValueFrom, Observable } from 'rxjs';\n\nimport { Bem, buildBem, isString, isTemplateRef } from '../../utils';\nimport { DialogRef } from '../dialog-ref';\nimport {\n BeforeAction,\n ConfirmType,\n CustomBeforeAction,\n PromiseExecutor,\n} from '../dialog.types';\n\nimport { ConfirmDialogConfig } from './confirm-dialog-config';\n\n@Component({\n selector: 'aui-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class ConfirmDialogComponent<T = unknown, R = unknown> {\n bem: Bem = buildBem('aui-confirm-dialog');\n\n config: ConfirmDialogConfig<T, R>;\n\n waitConfirm = false;\n waitCancel = false;\n isTemplateRef = isTemplateRef;\n isString = isString;\n constructor(\n private readonly dialogRef: DialogRef<any>,\n private readonly cdr: ChangeDetectorRef,\n ) {}\n\n setConfig(config: ConfirmDialogConfig<T, R>) {\n this.config = { ...new ConfirmDialogConfig(), ...config };\n }\n\n iconMap(type: ConfirmType) {\n switch (type) {\n case ConfirmType.Success:\n return 'check_circle_s';\n case ConfirmType.Danger:\n return 'exclamation_triangle_s';\n default:\n return 'exclamation_circle_s';\n }\n }\n\n async confirm() {\n if (!this.config.beforeConfirm) {\n this.dialogRef.close({ confirm: true, result: null });\n return;\n }\n this.waitConfirm = true;\n try {\n const result = await this.toPromise(this.config.beforeConfirm);\n this.dialogRef.close({ confirm: true, result });\n } catch {\n } finally {\n this.waitConfirm = false;\n this.cdr.markForCheck();\n }\n }\n\n async cancel() {\n if (!this.config.beforeCancel) {\n this.dialogRef.close({ confirm: false, result: null });\n return;\n }\n this.waitCancel = true;\n try {\n const result = await this.toPromise(this.config.beforeCancel);\n this.dialogRef.close({ confirm: false, result });\n } catch {\n } finally {\n this.waitCancel = false;\n this.cdr.markForCheck();\n }\n }\n\n private toPromise<T>(beforeAction: BeforeAction<T>) {\n if (beforeAction.length) {\n return new Promise(beforeAction as PromiseExecutor<T>);\n }\n\n const result = (beforeAction as CustomBeforeAction<T>)();\n\n if (result instanceof Observable) {\n return firstValueFrom(result);\n }\n\n return result;\n }\n}\n","<div [class]=\"bem.block()\">\n <div [class]=\"bem.element('title')\">\n <span [class]=\"bem.element('icon', config.confirmType + '')\">\n <aui-icon\n [icon]=\"iconMap(config.confirmType)\"\n [background]=\"\n iconMap(config.confirmType).endsWith('_triangle_s')\n ? 'triangle'\n : 'circle'\n \"\n ></aui-icon>\n </span>\n <span>{{ config.title }}</span>\n </div>\n <div [class]=\"bem.element('content')\">\n <ng-container *ngIf=\"config.content\">\n <ng-container\n *ngIf=\"\n isTemplateRef(config.content) || isString(config.content);\n else componentTemplate\n \"\n >\n <ng-container\n *ngIf=\"isTemplateRef(config.content); else stringTemplate\"\n >\n <ng-template *ngTemplateOutlet=\"config.content\"></ng-template>\n </ng-container>\n <ng-template #stringTemplate>\n {{ config.content }}\n </ng-template>\n </ng-container>\n <ng-template #componentTemplate>\n <ng-container *ngComponentOutlet=\"$any(config.content)\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n <div [class]=\"bem.element('button-wrapper')\">\n <div>\n <button\n [aui-button]=\"config.confirmType\"\n [ngClass]=\"bem.element('confirm-button')\"\n [loading]=\"waitConfirm\"\n [disabled]=\"waitConfirm || waitCancel\"\n (click)=\"confirm()\"\n >\n {{ config.confirmText }}\n </button>\n <button\n *ngIf=\"config.cancelButton\"\n aui-button\n [ngClass]=\"bem.element('cancel-button')\"\n [loading]=\"waitCancel\"\n [disabled]=\"waitConfirm || waitCancel\"\n (click)=\"cancel()\"\n >\n {{ config.cancelText }}\n </button>\n </div>\n </div>\n</div>\n","import {\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollDispatcher,\n} from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n ComponentType,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n Injectable,\n InjectionToken,\n Injector,\n NgZone,\n TemplateRef,\n} from '@angular/core';\n\nimport { ConfirmDialogConfig } from './confirm-dialog/confirm-dialog-config';\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { DialogConfig } from './dialog-config';\nimport { DialogRef } from './dialog-ref';\nimport { DialogComponent } from './dialog.component';\nimport { DialogSize } from './dialog.types';\n\nexport const DIALOG_DATA = new InjectionToken<any>('aui-dialog-data');\n\n@Injectable()\nexport class DialogService {\n static readonly DIALOG_OVERLAY_PANE_CLASS = 'aui-dialog-overlay-pane';\n static readonly DIALOG_BACKDROP_CLASS = 'aui-dialog-backdrop';\n static readonly DIALOG_OVERLAY_PANE_FIT_VIEWPORT_CLASS =\n 'aui-dialog-overlay-pane--fit-viewport';\n\n openDialogs: Array<DialogRef<any>> = [];\n\n constructor(\n private readonly overlay: Overlay,\n private readonly injector: Injector,\n private readonly scrollDispatcher: ScrollDispatcher,\n private readonly ngZone: NgZone,\n ) {}\n\n open<T, D = any, R = any>(\n compOrTempRef: ComponentType<T> | TemplateRef<T>,\n config: DialogConfig<D> = null,\n ): DialogRef<T, R> {\n this.hiddenPrevDialog();\n\n config = { ...new DialogConfig(), ...config };\n\n const overlayRef = this.createOverlay(config);\n const dialogIns = this.attachDialog(overlayRef, config);\n const dialogRef = this.attachDialogContent<T, D, R>(\n compOrTempRef,\n dialogIns,\n overlayRef,\n config,\n );\n this.openDialogs.push(dialogRef);\n dialogRef.updatePosition().updateSize();\n dialogRef.afterClosed().subscribe(() => {\n this.removeDialog(dialogRef);\n this.showPrevDialog();\n });\n\n return dialogRef;\n }\n\n confirm<T = unknown, R = unknown>(\n config: ConfirmDialogConfig<T, R>,\n ): Promise<T> {\n const dialogRef = this.open<\n ConfirmDialogComponent<T, R>,\n void,\n { confirm: boolean; result: T | R }\n >(ConfirmDialogComponent, {\n size: DialogSize.FitContent,\n noAnimation: !!config.noAnimation,\n });\n dialogRef.componentInstance.setConfig(config);\n return new Promise((resolve, reject) => {\n dialogRef.afterClosed().subscribe(action => {\n if (action.confirm) {\n resolve(action.result as T);\n } else {\n // eslint-disable-next-line prefer-promise-reject-errors\n reject(action.result as R);\n }\n });\n });\n }\n\n closeAll() {\n this.openDialogs.forEach(dialogRef => {\n dialogRef.close();\n });\n }\n\n private hiddenPrevDialog() {\n if (this.openDialogs.length > 0) {\n this.openDialogs[this.openDialogs.length - 1].dialogInstance.hidden =\n true;\n }\n }\n\n private showPrevDialog() {\n if (this.openDialogs.length > 0) {\n this.openDialogs[this.openDialogs.length - 1].dialogInstance.hidden =\n false;\n }\n }\n\n private createOverlay(config: DialogConfig): OverlayRef {\n const overlayConfig = this.getOverlayConfig(config);\n return this.overlay.create(overlayConfig);\n }\n\n private getOverlayConfig(dialogConfig: DialogConfig): OverlayConfig {\n return {\n positionStrategy: this.overlay.position().global(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n hasBackdrop: dialogConfig.hasBackdrop && !this.openDialogs.length,\n backdropClass: DialogService.DIALOG_BACKDROP_CLASS,\n panelClass:\n dialogConfig.fitViewport || dialogConfig.size === DialogSize.Fullscreen\n ? DialogService.DIALOG_OVERLAY_PANE_FIT_VIEWPORT_CLASS\n : DialogService.DIALOG_OVERLAY_PANE_CLASS,\n width: '100vw',\n height: '100vh',\n };\n }\n\n private attachDialog(\n overlayRef: OverlayRef,\n config: DialogConfig,\n ): DialogComponent {\n const dialogPortal = new ComponentPortal(\n DialogComponent,\n config.viewContainerRef,\n );\n const dialogRef = overlayRef.attach(dialogPortal);\n dialogRef.instance.config = config;\n dialogRef.instance.overlayRef = overlayRef;\n return dialogRef.instance;\n }\n\n private attachDialogContent<T, D, R>(\n compOrTempRef: ComponentType<T> | TemplateRef<T>,\n dialogIns: DialogComponent,\n overlayRef: OverlayRef,\n config: DialogConfig<D>,\n ): DialogRef<T, R> {\n const dialogRef = new DialogRef<T, R>(\n overlayRef,\n dialogIns,\n this.scrollDispatcher,\n this.ngZone,\n );\n\n if (compOrTempRef instanceof TemplateRef) {\n dialogIns.attachTemplatePortal(\n new TemplatePortal(compOrTempRef, null, {\n $implicit: config.data,\n } as any),\n );\n } else {\n const injector = this.createInjector(config, dialogRef, dialogIns);\n const contentRef = dialogIns.attachComponentPortal<T>(\n new ComponentPortal(compOrTempRef, null, injector),\n );\n dialogRef.componentInstance = contentRef.instance;\n }\n return dialogRef;\n }\n\n private createInjector<T>(\n config: DialogConfig,\n dialogRef: DialogRef<T>,\n dialogIns: DialogComponent,\n ): Injector {\n const userInjector = config?.viewContainerRef?.injector;\n return Injector.create({\n providers: [\n {\n provide: DialogRef,\n useValue: dialogRef,\n },\n {\n provide: DIALOG_DATA,\n useValue: config.data || dialogIns,\n },\n ],\n parent: userInjector || this.injector,\n });\n }\n\n private removeDialog(dialogRef: DialogRef<any>) {\n const index = this.openDialogs.indexOf(dialogRef);\n this.openDialogs.splice(index, 1);\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnInit,\n Optional,\n} from '@angular/core';\n\nimport { DialogRef } from '../dialog-ref';\nimport { DialogService } from '../dialog.service';\nimport { getClosestDialog } from '../utils';\n\n@Directive({\n selector: 'button[auiDialogClose]',\n exportAs: 'auiDialogClose',\n})\nexport class DialogCloseDirective implements OnInit {\n @Input('auiDialogClose')\n result: any;\n\n constructor(\n @Optional() public dialogRef: DialogRef<any>,\n private readonly elementRef: ElementRef,\n private readonly dialogService: DialogService,\n ) {}\n\n ngOnInit() {\n if (!this.dialogRef) {\n this.dialogRef = getClosestDialog(\n this.elementRef,\n this.dialogService.openDialogs,\n );\n }\n }\n\n @HostListener('click')\n closeDialog() {\n this.dialogRef.close(this.result);\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { CdkScrollable, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n NgZone,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../../utils';\n\n@Component({\n selector: 'aui-dialog-content',\n templateUrl: './dialog-content.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class DialogContentComponent extends CdkScrollable {\n bem: Bem = buildBem('aui-dialog');\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n elementRef: ElementRef<HTMLElement>,\n scrollDispatcher: ScrollDispatcher,\n ngZone: NgZone,\n dir?: Directionality,\n ) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n}\n","<div [class]=\"bem.element('content')\"><ng-content></ng-content></div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../../utils';\n\n@Component({\n selector: 'aui-dialog-footer',\n templateUrl: './dialog-footer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class DialogFooterComponent {\n bem: Bem = buildBem('aui-dialog');\n}\n","<div [class]=\"bem.element('footer')\"><ng-content></ng-content></div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnInit,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../../utils';\nimport { DialogRef } from '../dialog-ref';\nimport { DialogService } from '../dialog.service';\nimport { getClosestDialog } from '../utils';\n\n@Component({\n selector: 'aui-dialog-header',\n templateUrl: './dialog-header.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class DialogHeaderComponent implements OnInit {\n bem: Bem = buildBem('aui-dialog');\n\n @Input()\n divider = true;\n\n @Input()\n closeable = true;\n\n @Input()\n result: any = false;\n\n constructor(\n @Optional() public dialogRef: DialogRef<any>,\n private readonly elementRef: ElementRef,\n private readonly dialogService: DialogService,\n ) {}\n\n ngOnInit() {\n if (!this.dialogRef) {\n this.dialogRef = getClosestDialog(\n this.elementRef,\n this.dialogService.openDialogs,\n );\n }\n }\n}\n","<div\n [class]=\"bem.element('header')\"\n [class.hasDivider]=\"divider\"\n>\n <div [class]=\"bem.element('header-title')\"><ng-content></ng-content></div>\n <div\n *ngIf=\"closeable\"\n [class]=\"bem.element('header-close')\"\n (click)=\"dialogRef.close(result)\"\n >\n <aui-icon icon=\"close\"></aui-icon>\n </div>\n</div>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonModule } from '../button';\nimport { IconModule } from '../icon';\n\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { DialogCloseDirective } from './dialog-content/dialog-close.directive';\nimport { DialogContentComponent } from './dialog-content/dialog-content.component';\nimport { DialogFooterComponent } from './dialog-content/dialog-footer.component';\nimport { DialogHeaderComponent } from './dialog-content/dialog-header.component';\nimport { DialogComponent } from './dialog.component';\nimport { DialogService } from './dialog.service';\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n IconModule,\n ButtonModule,\n ],\n declarations: [\n DialogComponent,\n DialogHeaderComponent,\n DialogContentComponent,\n DialogFooterComponent,\n DialogCloseDirective,\n ConfirmDialogComponent,\n ],\n exports: [\n DialogComponent,\n DialogHeaderComponent,\n DialogContentComponent,\n DialogFooterComponent,\n DialogCloseDirective,\n ],\n entryComponents: [DialogComponent, ConfirmDialogComponent],\n providers: [DialogService],\n})\nexport class DialogModule {}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport enum DrawerSize {\n Small = 'small',\n Medium = 'medium',\n Big = 'big',\n}\n\nexport abstract class DrawerRef<T = ComponentType<any>, R = any> {\n abstract afterClosed: Observable<R>;\n abstract afterOpen: Observable<void>;\n abstract dispose(result?: R): void;\n abstract open(): void;\n abstract componentInstance: T | null;\n\n abstract title?: string | TemplateRef<unknown>;\n abstract footer?: string | TemplateRef<unknown>;\n abstract size?: DrawerSize;\n abstract offsetY?: string;\n abstract visible?: boolean;\n abstract hideOnClickOutside?: boolean;\n abstract showClose?: boolean;\n abstract drawerClass?: string;\n abstract mask?: boolean;\n abstract maskClosable?: boolean;\n abstract width?: number;\n abstract divider?: boolean;\n}\n","/**\n * @packageDocumentation\n * @module page-guard\n */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiDrawerHeader]',\n})\nexport class DrawerHeaderDirective {}\n\n@Directive({\n selector: '[auiDrawerContent]',\n})\nexport class DrawerContentDirective {}\n\n@Directive({\n selector: '[auiDrawerFooter]',\n})\nexport class DrawerFooterDirective {}\n","import {\n ComponentType,\n Overlay,\n OverlayConfig,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {\n CdkPortalOutlet,\n ComponentPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n InjectionToken,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nimport { isTemplateRef } from '../../utils';\n\nimport { DrawerRef, DrawerSize } from './drawer-ref';\nimport {\n DrawerContentDirective,\n DrawerFooterDirective,\n DrawerHeaderDirective,\n} from './helper-directives';\n\nexport const DATA = new InjectionToken('drawer-data');\n\nconst DRAWER_OVERLAY_CLASS = 'aui-drawer-overlay';\n\nconst SIZE_MAPPER = {\n [DrawerSize.Small]: 400,\n [DrawerSize.Medium]: 600,\n [DrawerSize.Big]: 800,\n};\n\n@Component({\n selector: 'aui-drawer',\n templateUrl: './drawer.component.html',\n styleUrls: ['./drawer.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrawerComponent<\n T = ComponentType<unknown>,\n R = unknown,\n D = unknown,\n >\n extends DrawerRef<T, R>\n implements OnInit, AfterViewInit, OnChanges, OnDestroy\n{\n @Input()\n title: string | TemplateRef<unknown>;\n\n @Input()\n footer: string | TemplateRef<unknown>;\n\n @Input()\n size: DrawerSize = DrawerSize.Medium;\n\n @Input()\n offsetY = '0px';\n\n @Input() visible: boolean;\n\n @Input()\n content: TemplateRef<T> | ComponentType<T>;\n\n @Input()\n hideOnClickOutside = false;\n\n @Input()\n showClose = true;\n\n @Input()\n drawerClass: string;\n\n @Input()\n mask: boolean;\n\n @Input()\n maskClosable: boolean;\n\n @Input()\n divider = true;\n\n private _value = SIZE_MAPPER[DrawerSize.Medium];\n @Input()\n set width(value: number) {\n this._value = value;\n }\n\n get width() {\n return this._value;\n }\n\n get drawerClasses(): Record<string, boolean> {\n return {\n 'aui-drawer': true,\n hasDivider: this.divider,\n ...(!this.drawerClass ? null : { [this.drawerClass]: true }),\n };\n }\n\n private readonly afterClosed$ = new Subject<R>();\n\n get afterClosed(): Observable<R> {\n return this.afterClosed$.asObservable();\n }\n\n private readonly afterOpen$ = new Subject<void>();\n\n get afterOpen(): Observable<void> {\n return this.afterOpen$.asObservable();\n }\n\n @Output()\n drawerViewInit = new EventEmitter<void>();\n\n @Output() readonly close = new EventEmitter<MouseEvent>();\n\n @ViewChild('drawerTemplate', { static: true })\n drawerTemplate: TemplateRef<void>;\n\n @ViewChild(CdkPortalOutlet, { static: false })\n bodyPortalOutlet: CdkPortalOutlet;\n\n @ContentChild(DrawerHeaderDirective, { read: TemplateRef })\n titleTemplate: TemplateRef<T>;\n\n @ContentChild(DrawerContentDirective, { read: TemplateRef })\n contentTemplate: TemplateRef<T> | ComponentType<T>;\n\n @ContentChild(DrawerFooterDirective, { read: TemplateRef })\n footerTemplate: TemplateRef<T>;\n\n onDestroy$ = new Subject<void>();\n\n isTemplateRef = isTemplateRef;\n\n componentInstance: T | null = null;\n\n contentParams: D;\n overlayRef: OverlayRef;\n portal: TemplatePortal;\n templateContext = {};\n get transform() {\n return `translateX(${this.visible ? 0 : '100%'})`;\n }\n\n constructor(\n private readonly viewContainerRef: ViewContainerRef,\n private readonly overlay: Overlay,\n private readonly injector: Injector,\n private readonly cdr: ChangeDetectorRef,\n ) {\n super();\n }\n\n ngOnInit() {\n this.attachOverlay();\n this.updateBodyOverflow();\n this.templateContext = { $implicit: this.contentParams };\n this.cdr.detectChanges();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { visible } = changes;\n if (visible) {\n const value = visible.currentValue;\n if (value) {\n this.open();\n } else if (!visible.firstChange) {\n // 不希望默认关闭时,drawer 渲染后就触发 close 事件\n this.dispose();\n }\n }\n }\n\n ngAfterViewInit() {\n this.attachBodyContent();\n setTimeout(() => {\n this.drawerViewInit.emit();\n }, 0);\n }\n\n private attachOverlay() {\n if (!this.overlayRef) {\n this.portal = new TemplatePortal(\n this.drawerTemplate,\n this.viewContainerRef,\n );\n this.overlayRef = this.overlay.create(this.getOverlayConfig());\n }\n if (this.overlayRef) {\n this.overlayRef.attach(this.portal);\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.onDestroy$))\n .subscribe(event => {\n // 判断鼠标点击事件的 target 是否为 overlay-container 的子节点,如果是,则不关闭 drawer。\n // 为了避免点击 drawer 里的 tooltip 后 drawer 被关闭。\n if (\n this.visible &&\n this.hideOnClickOutside &&\n event.target instanceof Node &&\n !this.overlayRef.hostElement?.parentNode?.contains(event.target)\n ) {\n event.stopPropagation();\n event.preventDefault();\n this.dispose();\n }\n });\n }\n }\n\n private getOverlayConfig(): OverlayConfig {\n return new OverlayConfig({\n panelClass: DRAWER_OVERLAY_CLASS,\n positionStrategy: this.overlay.position().global(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n }\n\n private attachBodyContent(): void {\n this.bodyPortalOutlet?.dispose();\n const content = this.content || this.contentTemplate;\n if (content instanceof Type) {\n const componentPortal = new ComponentPortal<T>(\n content,\n null,\n Injector.create({\n providers: [\n {\n provide: DATA,\n useValue: this.contentParams,\n },\n ],\n parent: this.injector,\n }),\n );\n const componentRef =\n this.bodyPortalOutlet?.attachComponentPortal(componentPortal);\n this.componentInstance = componentRef.instance;\n Object.assign(componentRef.instance, this.contentParams);\n componentRef.changeDetectorRef.detectChanges();\n }\n }\n\n private updateBodyOverflow(): void {\n if (this.overlayRef) {\n if (this.visible) {\n this.overlayRef.getConfig().scrollStrategy.enable();\n } else {\n this.overlayRef.getConfig().scrollStrategy.disable();\n }\n }\n }\n\n open() {\n this.visible = true;\n this.afterOpen$.next();\n this.afterOpen$.complete();\n this.updateBodyOverflow();\n this.cdr.markForCheck();\n }\n\n dispose(result: R = null) {\n this.visible = false;\n this.close.emit();\n this.afterClosed$.next(result);\n this.afterClosed$.complete();\n this.updateBodyOverflow();\n this.cdr.markForCheck();\n }\n\n private disposeOverlay(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\n }\n\n maskClick() {\n if (this.maskClosable && this.mask) {\n this.dispose();\n }\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.disposeOverlay();\n }\n}\n","<ng-template #drawerTemplate>\n <div\n *ngIf=\"mask\"\n class=\"aui-drawer-mask\"\n [class.isOpen]=\"visible\"\n (click)=\"maskClick()\"\n ></div>\n <div\n [style.marginTop]=\"offsetY\"\n [ngClass]=\"drawerClasses\"\n [class.isOpen]=\"visible\"\n [ngStyle]=\"{\n transform: transform,\n width: width + 'px'\n }\"\n >\n <div class=\"aui-drawer__content\">\n <div class=\"aui-drawer__body-wrapper\">\n <div class=\"aui-drawer__header\">\n <div class=\"aui-drawer__title\">\n <ng-container\n *ngIf=\"!isTemplateRef(title || titleTemplate); else elseTemplate\"\n >\n {{ title }}\n </ng-container>\n <ng-template #elseTemplate>\n <ng-container\n *ngIf=\"title || titleTemplate\"\n [ngTemplateOutlet]=\"$any(title || titleTemplate)\"\n [ngTemplateOutletContext]=\"templateContext\"\n ></ng-container>\n </ng-template>\n </div>\n <div\n class=\"aui-drawer__close\"\n *ngIf=\"showClose\"\n (click)=\"dispose()\"\n >\n <aui-icon icon=\"close\"></aui-icon>\n </div>\n </div>\n\n <div\n class=\"aui-drawer__body\"\n cdkScrollable\n >\n <ng-template cdkPortalOutlet></ng-template>\n <ng-container *ngIf=\"isTemplateRef(content || contentTemplate)\">\n <ng-container\n *ngTemplateOutlet=\"\n $any(content || contentTemplate);\n context: templateContext\n \"\n >\n </ng-container>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"footer || footerTemplate\"\n class=\"aui-drawer__footer\"\n >\n <ng-container\n *ngIf=\"!isTemplateRef(footer || footerTemplate); else elseTemplate\"\n >\n {{ footer }}\n </ng-container>\n <ng-template #elseTemplate>\n <ng-container\n *ngIf=\"footer || footerTemplate\"\n [ngTemplateOutlet]=\"$any(footer || footerTemplate)\"\n [ngTemplateOutletContext]=\"templateContext\"\n ></ng-container>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, TemplateRef } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { DrawerComponent } from './component/drawer.component';\n\nimport { DrawerSize } from '.';\n\nexport interface DrawerOptions<T = any, D = any> {\n title?: string | TemplateRef<unknown>;\n width?: number;\n content?: ComponentType<T> | TemplateRef<T>;\n contentParams?: D;\n footer?: string | TemplateRef<unknown>;\n offsetY?: string;\n divider?: boolean;\n drawerClass?: string;\n size?: DrawerSize;\n visible?: boolean;\n hideOnClickOutside?: boolean;\n showClose?: boolean;\n mask?: boolean;\n maskClosable?: boolean;\n}\n@Injectable()\nexport class DrawerService {\n private drawerRef: ComponentRef<DrawerComponent>;\n private overlayRef: OverlayRef;\n private readonly unsubscribe$ = new Subject<void>();\n\n constructor(private readonly overlay: Overlay) {}\n\n open<T = unknown>(options: DrawerOptions<T>) {\n this.drawerRef?.instance?.dispose();\n this.createDrawer();\n this.updateOptions(options);\n return this.drawerRef?.instance;\n }\n\n updateOptions(options: DrawerOptions): void {\n Object.assign(this.drawerRef.instance, options);\n }\n\n private createDrawer(): void {\n this.overlayRef = this.overlay.create();\n this.drawerRef = this.overlayRef.attach(\n new ComponentPortal(DrawerComponent),\n );\n this.drawerRef.instance.drawerViewInit\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n this.drawerRef.instance.open();\n });\n\n this.drawerRef.instance.afterClosed\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n this.overlayRef.dispose();\n this.drawerRef = null;\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n });\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { DrawerComponent } from './component/drawer.component';\nimport {\n DrawerContentDirective,\n DrawerFooterDirective,\n DrawerHeaderDirective,\n} from './component/helper-directives';\nimport { DrawerService } from './drawer.service';\n\nconst COMMON = [\n DrawerComponent,\n DrawerHeaderDirective,\n DrawerContentDirective,\n DrawerFooterDirective,\n];\n\n@NgModule({\n imports: [CommonModule, IconModule, IconModule, OverlayModule, PortalModule],\n declarations: COMMON,\n exports: COMMON,\n entryComponents: [DrawerComponent],\n providers: [DrawerService],\n})\nexport class DrawerModule {}\n","import { Directive, Input } from '@angular/core';\n\nimport { TooltipActiveDirective } from '../tooltip';\n\n@Directive({\n selector: '[auiDropdownActive]',\n})\nexport class DropdownActiveDirective extends TooltipActiveDirective {\n @Input('auiDropdownActive')\n override customClass: string | string[] = '';\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnInit,\n Output,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { debounceTime } from 'rxjs';\n\nimport { BaseTooltip, TooltipTrigger, TooltipType } from '../tooltip';\n\nimport { DropdownActiveDirective } from './dropdown-active.directive';\nimport { MenuComponent } from './menu/menu.component';\n\n@Directive({\n selector: '[auiDropdown]',\n exportAs: 'auiDropdown',\n inputs: [\n 'class:auiDropdownClass',\n 'disabled:auiDropdownDisabled',\n 'position:auiDropdownPosition',\n 'trigger:auiDropdownTrigger',\n ],\n providers: [\n {\n provide: BaseTooltip,\n useExisting: DropdownDirective,\n },\n ],\n})\nexport class DropdownDirective extends BaseTooltip implements OnInit {\n @Input('auiDropdown')\n get menu() {\n return this._menu;\n }\n\n set menu(value) {\n if (value === this._menu) {\n return;\n }\n this._menu = value;\n this.content = value.template;\n }\n\n @Input('auiDropdownContext')\n lazyContentContext: any;\n\n @Input('auiDropdownHideOnClick')\n override hideOnClick = true;\n\n @Output('auiDropdownShow')\n override show = new EventEmitter<void>();\n\n @Output('auiDropdownHide')\n override hide = new EventEmitter<void>();\n\n private _menu: MenuComponent;\n\n constructor(\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n elRef: ElementRef,\n renderer: Renderer2,\n cdr: ChangeDetectorRef,\n ngZone: NgZone,\n ) {\n super(overlay, viewContainerRef, elRef, renderer, cdr, ngZone);\n new DropdownActiveDirective(this, elRef, renderer).customClass = 'isActive';\n this.type = TooltipType.Plain;\n this.position = 'bottom end';\n this.trigger = TooltipTrigger.Click;\n }\n\n ngOnInit() {\n this.show.pipe(debounceTime(0)).subscribe(() => {\n if (this.menu.lazyContent) {\n this.menu.lazyContent.attach(this.lazyContentContext);\n this.updatePosition();\n }\n });\n\n this.hide.subscribe(() => {\n if (this.menu.lazyContent) {\n this.menu.lazyContent.detach();\n }\n });\n }\n}\n","import { ValueOf } from '../types';\n\nexport const MenuItemType = {\n Default: 'default',\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Danger: 'danger',\n} as const;\n\nexport type MenuItemType = ValueOf<typeof MenuItemType>;\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../../utils';\nimport { MenuItemType } from '../dropdown.types';\n\n@Component({\n selector: 'aui-menu-item',\n templateUrl: './menu-item.component.html',\n styleUrls: ['./menu-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class MenuItemComponent {\n bem: Bem = buildBem('aui-menu-item');\n\n protected _disabled = false;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = value;\n }\n\n @Input()\n divide = false;\n\n @Input()\n type: MenuItemType = MenuItemType.Default;\n\n @Input()\n actived = false;\n\n get className() {\n return `${this.bem.block(this.type)} ${this.divide ? 'hasDivider' : ''} ${\n this.actived ? 'isActive' : ''\n }`;\n }\n}\n","<button\n [class]=\"className\"\n [disabled]=\"disabled\"\n>\n <ng-content></ng-content>\n</button>\n","import { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n Directive,\n Inject,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\n@Directive({\n selector: '*[auiMenuContent]',\n exportAs: 'auiMenuContent',\n})\nexport class MenuContentDirective implements OnDestroy {\n private portal: TemplatePortal;\n private outlet: DomPortalOutlet;\n\n private readonly doc: Document;\n\n constructor(\n private readonly templateRef: TemplateRef<unknown>,\n private readonly appRef: ApplicationRef,\n private readonly viewContainerRef: ViewContainerRef,\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n private readonly injector: Injector,\n @Inject(DOCUMENT) document: any,\n ) {\n this.doc = document;\n }\n\n attach(context?: any) {\n if (this.portal?.isAttached) {\n return;\n }\n if (!this.portal) {\n this.portal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n }\n if (!this.outlet) {\n this.outlet = new DomPortalOutlet(\n this.doc.createElement('div'),\n this.componentFactoryResolver,\n this.appRef,\n this.injector,\n );\n }\n const el = this.templateRef.elementRef.nativeElement as HTMLElement;\n el.parentNode.insertBefore(this.outlet.outletElement, el);\n this.portal.attach(this.outlet, context);\n }\n\n detach() {\n if (this.portal?.isAttached) {\n this.portal.detach();\n }\n }\n\n ngOnDestroy() {\n if (this.outlet) {\n this.outlet.dispose();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\n\nimport { MenuContentDirective } from './menu-content.directive';\n\n@Component({\n selector: 'aui-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class MenuComponent {\n bem: Bem = buildBem('aui-menu');\n\n @Input()\n size: ComponentSize = ComponentSize.Small;\n\n @ViewChild(TemplateRef, { static: true })\n template: TemplateRef<any>;\n\n @ContentChild(MenuContentDirective, { static: true })\n lazyContent: MenuContentDirective;\n\n @ContentChildren(MenuItemComponent, { descendants: true })\n menuItems: QueryList<MenuItemComponent>;\n\n get hasEnabledItem() {\n return this.menuItems?.length > 0;\n }\n}\n","<ng-template>\n <div [class]=\"bem.block(size)\"><ng-content></ng-content></div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ButtonType } from '../../button';\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem, coerceAttrBoolean } from '../../utils';\nimport { MenuComponent } from '../menu/menu.component';\n\n@Component({\n selector: 'aui-dropdown-button',\n templateUrl: './dropdown-button.component.html',\n styleUrls: ['./dropdown-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class DropdownButtonComponent {\n bem: Bem = buildBem('aui-dropdown-button');\n\n @Input()\n type: ButtonType = ButtonType.Default;\n\n @Input()\n plain = true;\n\n @Input()\n size: ComponentSize = ComponentSize.Medium;\n\n @Input()\n loading = false;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n this._disabled = coerceAttrBoolean(val);\n }\n\n @Output()\n buttonClick = new EventEmitter<Event>();\n\n @ContentChild(MenuComponent, { static: true })\n menu: MenuComponent;\n\n get disableTrigger() {\n return !this.menu?.hasEnabledItem;\n }\n\n private _disabled = false;\n}\n","<div [class]=\"bem.block(size)\">\n <button\n type=\"button\"\n class=\"aui-dropdown-button__content\"\n [aui-button]=\"type\"\n [plain]=\"plain\"\n [size]=\"size\"\n [loading]=\"loading\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick.emit($event)\"\n >\n <ng-content></ng-content>\n </button>\n <button\n type=\"button\"\n class=\"aui-dropdown-button__trigger\"\n [aui-button]=\"type\"\n [plain]=\"plain\"\n [size]=\"size\"\n [auiDropdown]=\"menu\"\n [disabled]=\"disableTrigger\"\n >\n <aui-icon icon=\"angle_down\"></aui-icon>\n </button>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiMenuGroupTitle]',\n exportAs: 'auiMenuGroupTitle',\n host: {\n '[class.aui-menu-group__title]': 'true',\n },\n})\nexport class MenuGroupTitleDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-menu-group',\n templateUrl: './menu-group.component.html',\n styleUrls: ['./menu-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class MenuGroupComponent {}\n","<div class=\"aui-menu-group\">\n <ng-content select=\"[auiMenuGroupTitle]\"></ng-content>\n <div class=\"aui-menu-group__content\"><ng-content></ng-content></div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { TooltipTrigger } from '../../tooltip';\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem } from '../../utils';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\n\n@Component({\n selector: 'aui-submenu',\n templateUrl: './submenu.component.html',\n styleUrls: ['./submenu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class SubmenuComponent extends MenuItemComponent {\n override bem: Bem = buildBem('aui-submenu');\n\n @Input()\n trigger = TooltipTrigger.Hover;\n\n @Input()\n size: ComponentSize = ComponentSize.Small;\n\n @Input()\n override get disabled() {\n return this._disabled || !this.hasEnabledItem;\n }\n\n @ContentChildren(MenuItemComponent, { descendants: true })\n menuItems: QueryList<MenuItemComponent>;\n\n get hasEnabledItem() {\n return this.menuItems?.length > 0;\n }\n}\n","<button\n [class]=\"className\"\n [auiTooltip]=\"menu.template\"\n [auiTooltipDisabled]=\"disabled\"\n [auiTooltipTrigger]=\"trigger\"\n [auiTooltipHideOnClick]=\"true\"\n auiTooltipPosition=\"end top\"\n auiTooltipType=\"plain\"\n auiTooltipClass=\"aui-sub-dropdown\"\n auiTooltipActive=\"isActive\"\n (click)=\"$event.stopPropagation()\"\n>\n <span class=\"aui-submenu__title\"><ng-content></ng-content></span>\n <aui-icon\n class=\"aui-submenu__arrow\"\n icon=\"angle_right\"\n ></aui-icon>\n</button>\n\n<aui-menu\n #menu\n [size]=\"size\"\n>\n <ng-content select=\"aui-menu-item\"></ng-content>\n</aui-menu>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonModule } from '../button';\nimport { IconModule } from '../icon';\nimport { TooltipModule } from '../tooltip';\n\nimport { DropdownActiveDirective } from './dropdown-active.directive';\nimport { DropdownButtonComponent } from './dropdown-button/dropdown-button.component';\nimport { DropdownDirective } from './dropdown.directive';\nimport { MenuGroupTitleDirective } from './helper-directives';\nimport { MenuGroupComponent } from './menu-group/menu-group.component';\nimport { MenuItemComponent } from './menu-item/menu-item.component';\nimport { MenuContentDirective } from './menu/menu-content.directive';\nimport { MenuComponent } from './menu/menu.component';\nimport { SubmenuComponent } from './submenu/submenu.component';\n\n@NgModule({\n imports: [CommonModule, TooltipModule, IconModule, ButtonModule],\n declarations: [\n DropdownDirective,\n DropdownActiveDirective,\n DropdownButtonComponent,\n MenuComponent,\n MenuGroupComponent,\n MenuGroupTitleDirective,\n MenuItemComponent,\n SubmenuComponent,\n MenuContentDirective,\n ],\n exports: [\n DropdownDirective,\n DropdownActiveDirective,\n DropdownButtonComponent,\n MenuComponent,\n MenuGroupComponent,\n MenuGroupTitleDirective,\n MenuItemComponent,\n SubmenuComponent,\n MenuContentDirective,\n ],\n})\nexport class DropdownModule {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[auiInlineAlertTitle]',\n exportAs: 'auiInlineAlertTitle',\n})\nexport class InlineAlertTitleDirective {}\n","import { ValueOf } from '../types';\n\nexport const InlineAlertType = {\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Danger: 'danger',\n Error: 'error',\n Info: 'info',\n} as const;\n\nexport type InlineAlertType = ValueOf<typeof InlineAlertType>;\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { InlineAlertTitleDirective } from './helper-directives';\nimport { InlineAlertType } from './inline-alert.types';\n\n@Component({\n selector: 'aui-inline-alert',\n templateUrl: './inline-alert.component.html',\n styleUrls: ['./inline-alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class InlineAlertComponent {\n bem: Bem = buildBem('aui-inline-alert');\n\n @Input()\n title: string;\n\n @Input()\n content: string;\n\n @Input()\n closable = false;\n\n @Input()\n type: InlineAlertType = InlineAlertType.Info;\n\n @Output()\n close = new EventEmitter<void>();\n\n @ContentChild(InlineAlertTitleDirective)\n titleRef: InlineAlertTitleDirective;\n\n visible = true;\n\n iconMap(type: InlineAlertType) {\n switch (type) {\n case InlineAlertType.Success:\n return 'check_circle_s';\n case InlineAlertType.Warning:\n return 'exclamation_circle_s';\n case InlineAlertType.Danger:\n case InlineAlertType.Error:\n return 'exclamation_triangle_s';\n default:\n return 'info_circle_s';\n }\n }\n\n closeSelf() {\n this.visible = false;\n this.close.emit();\n }\n}\n","<div\n *ngIf=\"visible\"\n [class]=\"bem.block(type)\"\n [class.hasTitle]=\"title || titleRef\"\n>\n <aui-icon\n class=\"aui-inline-alert__icon\"\n [icon]=\"iconMap(type)\"\n [background]=\"iconMap(type).endsWith('_triangle_s') ? 'triangle' : 'circle'\"\n ></aui-icon>\n <div class=\"aui-inline-alert__body\">\n <div\n class=\"aui-inline-alert__title\"\n *ngIf=\"title || titleRef\"\n >\n <ng-container *ngIf=\"title\">{{ title }}</ng-container>\n <ng-content select=\"[auiInlineAlertTitle]\"></ng-content>\n </div>\n <div class=\"aui-inline-alert__content\">\n <ng-container *ngIf=\"content\">{{ content }}</ng-container>\n <ng-content></ng-content>\n </div>\n </div>\n <aui-icon\n *ngIf=\"closable\"\n class=\"aui-inline-alert__close\"\n icon=\"close\"\n (click)=\"closeSelf()\"\n ></aui-icon>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { InlineAlertTitleDirective } from './helper-directives';\nimport { InlineAlertComponent } from './inline-alert.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [InlineAlertComponent, InlineAlertTitleDirective],\n exports: [InlineAlertComponent, InlineAlertTitleDirective],\n})\nexport class InlineAlertModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport enum MessageType {\n Error = 'error',\n Success = 'success',\n Warning = 'warning',\n Info = 'info',\n}\n\n/**\n * messageOptions: contains Basic configuration\n * Just for some containers like Message-Container\n * Detailed document: http://confluence.alaudatech.com/pages/viewpage.action?pageId=23383163\n */\n\nexport class MessageConfig {\n /**\n * the message type\n */\n type?: MessageType;\n\n /**\n * The id of this message, The same ID can only have one at the same time\n */\n id?: string | number;\n\n /**\n * automatically shut down after a few seconds, if <= 0 ,non automatic closure\n */\n duration?: number;\n\n /**\n * message content\n */\n content?: string;\n}\n\nexport interface MessageGlobalConfig {\n /**\n * max instance in one time\n */\n maxStack: number;\n duration: number | { [key in MessageType]: number };\n}\n\nexport const MESSAGE_CONFIG = new InjectionToken<MessageGlobalConfig>(\n 'MESSAGE_CONFIG',\n);\n\nexport const MESSAGE_DEFAULT_CONFIG = {\n duration: 3000,\n maxStack: 8,\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-message-wrapper',\n styleUrls: ['./message-wrapper.component.scss'],\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class MessageWrapperComponent {\n constructor(public elementRef: ElementRef) {}\n}\n","import {\n AnimationTriggerMetadata,\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const MessageAnimations: {\n readonly inOut: AnimationTriggerMetadata;\n} = {\n inOut: trigger('inOut', [\n state(\n 'flyRight, flyLeft',\n style({ opacity: 1, transform: 'translateX(0)' }),\n ),\n state('slideDown', style({ opacity: 1, transform: 'translateY(0)' })),\n transition('* => slideDown', [\n style({ opacity: 0, transform: 'translateY(-50%)' }),\n animate('100ms ease-in-out'),\n ]),\n state('slideUp', style({ opacity: 0, 'margin-top': '-50%' })),\n transition('* => slideUp', [\n style({ opacity: 1, 'margin-top': '0' }),\n animate('100ms 200ms ease-in-out'),\n ]),\n\n state('flyLeft', style({ opacity: 1, transform: 'translateX(0)' })),\n transition('* => flyLeft', [\n style({ opacity: 0, transform: 'translateX(5%)' }),\n animate('100ms ease-in-out'),\n ]),\n state('flyUp', style({ opacity: 0, 'margin-top': '-30%' })),\n transition('* => flyUp', [\n style({ opacity: 1, 'margin-top': '0' }),\n animate('100ms 150ms ease-in-out'),\n ]),\n state('void', style({ opacity: 0 })),\n state('true', style({ opacity: 1 })),\n state('false', style({ opacity: 0 })),\n transition('* => true', animate('150ms cubic-bezier(0.0, 0.0, 0.2, 1)')),\n transition('* => void', animate('150ms cubic-bezier(0.4, 0.0, 1, 1)')),\n ]),\n};\n","import { AnimationEvent } from '@angular/animations';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { MessageAnimations } from './message-animations';\nimport { MessageConfig, MessageType } from './message.config';\n\nlet uniqueId = 0;\n\nconst typeIcon: { [key: string]: string } = {\n [MessageType.Error]: 'exclamation_triangle_s',\n [MessageType.Success]: 'check_circle_s',\n [MessageType.Warning]: 'exclamation_circle_s',\n [MessageType.Info]: 'info_circle_s',\n};\n\n@Component({\n selector: 'aui-message',\n templateUrl: './message.component.html',\n animations: [MessageAnimations.inOut],\n styleUrls: ['./message.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class MessageComponent implements AfterViewInit {\n protected readonly animateStartState: string = 'slideDown';\n protected readonly animateStartEnd: string = 'slideUp';\n\n bem: Bem = buildBem('aui-message');\n animateState = this.animateStartState;\n uniqueId = `aui-message-${uniqueId++}`;\n beforeClosed: Subject<void> = new Subject();\n afterClosed: Subject<void> = new Subject();\n\n id: string | number;\n type: MessageType;\n content: string;\n duration: number;\n\n get icon(): string {\n return typeIcon[this.type];\n }\n\n protected timerId: number;\n\n constructor(\n protected viewContainerRef: ViewContainerRef,\n protected cdr: ChangeDetectorRef,\n ) {}\n\n ngAfterViewInit(): void {\n if (this.duration > 0) {\n this.timerId = window.setTimeout(() => {\n this.remove();\n }, this.duration);\n }\n }\n\n setConfig(config: MessageConfig) {\n this.id = config.id;\n this.type = config.type;\n this.content = config.content;\n this.duration = config.duration;\n }\n\n remove() {\n clearTimeout(this.timerId);\n this.beforeClosed.next();\n this.beforeClosed.complete();\n this.animateState = this.animateStartEnd;\n this.cdr.markForCheck();\n }\n\n onAnimationEnd(event: AnimationEvent) {\n try {\n if (\n this.viewContainerRef.element &&\n event.toState === this.animateStartEnd\n ) {\n (this.viewContainerRef.element.nativeElement as HTMLElement).remove();\n this.afterClosed.next();\n this.afterClosed.complete();\n }\n } catch {\n throw new Error('No outer layer can be found!');\n }\n }\n}\n","<div\n [@inOut]=\"animateState\"\n (@inOut.done)=\"onAnimationEnd($event)\"\n [class]=\"bem.block(type) + ' ' + uniqueId\"\n>\n <div [class]=\"bem.element('icon', type)\">\n <aui-icon\n [icon]=\"icon\"\n [background]=\"icon.endsWith('_triangle_s') ? 'triangle' : 'circle'\"\n ></aui-icon>\n </div>\n <div [class]=\"bem.element('content')\">{{ content }}</div>\n</div>\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n ComponentType,\n DomPortalOutlet,\n} from '@angular/cdk/portal';\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n Injector,\n} from '@angular/core';\n\nimport { MessageWrapperComponent } from './message-wrapper.component';\nimport { MessageComponent } from './message.component';\nimport {\n MessageConfig,\n MessageGlobalConfig,\n MessageType,\n} from './message.config';\n\nexport abstract class BaseMessage<\n Wrapper extends MessageWrapperComponent,\n Component extends MessageComponent,\n Config extends MessageConfig,\n> {\n wrapperInstance: { elementRef: ElementRef<HTMLElement> };\n componentRefs: Array<ComponentRef<Component>> = [];\n\n constructor(\n protected overlay: Overlay,\n protected injector: Injector,\n protected applicationRef: ApplicationRef,\n protected cfr: ComponentFactoryResolver,\n protected overlayPaneClassName: string,\n protected wrapperClass: ComponentType<Wrapper>,\n protected componentClass: ComponentType<Component>,\n protected globalConfig: MessageGlobalConfig,\n ) {\n this.initWrapperContainer();\n }\n\n create(config: Config): ComponentRef<Component>;\n create(config: MessageType, content: string): ComponentRef<Component>;\n create(config: Config | MessageType, content?: string) {\n const type = content ? (config as MessageType) : (config as Config).type;\n const mergedConfig = {\n duration:\n typeof this.globalConfig.duration === 'number'\n ? this.globalConfig.duration\n : this.globalConfig.duration[type],\n ...(content\n ? { type: config as MessageType, content }\n : (config as Config)),\n } as Config;\n\n this.removeNeedless(mergedConfig.id);\n\n const componentRef = this.initComponentRef(mergedConfig);\n componentRef.instance.afterClosed.subscribe(() => {\n componentRef.destroy();\n this.remove(componentRef.instance.uniqueId);\n });\n this.componentRefs.push(componentRef);\n return componentRef;\n }\n\n createType(type: MessageType, option: Config | string) {\n return typeof option === 'string'\n ? this.create(type, option)\n : this.create({ ...option, type } as Config);\n }\n\n success(option: Config | string): ComponentRef<Component> {\n return this.createType(MessageType.Success, option);\n }\n\n warning(option: Config | string): ComponentRef<Component> {\n return this.createType(MessageType.Warning, option);\n }\n\n error(option: Config | string): ComponentRef<Component> {\n return this.createType(MessageType.Error, option);\n }\n\n info(option: Config | string): ComponentRef<Component> {\n return this.createType(MessageType.Info, option);\n }\n\n remove(id: string | number) {\n const index = this.componentRefs.findIndex(\n ref => ref.instance.uniqueId === id || ref.instance.id === id,\n );\n if (index >= 0) {\n this.componentRefs[index].instance.remove();\n this.componentRefs.splice(index, 1);\n }\n }\n\n removeAll() {\n this.componentRefs.forEach(ref => {\n ref.instance.remove();\n });\n this.componentRefs = [];\n }\n\n protected initWrapperContainer() {\n this.wrapperInstance = this.overlay\n .create({\n panelClass: this.overlayPaneClassName,\n })\n .attach(new ComponentPortal(this.wrapperClass)).instance;\n }\n\n protected initComponentRef(config: Config): ComponentRef<Component> {\n const portalHost = new DomPortalOutlet(\n this.wrapperInstance.elementRef.nativeElement,\n this.cfr,\n this.applicationRef,\n this.injector,\n );\n const componentRef = portalHost.attachComponentPortal(\n new ComponentPortal(this.componentClass),\n );\n componentRef.instance.setConfig(config);\n return componentRef;\n }\n\n protected removeNeedless(id: string | number) {\n if (id) {\n this.remove(id);\n }\n if (\n this.globalConfig.maxStack &&\n this.componentRefs.length >= this.globalConfig.maxStack\n ) {\n this.componentRefs\n .slice(0, this.componentRefs.length - this.globalConfig.maxStack + 1)\n .forEach(ref => this.remove(ref.instance.uniqueId));\n }\n }\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n Inject,\n Injectable,\n Injector,\n Optional,\n} from '@angular/core';\n\nimport { BaseMessage } from './base-message';\nimport { MessageWrapperComponent } from './message-wrapper.component';\nimport { MessageComponent } from './message.component';\nimport {\n MESSAGE_CONFIG,\n MESSAGE_DEFAULT_CONFIG,\n MessageConfig,\n MessageGlobalConfig,\n} from './message.config';\n\n@Injectable()\nexport class MessageService extends BaseMessage<\n MessageWrapperComponent,\n MessageComponent,\n MessageConfig\n> {\n constructor(\n overlay: Overlay,\n injector: Injector,\n applicationRef: ApplicationRef,\n cfr: ComponentFactoryResolver,\n @Optional()\n @Inject(MESSAGE_CONFIG)\n globalConfig: MessageGlobalConfig,\n ) {\n super(\n overlay,\n injector,\n applicationRef,\n cfr,\n 'aui-message-overlay-pane',\n MessageWrapperComponent,\n MessageComponent,\n {\n ...MESSAGE_DEFAULT_CONFIG,\n ...globalConfig,\n },\n );\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/icon.module';\n\nimport { MessageWrapperComponent } from './message-wrapper.component';\nimport { MessageComponent } from './message.component';\nimport { MessageService } from './message.service';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, IconModule],\n declarations: [MessageWrapperComponent, MessageComponent],\n entryComponents: [MessageWrapperComponent, MessageComponent],\n providers: [MessageService],\n})\nexport class MessageModule {}\n","import { CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EmbeddedViewRef,\n HostListener,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { MessageAnimations } from '../message/message-animations';\nimport { MessageComponent } from '../message/message.component';\nimport { Bem, buildBem } from '../utils';\n\nimport { NotificationConfig } from './notification.config';\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'aui-notification',\n templateUrl: './notification.component.html',\n animations: [MessageAnimations.inOut],\n styleUrls: ['./notification.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class NotificationComponent\n extends MessageComponent\n implements AfterViewInit\n{\n protected override readonly animateStartState = 'flyLeft';\n protected override readonly animateStartEnd = 'flyUp';\n\n override bem: Bem = buildBem('aui-notification');\n override animateState = this.animateStartState;\n override uniqueId = `aui-notification-${uniqueId++}`;\n isHover = false;\n\n title: string;\n remains: number;\n childComponentInstance: unknown;\n customClass = '';\n footerPortal: TemplatePortal<unknown>;\n\n @ViewChild(CdkPortalOutlet, { static: true })\n private readonly portalOutlet: CdkPortalOutlet;\n\n @ViewChild('modalComponent', { read: ViewContainerRef, static: true })\n private readonly modalEl: ViewContainerRef;\n\n @HostListener('mouseenter')\n onMouseEnter() {\n if (this.duration <= 0) {\n return;\n }\n this.isHover = true;\n clearTimeout(this.timerId);\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n if (this.duration <= 0) {\n return;\n }\n this.isHover = false;\n this.countDown();\n }\n\n override ngAfterViewInit() {\n if (this.remains > 0) {\n this.countDown();\n }\n }\n\n override setConfig(config: NotificationConfig) {\n super.setConfig(config);\n this.title = config.title;\n this.remains = Math.ceil(this.duration / 1000);\n this.customClass = config.customClass || '';\n\n if (config.contentRef) {\n if (config.contentRef instanceof TemplateRef) {\n const portal = new TemplatePortal(config.contentRef, null, {\n $implicit: config.context,\n });\n this.attachTemplatePortal(portal);\n } else {\n this.attachComponentRef(config.contentRef);\n }\n }\n\n if (config.footerRef && config.footerRef instanceof TemplateRef) {\n this.footerPortal = new TemplatePortal(config.footerRef, null, {\n $implicit: config.context,\n });\n }\n }\n\n /**\n * Attach a TemplatePortal as content to this modal container.\n * @param portal Portal to be attached as the modal content.\n */\n private attachTemplatePortal<C>(\n portal: TemplatePortal<C>,\n ): EmbeddedViewRef<C> {\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n private attachComponentRef(componentRef: Type<unknown>) {\n this.childComponentInstance = this.modalEl.createComponent(componentRef, {\n injector: this.viewContainerRef.injector,\n }).instance;\n return this.childComponentInstance;\n }\n\n private countDown() {\n this.timerId = window.setTimeout(() => {\n this.remains -= 1;\n if (this.remains === 0) {\n this.remove();\n } else {\n this.countDown();\n }\n this.cdr.markForCheck();\n }, 1000);\n }\n}\n","<div\n [@inOut]=\"animateState\"\n (@inOut.done)=\"onAnimationEnd($event)\"\n [class]=\"bem.block(type) + ' ' + uniqueId + ' ' + customClass\"\n>\n <div [class]=\"bem.element('icon')\">\n <aui-icon\n [icon]=\"icon\"\n [background]=\"icon.endsWith('_triangle_s') ? 'triangle' : 'circle'\"\n ></aui-icon>\n </div>\n <div [class]=\"bem.element('body')\">\n <div\n *ngIf=\"title\"\n [class]=\"bem.element('title')\"\n >\n {{ title }}\n </div>\n <div\n *ngIf=\"content\"\n [class]=\"bem.element('content')\"\n >\n {{ content }}\n </div>\n <ng-template cdkPortalHost></ng-template>\n <ng-template #modalComponent></ng-template>\n </div>\n <div [class]=\"bem.element('close')\">\n <div\n *ngIf=\"duration <= 0 || isHover\"\n [class]=\"bem.element('remove')\"\n (click)=\"remove()\"\n >\n <aui-icon icon=\"close\"></aui-icon>\n </div>\n <div\n *ngIf=\"duration > 0 && !isHover\"\n [class]=\"bem.element('duration')\"\n >\n {{ remains > 0 ? remains : 1 }}s\n </div>\n </div>\n <div\n *ngIf=\"footerPortal\"\n [class]=\"bem.element('footer')\"\n >\n <ng-template [cdkPortalOutlet]=\"footerPortal\"></ng-template>\n </div>\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { InjectionToken, TemplateRef } from '@angular/core';\n\nimport { MessageConfig, MessageGlobalConfig } from '../message';\n\nexport interface NotificationConfig extends MessageConfig {\n title?: string;\n contentRef?: TemplateRef<any> | ComponentType<void>;\n footerRef?: TemplateRef<any>;\n context?: unknown;\n customClass?: string;\n}\n\n// eslint-disable-next-line no-restricted-syntax\nexport type NotificationGlobalConfig = MessageGlobalConfig;\n\nexport const NOTIFICATION_CONFIG = new InjectionToken<NotificationGlobalConfig>(\n 'NOTIFICATION_CONFIG',\n);\n\nexport const NOTIFICATION_DEFAULT_CONFIG = {\n duration: 6000,\n maxStack: 8,\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { MessageWrapperComponent } from '../message/message-wrapper.component';\n\n@Component({\n selector: 'aui-notification-wrapper',\n styleUrls: ['./notification-wrapper.component.scss'],\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class NotificationWrapperComponent extends MessageWrapperComponent {\n constructor(public override elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n Inject,\n Injectable,\n Injector,\n Optional,\n} from '@angular/core';\n\nimport { BaseMessage } from '../message/base-message';\n\nimport { NotificationWrapperComponent } from './notification-wrapper.component';\nimport { NotificationComponent } from './notification.component';\nimport {\n NOTIFICATION_CONFIG,\n NOTIFICATION_DEFAULT_CONFIG,\n NotificationConfig,\n NotificationGlobalConfig,\n} from './notification.config';\n\n@Injectable()\nexport class NotificationService extends BaseMessage<\n NotificationWrapperComponent,\n NotificationComponent,\n NotificationConfig\n> {\n constructor(\n overlay: Overlay,\n injector: Injector,\n applicationRef: ApplicationRef,\n cfr: ComponentFactoryResolver,\n @Optional()\n @Inject(NOTIFICATION_CONFIG)\n globalConfig: NotificationGlobalConfig,\n ) {\n super(\n overlay,\n injector,\n applicationRef,\n cfr,\n 'aui-notification-overlay-pane',\n NotificationWrapperComponent,\n NotificationComponent,\n {\n ...NOTIFICATION_DEFAULT_CONFIG,\n ...globalConfig,\n },\n );\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { NotificationWrapperComponent } from './notification-wrapper.component';\nimport { NotificationComponent } from './notification.component';\nimport { NotificationService } from './notification.service';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, PortalModule, IconModule],\n declarations: [NotificationWrapperComponent, NotificationComponent],\n entryComponents: [NotificationWrapperComponent, NotificationComponent],\n providers: [NotificationService],\n})\nexport class NotificationModule {}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/**\n * To modify the labels and text displayed, create a new instance of MatPaginatorIntl and\n * include it in a custom provider\n */\n@Injectable()\nexport class PaginatorIntl {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n readonly changes: Subject<void> = new Subject<void>();\n\n /** A label for the page size selector. */\n itemsPerPageLabel = 'perPage';\n\n jumperLabelPrefix = 'Goto';\n jumperLabelSuffix = '';\n\n getTotalLabel = (length: number) => `Total ${length}`;\n}\n\n// eslint-disable-next-line sonar/function-name\nexport function PAGINATOR_INTL_PROVIDER_FACTORY(parentIntl: PaginatorIntl) {\n return parentIntl || new PaginatorIntl();\n}\n\nexport const PAGINATOR_INTL_PROVIDER = {\n // If there is already an PaginatorIntl available, use that. Otherwise, provide a new one.\n provide: PaginatorIntl,\n deps: [[new Optional(), new SkipSelf(), PaginatorIntl]],\n useFactory: PAGINATOR_INTL_PROVIDER_FACTORY,\n};\n","import { Directive } from '@angular/core';\n\nimport { MenuContentDirective } from '../dropdown';\n\n@Directive({\n selector: '[auiOptionGroupTitle]',\n exportAs: 'auiOptionGroupTitle',\n host: {\n '[class.aui-option-group__title]': 'true',\n },\n})\nexport class OptionGroupTitleDirective {}\n\n@Directive({\n selector: '*[auiOptionContent]',\n exportAs: 'auiOptionContent',\n})\nexport class OptionContentDirective extends MenuContentDirective {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n combineLatest,\n distinctUntilChanged,\n map,\n tap,\n} from 'rxjs';\n\nimport { ComponentSize } from '../../types';\nimport { Bem, buildBem, coerceAttrBoolean, publishRef } from '../../utils';\nimport { BaseSelect } from '../base-select';\n\n@Component({\n selector: 'aui-option',\n templateUrl: './option.component.html',\n styleUrls: ['./option.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class OptionComponent<T> {\n bem: Bem = buildBem('aui-option');\n\n private _disabled = false;\n private _label: string | TemplateRef<unknown> = '';\n private _labelContext: unknown = {};\n private _value: T;\n private readonly label$$ = new BehaviorSubject(this.label);\n\n private readonly labelContext$$ = new BehaviorSubject(this.labelContext);\n\n private readonly value$$ = new BehaviorSubject(this.value);\n\n private readonly disabled$$ = new BehaviorSubject(this.disabled);\n\n @Input()\n get label() {\n return this._label;\n }\n\n set label(val) {\n this._label = val;\n this.label$$.next(val);\n }\n\n @Input()\n get labelContext() {\n return this._labelContext;\n }\n\n set labelContext(val) {\n this._labelContext = val;\n this.labelContext$$.next(val);\n }\n\n @Input()\n get value() {\n return this._value;\n }\n\n set value(val) {\n this._value = val;\n this.value$$.next(val);\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(val: boolean | '') {\n this._disabled = coerceAttrBoolean(val);\n this.disabled$$.next(this._disabled);\n }\n\n isMulti = false;\n\n @ViewChild('elRef', { static: true })\n elRef: ElementRef<HTMLDivElement>;\n\n private readonly select: BaseSelect<T>;\n selected = false;\n visible = true;\n size: ComponentSize = ComponentSize.Medium;\n focused = false;\n\n value$ = this.value$$.asObservable();\n label$ = this.label$$.asObservable();\n labelContext$ = this.labelContext$$.asObservable();\n disabled$ = this.disabled$$.asObservable();\n\n selected$: Observable<boolean>;\n size$: Observable<ComponentSize>;\n visible$: Observable<boolean>;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n @Inject(forwardRef(() => BaseSelect))\n select: any, // FIXME: workaround temporarily\n ) {\n this.isMulti = select.isMulti;\n this.select = select;\n this.selected$ = combineLatest([this.select.values$, this.value$$]).pipe(\n map(([selectValue, selfValue]) =>\n selectValue\n ?.map(this.select.trackFn)\n .includes(this.select.trackFn(selfValue)),\n ),\n distinctUntilChanged(),\n tap(selected => {\n this.selected = selected;\n }),\n publishRef(),\n );\n this.size$ = this.select.size$.pipe(\n tap(size => {\n this.size = size;\n }),\n );\n this.visible$ = combineLatest([\n this.select.filterString$,\n combineLatest([this.label$, this.value$, this.labelContext$]).pipe(\n map(([label, value, labelContext]) => ({ label, value, labelContext })),\n ),\n ]).pipe(\n map(([filterString, option]) =>\n this.select.filterFn(filterString, option),\n ),\n distinctUntilChanged(),\n tap(visible => {\n this.visible = visible;\n }),\n publishRef(),\n );\n }\n\n onClick() {\n if (this.disabled) {\n return;\n }\n this.select.onOptionClick(this);\n }\n\n focus() {\n if (this.disabled) {\n return;\n }\n this.focused = true;\n this.cdr.markForCheck();\n }\n\n blur() {\n this.focused = false;\n this.cdr.markForCheck();\n }\n}\n","<div\n #elRef\n [hidden]=\"!(visible$ | async)\"\n [class]=\"bem.block(size$ | async)\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"selected$ | async\"\n [class.isMulti]=\"isMulti\"\n [class.isFocused]=\"focused\"\n (click)=\"onClick()\"\n>\n <i\n *ngIf=\"isMulti\"\n class=\"aui-option__pointer\"\n >\n <aui-icon\n [hidden]=\"!(selected$ | async)\"\n icon=\"check_s\"\n ></aui-icon>\n </i>\n <ng-content></ng-content>\n</div>\n","import {\n AfterContentInit,\n AfterViewInit,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n combineLatest,\n of,\n map,\n startWith,\n switchMap,\n takeUntil,\n} from 'rxjs';\n\nimport { CommonFormControl } from '../form';\nimport { TooltipDirective } from '../tooltip';\nimport { ComponentSize } from '../types';\nimport {\n coerceAttrBoolean,\n coerceString,\n isTemplateRef,\n publishRef,\n scrollIntoView,\n} from '../utils';\n\nimport { OptionContentDirective } from './helper-directives';\nimport { OptionComponent } from './option/option.component';\nimport { OptionFilterFn, SelectFilterOption, TrackFn } from './select.types';\n\n@Directive()\nexport abstract class BaseSelect<T, V = T>\n extends CommonFormControl<V>\n implements AfterContentInit, AfterViewInit, OnDestroy\n{\n @Input()\n get size() {\n return this._size;\n }\n\n set size(val) {\n if (!val || this._size === val) {\n return;\n }\n this._size = val;\n this.size$$.next(val);\n }\n\n @Input()\n get filterable() {\n return this._filterable;\n }\n\n set filterable(val: boolean | '') {\n this._filterable = coerceAttrBoolean(val);\n }\n\n @Input()\n get clearable() {\n return this._clearable;\n }\n\n set clearable(val: boolean | '') {\n this._clearable = coerceAttrBoolean(val);\n }\n\n @Input()\n filterFn: OptionFilterFn<T> = this._filterFn.bind(this);\n\n @Input()\n trackFn: TrackFn<T> = this._trackFn;\n\n @Input()\n labelFn?: (value: T) => string;\n\n @Input()\n get allowCreate() {\n return this._allowCreate;\n }\n\n set allowCreate(val: boolean | '') {\n this._allowCreate = coerceAttrBoolean(val);\n }\n\n get allOptions() {\n return [\n ...(this.customOptions ? this.customOptions.toArray() : []),\n ...(this.contentOptions ? this.contentOptions.toArray() : []),\n ];\n }\n\n get opened() {\n return this.tooltipRef.isCreated;\n }\n\n get inputReadonly() {\n return !(this.filterable && this.opened);\n }\n\n get filterString() {\n return this._filterString;\n }\n\n set filterString(val) {\n if (val !== this._filterString) {\n this._filterString = val;\n this.filterString$$.next(val);\n this.filterChange.emit(val);\n }\n }\n\n @Input()\n loading = false;\n\n @Input()\n placeholder = '';\n\n @Input()\n defaultFirstOption = true;\n\n @Input()\n lazy = true;\n\n @Output()\n filterChange = new EventEmitter<string>();\n\n @Output()\n show = new EventEmitter<void>();\n\n @Output()\n hide = new EventEmitter<void>();\n\n @ViewChild('selectRef', { static: true })\n protected selectRef: ElementRef<HTMLElement>;\n\n @ViewChild('tooltipRef', { static: true })\n protected tooltipRef: TooltipDirective;\n\n @ViewChild('optionListRef', { static: false })\n protected optionListRef: ElementRef<HTMLDivElement>;\n\n @ViewChild('inputtingOption', { static: false })\n protected inputtingOption: OptionComponent<T>;\n\n @ContentChild(OptionContentDirective)\n protected optionContent?: OptionContentDirective;\n\n @ViewChildren(OptionComponent)\n customOptions: QueryList<OptionComponent<T>>;\n\n @ContentChildren(OptionComponent, { descendants: true })\n contentOptions: QueryList<OptionComponent<T>>;\n\n isTemplateRef = isTemplateRef;\n isMulti = false;\n\n /**\n * Utility field to make sure the users always see the value as type array\n */\n abstract readonly values$: Observable<T[]>;\n\n allOptions$: Observable<Array<OptionComponent<T>>>;\n\n protected focusedOption: OptionComponent<T>;\n\n private _size: ComponentSize = ComponentSize.Medium;\n private _filterable = true;\n private _clearable = false;\n private _allowCreate = false;\n private _filterString = '';\n\n protected destroy$$ = new Subject<void>();\n protected size$$ = new BehaviorSubject<ComponentSize>(this.size);\n private readonly filterString$$ = new BehaviorSubject<string>(\n this.filterString,\n );\n\n size$ = this.size$$.asObservable();\n filterString$ = this.filterString$$.asObservable();\n hasVisibleOption$: Observable<boolean>;\n hasMatchedOption$: Observable<boolean>;\n customCreatedOptions$: Observable<Array<SelectFilterOption<T>>>;\n containerWidth: string;\n\n ngAfterContentInit() {\n this.customCreatedOptions$ = combineLatest([\n this.values$,\n (\n this.contentOptions.changes as Observable<QueryList<OptionComponent<T>>>\n ).pipe(\n startWith(this.contentOptions),\n switchMap((options: QueryList<OptionComponent<T>>) =>\n options.length > 0\n ? combineLatest(options.map(option => option.value$))\n : of([] as T[]),\n ),\n ),\n ]).pipe(\n map(([values, optionValues]) =>\n values.reduce<Array<SelectFilterOption<T>>>((acc, value) => {\n const included = optionValues\n .map(value => this.trackFn(value))\n .includes(this.trackFn(value));\n if (!included) {\n const label =\n this.labelFn?.(value) || coerceString(this.trackFn(value));\n if (label) {\n acc.push({\n label,\n value,\n });\n }\n }\n return acc;\n }, []),\n ),\n publishRef(),\n );\n }\n\n ngAfterViewInit() {\n this.allOptions$ = combineLatest([\n this.customOptions.changes.pipe(startWith(this.customOptions)),\n this.contentOptions.changes.pipe(startWith(this.contentOptions)),\n ]).pipe(\n map(\n ([customOptions, contentOptions]: [\n QueryList<OptionComponent<T>>,\n QueryList<OptionComponent<T>>,\n ]) => [...customOptions.toArray(), ...contentOptions.toArray()],\n ),\n publishRef(),\n );\n\n // support dynamic options loading on filtering\n this.allOptions$.pipe(takeUntil(this.destroy$$)).subscribe(() => {\n if (this.opened) {\n requestAnimationFrame(() => {\n this.autoFocusFirstOption();\n });\n }\n });\n\n this.hasMatchedOption$ = combineLatest([\n this.allOptions$.pipe(\n map(customOptions =>\n customOptions.filter(option => option !== this.inputtingOption),\n ),\n // eslint-disable-next-line sonarjs/no-identical-functions\n switchMap(options =>\n options.length > 0\n ? combineLatest(options.map(option => option.value$))\n : of([] as T[]),\n ),\n ),\n this.filterString$,\n ]).pipe(\n map(([values, filterString]) =>\n values.some(value => this.trackFn(value) === filterString),\n ),\n publishRef(),\n );\n\n this.hasVisibleOption$ = (\n this.contentOptions.changes as Observable<QueryList<OptionComponent<T>>>\n ).pipe(\n startWith(this.contentOptions),\n switchMap((options: QueryList<OptionComponent<T>>) =>\n options.length > 0\n ? combineLatest(options.map(option => option.visible$))\n : of([] as boolean[]),\n ),\n map(visible => visible.some(Boolean)),\n publishRef(),\n );\n }\n\n ngOnDestroy() {\n this.optionContent?.detach();\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n\n openOption() {\n this.tooltipRef.createTooltip();\n }\n\n closeOption() {\n this.tooltipRef.disposeTooltip();\n }\n\n onShowOptions() {\n const exec = () => {\n this.containerWidth = this.selectRef.nativeElement.offsetWidth + 'px';\n\n requestAnimationFrame(() => {\n this.autoFocusFirstOption();\n });\n\n this.show.emit();\n };\n\n if (this.optionContent) {\n requestAnimationFrame(() => {\n this.optionContent.attach();\n exec();\n });\n } else {\n exec();\n }\n }\n\n onHideOptions() {\n if (this.onTouched) {\n this.onTouched();\n }\n if (!this.lazy) {\n this.optionContent?.detach();\n }\n this.resetFocusedOption();\n this.filterString = '';\n this.hide.emit();\n }\n\n onInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.filterString = value;\n\n requestAnimationFrame(() => {\n this.autoFocusFirstOption();\n });\n\n this.cdr.markForCheck();\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown':\n this.focusOptionDir('down');\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowUp':\n this.focusOptionDir('up');\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Enter':\n this.selectFocusedOption();\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Escape':\n this.escSelect();\n event.stopPropagation();\n event.preventDefault();\n break;\n }\n }\n\n onOptionClick(option: OptionComponent<T>) {\n this.resetFocusedOption(option);\n this.selectOption(option);\n }\n\n protected autoFocusFirstOption() {\n if (this.defaultFirstOption && this.allowCreate && this.filterString) {\n const matchedOption = this.contentOptions.find(\n option => this.trackFn(option.value) === this.filterString,\n );\n this.resetFocusedOption(matchedOption || this.customOptions.first);\n return;\n }\n\n const selectedOption = this.allOptions.find(\n option => option.selected && option.visible,\n );\n if (this.defaultFirstOption) {\n this.resetFocusedOption(\n selectedOption ||\n this.allOptions.find(option => option.visible && !option.disabled),\n );\n } else if (selectedOption) {\n this.scrollToOption(selectedOption);\n }\n }\n\n protected focusOptionDir(dir: 'down' | 'up') {\n if (!this.opened) {\n this.openOption();\n return;\n }\n const visibleOptions = this.allOptions.filter(\n option => option.visible && !option.disabled,\n );\n if (visibleOptions.length === 0) {\n return;\n }\n const step = dir === 'down' ? 1 : -1;\n let i = visibleOptions.indexOf(this.focusedOption);\n i = i + step;\n if (i >= visibleOptions.length) {\n i = 0;\n } else if (i < 0) {\n i = visibleOptions.length - 1;\n }\n this.resetFocusedOption(visibleOptions[i]);\n }\n\n protected resetFocusedOption(focusedOption?: OptionComponent<T>) {\n if (this.focusedOption === focusedOption) {\n return;\n }\n\n if (this.focusedOption) {\n this.focusedOption.blur();\n }\n\n this.focusedOption = focusedOption;\n\n if (this.focusedOption) {\n this.focusedOption.focus();\n this.scrollToOption(this.focusedOption);\n }\n }\n\n protected scrollToOption(option: OptionComponent<T>) {\n if (this.optionListRef) {\n scrollIntoView(\n this.optionListRef.nativeElement,\n option.elRef.nativeElement,\n );\n }\n }\n\n protected selectFocusedOption() {\n if (!this.opened) {\n this.openOption();\n return;\n }\n if (this.focusedOption && !this.focusedOption.disabled) {\n this.selectOption(this.focusedOption);\n }\n }\n\n protected escSelect() {\n this.closeOption();\n }\n\n private _trackFn<T>(value: T) {\n return value;\n }\n\n private _filterFn(\n filterString: string,\n { label, value }: SelectFilterOption<T>,\n ) {\n return (\n (typeof label === 'string' && label) ||\n this.labelFn?.(value) ||\n coerceString(this.trackFn(value))\n )\n ?.toLowerCase()\n .includes(filterString?.toLowerCase() ?? '');\n }\n\n abstract selectOption(option: OptionComponent<T>): void;\n abstract clearValue(event: Event): void;\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n Observable,\n combineLatest,\n of,\n distinctUntilChanged,\n map,\n startWith,\n switchMap,\n} from 'rxjs';\n\nimport { InputComponent } from '../input';\nimport { coerceString, publishRef } from '../utils';\n\nimport { BaseSelect } from './base-select';\nimport { OptionComponent } from './option/option.component';\nimport { SelectOption } from './select.types';\n\n@Component({\n selector: 'aui-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n {\n provide: BaseSelect,\n useExisting: SelectComponent,\n },\n ],\n})\nexport class SelectComponent<T = unknown>\n extends BaseSelect<T>\n implements AfterContentInit\n{\n @ViewChild('inputRef', { static: true })\n inputRef: InputComponent;\n\n values$ = this.model$.asObservable().pipe(map(val => [val]));\n\n selectedOption$: Observable<SelectOption>;\n\n hasSelected$: Observable<boolean>;\n\n get rootClass() {\n return `aui-select aui-select--${this.size}`;\n }\n\n get containerClass() {\n return `aui-option-container aui-option-container--${this.size}`;\n }\n\n isClearable = (hasSelected: boolean) =>\n !this.disabled && this.clearable && hasSelected;\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n\n this.selectedOption$ = combineLatest([\n (\n this.contentOptions.changes as Observable<QueryList<OptionComponent<T>>>\n ).pipe(\n startWith(this.contentOptions),\n switchMap(options =>\n combineLatest(options.map(option => option.selected$)).pipe(\n startWith(null as void),\n map(() => options.find(option => option.selected)),\n distinctUntilChanged(),\n switchMap(option =>\n option\n ? combineLatest([\n option.value$,\n option.label$,\n option.labelContext$,\n ]).pipe(\n map(([value, label, labelContext]) => ({\n value,\n label,\n labelContext,\n })),\n )\n : of(null as void),\n ),\n ),\n ),\n ),\n this.model$,\n ]).pipe(\n map(([option, value]) =>\n option\n ? {\n label:\n option.label ||\n this.labelFn?.(option.value) ||\n coerceString(this.trackFn(option.value)),\n // https://github.com/angular/angular/issues/24515\n labelContext: {\n ...(option.labelContext as Record<string, unknown>),\n },\n }\n : {\n label: this.labelFn?.(value) || coerceString(this.trackFn(value)),\n },\n ),\n publishRef(),\n );\n\n this.hasSelected$ = this.selectedOption$.pipe(\n map(({ label }) => !!label),\n publishRef(),\n );\n }\n\n override onShowOptions() {\n super.onShowOptions();\n }\n\n override onHideOptions() {\n super.onHideOptions();\n this.inputRef.elementRef.nativeElement.value = '';\n }\n\n protected override valueIn(v: T): T {\n this.closeOption();\n return v;\n }\n\n selectOption(option: OptionComponent<T>) {\n this.emitValue(option.value);\n this.closeOption();\n }\n\n clearValue(event: Event) {\n this.emitValue(null);\n event.stopPropagation();\n event.preventDefault();\n }\n}\n","<div\n [class]=\"rootClass\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable(hasSelected$ | async)\"\n [class.isFilterable]=\"filterable\"\n [class.isOpened]=\"opened\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipShow)=\"onShowOptions()\"\n (auiTooltipHide)=\"onHideOptions()\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-select__input\"\n autocomplete=\"off\"\n aui-input\n [disabled]=\"disabled\"\n [size]=\"size\"\n [readonly]=\"inputReadonly\"\n [placeholder]=\"!(hasSelected$ | async) ? placeholder : ''\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"closeOption()\"\n />\n <span\n auiInputSuffix\n class=\"aui-select__icon-container\"\n >\n <aui-icon\n class=\"aui-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-select__clear\"\n icon=\"close_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n <div\n *ngIf=\"(selectedOption$ | async) && !filterString\"\n class=\"aui-select__label-container aui-input aui-input--{{ size }}\"\n [attr.disabled]=\"disabled ? true : null\"\n >\n <div class=\"aui-select__label\">\n <ng-container *ngIf=\"(selectedOption$ | async).label as optionLabel\">\n <ng-container\n *ngIf=\"isTemplateRef(optionLabel); else label\"\n [ngTemplateOutlet]=\"optionLabel\"\n [ngTemplateOutletContext]=\"(selectedOption$ | async).labelContext\"\n ></ng-container>\n <ng-template #label>{{ optionLabel }}</ng-template>\n </ng-container>\n </div>\n </div>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n [class]=\"containerClass\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { PaginatorIntl } from './paginator-intl';\n\n/**\n * Change event object that is emitted when the user selects a\n * different page size or navigates to another page.\n * @deprecated use Output events directly instead\n */\nexport class PageEvent {\n /** The current page index. */\n pageIndex: number;\n\n /**\n * Index of the page that was selected previously.\n */\n previousPageIndex: number;\n\n /** The current page size */\n pageSize: number;\n\n /** The current total number of items being paged */\n length: number;\n}\n\n@Component({\n selector: 'aui-paginator',\n templateUrl: 'paginator.component.html',\n styleUrls: ['paginator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class PaginatorComponent implements OnDestroy {\n bem: Bem = buildBem('aui-paginator');\n\n @Input()\n get pageIndex() {\n return this.currentPage - 1;\n }\n\n set pageIndex(val) {\n this.currentPage = val + 1;\n }\n\n @Input()\n currentPage = 1;\n\n @Input()\n pageSize = 20;\n\n @Input()\n pageSizeOptions: number[] = [20, 50, 100];\n\n @Input()\n total = 0;\n\n /**\n * @deprecated use `total` instead\n */\n @Input()\n get length() {\n return this.total;\n }\n\n set length(val) {\n this.total = val;\n }\n\n @Input()\n layout: string | string[] = 'total,pager,sizes';\n\n @Input()\n disabled = false;\n\n @Output()\n readonly currentPageChange = new EventEmitter<number>();\n\n @Output()\n readonly pageSizeChange = new EventEmitter<number>();\n\n private readonly intlChangeSub: Subscription;\n\n get pageCount() {\n return Math.ceil(this.total / this.pageSize);\n }\n\n constructor(\n public intl: PaginatorIntl,\n private readonly cdr: ChangeDetectorRef,\n ) {\n this.intlChangeSub = intl.changes.subscribe(() => this.cdr.markForCheck());\n }\n\n ngOnDestroy() {\n this.intlChangeSub.unsubscribe();\n }\n\n getLayoutArr() {\n return typeof this.layout === 'string'\n ? this.layout.split(',').map(item => item.trim())\n : this.layout;\n }\n\n getCenterPages() {\n const start = Math.min(\n Math.max(0, this.currentPage - 4),\n Math.max(0, this.pageCount - 7),\n );\n return Array.from({ length: Math.max(this.pageCount - 2, 0) })\n .fill(null)\n .map((_, index) => index + 2)\n .slice(start, start + 5);\n }\n\n jumpTo(page: number) {\n if (page === this.currentPage) {\n return;\n }\n this.currentPageChange.emit(page);\n }\n\n navigate(step: number) {\n this.jumpTo(Math.min(Math.max(this.currentPage + step, 1), this.pageCount));\n }\n\n changePageSize(size: number) {\n if (size === this.pageSize) {\n return;\n }\n this.pageSizeChange.emit(size);\n }\n\n onKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n const inputEl = event.target as HTMLInputElement;\n const nextPage = parseInt(inputEl.value, 10);\n if (nextPage > 0 && nextPage <= this.pageCount) {\n this.jumpTo(nextPage);\n } else {\n inputEl.value = this.currentPage + '';\n }\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n trackByIndex(index: number) {\n return index;\n }\n}\n","<div [class]=\"bem.block()\">\n <div\n *ngFor=\"let layout of getLayoutArr()\"\n [class]=\"bem.element('layout')\"\n >\n <div\n *ngIf=\"layout === 'pager'\"\n [class]=\"bem.element('pager')\"\n >\n <button\n [ngClass]=\"bem.element('navigator')\"\n aui-button\n [disabled]=\"disabled || currentPage <= 1\"\n (click)=\"navigate(-1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n <button\n [ngClass]=\"bem.element('page')\"\n [aui-button]=\"currentPage === 1 ? 'primary' : 'default'\"\n [plain]=\"!(currentPage === 1)\"\n [disabled]=\"disabled\"\n (click)=\"jumpTo(1)\"\n >\n 1\n </button>\n <button\n *ngIf=\"pageCount > 7 && currentPage > 4\"\n [ngClass]=\"bem.element('fast-navigator')\"\n aui-button\n [disabled]=\"disabled\"\n (click)=\"navigate(-5)\"\n >\n <aui-icon icon=\"ellipsis_h_s\"></aui-icon>\n <aui-icon icon=\"angle_double_left\"></aui-icon>\n </button>\n <button\n *ngFor=\"let page of getCenterPages(); trackBy: trackByIndex\"\n [ngClass]=\"bem.element('page')\"\n [aui-button]=\"currentPage === page ? 'primary' : 'default'\"\n [plain]=\"!(currentPage === page)\"\n [disabled]=\"disabled\"\n (click)=\"jumpTo(page)\"\n >\n {{ page }}\n </button>\n <button\n *ngIf=\"pageCount > 7 && currentPage < pageCount - 3\"\n [ngClass]=\"bem.element('fast-navigator')\"\n aui-button\n [disabled]=\"disabled\"\n (click)=\"navigate(5)\"\n >\n <aui-icon icon=\"ellipsis_h_s\"></aui-icon>\n <aui-icon icon=\"angle_double_right\"></aui-icon>\n </button>\n <button\n *ngIf=\"pageCount > 1\"\n [ngClass]=\"bem.element('page')\"\n [aui-button]=\"currentPage === pageCount ? 'primary' : 'default'\"\n [plain]=\"!(currentPage === pageCount)\"\n [disabled]=\"disabled\"\n (click)=\"jumpTo(pageCount)\"\n >\n {{ pageCount }}\n </button>\n <button\n aui-button\n [ngClass]=\"bem.element('navigator')\"\n [disabled]=\"disabled || currentPage >= pageCount\"\n (click)=\"navigate(1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n </div>\n <div\n *ngIf=\"layout === 'total'\"\n [class]=\"bem.element('total')\"\n >\n {{ intl.getTotalLabel(total) }}\n </div>\n <div\n *ngIf=\"layout === 'sizes'\"\n [class]=\"bem.element('sizes')\"\n >\n <aui-select\n [disabled]=\"disabled\"\n [value]=\"pageSize\"\n [filterable]=\"false\"\n (valueChange)=\"changePageSize($event)\"\n >\n <aui-option\n *ngFor=\"let size of pageSizeOptions\"\n [value]=\"size\"\n >\n {{ size }}\n </aui-option>\n </aui-select>\n <span>{{ intl.itemsPerPageLabel }}</span>\n </div>\n <div\n *ngIf=\"layout === 'jumper'\"\n [class]=\"bem.element('jumper')\"\n >\n <span *ngIf=\"intl.jumperLabelPrefix\">{{ intl.jumperLabelPrefix }}</span>\n <input\n aui-input\n type=\"number\"\n min=\"1\"\n [max]=\"pageCount\"\n [value]=\"currentPage\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydown($event)\"\n />\n <span *ngIf=\"intl.jumperLabelSuffix\">{{ intl.jumperLabelSuffix }}</span>\n </div>\n <div\n *ngIf=\"layout === 'content'\"\n [class]=\"bem.element('content')\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import { TemplateRef } from '@angular/core';\n\nexport interface SelectOption {\n label: string | TemplateRef<unknown>;\n labelContext?: unknown;\n}\n\nexport interface SelectFilterOption<T> extends SelectOption {\n disabled?: boolean;\n value: T;\n}\n\nexport type OptionFilterFn<T> = (\n filter: string,\n option: SelectFilterOption<T>,\n) => boolean;\n\nexport type TrackFn<T, R = unknown> = (value: T) => R;\n\nexport type TagClassFn<\n V,\n T extends string | TemplateRef<unknown> = string | TemplateRef<unknown>,\n> = (\n label: T,\n value: V,\n) => string | string[] | Set<string> | { [className: string]: unknown };\n\nexport enum SelectAllStatus {\n Empty = '',\n Checked = 'checked',\n Indeterminate = 'indeterminate',\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n QueryList,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n Observable,\n combineLatest,\n of,\n map,\n startWith,\n switchMap,\n tap,\n} from 'rxjs';\n\nimport { createWithMaxRowCount } from '../../input/tags-input/with-max-row-count';\nimport { ComponentSize } from '../../types';\nimport {\n Bem,\n buildBem,\n coerceAttrBoolean,\n coerceString,\n publishRef,\n} from '../../utils';\nimport { BaseSelect } from '../base-select';\nimport { OptionComponent } from '../option/option.component';\nimport {\n SelectAllStatus,\n SelectFilterOption,\n TagClassFn,\n} from '../select.types';\n\n@Component({\n selector: 'aui-multi-select',\n templateUrl: './multi-select.component.html',\n styleUrls: [\n '../../input/input.component.scss',\n '../../tag/tag.component.scss',\n './multi-select.component.scss',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectComponent),\n multi: true,\n },\n {\n provide: BaseSelect,\n useExisting: MultiSelectComponent,\n },\n ],\n})\nexport class MultiSelectComponent<T = unknown>\n extends BaseSelect<T, T[]>\n implements AfterContentInit, AfterViewInit\n{\n bem: Bem = buildBem('aui-multi-select');\n bemSelectAll: Bem = buildBem('aui-option');\n selectedOptions$: Observable<Array<SelectFilterOption<T>>>;\n selectAllStatus$: Observable<SelectAllStatus>;\n selectAllStatus: SelectAllStatus;\n hasEnabledOptions$: Observable<boolean>;\n\n private _allowSelectAll = false;\n override isMulti = true;\n override model: T[] = [];\n\n values$ = this.model$;\n\n @Input()\n tagClassFn: TagClassFn<T>;\n\n @Input()\n maxRowCount = 0;\n\n @Input()\n customRowHeight = 0; // 0: use default style const value, > 1: for ```tagClassFn``` maybe affect lineHeight\n\n @Input()\n get allowSelectAll() {\n return this._allowSelectAll;\n }\n\n set allowSelectAll(val: boolean | '') {\n this._allowSelectAll = coerceAttrBoolean(val);\n }\n\n @ViewChild('inputRef', { static: true })\n inputRef: ElementRef<HTMLInputElement>;\n\n @ViewChild('inputValueMirror', { static: true })\n inputValueMirror: ElementRef<HTMLElement>;\n\n @HostBinding('style.position')\n get hostPosition() {\n return this.withMaxRowCount.hostPosition();\n }\n\n @HostBinding('style.display')\n get hostDisplay() {\n return this.withMaxRowCount.hostDisplay();\n }\n\n inputValue = '';\n hasDisabledOption = false;\n\n get rootClass() {\n const size = this.size || ComponentSize.Medium;\n return `aui-input ${this.bem.block(size)} ${\n this.disabled ? 'isDisabled' : ''\n } ${this.focused ? 'isFocused' : ''} ${\n this.displayClearBtn ? 'isClearable' : ''\n } ${this.maxRowCount > 0 ? 'withHeightLimit' : ''}`;\n }\n\n get tagSize() {\n return this.size === ComponentSize.Large\n ? ComponentSize.Medium\n : ComponentSize.Mini;\n }\n\n get inputClass() {\n return `${this.bem.element('input', {\n hidden: this.inputReadonly,\n })} aui-tag aui-tag--${this.tagSize}`;\n }\n\n get displayClearBtn() {\n return !this.disabled && this.clearable && this.model.length;\n }\n\n get maxHeight() {\n return this.withMaxRowCount.maxHeight();\n }\n\n private readonly withMaxRowCount = createWithMaxRowCount(this);\n\n focused = false;\n\n trackByValue = (_: number, item: SelectFilterOption<T>) =>\n this.trackFn(item.value);\n\n constructor(cdr: ChangeDetectorRef, private readonly renderer: Renderer2) {\n super(cdr);\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n\n this.selectedOptions$ = combineLatest([\n this.model$,\n (\n this.contentOptions.changes as Observable<QueryList<OptionComponent<T>>>\n ).pipe(\n startWith(this.contentOptions),\n switchMap((options: QueryList<OptionComponent<T>>) =>\n options.length > 0\n ? combineLatest(\n options.map(option =>\n combineLatest([\n option.value$,\n option.label$,\n option.labelContext$,\n option.disabled$,\n ]).pipe(\n map(([value, label, labelContext, disabled]) => ({\n value,\n label,\n labelContext,\n disabled,\n })),\n ),\n ),\n )\n : of([] as Array<SelectFilterOption<T>>),\n ),\n ),\n ]).pipe(\n map(([values, options]) =>\n values\n .map(value => {\n const option = options.find(\n option => this.trackFn(option.value) === this.trackFn(value),\n );\n return option\n ? {\n label:\n option.label || coerceString(this.trackFn(option.value)),\n labelContext: option.labelContext,\n value: option.value,\n disabled: option.disabled,\n }\n : {\n label:\n this.labelFn?.(value) || coerceString(this.trackFn(value)),\n value,\n };\n })\n // sort disabled options as first\n .sort((a, b) => {\n if (a.disabled) {\n return -1;\n }\n\n if (b.disabled) {\n return 1;\n }\n\n return 0;\n }),\n ),\n tap(options => (this.hasDisabledOption = options.some(o => o.disabled))),\n publishRef(),\n );\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n this.selectAllStatus$ = combineLatest([\n this.allOptions$,\n this.filterString$,\n ]).pipe(\n switchMap(([allOptions]) =>\n combineLatest([\n ...(allOptions ?? [])\n .filter(({ visible, disabled }) => visible && !disabled)\n .map(({ selected$ }) => selected$),\n ]),\n ),\n map(statuses => {\n const selected = statuses.filter(Boolean);\n return selected.length === 0\n ? SelectAllStatus.Empty\n : selected.length !== statuses.length\n ? SelectAllStatus.Indeterminate\n : SelectAllStatus.Checked;\n }),\n startWith(SelectAllStatus.Empty),\n tap(selectAllStatus => (this.selectAllStatus = selectAllStatus)),\n publishRef(),\n );\n this.hasEnabledOptions$ = combineLatest([\n this.allOptions$,\n this.filterString$,\n ]).pipe(\n map(\n ([allOptions]) =>\n !!allOptions.filter(({ visible, disabled }) => visible && !disabled)\n .length,\n ),\n );\n }\n\n override onShowOptions() {\n super.onShowOptions();\n this.inputRef.nativeElement.focus();\n }\n\n override onHideOptions() {\n super.onHideOptions();\n this.inputRef.nativeElement.value = '';\n this.renderer.removeStyle(this.inputRef.nativeElement, 'width');\n }\n\n override onInput(event: Event) {\n super.onInput(event);\n this.setInputWidth();\n this.tooltipRef.updatePosition();\n }\n\n onInputFocus() {\n this.focused = true;\n }\n\n onInputBlur() {\n this.focused = false;\n this.closeOption();\n }\n\n override onKeyDown(event: KeyboardEvent) {\n if (\n event.key === 'Backspace' &&\n this.filterString === '' &&\n this.model.length > 0 &&\n !this.hasDisabledOption // Disabled backspace when any of select options have disabled state.\n ) {\n this.removeValue(this.model[this.model.length - 1]);\n event.stopPropagation();\n event.preventDefault();\n } else if (event.key === 'Enter') {\n if (\n this.model\n .map(value => this.trackFn(value))\n .includes((event.target as HTMLInputElement).value)\n ) {\n return;\n }\n this.selectFocusedOption();\n event.stopPropagation();\n event.preventDefault();\n } else {\n super.onKeyDown(event);\n }\n }\n\n selectOption(option: OptionComponent<T>) {\n if (option.selected) {\n this.removeValue(option.value);\n } else {\n this.addValue(option.value);\n }\n const isCustom = !this.contentOptions.some(\n ({ value }) => value === option.value,\n );\n if (isCustom) {\n this.resetFocusedOption();\n }\n }\n\n addValue(value: T) {\n const values = this.model.concat(value);\n this.emitValue(values);\n if (this.onChange) {\n this.resetInput();\n requestAnimationFrame(() => {\n this.tooltipRef.updatePosition();\n });\n }\n }\n\n removeValue(value: T) {\n const values = this.model.filter(\n item => this.trackFn(item) !== this.trackFn(value),\n );\n this.emitValue(values);\n if (this.onChange) {\n this.resetInput();\n requestAnimationFrame(() => {\n this.tooltipRef.updatePosition();\n });\n }\n }\n\n clearValue(event: Event) {\n this.emitValue([]);\n event.stopPropagation();\n event.preventDefault();\n }\n\n onSelectAllClick() {\n if (this.disabled) {\n return;\n }\n const visibleOptionsValue = this.allOptions\n .filter(({ visible, disabled }) => visible && !disabled)\n .map(({ value }) => value);\n\n if (this.selectAllStatus === SelectAllStatus.Checked) {\n this.emitValue(\n this.model.filter(value => !this.includes(visibleOptionsValue, value)),\n );\n } else {\n this.emitValue(\n this.model.concat(visibleOptionsValue).reduce<T[]>((acc, curr) => {\n if (!this.includes(acc, curr)) {\n acc.push(curr);\n }\n return acc;\n }, []),\n );\n }\n }\n\n private includes(values: T[], value: T) {\n return values.some(v => this.trackFn(v) === this.trackFn(value));\n }\n\n protected override valueIn(v: T[]): T[] {\n this.resetInput();\n requestAnimationFrame(() => {\n this.tooltipRef.updatePosition();\n });\n return v || [];\n }\n\n private resetInput() {\n this.inputRef.nativeElement.value = '';\n this.setInputWidth();\n this.filterString = '';\n }\n\n // calculate input element width according to its value\n private setInputWidth() {\n const { value } = this.inputRef.nativeElement;\n if (!value.length) {\n this.inputValue = '';\n requestAnimationFrame(() => {\n this.renderer.removeStyle(this.inputRef.nativeElement, 'width');\n });\n } else {\n this.inputValue = value;\n requestAnimationFrame(() => {\n this.renderer.setStyle(\n this.inputRef.nativeElement,\n 'width',\n `${this.inputValueMirror.nativeElement.scrollWidth}px`,\n );\n });\n }\n }\n}\n","<div\n [class]=\"rootClass\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipShow)=\"onShowOptions()\"\n (auiTooltipHide)=\"onHideOptions()\"\n (mousedown)=\"$event.preventDefault()\"\n [style.max-height]=\"maxHeight\"\n>\n <div class=\"aui-multi-select__suffix\">\n <span class=\"aui-multi-select__icon-container\">\n <aui-icon\n class=\"aui-multi-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-multi-select__clear\"\n icon=\"close_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </div>\n <span\n [hidden]=\"model.length || inputRef.value.length\"\n [class]=\"bem.element('placeholder')\"\n >\n {{ placeholder }}\n </span>\n <aui-tag\n *ngFor=\"let option of selectedOptions$ | async; trackBy: trackByValue\"\n type=\"info\"\n [round]=\"true\"\n [border]=\"true\"\n [size]=\"tagSize\"\n [closeable]=\"!disabled && !option.disabled\"\n (close)=\"removeValue(option.value)\"\n [ngClass]=\"tagClassFn && tagClassFn(option.label, option.value)\"\n >\n <ng-container\n *ngIf=\"isTemplateRef(option.label); else label\"\n [ngTemplateOutlet]=\"option.label\"\n [ngTemplateOutletContext]=\"option.labelContext\"\n ></ng-container>\n <ng-template #label>\n {{ option.label }}\n </ng-template>\n </aui-tag>\n <input\n #inputRef\n autocomplete=\"off\"\n [readonly]=\"inputReadonly\"\n [class]=\"inputClass\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur()\"\n (keydown)=\"onKeyDown($event)\"\n (input)=\"onInput($event)\"\n />\n <span\n #inputValueMirror\n [class]=\"bem.element('mirror')\"\n >\n {{ inputValue }}\n </span>\n</div>\n\n<ng-template #templateRef>\n <div\n class=\"aui-option-container\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <ng-container\n *ngIf=\"\n allowSelectAll &&\n (hasEnabledOptions$ | async) &&\n ((hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString))\n \"\n >\n <div\n class=\"aui-option\"\n [class]=\"bemSelectAll.block(size$ | async)\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"!!(selectAllStatus$ | async)\"\n [class.isMulti]=\"true\"\n (click)=\"onSelectAllClick()\"\n >\n <i class=\"aui-option__pointer\">\n <aui-icon\n [icon]=\"\n (selectAllStatus$ | async) === 'checked'\n ? 'check_s'\n : 'square_s'\n \"\n [hidden]=\"!(selectAllStatus$ | async)\"\n ></aui-icon>\n </i>\n {{ 'select_all' | auiI18n }}\n </div>\n <hr class=\"divider\" />\n </ng-container>\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n QueryList,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { Observable, combineLatest, of, map, startWith, switchMap } from 'rxjs';\n\nimport { publishRef } from '../../utils';\nimport { OptionComponent } from '../option/option.component';\n\n@Component({\n selector: 'aui-option-group',\n templateUrl: './option-group.component.html',\n styleUrls: ['./option-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class OptionGroupComponent<T> implements AfterContentInit {\n @ContentChildren(forwardRef(() => OptionComponent))\n options: QueryList<OptionComponent<T>>;\n\n hasVisibleOption$: Observable<boolean>;\n\n ngAfterContentInit() {\n this.hasVisibleOption$ = this.options.changes.pipe(\n startWith(this.options),\n switchMap((options: QueryList<OptionComponent<T>>) =>\n options.length > 0\n ? combineLatest(options.map(node => node.visible$))\n : of([false]),\n ),\n map(visible => visible.some(Boolean)),\n publishRef(),\n );\n }\n}\n","<div\n [hidden]=\"!(hasVisibleOption$ | async)\"\n class=\"aui-option-group\"\n>\n <ng-content select=\"[auiOptionGroupTitle]\"></ng-content>\n <div class=\"aui-option-group__content\"><ng-content></ng-content></div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-option-placeholder',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class OptionPlaceholderComponent {}\n","import { AfterContentInit, Directive, Input, forwardRef } from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n ValidatorFn,\n} from '@angular/forms';\n\nimport { coerceAttrBoolean } from '../utils';\n\nimport { SelectComponent } from './select.component';\nimport { TrackFn } from './select.types';\n\n// @dynamic\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class AuiSelectValidators {\n static includes<T>(\n options: T[],\n trackFn: TrackFn<T> = val => val,\n ): ValidatorFn {\n return (control: AbstractControl) =>\n options.some(option => trackFn(option) === trackFn(control.value))\n ? null\n : {\n includes: control.value,\n };\n }\n}\n\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'aui-select[ngModel][includes],aui-select[formControl][includes],aui-select[formControlName][includes]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => IncludesDirective),\n multi: true,\n },\n ],\n})\nexport class IncludesDirective<T> implements Validator, AfterContentInit {\n @Input()\n get includes() {\n return this._includes;\n }\n\n set includes(val: boolean | '') {\n this._includes = coerceAttrBoolean(val);\n if (this.onValidatorChange) {\n this.onValidatorChange();\n }\n }\n\n @Input()\n trackFn: TrackFn<T>;\n\n private _includes = false;\n\n onValidatorChange: () => void;\n\n constructor(private readonly selectRef: SelectComponent<T>) {}\n\n ngAfterContentInit() {\n this.selectRef.contentOptions.changes.subscribe(() => {\n if (this.onValidatorChange) {\n this.onValidatorChange();\n }\n });\n }\n\n registerOnValidatorChange(fn: () => void) {\n this.onValidatorChange = fn;\n }\n\n validate(control: AbstractControl): ValidationErrors {\n if (!this.selectRef.contentOptions || !control.value) {\n return;\n }\n return !this.includes\n ? null\n : AuiSelectValidators.includes(\n this.selectRef.contentOptions\n .filter(option => !option.disabled)\n .map(option => option.value),\n this.trackFn,\n )(control);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { I18nModule } from '../i18n';\nimport { IconModule } from '../icon';\nimport { InputModule } from '../input';\nimport { TagModule } from '../tag';\nimport { TooltipModule } from '../tooltip';\n\nimport {\n OptionContentDirective,\n OptionGroupTitleDirective,\n} from './helper-directives';\nimport { MultiSelectComponent } from './multi-select/multi-select.component';\nimport { OptionGroupComponent } from './option-group/option-group.component';\nimport { OptionPlaceholderComponent } from './option-placeholder.component';\nimport { OptionComponent } from './option/option.component';\nimport { SelectComponent } from './select.component';\nimport { IncludesDirective } from './validators';\n\n@NgModule({\n imports: [\n CommonModule,\n InputModule,\n I18nModule,\n IconModule,\n TooltipModule,\n TagModule,\n ],\n declarations: [\n SelectComponent,\n OptionComponent,\n OptionGroupComponent,\n OptionPlaceholderComponent,\n MultiSelectComponent,\n IncludesDirective,\n OptionGroupTitleDirective,\n OptionContentDirective,\n ],\n exports: [\n SelectComponent,\n OptionComponent,\n OptionGroupComponent,\n OptionPlaceholderComponent,\n MultiSelectComponent,\n IncludesDirective,\n OptionGroupTitleDirective,\n OptionContentDirective,\n ],\n})\nexport class SelectModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonModule } from '../button';\nimport { IconModule } from '../icon';\nimport { InputModule } from '../input';\nimport { SelectModule } from '../select';\n\nimport { PAGINATOR_INTL_PROVIDER } from './paginator-intl';\nimport { PaginatorComponent } from './paginator.component';\n\n@NgModule({\n imports: [CommonModule, ButtonModule, IconModule, SelectModule, InputModule],\n declarations: [PaginatorComponent],\n exports: [PaginatorComponent],\n providers: [PAGINATOR_INTL_PROVIDER],\n})\nexport class PaginatorModule {}\n","import { ValueOf } from '../types';\n\nexport const RadioSize = {\n Medium: 'medium',\n Small: 'small',\n Mini: 'mini',\n} as const;\n\nexport type RadioSize = ValueOf<typeof RadioSize>;\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, Observable, distinctUntilChanged } from 'rxjs';\n\nimport { CommonFormControl } from '../../form';\nimport { RadioSize } from '../radio.types';\n\n@Component({\n selector: 'aui-radio-group',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n})\nexport class RadioGroupComponent extends CommonFormControl<any> {\n private readonly size$$ = new BehaviorSubject<RadioSize>(RadioSize.Medium);\n private readonly isPlain$$ = new BehaviorSubject<boolean>(true);\n private readonly name$$ = new BehaviorSubject<string>('');\n\n @Input()\n set size(val: RadioSize) {\n this.size$$.next(val);\n }\n\n @Input()\n direction: 'row' | 'column' = 'row';\n\n /**\n * @deprecated use `plain` instead\n */\n @Input()\n set isPlain(val: boolean) {\n this.plain = val;\n }\n\n @Input()\n set plain(val: boolean) {\n this.isPlain$$.next(val);\n }\n\n @Input()\n set name(val: string) {\n this.name$$.next(val);\n }\n\n size$: Observable<RadioSize> = this.size$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n isPlain$: Observable<boolean> = this.isPlain$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n name$: Observable<string> = this.name$$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n onRadioChange(value: any) {\n this.emitValue(value);\n }\n\n onRadioBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n}\n","<div class=\"aui-radio-group aui-radio-group--{{ direction }}\">\n <ng-content></ng-content>\n</div>\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { BehaviorSubject, Subject, combineLatest, map, takeUntil } from 'rxjs';\n\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\n\nlet uniqueId = 0;\n\n@Directive()\nexport class BaseRadio implements OnInit, AfterViewInit, OnDestroy {\n id = `aui-radio-${uniqueId++}`;\n\n @Input()\n disabled: boolean | '' = false;\n\n @Input()\n get value() {\n return this._value;\n }\n\n set value(val) {\n this._value = val;\n this.value$$.next(val);\n }\n\n @ViewChild('elRef', { static: true })\n elRef: ElementRef;\n\n checked = false;\n name = '';\n\n protected _value: unknown;\n protected readonly value$$ = new BehaviorSubject(this.value);\n protected destroy$$ = new Subject<void>();\n\n constructor(\n protected radioGroup: RadioGroupComponent,\n protected focusMonitor: FocusMonitor,\n protected cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.radioGroup.name$.pipe(takeUntil(this.destroy$$)).subscribe(name => {\n this.name = name;\n this.cdr.markForCheck();\n });\n\n combineLatest([this.radioGroup.model$, this.value$$])\n .pipe(\n takeUntil(this.destroy$$),\n map(([groupValue, selfValue]) => groupValue === selfValue),\n )\n .subscribe(checked => {\n this.checked = checked;\n this.cdr.markForCheck();\n });\n }\n\n ngAfterViewInit() {\n this.focusMonitor.monitor(this.elRef.nativeElement, true);\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.focusMonitor.stopMonitoring(this.elRef.nativeElement);\n }\n\n onClick() {\n if (this.checked || this.disabled) {\n return;\n }\n this.radioGroup.onRadioChange(this.value);\n }\n\n onBlur() {\n this.radioGroup.onRadioBlur();\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { BaseRadio } from './base-radio';\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\n\n@Component({\n selector: 'aui-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class RadioComponent extends BaseRadio {\n bem: Bem = buildBem('aui-radio');\n\n get rootClass() {\n return `${this.bem.block()} ${this.disabled ? 'isDisabled' : ''} ${\n this.checked ? 'isChecked' : ''\n }`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n radioGroup: RadioGroupComponent,\n focusMonitor: FocusMonitor,\n cdr: ChangeDetectorRef,\n ) {\n super(radioGroup, focusMonitor, cdr);\n }\n}\n","<div\n #elRef\n [ngClass]=\"rootClass\"\n>\n <input\n [name]=\"name\"\n [id]=\"id\"\n class=\"aui-radio__input\"\n type=\"radio\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (click)=\"onClick()\"\n (blur)=\"onBlur()\"\n />\n <label\n class=\"aui-radio__label\"\n [for]=\"id\"\n >\n <i class=\"aui-radio__pointer\"></i>\n <span class=\"aui-radio__content\"><ng-content></ng-content></span>\n </label>\n</div>\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntil } from 'rxjs';\n\nimport { Bem, buildBem } from '../../utils';\nimport { BaseRadio } from '../base-radio';\nimport { RadioGroupComponent } from '../radio-group/radio-group.component';\nimport { RadioSize } from '../radio.types';\n\n@Component({\n selector: 'aui-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class RadioButtonComponent extends BaseRadio implements OnInit {\n bem: Bem = buildBem('aui-radio-button');\n\n size: RadioSize = RadioSize.Medium;\n isPlain = true;\n\n get rootClass() {\n return `${this.bem.block(this.size)} ${this.disabled ? 'isDisabled' : ''} ${\n this.checked ? 'isChecked' : ''\n } ${this.isPlain ? 'isPlain' : ''}`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n radioGroup: RadioGroupComponent,\n focusMonitor: FocusMonitor,\n cdr: ChangeDetectorRef,\n ) {\n super(radioGroup, focusMonitor, cdr);\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this.radioGroup.size$.pipe(takeUntil(this.destroy$$)).subscribe(size => {\n this.size = size;\n this.cdr.markForCheck();\n });\n this.radioGroup.isPlain$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(isPlain => {\n this.isPlain = isPlain;\n this.cdr.markForCheck();\n });\n }\n}\n","<div\n #elRef\n [ngClass]=\"rootClass\"\n>\n <input\n [name]=\"name\"\n [id]=\"id\"\n class=\"aui-radio-button__input\"\n type=\"radio\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (click)=\"onClick()\"\n (blur)=\"onBlur()\"\n />\n <aui-icon\n *ngIf=\"checked && isPlain\"\n class=\"aui-radio-button__pointer\"\n icon=\"check_triangle_s\"\n ></aui-icon>\n <label\n class=\"aui-radio-button__label\"\n [for]=\"id\"\n >\n <span class=\"aui-radio-button__content\"><ng-content></ng-content></span>\n </label>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\nimport { RadioComponent } from './radio.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [RadioComponent, RadioGroupComponent, RadioButtonComponent],\n exports: [RadioComponent, RadioGroupComponent, RadioButtonComponent],\n})\nexport class RadioModule {}\n","import { RowOutlet } from '@angular/cdk/table';\nimport {\n Directive,\n ElementRef,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\n@Directive({\n selector: 'ng-template[auiTablePlaceholderDef]',\n})\nexport class TablePlaceholderDefDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n\n@Directive({\n selector: '[auiTablePlaceholderOutlet]',\n})\nexport class TablePlaceholderOutletDirective implements RowOutlet {\n constructor(\n public viewContainer: ViewContainerRef,\n public elementRef: ElementRef,\n ) {}\n}\n","import {\n _DisposeViewRepeaterStrategy,\n _VIEW_REPEATER_STRATEGY,\n} from '@angular/cdk/collections';\nimport {\n CDK_TABLE,\n CDK_TABLE_TEMPLATE,\n CdkTable,\n _COALESCED_STYLE_SCHEDULER,\n _CoalescedStyleScheduler,\n} from '@angular/cdk/table';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n TablePlaceholderDefDirective,\n TablePlaceholderOutletDirective,\n} from './table-placeholder.directive';\n\n@Component({\n selector: 'aui-table',\n exportAs: 'auiTable',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['table.component.scss', 'table-scroll.scss'],\n template:\n CDK_TABLE_TEMPLATE +\n '<ng-container auiTablePlaceholderOutlet></ng-container>',\n host: {\n class: 'aui-table',\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: CDK_TABLE,\n useExisting: TableComponent,\n },\n {\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _DisposeViewRepeaterStrategy,\n },\n {\n provide: _COALESCED_STYLE_SCHEDULER,\n useClass: _CoalescedStyleScheduler,\n },\n ],\n})\nexport class TableComponent<T>\n extends CdkTable<T>\n implements AfterContentInit, OnDestroy\n{\n @Input()\n enableScrollWrapper: boolean;\n\n @ViewChild(TablePlaceholderOutletDirective, { static: true })\n _placeholderOutlet: TablePlaceholderOutletDirective;\n\n @ContentChild(TablePlaceholderDefDirective, { static: true })\n _placeholderDef: TablePlaceholderDefDirective;\n\n // FIXME: workaround to override because it will break constructor if it is field, but why MatTable works?\n // @ts-ignore\n protected get stickyCssClass() {\n return 'aui-table-sticky';\n }\n\n protected override set stickyCssClass(_: string) {\n // nothing\n }\n\n ngAfterContentInit() {\n this._createPlaceholder();\n }\n\n private _createPlaceholder() {\n const footerRow = this._placeholderDef;\n if (!this._placeholderDef) {\n return;\n }\n\n const container = this._placeholderOutlet.viewContainer;\n container.createEmbeddedView(footerRow.templateRef);\n }\n\n private _clearPlaceholder() {\n this._placeholderOutlet.viewContainer.clear();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this._clearPlaceholder();\n }\n}\n","import { CdkCellDef } from '@angular/cdk/table';\nimport { Directive } from '@angular/core';\n\n/**\n * Cell definition for the aui-table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\n@Directive({\n selector: '[auiTableCellDef]',\n providers: [\n {\n provide: CdkCellDef,\n useExisting: TableCellDefDirective,\n },\n ],\n})\nexport class TableCellDefDirective extends CdkCellDef {}\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { CdkCell } from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-table-cell[auiExpandButton]',\n template: `\n <button\n type=\"button\"\n class=\"aui-expand-button\"\n [class.isExpanded]=\"expand\"\n [disabled]=\"disabled\"\n (click)=\"expandChange.next(null)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class TableExpandButtonCellComponent extends CdkCell {\n @Input()\n expand = false;\n\n @Input()\n disabled = false;\n\n @Output()\n expandChange = new EventEmitter();\n\n get expanded() {\n return this.expand ? 'expanded' : null;\n }\n}\n@Component({\n selector: 'aui-table-cell[auiExpandPanel]',\n template: `\n <div\n *ngIf=\"expand\"\n class=\"aui-table__cell-expand-panel\"\n [@expand]=\"expanded\"\n >\n <div\n class=\"aui-table__cell-expand-panel-content\"\n [class.hasBackground]=\"background\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n animations: [\n trigger('expand', [\n state('*', style({ height: 0 })),\n state('expanded', style({ height: '*', 'margin-bottom': '15px' })),\n transition('* <=> expanded', [animate('0.1s ease-in-out')]),\n ]),\n ],\n})\nexport class TableExpandPanelCellComponent extends CdkCell {\n @Input()\n expand = false;\n\n @Input()\n background = true;\n\n get expanded() {\n return this.expand ? 'expanded' : null;\n }\n}\n","import { CdkCell, CdkColumnDef } from '@angular/cdk/table';\nimport { Directive, ElementRef, Input } from '@angular/core';\n\nimport { buildBem } from '../utils';\n\nconst bem = buildBem('aui-table');\n\n/** Cell template container that adds the right classes and role. */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'aui-table-cell',\n host: {\n class: 'aui-table__cell',\n role: 'gridcell',\n '[class.aui-table__cell--column]': 'direction === \"column\"',\n },\n})\nexport class TableCellDirective extends CdkCell {\n @Input()\n direction: 'row' | 'column' = 'row';\n\n constructor(columnDef: CdkColumnDef, elementRef: ElementRef<HTMLElement>) {\n super(columnDef, elementRef);\n elementRef.nativeElement.classList.add(\n bem.element(`column-${columnDef.cssClassFriendlyName}`),\n );\n }\n}\n","import { CdkColumnDef } from '@angular/cdk/table';\nimport { Directive, Input } from '@angular/core';\n\n/**\n * Column definition for the aui-table.\n * Defines a set of cells available for a table column.\n */\n@Directive({\n selector: '[auiTableColumnDef]',\n providers: [\n {\n provide: CdkColumnDef,\n useExisting: TableColumnDefDirective,\n },\n ],\n inputs: ['sticky'],\n})\nexport class TableColumnDefDirective extends CdkColumnDef {\n // Unique name for this column\n // Why it does not work in `inputs` property?\n @Input()\n set auiTableColumnDef(value: string) {\n this.name = value;\n }\n}\n","import { CdkHeaderCellDef } from '@angular/cdk/table';\nimport { Directive } from '@angular/core';\n\n/**\n * Header cell definition for the aui-table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\n@Directive({\n selector: '[auiTableHeaderCellDef]',\n providers: [\n {\n provide: CdkHeaderCellDef,\n useExisting: TableHeaderCellDefDirective,\n },\n ],\n})\nexport class TableHeaderCellDefDirective extends CdkHeaderCellDef {}\n","import { CdkColumnDef, CdkHeaderCell } from '@angular/cdk/table';\nimport { Directive, ElementRef } from '@angular/core';\n\nimport { buildBem } from '../utils';\n\nconst bem = buildBem('aui-table');\n\n/** Header cell template container that adds the right classes and role. */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'aui-table-header-cell',\n host: {\n class: 'aui-table__header-cell',\n role: 'columnheader',\n },\n})\nexport class TableHeaderCellDirective extends CdkHeaderCell {\n constructor(columnDef: CdkColumnDef, elementRef: ElementRef<HTMLElement>) {\n super(columnDef, elementRef);\n elementRef.nativeElement.classList.add(\n bem.element(`column-${columnDef.cssClassFriendlyName}`),\n );\n }\n}\n","import { CdkHeaderRowDef } from '@angular/cdk/table';\nimport { Directive, Input } from '@angular/core';\n\n/**\n * Header row definition for the aui-table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\n@Directive({\n selector: '[auiTableHeaderRowDef]',\n providers: [\n {\n provide: CdkHeaderRowDef,\n useExisting: TableHeaderRowDefDirective,\n },\n ],\n})\nexport class TableHeaderRowDefDirective extends CdkHeaderRowDef {\n @Input('auiTableHeaderRowDef')\n override columns: Iterable<string> = [];\n\n @Input('auiTableHeaderRowDefSticky')\n override sticky: boolean;\n}\n","import { CDK_ROW_TEMPLATE, CdkHeaderRow } from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n/** Header template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'aui-table-header-row',\n template: CDK_ROW_TEMPLATE,\n host: {\n class: 'aui-table__header-row',\n role: 'row',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'auiTableHeaderRow',\n preserveWhitespaces: false,\n})\nexport class TableHeaderRowComponent extends CdkHeaderRow {}\n","import { CdkRowDef } from '@angular/cdk/table';\nimport { Directive, Input } from '@angular/core';\n\n/**\n * Data row definition for the aui-table.\n * Captures the header row's template and other row properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\n@Directive({\n selector: '[auiTableRowDef]',\n providers: [\n {\n provide: CdkRowDef,\n useExisting: TableRowDefDirective,\n },\n ],\n})\nexport class TableRowDefDirective<T> extends CdkRowDef<T> {\n @Input('auiTableRowDefColumns')\n override columns: Iterable<string> = [];\n\n @Input()\n set auiTableRowDefWhen(v: (index: number, rowData: T) => boolean) {\n this.when = v;\n }\n}\n","import { CDK_ROW_TEMPLATE, CdkRow } from '@angular/cdk/table';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'aui-table-row',\n template: CDK_ROW_TEMPLATE,\n host: {\n class: 'aui-table__row',\n role: 'row',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'auiTableRow',\n preserveWhitespaces: false,\n})\nexport class TableRowComponent extends CdkRow implements AfterContentInit {\n @Input()\n @HostBinding('class.isDisabled')\n disabled = false;\n\n @HostBinding('class.hasPanel')\n hasPanel = false;\n\n constructor(private readonly elRef: ElementRef<HTMLElement>) {\n super();\n }\n\n ngAfterContentInit() {\n const panel = this.elRef.nativeElement.querySelector(\n 'aui-table-cell[auiExpandPanel]',\n );\n this.hasPanel = !!panel;\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { CdkScrollable, ScrollDispatcher } from '@angular/cdk/scrolling';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n Host,\n HostBinding,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport {\n Subject,\n fromEvent,\n merge,\n startWith,\n takeUntil,\n switchMap,\n NEVER,\n BehaviorSubject,\n} from 'rxjs';\n\nimport { coerceAttrBoolean, observeResizeOn } from '../utils';\n\nimport { TableComponent } from './table.component';\n\nconst CLASS_PREFIX = 'aui-table';\nconst SHADOW_CLASS = `${CLASS_PREFIX}__scroll-shadow`;\nconst HAS_SCROLL_CLASS = `${SHADOW_CLASS}--has-scroll`;\nconst SCROLLING_CLASS = `${SHADOW_CLASS}--scrolling`;\nconst SCROLL_BEFORE_END_CLASS = `${SHADOW_CLASS}--before-end`;\n\nconst HAS_TABLE_TOP_SHADOW = 'hasTableTopShadow';\nconst HAS_TABLE_BOTTOM_SHADOW = 'hasTableBottomShadow';\nconst HAS_TABLE_VERTICAL_SCROLL = 'hasTableVerticalScroll';\n\n@Directive({\n selector: '[auiTableScrollWrapper]',\n host: {\n class: 'aui-table__scroll-wrapper',\n },\n})\nexport class TableScrollWrapperDirective {\n @HostBinding('style.max-height')\n @Input()\n auiTableScrollWrapper = '100%';\n}\n\n@Directive({\n selector: '[auiTableScrollable]',\n providers: [\n { provide: CdkScrollable, useExisting: TableScrollableDirective },\n ],\n})\nexport class TableScrollableDirective\n extends CdkScrollable\n implements AfterViewInit, OnInit, OnDestroy\n{\n @Input('auiTableScrollable')\n set scrollable(scrollable: boolean | '') {\n this._scrollable = coerceAttrBoolean(scrollable);\n this.scrollable$$.next(this._scrollable);\n }\n\n get scrollable() {\n return this._scrollable;\n }\n\n private _scrollable = true;\n\n scrollable$$ = new BehaviorSubject<boolean>(this._scrollable);\n destroy$$ = new Subject<void>();\n\n constructor(\n private readonly el: ElementRef<HTMLElement>,\n scrollDispatcher: ScrollDispatcher,\n ngZone: NgZone,\n @Host() private readonly table: TableComponent<unknown>,\n @Optional() dir?: Directionality,\n ) {\n super(el, scrollDispatcher, ngZone, dir);\n }\n\n @HostBinding(`class.${SCROLL_BEFORE_END_CLASS}`)\n SCROLL_BEFORE_END_CLASS = true;\n\n @HostBinding(`class.${SHADOW_CLASS}`)\n SHADOW_CLASS = true;\n\n get containerEl() {\n return this.el.nativeElement;\n }\n\n override ngOnInit() {\n if (this.scrollable) {\n this.scrollDispatcher.register(this);\n }\n }\n\n ngAfterViewInit() {\n this.viewMutation();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n\n viewMutation() {\n this.scrollable$$\n .pipe(\n switchMap(scrollable => {\n if (scrollable) {\n this.scrollDispatcher.register(this);\n return merge(\n observeResizeOn(this.containerEl),\n fromEvent(this.containerEl, 'scroll'),\n ).pipe(startWith(null));\n }\n\n this.scrollDispatcher.deregister(this);\n return NEVER;\n }),\n )\n .pipe(takeUntil(this.destroy$$))\n .subscribe(() => {\n this.mutateVerticalScroll();\n this.mutateHorizontalScroll();\n });\n }\n\n mutateVerticalScroll() {\n const scrollDis =\n this.containerEl.scrollHeight - this.containerEl.offsetHeight;\n\n this.placeClassList(\n this.containerEl.classList,\n scrollDis > 0,\n HAS_TABLE_VERTICAL_SCROLL,\n );\n\n const scrollTop = this.containerEl.scrollTop;\n this.placeClassList(\n this.containerEl.classList,\n scrollTop > 0,\n HAS_TABLE_TOP_SHADOW,\n );\n this.placeClassList(\n this.containerEl.classList,\n scrollTop < scrollDis,\n HAS_TABLE_BOTTOM_SHADOW,\n );\n\n // 兼容屏幕缩放是 sticky多列的样式问题\n this.table.updateStickyColumnStyles();\n }\n\n mutateHorizontalScroll() {\n const scrollDis =\n this.containerEl.scrollWidth - this.containerEl.offsetWidth;\n\n this.placeClassList(\n this.containerEl.classList,\n scrollDis > 0,\n HAS_SCROLL_CLASS,\n );\n\n const scrollLeft = this.containerEl.scrollLeft;\n this.placeClassList(\n this.containerEl.classList,\n scrollLeft > 0,\n SCROLLING_CLASS,\n );\n this.placeClassList(\n this.containerEl.classList,\n scrollLeft < scrollDis,\n SCROLL_BEFORE_END_CLASS,\n );\n }\n\n placeClassList(\n classList: DOMTokenList,\n condition: boolean,\n className: string,\n ) {\n classList[condition ? 'add' : 'remove'](className);\n }\n}\n","import { CdkTableModule } from '@angular/cdk/table';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon/icon.module';\n\nimport { TableCellDefDirective } from './table-cell-def.directive';\nimport {\n TableExpandButtonCellComponent,\n TableExpandPanelCellComponent,\n} from './table-cell.component';\nimport { TableCellDirective } from './table-cell.directive';\nimport { TableColumnDefDirective } from './table-column-def.directive';\nimport { TableHeaderCellDefDirective } from './table-header-cell-def.directive';\nimport { TableHeaderCellDirective } from './table-header-cell.directive';\nimport { TableHeaderRowDefDirective } from './table-header-row-def.directive';\nimport { TableHeaderRowComponent } from './table-header-row.component';\nimport {\n TablePlaceholderDefDirective,\n TablePlaceholderOutletDirective,\n} from './table-placeholder.directive';\nimport { TableRowDefDirective } from './table-row-def.directive';\nimport { TableRowComponent } from './table-row.component';\nimport {\n TableScrollableDirective,\n TableScrollWrapperDirective,\n} from './table-scroll.directive';\nimport { TableComponent } from './table.component';\n\n@NgModule({\n imports: [CommonModule, IconModule, CdkTableModule],\n declarations: [\n TableComponent,\n TableRowComponent,\n TableHeaderRowComponent,\n TableExpandButtonCellComponent,\n TableExpandPanelCellComponent,\n TableCellDirective,\n TableCellDefDirective,\n TableHeaderCellDirective,\n TableRowDefDirective,\n TableHeaderRowDefDirective,\n TableHeaderCellDefDirective,\n TableColumnDefDirective,\n TableScrollableDirective,\n TablePlaceholderOutletDirective,\n TablePlaceholderDefDirective,\n TableScrollWrapperDirective,\n ],\n exports: [\n TableComponent,\n TableRowComponent,\n TableHeaderRowComponent,\n TableExpandButtonCellComponent,\n TableExpandPanelCellComponent,\n TableCellDirective,\n TableCellDefDirective,\n TableHeaderCellDirective,\n TableRowDefDirective,\n TableHeaderRowDefDirective,\n TableHeaderCellDefDirective,\n TableColumnDefDirective,\n TableScrollableDirective,\n TablePlaceholderOutletDirective,\n TablePlaceholderDefDirective,\n TableScrollWrapperDirective,\n ],\n})\nexport class TableModule {}\n","import { ListRange } from '@angular/cdk/collections';\nimport {\n CdkVirtualScrollViewport,\n VirtualScrollStrategy,\n} from '@angular/cdk/scrolling';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject, distinctUntilChanged } from 'rxjs';\n\n@Injectable()\nexport class FixedSizeTableVirtualScrollStrategy\n implements VirtualScrollStrategy\n{\n private _rowHeight = 42;\n private _headerHeight = 42;\n private _bufferSize = 10;\n private readonly _indexChange = new Subject<number>();\n viewport: CdkVirtualScrollViewport;\n\n scrolledIndexChange = this._indexChange.pipe(distinctUntilChanged());\n stickyChange = new Subject<number>();\n\n renderedRangeStream = new BehaviorSubject<ListRange>({ start: 0, end: 0 });\n\n get dataLength(): number {\n return this._dataLength;\n }\n\n set dataLength(value: number) {\n if (value !== this._dataLength) {\n this._dataLength = value;\n this.onDataLengthChanged();\n }\n }\n\n private _dataLength = 0;\n\n attach(viewport: CdkVirtualScrollViewport): void {\n this.viewport = viewport;\n this.viewport.renderedRangeStream.subscribe(this.renderedRangeStream);\n this.onDataLengthChanged();\n }\n\n detach(): void {\n this._indexChange.complete();\n this.renderedRangeStream.complete();\n this.stickyChange.complete();\n }\n\n onContentScrolled(): void {\n this._updateContent();\n }\n\n onDataLengthChanged(): void {\n if (this.viewport) {\n this.viewport.setTotalContentSize(this._rowHeight * this.dataLength);\n }\n this._updateContent();\n }\n\n onContentRendered(): void {\n // no-op\n }\n\n onRenderedOffsetChanged(): void {\n // no-op\n }\n\n scrollToIndex(index: number, behavior: ScrollBehavior): void {\n if (!this.viewport || !this._rowHeight) {\n return;\n }\n this.viewport.scrollToOffset(\n (index - 1) * this._rowHeight + this._headerHeight,\n behavior,\n );\n }\n\n setConfig(rowHeight: number, headerHeight: number, bufferSize: number) {\n this._rowHeight = rowHeight;\n this._headerHeight = headerHeight;\n this._bufferSize = bufferSize;\n this.onDataLengthChanged();\n }\n\n private _updateContent() {\n if (!this.viewport) {\n return;\n }\n const newIndex =\n Math.round(\n (this.viewport.measureScrollOffset() - this._headerHeight) /\n this._rowHeight,\n ) + 1;\n const start = Math.max(0, newIndex - this._bufferSize);\n const end = Math.min(\n this._dataLength,\n newIndex +\n Math.ceil(this.viewport.getViewportSize() / this._rowHeight) +\n this._bufferSize,\n );\n const renderedOffset = start * this._rowHeight;\n this.viewport.setRenderedContentOffset(renderedOffset);\n this.viewport.setRenderedRange({ start, end });\n this.stickyChange.next(renderedOffset);\n this._indexChange.next(newIndex);\n }\n}\n","import { VIRTUAL_SCROLL_STRATEGY } from '@angular/cdk/scrolling';\nimport { CdkHeaderRowDef } from '@angular/cdk/table';\nimport {\n AfterContentInit,\n ContentChild,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n forwardRef,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Subject,\n combineLatest,\n filter,\n map,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport { TableComponent } from '../table';\n\nimport { FixedSizeTableVirtualScrollStrategy } from './fixed-size-table-virtual-scroll-strategy';\n\nexport function _tableVirtualScrollDirectiveStrategyFactory(\n tableDir: FixedSizeTableVirtualScrollDirective,\n) {\n return tableDir.scrollStrategy;\n}\n\nconst stickyHeaderSelector = '.aui-table__header-row.aui-table-sticky';\n\nconst defaults = {\n rowHeight: 42,\n headerHeight: 42,\n buffer: 10,\n};\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'aui-virtual-scroll-viewport[fixedSize]',\n exportAs: 'viewPort',\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _tableVirtualScrollDirectiveStrategyFactory,\n deps: [forwardRef(() => FixedSizeTableVirtualScrollDirective)],\n },\n ],\n})\nexport class FixedSizeTableVirtualScrollDirective<T = unknown>\n implements AfterContentInit, OnChanges, OnDestroy\n{\n private readonly onDestroy$ = new Subject();\n private readonly _dataSource$$ = new BehaviorSubject<T[]>([]);\n\n @Input()\n rowHeight: number = defaults.rowHeight;\n\n @Input()\n headerHeight: number = defaults.headerHeight;\n\n @Input()\n buffer: number = defaults.buffer;\n\n @Input()\n set dataSource(dataSource: T[]) {\n this._dataSource$$.next(dataSource);\n this.scrollStrategy.dataLength = dataSource?.length;\n }\n\n @ContentChild(TableComponent, { static: false })\n table: TableComponent<any>;\n\n scrollStrategy = new FixedSizeTableVirtualScrollStrategy();\n\n private stickyPositions: Map<HTMLElement, number>;\n\n ngAfterContentInit() {\n this.scrollStrategy.stickyChange\n .pipe(\n filter(() => this.isStickyEnabled()),\n tap(() => {\n if (!this.stickyPositions) {\n this.initStickyPositions();\n }\n }),\n takeUntil(this.onDestroy$),\n )\n .subscribe(stickyOffset => {\n this.setSticky(stickyOffset);\n });\n combineLatest([this.scrollStrategy.renderedRangeStream, this._dataSource$$])\n .pipe(\n map(([{ start, end }, dataSource]) =>\n typeof start !== 'number' || typeof end !== 'number'\n ? dataSource\n : dataSource?.slice(start, end),\n ),\n takeUntil(this.onDestroy$),\n )\n .subscribe(data => {\n this.table.dataSource = data;\n });\n }\n\n ngOnChanges({ rowHeight, headerHeight, buffer }: SimpleChanges) {\n if (rowHeight || headerHeight || buffer) {\n this.scrollStrategy.setConfig(\n this.rowHeight,\n this.headerHeight,\n this.buffer,\n );\n }\n }\n\n ngOnDestroy() {\n this.onDestroy$.next(null);\n this.onDestroy$.complete();\n }\n\n private isStickyEnabled(): boolean {\n return (\n !!this.scrollStrategy.viewport &&\n // @ts-expect-error\n (this.table._headerRowDefs as CdkHeaderRowDef[])\n .map(def => def.sticky)\n .reduce((prev, curr) => prev && curr, true)\n );\n }\n\n private initStickyPositions() {\n this.stickyPositions = new Map<HTMLElement, number>();\n this.scrollStrategy.viewport.elementRef.nativeElement\n .querySelectorAll(stickyHeaderSelector)\n .forEach(el => {\n const parent = el.parentElement;\n if (!this.stickyPositions.has(parent)) {\n this.stickyPositions.set(parent, parent.offsetTop);\n }\n });\n }\n\n private setSticky(offset: number) {\n this.scrollStrategy.viewport.elementRef.nativeElement\n .querySelectorAll<HTMLElement>(stickyHeaderSelector)\n .forEach(el => {\n const parent = el.parentElement;\n let baseOffset = 0;\n if (this.stickyPositions.has(parent)) {\n baseOffset = this.stickyPositions.get(parent);\n }\n el.style.top = `${baseOffset - offset}px`;\n });\n }\n}\n","import {\n CdkFixedSizeVirtualScroll,\n VIRTUAL_SCROLL_STRATEGY,\n _fixedSizeVirtualScrollStrategyFactory,\n} from '@angular/cdk/scrolling';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'aui-virtual-scroll-viewport[itemSize]',\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => FixedSizeVirtualScrollDirective)],\n },\n ],\n})\nexport class FixedSizeVirtualScrollDirective extends CdkFixedSizeVirtualScroll {}\n","import { DataSource } from '@angular/cdk/collections';\nimport {\n CdkVirtualForOf,\n CdkVirtualForOfContext,\n} from '@angular/cdk/scrolling';\nimport {\n Directive,\n Input,\n NgIterable,\n TemplateRef,\n TrackByFunction,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Directive({\n selector: '[auiVirtualFor][auiVirtualForOf]',\n})\nexport class VirtualForOfDirective<T> extends CdkVirtualForOf<T> {\n @Input()\n set auiVirtualForOf(\n value: DataSource<T> | Observable<T[]> | NgIterable<T> | null | undefined,\n ) {\n this.cdkVirtualForOf = value;\n }\n\n @Input()\n set auiVirtualForTrackBy(fn: TrackByFunction<T> | undefined) {\n this.cdkVirtualForTrackBy = fn;\n }\n\n @Input()\n set auiVirtualForTemplate(value: TemplateRef<CdkVirtualForOfContext<T>>) {\n this.cdkVirtualForTemplate = value;\n }\n\n @Input()\n set auiVirtualForTemplateCacheSize(size: number) {\n this.cdkVirtualForTemplateCacheSize = size;\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-virtual-scroll-viewport',\n templateUrl: 'virtual-scroll-viewport.component.html',\n styleUrls: ['virtual-scroll-viewport.component.scss'],\n host: {\n class: 'aui-virtual-scroll-viewport',\n '[class.aui-virtual-scroll-orientation-horizontal]':\n 'orientation === \"horizontal\"',\n '[class.aui-virtual-scroll-orientation-vertical]':\n 'orientation !== \"horizontal\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: CdkVirtualScrollViewport,\n useExisting: VirtualScrollViewportComponent,\n },\n ],\n})\nexport class VirtualScrollViewportComponent extends CdkVirtualScrollViewport {}\n","<!--\n Wrap the rendered content in an element that will be used to offset it based on the scroll\n position.\n-->\n<div\n #contentWrapper\n class=\"aui-virtual-scroll-content-wrapper\"\n>\n <ng-content></ng-content>\n</div>\n<!--\n Spacer used to force the scrolling container to the correct size for the *total* number of items\n so that the scrollbar captures the size of the entire data set.\n-->\n<div\n class=\"aui-virtual-scroll-spacer\"\n [style.width]=\"_totalContentWidth\"\n [style.height]=\"_totalContentHeight\"\n></div>\n","import { NgModule } from '@angular/core';\n\nimport { FixedSizeTableVirtualScrollDirective } from './fixed-size-table-virtual-scroll.directive';\nimport { FixedSizeVirtualScrollDirective } from './fixed-size-virtual-scroll.directive';\nimport { VirtualForOfDirective } from './virtual-for-of.directive';\nimport { VirtualScrollViewportComponent } from './virtual-scroll-viewport.component';\n\nconst EXPORTABLE_COMPONENTS = [VirtualScrollViewportComponent];\nconst EXPORTABLE_DIRECTIVES = [\n FixedSizeTableVirtualScrollDirective,\n FixedSizeVirtualScrollDirective,\n VirtualForOfDirective,\n];\n\nconst EXPORTABLE = [...EXPORTABLE_COMPONENTS, ...EXPORTABLE_DIRECTIVES];\n\n@NgModule({\n declarations: EXPORTABLE,\n exports: EXPORTABLE,\n})\nexport class ScrollingModule {}\n","/** @docs-private */\nexport function getSortDuplicateSortableIdError(id: string): Error {\n return new Error(`Cannot have two MatSortables with the same id (${id}).`);\n}\n\n/** @docs-private */\nexport function getSortHeaderNotContainedWithinSortError(): Error {\n return new Error(\n `MatSortHeader must be placed within a parent element with the MatSort directive.`,\n );\n}\n\n/** @docs-private */\nexport function getSortHeaderMissingIdError(): Error {\n return new Error(`MatSortHeader must be provided with a unique id.`);\n}\n\n/** @docs-private */\nexport function getSortInvalidDirectionError(direction: string): Error {\n return new Error(\n `${direction} is not a valid sort direction ('asc' or 'desc').`,\n );\n}\n","// Original code from material2\n\nimport {\n Directive,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n isDevMode,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport {\n getSortDuplicateSortableIdError,\n getSortHeaderMissingIdError,\n getSortInvalidDirectionError,\n} from './sort-errors';\nimport { Sort, SortDirection, Sortable } from './sort.types';\n\n@Directive({\n selector: '[auiSort]',\n exportAs: 'auiSort',\n})\nexport class SortDirective implements OnChanges, OnDestroy {\n sortables = new Map<string, Sortable>();\n\n readonly _stateChanges = new Subject<void>();\n\n @Input()\n active: string;\n\n @Input()\n start: 'asc' | 'desc' = 'asc';\n\n @Input()\n get direction(): SortDirection {\n return this._direction;\n }\n\n set direction(direction: SortDirection) {\n if (\n isDevMode() &&\n direction &&\n direction !== 'asc' &&\n direction !== 'desc'\n ) {\n throw getSortInvalidDirectionError(direction);\n }\n this._direction = direction;\n }\n\n private _direction: SortDirection = '';\n\n @Output()\n readonly sortChange: EventEmitter<Sort> = new EventEmitter<Sort>();\n\n register(sortable: Sortable): void {\n if (!sortable.id) {\n throw getSortHeaderMissingIdError();\n }\n\n if (this.sortables.has(sortable.id)) {\n throw getSortDuplicateSortableIdError(sortable.id);\n }\n\n this.sortables.set(sortable.id, sortable);\n }\n\n deregister(sortable: Sortable): void {\n this.sortables.delete(sortable.id);\n }\n\n sort(sortable: Sortable): void {\n if (this.active !== sortable.id) {\n this.active = sortable.id;\n this.direction = sortable.start ? sortable.start : this.start;\n } else {\n this.direction = this.direction === 'asc' ? 'desc' : 'asc';\n }\n\n this.sortChange.emit({\n active: this.active,\n direction: this.direction,\n });\n }\n\n ngOnChanges() {\n this._stateChanges.next();\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n}\n","import { CdkColumnDef } from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription, merge } from 'rxjs';\n\n/*\n * TODO: prevent ```public property '' of exported class has or is using name ''\n * from external module '' but cannot be named``` issue.\n */\nimport { Bem, buildBem } from '../utils';\n\nimport { getSortHeaderNotContainedWithinSortError } from './sort-errors';\nimport { SortDirective } from './sort.directive';\nimport { ArrowViewState, SortDirection, Sortable } from './sort.types';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[aui-sort-header]',\n templateUrl: 'sort-header.component.html',\n styleUrls: ['sort-header.component.scss'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SortHeaderComponent implements Sortable, OnInit, OnDestroy {\n private readonly _rerenderSubscription: Subscription;\n\n _viewState: ArrowViewState;\n\n arrowDirection: SortDirection = '';\n\n @Input('aui-sort-header')\n id: string;\n\n @Input()\n start: 'asc' | 'desc';\n\n bem: Bem = buildBem('aui-sort-header');\n\n constructor(\n cdr: ChangeDetectorRef,\n @Optional() public _sort: SortDirective,\n @Optional() public _cdkColumnRef: CdkColumnDef,\n ) {\n if (!_sort) {\n throw getSortHeaderNotContainedWithinSortError();\n }\n\n this._rerenderSubscription = merge(\n _sort.sortChange,\n _sort._stateChanges,\n ).subscribe(() => {\n if (this._isSorted()) {\n this._updateArrowDirection();\n }\n\n if (!this._isSorted() && this._viewState === 'active') {\n this._viewState = '';\n }\n\n cdr.markForCheck();\n });\n }\n\n ngOnInit() {\n if (!this.id && this._cdkColumnRef) {\n this.id = this._cdkColumnRef.name;\n }\n this._updateArrowDirection();\n this._viewState = this._isSorted() ? 'active' : '';\n this._sort.register(this);\n }\n\n ngOnDestroy() {\n this._sort.deregister(this);\n this._rerenderSubscription.unsubscribe();\n }\n\n _handleClick() {\n this._sort.sort(this);\n this._viewState = this._isSorted() ? 'active' : '';\n }\n\n _isSorted() {\n return (\n this._sort.active === this.id &&\n ['asc', 'desc'].includes(this._sort.direction)\n );\n }\n\n _updateArrowDirection() {\n this.arrowDirection = this._isSorted()\n ? this._sort.direction\n : this.start || this._sort.start;\n }\n}\n","<div\n [class]=\"bem.block({ active: _isSorted() })\"\n (click)=\"_handleClick()\"\n>\n <button\n [class]=\"bem.element('button')\"\n type=\"button\"\n >\n <ng-content></ng-content>\n </button>\n <div [class]=\"bem.element('indicator', arrowDirection)\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SortHeaderComponent } from './sort-header.component';\nimport { SortDirective } from './sort.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SortDirective, SortHeaderComponent],\n exports: [SortDirective, SortHeaderComponent],\n})\nexport class SortModule {}\n","import { ValueOf } from '../types';\n\nexport interface Status {\n type?: StatusType;\n class?: string;\n scale: number;\n [key: string]: unknown;\n}\n\nexport const StatusType = {\n Primary: 'primary',\n Success: 'success',\n Warning: 'warning',\n Error: 'error',\n Info: 'info',\n Pending: 'pending',\n} as const;\n\nexport type StatusType = ValueOf<typeof StatusType>;\n\nexport const StatusBarSize = {\n Medium: 'medium',\n Small: 'small',\n} as const;\n\nexport type StatusBarSize = ValueOf<typeof StatusBarSize>;\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { Status, StatusBarSize } from './status-bar.types';\n\n@Component({\n selector: 'aui-status-bar',\n templateUrl: './status-bar.component.html',\n styleUrls: ['./status-bar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class StatusBarComponent {\n bem: Bem = buildBem('aui-status-bar');\n\n @Input()\n status: Status[] = [];\n\n @Input()\n size: StatusBarSize = StatusBarSize.Medium;\n\n @Input()\n template: TemplateRef<any>;\n\n @Output()\n statusClick = new EventEmitter<Status>();\n}\n","<div [class]=\"bem.block(size)\">\n <ng-container *ngFor=\"let item of status\">\n <div\n *ngIf=\"item.scale\"\n [ngClass]=\"[bem.element('chunk', item.type), item.class || '']\"\n [style.width]=\"item.scale * 100 + '%'\"\n (click)=\"statusClick.emit(item)\"\n [auiTooltip]=\"template\"\n [auiTooltipContext]=\"item\"\n [auiTooltipDisabled]=\"!template\"\n ></div>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TooltipModule } from '../tooltip';\n\nimport { StatusBarComponent } from './status-bar.component';\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [StatusBarComponent],\n exports: [StatusBarComponent],\n})\nexport class StatusBarModule {}\n","import { ValueOf } from '../types';\n\nexport const StepState = {\n Default: 'default',\n Done: 'done',\n Error: 'error',\n Pending: 'pending',\n} as const;\n\nexport type StepState = ValueOf<typeof StepState>;\n\nexport interface StepItem {\n label: string;\n description?: string;\n state?: StepState;\n optional?: boolean;\n /**\n * @deprecated 每个步骤不再需要单独控制。通过组件参数 selectable 统一控制\n */\n editable?: boolean;\n}\n\nexport type StepsOrientation = 'horizontal' | 'vertical';\n\nexport type StepsType = 'step' | 'progress';\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\n\nimport { StepItem, StepState, StepsOrientation, StepsType } from './types';\n\nconst StepDefaultIcon = {\n [StepState.Default]: 'number',\n [StepState.Done]: 'check_circle',\n [StepState.Error]: 'close_circle',\n [StepState.Pending]: 'sync_circle',\n};\n\nconst StepSelectedIcon = {\n [StepState.Default]: 'number',\n [StepState.Done]: 'check_circle_s',\n [StepState.Error]: 'close_circle_s',\n [StepState.Pending]: 'sync_circle_s',\n};\n\n@Component({\n selector: 'aui-steps',\n exportAs: 'auiSteps',\n templateUrl: './steps.component.html',\n styleUrls: ['./steps.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class StepsComponent implements OnInit, OnDestroy {\n _currentIndex: number;\n private _steps: StepItem[] = [];\n @Input()\n get steps() {\n return this._steps;\n }\n\n set steps(val: StepItem[]) {\n this._steps = val;\n this.stepsChange$$.next(val);\n }\n\n /**\n * @deprecated type 为 step 时一般在使用上下文中控制是否可以进行下一步;type 为 progress 时强制按顺序执行\n */\n @Input()\n linear = false;\n\n @Input()\n get currentIndex() {\n return this._currentIndex;\n }\n\n set currentIndex(index: number) {\n this.currentIndexChange$$.next(index);\n }\n\n @Input()\n orientation: StepsOrientation = 'horizontal';\n\n @Input()\n type: StepsType = 'step';\n\n @Input()\n selectable = false;\n\n @Output()\n currentIndexChange = new EventEmitter<number>();\n\n @Output()\n selectedIndexChange = new EventEmitter<number>();\n\n currentIndexChange$$ = new BehaviorSubject<number>(0);\n stepsChange$$ = new BehaviorSubject<StepItem[]>([]);\n\n selectedIndex: number;\n\n private readonly destroy$$ = new Subject<void>();\n\n ngOnInit() {\n this.currentIndexChange$$\n .pipe(takeUntil(this.destroy$$))\n .subscribe(index => {\n if (this.type === 'step') {\n this.setCurrentIndex(index);\n }\n });\n this.stepsChange$$.pipe(takeUntil(this.destroy$$)).subscribe(steps => {\n if (this.type === 'progress') {\n this.getProgressCurrentIndex(steps);\n }\n });\n }\n\n private setCurrentIndex(index: number) {\n if (this.linear) {\n if (this.steps?.length) {\n const ret = Math.min(Math.max(0, index), this.steps.length - 1);\n const reversedPrevSteps = this.steps.slice(0, ret).reverse();\n const doneIndex = reversedPrevSteps.findIndex(\n step => step.state === StepState.Done || step.optional,\n );\n const lastDoneStepIndex =\n doneIndex > -1 ? reversedPrevSteps.length - doneIndex : 0;\n this._currentIndex = this.selectedIndex = Math.min(\n lastDoneStepIndex,\n ret,\n );\n }\n } else {\n this._currentIndex = this.selectedIndex = index;\n }\n }\n\n private getProgressCurrentIndex(steps: StepItem[]) {\n if (!steps?.length) {\n if (this._currentIndex !== 0) {\n this.currentIndexChange.emit(0);\n }\n this._currentIndex = 0;\n } else {\n const reversedSteps = this.steps.slice(0).reverse();\n const doneStepIndex = reversedSteps.findIndex(\n step => step.state === StepState.Done,\n );\n const lastDoneStepIndex =\n doneStepIndex > -1 ? reversedSteps.length - doneStepIndex : 0;\n const newIndex = Math.min(lastDoneStepIndex, steps.length - 1);\n if (this._currentIndex !== newIndex) {\n this.currentIndexChange.emit(newIndex);\n }\n this._currentIndex =\n this._currentIndex === this.selectedIndex\n ? (this.selectedIndex = newIndex)\n : newIndex;\n }\n }\n\n get isVertical() {\n return this.orientation === 'vertical';\n }\n\n get isProgress() {\n return this.type === 'progress';\n }\n\n getIcon(i: number, state?: StepState): string {\n if (!state) {\n return StepDefaultIcon.default;\n }\n return this.getActiveIndex() === i\n ? StepSelectedIcon[state]\n : StepDefaultIcon[state];\n }\n\n select(i: number) {\n if (this.isSelectable(i)) {\n if (this.isProgress) {\n this.selectedIndexChange.emit(i);\n this.selectedIndex = i;\n } else {\n this.currentIndexChange.emit(i);\n this._currentIndex = i;\n this.selectedIndex = i;\n }\n }\n }\n\n isSelectable(i: number) {\n const currentStep = this.steps[this._currentIndex];\n if (!this.selectable || this.selectedIndex === i) {\n return false;\n }\n const isLinear = this.isProgress ? true : this.linear;\n if (\n isLinear &&\n !currentStep.optional &&\n ((currentStep.state === StepState.Done && i > this._currentIndex + 1) ||\n (currentStep.state !== StepState.Done && i > this._currentIndex))\n ) {\n return false;\n }\n // eslint-disable-next-line sonarjs/prefer-single-boolean-return\n if (i < this._currentIndex && !this.selectable) {\n return false;\n }\n return true;\n }\n\n getActiveIndex() {\n return this.selectedIndex !== undefined\n ? this.selectedIndex\n : this._currentIndex;\n }\n\n isLastActive(i: number, steps: StepItem[]) {\n const firstDefaultIndex = steps.findIndex(\n step => !step.state || step.state === StepState.Default,\n );\n return i === this.selectedIndex\n ? true\n : firstDefaultIndex === 0\n ? false\n : firstDefaultIndex === i;\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n }\n}\n","<div\n class=\"aui-steps aui-steps--{{ orientation || 'horizontal' }} aui-steps--{{\n type || 'step'\n }}\"\n>\n <ng-container *ngFor=\"let step of steps; let i = index; let isLast = last\">\n <div\n class=\"aui-step\"\n (click)=\"select(i)\"\n [class.isLastActive]=\"isLastActive(i, steps)\"\n [class.clickable]=\"isSelectable(i)\"\n >\n <div class=\"aui-step__indicator\">\n <ng-container *ngIf=\"isProgress\">\n <ng-container [ngSwitch]=\"getIcon(i, step.state)\">\n <span\n class=\"aui-step__indicator-number aui-step__indicator-number--{{\n step.state\n }}\"\n *ngSwitchCase=\"'number'\"\n [class.selected]=\"getActiveIndex() === i\"\n >\n {{ i + 1 }}\n </span>\n <aui-icon\n class=\"aui-step__indicator-icon aui-step__indicator-icon--{{\n step.state\n }}\"\n *ngSwitchDefault\n [class.selected]=\"getActiveIndex() === i\"\n [icon]=\"getIcon(i, step.state)\"\n ></aui-icon>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!isProgress\">\n <span\n class=\"aui-step__indicator-number\"\n [class.selected]=\"_currentIndex === i\"\n *ngIf=\"i >= _currentIndex\"\n >\n {{ i + 1 }}\n </span>\n <aui-icon\n class=\"aui-step__indicator-icon aui-step__indicator-icon--done\"\n [class.selected]=\"_currentIndex === i\"\n *ngIf=\"i < _currentIndex\"\n [icon]=\"getIcon(i, 'done')\"\n ></aui-icon>\n </ng-container>\n <div\n *ngIf=\"!isLast && isVertical\"\n class=\"aui-steps__vertical-line aui-steps__vertical-line--{{\n step.state\n }}\"\n ></div>\n </div>\n <div\n class=\"aui-step__info aui-step__info--{{\n isProgress\n ? step.state || 'default'\n : i < _currentIndex\n ? 'done'\n : 'default'\n }}\"\n [class.aui-step__info--selected]=\"getActiveIndex() === i\"\n >\n <div class=\"aui-step__name\">\n {{ step.label }}\n </div>\n <div\n class=\"aui-step__description\"\n *ngIf=\"step.description\"\n >\n {{ step.description }}\n </div>\n </div>\n </div>\n <div\n *ngIf=\"!isLast && !isVertical\"\n class=\"aui-steps__horizontal-line\"\n ></div>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\n\nimport { StepsComponent } from './steps.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [StepsComponent],\n exports: [StepsComponent],\n})\nexport class StepsModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { CommonFormControl } from '../form';\nimport { Bem, buildBem } from '../utils';\n\nconst prefix = 'aui-switch';\n\n@Component({\n selector: 'aui-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n },\n ],\n})\nexport class SwitchComponent extends CommonFormControl<boolean> {\n bem: Bem = buildBem(prefix);\n\n @Input()\n loading = false;\n\n onSwitch() {\n if (this.disabled) {\n return;\n }\n this.emitValue(!this.model);\n }\n\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n}\n","<div\n class=\"aui-switch\"\n [class.isLoading]=\"loading\"\n [class.isDisabled]=\"disabled\"\n [class.isChecked]=\"model\"\n (click)=\"onSwitch()\"\n>\n <input\n #input\n [ngClass]=\"bem.element('input')\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"model\"\n (blur)=\"onBlur()\"\n />\n <span [ngClass]=\"bem.element('bar')\">\n <i [ngClass]=\"bem.element('dot')\"></i>\n </span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SwitchComponent } from './switch.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SwitchComponent],\n exports: [SwitchComponent],\n})\nexport class SwitchModule {}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {\n EMPTY,\n Subject,\n Subscription,\n animationFrameScheduler,\n of,\n debounceTime,\n endWith,\n map,\n observeOn,\n repeat,\n startWith,\n switchMap,\n takeUntil,\n takeWhile,\n tap,\n} from 'rxjs';\n\nimport { TocContentDirective } from './toc-content.directive';\n\n@Directive({\n selector: '[auiTocContainer]',\n exportAs: 'auiTocContainer',\n})\nexport class TocContainerDirective implements AfterContentInit, OnDestroy {\n @Output()\n activedChange = new EventEmitter<string>();\n\n private _contents: TocContentDirective[] = [];\n private readonly _scrollTop$ = new Subject<number>();\n private readonly _scrollTo$ = new Subject<string>();\n private readonly _onDestroy$ = new Subject<void>();\n private readonly _subs: Subscription[] = [];\n private _nativeElement: HTMLElement;\n\n get scrollTop(): number {\n return this._nativeElement.scrollTop || 0;\n }\n\n set scrollTop(value: number) {\n this._nativeElement.scrollTop = value;\n }\n\n get isScrollEnd() {\n return (\n this._nativeElement.scrollHeight - this._nativeElement.scrollTop ===\n this._nativeElement.clientHeight\n );\n }\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private readonly cdr: ChangeDetectorRef,\n ) {\n this._nativeElement = elementRef.nativeElement;\n }\n\n getOffsetTop(element: HTMLElement): number {\n if (element.parentElement === this._nativeElement) {\n return element.offsetTop;\n }\n return element.offsetTop + this.getOffsetTop(element.parentElement);\n }\n\n private getMinContent(scrollTop: number) {\n return (minContent: TocContentDirective, content: TocContentDirective) => {\n if (\n Math.abs(scrollTop - this.getOffsetTop(content.nativeElement)) <\n Math.abs(scrollTop - this.getOffsetTop(minContent.nativeElement))\n ) {\n minContent = content;\n }\n return minContent;\n };\n }\n\n private getMaxContent(\n maxContent: TocContentDirective,\n content: TocContentDirective,\n ) {\n if (\n this.getOffsetTop(content.nativeElement) >\n this.getOffsetTop(maxContent.nativeElement)\n ) {\n maxContent = content;\n }\n return maxContent;\n }\n\n @HostListener('scroll')\n onScroll() {\n this._scrollTop$.next(this.scrollTop);\n }\n\n ngAfterContentInit() {\n const actived$ = this._scrollTop$\n .pipe(\n startWith(this.scrollTop),\n debounceTime(200),\n map(scrollTop =>\n this._contents.reduce(\n this.isScrollEnd\n ? this.getMaxContent.bind(this)\n : this.getMinContent(scrollTop),\n ),\n ),\n map(actived => actived.auiTocContent),\n )\n .pipe(\n tap(actived => {\n this._contents.forEach(content => {\n content.active = actived === content.auiTocContent;\n });\n this.cdr.detectChanges();\n }),\n );\n\n const scrollTween$ = this._scrollTo$.pipe(\n switchMap(name => {\n const target = this._contents.find(\n content => content.auiTocContent === name,\n );\n\n if (!target) {\n return EMPTY;\n }\n const destination = this.getOffsetTop(target.nativeElement);\n\n const start = performance.now();\n const source = this.scrollTop;\n const duration = 500;\n\n return of(0).pipe(\n observeOn(animationFrameScheduler),\n repeat(),\n map(() => (performance.now() - start) / duration),\n takeWhile(t => t < 1),\n endWith(1),\n map(t => t * t * t),\n map(t => source * (1 - t) + destination * t),\n );\n }),\n takeUntil(this._onDestroy$),\n );\n\n this._subs.push(\n actived$.subscribe(this.activedChange),\n scrollTween$.subscribe(tweenValue => {\n this.scrollTop = tweenValue;\n }),\n );\n }\n\n ngOnDestroy() {\n this._subs.forEach(sub => sub.unsubscribe());\n this._onDestroy$.next();\n }\n\n scrollTo(content: string | string[]) {\n if (Array.isArray(content)) {\n this._scrollTo$.next(content[0]);\n } else {\n this._scrollTo$.next(content);\n }\n }\n\n registerContent(tocContent: TocContentDirective) {\n this._contents = [...this._contents, tocContent];\n }\n\n deregisterContent(tocContent: TocContentDirective) {\n this._contents = this._contents.filter(\n content => content.auiTocContent !== tocContent.auiTocContent,\n );\n }\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\n\nimport { TocContainerDirective } from './toc-container.directive';\n\n@Directive({\n selector: '[auiTocContent]',\n})\nexport class TocContentDirective implements OnInit, OnDestroy {\n @HostBinding('class.isActive')\n active: boolean;\n\n @Input()\n auiTocContent: string;\n\n nativeElement: HTMLElement;\n\n constructor(\n elemRef: ElementRef<HTMLElement>,\n @Optional() private readonly containerDirective: TocContainerDirective,\n ) {\n this.nativeElement = elemRef.nativeElement;\n }\n\n ngOnInit(): void {\n if (this.containerDirective) {\n this.containerDirective.registerContent(this);\n }\n }\n\n ngOnDestroy(): void {\n if (this.containerDirective) {\n this.containerDirective.deregisterContent(this);\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { TocContainerDirective } from './toc-container.directive';\n\n@Directive({\n selector: '[auiTocLink]',\n})\nexport class TocLinkDirective implements OnInit, OnDestroy {\n @HostBinding('class.isActive')\n active: boolean;\n\n @Input()\n for: TocContainerDirective;\n\n @Input()\n auiTocLink: string | string[];\n\n private readonly _subs: Subscription[] = [];\n\n @HostListener('click')\n onClick() {\n this.for.scrollTo(this.auiTocLink);\n }\n\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n ngOnInit() {\n if (!this.for || !this.auiTocLink) {\n return;\n }\n this._subs.push(\n this.for.activedChange.subscribe((actived: string) => {\n this.active = Array.isArray(this.auiTocLink)\n ? this.auiTocLink.includes(actived)\n : actived === this.auiTocLink;\n this.cdr.detectChanges();\n }),\n );\n }\n\n ngOnDestroy() {\n this._subs.forEach(sub => sub.unsubscribe());\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TocContainerDirective } from './toc-container.directive';\nimport { TocContentDirective } from './toc-content.directive';\nimport { TocLinkDirective } from './toc-link.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TocContentDirective, TocContainerDirective, TocLinkDirective],\n exports: [TocContentDirective, TocContainerDirective, TocLinkDirective],\n})\nexport class TableOfContentsModule {}\n","import {\n CdkPortal,\n CdkPortalOutlet,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\nimport { coerceAttrBoolean } from '../utils';\n\n@Component({\n selector: 'aui-tab-body',\n templateUrl: './tab-body.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class TabBodyComponent implements OnDestroy {\n private _content: TemplatePortal;\n\n content$ = new BehaviorSubject<TemplatePortal>(null);\n\n /** The portal host inside of this container into which the tab body content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true })\n _portalOutlet: CdkPortalOutlet;\n\n /** The tab body content to display. */\n @Input()\n get content() {\n return this._content;\n }\n\n set content(content: TemplatePortal) {\n if (this._content !== content) {\n this.content$.next(content);\n }\n this._content = content;\n }\n\n ngOnDestroy() {\n this.content$.complete();\n }\n}\n\n/** Used to flag tab labels for use with the portal directive */\n@Directive({\n selector: '[auiTabLabel]',\n})\nexport class TabLabelDirective extends CdkPortal {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n templateRef: TemplateRef<any>,\n viewContainerRef: ViewContainerRef,\n ) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * Lazy load the embedded template for a tab content.\n */\n@Directive({\n selector: '[auiTabContent]',\n})\nexport class TabContentDirective {\n constructor(public template: TemplateRef<any>) {}\n}\n\n/** Used to project additional template from host to the tab header. */\n@Directive({\n selector: '[auiTabHeaderAddon]',\n})\nexport class TabHeaderAddonDirective extends CdkPortal {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n templateRef: TemplateRef<any>,\n viewContainerRef: ViewContainerRef,\n ) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * Used in the `aui-tab-group` view to display tab labels.\n */\n@Directive({\n selector: '[auiTabLabelWrapper]',\n host: {\n '[class.aui-tab-label]': 'true',\n '[class.aui-tab-label--disabled]': '!!disabled',\n },\n})\nexport class TabLabelWrapperDirective {\n private _disabled: boolean;\n\n /** Whether or not the tab is disabled */\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: boolean | '') {\n this._disabled = coerceAttrBoolean(value);\n }\n\n getOffsetLeft(): number {\n return this.elementRef.nativeElement.offsetLeft;\n }\n\n getOffsetWidth(): number {\n return this.elementRef.nativeElement.offsetWidth;\n }\n\n /** Sets focus on the wrapper element */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n}\n\n@Directive({\n selector: '[auiTabTitle]',\n})\nexport class TabTitleDirective extends CdkPortal {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n templateRef: TemplateRef<any>,\n viewContainerRef: ViewContainerRef,\n ) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * The portal host directive for the contents of the tab.\n */\n@Directive({\n selector: '[auiTabBodyHost]',\n})\nexport class TabBodyPortalDirective\n extends CdkPortalOutlet\n implements OnInit, OnDestroy\n{\n private _hostSubscription = Subscription.EMPTY;\n\n constructor(\n componentFactoryResolver: ComponentFactoryResolver,\n viewContainerRef: ViewContainerRef,\n private readonly _host: TabBodyComponent,\n ) {\n super(componentFactoryResolver, viewContainerRef);\n }\n\n /** Set initial visibility or set up subscription for changing visibility. */\n override ngOnInit(): void {\n super.ngOnInit();\n this._hostSubscription = this._host.content$.subscribe(content => {\n if (this.hasAttached) {\n this.detach();\n }\n this.attach(content);\n });\n }\n\n override ngOnDestroy() {\n this._hostSubscription.unsubscribe();\n }\n}\n","<div class=\"aui-tab-body\">\n <div\n #content\n class=\"aui-tab-body__content\"\n >\n <ng-template auiTabBodyHost></ng-template>\n </div>\n</div>\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n combineLatest,\n distinctUntilChanged,\n map,\n} from 'rxjs';\n\n@Injectable()\nexport class TabContextService {\n private readonly active$$ = new BehaviorSubject(false);\n\n /**\n * Whether the tab is currently active.\n */\n get isActive() {\n return this.active$$.value;\n }\n\n set isActive(isActive: boolean) {\n this.active$$.next(isActive);\n }\n\n readonly active$: Observable<boolean>;\n\n constructor(\n @Optional()\n @SkipSelf()\n readonly _parent: TabContextService,\n ) {\n this.active$ = (\n _parent\n ? combineLatest([_parent.active$, this.active$$]).pipe(\n map(([a, b]) => a && b),\n )\n : this.active$$\n ).pipe(distinctUntilChanged());\n }\n}\n","/* eslint-disable no-prototype-builtins */\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { coerceAttrBoolean } from '../utils';\n\nimport { TabContentDirective, TabLabelDirective } from './tab-body.component';\nimport { TabContextService } from './tab-context.service';\n\n@Component({\n selector: 'aui-tab',\n exportAs: 'auiTab',\n templateUrl: './tab.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n providers: [TabContextService],\n})\nexport class TabComponent implements AfterContentInit, OnDestroy, OnChanges {\n @Input()\n name: string;\n\n /** Plain text label for the tab, used when there is no template label. */\n @Input('label')\n textLabel = '';\n\n /** Whether or not to show the close button in the header */\n @Input()\n closeable = false;\n\n /** Whether or not the tab is disabled */\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: boolean | '') {\n this._disabled = coerceAttrBoolean(value);\n }\n\n @Output()\n close = new EventEmitter<void>();\n\n /** Content for the tab label given by `<ng-template [auiTabLabel]>`. */\n @ContentChild(TabLabelDirective, { static: false })\n templateLabel: TabLabelDirective;\n\n /**\n * Template provided in the tab content that will be used if present, used to enable lazy-loading\n */\n @ContentChild(TabContentDirective, { read: TemplateRef, static: false })\n _explicitContent: TemplateRef<any>;\n\n /** Template inside the AuiTab view that contains an `<ng-content>`. */\n @ViewChild(TemplateRef, { static: true })\n _implicitContent: TemplateRef<any>;\n\n get content(): TemplatePortal | null {\n return this._contentPortal;\n }\n\n /**\n * The relatively indexed position where 0 represents the center, negative is left, and positive\n * represents the right.\n */\n position: number | null = null;\n\n /**\n * The initial relatively index origin of the tab if it was created and selected after there\n * was already a selected tab. Provides context of what position the tab should originate from.\n */\n origin: number | null = null;\n\n /** Emits whenever the internal state of the tab changes. */\n readonly _stateChanges = new Subject<void>();\n\n /** Portal that will be the hosted content of the tab */\n private _contentPortal: TemplatePortal | null = null;\n\n private _disabled = false;\n\n constructor(\n private readonly _viewContainerRef: ViewContainerRef,\n public readonly tabContext: TabContextService,\n ) {}\n\n ngAfterContentInit(): void {\n this._contentPortal = new TemplatePortal(\n this._explicitContent || this._implicitContent,\n this._viewContainerRef,\n );\n }\n\n ngOnDestroy(): void {\n this._stateChanges.complete();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.hasOwnProperty('textLabel') ||\n changes.hasOwnProperty('disabled') ||\n changes.hasOwnProperty('closeable')\n ) {\n this._stateChanges.next();\n }\n }\n}\n","<!--\n Create a template for the content of the <aui-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group.\n-->\n<ng-template><ng-content></ng-content></ng-template>\n","import { ValueOf } from '../types';\n\nexport const TabSize = {\n /** 卡片级尺寸 */\n Large: 'large',\n\n /** 页面级尺寸 */\n Medium: 'medium',\n\n /** 小尺寸 */\n Small: 'small',\n} as const;\n\nexport type TabSize = ValueOf<typeof TabSize>;\n\nexport const TabType = {\n Line: 'line',\n Card: 'card',\n} as const;\n\nexport type TabType = ValueOf<typeof TabType>;\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n NgZone,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Bem, buildBem } from '../utils';\n\nimport { TabType } from './tabs.types';\n\n@Component({\n selector: 'aui-tab-header-active-indicator',\n templateUrl: './tab-header-active-indicator.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class TabHeaderActiveIndicatorComponent {\n @Input()\n type: TabType = TabType.Line;\n\n bem: Bem = buildBem('aui-tab-header-active-indicator');\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n private readonly _ngZone: NgZone,\n ) {}\n\n /**\n * Calculates the styles from the provided element in order to align the indicator to that element.\n * Shows the indicator if previously set as hidden.\n * @param element\n */\n alignToElement(element: HTMLElement) {\n if (typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => this._setStyles(element));\n });\n } else {\n this._setStyles(element);\n }\n }\n\n /**\n * Sets the proper styles to the element.\n * @param element\n */\n private _setStyles(element: HTMLElement) {\n const positions = this._getElementPosition(element);\n const nativeEl = this._elementRef.nativeElement;\n nativeEl.style.left = positions.left;\n nativeEl.style.width = positions.width;\n }\n\n private _getElementPosition(element: HTMLElement) {\n return {\n left: element ? (element.offsetLeft || 0) + 'px' : '0',\n width: element ? (element.offsetWidth || 0) + 'px' : '0',\n };\n }\n}\n","<div [ngClass]=\"bem.block(type)\"></div>\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { Bem, buildBem, coerceNumber } from '../utils';\n\nimport {\n TabHeaderAddonDirective,\n TabLabelWrapperDirective,\n TabTitleDirective,\n} from './tab-body.component';\nimport { TabHeaderActiveIndicatorComponent } from './tab-header-active-indicator.component';\nimport { TabSize, TabType } from './tabs.types';\n\n/**\n * The directions that scrolling can go in when the header's tabs exceed the header width. 'After'\n * will scroll the header towards the end of the tabs list and 'before' will scroll towards the\n * beginning of the list.\n */\nexport type ScrollDirection = 'after' | 'before';\n/**\n * The distance in pixels that will be overshot when scrolling a tab label into view. This helps\n * provide a small affordance to the label next to it.\n */\nconst EXAGGERATED_OVERSCROLL = 60;\n\n@Component({\n selector: 'aui-tab-header',\n templateUrl: './tab-header.component.html',\n styleUrls: ['./tab-header.component.scss'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabHeaderComponent\n implements OnDestroy, AfterContentChecked, AfterContentInit\n{\n bem: Bem = buildBem('aui-tab-header');\n\n _showAddon = false;\n\n /** Whether the controls for pagination should be displayed */\n _showPaginationControls = false;\n\n /** Whether the tab list can be scrolled more towards the end of the tab label list. */\n _disableScrollAfter = true;\n\n /** Whether the tab list can be scrolled more towards the beginning of the tab label list. */\n _disableScrollBefore = true;\n\n /** Whether the scroll distance has changed and should be applied after the view is checked. */\n private _scrollDistanceChanged: boolean;\n\n /** Whether the header should scroll to the selected index after the view has been checked. */\n private _selectedIndexChanged = false;\n\n /** The distance in pixels that the tab labels should be translated to the left. */\n private _scrollDistance = 0;\n\n private _selectedIndex = 0;\n\n /** Emits when the component is destroyed. */\n private readonly _destroyed = new Subject<void>();\n\n /** Used to manage focus between the tabs. */\n private _keyManager: FocusKeyManager<TabLabelWrapperDirective>;\n\n /**\n * The number of tab labels that are displayed on the header. When this changes, the header\n * should re-evaluate the scroll position.\n */\n private _tabLabelCount: number;\n\n @Input()\n type: TabType = TabType.Line;\n\n @Input()\n size: TabSize = TabSize.Medium;\n\n /** The index of the active tab. */\n @Input()\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n set selectedIndex(value: number) {\n value = coerceNumber(value);\n this._selectedIndexChanged = this._selectedIndex !== value;\n this._selectedIndex = value;\n\n if (this._keyManager) {\n this._keyManager.updateActiveItem(value);\n }\n }\n\n /** Event emitted when the option is selected. */\n @Output()\n readonly selectFocusedIndex = new EventEmitter<number>();\n\n /** Event emitted when a label is focused. */\n @Output()\n readonly indexFocused = new EventEmitter<number>();\n\n @ContentChild(TabHeaderAddonDirective, { static: false })\n _headerAddon: TabHeaderAddonDirective;\n\n @ContentChild(TabTitleDirective, { static: false })\n _title: TabTitleDirective;\n\n @ContentChildren(TabLabelWrapperDirective)\n /**\n * workaround for @link https://github.com/microsoft/TypeScript/pull/42425\n */\n _labelWrappers: QueryList<TabLabelWrapperDirective & { disabled?: boolean }>;\n\n @ViewChild('tabListContainer', { static: true })\n _tabListContainer: ElementRef<HTMLElement>;\n\n @ViewChild('tabList', { static: true })\n _tabList: ElementRef<HTMLElement>;\n\n @ViewChild('paginationWrapper', { static: true })\n _paginationWrapper: ElementRef<HTMLElement>;\n\n @ViewChild(TabHeaderActiveIndicatorComponent, { static: true })\n _activeIndicator: TabHeaderActiveIndicatorComponent;\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n ngAfterContentChecked(): void {\n // If the number of tab labels have changed, check if scrolling should be enabled\n if (this._tabLabelCount !== this._labelWrappers.length) {\n this._updatePagination();\n this._tabLabelCount = this._labelWrappers.length;\n this._changeDetectorRef.markForCheck();\n }\n\n // If the selected index has changed, scroll to the label and check if the scrolling controls\n // should be disabled.\n if (this._selectedIndexChanged) {\n this._scrollToLabel(this._selectedIndex);\n this._checkScrollingControls();\n this._alignActiveIndicatorToSelectedTab();\n this._selectedIndexChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n\n // If the scroll distance has been changed (tab selected, focused, scroll controls activated),\n // then translate the header to reflect this.\n if (this._scrollDistanceChanged) {\n this._updateTabScrollPosition();\n this._scrollDistanceChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n\n if (this._showAddon !== !!this._headerAddon) {\n this._showAddon = !!this._headerAddon;\n this._updatePagination();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Aligns the ink bar to the selected tab on load.\n */\n ngAfterContentInit() {\n const resize = this._viewportRuler.change(150);\n const realign = () => {\n this._updatePagination();\n this._alignActiveIndicatorToSelectedTab();\n };\n\n this._keyManager = new FocusKeyManager(this._labelWrappers)\n .withHorizontalOrientation('ltr')\n .withWrap();\n this._keyManager.updateActiveItem(0);\n\n // Defer the first call in order to allow for slower browsers to lay out the elements.\n // This helps in cases where the user lands directly on a page with paginated tabs.\n typeof requestAnimationFrame !== 'undefined'\n ? requestAnimationFrame(realign)\n : realign();\n\n // On window resize, realign the ink bar and update the orientation of\n // the key manager if the direction has changed.\n resize.pipe(takeUntil(this._destroyed)).subscribe(() => {\n realign();\n });\n\n // If there is a change in the focus key manager we need to emit the `indexFocused`\n // event in order to provide a public event that notifies about focus changes. Also we realign\n // the tabs container by scrolling the new focused tab into the visible section.\n this._keyManager.change\n .pipe(takeUntil(this._destroyed))\n .subscribe(newFocusIndex => {\n this.indexFocused.emit(newFocusIndex);\n this._setTabFocus(newFocusIndex);\n });\n }\n\n /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */\n get scrollDistance(): number {\n return this._scrollDistance;\n }\n\n set scrollDistance(v: number) {\n this._scrollDistance = Math.max(\n 0,\n Math.min(this._getMaxScrollDistance(), v),\n );\n // Mark that the scroll distance has changed so that after the view is checked, the CSS\n // transformation can move the header.\n this._scrollDistanceChanged = true;\n this._checkScrollingControls();\n }\n\n /** Tracks which element has focus; used for keyboard navigation */\n get focusIndex(): number {\n return this._keyManager ? this._keyManager.activeItemIndex : 0;\n }\n\n /** When the focus index is set, we must manually send focus to the correct label */\n set focusIndex(value: number) {\n if (\n !this._isValidIndex(value) ||\n this.focusIndex === value ||\n !this._keyManager\n ) {\n return;\n }\n this._keyManager.setActiveItem(value);\n }\n\n /**\n * Determines if an index is valid. If the tabs are not ready yet, we assume that the user is\n * providing a valid index and return true.\n */\n _isValidIndex(index: number): boolean {\n if (!this._labelWrappers) {\n return true;\n }\n const tab = this._labelWrappers\n ? this._labelWrappers.toArray()[index]\n : null;\n return !!tab && !tab.disabled;\n }\n\n _handleKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Home':\n this._keyManager.setFirstItemActive();\n event.preventDefault();\n break;\n case 'End':\n this._keyManager.setLastItemActive();\n event.preventDefault();\n break;\n case 'Enter':\n case 'Space':\n this.selectFocusedIndex.emit(this.focusIndex);\n event.preventDefault();\n break;\n default:\n this._keyManager.onKeydown(event);\n }\n }\n\n /**\n * Sets focus on the HTML element for the label wrapper and scrolls it into the view if\n * scrolling is enabled.\n */\n _setTabFocus(tabIndex: number) {\n if (this._showPaginationControls) {\n this._scrollToLabel(tabIndex);\n }\n if (this._labelWrappers?.length > 0) {\n this._labelWrappers.toArray()[tabIndex].focus();\n // Do not let the browser manage scrolling to focus the element, this will be handled\n // by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width\n // should be the full width minus the offset width.\n const containerEl = this._tabListContainer.nativeElement;\n containerEl.scrollLeft = 0;\n }\n }\n\n /**\n * Moves the tab list such that the desired tab label (marked by index) is moved into view.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _scrollToLabel(labelIndex: number) {\n const selectedLabel = this._labelWrappers\n ? this._labelWrappers.toArray()[labelIndex]\n : null;\n if (!selectedLabel) {\n return;\n }\n // The view length is the visible width of the tab labels.\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n const labelBeforePos = selectedLabel.getOffsetLeft();\n const labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();\n const beforeVisiblePos = this.scrollDistance;\n const afterVisiblePos = this.scrollDistance + viewLength;\n if (labelBeforePos < beforeVisiblePos) {\n // Scroll header to move label to the before direction\n this.scrollDistance -=\n beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;\n } else if (labelAfterPos > afterVisiblePos) {\n // Scroll header to move label to the after direction\n this.scrollDistance +=\n labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;\n }\n }\n\n /**\n * Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or\n * the end of the list, respectively). The distance to scroll is computed to be a third of the\n * length of the tab list view window.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _scrollHeader(scrollDir: ScrollDirection) {\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n // Move the scroll distance one-third the length of the tab list's viewport.\n this.scrollDistance += ((scrollDir === 'before' ? -1 : 1) * viewLength) / 3;\n }\n\n /**\n * Callback for when the MutationObserver detects that the content has changed.\n */\n _onContentChanges() {\n this._updatePagination();\n this._alignActiveIndicatorToSelectedTab();\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Updating the view whether pagination should be enabled or not\n */\n _updatePagination() {\n this._checkPaginationEnabled();\n this._checkScrollingControls();\n this._updateTabScrollPosition();\n }\n\n /**\n * Evaluate whether the pagination controls should be displayed. If the scroll width of the\n * tab list is wider than the size of the header container, then the pagination controls should\n * be shown.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _checkPaginationEnabled() {\n const isEnabled =\n this._tabList.nativeElement.scrollWidth >\n this._paginationWrapper.nativeElement.offsetWidth + 2; // 2 is the border size\n if (!isEnabled) {\n this.scrollDistance = 0;\n }\n const detectChanges = isEnabled !== this._showPaginationControls;\n this._showPaginationControls = isEnabled;\n\n if (detectChanges) {\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Evaluate whether the before and after controls should be enabled or disabled.\n * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the\n * before button. If the header is at the end of the list (scroll distance is equal to the\n * maximum distance we can scroll), then disable the after button.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _checkScrollingControls() {\n // Check if the pagination arrows should be activated.\n this._disableScrollBefore = this.scrollDistance === 0;\n this._disableScrollAfter =\n this.scrollDistance === this._getMaxScrollDistance();\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Determines what is the maximum length in pixels that can be set for the scroll distance. This\n * is equal to the difference in width between the tab list container and tab header container.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _getMaxScrollDistance(): number {\n const lengthOfTabList = this._tabList.nativeElement.scrollWidth;\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n return lengthOfTabList - viewLength || 0;\n }\n\n /** Performs the CSS transformation on the tab list that will cause the list to scroll. */\n _updateTabScrollPosition() {\n const scrollDistance = this.scrollDistance;\n const translateX = -scrollDistance;\n // Don't use `translate3d` here because we don't want to create a new layer. A new layer\n // seems to cause flickering and overflow in Internet Explorer. For example, the ink bar\n // and ripples will exceed the boundaries of the visible tab bar.\n // See: https://github.com/angular/material2/issues/10276\n this._tabList.nativeElement.style.transform = `translateX(${translateX}px)`;\n }\n\n /** Tells the active indicator to align itself to the current label wrapper */\n _alignActiveIndicatorToSelectedTab(): void {\n const selectedLabelWrapper =\n this._labelWrappers?.length > 0\n ? this._labelWrappers.toArray()[this.selectedIndex].elementRef\n .nativeElement\n : null;\n this._activeIndicator.alignToElement(selectedLabelWrapper);\n }\n\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _viewportRuler: ViewportRuler,\n ) {}\n}\n","<div [ngClass]=\"bem.block(type, size)\">\n <ng-container *ngIf=\"_title\">\n <div [ngClass]=\"bem.element('title')\">\n <ng-template [cdkPortalOutlet]=\"_title\"></ng-template>\n </div>\n </ng-container>\n <div [ngClass]=\"bem.element('header-wrapper')\">\n <div\n [ngClass]=\"bem.element('pagination-wrapper')\"\n #paginationWrapper\n >\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('before')\"\n [attr.disabled]=\"_disableScrollBefore ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </div>\n <div\n [ngClass]=\"bem.element('tab-list-container')\"\n (keydown)=\"_handleKeydown($event)\"\n #tabListContainer\n >\n <div\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\"\n [ngClass]=\"bem.element('tab-list')\"\n #tabList\n >\n <div [ngClass]=\"bem.element('labels')\"><ng-content></ng-content></div>\n <aui-tab-header-active-indicator\n [type]=\"type\"\n ></aui-tab-header-active-indicator>\n </div>\n </div>\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('after')\"\n [attr.disabled]=\"_disableScrollAfter ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </div>\n </div>\n <!-- If there is addon template, use it. -->\n <ng-container *ngIf=\"_showAddon\">\n <div [ngClass]=\"bem.element('addon')\">\n <ng-template [cdkPortalOutlet]=\"_headerAddon\"></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n","/* eslint-disable no-prototype-builtins */\nimport {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, Subscription, merge } from 'rxjs';\n\nimport { Bem, buildBem, coerceNumber } from '../utils';\n\nimport {\n TabHeaderAddonDirective,\n TabTitleDirective,\n} from './tab-body.component';\nimport { TabHeaderComponent } from './tab-header.component';\nimport { TabComponent } from './tab.component';\nimport { TabSize, TabType } from './tabs.types';\n\n/** A simple change event emitted on focus or selection changes. */\nexport class TabChangeEvent {\n /** Index of the currently-selected tab. */\n index: number;\n /** Reference to the currently-selected tab. */\n tab: TabComponent;\n}\n\n@Component({\n selector: 'aui-tab-group',\n exportAs: 'auiTabGroup',\n templateUrl: './tab-group.component.html',\n styleUrls: ['./tab-group.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n})\nexport class TabGroupComponent\n implements OnChanges, AfterContentChecked, AfterContentInit, OnDestroy\n{\n bem: Bem = buildBem('aui-tab-group');\n\n @ContentChildren(TabComponent)\n _tabs: QueryList<TabComponent>;\n\n @ContentChild(TabHeaderAddonDirective, { static: false })\n _headerAddon: TabHeaderAddonDirective;\n\n @ViewChild(TabHeaderComponent, { static: false })\n _tabHeader: TabHeaderComponent;\n\n @ContentChild(TabTitleDirective, { static: false })\n _tabTitle: TabTitleDirective;\n\n /** The tab index that should be selected after the content has been checked. */\n private _indexToSelect: number | null = 0;\n\n /** Subscription to tabs being added/removed. */\n private _tabsSubscription = Subscription.EMPTY;\n\n /** Subscription to changes in the tab labels. */\n private _tabLabelSubscription = Subscription.EMPTY;\n\n private _selectedIndex: number | null = null;\n private _tab: string = null;\n private _type: TabType = TabType.Line;\n private _size: TabSize = TabSize.Medium;\n\n /** true lazy mode for template ref children */\n private _lazy: boolean;\n\n private _previousHeaderAddon: TabHeaderAddonDirective;\n\n /** Emits whenever the type changes */\n readonly _typeChange = new Subject<void>();\n\n /** Emits whenever the size changes */\n readonly _sizeChange = new Subject<void>();\n\n /** The index of the active tab. */\n @Input()\n get selectedIndex(): number | null {\n return this._selectedIndex;\n }\n\n set selectedIndex(value: number | null) {\n this._indexToSelect = coerceNumber(value, null);\n this._changeActivatedTabs();\n }\n\n @Input()\n get tab(): string {\n return this._tab;\n }\n\n set tab(value: string) {\n this._tab = value;\n if (this._tabs) {\n this.selectedIndex = this._findIndexByTab(value);\n }\n }\n\n @Input()\n get type() {\n return this._type;\n }\n\n set type(type: TabType) {\n this._type = type;\n }\n\n @Input()\n title: string | TemplateRef<unknown>;\n\n @Input()\n get size() {\n return this._size;\n }\n\n set size(val) {\n if (!val || this._size === val) {\n return;\n }\n this._size = val;\n }\n\n @Input()\n get lazy() {\n return this._lazy;\n }\n\n set lazy(lazy: boolean) {\n if (this._lazy === lazy) {\n return;\n }\n this._lazy = lazy;\n if (lazy) {\n this._changeActivatedTabs();\n } else {\n this.activatedTabs.length = 0;\n }\n }\n\n /** Output to enable support for two-way binding on `[(selectedIndex)]` */\n @Output()\n readonly selectedIndexChange = new EventEmitter<number>();\n\n @Output()\n readonly tabChange = new EventEmitter<string>();\n\n /** Event emitted when the tab selection has changed. */\n @Output()\n readonly selectedTabChange = new EventEmitter<TabChangeEvent>(true);\n\n /** Event emitted when focus has changed within a tab group. */\n @Output()\n readonly focusChange: EventEmitter<TabChangeEvent> = new EventEmitter<TabChangeEvent>();\n\n constructor(private readonly _changeDetectorRef: ChangeDetectorRef) {}\n\n activatedTabs: TabComponent[] = [];\n\n get activeTab() {\n return this._tabs.length > 0 && this.selectedIndex !== null\n ? this._tabs.toArray()[this.selectedIndex]\n : null;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.hasOwnProperty('type')) {\n this._typeChange.next();\n }\n\n if (changes.hasOwnProperty('size')) {\n this._sizeChange.next();\n }\n }\n\n /**\n * After the content is checked, this component knows what tabs have been defined\n * and what the selected index should be. This is where we can know exactly what position\n * each tab should be in according to the new selected index.\n */\n ngAfterContentChecked(): void {\n // Don't clamp the `indexToSelect` immediately in the setter because it can happen that\n // the amount of tabs changes before the actual change detection runs.\n const indexToSelect = (this._indexToSelect = this._clampTabIndex(\n this._indexToSelect,\n ));\n\n // If there is a change in selected index, emit a change event. Should not trigger if\n // the selected index has not yet been initialized.\n if (this._selectedIndex !== indexToSelect && this._selectedIndex != null) {\n this._changeActivatedTabs();\n const tabChangeEvent = this._createChangeEvent(indexToSelect);\n this.selectedTabChange.emit(tabChangeEvent);\n // Emitting this value after change detection has run\n // since the checked content may contain this variable'\n Promise.resolve().then(() => {\n this.selectedIndexChange.emit(indexToSelect);\n this.tabChange.emit(this._tabs.get(indexToSelect).name);\n });\n }\n\n // Setup the position for each tab and optionally setup an origin on the next selected tab.\n this._tabs.forEach((tab: TabComponent, index: number) => {\n tab.position = index - indexToSelect;\n tab.tabContext.isActive = index === indexToSelect;\n // If there is already a selected tab, then set up an origin for the next selected tab\n // if it doesn't have one already.\n if (this._selectedIndex != null && tab.position === 0 && !tab.origin) {\n tab.origin = indexToSelect - this._selectedIndex;\n }\n });\n\n if (this._selectedIndex !== indexToSelect) {\n this._selectedIndex = indexToSelect;\n this._changeDetectorRef.markForCheck();\n }\n\n if (this._previousHeaderAddon !== this._headerAddon) {\n this._previousHeaderAddon = this._headerAddon;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n ngAfterContentInit() {\n if (this.tab) {\n this._indexToSelect = this._findIndexByTab(this.tab);\n }\n\n this._changeActivatedTabs();\n this._subscribeToTabLabels();\n // Subscribe to changes in the amount of tabs, in order to be\n // able to re-render the content as new tabs are added or removed.\n this._tabsSubscription = this._tabs.changes.subscribe(() => {\n const tabs = this._tabs.toArray();\n if (this._lazy) {\n this.activatedTabs = this.activatedTabs.filter(tab =>\n tabs.includes(tab),\n );\n }\n const indexToSelect = this._clampTabIndex(this._indexToSelect);\n // Maintain the previously-selected tab if a new tab is added or removed and there is no\n // explicit change that selects a different tab.\n if (indexToSelect === this._selectedIndex) {\n for (const [i, tab] of tabs.entries()) {\n if (tab.tabContext.isActive) {\n // Assign both to the `_indexToSelect` and `_selectedIndex` so we don't fire a changed\n // event, otherwise the consumer may end up in an infinite loop in some edge cases like\n // adding a tab within the `selectedIndexChange` event.\n this._indexToSelect = this._selectedIndex = i;\n break;\n }\n }\n }\n this._changeActivatedTabs();\n this._subscribeToTabLabels();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n ngOnDestroy() {\n this._tabsSubscription.unsubscribe();\n this._tabLabelSubscription.unsubscribe();\n\n this._typeChange.complete();\n this._sizeChange.complete();\n }\n\n /** Handle click events, setting new selected index if appropriate. */\n _handleClick(tab: TabComponent, idx: number) {\n if (!tab.disabled) {\n this.selectedIndex = this._tabHeader.focusIndex = idx;\n }\n }\n\n _focusChanged(index: number) {\n this.focusChange.emit(this._createChangeEvent(index));\n }\n\n /** Re-aligns the ink bar to the selected tab element. */\n realignActiveIndicator() {\n if (this._tabHeader) {\n this._tabHeader._alignActiveIndicatorToSelectedTab();\n }\n }\n\n private _changeActivatedTabs() {\n if (\n !this._lazy ||\n !this._tabs ||\n this._indexToSelect < 0 ||\n this._indexToSelect >= this._tabs.length\n ) {\n return;\n }\n const tab = this._tabs.find((_, index) => index === this._indexToSelect);\n if (tab && !this.activatedTabs.includes(tab)) {\n this.activatedTabs.push(tab);\n }\n }\n\n /** Clamps the given index to the bounds of 0 and the tabs length. */\n private _clampTabIndex(index: number | null): number {\n // Note the `|| 0`, which ensures that values like NaN can't get through\n // and which would otherwise throw the component into an infinite loop\n // (since Math.max(NaN, 0) === NaN).\n return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));\n }\n\n private _findIndexByTab(name: string) {\n return Math.max(\n this._tabs.toArray().findIndex(tab => tab.name === name),\n 0,\n );\n }\n\n private _createChangeEvent(index: number): TabChangeEvent {\n const event = new TabChangeEvent();\n event.index = index;\n if (this._tabs?.length > 0) {\n event.tab = this._tabs.toArray()[index];\n }\n return event;\n }\n\n /**\n * Subscribes to changes in the tab labels. This is needed, because the @Input for the label is\n * on the Tab component, whereas the data binding is inside the TabGroup. In order for the\n * binding to be updated, we need to subscribe to changes in it and trigger change detection\n * manually.\n */\n private _subscribeToTabLabels() {\n if (this._tabLabelSubscription) {\n this._tabLabelSubscription.unsubscribe();\n }\n this._tabLabelSubscription = merge(\n ...this._tabs.map(tab => tab._stateChanges),\n this._typeChange,\n this._sizeChange,\n ).subscribe(() => {\n this.realignActiveIndicator();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /** Retrieves the tabindex for the tab. */\n _getTabIndex(tab: TabComponent, idx: number): number | null {\n if (tab.disabled) {\n return null;\n }\n return this.selectedIndex === idx ? 0 : -1;\n }\n}\n","<div [ngClass]=\"bem.block()\">\n <aui-tab-header\n [selectedIndex]=\"selectedIndex\"\n [type]=\"type\"\n [size]=\"size\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\"\n >\n <ng-container *ngIf=\"_tabTitle\">\n <ng-container *auiTabTitle>\n <ng-template [cdkPortalOutlet]=\"_tabTitle\"></ng-template>\n </ng-container>\n </ng-container>\n <div\n role=\"tab\"\n *ngFor=\"let tab of _tabs; let i = index\"\n auiTabLabelWrapper\n cdkMonitorElementFocus\n [class.isActive]=\"selectedIndex === i\"\n [class.closeable]=\"tab.closeable && !tab.disabled\"\n [disabled]=\"tab.disabled\"\n (click)=\"_handleClick(tab, i)\"\n [title]=\"tab.textLabel\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-label]=\"tab.textLabel\"\n >\n <div class=\"aui-tab-label__content\">\n <!-- If there is a label template, use it. -->\n <ng-template [ngIf]=\"tab.templateLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n </ng-template>\n <!-- If there is not a label template, fall back to the text label. -->\n <ng-template [ngIf]=\"!tab.templateLabel\">\n {{ tab.textLabel }}\n </ng-template>\n </div>\n\n <aui-icon\n *ngIf=\"tab.closeable && !tab.disabled\"\n class=\"aui-tab-label__close\"\n icon=\"close_small\"\n (click)=\"tab.close.emit(); $event.stopPropagation()\"\n ></aui-icon>\n </div>\n\n <ng-container *ngIf=\"_headerAddon\">\n <ng-container *auiTabHeaderAddon>\n <ng-template [cdkPortalOutlet]=\"_headerAddon\"></ng-template>\n </ng-container>\n </ng-container>\n </aui-tab-header>\n\n <div [class]=\"bem.element('body-wrapper')\">\n <ng-container *ngIf=\"lazy\">\n <aui-tab-body\n role=\"tabpanel\"\n *ngFor=\"let tab of activatedTabs\"\n [content]=\"tab.content\"\n [hidden]=\"tab !== activeTab\"\n ></aui-tab-body>\n </ng-container>\n <aui-tab-body\n role=\"tabpanel\"\n *ngIf=\"!lazy && activeTab\"\n [content]=\"activeTab.content\"\n ></aui-tab-body>\n </div>\n</div>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '../button';\nimport { IconModule } from '../icon';\n\nimport {\n TabBodyComponent,\n TabBodyPortalDirective,\n TabContentDirective,\n TabHeaderAddonDirective,\n TabLabelDirective,\n TabLabelWrapperDirective,\n TabTitleDirective,\n} from './tab-body.component';\nimport { TabGroupComponent } from './tab-group.component';\nimport { TabHeaderActiveIndicatorComponent } from './tab-header-active-indicator.component';\nimport { TabHeaderComponent } from './tab-header.component';\nimport { TabComponent } from './tab.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n PortalModule,\n ButtonModule,\n IconModule,\n A11yModule,\n ObserversModule,\n ],\n declarations: [\n TabGroupComponent,\n TabComponent,\n TabLabelDirective,\n TabContentDirective,\n TabHeaderAddonDirective,\n TabTitleDirective,\n TabHeaderComponent,\n TabBodyComponent,\n TabBodyPortalDirective,\n TabLabelWrapperDirective,\n TabHeaderActiveIndicatorComponent,\n ],\n exports: [\n TabGroupComponent,\n TabComponent,\n TabLabelDirective,\n TabContentDirective,\n TabHeaderAddonDirective,\n TabTitleDirective,\n TabLabelWrapperDirective,\n TabHeaderComponent,\n ],\n})\nexport class TabsModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'aui-tree-node-placeholder',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class TreeNodePlaceholderComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n forwardRef,\n QueryList,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n BehaviorSubject,\n combineLatest,\n map,\n Observable,\n of,\n startWith,\n Subject,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport { CommonFormControl } from '../form';\nimport { InputComponent } from '../input';\nimport { TrackFn } from '../select/select.types';\nimport { TooltipDirective } from '../tooltip';\nimport {\n Bem,\n buildBem,\n coerceAttrBoolean,\n coerceString,\n publishRef,\n scrollIntoView,\n} from '../utils';\n\nimport { TreeNode } from './tree-select.types';\n\n@Component({\n selector: 'aui-tree-select',\n templateUrl: './tree-select.component.html',\n styleUrls: ['./tree-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TreeSelectComponent),\n multi: true,\n },\n ],\n})\nexport class TreeSelectComponent<T = unknown> extends CommonFormControl<T> {\n @Input()\n get nodesData() {\n return this._nodesData;\n }\n\n set nodesData(val) {\n if (!val || val === this._nodesData) {\n return;\n }\n this._nodesData = val;\n this.flattedNodes = this.flatNodesData(val);\n this.updateSelectDisplay(this.propValue);\n }\n\n @Input()\n loading = false;\n\n @Input()\n placeholder = '';\n\n @Input()\n get filterable() {\n return this._filterable;\n }\n\n set filterable(val: boolean | '') {\n this._filterable = coerceAttrBoolean(val);\n }\n\n @Input()\n get clearable() {\n return this._clearable;\n }\n\n set clearable(val: boolean | '') {\n this._clearable = coerceAttrBoolean(val);\n }\n\n @Input()\n get leafOnly() {\n return this._leafOnly;\n }\n\n set leafOnly(val: boolean | '') {\n this._leafOnly = coerceAttrBoolean(val);\n }\n\n @Input()\n filterFn = this._filterFn;\n\n @Input()\n trackFn: TrackFn<T> = this._trackFn;\n\n @Input()\n labelFn?: (value: T) => string;\n\n @Output()\n filterChange = new EventEmitter<string>();\n\n @Output()\n show = new EventEmitter<void>();\n\n @Output()\n hide = new EventEmitter<void>();\n\n @ViewChild('selectRef', { static: true })\n protected selectRef: ElementRef<HTMLElement>;\n\n @ViewChild('tooltipRef', { static: true })\n protected tooltipRef: TooltipDirective;\n\n @ViewChild('nodeListRef', { static: true })\n nodeListRef: ElementRef<HTMLElement>;\n\n @ViewChild('inputRef', { static: true })\n inputRef: InputComponent;\n\n private _nodesData: Array<TreeNode<T>> = [];\n private _filterString = '';\n private _filterable = false;\n private _clearable = false;\n private _leafOnly = false;\n private readonly filterString$$ = new BehaviorSubject(this.filterString);\n\n filterString$: Observable<string> = this.filterString$$.asObservable();\n\n containerWidth: string;\n displayText = '';\n flattedNodes: Array<TreeNode<T>> = [];\n\n get isClearable() {\n return !this.disabled && this.clearable && this.getInputValue();\n }\n\n get opened() {\n return this.tooltipRef.isCreated;\n }\n\n get inputReadonly() {\n return !(this.filterable && this.opened);\n }\n\n get filterString() {\n return this._filterString;\n }\n\n set filterString(val) {\n if (val !== this._filterString) {\n this._filterString = val;\n this.filterString$$.next(val);\n this.filterChange.emit(val);\n }\n }\n\n openNodes() {\n this.tooltipRef.createTooltip();\n }\n\n closeNodes() {\n this.tooltipRef.disposeTooltip();\n }\n\n updatePosition() {\n this.tooltipRef.updatePosition();\n }\n\n onShowNodes() {\n this.containerWidth = this.selectRef.nativeElement.offsetWidth + 'px';\n this.show.emit();\n this.cdr.detectChanges();\n }\n\n onHideNodes() {\n if (this.onTouched) {\n this.onTouched();\n }\n this.filterString = '';\n this.hide.emit();\n }\n\n onInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.filterString = value;\n this.cdr.markForCheck();\n }\n\n onNodeClick(node: TreeNodeComponent<T>) {\n this.selectNode(node);\n }\n\n getVisibleNodeCount() {\n return this.flattedNodes.filter(node =>\n this.filterFn(this.filterString, node),\n ).length;\n }\n\n selectNode(node: TreeNodeComponent<T>) {\n if (!node.selected) {\n this.emitValue(node.nodeData.value);\n if (this.onChange) {\n this.closeNodes();\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.closeOption();\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n closeOption() {\n this.tooltipRef.disposeTooltip();\n }\n\n updateSelectDisplay(value: any) {\n const pickedNode = this.flattedNodes.find(\n node => this.trackFn(node.value) === this.trackFn(value),\n );\n this.displayText = pickedNode\n ? this.getLabelFromNode(pickedNode).toString()\n : coerceString(this.trackFn(value));\n }\n\n clearValue(event: Event) {\n this.emitValue(null);\n event.stopPropagation();\n event.preventDefault();\n }\n\n protected override valueIn(v: T): T {\n this.updateSelectDisplay(v);\n this.closeNodes();\n return v;\n }\n\n getPlaceholder() {\n return this.filterable && this.opened ? this.displayText : this.placeholder;\n }\n\n getInputValue() {\n return this.filterable && this.opened ? '' : this.displayText;\n }\n\n // `this` is not available in `trackBy`...\n trackByLabel = (_: number, node: TreeNode<T>) => this.getLabelFromNode(node);\n\n private flatNodesData(nodes: Array<TreeNode<T>> = []): Array<TreeNode<T>> {\n return nodes.reduce(\n (prevValue: Array<TreeNode<T>>, currentNode) =>\n prevValue.concat(currentNode, this.flatNodesData(currentNode.children)),\n [],\n );\n }\n\n private getLabelFromNode(node: TreeNode<T>) {\n return (\n this.labelFn?.(node.value) ||\n node.label ||\n coerceString(this.trackFn(node.value))\n );\n }\n\n private _filterFn(filterString: string, node: TreeNode<T>) {\n return this.getLabelFromNode(node)?.includes(filterString ?? '');\n }\n\n private _trackFn<T>(value: T) {\n return value;\n }\n}\n\n@Component({\n selector: 'aui-tree-node',\n templateUrl: './tree-node.component.html',\n styleUrls: ['./tree-node.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class TreeNodeComponent<T> implements AfterViewInit, OnDestroy {\n bem: Bem = buildBem('aui-tree-node');\n\n private _nodeData: TreeNode<T>;\n private readonly nodeData$$ = new BehaviorSubject<TreeNode<T>>(this.nodeData);\n private readonly destroy$$ = new Subject<void>();\n\n @Input()\n get nodeData() {\n return this._nodeData;\n }\n\n set nodeData(val) {\n if (val === this._nodeData) {\n return;\n }\n this._nodeData = val;\n this.nodeData$$.next(val);\n }\n\n @Input()\n get leafOnly() {\n return this._leafOnly;\n }\n\n set leafOnly(val: boolean | '') {\n this._leafOnly = coerceAttrBoolean(val);\n }\n\n @ViewChild('titleRef', { static: true })\n titleRef: ElementRef<HTMLElement>;\n\n @ViewChildren(TreeNodeComponent)\n childNodes: QueryList<TreeNodeComponent<T>>;\n\n selected = false;\n visible = true;\n isLeaf = false;\n\n private _leafOnly = true;\n private readonly select: TreeSelectComponent<T>;\n selected$: Observable<boolean>;\n selfVisible$: Observable<boolean>;\n visible$: Observable<boolean>;\n\n constructor(\n select: TreeSelectComponent<T>,\n private readonly cdr: ChangeDetectorRef,\n ) {\n this.select = select;\n this.selected$ = combineLatest([\n this.select.model$,\n this.nodeData$$.pipe(map(data => data.value)),\n ]).pipe(\n map(\n ([selectValue, selfValue]) =>\n selectValue &&\n this.select.trackFn(selectValue) === this.select.trackFn(selfValue),\n ),\n tap(selected => {\n this.selected = selected;\n }),\n publishRef(),\n );\n this.selfVisible$ = combineLatest([\n this.select.filterString$,\n this.nodeData$$,\n ]).pipe(\n map(([filterString, nodeData]) =>\n this.select.filterFn(filterString, nodeData),\n ),\n publishRef(),\n );\n }\n\n ngAfterViewInit() {\n const hasVisibleChildNodes$ = this.childNodes.changes.pipe(\n startWith(this.childNodes),\n switchMap((nodes: QueryList<TreeNodeComponent<T>>) =>\n nodes.length > 0\n ? combineLatest(nodes.map(node => node.visible$))\n : of([false]),\n ),\n map(visible => visible.some(Boolean)),\n tap(hasVisibleChildren => (this.isLeaf = !hasVisibleChildren)),\n );\n this.visible$ = combineLatest([\n this.selfVisible$,\n hasVisibleChildNodes$,\n ]).pipe(\n map(visible => visible.some(Boolean)),\n publishRef(),\n );\n\n this.visible$.pipe(takeUntil(this.destroy$$)).subscribe(visible => {\n this.visible = visible;\n this.cdr.markForCheck();\n });\n this.selected$.pipe(takeUntil(this.destroy$$)).subscribe(selected => {\n this.selected = selected;\n this.cdr.markForCheck();\n });\n\n if (this.selected) {\n requestAnimationFrame(() => {\n this.scrollToNode(this);\n });\n }\n }\n\n ngOnDestroy() {\n this.destroy$$.next();\n this.destroy$$.complete();\n }\n\n onClick() {\n if (this.nodeData.disabled) {\n return;\n }\n if (this.leafOnly && !this.isLeaf) {\n this.switchExpanded();\n return;\n }\n this.select.onNodeClick(this);\n }\n\n switchExpanded() {\n this.nodeData.expanded = !this.nodeData.expanded;\n if (this.nodeData.expanded && this.childNodes.last) {\n requestAnimationFrame(() => {\n this.scrollToNode(this.childNodes.last);\n });\n }\n requestAnimationFrame(() => {\n this.select.updatePosition();\n });\n }\n\n getIcon() {\n return this.nodeData.expanded\n ? this.nodeData.expandedIcon || this.nodeData.icon\n : this.nodeData.icon;\n }\n\n trackByLabel(_: number, data: TreeNode<T>) {\n return data.label;\n }\n\n scrollToNode(node: TreeNodeComponent<T>) {\n if (this.select.nodeListRef) {\n scrollIntoView(\n this.select.nodeListRef.nativeElement,\n node.titleRef.nativeElement,\n );\n }\n }\n}\n","<div\n class=\"aui-tree-select\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipShow)=\"onShowNodes()\"\n (auiTooltipHide)=\"onHideNodes()\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-tree-select__input\"\n autocomplete=\"off\"\n aui-input\n [value]=\"getInputValue()\"\n [disabled]=\"disabled\"\n [placeholder]=\"getPlaceholder()\"\n [readonly]=\"inputReadonly\"\n (input)=\"onInput($event)\"\n (blur)=\"closeNodes()\"\n (keydown)=\"onKeyDown($event)\"\n />\n <span\n auiInputSuffix\n class=\"aui-tree-select__icon-container\"\n >\n <aui-icon\n class=\"aui-tree-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-tree-select__clear\"\n icon=\"close_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n class=\"aui-tree-node-container\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #nodeListRef\n class=\"aui-tree-node-container__content\"\n >\n <aui-tree-node\n *ngFor=\"let data of nodesData; trackBy: trackByLabel\"\n [nodeData]=\"data\"\n [leafOnly]=\"leafOnly\"\n ></aui-tree-node>\n </div>\n <div\n *ngIf=\"!getVisibleNodeCount()\"\n class=\"aui-tree-node-container__placeholder\"\n >\n <ng-content select=\"aui-tree-node-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n","<div\n [hidden]=\"!visible\"\n class=\"aui-tree-node\"\n [class.isDisabled]=\"nodeData.disabled\"\n [class.isSelected]=\"selected\"\n [attr.data-value]=\"nodeData.value\"\n>\n <div class=\"aui-tree-node__content\">\n <aui-icon\n *ngIf=\"nodeData.children\"\n class=\"aui-tree-node__indicator\"\n [icon]=\"nodeData.expanded ? 'angle_down' : 'angle_right'\"\n (click)=\"switchExpanded()\"\n ></aui-icon>\n <span\n #titleRef\n class=\"aui-tree-node__title\"\n [class.isDisabled]=\"nodeData.disabled\"\n [class.isSelected]=\"selected\"\n [class.unselectable]=\"leafOnly && !isLeaf\"\n (click)=\"onClick()\"\n >\n <aui-icon\n *ngIf=\"nodeData.icon\"\n margin=\"right\"\n [icon]=\"getIcon()\"\n ></aui-icon>\n {{ nodeData.label }}\n </span>\n </div>\n <div\n *ngIf=\"nodeData.children\"\n [hidden]=\"!nodeData.expanded\"\n class=\"aui-tree-node__children\"\n >\n <aui-tree-node\n *ngFor=\"let data of nodeData.children; trackBy: trackByLabel\"\n [nodeData]=\"data\"\n [leafOnly]=\"leafOnly\"\n ></aui-tree-node>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '../icon';\nimport { InputModule } from '../input';\nimport { TooltipModule } from '../tooltip';\n\nimport { TreeNodePlaceholderComponent } from './tree-node-placeholder.component';\nimport {\n TreeNodeComponent,\n TreeSelectComponent,\n} from './tree-select.component';\n\n@NgModule({\n imports: [CommonModule, TooltipModule, IconModule, InputModule],\n declarations: [\n TreeSelectComponent,\n TreeNodeComponent,\n TreeNodePlaceholderComponent,\n ],\n exports: [\n TreeSelectComponent,\n TreeNodeComponent,\n TreeNodePlaceholderComponent,\n ],\n})\nexport class TreeSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThemeService","i1.IconRegisterService","i3.ThemePickerPipe","prefix","i1","i2.IconComponent","i3","i1.AccordionComponent","i2","i3.IconComponent","i4","bem","i1.BaseTooltip","i2.TooltipCopyIntl","i1.IconComponent","i1.FormDirective","uniqueId","i1.I18nService","i1.ButtonComponent","i4.I18nPipe","i3.I18nPipe","i1.InputGroupComponent","i2.InputComponent","i4.TimePickerPanelComponent","i5.TooltipDirective","i6","i7","i8.InputSuffixDirective","i1.CalendarHeaderComponent","i2.PickerPanelComponent","i3.CalendarFooterComponent","i4.TimePickerComponent","i5.ButtonComponent","i8.I18nPipe","i5","i7.I18nPipe","i3.ClickOutsideDirective","i2.TagComponent","i1.InputComponent","i1.DatePickerTriggerComponent","i2.DatePickerPanelComponent","i3.TooltipDirective","i2.DateRangePickerPanelComponent","i1.DialogRef","i3.ButtonComponent","i2.DialogService","i3.DropdownDirective","i2.MenuComponent","i3.TooltipActiveDirective","i4.TooltipDirective","i4.OptionComponent","i6.InputSuffixDirective","i1.PaginatorIntl","i2.ButtonComponent","i4.SelectComponent","i5.OptionComponent","i6.InputComponent","i3.OptionComponent","i6.I18nPipe","i1.SelectComponent","i1.RadioGroupComponent","i2.TablePlaceholderOutletDirective","CdkScrollable","i2.TableComponent","i1.SortDirective","i2.TooltipDirective","i1.TocContainerDirective","i1.TabContextService","i3.TabHeaderActiveIndicatorComponent","i1.TabHeaderComponent","i3.TabBodyComponent","i3.TabTitleDirective","i3.TabLabelWrapperDirective","i3.TabHeaderAddonDirective","i5.InputSuffixDirective"],"mappings":"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"}