ngx-tethys 19.1.0-next.0 → 19.1.0-next.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +126 -0
- package/README.md +0 -1
- package/action/action.component.d.ts +7 -8
- package/affix/affix.component.d.ts +3 -4
- package/arrow-switcher/arrow-switcher.component.d.ts +5 -1
- package/badge/badge.component.d.ts +1 -1
- package/button/button-group.component.d.ts +5 -12
- package/button/button-icon.component.d.ts +14 -28
- package/button/button.component.d.ts +17 -27
- package/color-picker/coordinates.directive.d.ts +1 -2
- package/date-picker/abstract-picker.component.d.ts +50 -52
- package/date-picker/abstract-picker.directive.d.ts +15 -40
- package/date-picker/base-picker.component.d.ts +12 -40
- package/date-picker/date-picker.config.d.ts +3 -0
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +24 -19
- package/date-picker/lib/calendar/calendar-header.component.d.ts +15 -15
- package/date-picker/lib/calendar/calendar-table.component.d.ts +15 -16
- package/date-picker/lib/date/date-table-cell.component.d.ts +6 -3
- package/date-picker/lib/date/date-table.component.d.ts +2 -3
- package/date-picker/lib/date-carousel/date-carousel.component.d.ts +2 -3
- package/date-picker/lib/decade/decade-header.component.d.ts +2 -5
- package/date-picker/lib/decade/decade-table.component.d.ts +3 -5
- package/date-picker/lib/month/month-table.component.d.ts +1 -2
- package/date-picker/lib/popups/date-popup.component.d.ts +33 -34
- package/date-picker/lib/popups/inner-popup.component.d.ts +22 -29
- package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -4
- package/date-picker/lib/year/year-header.component.d.ts +2 -4
- package/date-picker/lib/year/year-table.component.d.ts +2 -4
- package/date-picker/month-picker.component.d.ts +2 -2
- package/date-picker/picker.component.d.ts +31 -36
- package/date-picker/picker.pipes.d.ts +4 -5
- package/date-picker/picker.util.d.ts +5 -5
- package/date-picker/picker.validators.d.ts +4 -8
- package/date-picker/quarter-picker.component.d.ts +2 -3
- package/date-picker/styles/calendar.scss +1 -1
- package/date-picker/styles/range-picker.scss +1 -0
- package/date-picker/styles/week-picker.scss +1 -0
- package/date-picker/week-picker.component.d.ts +0 -1
- package/date-picker/year-picker.component.d.ts +2 -3
- package/dropdown/dropdown-active.directive.d.ts +4 -5
- package/dropdown/dropdown-menu-item.directive.d.ts +7 -15
- package/dropdown/dropdown-menu.component.d.ts +6 -13
- package/dropdown/dropdown-submenu.component.d.ts +2 -4
- package/dropdown/dropdown.directive.d.ts +15 -25
- package/empty/empty.component.d.ts +2 -1
- package/fesm2022/ngx-tethys-action.mjs +15 -16
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +14 -18
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +15 -3
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +4 -4
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +225 -322
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +1 -0
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +2 -2
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +2 -2
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +4 -6
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +2 -2
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +861 -1078
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +5 -5
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +159 -209
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +5 -2
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +68 -88
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +10 -15
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +26 -6
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +44 -59
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +44 -42
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +291 -334
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +183 -217
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +29 -36
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +33 -41
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +7 -11
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +8 -19
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +46 -58
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +115 -157
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +100 -143
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +84 -103
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +164 -228
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +423 -586
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +1 -2
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +37 -56
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +2 -8
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +52 -66
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +1 -2
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +244 -271
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +109 -93
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +98 -119
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +216 -284
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +281 -401
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +2 -2
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +53 -99
- package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/flexible-text/flexible-text.component.d.ts +9 -15
- package/grid/flex.d.ts +1 -3
- package/grid/thy-row.directive.d.ts +1 -4
- package/i18n/i18n.d.ts +7 -2
- package/i18n/locales/de-de.d.ts +5 -1
- package/i18n/locales/en-us.d.ts +5 -1
- package/i18n/locales/ja-jp.d.ts +5 -1
- package/i18n/locales/zh-hans.d.ts +5 -1
- package/i18n/locales/zh-hant.d.ts +5 -1
- package/icon/icon.component.d.ts +10 -18
- package/image/image.directive.d.ts +10 -13
- package/image/image.token.d.ts +5 -5
- package/image/preview/image-preview.component.d.ts +2 -2
- package/input-number/input-number.component.d.ts +1 -1
- package/layout/header.component.d.ts +15 -19
- package/layout/layout.component.d.ts +3 -2
- package/layout/sidebar-header.component.d.ts +7 -8
- package/layout/sidebar.component.d.ts +32 -62
- package/list/list-item-meta.component.d.ts +7 -9
- package/list/list-item.component.d.ts +0 -2
- package/list/list.component.d.ts +2 -8
- package/list/selection/selection-list.d.ts +33 -46
- package/message/abstract/abstract-message.component.d.ts +2 -3
- package/message/message-container.component.d.ts +0 -1
- package/message/message.component.d.ts +1 -3
- package/notify/notify-container.component.d.ts +0 -1
- package/notify/notify.component.d.ts +7 -12
- package/package.json +1 -1
- package/progress/progress-circle.component.d.ts +3 -5
- package/progress/progress.component.d.ts +2 -4
- package/property/properties.component.d.ts +0 -2
- package/property/property-item.component.d.ts +3 -10
- package/radio/group/radio-group.component.d.ts +5 -9
- package/rate/rate-item.component.d.ts +8 -11
- package/rate/rate.component.d.ts +18 -29
- package/resizable/resizable.directive.d.ts +20 -32
- package/resizable/resize-handle.component.d.ts +6 -7
- package/resizable/resize-handles.component.d.ts +5 -9
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/segment-item.component.d.ts +9 -15
- package/segment/segment.component.d.ts +11 -15
- package/segment/segment.token.d.ts +4 -3
- package/select/custom-select/custom-select.component.d.ts +33 -56
- package/select/native-select/native-select.component.d.ts +7 -13
- package/shared/base-form-check.component.d.ts +6 -8
- package/shared/directives/string-or-template-outlet.directive.d.ts +5 -6
- package/shared/directives/thy-autofocus.directive.d.ts +4 -6
- package/shared/directives/thy-contextmenu.directive.d.ts +2 -2
- package/shared/directives/thy-ctrl-enter.directive.d.ts +2 -2
- package/shared/directives/thy-enter.directive.d.ts +2 -2
- package/shared/directives/thy-scroll.directive.d.ts +5 -8
- package/shared/directives/thy-show.d.ts +5 -6
- package/shared/directives/thy-stop-propagation.directive.d.ts +4 -4
- package/shared/directives/view-outlet.directive.d.ts +6 -7
- package/shared/ng-transclude.directive.d.ts +2 -3
- package/shared/option/group/option-group.component.d.ts +5 -9
- package/shared/option/list-option/list-option.component.d.ts +9 -13
- package/shared/option/option.component.d.ts +10 -17
- package/shared/option/option.token.d.ts +4 -3
- package/shared/option/options-container.component.d.ts +1 -1
- package/shared/select/select-control/select-control.component.d.ts +38 -53
- package/slide/slide-body/slide-body-section.component.d.ts +2 -6
- package/slide/slide-header/slide-header.component.d.ts +6 -9
- package/space/space.component.d.ts +5 -11
- package/stepper/stepper.component.d.ts +1 -1
- package/strength/strength.component.d.ts +8 -13
- package/table/table-column.component.d.ts +15 -5
- package/time-picker/inner/inner-time-picker.class.d.ts +15 -13
- package/time-picker/inner/inner-time-picker.component.d.ts +26 -26
- package/time-picker/time-picker-panel.component.d.ts +18 -20
- package/time-picker/time-picker.component.d.ts +22 -30
- package/tooltip/tooltip.directive.d.ts +20 -22
- package/transfer/transfer-list.component.d.ts +15 -15
- package/transfer/transfer.component.d.ts +20 -23
- package/tree/tree-abstract.d.ts +5 -5
- package/tree/tree-node.component.d.ts +24 -37
- package/tree/tree.class.d.ts +4 -4
- package/tree/tree.component.d.ts +47 -75
- package/tree/tree.service.d.ts +3 -4
- package/tree-select/tree-select.component.d.ts +54 -71
- package/vote/vote.component.d.ts +13 -33
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-list.mjs","sources":["../../../src/list/list.component.ts","../../../src/list/list-item.component.ts","../../../src/list/selection/selection-list.ts","../../../src/list/list-item-meta.component.ts","../../../src/list/list-item-meta.component.html","../../../src/list/list.module.ts","../../../src/list/ngx-tethys-list.ts"],"sourcesContent":["import { Component, Input, HostBinding } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 列表组件\n * @name thy-list\n * @order 10\n */\n@Component({\n selector: 'thy-list',\n template: '<ng-content></ng-content>'\n})\nexport class ThyList {\n /**\n * 控制分割线的显示与隐藏\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyDivided(value: boolean) {\n this._isDivided = value;\n }\n\n @HostBinding(`class.thy-list-divided`) _isDivided = false;\n\n @HostBinding(`class.thy-list`) _isList = true;\n\n constructor() {}\n}\n","import { Component, HostBinding } from '@angular/core';\n\n/**\n * @name thy-list-item,[thy-list-item]\n * @order 15\n */\n@Component({\n selector: 'thy-list-item,[thy-list-item]',\n template: '<ng-content></ng-content>'\n})\nexport class ThyListItem {\n @HostBinding(`class.thy-list-item`) _isListItem = true;\n\n constructor() {}\n}\n","import { ScrollToService } from 'ngx-tethys/core';\nimport { IThyListOptionParentComponent, THY_LIST_OPTION_PARENT_COMPONENT, ThyListOption } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, dom, helpers, keycodes } from 'ngx-tethys/util';\nimport { Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyListLayout } from 'ngx-tethys/shared';\nimport { ThySelectionListChange } from './selection.interface';\n\nexport type ThyListSize = 'sm' | 'md' | 'lg';\n\nconst listSizesMap = {\n sm: 'thy-list-sm'\n};\n\n/**\n * @name thy-selection-list,[thy-selection-list]\n * @order 20\n */\n@Component({\n selector: 'thy-selection-list,[thy-selection-list]',\n template: '<ng-content></ng-content>',\n providers: [\n {\n provide: THY_LIST_OPTION_PARENT_COMPONENT,\n useExisting: ThySelectionList\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThySelectionList),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThySelectionList implements OnInit, OnDestroy, AfterContentInit, IThyListOptionParentComponent, ControlValueAccessor {\n private renderer = inject(Renderer2);\n private elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private _keyManager: ActiveDescendantKeyManager<ThyListOption>;\n\n private _selectionChangesUnsubscribe$ = Subscription.EMPTY;\n\n private _bindKeyEventUnsubscribe: () => void;\n\n private _modelValues: any[];\n\n private hostRenderer = useHostRenderer();\n\n /** The currently selected options. */\n selectionModel: SelectionModel<any>;\n\n disabled: boolean;\n\n layout: ThyListLayout = 'list';\n\n @HostBinding(`class.thy-list`) _isList = true;\n\n @HostBinding(`class.thy-selection-list`) _isSelectionList = true;\n\n @HostBinding(`class.thy-multiple-selection-list`) multiple = true;\n\n @HostBinding(`class.thy-grid-list`) isLayoutGrid = false;\n\n /**\n * @internal\n */\n @ContentChildren(ThyListOption, { descendants: true }) options: QueryList<ThyListOption>;\n\n /**\n * 改变 grid item 的选择模式,使其支持多选\n * @default true\n */\n @Input({ transform: coerceBooleanProperty })\n set thyMultiple(value: boolean) {\n const previousValue = this.multiple;\n this.multiple = value;\n if (previousValue !== this.multiple) {\n this._instanceSelectionModel();\n }\n }\n\n /**\n * 绑定键盘事件的容器\n * @type HTMLElement | ElementRef | string\n * @default thy-selection-list 组件绑定的元素\n */\n @Input() thyBindKeyEventContainer: HTMLElement | ElementRef | string;\n\n /**\n * 出现滚动条的容器\n * @type HTMLElement | ElementRef | string\n * @default thy-selection-list 组件绑定的元素\n */\n @Input() thyScrollContainer: HTMLElement | ElementRef | string;\n\n /**\n * 键盘事件触发 Before 调用,如果返回 false 则停止继续执行\n */\n @Input() thyBeforeKeydown: (event?: KeyboardEvent) => boolean;\n\n /**\n * Option Value 唯一的 Key,用于存储哪些选择被选中的唯一值,只有 Option 的 thyValue 是对象的时才可以传入该选项\n */\n @Input() thyUniqueKey: string;\n\n /**\n * 比较2个选项的 Value 是否相同\n */\n @Input() thyCompareWith: (o1: any, o2: any) => boolean;\n\n /**\n * grid item 的展示样式\n * @type list | grid\n * @default list\n */\n @Input() set thyLayout(value: ThyListLayout) {\n this.layout = value;\n this.isLayoutGrid = value === 'grid';\n }\n\n /**\n * 是否自动激活第一项\n */\n @Input({ transform: coerceBooleanProperty }) set thyAutoActiveFirstItem(value: boolean) {\n this.autoActiveFirstItem = value;\n }\n\n /**\n * 改变 grid item 的大小,支持默认以及 sm 两种大小\n * @type sm | md | lg\n */\n @Input() set thySize(value: ThyListSize) {\n this._setListSize(value);\n }\n\n private spaceEnabled = true;\n\n /**\n * 是否按下空格切换聚焦选项\n */\n @Input({ transform: coerceBooleanProperty }) set thySpaceKeyEnabled(value: boolean) {\n this.spaceEnabled = value;\n }\n\n /**\n * 每当选项的选定状态发生更改时,都会触发更改事件\n * @type EventEmitter<ThySelectionListChange>\n */\n @Output() readonly thySelectionChange: EventEmitter<ThySelectionListChange> = new EventEmitter<ThySelectionListChange>();\n\n private autoActiveFirstItem: boolean;\n\n private _onTouched: () => void = () => {};\n\n private _onChange: (value: any) => void = (_: any) => {};\n\n private _emitChangeEvent(option: ThyListOption, event: Event) {\n this.thySelectionChange.emit({\n source: this,\n value: option.thyValue,\n option: option,\n event: event,\n selected: this.isSelected(option)\n });\n }\n\n private _emitModelValueChange() {\n if (this.options) {\n let selectedValues = this.selectionModel.selected;\n if (this.thyUniqueKey) {\n selectedValues = selectedValues.map(selectedValue => {\n const selectedOption = this.options.find(option => {\n return option.thyValue[this.thyUniqueKey] === selectedValue;\n });\n if (selectedOption) {\n return selectedOption.thyValue;\n } else {\n return this._modelValues.find(value => {\n return value[this.thyUniqueKey] === selectedValue;\n });\n }\n });\n }\n this._modelValues = selectedValues;\n let changeValue = selectedValues;\n if (!this.multiple && selectedValues && selectedValues.length > 0) {\n changeValue = selectedValues[0];\n }\n this._onChange(changeValue);\n }\n }\n\n private _toggleFocusedOption(event: KeyboardEvent): void {\n if (this._keyManager.activeItem) {\n this.ngZone.run(() => {\n this.toggleOption(this._keyManager.activeItem, event);\n });\n }\n }\n\n private _initializeFocusKeyManager() {\n this._keyManager = new ActiveDescendantKeyManager<ThyListOption>(this.options)\n .withWrap()\n // .withTypeAhead()\n // Allow disabled items to be focusable. For accessibility reasons, there must be a way for\n // screenreader users, that allows reading the different options of the list.\n .skipPredicate(() => false);\n }\n\n private _instanceSelectionModel() {\n this.selectionModel = new SelectionModel<any>(this.multiple);\n }\n\n private _getElementBySelector(element: HTMLElement | ElementRef | string): HTMLElement {\n return dom.getHTMLElementBySelector(element, this.elementRef);\n }\n\n private _compareValue(value1: any, value2: any) {\n if (this.thyCompareWith) {\n const compareFn = this.thyCompareWith as (o1: any, o2: any) => boolean;\n return compareFn(value1, value2);\n } else if (this.thyUniqueKey) {\n return value1 && value1[this.thyUniqueKey] === value2 && value2[this.thyUniqueKey];\n } else {\n return value1 === value2;\n }\n }\n\n private _getOptionSelectionValue(option: ThyListOption) {\n if (option.thyValue) {\n return this.thyUniqueKey ? option.thyValue[this.thyUniqueKey] : option.thyValue;\n } else {\n return option;\n }\n }\n\n private _setSelectionByValues(values: any[]) {\n this.selectionModel.clear();\n values.forEach(value => {\n if (this.thyUniqueKey) {\n this.selectionModel.select(value[this.thyUniqueKey]);\n } else {\n this.selectionModel.select(value);\n }\n });\n }\n\n private _setAllOptionsSelected(toIsSelected: boolean) {\n // Keep track of whether anything changed, because we only want to\n // emit the changed event when something actually changed.\n let hasChanged = false;\n\n this.options.forEach(option => {\n const fromIsSelected = this.selectionModel.isSelected(option.thyValue);\n if (fromIsSelected !== toIsSelected) {\n hasChanged = true;\n this.selectionModel.toggle(option.thyValue);\n }\n });\n\n if (hasChanged) {\n this._emitModelValueChange();\n }\n }\n\n private _getOptionByValue(value: any) {\n return this.options.find(option => {\n return this._compareValue(option.thyValue, value);\n });\n }\n\n private _getActiveOption() {\n if (this._keyManager.activeItem) {\n return this._getOptionByValue(this._keyManager.activeItem.thyValue);\n } else {\n return null;\n }\n }\n\n private _setListSize(size: ThyListSize) {\n for (const key in listSizesMap) {\n if (listSizesMap.hasOwnProperty(key)) {\n this.hostRenderer.removeClass(listSizesMap[key]);\n }\n }\n if (size) {\n this.hostRenderer.addClass(listSizesMap[size]);\n }\n }\n\n ngOnInit() {\n const bindKeyEventElement = this._getElementBySelector(this.thyBindKeyEventContainer);\n this.ngZone.runOutsideAngular(() => {\n this._bindKeyEventUnsubscribe = this.renderer.listen(bindKeyEventElement, 'keydown', this.onKeydown.bind(this));\n });\n this._instanceSelectionModel();\n }\n\n writeValue(value: any[] | any): void {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && value) {\n if (this.multiple && !helpers.isArray(value)) {\n throw new Error(`The multiple selection ngModel must be an array.`);\n }\n if (!this.multiple && helpers.isArray(value)) {\n throw new Error(`The single selection ngModel should not be an array.`);\n }\n }\n const values = helpers.isArray(value) ? value : value ? [value] : [];\n this._modelValues = values;\n if (this.options) {\n this._setSelectionByValues(values);\n }\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onKeydown(event: KeyboardEvent) {\n if (this.thyBeforeKeydown) {\n // stop key down event\n const isContinue = this.thyBeforeKeydown(event);\n if (!isContinue) {\n return;\n }\n }\n const keyCode = event.keyCode || event.which;\n const manager = this._keyManager;\n const previousFocusIndex = manager.activeItemIndex;\n\n switch (keyCode) {\n case keycodes.SPACE:\n case keycodes.ENTER:\n if (keyCode === keycodes.SPACE && !this.spaceEnabled) {\n return;\n }\n this._toggleFocusedOption(event);\n // Always prevent space from scrolling the page since the list has focus\n event.preventDefault();\n break;\n default:\n manager.onKeydown(event);\n }\n if (\n (keyCode === keycodes.UP_ARROW || keyCode === keycodes.DOWN_ARROW) &&\n event.shiftKey &&\n manager.activeItemIndex !== previousFocusIndex\n ) {\n this._toggleFocusedOption(event);\n }\n }\n\n toggleOption(option: ThyListOption, event?: Event) {\n if (option && !option.disabled) {\n this.selectionModel.toggle(this._getOptionSelectionValue(option));\n // Emit a change event because the focused option changed its state through user\n // interaction.\n this._emitModelValueChange();\n this._emitChangeEvent(option, event);\n }\n }\n\n setActiveOption(option: ThyListOption) {\n this._keyManager.updateActiveItem(option); // .updateActiveItemIndex(this._getOptionIndex(option));\n }\n\n scrollIntoView(option: ThyListOption) {\n const scrollContainerElement = dom.getHTMLElementBySelector(this.thyScrollContainer, this.elementRef);\n ScrollToService.scrollToElement(option.element.nativeElement, scrollContainerElement);\n }\n\n isSelected(option: ThyListOption) {\n return this.selectionModel.isSelected(this._getOptionSelectionValue(option));\n }\n\n clearActiveItem() {\n if (this._keyManager.activeItem) {\n this._keyManager.setActiveItem(-1);\n }\n }\n\n determineClearActiveItem() {\n if (!this._getActiveOption()) {\n this.clearActiveItem();\n }\n }\n\n /** Selects all of the options. */\n selectAll() {\n this._setAllOptionsSelected(true);\n }\n\n /** Deselects all of the options. */\n deselectAll() {\n this._setAllOptionsSelected(false);\n }\n\n ngAfterContentInit(): void {\n this._initializeFocusKeyManager();\n this.options.changes.pipe(startWith(true)).subscribe(() => {\n if (this.autoActiveFirstItem) {\n if (!this._keyManager.activeItem || this.options.toArray().indexOf(this._keyManager.activeItem) < 0) {\n this._keyManager.setFirstItemActive();\n }\n }\n });\n }\n\n ngOnDestroy() {\n this._selectionChangesUnsubscribe$.unsubscribe();\n if (this._bindKeyEventUnsubscribe) {\n this._bindKeyEventUnsubscribe();\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, Input, HostBinding, ChangeDetectionStrategy, TemplateRef, ContentChild } from '@angular/core';\nimport { ThyAvatar } from 'ngx-tethys/avatar';\n\n/**\n * @name thy-list-item-meta,[thy-list-item-meta]\n * @order 40\n */\n@Component({\n selector: 'thy-list-item-meta,[thy-list-item-meta]',\n templateUrl: './list-item-meta.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyAvatar, NgTemplateOutlet]\n})\nexport class ThyListItemMeta {\n /**\n * 列表项的左侧图片\n */\n @Input() thyAvatar: string;\n\n /**\n * 列表项的标题\n */\n @Input() thyTitle: string;\n\n /**\n * 列表项的描述文本\n */\n @Input() thyDescription: string;\n\n @ContentChild('metaAvatar')\n public avatarTemplateRef: TemplateRef<any>;\n\n @ContentChild('metaTitle')\n public titleTemplateRef: TemplateRef<any>;\n\n @ContentChild('metaDescription')\n public descriptionTemplateRef: TemplateRef<any>;\n\n @HostBinding('class') className = `thy-list-item-meta`;\n\n constructor() {}\n}\n","<div class=\"thy-list-item-meta-avatar\">\n @if (thyAvatar) {\n <thy-avatar [thySrc]=\"thyAvatar\"></thy-avatar>\n } @else {\n <ng-template [ngTemplateOutlet]=\"avatarTemplateRef\"></ng-template>\n }\n</div>\n<div class=\"thy-list-item-meta-content\">\n <div class=\"thy-list-item-meta-title\">\n @if (thyTitle) {\n {{ thyTitle }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"titleTemplateRef\"></ng-template>\n }\n </div>\n <div class=\"thy-list-item-meta-description\">\n @if (thyDescription) {\n {{ thyDescription }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n }\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyList } from './list.component';\nimport { ThyListItem } from './list-item.component';\nimport { ThySelectionList } from './selection/selection-list';\nimport { ThyOptionModule } from 'ngx-tethys/shared';\nimport { ThyListItemMeta } from './list-item-meta.component';\nimport { ThyAvatarModule } from 'ngx-tethys/avatar';\n\n@NgModule({\n imports: [CommonModule, ThyOptionModule, ThyAvatarModule, ThyList, ThyListItem, ThySelectionList, ThyListItemMeta],\n exports: [ThyList, ThyListItem, ThySelectionList, ThyListItemMeta, ThyOptionModule]\n})\nexport class ThyListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-list.mjs","sources":["../../../src/list/list.component.ts","../../../src/list/list-item.component.ts","../../../src/list/selection/selection-list.ts","../../../src/list/list-item-meta.component.ts","../../../src/list/list-item-meta.component.html","../../../src/list/list.module.ts","../../../src/list/ngx-tethys-list.ts"],"sourcesContent":["import { Component, input } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 列表组件\n * @name thy-list\n * @order 10\n */\n@Component({\n selector: 'thy-list',\n host: {\n class: 'thy-list',\n '[class.thy-list-divided]': 'thyDivided()'\n },\n template: '<ng-content></ng-content>'\n})\nexport class ThyList {\n /**\n * 控制分割线的显示与隐藏\n */\n readonly thyDivided = input(false, { transform: coerceBooleanProperty });\n}\n","import { Component } from '@angular/core';\n\n/**\n * @name thy-list-item,[thy-list-item]\n * @order 15\n */\n@Component({\n selector: 'thy-list-item,[thy-list-item]',\n template: '<ng-content></ng-content>',\n host: {\n class: 'thy-list-item'\n }\n})\nexport class ThyListItem {}\n","import { ScrollToService } from 'ngx-tethys/core';\nimport { IThyListOptionParentComponent, THY_LIST_OPTION_PARENT_COMPONENT, ThyListOption } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, dom, helpers, keycodes, ThyBooleanInput } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n inject,\n input,\n computed,\n effect,\n output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyListLayout } from 'ngx-tethys/shared';\nimport { ThySelectionListChange } from './selection.interface';\nimport { startWith } from 'rxjs/operators';\n\nexport type ThyListSize = 'sm' | 'md' | 'lg';\n\nconst listSizesMap = {\n sm: 'thy-list-sm'\n};\n\n/**\n * @name thy-selection-list,[thy-selection-list]\n * @order 20\n */\n@Component({\n selector: 'thy-selection-list,[thy-selection-list]',\n template: '<ng-content></ng-content>',\n providers: [\n {\n provide: THY_LIST_OPTION_PARENT_COMPONENT,\n useExisting: ThySelectionList\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThySelectionList),\n multi: true\n }\n ],\n host: {\n class: 'thy-list thy-selection-list',\n '[class.thy-multiple-selection-list]': 'multiple()',\n '[class.thy-grid-list]': 'isLayoutGrid()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThySelectionList implements OnInit, OnDestroy, AfterContentInit, IThyListOptionParentComponent, ControlValueAccessor {\n private renderer = inject(Renderer2);\n\n private elementRef = inject(ElementRef);\n\n private ngZone = inject(NgZone);\n\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private keyManager: ActiveDescendantKeyManager<ThyListOption>;\n\n private bindKeyEventUnsubscribe: () => void;\n\n private modelValues: any[];\n\n private hostRenderer = useHostRenderer();\n\n /** The currently selected options. */\n selectionModel: SelectionModel<any>;\n\n disabled: boolean;\n\n /**\n * @internal\n */\n @ContentChildren(ThyListOption, { descendants: true }) options: QueryList<ThyListOption>;\n\n /**\n * 改变 grid item 的选择模式,使其支持多选\n */\n readonly multiple = input<boolean, ThyBooleanInput>(true, { alias: 'thyMultiple', transform: coerceBooleanProperty });\n\n /**\n * 绑定键盘事件的容器\n * @type HTMLElement | ElementRef | string\n * @default thy-selection-list 组件绑定的元素\n */\n readonly thyBindKeyEventContainer = input<HTMLElement | ElementRef | string>();\n\n /**\n * 出现滚动条的容器\n * @type HTMLElement | ElementRef | string\n * @default thy-selection-list 组件绑定的元素\n */\n readonly thyScrollContainer = input<HTMLElement | ElementRef | string>();\n\n /**\n * 键盘事件触发 Before 调用,如果返回 false 则停止继续执行\n */\n readonly thyBeforeKeydown = input<(event?: KeyboardEvent) => boolean>();\n\n /**\n * Option Value 唯一的 Key,用于存储哪些选择被选中的唯一值,只有 Option 的 thyValue 是对象的时才可以传入该选项\n */\n readonly thyUniqueKey = input<string>();\n\n /**\n * 比较2个选项的 Value 是否相同\n */\n readonly thyCompareWith = input<(o1: any, o2: any) => boolean>();\n\n /**\n * grid item 的展示样式\n * @type list | grid\n */\n readonly layout = input<ThyListLayout>('list', { alias: 'thyLayout' });\n\n readonly isLayoutGrid = computed<boolean>(() => this.layout() === 'grid');\n\n /**\n * 是否自动激活第一项\n */\n readonly thyAutoActiveFirstItem = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 改变 grid item 的大小,支持默认以及 sm 两种大小\n * @type sm | md | lg\n */\n readonly thySize = input<ThyListSize>();\n\n /**\n * 是否按下空格切换聚焦选项\n */\n readonly thySpaceKeyEnabled = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 每当选项的选定状态发生更改时,都会触发更改事件\n */\n readonly thySelectionChange = output<ThySelectionListChange>();\n\n private onTouched: () => void = () => {};\n\n private onChange: (value: any) => void = (_: any) => {};\n\n constructor() {\n effect(() => {\n this.setListSize();\n });\n\n effect(() => {\n this.instanceSelectionModel();\n });\n }\n\n private emitChangeEvent(option: ThyListOption, event: Event) {\n this.thySelectionChange.emit({\n source: this,\n value: option.thyValue(),\n option: option,\n event: event,\n selected: this.isSelected(option)\n });\n }\n\n private emitModelValueChange() {\n const uniqueKey = this.thyUniqueKey();\n if (this.options) {\n let selectedValues = this.selectionModel.selected;\n if (uniqueKey) {\n selectedValues = selectedValues.map(selectedValue => {\n const selectedOption = this.options.find(option => {\n return option.thyValue()[uniqueKey] === selectedValue;\n });\n if (selectedOption) {\n return selectedOption.thyValue();\n } else {\n return this.modelValues.find(value => {\n return value[uniqueKey] === selectedValue;\n });\n }\n });\n }\n this.modelValues = selectedValues;\n let changeValue = selectedValues;\n if (!this.multiple() && selectedValues && selectedValues.length > 0) {\n changeValue = selectedValues[0];\n }\n this.onChange(changeValue);\n }\n }\n\n private toggleFocusedOption(event: KeyboardEvent): void {\n if (this.keyManager.activeItem) {\n this.ngZone.run(() => {\n this.toggleOption(this.keyManager.activeItem, event);\n });\n }\n }\n\n private initializeFocusKeyManager() {\n this.keyManager = new ActiveDescendantKeyManager<ThyListOption>(this.options)\n .withWrap()\n // .withTypeAhead()\n // Allow disabled items to be focusable. For accessibility reasons, there must be a way for\n // screenreader users, that allows reading the different options of the list.\n .skipPredicate(() => false);\n }\n\n private instanceSelectionModel() {\n this.selectionModel = new SelectionModel<any>(this.multiple());\n }\n\n private getElementBySelector(element: HTMLElement | ElementRef | string): HTMLElement {\n return dom.getHTMLElementBySelector(element, this.elementRef);\n }\n\n private compareValue(value1: any, value2: any) {\n const thyUniqueKey = this.thyUniqueKey();\n const thyCompareWith = this.thyCompareWith();\n if (thyCompareWith) {\n const compareFn = thyCompareWith as (o1: any, o2: any) => boolean;\n return compareFn(value1, value2);\n } else if (thyUniqueKey) {\n return value1 && value1[thyUniqueKey] === value2 && value2[thyUniqueKey];\n } else {\n return value1 === value2;\n }\n }\n\n private getOptionSelectionValue(option: ThyListOption) {\n const thyValue = option.thyValue();\n if (thyValue) {\n const thyUniqueKey = this.thyUniqueKey();\n return thyUniqueKey ? thyValue[thyUniqueKey] : thyValue;\n } else {\n return option;\n }\n }\n\n private setSelectionByValues(values: any[]) {\n this.selectionModel.clear();\n values.forEach(value => {\n const thyUniqueKey = this.thyUniqueKey();\n if (thyUniqueKey) {\n this.selectionModel.select(value[thyUniqueKey]);\n } else {\n this.selectionModel.select(value);\n }\n });\n }\n\n private setAllOptionsSelected(toIsSelected: boolean) {\n // Keep track of whether anything changed, because we only want to\n // emit the changed event when something actually changed.\n let hasChanged = false;\n\n this.options.forEach(option => {\n const fromIsSelected = this.selectionModel.isSelected(option.thyValue());\n if (fromIsSelected !== toIsSelected) {\n hasChanged = true;\n this.selectionModel.toggle(option.thyValue());\n }\n });\n\n if (hasChanged) {\n this.emitModelValueChange();\n }\n }\n\n private getOptionByValue(value: any) {\n return this.options.find(option => {\n return this.compareValue(option.thyValue(), value);\n });\n }\n\n private getActiveOption() {\n if (this.keyManager.activeItem) {\n return this.getOptionByValue(this.keyManager.activeItem.thyValue());\n } else {\n return null;\n }\n }\n\n private setListSize() {\n const size = this.thySize();\n for (const key in listSizesMap) {\n if (listSizesMap.hasOwnProperty(key)) {\n this.hostRenderer.removeClass(listSizesMap[key as keyof typeof listSizesMap]);\n }\n }\n if (size) {\n this.hostRenderer.addClass(listSizesMap[size as keyof typeof listSizesMap]);\n }\n }\n\n ngOnInit() {\n const bindKeyEventElement = this.getElementBySelector(this.thyBindKeyEventContainer());\n this.ngZone.runOutsideAngular(() => {\n this.bindKeyEventUnsubscribe = this.renderer.listen(bindKeyEventElement, 'keydown', this.onKeydown.bind(this));\n });\n this.instanceSelectionModel();\n }\n\n writeValue(value: any[] | any): void {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && value) {\n const multiple = this.multiple();\n if (multiple && !helpers.isArray(value)) {\n throw new Error(`The multiple selection ngModel must be an array.`);\n }\n if (!multiple && helpers.isArray(value)) {\n throw new Error(`The single selection ngModel should not be an array.`);\n }\n }\n const values = helpers.isArray(value) ? value : value ? [value] : [];\n this.modelValues = values;\n if (this.options) {\n this.setSelectionByValues(values);\n }\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onKeydown(event: KeyboardEvent) {\n const thyBeforeKeydown = this.thyBeforeKeydown();\n if (thyBeforeKeydown) {\n // stop key down event\n const isContinue = thyBeforeKeydown(event);\n if (!isContinue) {\n return;\n }\n }\n const keyCode = event.keyCode || event.which;\n const manager = this.keyManager;\n const previousFocusIndex = manager.activeItemIndex;\n\n switch (keyCode) {\n case keycodes.SPACE:\n case keycodes.ENTER:\n if (keyCode === keycodes.SPACE && !this.thySpaceKeyEnabled()) {\n return;\n }\n this.toggleFocusedOption(event);\n // Always prevent space from scrolling the page since the list has focus\n event.preventDefault();\n break;\n default:\n manager.onKeydown(event);\n }\n if (\n (keyCode === keycodes.UP_ARROW || keyCode === keycodes.DOWN_ARROW) &&\n event.shiftKey &&\n manager.activeItemIndex !== previousFocusIndex\n ) {\n this.toggleFocusedOption(event);\n }\n }\n\n toggleOption(option: ThyListOption, event?: Event) {\n if (option && !option.thyDisabled()) {\n this.selectionModel.toggle(this.getOptionSelectionValue(option));\n // Emit a change event because the focused option changed its state through user\n // interaction.\n this.emitModelValueChange();\n this.emitChangeEvent(option, event);\n }\n }\n\n setActiveOption(option: ThyListOption) {\n this.keyManager.updateActiveItem(option); // .updateActiveItemIndex(this._getOptionIndex(option));\n }\n\n scrollIntoView(option: ThyListOption) {\n const scrollContainerElement = dom.getHTMLElementBySelector(this.thyScrollContainer(), this.elementRef);\n ScrollToService.scrollToElement(option.element.nativeElement, scrollContainerElement);\n }\n\n isSelected(option: ThyListOption) {\n return this.selectionModel.isSelected(this.getOptionSelectionValue(option));\n }\n\n clearActiveItem() {\n if (this.keyManager.activeItem) {\n this.keyManager.setActiveItem(-1);\n }\n }\n\n determineClearActiveItem() {\n if (!this.getActiveOption()) {\n this.clearActiveItem();\n }\n }\n\n /** Selects all of the options. */\n selectAll() {\n this.setAllOptionsSelected(true);\n }\n\n /** Deselects all of the options. */\n deselectAll() {\n this.setAllOptionsSelected(false);\n }\n\n ngAfterContentInit(): void {\n this.initializeFocusKeyManager();\n this.options.changes.pipe(startWith(true)).subscribe(() => {\n if (this.thyAutoActiveFirstItem()) {\n if (!this.keyManager.activeItem || this.options.toArray().indexOf(this.keyManager.activeItem) < 0) {\n this.keyManager.setFirstItemActive();\n }\n }\n });\n }\n\n ngOnDestroy() {\n if (this.bindKeyEventUnsubscribe) {\n this.bindKeyEventUnsubscribe();\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, TemplateRef, input, contentChild } from '@angular/core';\nimport { ThyAvatar } from 'ngx-tethys/avatar';\n\n/**\n * @name thy-list-item-meta,[thy-list-item-meta]\n * @order 40\n */\n@Component({\n selector: 'thy-list-item-meta,[thy-list-item-meta]',\n templateUrl: './list-item-meta.component.html',\n host: {\n class: 'thy-list-item-meta'\n },\n imports: [ThyAvatar, NgTemplateOutlet]\n})\nexport class ThyListItemMeta {\n /**\n * 列表项的左侧图片\n */\n readonly thyAvatar = input<string>();\n\n /**\n * 列表项的标题\n */\n readonly thyTitle = input<string>();\n\n /**\n * 列表项的描述文本\n */\n readonly thyDescription = input<string>();\n\n readonly avatarTemplateRef = contentChild<TemplateRef<any>>('metaAvatar');\n\n readonly titleTemplateRef = contentChild<TemplateRef<any>>('metaTitle');\n\n readonly descriptionTemplateRef = contentChild<TemplateRef<any>>('metaDescription');\n}\n","<div class=\"thy-list-item-meta-avatar\">\n @if (thyAvatar()) {\n <thy-avatar [thySrc]=\"thyAvatar()\"></thy-avatar>\n } @else {\n <ng-template [ngTemplateOutlet]=\"avatarTemplateRef()\"></ng-template>\n }\n</div>\n<div class=\"thy-list-item-meta-content\">\n <div class=\"thy-list-item-meta-title\">\n @if (thyTitle()) {\n {{ thyTitle() }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"titleTemplateRef()\"></ng-template>\n }\n </div>\n <div class=\"thy-list-item-meta-description\">\n @if (thyDescription()) {\n {{ thyDescription() }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef()\"></ng-template>\n }\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyList } from './list.component';\nimport { ThyListItem } from './list-item.component';\nimport { ThySelectionList } from './selection/selection-list';\nimport { ThyOptionModule } from 'ngx-tethys/shared';\nimport { ThyListItemMeta } from './list-item-meta.component';\nimport { ThyAvatarModule } from 'ngx-tethys/avatar';\n\n@NgModule({\n imports: [CommonModule, ThyOptionModule, ThyAvatarModule, ThyList, ThyListItem, ThySelectionList, ThyListItemMeta],\n exports: [ThyList, ThyListItem, ThySelectionList, ThyListItemMeta, ThyOptionModule]\n})\nexport class ThyListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAGA;;;;AAIG;MASU,OAAO,CAAA;AARpB,IAAA,WAAA,GAAA;AASI;;AAEG;QACM,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAC3E;8GALY,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,uTAFN,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAE5B,OAAO,EAAA,UAAA,EAAA,CAAA;kBARnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,0BAA0B,EAAE;AAC/B,qBAAA;AACD,oBAAA,QAAQ,EAAE;AACb,iBAAA;;;ACbD;;;AAGG;MAQU,WAAW,CAAA;8GAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,oIALV,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAK5B,WAAW,EAAA,UAAA,EAAA,CAAA;kBAPvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE;AACV;AACJ,iBAAA;;;ACoBD,MAAM,YAAY,GAAG;AACjB,IAAA,EAAE,EAAE;CACP;AAED;;;AAGG;MAsBU,gBAAgB,CAAA;AA8FzB,IAAA,WAAA,GAAA;AA7FQ,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAE5B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAE/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAEvB,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAQ7C,IAAY,CAAA,YAAA,GAAG,eAAe,EAAE;AAYxC;;AAEG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAA2B,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAErH;;;;AAIG;QACM,IAAwB,CAAA,wBAAA,GAAG,KAAK,EAAqC;AAE9E;;;;AAIG;QACM,IAAkB,CAAA,kBAAA,GAAG,KAAK,EAAqC;AAExE;;AAEG;QACM,IAAgB,CAAA,gBAAA,GAAG,KAAK,EAAsC;AAEvE;;AAEG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,EAAU;AAEvC;;AAEG;QACM,IAAc,CAAA,cAAA,GAAG,KAAK,EAAiC;AAEhE;;;AAGG;QACM,IAAM,CAAA,MAAA,GAAG,KAAK,CAAgB,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAE7D,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAU,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,MAAM,CAAC;AAEzE;;AAEG;QACM,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAEpF;;;AAGG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,EAAe;AAEvC;;AAEG;QACM,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAE/E;;AAEG;QACM,IAAkB,CAAA,kBAAA,GAAG,MAAM,EAA0B;AAEtD,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG;AAEhC,QAAA,IAAA,CAAA,QAAQ,GAAyB,CAAC,CAAM,KAAI,GAAG;QAGnD,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,WAAW,EAAE;AACtB,SAAC,CAAC;QAEF,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,sBAAsB,EAAE;AACjC,SAAC,CAAC;;IAGE,eAAe,CAAC,MAAqB,EAAE,KAAY,EAAA;AACvD,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AACzB,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;AACxB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;AACnC,SAAA,CAAC;;IAGE,oBAAoB,GAAA;AACxB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;AACrC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ;YACjD,IAAI,SAAS,EAAE;AACX,gBAAA,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,aAAa,IAAG;oBAChD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAG;wBAC9C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,aAAa;AACzD,qBAAC,CAAC;oBACF,IAAI,cAAc,EAAE;AAChB,wBAAA,OAAO,cAAc,CAAC,QAAQ,EAAE;;yBAC7B;wBACH,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,IAAG;AACjC,4BAAA,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,aAAa;AAC7C,yBAAC,CAAC;;AAEV,iBAAC,CAAC;;AAEN,YAAA,IAAI,CAAC,WAAW,GAAG,cAAc;YACjC,IAAI,WAAW,GAAG,cAAc;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AACjE,gBAAA,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC;;AAEnC,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;;;AAI1B,IAAA,mBAAmB,CAAC,KAAoB,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;gBACjB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC;AACxD,aAAC,CAAC;;;IAIF,yBAAyB,GAAA;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,0BAA0B,CAAgB,IAAI,CAAC,OAAO;AACvE,aAAA,QAAQ;;;;AAIR,aAAA,aAAa,CAAC,MAAM,KAAK,CAAC;;IAG3B,sBAAsB,GAAA;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;;AAG1D,IAAA,oBAAoB,CAAC,OAA0C,EAAA;QACnE,OAAO,GAAG,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;;IAGzD,YAAY,CAAC,MAAW,EAAE,MAAW,EAAA;AACzC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;AACxC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;QAC5C,IAAI,cAAc,EAAE;YAChB,MAAM,SAAS,GAAG,cAA+C;AACjE,YAAA,OAAO,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;;aAC7B,IAAI,YAAY,EAAE;AACrB,YAAA,OAAO,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC;;aACrE;YACH,OAAO,MAAM,KAAK,MAAM;;;AAIxB,IAAA,uBAAuB,CAAC,MAAqB,EAAA;AACjD,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE;QAClC,IAAI,QAAQ,EAAE;AACV,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;AACxC,YAAA,OAAO,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ;;aACpD;AACH,YAAA,OAAO,MAAM;;;AAIb,IAAA,oBAAoB,CAAC,MAAa,EAAA;AACtC,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3B,QAAA,MAAM,CAAC,OAAO,CAAC,KAAK,IAAG;AACnB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;YACxC,IAAI,YAAY,EAAE;gBACd,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;;iBAC5C;AACH,gBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;;AAEzC,SAAC,CAAC;;AAGE,IAAA,qBAAqB,CAAC,YAAqB,EAAA;;;QAG/C,IAAI,UAAU,GAAG,KAAK;AAEtB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAG;AAC1B,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AACxE,YAAA,IAAI,cAAc,KAAK,YAAY,EAAE;gBACjC,UAAU,GAAG,IAAI;gBACjB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;;AAErD,SAAC,CAAC;QAEF,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,oBAAoB,EAAE;;;AAI3B,IAAA,gBAAgB,CAAC,KAAU,EAAA;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAG;YAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC;AACtD,SAAC,CAAC;;IAGE,eAAe,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;;aAChE;AACH,YAAA,OAAO,IAAI;;;IAIX,WAAW,GAAA;AACf,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAA,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE;AAC5B,YAAA,IAAI,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBAClC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,GAAgC,CAAC,CAAC;;;QAGrF,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAiC,CAAC,CAAC;;;IAInF,QAAQ,GAAA;QACJ,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACtF,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;YAC/B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClH,SAAC,CAAC;QACF,IAAI,CAAC,sBAAsB,EAAE;;AAGjC,IAAA,UAAU,CAAC,KAAkB,EAAA;QACzB,IAAI,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,KAAK,EAAE;AAC1D,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;YAChC,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrC,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,gDAAA,CAAkD,CAAC;;YAEvE,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrC,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,oDAAA,CAAsD,CAAC;;;QAG/E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;AACpE,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM;AACzB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;;AAErC,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;;AAGzC,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGtB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGvB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG9B,IAAA,SAAS,CAAC,KAAoB,EAAA;AAC1B,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAChD,IAAI,gBAAgB,EAAE;;AAElB,YAAA,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC;YAC1C,IAAI,CAAC,UAAU,EAAE;gBACb;;;QAGR,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK;AAC5C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU;AAC/B,QAAA,MAAM,kBAAkB,GAAG,OAAO,CAAC,eAAe;QAElD,QAAQ,OAAO;YACX,KAAK,QAAQ,CAAC,KAAK;YACnB,KAAK,QAAQ,CAAC,KAAK;AACf,gBAAA,IAAI,OAAO,KAAK,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;oBAC1D;;AAEJ,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;gBAE/B,KAAK,CAAC,cAAc,EAAE;gBACtB;AACJ,YAAA;AACI,gBAAA,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;;AAEhC,QAAA,IACI,CAAC,OAAO,KAAK,QAAQ,CAAC,QAAQ,IAAI,OAAO,KAAK,QAAQ,CAAC,UAAU;AACjE,YAAA,KAAK,CAAC,QAAQ;AACd,YAAA,OAAO,CAAC,eAAe,KAAK,kBAAkB,EAChD;AACE,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;;IAIvC,YAAY,CAAC,MAAqB,EAAE,KAAa,EAAA;QAC7C,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;;;YAGhE,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;;;AAI3C,IAAA,eAAe,CAAC,MAAqB,EAAA;QACjC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;AAG7C,IAAA,cAAc,CAAC,MAAqB,EAAA;AAChC,QAAA,MAAM,sBAAsB,GAAG,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC;QACvG,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,sBAAsB,CAAC;;AAGzF,IAAA,UAAU,CAAC,MAAqB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;;IAG/E,eAAe,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;;;IAIzC,wBAAwB,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE;YACzB,IAAI,CAAC,eAAe,EAAE;;;;IAK9B,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;;;IAIpC,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;;IAGrC,kBAAkB,GAAA;QACd,IAAI,CAAC,yBAAyB,EAAE;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACtD,YAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;gBAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC/F,oBAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE;;;AAGhD,SAAC,CAAC;;IAGN,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,uBAAuB,EAAE;;;8GAxX7B,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAlBd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,wBAAA,EAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mCAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,EAAA,cAAA,EAAA,6BAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,gCAAgC;AACzC,gBAAA,WAAW,EAAE;AAChB,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC;AAC/C,gBAAA,KAAK,EAAE;AACV;SACJ,EAiCgB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAa,gDA5CpB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAmB5B,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBArB5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,WAAW,EAAkB;AAChC,yBAAA;AACD,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,sBAAsB,CAAC;AAC/C,4BAAA,KAAK,EAAE;AACV;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,6BAA6B;AACpC,wBAAA,qCAAqC,EAAE,YAAY;AACnD,wBAAA,uBAAuB,EAAE;AAC5B,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC;AAC5C,iBAAA;wDA0B0D,OAAO,EAAA,CAAA;sBAA7D,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;AClFzD;;;AAGG;MASU,eAAe,CAAA;AAR5B,IAAA,WAAA,GAAA;AASI;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,EAAU;AAEpC;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,EAAU;AAEnC;;AAEG;QACM,IAAc,CAAA,cAAA,GAAG,KAAK,EAAU;AAEhC,QAAA,IAAA,CAAA,iBAAiB,GAAG,YAAY,CAAmB,YAAY,CAAC;AAEhE,QAAA,IAAA,CAAA,gBAAgB,GAAG,YAAY,CAAmB,WAAW,CAAC;AAE9D,QAAA,IAAA,CAAA,sBAAsB,GAAG,YAAY,CAAmB,iBAAiB,CAAC;AACtF;8GArBY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EChB5B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gsBAuBA,EDTc,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,qRAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAE5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yCAAyC,EAE7C,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE;AACV,qBAAA,EAAA,OAAA,EACQ,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,gsBAAA,EAAA;;;MED7B,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAb,aAAa,EAAA,OAAA,EAAA,CAHZ,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,CACvG,EAAA,OAAA,EAAA,CAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;+GAEzE,aAAa,EAAA,OAAA,EAAA,CAHZ,YAAY,EAAE,eAAe,EAAE,eAAe,EAA0C,eAAe,EAC9C,eAAe,CAAA,EAAA,CAAA,CAAA;;2FAEzE,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,CAAC;oBAClH,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe;AACrF,iBAAA;;;ACZD;;AAEG;;;;"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, HostBinding, Directive, NgZone,
|
|
2
|
+
import { inject, ElementRef, HostBinding, Directive, NgZone, input, HostListener, InjectionToken, Injectable, effect, Component, NgModule, Injector } from '@angular/core';
|
|
3
3
|
import { AsyncPipe, CommonModule } from '@angular/common';
|
|
4
4
|
import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
|
|
5
5
|
import { OverlayModule, Overlay } from '@angular/cdk/overlay';
|
|
6
6
|
import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
|
|
7
7
|
import { ThyStringOrTemplateOutletDirective, ThySharedModule } from 'ngx-tethys/shared';
|
|
8
8
|
import { trigger, state, transition, style, animate } from '@angular/animations';
|
|
9
|
-
import { coerceCssPixelValue } from '
|
|
9
|
+
import { coerceCssPixelValue, coerceArray } from 'ngx-tethys/util';
|
|
10
10
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
11
|
-
import { coerceArray } from 'ngx-tethys/util';
|
|
12
11
|
import { useHostRenderer } from '@tethys/cdk/dom';
|
|
13
12
|
|
|
14
13
|
/**
|
|
@@ -74,12 +73,10 @@ const HIDE_STYLE = { transform: 'translateX(0)', opacity: 0, height: 0, paddingT
|
|
|
74
73
|
* @internal
|
|
75
74
|
*/
|
|
76
75
|
class ThyAbstractMessageComponent {
|
|
77
|
-
set thyConfig(value) {
|
|
78
|
-
this.config = value;
|
|
79
|
-
}
|
|
80
76
|
constructor(queue) {
|
|
81
77
|
this._ngZone = inject(NgZone);
|
|
82
78
|
this.iconName = '';
|
|
79
|
+
this.config = input(null, { alias: 'thyConfig' });
|
|
83
80
|
this.queue = queue;
|
|
84
81
|
}
|
|
85
82
|
ngOnInit() {
|
|
@@ -89,16 +86,16 @@ class ThyAbstractMessageComponent {
|
|
|
89
86
|
warning: 'waring-fill',
|
|
90
87
|
error: 'close-circle-fill'
|
|
91
88
|
};
|
|
92
|
-
this.iconName = iconName[this.config
|
|
89
|
+
this.iconName = iconName[this.config()?.type];
|
|
93
90
|
this.createCloseTimer();
|
|
94
91
|
}
|
|
95
92
|
mouseenter() {
|
|
96
|
-
if (this.config
|
|
93
|
+
if (this.config()?.pauseOnHover) {
|
|
97
94
|
this.clearCloseTimer();
|
|
98
95
|
}
|
|
99
96
|
}
|
|
100
97
|
mouseleave() {
|
|
101
|
-
if (this.config
|
|
98
|
+
if (this.config()?.pauseOnHover) {
|
|
102
99
|
this.createCloseTimer();
|
|
103
100
|
}
|
|
104
101
|
}
|
|
@@ -106,16 +103,17 @@ class ThyAbstractMessageComponent {
|
|
|
106
103
|
this._ngZone.runOutsideAngular(() => {
|
|
107
104
|
this.animationState = 'componentHide';
|
|
108
105
|
setTimeout(() => {
|
|
109
|
-
this.queue.remove(this.config
|
|
106
|
+
this.queue.remove(this.config()?.id);
|
|
110
107
|
}, ANIMATION_OUT_DURATION);
|
|
111
108
|
});
|
|
112
109
|
}
|
|
113
110
|
createCloseTimer() {
|
|
114
|
-
|
|
111
|
+
const config = this.config();
|
|
112
|
+
if (config?.duration) {
|
|
115
113
|
this.closeTimer = setInterval(() => {
|
|
116
114
|
this.clearCloseTimer();
|
|
117
115
|
this.close();
|
|
118
|
-
},
|
|
116
|
+
}, config.duration);
|
|
119
117
|
}
|
|
120
118
|
}
|
|
121
119
|
clearCloseTimer() {
|
|
@@ -125,13 +123,11 @@ class ThyAbstractMessageComponent {
|
|
|
125
123
|
this.clearCloseTimer();
|
|
126
124
|
}
|
|
127
125
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyAbstractMessageComponent, deps: [{ token: ThyAbstractMessageQueue }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
128
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
126
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: ThyAbstractMessageComponent, isStandalone: true, inputs: { config: { classPropertyName: "config", publicName: "thyConfig", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "mouseenter()", "mouseleave": "mouseleave()" } }, ngImport: i0 }); }
|
|
129
127
|
}
|
|
130
128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyAbstractMessageComponent, decorators: [{
|
|
131
129
|
type: Directive
|
|
132
|
-
}], ctorParameters: () => [{ type: ThyAbstractMessageQueue }], propDecorators: {
|
|
133
|
-
type: Input
|
|
134
|
-
}], mouseenter: [{
|
|
130
|
+
}], ctorParameters: () => [{ type: ThyAbstractMessageQueue }], propDecorators: { mouseenter: [{
|
|
135
131
|
type: HostListener,
|
|
136
132
|
args: ['mouseenter']
|
|
137
133
|
}], mouseleave: [{
|
|
@@ -226,21 +222,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
226
222
|
* @internal
|
|
227
223
|
*/
|
|
228
224
|
class ThyMessage extends ThyAbstractMessageComponent {
|
|
229
|
-
set thyConfig(value) {
|
|
230
|
-
this.config = value;
|
|
231
|
-
if (this.config?.hostClass) {
|
|
232
|
-
const hostClass = coerceArray(this.config.hostClass);
|
|
233
|
-
this.hostRenderer.updateClass(hostClass);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
225
|
constructor() {
|
|
237
226
|
const messageQueue = inject(ThyMessageQueue);
|
|
238
227
|
super(messageQueue);
|
|
239
228
|
this.animationState = 'flyIn';
|
|
240
229
|
this.hostRenderer = useHostRenderer();
|
|
230
|
+
effect(() => {
|
|
231
|
+
const config = this.config();
|
|
232
|
+
if (config?.hostClass) {
|
|
233
|
+
const hostClass = coerceArray(config.hostClass);
|
|
234
|
+
this.hostRenderer.updateClass(hostClass);
|
|
235
|
+
}
|
|
236
|
+
});
|
|
241
237
|
}
|
|
242
238
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMessage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
243
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyMessage, isStandalone: true, selector: "thy-message",
|
|
239
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyMessage, isStandalone: true, selector: "thy-message", host: { properties: { "class": "'thy-message thy-message-' + config().type", "@flyInOut": "this.animationState" } }, usesInheritance: true, ngImport: i0, template: "@let messageConfig = config();\n\n@if (iconName) {\n <thy-icon class=\"thy-message-icon\" [thyIconName]=\"iconName\"></thy-icon>\n} @else {\n <span class=\"thy-message-icon loading-icon\"></span>\n}\n<div class=\"thy-message-main\">\n <ng-container *thyStringOrTemplateOutlet=\"messageConfig?.content\"></ng-container>\n</div>\n@if (messageConfig?.showClose) {\n <thy-icon class=\"thy-message-close\" thyIconName=\"close\" (click)=\"close()\"></thy-icon>\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyStringOrTemplateOutletDirective, selector: "[thyStringOrTemplateOutlet]", inputs: ["thyStringOrTemplateOutletContext", "thyStringOrTemplateOutlet"], exportAs: ["thyStringOrTemplateOutlet"] }], animations: [
|
|
244
240
|
trigger('flyInOut', [
|
|
245
241
|
state('flyIn', style({ transform: 'translateY(0)', opacity: 1, height: '*' })),
|
|
246
242
|
transition('void => flyIn', [
|
|
@@ -255,7 +251,7 @@ class ThyMessage extends ThyAbstractMessageComponent {
|
|
|
255
251
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMessage, decorators: [{
|
|
256
252
|
type: Component,
|
|
257
253
|
args: [{ selector: 'thy-message', host: {
|
|
258
|
-
'[class]': "'thy-message thy-message-' + config.type"
|
|
254
|
+
'[class]': "'thy-message thy-message-' + config().type"
|
|
259
255
|
}, animations: [
|
|
260
256
|
trigger('flyInOut', [
|
|
261
257
|
state('flyIn', style({ transform: 'translateY(0)', opacity: 1, height: '*' })),
|
|
@@ -266,12 +262,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
266
262
|
transition('flyIn => componentHide', [animate(ANIMATION_OUT_DURATION, style(HIDE_STYLE))]),
|
|
267
263
|
state('componentHide', style(HIDE_STYLE))
|
|
268
264
|
])
|
|
269
|
-
], imports: [ThyIcon, ThyStringOrTemplateOutletDirective], template: "@if (iconName) {\n <thy-icon class=\"thy-message-icon\" [thyIconName]=\"iconName\"></thy-icon>\n} @else {\n <span class=\"thy-message-icon loading-icon\"></span>\n}\n<div class=\"thy-message-main\">\n <ng-container *thyStringOrTemplateOutlet=\"
|
|
265
|
+
], imports: [ThyIcon, ThyStringOrTemplateOutletDirective], template: "@let messageConfig = config();\n\n@if (iconName) {\n <thy-icon class=\"thy-message-icon\" [thyIconName]=\"iconName\"></thy-icon>\n} @else {\n <span class=\"thy-message-icon loading-icon\"></span>\n}\n<div class=\"thy-message-main\">\n <ng-container *thyStringOrTemplateOutlet=\"messageConfig?.content\"></ng-container>\n</div>\n@if (messageConfig?.showClose) {\n <thy-icon class=\"thy-message-close\" thyIconName=\"close\" (click)=\"close()\"></thy-icon>\n}\n" }]
|
|
270
266
|
}], ctorParameters: () => [], propDecorators: { animationState: [{
|
|
271
267
|
type: HostBinding,
|
|
272
268
|
args: ['@flyInOut']
|
|
273
|
-
}], thyConfig: [{
|
|
274
|
-
type: Input
|
|
275
269
|
}] } });
|
|
276
270
|
|
|
277
271
|
/**
|
|
@@ -286,14 +280,13 @@ class ThyMessageContainer extends ThyAbstractMessageContainerComponent {
|
|
|
286
280
|
...defaultConfig
|
|
287
281
|
});
|
|
288
282
|
this.messageQueue = inject(ThyMessageQueue);
|
|
289
|
-
this.className = 'thy-message-container';
|
|
290
283
|
}
|
|
291
284
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMessageContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
292
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyMessageContainer, isStandalone: true, selector: "thy-message-container", host: {
|
|
285
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyMessageContainer, isStandalone: true, selector: "thy-message-container", host: { classAttribute: "thy-message-container" }, usesInheritance: true, ngImport: i0, template: `
|
|
293
286
|
@for (message of messageQueue.queues$ | async; track message.id) {
|
|
294
287
|
<thy-message [thyConfig]="message.config"></thy-message>
|
|
295
288
|
}
|
|
296
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ThyMessage, selector: "thy-message"
|
|
289
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ThyMessage, selector: "thy-message" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
|
|
297
290
|
}
|
|
298
291
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMessageContainer, decorators: [{
|
|
299
292
|
type: Component,
|
|
@@ -304,12 +297,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
304
297
|
<thy-message [thyConfig]="message.config"></thy-message>
|
|
305
298
|
}
|
|
306
299
|
`,
|
|
307
|
-
imports: [ThyMessage, AsyncPipe]
|
|
300
|
+
imports: [ThyMessage, AsyncPipe],
|
|
301
|
+
host: {
|
|
302
|
+
class: 'thy-message-container'
|
|
303
|
+
}
|
|
308
304
|
}]
|
|
309
|
-
}], ctorParameters: () => []
|
|
310
|
-
type: HostBinding,
|
|
311
|
-
args: ['class']
|
|
312
|
-
}] } });
|
|
305
|
+
}], ctorParameters: () => [] });
|
|
313
306
|
|
|
314
307
|
class ThyMessageModule {
|
|
315
308
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMessageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-message.mjs","sources":["../../../src/message/abstract/abstract-message-container.component.ts","../../../src/message/abstract/abstract-message-queue.service.ts","../../../src/message/abstract/abstract-message.component.ts","../../../src/message/abstract/abstract-message.service.ts","../../../src/message/abstract/abstract-message-ref.ts","../../../src/message/message.config.ts","../../../src/message/message-queue.service.ts","../../../src/message/message.component.ts","../../../src/message/message.component.html","../../../src/message/message-container.component.ts","../../../src/message/module.ts","../../../src/message/message-ref.ts","../../../src/message/message.service.ts","../../../src/message/ngx-tethys-message.ts"],"sourcesContent":["import { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, HostBinding, inject } from '@angular/core';\nimport { ThyGlobalMessageConfig } from '../message.config';\n\n/**\n * @internal\n */\n@Directive()\nexport class ThyAbstractMessageContainerComponent {\n private elementRef = inject(ElementRef);\n\n @HostBinding('style.top') offset: string;\n\n constructor(defaultConfig: ThyGlobalMessageConfig) {\n this.offset = coerceCssPixelValue(defaultConfig.offset);\n }\n\n toOverlayTop() {\n const globalOverlayWrapper = this.elementRef.nativeElement.closest('.cdk-global-overlay-wrapper');\n const overlayContainer = globalOverlayWrapper.parentElement;\n overlayContainer.appendChild(globalOverlayWrapper);\n }\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { ThyGlobalMessageConfig } from '../message.config';\nimport { IThyAbstractMessageQueue, ThyAbstractMessageRef } from './abstract-message-ref';\n\n/**\n * @internal\n */\nexport class ThyAbstractMessageQueue<TReferences extends ThyAbstractMessageRef = ThyAbstractMessageRef>\n implements IThyAbstractMessageQueue\n{\n queues$ = new BehaviorSubject<TReferences[]>([]);\n\n protected defaultConfig: ThyGlobalMessageConfig;\n\n get queues(): TReferences[] {\n return this.queues$.getValue();\n }\n\n constructor(defaultConfig: ThyGlobalMessageConfig) {\n this.defaultConfig = defaultConfig;\n }\n\n add(messageRef: TReferences) {\n const queues = this.queues$.getValue();\n if (this.queues.length >= this.defaultConfig.maxStack) {\n const closedRef = queues.shift();\n closedRef.close();\n }\n this.queues$.next([...queues, messageRef]);\n }\n\n remove(id: string) {\n if (!id) {\n this.queues.forEach(item => item.close());\n this.queues$.next([]);\n } else {\n const removeItem = this.queues.find(item => item.id === id);\n removeItem?.close();\n const afterRemovedQueues = this.queues.filter(item => item.id !== id);\n this.queues$.next(afterRemovedQueues);\n }\n }\n}\n","import { Directive, HostListener, Input, NgZone, OnDestroy, OnInit, inject } from '@angular/core';\nimport { ThyMessageBaseConfig } from '../message.config';\nimport { ThyAbstractMessageQueue } from './abstract-message-queue.service';\n\nexport const ANIMATION_IN_DURATION = 100;\nexport const ANIMATION_OUT_DURATION = 150;\nexport const HIDE_STYLE = { transform: 'translateX(0)', opacity: 0, height: 0, paddingTop: 0, paddingBottom: 0, margin: 0 };\n\n/**\n * @internal\n */\n@Directive()\nexport class ThyAbstractMessageComponent<TConfig extends ThyMessageBaseConfig> implements OnInit, OnDestroy {\n private _ngZone = inject(NgZone);\n\n animationState: string;\n\n config: TConfig;\n\n iconName = '';\n\n private closeTimer: any;\n\n private queue: ThyAbstractMessageQueue;\n\n @Input()\n set thyConfig(value: TConfig) {\n this.config = value;\n }\n\n constructor(queue: ThyAbstractMessageQueue) {\n this.queue = queue;\n }\n\n ngOnInit() {\n const iconName = {\n success: 'check-circle-fill',\n info: 'info-circle-fill',\n warning: 'waring-fill',\n error: 'close-circle-fill'\n };\n\n this.iconName = iconName[this.config.type];\n this.createCloseTimer();\n }\n\n @HostListener('mouseenter')\n mouseenter() {\n if (this.config.pauseOnHover) {\n this.clearCloseTimer();\n }\n }\n\n @HostListener('mouseleave')\n mouseleave() {\n if (this.config.pauseOnHover) {\n this.createCloseTimer();\n }\n }\n\n close() {\n this._ngZone.runOutsideAngular(() => {\n this.animationState = 'componentHide';\n setTimeout(() => {\n this.queue.remove(this.config.id);\n }, ANIMATION_OUT_DURATION);\n });\n }\n\n private createCloseTimer() {\n if (this.config.duration) {\n this.closeTimer = setInterval(() => {\n this.clearCloseTimer();\n this.close();\n }, this.config.duration);\n }\n }\n\n private clearCloseTimer() {\n clearInterval(this.closeTimer);\n }\n\n ngOnDestroy() {\n this.clearCloseTimer();\n }\n}\n","import { ComponentType, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injector } from '@angular/core';\nimport { ThyAbstractMessageContainerComponent } from './abstract-message-container.component';\nimport { ThyAbstractMessageQueue } from './abstract-message-queue.service';\n\n/**\n * @internal\n */\nexport class ThyAbstractMessageService<TContainer extends ThyAbstractMessageContainerComponent> {\n protected container: TContainer;\n\n protected overlayRef: OverlayRef;\n\n private queue: ThyAbstractMessageQueue;\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n queue: ThyAbstractMessageQueue\n ) {\n this.queue = queue;\n }\n\n protected createContainer(container: ComponentType<TContainer>): TContainer {\n if (this.container) {\n this.container.toOverlayTop();\n return this.container;\n }\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: false,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy: this.overlay.position().global()\n });\n const componentPortal = new ComponentPortal(container, null, this.injector);\n const componentRef = this.overlayRef.attach(componentPortal);\n return componentRef.instance;\n }\n\n remove(id?: string) {\n this.queue.remove(id);\n }\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { Subject } from 'rxjs';\nimport { ThyMessageBaseConfig } from '../message.config';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface IThyAbstractMessageQueue<TReferences extends ThyAbstractMessageRef = ThyAbstractMessageRef> {\n queues$: BehaviorSubject<TReferences[]>;\n queues: TReferences[];\n}\n\nexport class ThyAbstractMessageRef<TConfig extends ThyMessageBaseConfig = ThyMessageBaseConfig> {\n id: string;\n\n config: TConfig;\n\n private overlayRef: OverlayRef;\n\n private queueService: IThyAbstractMessageQueue;\n\n private _afterClosed = new Subject<void>();\n\n constructor(config: TConfig, overlayRef: OverlayRef, queueService: IThyAbstractMessageQueue) {\n this.id = config.id;\n this.config = config;\n this.overlayRef = overlayRef;\n this.queueService = queueService;\n }\n\n close() {\n this.queueService.queues$.next(this.queueService.queues.filter(item => item.id !== this.id));\n this._afterClosed.next();\n this._afterClosed.complete();\n }\n\n afterClosed() {\n return this._afterClosed.asObservable();\n }\n\n getOverlayRef() {\n return this.overlayRef;\n }\n}\n","import { InjectionToken, TemplateRef } from '@angular/core';\nimport { ComponentTypeOrTemplateRef } from 'ngx-tethys/core';\n\nexport type ThyMessageType = 'success' | 'error' | 'warning' | 'info' | 'loading';\n\nexport interface ThyGlobalMessageConfig {\n pauseOnHover?: boolean;\n\n duration?: number;\n\n maxStack?: number;\n\n offset?: string;\n\n showClose?: boolean;\n}\n\nexport const THY_MESSAGE_DEFAULT_CONFIG = new InjectionToken<ThyGlobalMessageConfig>('thy-message-default-config');\n\nexport const THY_MESSAGE_DEFAULT_CONFIG_VALUE: ThyGlobalMessageConfig = {\n offset: '20',\n duration: 4500,\n pauseOnHover: true,\n maxStack: 8,\n showClose: true\n};\n\nexport const THY_MESSAGE_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_MESSAGE_DEFAULT_CONFIG,\n useValue: THY_MESSAGE_DEFAULT_CONFIG_VALUE\n};\n\nexport interface ThyMessageBaseConfig {\n id?: string;\n\n type?: string;\n\n pauseOnHover?: boolean;\n\n duration?: number;\n\n content?: string | ComponentTypeOrTemplateRef<any>;\n\n hostClass?: string | string[];\n}\n\nexport interface ThyMessageConfig extends ThyMessageBaseConfig {\n type?: ThyMessageType;\n\n content?: string | TemplateRef<any>;\n\n showClose?: boolean;\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ThyAbstractMessageQueue } from './abstract';\nimport { ThyMessageRef } from './message-ref';\nimport { ThyGlobalMessageConfig, THY_MESSAGE_DEFAULT_CONFIG, THY_MESSAGE_DEFAULT_CONFIG_VALUE } from './message.config';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyMessageQueue extends ThyAbstractMessageQueue<ThyMessageRef> {\n constructor() {\n const defaultConfig = inject(THY_MESSAGE_DEFAULT_CONFIG);\n\n super({\n ...THY_MESSAGE_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n });\n }\n}\n","import { Component, Input, HostBinding, NgZone, inject } from '@angular/core';\nimport { trigger, state, style, animate, transition } from '@angular/animations';\nimport { ThyMessageConfig } from './message.config';\nimport { ThyMessageQueue } from './message-queue.service';\nimport { ANIMATION_IN_DURATION, ANIMATION_OUT_DURATION, HIDE_STYLE, ThyAbstractMessageComponent } from './abstract';\nimport { ThyStringOrTemplateOutletDirective } from 'ngx-tethys/shared';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\nimport { coerceArray } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-message',\n templateUrl: './message.component.html',\n host: {\n '[class]': \"'thy-message thy-message-' + config.type\"\n },\n animations: [\n trigger('flyInOut', [\n state('flyIn', style({ transform: 'translateY(0)', opacity: 1, height: '*' })),\n transition('void => flyIn', [\n style({ transform: 'translateY(-100%)', opacity: 0, height: '*' }),\n animate(ANIMATION_IN_DURATION)\n ]),\n transition('flyIn => componentHide', [animate(ANIMATION_OUT_DURATION, style(HIDE_STYLE))]),\n state('componentHide', style(HIDE_STYLE))\n ])\n ],\n imports: [ThyIcon, ThyStringOrTemplateOutletDirective]\n})\nexport class ThyMessage extends ThyAbstractMessageComponent<ThyMessageConfig> {\n @HostBinding('@flyInOut') animationState = 'flyIn';\n\n config: ThyMessageConfig;\n\n private hostRenderer = useHostRenderer();\n\n @Input()\n set thyConfig(value: ThyMessageConfig) {\n this.config = value;\n\n if (this.config?.hostClass) {\n const hostClass = coerceArray(this.config.hostClass);\n this.hostRenderer.updateClass(hostClass);\n }\n }\n\n constructor() {\n const messageQueue = inject(ThyMessageQueue);\n super(messageQueue);\n }\n}\n","@if (iconName) {\n <thy-icon class=\"thy-message-icon\" [thyIconName]=\"iconName\"></thy-icon>\n} @else {\n <span class=\"thy-message-icon loading-icon\"></span>\n}\n<div class=\"thy-message-main\">\n <ng-container *thyStringOrTemplateOutlet=\"config.content\"></ng-container>\n</div>\n@if (config.showClose) {\n <thy-icon class=\"thy-message-close\" thyIconName=\"close\" (click)=\"close()\"></thy-icon>\n}\n\n","import { Component, ElementRef, HostBinding, inject } from '@angular/core';\nimport { ThyAbstractMessageContainerComponent } from './abstract';\nimport { ThyMessageQueue } from './message-queue.service';\nimport { ThyGlobalMessageConfig, THY_MESSAGE_DEFAULT_CONFIG, THY_MESSAGE_DEFAULT_CONFIG_VALUE } from './message.config';\nimport { ThyMessage } from './message.component';\nimport { AsyncPipe } from '@angular/common';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-message-container',\n template: `\n @for (message of messageQueue.queues$ | async; track message.id) {\n <thy-message [thyConfig]=\"message.config\"></thy-message>\n }\n `,\n imports: [ThyMessage, AsyncPipe]\n})\nexport class ThyMessageContainer extends ThyAbstractMessageContainerComponent {\n messageQueue = inject(ThyMessageQueue);\n\n @HostBinding('class') className = 'thy-message-container';\n\n constructor() {\n const elementRef = inject(ElementRef);\n const defaultConfig = inject(THY_MESSAGE_DEFAULT_CONFIG);\n\n super({\n ...THY_MESSAGE_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyMessage } from './message.component';\nimport { ThyMessageContainer } from './message-container.component';\nimport { THY_MESSAGE_DEFAULT_CONFIG_PROVIDER } from './message.config';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, OverlayModule, PortalModule, ThyIconModule, ThyMessageContainer, ThyMessage],\n exports: [ThyMessageContainer, ThyMessage],\n providers: [THY_MESSAGE_DEFAULT_CONFIG_PROVIDER]\n})\nexport class ThyMessageModule {}\n","import { ThyAbstractMessageRef } from './abstract';\nimport { ThyMessageConfig } from './message.config';\n\nexport class ThyMessageRef extends ThyAbstractMessageRef<ThyMessageConfig> {}\n","import { Overlay } from '@angular/cdk/overlay';\nimport { Injectable, Injector, TemplateRef, inject } from '@angular/core';\nimport { ThyMessageContainer } from './message-container.component';\nimport { ThyMessageRef } from './message-ref';\nimport { ThyMessageQueue } from './message-queue.service';\nimport { ThyGlobalMessageConfig, ThyMessageConfig, THY_MESSAGE_DEFAULT_CONFIG, THY_MESSAGE_DEFAULT_CONFIG_VALUE } from './message.config';\nimport { ThyAbstractMessageService } from './abstract';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyMessageService extends ThyAbstractMessageService<ThyMessageContainer> {\n private messageQueue: ThyMessageQueue;\n\n private _lastMessageId = 0;\n\n private defaultConfig: ThyGlobalMessageConfig;\n\n constructor() {\n const overlay = inject(Overlay);\n const injector = inject(Injector);\n const messageQueue = inject(ThyMessageQueue);\n const config = inject(THY_MESSAGE_DEFAULT_CONFIG);\n\n super(overlay, injector, messageQueue);\n this.messageQueue = messageQueue;\n\n this.defaultConfig = {\n ...THY_MESSAGE_DEFAULT_CONFIG_VALUE,\n ...config\n };\n }\n\n /**\n * 打开 success 类型的 Message\n */\n success(content: string | TemplateRef<any>, config?: ThyMessageConfig): ThyMessageRef {\n return this.show({\n ...(config || {}),\n type: 'success',\n content\n });\n }\n\n /**\n * 打开 error 类型的 Message\n */\n error(content: string | TemplateRef<any>, config?: ThyMessageConfig): ThyMessageRef {\n return this.show({\n ...(config || {}),\n type: 'error',\n content\n });\n }\n\n /**\n * 打开 info 类型的 Message\n */\n info(content: string | TemplateRef<any>, config?: ThyMessageConfig): ThyMessageRef {\n return this.show({\n ...(config || {}),\n type: 'info',\n content\n });\n }\n\n /**\n * 打开 warning 类型的 Message\n */\n warning(content: string | TemplateRef<any>, config?: ThyMessageConfig): ThyMessageRef {\n return this.show({\n ...(config || {}),\n type: 'warning',\n content\n });\n }\n\n /**\n * 打开 loading 类型的 Message\n */\n loading(content: string | TemplateRef<any>, config?: ThyMessageConfig): ThyMessageRef {\n return this.show({\n ...(config || {}),\n type: 'loading',\n content\n });\n }\n\n protected show(config: ThyMessageConfig): ThyMessageRef {\n this.container = this.createContainer(ThyMessageContainer);\n\n const messageConfig = this.formatOptions(config);\n const messageRef = new ThyMessageRef(messageConfig, this.overlayRef, this.messageQueue);\n this.messageQueue.add(messageRef);\n return messageRef;\n }\n\n private formatOptions(config: ThyMessageConfig) {\n return Object.assign({ id: String(this._lastMessageId++) }, this.defaultConfig, config);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyAbstractMessageQueue"],"mappings":";;;;;;;;;;;;;AAIA;;AAEG;MAEU,oCAAoC,CAAA;AAK7C,IAAA,WAAA,CAAY,aAAqC,EAAA;AAJzC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAKnC,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,aAAa,CAAC,MAAM,CAAC;;IAG3D,YAAY,GAAA;AACR,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,6BAA6B,CAAC;AACjG,QAAA,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,aAAa;AAC3D,QAAA,gBAAgB,CAAC,WAAW,CAAC,oBAAoB,CAAC;;8GAZ7C,oCAAoC,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApC,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBADhD;2EAI6B,MAAM,EAAA,CAAA;sBAA/B,WAAW;uBAAC,WAAW;;;ACP5B;;AAEG;MACU,uBAAuB,CAAA;AAOhC,IAAA,IAAI,MAAM,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;;AAGlC,IAAA,WAAA,CAAY,aAAqC,EAAA;AARjD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAgB,EAAE,CAAC;AAS5C,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AAGtC,IAAA,GAAG,CAAC,UAAuB,EAAA;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACtC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AACnD,YAAA,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE;YAChC,SAAS,CAAC,KAAK,EAAE;;AAErB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC;;AAG9C,IAAA,MAAM,CAAC,EAAU,EAAA;QACb,IAAI,CAAC,EAAE,EAAE;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACzC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;;aAClB;AACH,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;YAC3D,UAAU,EAAE,KAAK,EAAE;AACnB,YAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;AACrE,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;;;AAGhD;;ACtCM,MAAM,qBAAqB,GAAG;AAC9B,MAAM,sBAAsB,GAAG;AAC/B,MAAM,UAAU,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;AAEzH;;AAEG;MAEU,2BAA2B,CAAA;IAapC,IACI,SAAS,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;;AAGvB,IAAA,WAAA,CAAY,KAA8B,EAAA;AAjBlC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QAMhC,IAAQ,CAAA,QAAA,GAAG,EAAE;AAYT,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;IAGtB,QAAQ,GAAA;AACJ,QAAA,MAAM,QAAQ,GAAG;AACb,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,KAAK,EAAE;SACV;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,gBAAgB,EAAE;;IAI3B,UAAU,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC1B,IAAI,CAAC,eAAe,EAAE;;;IAK9B,UAAU,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC1B,IAAI,CAAC,gBAAgB,EAAE;;;IAI/B,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;AAChC,YAAA,IAAI,CAAC,cAAc,GAAG,eAAe;YACrC,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;aACpC,EAAE,sBAAsB,CAAC;AAC9B,SAAC,CAAC;;IAGE,gBAAgB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,MAAK;gBAC/B,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,KAAK,EAAE;AAChB,aAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;;;IAIxB,eAAe,GAAA;AACnB,QAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;;IAGlC,WAAW,GAAA;QACP,IAAI,CAAC,eAAe,EAAE;;8GAvEjB,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC;yFAeO,SAAS,EAAA,CAAA;sBADZ;gBAsBD,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,YAAY;gBAQ1B,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,YAAY;;;AC/C9B;;AAEG;MACU,yBAAyB,CAAA;AAOlC,IAAA,WAAA,CACY,OAAgB,EAChB,QAAkB,EAC1B,KAA8B,EAAA;QAFtB,IAAO,CAAA,OAAA,GAAP,OAAO;QACP,IAAQ,CAAA,QAAA,GAAR,QAAQ;AAGhB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGZ,IAAA,eAAe,CAAC,SAAoC,EAAA;AAC1D,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC7B,OAAO,IAAI,CAAC,SAAS;;QAGzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAClC,YAAA,WAAW,EAAE,KAAK;YAClB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE;YACpD,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM;AACnD,SAAA,CAAC;AACF,QAAA,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC;QAC5D,OAAO,YAAY,CAAC,QAAQ;;AAGhC,IAAA,MAAM,CAAC,EAAW,EAAA;AACd,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;;AAE5B;;MCjCY,qBAAqB,CAAA;AAW9B,IAAA,WAAA,CAAY,MAAe,EAAE,UAAsB,EAAE,YAAsC,EAAA;AAFnF,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;AAGtC,QAAA,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;IAGpC,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5F,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;;IAGhC,WAAW,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;;IAG3C,aAAa,GAAA;QACT,OAAO,IAAI,CAAC,UAAU;;AAE7B;;MCxBY,0BAA0B,GAAG,IAAI,cAAc,CAAyB,4BAA4B;AAEpG,MAAA,gCAAgC,GAA2B;AACpE,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,QAAQ,EAAE,CAAC;AACX,IAAA,SAAS,EAAE;;AAGF,MAAA,mCAAmC,GAAG;AAC/C,IAAA,OAAO,EAAE,0BAA0B;AACnC,IAAA,QAAQ,EAAE;;;ACxBd;;AAEG;AAIG,MAAO,eAAgB,SAAQ,uBAAsC,CAAA;AACvE,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAExD,QAAA,KAAK,CAAC;AACF,YAAA,GAAG,gCAAgC;AACnC,YAAA,GAAG;AACN,SAAA,CAAC;;8GAPG,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFZ,MAAM,EAAA,CAAA,CAAA;;2FAET,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACCD;;AAEG;AAoBG,MAAO,UAAW,SAAQ,2BAA6C,CAAA;IAOzE,IACI,SAAS,CAAC,KAAuB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AAEnB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE;YACxB,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AACpD,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC;;;AAIhD,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC;QAC5C,KAAK,CAAC,YAAY,CAAC;QAlBG,IAAc,CAAA,cAAA,GAAG,OAAO;QAI1C,IAAY,CAAA,YAAA,GAAG,eAAe,EAAE;;8GAL/B,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,qPCjCvB,iaAYA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDmBc,OAAO,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kCAAkC,EAXzC,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,kCAAA,EAAA,2BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACR,OAAO,CAAC,UAAU,EAAE;AAChB,gBAAA,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC9E,UAAU,CAAC,eAAe,EAAE;AACxB,oBAAA,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;oBAClE,OAAO,CAAC,qBAAqB;iBAChC,CAAC;AACF,gBAAA,UAAU,CAAC,wBAAwB,EAAE,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1F,gBAAA,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC;aAC3C;AACJ,SAAA,EAAA,CAAA,CAAA;;2FAGQ,UAAU,EAAA,UAAA,EAAA,CAAA;kBAnBtB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAEjB,IAAA,EAAA;AACF,wBAAA,SAAS,EAAE;qBACd,EACW,UAAA,EAAA;wBACR,OAAO,CAAC,UAAU,EAAE;AAChB,4BAAA,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;4BAC9E,UAAU,CAAC,eAAe,EAAE;AACxB,gCAAA,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gCAClE,OAAO,CAAC,qBAAqB;6BAChC,CAAC;AACF,4BAAA,UAAU,CAAC,wBAAwB,EAAE,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1F,4BAAA,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC;yBAC3C;AACJ,qBAAA,EAAA,OAAA,EACQ,CAAC,OAAO,EAAE,kCAAkC,CAAC,EAAA,QAAA,EAAA,iaAAA,EAAA;wDAG5B,cAAc,EAAA,CAAA;sBAAvC,WAAW;uBAAC,WAAW;gBAOpB,SAAS,EAAA,CAAA;sBADZ;;;AEjCL;;AAEG;AAUG,MAAO,mBAAoB,SAAQ,oCAAoC,CAAA;AAKzE,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACrC,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAExD,QAAA,KAAK,CAAC;AACF,YAAA,GAAG,gCAAgC;AACnC,YAAA,GAAG;AACN,SAAA,CAAC;AAXN,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC;QAEhB,IAAS,CAAA,SAAA,GAAG,uBAAuB;;8GAHhD,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAPlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;KAIT,EACS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,0EAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEtB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE;;;;AAIT,IAAA,CAAA;AACD,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAE,SAAS;AAClC,iBAAA;wDAIyB,SAAS,EAAA,CAAA;sBAA9B,WAAW;uBAAC,OAAO;;;MCPX,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAJf,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,UAAU,CAC1G,EAAA,OAAA,EAAA,CAAA,mBAAmB,EAAE,UAAU,CAAA,EAAA,CAAA,CAAA;AAGhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,aAFd,CAAC,mCAAmC,CAAC,EAAA,OAAA,EAAA,CAFtC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,UAAU,CAAA,EAAA,CAAA,CAAA;;2FAI3G,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,UAAU,CAAC;AACrH,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,UAAU,CAAC;oBAC1C,SAAS,EAAE,CAAC,mCAAmC;AAClD,iBAAA;;;ACXK,MAAO,aAAc,SAAQ,qBAAuC,CAAA;AAAG;;ACQvE,MAAO,iBAAkB,SAAQ,yBAA8C,CAAA;AAOjF,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjC,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC;AAC5C,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAEjD,QAAA,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC;QAVlC,IAAc,CAAA,cAAA,GAAG,CAAC;AAWtB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;QAEhC,IAAI,CAAC,aAAa,GAAG;AACjB,YAAA,GAAG,gCAAgC;AACnC,YAAA,GAAG;SACN;;AAGL;;AAEG;IACH,OAAO,CAAC,OAAkC,EAAE,MAAyB,EAAA;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC;AACb,YAAA,IAAI,MAAM,IAAI,EAAE,CAAC;AACjB,YAAA,IAAI,EAAE,SAAS;YACf;AACH,SAAA,CAAC;;AAGN;;AAEG;IACH,KAAK,CAAC,OAAkC,EAAE,MAAyB,EAAA;QAC/D,OAAO,IAAI,CAAC,IAAI,CAAC;AACb,YAAA,IAAI,MAAM,IAAI,EAAE,CAAC;AACjB,YAAA,IAAI,EAAE,OAAO;YACb;AACH,SAAA,CAAC;;AAGN;;AAEG;IACH,IAAI,CAAC,OAAkC,EAAE,MAAyB,EAAA;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC;AACb,YAAA,IAAI,MAAM,IAAI,EAAE,CAAC;AACjB,YAAA,IAAI,EAAE,MAAM;YACZ;AACH,SAAA,CAAC;;AAGN;;AAEG;IACH,OAAO,CAAC,OAAkC,EAAE,MAAyB,EAAA;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC;AACb,YAAA,IAAI,MAAM,IAAI,EAAE,CAAC;AACjB,YAAA,IAAI,EAAE,SAAS;YACf;AACH,SAAA,CAAC;;AAGN;;AAEG;IACH,OAAO,CAAC,OAAkC,EAAE,MAAyB,EAAA;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC;AACb,YAAA,IAAI,MAAM,IAAI,EAAE,CAAC;AACjB,YAAA,IAAI,EAAE,SAAS;YACf;AACH,SAAA,CAAC;;AAGI,IAAA,IAAI,CAAC,MAAwB,EAAA;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC;QAE1D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAChD,QAAA,MAAM,UAAU,GAAG,IAAI,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC;AACvF,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;AACjC,QAAA,OAAO,UAAU;;AAGb,IAAA,aAAa,CAAC,MAAwB,EAAA;QAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;;8GAvFlF,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFd,MAAM,EAAA,CAAA,CAAA;;2FAET,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACVD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-message.mjs","sources":["../../../src/message/abstract/abstract-message-container.component.ts","../../../src/message/abstract/abstract-message-queue.service.ts","../../../src/message/abstract/abstract-message.component.ts","../../../src/message/abstract/abstract-message.service.ts","../../../src/message/abstract/abstract-message-ref.ts","../../../src/message/message.config.ts","../../../src/message/message-queue.service.ts","../../../src/message/message.component.ts","../../../src/message/message.component.html","../../../src/message/message-container.component.ts","../../../src/message/module.ts","../../../src/message/message-ref.ts","../../../src/message/message.service.ts","../../../src/message/ngx-tethys-message.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, inject } from '@angular/core';\nimport { coerceCssPixelValue } from 'ngx-tethys/util';\nimport { ThyGlobalMessageConfig } from '../message.config';\n\n/**\n * @internal\n */\n@Directive()\nexport class ThyAbstractMessageContainerComponent {\n private elementRef = inject(ElementRef);\n\n @HostBinding('style.top') offset: string;\n\n constructor(defaultConfig: ThyGlobalMessageConfig) {\n this.offset = coerceCssPixelValue(defaultConfig.offset);\n }\n\n toOverlayTop() {\n const globalOverlayWrapper = this.elementRef.nativeElement.closest('.cdk-global-overlay-wrapper');\n const overlayContainer = globalOverlayWrapper.parentElement;\n overlayContainer.appendChild(globalOverlayWrapper);\n }\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { ThyGlobalMessageConfig } from '../message.config';\nimport { IThyAbstractMessageQueue, ThyAbstractMessageRef } from './abstract-message-ref';\n\n/**\n * @internal\n */\nexport class ThyAbstractMessageQueue<TReferences extends ThyAbstractMessageRef = ThyAbstractMessageRef>\n implements IThyAbstractMessageQueue\n{\n queues$ = new BehaviorSubject<TReferences[]>([]);\n\n protected defaultConfig: ThyGlobalMessageConfig;\n\n get queues(): TReferences[] {\n return this.queues$.getValue();\n }\n\n constructor(defaultConfig: ThyGlobalMessageConfig) {\n this.defaultConfig = defaultConfig;\n }\n\n add(messageRef: TReferences) {\n const queues = this.queues$.getValue();\n if (this.queues.length >= this.defaultConfig.maxStack) {\n const closedRef = queues.shift();\n closedRef.close();\n }\n this.queues$.next([...queues, messageRef]);\n }\n\n remove(id: string) {\n if (!id) {\n this.queues.forEach(item => item.close());\n this.queues$.next([]);\n } else {\n const removeItem = this.queues.find(item => item.id === id);\n removeItem?.close();\n const afterRemovedQueues = this.queues.filter(item => item.id !== id);\n this.queues$.next(afterRemovedQueues);\n }\n }\n}\n","import { Directive, HostListener, NgZone, OnDestroy, OnInit, inject, input } from '@angular/core';\nimport { ThyMessageBaseConfig } from '../message.config';\nimport { ThyAbstractMessageQueue } from './abstract-message-queue.service';\n\nexport const ANIMATION_IN_DURATION = 100;\nexport const ANIMATION_OUT_DURATION = 150;\nexport const HIDE_STYLE = { transform: 'translateX(0)', opacity: 0, height: 0, paddingTop: 0, paddingBottom: 0, margin: 0 };\n\n/**\n * @internal\n */\n@Directive()\nexport class ThyAbstractMessageComponent<TConfig extends ThyMessageBaseConfig> implements OnInit, OnDestroy {\n private _ngZone = inject(NgZone);\n\n animationState: string;\n\n iconName = '';\n\n private closeTimer: any;\n\n private queue: ThyAbstractMessageQueue;\n\n readonly config = input<TConfig>(null, { alias: 'thyConfig' });\n\n constructor(queue: ThyAbstractMessageQueue) {\n this.queue = queue;\n }\n\n ngOnInit() {\n const iconName: Record<string, string> = {\n success: 'check-circle-fill',\n info: 'info-circle-fill',\n warning: 'waring-fill',\n error: 'close-circle-fill'\n };\n\n this.iconName = iconName[this.config()?.type];\n this.createCloseTimer();\n }\n\n @HostListener('mouseenter')\n mouseenter() {\n if (this.config()?.pauseOnHover) {\n this.clearCloseTimer();\n }\n }\n\n @HostListener('mouseleave')\n mouseleave() {\n if (this.config()?.pauseOnHover) {\n this.createCloseTimer();\n }\n }\n\n close() {\n this._ngZone.runOutsideAngular(() => {\n this.animationState = 'componentHide';\n setTimeout(() => {\n this.queue.remove(this.config()?.id);\n }, ANIMATION_OUT_DURATION);\n });\n }\n\n private createCloseTimer() {\n const config = this.config();\n if (config?.duration) {\n this.closeTimer = setInterval(() => {\n this.clearCloseTimer();\n this.close();\n }, config.duration);\n }\n }\n\n private clearCloseTimer() {\n clearInterval(this.closeTimer);\n }\n\n ngOnDestroy() {\n this.clearCloseTimer();\n }\n}\n","import { ComponentType, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injector } from '@angular/core';\nimport { ThyAbstractMessageContainerComponent } from './abstract-message-container.component';\nimport { ThyAbstractMessageQueue } from './abstract-message-queue.service';\n\n/**\n * @internal\n */\nexport class ThyAbstractMessageService<TContainer extends ThyAbstractMessageContainerComponent> {\n protected container: TContainer;\n\n protected overlayRef: OverlayRef;\n\n private queue: ThyAbstractMessageQueue;\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n queue: ThyAbstractMessageQueue\n ) {\n this.queue = queue;\n }\n\n protected createContainer(container: ComponentType<TContainer>): TContainer {\n if (this.container) {\n this.container.toOverlayTop();\n return this.container;\n }\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: false,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy: this.overlay.position().global()\n });\n const componentPortal = new ComponentPortal(container, null, this.injector);\n const componentRef = this.overlayRef.attach(componentPortal);\n return componentRef.instance;\n }\n\n remove(id?: string) {\n this.queue.remove(id);\n }\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { Subject } from 'rxjs';\nimport { ThyMessageBaseConfig } from '../message.config';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface IThyAbstractMessageQueue<TReferences extends ThyAbstractMessageRef = ThyAbstractMessageRef> {\n queues$: BehaviorSubject<TReferences[]>;\n queues: TReferences[];\n}\n\nexport class ThyAbstractMessageRef<TConfig extends ThyMessageBaseConfig = ThyMessageBaseConfig> {\n id: string;\n\n config: TConfig;\n\n private overlayRef: OverlayRef;\n\n private queueService: IThyAbstractMessageQueue;\n\n private _afterClosed = new Subject<void>();\n\n constructor(config: TConfig, overlayRef: OverlayRef, queueService: IThyAbstractMessageQueue) {\n this.id = config.id;\n this.config = config;\n this.overlayRef = overlayRef;\n this.queueService = queueService;\n }\n\n close() {\n this.queueService.queues$.next(this.queueService.queues.filter(item => item.id !== this.id));\n this._afterClosed.next();\n this._afterClosed.complete();\n }\n\n afterClosed() {\n return this._afterClosed.asObservable();\n }\n\n getOverlayRef() {\n return this.overlayRef;\n }\n}\n","import { InjectionToken, TemplateRef } from '@angular/core';\nimport { ComponentTypeOrTemplateRef } from 'ngx-tethys/core';\n\nexport type ThyMessageType = 'success' | 'error' | 'warning' | 'info' | 'loading';\n\nexport interface ThyGlobalMessageConfig {\n pauseOnHover?: boolean;\n\n duration?: number;\n\n maxStack?: number;\n\n offset?: string;\n\n showClose?: boolean;\n}\n\nexport const THY_MESSAGE_DEFAULT_CONFIG = new InjectionToken<ThyGlobalMessageConfig>('thy-message-default-config');\n\nexport const THY_MESSAGE_DEFAULT_CONFIG_VALUE: ThyGlobalMessageConfig = {\n offset: '20',\n duration: 4500,\n pauseOnHover: true,\n maxStack: 8,\n showClose: true\n};\n\nexport const THY_MESSAGE_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_MESSAGE_DEFAULT_CONFIG,\n useValue: THY_MESSAGE_DEFAULT_CONFIG_VALUE\n};\n\nexport interface ThyMessageBaseConfig {\n id?: string;\n\n type?: string;\n\n pauseOnHover?: boolean;\n\n duration?: number;\n\n content?: string | ComponentTypeOrTemplateRef<any>;\n\n hostClass?: string | string[];\n}\n\nexport interface ThyMessageConfig extends ThyMessageBaseConfig {\n type?: ThyMessageType;\n\n content?: string | TemplateRef<any>;\n\n showClose?: boolean;\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ThyAbstractMessageQueue } from './abstract';\nimport { ThyMessageRef } from './message-ref';\nimport { THY_MESSAGE_DEFAULT_CONFIG, THY_MESSAGE_DEFAULT_CONFIG_VALUE } from './message.config';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyMessageQueue extends ThyAbstractMessageQueue<ThyMessageRef> {\n constructor() {\n const defaultConfig = inject(THY_MESSAGE_DEFAULT_CONFIG);\n\n super({\n ...THY_MESSAGE_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n });\n }\n}\n","import { Component, HostBinding, effect, inject } from '@angular/core';\nimport { trigger, state, style, animate, transition } from '@angular/animations';\nimport { ThyMessageConfig } from './message.config';\nimport { ThyMessageQueue } from './message-queue.service';\nimport { ANIMATION_IN_DURATION, ANIMATION_OUT_DURATION, HIDE_STYLE, ThyAbstractMessageComponent } from './abstract';\nimport { ThyStringOrTemplateOutletDirective } from 'ngx-tethys/shared';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\nimport { coerceArray } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-message',\n templateUrl: './message.component.html',\n host: {\n '[class]': \"'thy-message thy-message-' + config().type\"\n },\n animations: [\n trigger('flyInOut', [\n state('flyIn', style({ transform: 'translateY(0)', opacity: 1, height: '*' })),\n transition('void => flyIn', [\n style({ transform: 'translateY(-100%)', opacity: 0, height: '*' }),\n animate(ANIMATION_IN_DURATION)\n ]),\n transition('flyIn => componentHide', [animate(ANIMATION_OUT_DURATION, style(HIDE_STYLE))]),\n state('componentHide', style(HIDE_STYLE))\n ])\n ],\n imports: [ThyIcon, ThyStringOrTemplateOutletDirective]\n})\nexport class ThyMessage extends ThyAbstractMessageComponent<ThyMessageConfig> {\n @HostBinding('@flyInOut') animationState = 'flyIn';\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n const messageQueue = inject(ThyMessageQueue);\n super(messageQueue);\n\n effect(() => {\n const config = this.config();\n if (config?.hostClass) {\n const hostClass = coerceArray(config.hostClass);\n this.hostRenderer.updateClass(hostClass);\n }\n });\n }\n}\n","@let messageConfig = config();\n\n@if (iconName) {\n <thy-icon class=\"thy-message-icon\" [thyIconName]=\"iconName\"></thy-icon>\n} @else {\n <span class=\"thy-message-icon loading-icon\"></span>\n}\n<div class=\"thy-message-main\">\n <ng-container *thyStringOrTemplateOutlet=\"messageConfig?.content\"></ng-container>\n</div>\n@if (messageConfig?.showClose) {\n <thy-icon class=\"thy-message-close\" thyIconName=\"close\" (click)=\"close()\"></thy-icon>\n}\n","import { Component, ElementRef, inject } from '@angular/core';\nimport { ThyAbstractMessageContainerComponent } from './abstract';\nimport { ThyMessageQueue } from './message-queue.service';\nimport { THY_MESSAGE_DEFAULT_CONFIG, THY_MESSAGE_DEFAULT_CONFIG_VALUE } from './message.config';\nimport { ThyMessage } from './message.component';\nimport { AsyncPipe } from '@angular/common';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-message-container',\n template: `\n @for (message of messageQueue.queues$ | async; track message.id) {\n <thy-message [thyConfig]=\"message.config\"></thy-message>\n }\n `,\n imports: [ThyMessage, AsyncPipe],\n host: {\n class: 'thy-message-container'\n }\n})\nexport class ThyMessageContainer extends ThyAbstractMessageContainerComponent {\n messageQueue = inject(ThyMessageQueue);\n\n constructor() {\n const elementRef = inject(ElementRef);\n const defaultConfig = inject(THY_MESSAGE_DEFAULT_CONFIG);\n\n super({\n ...THY_MESSAGE_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyMessage } from './message.component';\nimport { ThyMessageContainer } from './message-container.component';\nimport { THY_MESSAGE_DEFAULT_CONFIG_PROVIDER } from './message.config';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, OverlayModule, PortalModule, ThyIconModule, ThyMessageContainer, ThyMessage],\n exports: [ThyMessageContainer, ThyMessage],\n providers: [THY_MESSAGE_DEFAULT_CONFIG_PROVIDER]\n})\nexport class ThyMessageModule {}\n","import { ThyAbstractMessageRef } from './abstract';\nimport { ThyMessageConfig } from './message.config';\n\nexport class ThyMessageRef extends ThyAbstractMessageRef<ThyMessageConfig> {}\n","import { Overlay } from '@angular/cdk/overlay';\nimport { Injectable, Injector, TemplateRef, inject } from '@angular/core';\nimport { ThyMessageContainer } from './message-container.component';\nimport { ThyMessageRef } from './message-ref';\nimport { ThyMessageQueue } from './message-queue.service';\nimport { ThyGlobalMessageConfig, ThyMessageConfig, THY_MESSAGE_DEFAULT_CONFIG, THY_MESSAGE_DEFAULT_CONFIG_VALUE } from './message.config';\nimport { ThyAbstractMessageService } from './abstract';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyMessageService extends ThyAbstractMessageService<ThyMessageContainer> {\n private messageQueue: ThyMessageQueue;\n\n private _lastMessageId = 0;\n\n private defaultConfig: ThyGlobalMessageConfig;\n\n constructor() {\n const overlay = inject(Overlay);\n const injector = inject(Injector);\n const messageQueue = inject(ThyMessageQueue);\n const config = inject(THY_MESSAGE_DEFAULT_CONFIG);\n\n super(overlay, injector, messageQueue);\n this.messageQueue = messageQueue;\n\n this.defaultConfig = {\n ...THY_MESSAGE_DEFAULT_CONFIG_VALUE,\n ...config\n };\n }\n\n /**\n * 打开 success 类型的 Message\n */\n success(content: string | TemplateRef<any>, config?: ThyMessageConfig): ThyMessageRef {\n return this.show({\n ...(config || {}),\n type: 'success',\n content\n });\n }\n\n /**\n * 打开 error 类型的 Message\n */\n error(content: string | TemplateRef<any>, config?: ThyMessageConfig): ThyMessageRef {\n return this.show({\n ...(config || {}),\n type: 'error',\n content\n });\n }\n\n /**\n * 打开 info 类型的 Message\n */\n info(content: string | TemplateRef<any>, config?: ThyMessageConfig): ThyMessageRef {\n return this.show({\n ...(config || {}),\n type: 'info',\n content\n });\n }\n\n /**\n * 打开 warning 类型的 Message\n */\n warning(content: string | TemplateRef<any>, config?: ThyMessageConfig): ThyMessageRef {\n return this.show({\n ...(config || {}),\n type: 'warning',\n content\n });\n }\n\n /**\n * 打开 loading 类型的 Message\n */\n loading(content: string | TemplateRef<any>, config?: ThyMessageConfig): ThyMessageRef {\n return this.show({\n ...(config || {}),\n type: 'loading',\n content\n });\n }\n\n protected show(config: ThyMessageConfig): ThyMessageRef {\n this.container = this.createContainer(ThyMessageContainer);\n\n const messageConfig = this.formatOptions(config);\n const messageRef = new ThyMessageRef(messageConfig, this.overlayRef, this.messageQueue);\n this.messageQueue.add(messageRef);\n return messageRef;\n }\n\n private formatOptions(config: ThyMessageConfig) {\n return Object.assign({ id: String(this._lastMessageId++) }, this.defaultConfig, config);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyAbstractMessageQueue"],"mappings":"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"}
|