ngx-tethys 19.0.4 → 19.0.6
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 +21 -0
- package/anchor/anchor-link.component.d.ts +2 -1
- package/anchor/anchor.component.d.ts +2 -1
- package/anchor/anchor.token.d.ts +9 -0
- package/calendar/calendar-header.component.d.ts +3 -2
- package/carousel/carousel.component.d.ts +2 -1
- package/carousel/carousel.token.d.ts +7 -0
- package/carousel/engine/carousel-base.d.ts +3 -3
- package/carousel/engine/carousel-fade.d.ts +2 -2
- package/carousel/engine/carousel-noop.d.ts +2 -2
- package/carousel/engine/carousel-slide.d.ts +2 -2
- package/collapse/collapse-item.component.d.ts +2 -1
- package/collapse/collapse.component.d.ts +5 -5
- package/collapse/collapse.token.d.ts +15 -0
- package/color-picker/color-picker.component.d.ts +15 -3
- package/core/theme/enum.d.ts +5 -0
- package/core/theme/index.d.ts +1 -0
- package/core/theme/store.d.ts +1 -1
- package/core/theme/theme.d.ts +0 -5
- package/date-picker/abstract-picker.component.d.ts +6 -1
- package/date-picker/base-picker.component.d.ts +1 -1
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +2 -1
- package/date-picker/lib/calendar/calendar-table.component.d.ts +4 -3
- package/date-picker/lib/popups/date-popup.component.d.ts +2 -1
- package/date-picker/lib/popups/inner-popup.component.d.ts +2 -1
- package/date-picker/picker.component.d.ts +2 -1
- package/date-picker/picker.util.d.ts +5 -5
- package/date-picker/standard-types.d.ts +7 -2
- package/drag-drop/drag-drop.service.d.ts +2 -2
- package/drag-drop/{drop-container.class.d.ts → drag-drop.token.d.ts} +12 -7
- package/drag-drop/drag-handle.directive.d.ts +2 -1
- package/drag-drop/drag-ref.d.ts +3 -5
- package/drag-drop/drag.directive.d.ts +3 -3
- package/drag-drop/drop-container.directive.d.ts +1 -1
- package/drag-drop/index.d.ts +1 -1
- package/fesm2022/ngx-tethys-action.mjs +11 -12
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +8 -9
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +11 -12
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +26 -13
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
- package/fesm2022/ngx-tethys-autocomplete.mjs +17 -18
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +25 -28
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs +7 -7
- package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
- package/fesm2022/ngx-tethys-button.mjs +14 -15
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +18 -20
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +15 -17
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +28 -17
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +16 -16
- package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
- package/fesm2022/ngx-tethys-collapse.mjs +97 -85
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +34 -36
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +15 -17
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +8 -9
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +21 -22
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +232 -248
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +10 -10
- package/fesm2022/ngx-tethys-dialog.mjs +22 -23
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +7 -7
- package/fesm2022/ngx-tethys-dot.mjs +8 -9
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +23 -30
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +58 -70
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +10 -10
- package/fesm2022/ngx-tethys-flexible-text.mjs +8 -8
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +47 -54
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +15 -16
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +46 -51
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +55 -61
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +51 -54
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +11 -12
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +32 -21
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +7 -7
- package/fesm2022/ngx-tethys-input.mjs +21 -23
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +73 -88
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +19 -22
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +7 -7
- package/fesm2022/ngx-tethys-mention.mjs +11 -12
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +30 -30
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +24 -24
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +26 -29
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +17 -17
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +15 -17
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +21 -23
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +13 -13
- package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +11 -11
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +125 -115
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +10 -10
- package/fesm2022/ngx-tethys-resizable.mjs +18 -18
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +7 -7
- package/fesm2022/ngx-tethys-segment.mjs +10 -10
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +10 -10
- package/fesm2022/ngx-tethys-shared.mjs +81 -109
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +23 -24
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +36 -41
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +7 -7
- package/fesm2022/ngx-tethys-space.mjs +11 -12
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +7 -7
- package/fesm2022/ngx-tethys-stepper.mjs +22 -24
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +8 -8
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +7 -7
- package/fesm2022/ngx-tethys-table.mjs +22 -25
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +14 -15
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +12 -13
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +58 -56
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +13 -13
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +14 -15
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +10 -10
- package/fesm2022/ngx-tethys-tree-select.mjs +10 -10
- package/fesm2022/ngx-tethys-tree.mjs +17 -21
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +15 -17
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +18 -19
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs +418 -396
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +7 -7
- package/fesm2022/ngx-tethys-watermark.mjs +8 -9
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/grid/grid.type.d.ts +5 -0
- package/grid/index.d.ts +1 -0
- package/grid/thy-grid-item.component.d.ts +1 -1
- package/grid/thy-grid.component.d.ts +1 -11
- package/guider/guider-manager.d.ts +2 -1
- package/guider/guider-ref.d.ts +6 -6
- package/guider/guider-step-ref.d.ts +3 -4
- package/guider/guider.interface.d.ts +26 -0
- package/i18n/i18n.service.d.ts +1 -1
- package/i18n/index.d.ts +2 -5
- package/i18n/locale.d.ts +1 -7
- package/i18n/locales/index.d.ts +5 -0
- package/i18n/util.d.ts +3 -0
- package/icon/index.d.ts +1 -1
- package/image/image-group.component.d.ts +4 -4
- package/image/image.directive.d.ts +2 -1
- package/image/image.token.d.ts +17 -0
- package/layout/header.component.d.ts +6 -18
- package/list/selection/selection-list.d.ts +2 -1
- package/list/selection/selection.interface.d.ts +2 -3
- package/message/abstract/abstract-message-queue.service.d.ts +2 -2
- package/message/abstract/abstract-message-ref.d.ts +6 -2
- package/package.json +2 -1
- package/popover/popover.directive.d.ts +6 -2
- package/radio/group/radio-group.component.d.ts +2 -1
- package/radio/radio.component.d.ts +3 -3
- package/radio/radio.token.d.ts +12 -0
- package/resizable/interface.d.ts +5 -0
- package/resizable/resizable.directive.d.ts +9 -3
- package/resizable/resizable.service.d.ts +1 -1
- package/resizable/resize-handle.component.d.ts +1 -6
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/segment-item.component.d.ts +2 -1
- package/segment/segment.token.d.ts +10 -4
- package/shared/index.d.ts +1 -0
- package/shared/option/list-option/list-option.component.d.ts +10 -5
- package/shared/option/option.component.d.ts +1 -3
- package/shared/option/option.token.d.ts +11 -11
- package/shared/shared.type.d.ts +1 -0
- package/table/index.d.ts +1 -0
- package/table/styles/table.scss +9 -1
- package/table/table-column.component.d.ts +5 -30
- package/table/table-skeleton.component.d.ts +11 -3
- package/table/table.component.d.ts +1 -3
- package/table/table.type.d.ts +3 -0
- package/tag/tag.component.d.ts +2 -4
- package/time-picker/inner/inner-time-picker.component.d.ts +3 -1
- package/time-picker/inner/inner-time-picker.store.d.ts +5 -5
- package/time-picker/time-picker.utils.d.ts +5 -5
- package/timeline/index.d.ts +1 -0
- package/timeline/timeline-item.component.d.ts +1 -1
- package/timeline/timeline.component.d.ts +1 -1
- package/timeline/timeline.type.d.ts +1 -0
- package/tooltip/tooltip.directive.d.ts +2 -10
- package/tree/index.d.ts +0 -1
- package/tree/tree-abstract.d.ts +1 -1
- package/tree/tree-node.component.d.ts +17 -8
- package/tree/tree.class.d.ts +40 -1
- package/tree/tree.component.d.ts +1 -1
- package/tree/tree.pipe.d.ts +1 -1
- package/tree/tree.service.d.ts +3 -9
- package/util/helpers/helpers.d.ts +1 -0
- package/tree/tree-node.class.d.ts +0 -29
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-timeline.mjs","sources":["../../../src/timeline/timeline.service.ts","../../../src/timeline/timeline-item.component.ts","../../../src/timeline/timeline-item.component.html","../../../src/timeline/timeline.component.ts","../../../src/timeline/timeline.module.ts","../../../src/timeline/ngx-tethys-timeline.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class ThyTimelineService {\n check$ = new Subject<void>();\n markForCheck(): void {\n this.check$.next();\n }\n}\n","import {\n Component,\n Input,\n HostBinding,\n OnInit,\n OnChanges,\n ContentChild,\n TemplateRef,\n ViewChild,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n SimpleChanges,\n inject\n} from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { ThyTimeMode } from './timeline.component';\nimport { ThyTimelineService } from './timeline.service';\nimport { NgTemplateOutlet } from '@angular/common';\n\nexport type thyColor = 'primary' | 'success' | 'warning' | 'danger' | 'info';\n\n/**\n * 时间轴节点组件\n * @name thy-timeline-item\n * @order 20\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-timeline-item',\n templateUrl: './timeline-item.component.html',\n exportAs: 'ThyTimelineItem',\n imports: [NgTemplateOutlet]\n})\nexport class ThyTimelineItem implements OnInit, OnChanges {\n private cdr = inject(ChangeDetectorRef);\n private timelineService = inject(ThyTimelineService);\n\n @ViewChild('timelineItem', { static: false }) template: TemplateRef<void>;\n\n @HostBinding('class') className: string;\n\n public color: thyColor = 'primary';\n\n public isLast = false;\n\n public isFirst = false;\n\n public position: ThyTimeMode;\n\n public reverse: Boolean = false;\n\n /**\n * 指定圆圈颜色\n * @type primary | success | warning | danger | info\n * @default primary\n */\n @Input()\n set thyColor(value: thyColor) {\n if (value) {\n this.color = value;\n }\n }\n\n /**\n * 自定义节点位置\n * @type left | right | center\n */\n @Input() thyPosition: ThyTimeMode;\n\n /**\n * 自定义时间轴点模板\n * @type TemplateRef\n */\n @ContentChild('dot', { static: false }) dot: TemplateRef<SafeAny>;\n\n /**\n * 自定义另一侧的模板\n * @type TemplateRef\n */\n @ContentChild('description', { static: false }) description: TemplateRef<SafeAny>;\n\n detectChanges(): void {\n this.cdr.detectChanges();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.timelineService.markForCheck();\n }\n\n ngOnInit() {}\n}\n","<ng-template #timelineItem>\n <div\n class=\"thy-timeline-item\"\n [class.thy-timeline-item-reverse-last]=\"isLast && reverse\"\n [class.thy-timeline-item-last]=\"isLast\"\n [class.thy-timeline-item-reverse-first]=\"isFirst && reverse\"\n [class.thy-timeline-item-right]=\"(thyPosition || position) === 'right'\"\n [class.thy-timeline-item-left]=\"(thyPosition || position) === 'left'\"\n >\n <div class=\"thy-timeline-item-tail\"></div>\n <div\n class=\"thy-timeline-item-dot\"\n [class.thy-timeline-item-dot-primary]=\"color === 'primary'\"\n [class.thy-timeline-item-dot-success]=\"color === 'success'\"\n [class.thy-timeline-item-dot-warning]=\"color === 'warning'\"\n [class.thy-timeline-item-dot-danger]=\"color === 'danger'\"\n [class.thy-timeline-item-dot-info]=\"color === 'info'\"\n [class.thy-timeline-item-dot-custom]=\"!!dot\"\n >\n @if (dot) {\n <ng-template [ngTemplateOutlet]=\"dot\"></ng-template>\n }\n </div>\n <div class=\"thy-timeline-item-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"thy-timeline-item-content-other-side\">\n @if (description) {\n <ng-template [ngTemplateOutlet]=\"description\"></ng-template>\n }\n </div>\n </div>\n</ng-template>\n","import {\n Component,\n Input,\n HostBinding,\n ContentChildren,\n QueryList,\n AfterContentInit,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n SimpleChange,\n ChangeDetectorRef,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n inject\n} from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyTimelineItem } from './timeline-item.component';\nimport { ThyTimelineService } from './timeline.service';\nimport { Subject } from 'rxjs';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyTimeMode = 'left' | 'right' | 'center';\n\nexport enum ThyTimeModes {\n left = 'left',\n right = 'right',\n center = 'center'\n}\n\nexport type ThyTimeDirection = 'horizontal' | 'vertical';\n\n/**\n * 时间轴组件\n * @name thy-timeline\n * @order 10\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: 'thy-timeline',\n providers: [ThyTimelineService],\n template: `\n <ng-container>\n @for (item of timelineItems; track $index) {\n <ng-template [ngTemplateOutlet]=\"item.template\"></ng-template>\n }\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n </ng-container>\n `,\n imports: [NgTemplateOutlet]\n})\nexport class ThyTimeline implements OnInit, AfterContentInit, OnChanges, OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n private timelineService = inject(ThyTimelineService);\n\n /**\n * 节点排序是否倒序\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyReverse: boolean;\n\n /**\n * 改变时间轴和内容的相对位置\n * @type left | right | center\n * @default left\n */\n @Input() thyMode: ThyTimeMode;\n\n /**\n * 时间轴的方向\n * @type horizontal | vertical\n */\n @Input() thyDirection: ThyTimeDirection = 'vertical';\n\n public timelineItems: ThyTimelineItem[] = [];\n\n private destroy$ = new Subject<void>();\n\n @HostBinding(`class.thy-timeline`) isTimeline = true;\n @HostBinding(`class.thy-timeline-right`) rightTimeline = false;\n @HostBinding(`class.thy-timeline-center`) centerTimeline = false;\n @HostBinding(`class.thy-timeline-template`) templateTimeline = false;\n @HostBinding(`class.thy-timeline-horizontal`) horizontal = false;\n\n @ContentChildren(ThyTimelineItem)\n listOfItems: QueryList<ThyTimelineItem>;\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyMode, thyReverse } = changes;\n if (thyMode && !this.horizontal) {\n if (thyMode.currentValue === 'right') {\n this.rightTimeline = !this.templateTimeline;\n this.centerTimeline = false;\n } else if (thyMode.currentValue === 'center') {\n this.centerTimeline = true;\n this.rightTimeline = false;\n } else {\n this.rightTimeline = false;\n this.centerTimeline = false;\n }\n }\n if ((simpleChangeActivated(thyMode) && !this.horizontal) || simpleChangeActivated(thyReverse)) {\n this.updateChildren();\n }\n }\n\n ngOnInit() {\n this.horizontal = this.thyDirection === 'horizontal' ? true : false;\n this.timelineService.check$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n\n ngAfterContentInit() {\n this.updateChildren();\n this.listOfItems.changes.subscribe(() => {\n this.updateChildren();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private updateChildren(): void {\n if (this.listOfItems && this.listOfItems.length) {\n const length = this.listOfItems.length;\n this.listOfItems.forEach((item, index) => {\n item.isLast = !this.thyReverse ? index === length - 1 : index === 0;\n item.isFirst = this.thyReverse ? index === length - 1 : index === 0;\n item.reverse = this.thyReverse;\n if (!this.horizontal) {\n item.position = getTimelineItemPosition(index, this.thyMode);\n }\n if (item.description || (item.thyPosition && !this.horizontal)) {\n this.templateTimeline = true;\n }\n item.detectChanges();\n });\n this.timelineItems = this.thyReverse ? this.listOfItems.toArray().reverse() : this.listOfItems.toArray();\n }\n this.cdr.markForCheck();\n }\n}\nfunction simpleChangeActivated(simpleChange?: SimpleChange): boolean {\n return !!(simpleChange && (simpleChange.previousValue !== simpleChange.currentValue || simpleChange.isFirstChange()));\n}\n\nfunction getTimelineItemPosition(index: number, mode: ThyTimeMode): ThyTimeMode | undefined {\n return mode === 'left' ? 'left' : mode === 'right' ? 'right' : mode === 'center' && index % 2 === 0 ? 'left' : 'right';\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyTimeline } from './timeline.component';\nimport { ThyTimelineItem } from './timeline-item.component';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyTimeline, ThyTimelineItem],\n exports: [ThyTimeline, ThyTimelineItem],\n providers: []\n})\nexport class ThyTimelineModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAIa,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAEI,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,OAAO,EAAQ;AAI/B;IAHG,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;;8GAHb,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAlB,kBAAkB,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;ACkBD;;;;AAIG;MAQU,eAAe,CAAA;AAP5B,IAAA,WAAA,GAAA;AAQY,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAM7C,IAAK,CAAA,KAAA,GAAa,SAAS;QAE3B,IAAM,CAAA,MAAA,GAAG,KAAK;QAEd,IAAO,CAAA,OAAA,GAAG,KAAK;QAIf,IAAO,CAAA,OAAA,GAAY,KAAK;AAyClC;AAvCG;;;;AAIG;IACH,IACI,QAAQ,CAAC,KAAe,EAAA;QACxB,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;;IAsB1B,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;;AAG5B,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;AAGvC,IAAA,QAAQ;8GAxDC,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,KAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjC5B,myCAiCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDFc,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEjB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;sCACW,uBAAuB,CAAC,MAAM,EACrC,QAAA,EAAA,mBAAmB,YAEnB,iBAAiB,EAAA,OAAA,EAClB,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,myCAAA,EAAA;8BAMmB,QAAQ,EAAA,CAAA;sBAArD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAEtB,SAAS,EAAA,CAAA;sBAA9B,WAAW;uBAAC,OAAO;gBAkBhB,QAAQ,EAAA,CAAA;sBADX;gBAWQ,WAAW,EAAA,CAAA;sBAAnB;gBAMuC,GAAG,EAAA,CAAA;sBAA1C,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAMU,WAAW,EAAA,CAAA;sBAA1D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;IErDtC;AAAZ,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACrB,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA;AAID;;;;AAIG;MAkBU,WAAW,CAAA;AAjBxB,IAAA,WAAA,GAAA;AAkBY,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAepD;;;AAGG;QACM,IAAY,CAAA,YAAA,GAAqB,UAAU;QAE7C,IAAa,CAAA,aAAA,GAAsB,EAAE;AAEpC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;QAEH,IAAU,CAAA,UAAA,GAAG,IAAI;QACX,IAAa,CAAA,aAAA,GAAG,KAAK;QACpB,IAAc,CAAA,cAAA,GAAG,KAAK;QACpB,IAAgB,CAAA,gBAAA,GAAG,KAAK;QACtB,IAAU,CAAA,UAAA,GAAG,KAAK;AA8DnE;AAzDG,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO;AACvC,QAAA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,IAAI,OAAO,CAAC,YAAY,KAAK,OAAO,EAAE;AAClC,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,gBAAgB;AAC3C,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;AACxB,iBAAA,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE;AAC1C,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;;iBACvB;AACH,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;;AAGnC,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,qBAAqB,CAAC,UAAU,CAAC,EAAE;YAC3F,IAAI,CAAC,cAAc,EAAE;;;IAI7B,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,KAAK,YAAY,GAAG,IAAI,GAAG,KAAK;AACnE,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACtE,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AAC3B,SAAC,CAAC;;IAGN,kBAAkB,GAAA;QACd,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;YACpC,IAAI,CAAC,cAAc,EAAE;AACzB,SAAC,CAAC;;IAGN,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;;IAGpB,cAAc,GAAA;QAClB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AAC7C,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM;YACtC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;gBACrC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,KAAK,MAAM,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC;gBACnE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,KAAK,MAAM,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC;AACnE,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU;AAC9B,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;oBAClB,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;;AAEhE,gBAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC5D,oBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;;gBAEhC,IAAI,CAAC,aAAa,EAAE;AACxB,aAAC,CAAC;YACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;;AAE5G,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;8GA3FlB,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAQA,qBAAqB,CArB9B,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,2BAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,uBAAA,EAAA,+BAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,kBAAkB,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EA8Cd,eAAe,EA7CtB,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;AAST,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEjB,WAAW,EAAA,UAAA,EAAA,CAAA;kBAjBvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACP,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,QAAQ,EAAE,cAAc;oBACxB,SAAS,EAAE,CAAC,kBAAkB,CAAC;AAC/B,oBAAA,QAAQ,EAAE;;;;;;;;;AAST,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB;AAC7B,iBAAA;8BASgD,UAAU,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE;gBAOlC,OAAO,EAAA,CAAA;sBAAf;gBAMQ,YAAY,EAAA,CAAA;sBAApB;gBAMkC,UAAU,EAAA,CAAA;sBAA5C,WAAW;uBAAC,CAAoB,kBAAA,CAAA;gBACQ,aAAa,EAAA,CAAA;sBAArD,WAAW;uBAAC,CAA0B,wBAAA,CAAA;gBACG,cAAc,EAAA,CAAA;sBAAvD,WAAW;uBAAC,CAA2B,yBAAA,CAAA;gBACI,gBAAgB,EAAA,CAAA;sBAA3D,WAAW;uBAAC,CAA6B,2BAAA,CAAA;gBACI,UAAU,EAAA,CAAA;sBAAvD,WAAW;uBAAC,CAA+B,6BAAA,CAAA;gBAG5C,WAAW,EAAA,CAAA;sBADV,eAAe;uBAAC,eAAe;;AA6DpC,SAAS,qBAAqB,CAAC,YAA2B,EAAA;IACtD,OAAO,CAAC,EAAE,YAAY,KAAK,YAAY,CAAC,aAAa,KAAK,YAAY,CAAC,YAAY,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC;AACzH;AAEA,SAAS,uBAAuB,CAAC,KAAa,EAAE,IAAiB,EAAA;AAC7D,IAAA,OAAO,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,KAAK,OAAO,GAAG,OAAO,GAAG,IAAI,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,OAAO;AAC1H;;MChJa,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,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,iBAAiB,EAJhB,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,CAC1E,EAAA,OAAA,EAAA,CAAA,WAAW,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAG7B,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,iBAAiB,EAJhB,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA;;2FAI7C,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,CAAC;AACrF,oBAAA,OAAO,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC;AACvC,oBAAA,SAAS,EAAE;AACd,iBAAA;;;ACXD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-timeline.mjs","sources":["../../../src/timeline/timeline.service.ts","../../../src/timeline/timeline-item.component.ts","../../../src/timeline/timeline-item.component.html","../../../src/timeline/timeline.component.ts","../../../src/timeline/timeline.module.ts","../../../src/timeline/ngx-tethys-timeline.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class ThyTimelineService {\n check$ = new Subject<void>();\n markForCheck(): void {\n this.check$.next();\n }\n}\n","import {\n Component,\n Input,\n HostBinding,\n OnInit,\n OnChanges,\n ContentChild,\n TemplateRef,\n ViewChild,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n SimpleChanges,\n inject\n} from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { ThyTimeMode } from './timeline.type';\nimport { ThyTimelineService } from './timeline.service';\nimport { NgTemplateOutlet } from '@angular/common';\n\nexport type thyColor = 'primary' | 'success' | 'warning' | 'danger' | 'info';\n\n/**\n * 时间轴节点组件\n * @name thy-timeline-item\n * @order 20\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'thy-timeline-item',\n templateUrl: './timeline-item.component.html',\n exportAs: 'ThyTimelineItem',\n imports: [NgTemplateOutlet]\n})\nexport class ThyTimelineItem implements OnInit, OnChanges {\n private cdr = inject(ChangeDetectorRef);\n private timelineService = inject(ThyTimelineService);\n\n @ViewChild('timelineItem', { static: false }) template: TemplateRef<void>;\n\n @HostBinding('class') className: string;\n\n public color: thyColor = 'primary';\n\n public isLast = false;\n\n public isFirst = false;\n\n public position: ThyTimeMode;\n\n public reverse: Boolean = false;\n\n /**\n * 指定圆圈颜色\n * @type primary | success | warning | danger | info\n * @default primary\n */\n @Input()\n set thyColor(value: thyColor) {\n if (value) {\n this.color = value;\n }\n }\n\n /**\n * 自定义节点位置\n * @type left | right | center\n */\n @Input() thyPosition: ThyTimeMode;\n\n /**\n * 自定义时间轴点模板\n * @type TemplateRef\n */\n @ContentChild('dot', { static: false }) dot: TemplateRef<SafeAny>;\n\n /**\n * 自定义另一侧的模板\n * @type TemplateRef\n */\n @ContentChild('description', { static: false }) description: TemplateRef<SafeAny>;\n\n detectChanges(): void {\n this.cdr.detectChanges();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.timelineService.markForCheck();\n }\n\n ngOnInit() {}\n}\n","<ng-template #timelineItem>\n <div\n class=\"thy-timeline-item\"\n [class.thy-timeline-item-reverse-last]=\"isLast && reverse\"\n [class.thy-timeline-item-last]=\"isLast\"\n [class.thy-timeline-item-reverse-first]=\"isFirst && reverse\"\n [class.thy-timeline-item-right]=\"(thyPosition || position) === 'right'\"\n [class.thy-timeline-item-left]=\"(thyPosition || position) === 'left'\"\n >\n <div class=\"thy-timeline-item-tail\"></div>\n <div\n class=\"thy-timeline-item-dot\"\n [class.thy-timeline-item-dot-primary]=\"color === 'primary'\"\n [class.thy-timeline-item-dot-success]=\"color === 'success'\"\n [class.thy-timeline-item-dot-warning]=\"color === 'warning'\"\n [class.thy-timeline-item-dot-danger]=\"color === 'danger'\"\n [class.thy-timeline-item-dot-info]=\"color === 'info'\"\n [class.thy-timeline-item-dot-custom]=\"!!dot\"\n >\n @if (dot) {\n <ng-template [ngTemplateOutlet]=\"dot\"></ng-template>\n }\n </div>\n <div class=\"thy-timeline-item-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"thy-timeline-item-content-other-side\">\n @if (description) {\n <ng-template [ngTemplateOutlet]=\"description\"></ng-template>\n }\n </div>\n </div>\n</ng-template>\n","import {\n Component,\n Input,\n HostBinding,\n ContentChildren,\n QueryList,\n AfterContentInit,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n SimpleChange,\n ChangeDetectorRef,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n inject\n} from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyTimelineItem } from './timeline-item.component';\nimport { ThyTimelineService } from './timeline.service';\nimport { Subject } from 'rxjs';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { ThyTimeMode } from './timeline.type';\n\nexport enum ThyTimeModes {\n left = 'left',\n right = 'right',\n center = 'center'\n}\n\nexport type ThyTimeDirection = 'horizontal' | 'vertical';\n\n/**\n * 时间轴组件\n * @name thy-timeline\n * @order 10\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: 'thy-timeline',\n providers: [ThyTimelineService],\n template: `\n <ng-container>\n @for (item of timelineItems; track $index) {\n <ng-template [ngTemplateOutlet]=\"item.template\"></ng-template>\n }\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n </ng-container>\n `,\n imports: [NgTemplateOutlet]\n})\nexport class ThyTimeline implements OnInit, AfterContentInit, OnChanges, OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n private timelineService = inject(ThyTimelineService);\n\n /**\n * 节点排序是否倒序\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyReverse: boolean;\n\n /**\n * 改变时间轴和内容的相对位置\n * @type left | right | center\n * @default left\n */\n @Input() thyMode: ThyTimeMode;\n\n /**\n * 时间轴的方向\n * @type horizontal | vertical\n */\n @Input() thyDirection: ThyTimeDirection = 'vertical';\n\n public timelineItems: ThyTimelineItem[] = [];\n\n private destroy$ = new Subject<void>();\n\n @HostBinding(`class.thy-timeline`) isTimeline = true;\n @HostBinding(`class.thy-timeline-right`) rightTimeline = false;\n @HostBinding(`class.thy-timeline-center`) centerTimeline = false;\n @HostBinding(`class.thy-timeline-template`) templateTimeline = false;\n @HostBinding(`class.thy-timeline-horizontal`) horizontal = false;\n\n @ContentChildren(ThyTimelineItem)\n listOfItems: QueryList<ThyTimelineItem>;\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyMode, thyReverse } = changes;\n if (thyMode && !this.horizontal) {\n if (thyMode.currentValue === 'right') {\n this.rightTimeline = !this.templateTimeline;\n this.centerTimeline = false;\n } else if (thyMode.currentValue === 'center') {\n this.centerTimeline = true;\n this.rightTimeline = false;\n } else {\n this.rightTimeline = false;\n this.centerTimeline = false;\n }\n }\n if ((simpleChangeActivated(thyMode) && !this.horizontal) || simpleChangeActivated(thyReverse)) {\n this.updateChildren();\n }\n }\n\n ngOnInit() {\n this.horizontal = this.thyDirection === 'horizontal' ? true : false;\n this.timelineService.check$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n\n ngAfterContentInit() {\n this.updateChildren();\n this.listOfItems.changes.subscribe(() => {\n this.updateChildren();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private updateChildren(): void {\n if (this.listOfItems && this.listOfItems.length) {\n const length = this.listOfItems.length;\n this.listOfItems.forEach((item, index) => {\n item.isLast = !this.thyReverse ? index === length - 1 : index === 0;\n item.isFirst = this.thyReverse ? index === length - 1 : index === 0;\n item.reverse = this.thyReverse;\n if (!this.horizontal) {\n item.position = getTimelineItemPosition(index, this.thyMode);\n }\n if (item.description || (item.thyPosition && !this.horizontal)) {\n this.templateTimeline = true;\n }\n item.detectChanges();\n });\n this.timelineItems = this.thyReverse ? this.listOfItems.toArray().reverse() : this.listOfItems.toArray();\n }\n this.cdr.markForCheck();\n }\n}\nfunction simpleChangeActivated(simpleChange?: SimpleChange): boolean {\n return !!(simpleChange && (simpleChange.previousValue !== simpleChange.currentValue || simpleChange.isFirstChange()));\n}\n\nfunction getTimelineItemPosition(index: number, mode: ThyTimeMode): ThyTimeMode | undefined {\n return mode === 'left' ? 'left' : mode === 'right' ? 'right' : mode === 'center' && index % 2 === 0 ? 'left' : 'right';\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyTimeline } from './timeline.component';\nimport { ThyTimelineItem } from './timeline-item.component';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyTimeline, ThyTimelineItem],\n exports: [ThyTimeline, ThyTimelineItem],\n providers: []\n})\nexport class ThyTimelineModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -115,10 +115,10 @@ class ThyTooltip {
|
|
|
115
115
|
this.updateClasses();
|
|
116
116
|
// this.markForCheck();
|
|
117
117
|
}
|
|
118
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
119
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTooltip, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
119
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ThyTooltip, isStandalone: true, selector: "thy-tooltip", host: { listeners: { "@state.start": "animationStart()", "@state.done": "animationDone($event)" }, properties: { "@state": "visibility", "class.thy-tooltip": "this.addTooltipContainerClass" } }, ngImport: i0, template: "<div class=\"thy-tooltip-arrow\"></div>\n<div class=\"thy-tooltip-content\">\n @if (isTemplateRef) {\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data }\"></ng-container>\n } @else {\n {{ content }}\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [thyTooltipAnimations.tooltipState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
120
120
|
}
|
|
121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTooltip, decorators: [{
|
|
122
122
|
type: Component,
|
|
123
123
|
args: [{ selector: 'thy-tooltip', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [thyTooltipAnimations.tooltipState], host: {
|
|
124
124
|
'[@state]': 'visibility',
|
|
@@ -301,10 +301,10 @@ class ThyTooltipService {
|
|
|
301
301
|
const tooltipRef = new ThyTooltipRef(host, config, this.overlay, this.scrollDispatcher, this.ngZone);
|
|
302
302
|
return tooltipRef;
|
|
303
303
|
}
|
|
304
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
305
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
304
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTooltipService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
305
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTooltipService, providedIn: 'root' }); }
|
|
306
306
|
}
|
|
307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
307
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTooltipService, decorators: [{
|
|
308
308
|
type: Injectable,
|
|
309
309
|
args: [{ providedIn: 'root' }]
|
|
310
310
|
}] });
|
|
@@ -410,15 +410,14 @@ class ThyTooltipDirective extends ThyOverlayDirectiveBase {
|
|
|
410
410
|
ngOnDestroy() {
|
|
411
411
|
this.tooltipRef?.dispose();
|
|
412
412
|
}
|
|
413
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
414
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.
|
|
413
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
414
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.6", type: ThyTooltipDirective, isStandalone: true, selector: "[thyTooltip],[thy-tooltip]", inputs: { content: ["thyTooltip", "content"], placement: ["thyTooltipPlacement", "placement"], thyTooltipClass: "thyTooltipClass", showDelay: ["thyTooltipShowDelay", "showDelay", numberAttribute], hideDelay: ["thyTooltipHideDelay", "hideDelay", numberAttribute], thyTooltipTrigger: "thyTooltipTrigger", thyTooltipDisabled: ["thyTooltipDisabled", "thyTooltipDisabled", coerceBooleanProperty], data: ["thyTooltipTemplateContext", "data"], tooltipOffset: ["thyTooltipOffset", "tooltipOffset", numberAttribute], tooltipPin: ["thyTooltipPin", "tooltipPin", coerceBooleanProperty] }, exportAs: ["thyTooltip"], usesInheritance: true, ngImport: i0 }); }
|
|
415
415
|
}
|
|
416
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
416
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTooltipDirective, decorators: [{
|
|
417
417
|
type: Directive,
|
|
418
418
|
args: [{
|
|
419
419
|
selector: '[thyTooltip],[thy-tooltip]',
|
|
420
|
-
exportAs: 'thyTooltip'
|
|
421
|
-
standalone: true
|
|
420
|
+
exportAs: 'thyTooltip'
|
|
422
421
|
}]
|
|
423
422
|
}], ctorParameters: () => [], propDecorators: { content: [{
|
|
424
423
|
type: Input,
|
|
@@ -453,11 +452,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
|
|
|
453
452
|
}] } });
|
|
454
453
|
|
|
455
454
|
class ThyTooltipModule {
|
|
456
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
457
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
458
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
455
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
456
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: ThyTooltipModule, imports: [A11yModule, CommonModule, OverlayModule, ThyTooltipDirective, ThyTooltip], exports: [ThyTooltipDirective] }); }
|
|
457
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTooltipModule, providers: [THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER], imports: [A11yModule, CommonModule, OverlayModule] }); }
|
|
459
458
|
}
|
|
460
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTooltipModule, decorators: [{
|
|
461
460
|
type: NgModule,
|
|
462
461
|
args: [{
|
|
463
462
|
imports: [A11yModule, CommonModule, OverlayModule, ThyTooltipDirective, ThyTooltip],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-tooltip.mjs","sources":["../../../src/tooltip/tooltip-animations.ts","../../../src/tooltip/tooltip.component.ts","../../../src/tooltip/tooltip.component.html","../../../src/tooltip/tooltip-ref.ts","../../../src/tooltip/tooltip.config.ts","../../../src/tooltip/tooltip.service.ts","../../../src/tooltip/tooltip.directive.ts","../../../src/tooltip/tooltip.module.ts","../../../src/tooltip/ngx-tethys-tooltip.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from 'ngx-tethys/core';\n\nexport const thyTooltipAnimations: {\n readonly tooltipState: AnimationTriggerMetadata;\n} = {\n tooltipState: trigger('state', [\n state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),\n state('visible', style({ transform: 'scale(1)' })),\n\n transition('* => visible', [\n style({ opacity: 0, transform: 'scale(0.9, 0.9)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 1,\n transform: 'scale(1, 1)'\n })\n )\n ]),\n transition('visible => *', [\n style({ opacity: 1, transform: 'scale(1, 1)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 0,\n transform: 'scale(0.9, 0.9)'\n })\n )\n ])\n ])\n};\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n HostBinding,\n TemplateRef,\n OnInit,\n inject\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { AnimationEvent } from '@angular/animations';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyTooltipVisibility } from './interface';\nimport { thyTooltipAnimations } from './tooltip-animations';\nimport { coerceArray } from 'ngx-tethys/util';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-tooltip',\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [thyTooltipAnimations.tooltipState],\n host: {\n '[@state]': 'visibility',\n '(@state.start)': 'animationStart()',\n '(@state.done)': 'animationDone($event)'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyTooltip implements OnInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n @HostBinding(`class.thy-tooltip`) addTooltipContainerClass = true;\n\n _content: string | TemplateRef<HTMLElement>;\n\n data: any;\n\n private readonly onHide: Subject<void> = new Subject();\n\n private closeOnInteraction = false;\n\n private hostRenderer = useHostRenderer();\n\n visibility: ThyTooltipVisibility = 'initial';\n\n showTimeoutId: number | null | any;\n\n hideTimeoutId: number | null | any;\n\n tooltipClasses: string[] = [];\n\n isTemplateRef = false;\n\n get content() {\n return this._content;\n }\n\n set content(value: string | TemplateRef<HTMLElement>) {\n this._content = value;\n this.isTemplateRef = value instanceof TemplateRef;\n }\n\n private updateClasses() {\n let classes: string[] = [];\n\n if (this.tooltipClasses) {\n classes = classes.concat(this.tooltipClasses);\n }\n\n this.hostRenderer.updateClass(classes);\n }\n\n ngOnInit() {}\n\n markForCheck(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n isVisible() {\n return this.visibility === 'visible';\n }\n\n show(delay: number): void {\n // Cancel the delayed hide if it is scheduled\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n // Body interactions should cancel the tooltip if there is a delay in showing.\n this.closeOnInteraction = true;\n this.showTimeoutId = setTimeout(() => {\n this.visibility = 'visible';\n this.showTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n hide(delay: number): void {\n // Cancel the delayed show if it is scheduled\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n this.visibility = 'hidden';\n this.hideTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n animationStart() {\n this.closeOnInteraction = false;\n }\n\n animationDone(event: AnimationEvent): void {\n const toState = event.toState as ThyTooltipVisibility;\n if (toState === 'hidden' && !this.isVisible()) {\n this.onHide.next();\n }\n if (toState === 'visible' || toState === 'hidden') {\n this.closeOnInteraction = true;\n }\n }\n\n afterHidden(): Observable<void> {\n return this.onHide.asObservable();\n }\n\n setTooltipClass(classes: string | string[]) {\n this.tooltipClasses = coerceArray(classes);\n this.updateClasses();\n // this.markForCheck();\n }\n}\n","<div class=\"thy-tooltip-arrow\"></div>\n<div class=\"thy-tooltip-content\">\n @if (isTemplateRef) {\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data }\"></ng-container>\n } @else {\n {{ content }}\n }\n</div>\n","import { FlexibleConnectedPositionStrategy, Overlay, OverlayRef, ScrollDispatcher, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, NgZone, TemplateRef } from '@angular/core';\nimport { isUndefinedOrNull } from '@tethys/cdk/is';\nimport { getFlexiblePositions } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { isNumber } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { ThyTooltipContent } from './interface';\nimport { ThyTooltip } from './tooltip.component';\nimport { ThyTooltipConfig } from './tooltip.config';\n\nexport class ThyTooltipRef {\n private overlayRef: OverlayRef;\n\n private tooltipInstance: ThyTooltip;\n\n private scrollStrategy: ScrollStrategy;\n\n private portal: ComponentPortal<ThyTooltip>;\n\n private readonly dispose$ = new Subject<void>();\n\n constructor(\n private host: ElementRef<HTMLElement> | HTMLElement,\n private config: ThyTooltipConfig,\n private overlay: Overlay,\n private scrollDispatcher: ScrollDispatcher,\n private ngZone: NgZone\n ) {\n this.scrollStrategy = overlay.scrollStrategies.reposition({\n scrollThrottle: this.config.scrollThrottleSeconds\n });\n }\n\n /** Create the overlay config and position strategy */\n private createOverlay(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n const scrollableAncestors = this.scrollDispatcher.getAncestorScrollContainers(this.host);\n // Create connected position strategy that listens for scroll events to reposition.\n const strategy = this.overlay\n .position()\n .flexibleConnectedTo(this.host)\n .withTransformOriginOn('.thy-tooltip-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(8);\n\n strategy.withScrollableContainers(scrollableAncestors);\n strategy.positionChanges.pipe(takeUntil(this.dispose$)).subscribe(change => {\n if (this.tooltipInstance) {\n if (change.scrollableViewProperties.isOverlayClipped && this.tooltipInstance.isVisible()) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.hide(0));\n }\n }\n });\n this.overlayRef = this.overlay.create({\n positionStrategy: strategy,\n panelClass: this.config.panelClass,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.config.hasBackdrop,\n backdropClass: 'thy-tooltip-backdrop'\n });\n\n this.updatePosition();\n\n this.overlayRef\n .detachments()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => this.detach());\n\n this.overlayRef\n .backdropClick()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => {\n this.overlayRef.detachBackdrop();\n this.hide(0);\n });\n\n return this.overlayRef;\n }\n\n /** Updates the position of the current tooltip. */\n private updatePosition() {\n const position = this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n const connectionPositions = getFlexiblePositions(this.config.placement, this.config.offset, 'thy-tooltip');\n position.withPositions(connectionPositions);\n }\n\n private detach() {\n if (this.overlayRef && this.overlayRef.hasAttached()) {\n this.overlayRef.detach();\n }\n this.tooltipInstance = null;\n }\n\n show(content: ThyTooltipContent, delay?: number): void;\n show<T extends Record<SafeAny, SafeAny>>(content: ThyTooltipContent, data: T, delay?: number): void;\n show<T extends Record<SafeAny, SafeAny>>(content: ThyTooltipContent, dataOrDelay: T | number, delay?: number) {\n if (!content || (this.isTooltipVisible() && !this.tooltipInstance.showTimeoutId && !this.tooltipInstance.hideTimeoutId)) {\n return;\n }\n let showDelay = null;\n let initialState = null;\n if (isNumber(dataOrDelay)) {\n showDelay = dataOrDelay as number;\n } else {\n initialState = dataOrDelay;\n showDelay = delay;\n }\n const overlayRef = this.createOverlay();\n this.detach();\n this.portal = this.portal || new ComponentPortal(ThyTooltip, this.config.viewContainerRef);\n this.tooltipInstance = overlayRef.attach(this.portal).instance;\n this.tooltipInstance\n .afterHidden()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => this.detach());\n this.updateTooltipContent(content, initialState);\n this.setTooltipClass(this.config.contentClass);\n this.tooltipInstance.show(!isUndefinedOrNull(showDelay) ? showDelay : this.config.showDelay);\n }\n\n hide(delay: number = 0): void {\n if (this.overlayRef && this.overlayRef['_scrollStrategy']) {\n this.overlayRef['_scrollStrategy'].disable();\n }\n if (this.tooltipInstance) {\n this.tooltipInstance.hide(!isUndefinedOrNull(delay) ? delay : this.config.hideDelay);\n }\n }\n\n getOverlayRef() {\n return this.overlayRef;\n }\n\n setTooltipClass(tooltipClass: string | string[]) {\n if (this.tooltipInstance) {\n this.tooltipInstance.setTooltipClass(tooltipClass);\n }\n }\n\n updateTooltipContent(content: string | TemplateRef<any>, data?: any) {\n // Must wait for the message to be painted to the tooltip so that the overlay can properly\n // calculate the correct positioning based on the size of the text.\n if (this.tooltipInstance) {\n this.tooltipInstance.content = content;\n this.tooltipInstance.data = data;\n this.tooltipInstance.markForCheck();\n\n this.ngZone.onMicrotaskEmpty\n .asObservable()\n .pipe(take(1), takeUntil(this.dispose$))\n .subscribe(() => {\n if (this.tooltipInstance) {\n this.overlayRef.updatePosition();\n }\n });\n }\n }\n\n isTooltipVisible(): boolean {\n return !!this.tooltipInstance && this.tooltipInstance.isVisible();\n }\n\n dispose(): void {\n this.dispose$.next();\n this.dispose$.complete();\n this.hide(0);\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.tooltipInstance = null;\n }\n }\n}\n","import { InjectionToken, ViewContainerRef } from '@angular/core';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\nexport interface ThyTooltipConfig {\n placement?: ThyPlacement;\n viewContainerRef?: ViewContainerRef;\n showDelay?: number;\n hideDelay?: number;\n touchendHideDelay?: number;\n offset?: number;\n contentClass?: string | string[];\n panelClass?: string | string[];\n hasBackdrop?: boolean;\n tooltipPin?: boolean;\n scrollThrottleSeconds?: number;\n}\n\nexport type ThyGlobalTooltipConfig = Pick<\n ThyTooltipConfig,\n 'placement' | 'offset' | 'scrollThrottleSeconds' | 'tooltipPin' | 'panelClass' | 'showDelay' | 'hideDelay' | 'touchendHideDelay'\n>;\n\nexport const THY_TOOLTIP_DEFAULT_CONFIG_TOKEN = new InjectionToken<ThyGlobalTooltipConfig>('thy-tooltip-default-config');\n\nexport const thyTooltipDefaultConfig: ThyGlobalTooltipConfig = {\n placement: 'top',\n showDelay: 200,\n hideDelay: 100,\n touchendHideDelay: 1500,\n offset: 4,\n panelClass: 'thy-tooltip-panel',\n tooltipPin: false,\n scrollThrottleSeconds: 20\n};\n\nexport const THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_TOOLTIP_DEFAULT_CONFIG_TOKEN,\n useValue: thyTooltipDefaultConfig\n};\n","import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport { Injectable, NgZone, ElementRef, inject } from '@angular/core';\nimport { ThyTooltipRef } from './tooltip-ref';\nimport { ThyGlobalTooltipConfig, ThyTooltipConfig, THY_TOOLTIP_DEFAULT_CONFIG_TOKEN } from './tooltip.config';\n\n@Injectable({ providedIn: 'root' })\nexport class ThyTooltipService {\n private overlay = inject(Overlay);\n private scrollDispatcher = inject(ScrollDispatcher);\n private ngZone = inject(NgZone);\n private defaultTooltipConfig = inject(THY_TOOLTIP_DEFAULT_CONFIG_TOKEN);\n\n /**\n * 创建一个 Tooltip\n */\n create(host: ElementRef<HTMLElement> | HTMLElement, config: ThyTooltipConfig = {}) {\n config = Object.assign({}, this.defaultTooltipConfig, config);\n const tooltipRef = new ThyTooltipRef(host, config, this.overlay, this.scrollDispatcher, this.ngZone);\n return tooltipRef;\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\nimport { Directive, ElementRef, Input, NgZone, OnDestroy, OnInit, ViewContainerRef, numberAttribute, inject } from '@angular/core';\nimport { ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceBooleanProperty, isString } from 'ngx-tethys/util';\nimport { ThyTooltipContent } from './interface';\nimport { ThyTooltipRef } from './tooltip-ref';\nimport { ThyTooltipService } from './tooltip.service';\n\n/**\n * @name thyTooltip\n */\n@Directive({\n selector: '[thyTooltip],[thy-tooltip]',\n exportAs: 'thyTooltip',\n standalone: true\n})\nexport class ThyTooltipDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n private viewContainerRef = inject(ViewContainerRef);\n private thyTooltipService = inject(ThyTooltipService);\n\n touchendHideDelay = 1500;\n\n protected isAutoCloseOnMobileTouch: boolean = true;\n\n private tooltipClass: string | string[];\n\n private tooltipRef: ThyTooltipRef;\n\n private _content: ThyTooltipContent;\n\n get content() {\n return this._content;\n }\n\n /**\n * 提示消息,可以是文本,也可以是一个模板\n * @type string | TemplateRef<T>\n */\n @Input('thyTooltip') set content(value: ThyTooltipContent) {\n // If the content is not a string (e.g. number), convert it to a string and trim it.\n this._content = value && isString(value) ? `${value}`.trim() : value;\n if (!this._content && this.tooltipRef?.isTooltipVisible()) {\n this.tooltipRef.hide(0);\n } else {\n this.tooltipRef?.updateTooltipContent(value, this.data);\n }\n }\n\n /**\n * 指定提示的位置\n * @type ThyPlacement\n */\n @Input('thyTooltipPlacement') placement: ThyPlacement = 'top';\n\n /**\n * 提示内容自定义样式\n */\n @Input('thyTooltipClass')\n set thyTooltipClass(value: string | string[]) {\n this.tooltipClass = value;\n this.tooltipRef?.setTooltipClass(this.tooltipClass);\n }\n\n /**\n * 显示提示内容延迟毫秒\n */\n @Input({ alias: 'thyTooltipShowDelay', transform: numberAttribute }) showDelay: number;\n\n /**\n * 隐藏提示内容延迟毫秒\n */\n @Input({ alias: 'thyTooltipHideDelay', transform: numberAttribute }) hideDelay: number;\n\n _trigger: ThyOverlayTrigger = 'hover';\n\n /**\n * 触发提示方式\n * <br/>`hover` 鼠标移入,显示提示;鼠标移出,隐藏提示;显示提示时,滚动页面,会隐藏提示。\n * <br/>`focus` 元素获取焦点,显示提示;元素失去焦点,隐藏提示;显示元素时,滚动页面,提示会跟随聚焦源一起移动。\n * <br/>`click` 点击元素,显示提示;点击backdrop,隐藏提示;显示提示时,页面的滚动行为会被阻止。\n *\n * @type hover | focus | click\n */\n @Input('thyTooltipTrigger') set thyTooltipTrigger(value: ThyOverlayTrigger) {\n this.trigger = value;\n }\n\n /**\n * 设置是否禁用提示\n * @default false\n */\n @Input({ alias: 'thyTooltipDisabled', transform: coerceBooleanProperty })\n set thyTooltipDisabled(value: boolean) {\n this.disabled = value;\n // If tooltip is disabled, hide immediately.\n if (this.disabled) {\n this.hide(0);\n }\n }\n\n /**\n * 传入 template 时,需要注入给 template 的上下文数据\n */\n @Input('thyTooltipTemplateContext') data: SafeAny;\n\n /**\n * 偏移量\n */\n @Input({ alias: 'thyTooltipOffset', transform: numberAttribute }) tooltipOffset: number;\n\n /**\n * hover 触发方式下 鼠标移入Tooltip是否固定 Tooltip\n * @default false\n */\n @Input({ alias: 'thyTooltipPin', transform: coerceBooleanProperty })\n set tooltipPin(value: boolean) {\n this.overlayPin = value;\n }\n\n constructor() {\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n const ngZone = inject(NgZone);\n const platform = inject(Platform);\n const focusMonitor = inject(FocusMonitor);\n\n super(elementRef, platform, focusMonitor, ngZone);\n }\n\n ngOnInit() {\n this.initialize();\n }\n\n /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show 200ms */\n show(delay: number = this.showDelay): void {\n if (this.disabled) {\n return;\n }\n if (!this.tooltipRef) {\n this.tooltipRef = this.thyTooltipService.create(this.elementRef, {\n viewContainerRef: this.viewContainerRef,\n placement: this.placement,\n contentClass: this.tooltipClass,\n offset: this.tooltipOffset,\n tooltipPin: this.tooltipPin,\n hasBackdrop: this.trigger === 'click'\n });\n }\n this.tooltipRef.show(this.content, this.data, delay);\n }\n\n /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide 100ms */\n hide(delay: number = this.hideDelay): void {\n this.tooltipRef?.hide(delay);\n }\n\n ngOnDestroy() {\n this.tooltipRef?.dispose();\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyTooltipDirective } from './tooltip.directive';\nimport { ThyTooltip } from './tooltip.component';\nimport { THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER } from './tooltip.config';\n\n@NgModule({\n imports: [A11yModule, CommonModule, OverlayModule, ThyTooltipDirective, ThyTooltip],\n exports: [ThyTooltipDirective],\n providers: [THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER]\n})\nexport class ThyTooltipModule {}\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-tooltip.mjs","sources":["../../../src/tooltip/tooltip-animations.ts","../../../src/tooltip/tooltip.component.ts","../../../src/tooltip/tooltip.component.html","../../../src/tooltip/tooltip-ref.ts","../../../src/tooltip/tooltip.config.ts","../../../src/tooltip/tooltip.service.ts","../../../src/tooltip/tooltip.directive.ts","../../../src/tooltip/tooltip.module.ts","../../../src/tooltip/ngx-tethys-tooltip.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from 'ngx-tethys/core';\n\nexport const thyTooltipAnimations: {\n readonly tooltipState: AnimationTriggerMetadata;\n} = {\n tooltipState: trigger('state', [\n state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),\n state('visible', style({ transform: 'scale(1)' })),\n\n transition('* => visible', [\n style({ opacity: 0, transform: 'scale(0.9, 0.9)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 1,\n transform: 'scale(1, 1)'\n })\n )\n ]),\n transition('visible => *', [\n style({ opacity: 1, transform: 'scale(1, 1)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 0,\n transform: 'scale(0.9, 0.9)'\n })\n )\n ])\n ])\n};\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n HostBinding,\n TemplateRef,\n OnInit,\n inject\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { AnimationEvent } from '@angular/animations';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyTooltipVisibility } from './interface';\nimport { thyTooltipAnimations } from './tooltip-animations';\nimport { coerceArray } from 'ngx-tethys/util';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-tooltip',\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [thyTooltipAnimations.tooltipState],\n host: {\n '[@state]': 'visibility',\n '(@state.start)': 'animationStart()',\n '(@state.done)': 'animationDone($event)'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyTooltip implements OnInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n @HostBinding(`class.thy-tooltip`) addTooltipContainerClass = true;\n\n _content: string | TemplateRef<HTMLElement>;\n\n data: any;\n\n private readonly onHide: Subject<void> = new Subject();\n\n private closeOnInteraction = false;\n\n private hostRenderer = useHostRenderer();\n\n visibility: ThyTooltipVisibility = 'initial';\n\n showTimeoutId: number | null | any;\n\n hideTimeoutId: number | null | any;\n\n tooltipClasses: string[] = [];\n\n isTemplateRef = false;\n\n get content() {\n return this._content;\n }\n\n set content(value: string | TemplateRef<HTMLElement>) {\n this._content = value;\n this.isTemplateRef = value instanceof TemplateRef;\n }\n\n private updateClasses() {\n let classes: string[] = [];\n\n if (this.tooltipClasses) {\n classes = classes.concat(this.tooltipClasses);\n }\n\n this.hostRenderer.updateClass(classes);\n }\n\n ngOnInit() {}\n\n markForCheck(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n isVisible() {\n return this.visibility === 'visible';\n }\n\n show(delay: number): void {\n // Cancel the delayed hide if it is scheduled\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n // Body interactions should cancel the tooltip if there is a delay in showing.\n this.closeOnInteraction = true;\n this.showTimeoutId = setTimeout(() => {\n this.visibility = 'visible';\n this.showTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n hide(delay: number): void {\n // Cancel the delayed show if it is scheduled\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n this.visibility = 'hidden';\n this.hideTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n animationStart() {\n this.closeOnInteraction = false;\n }\n\n animationDone(event: AnimationEvent): void {\n const toState = event.toState as ThyTooltipVisibility;\n if (toState === 'hidden' && !this.isVisible()) {\n this.onHide.next();\n }\n if (toState === 'visible' || toState === 'hidden') {\n this.closeOnInteraction = true;\n }\n }\n\n afterHidden(): Observable<void> {\n return this.onHide.asObservable();\n }\n\n setTooltipClass(classes: string | string[]) {\n this.tooltipClasses = coerceArray(classes);\n this.updateClasses();\n // this.markForCheck();\n }\n}\n","<div class=\"thy-tooltip-arrow\"></div>\n<div class=\"thy-tooltip-content\">\n @if (isTemplateRef) {\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data }\"></ng-container>\n } @else {\n {{ content }}\n }\n</div>\n","import { FlexibleConnectedPositionStrategy, Overlay, OverlayRef, ScrollDispatcher, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, NgZone, TemplateRef } from '@angular/core';\nimport { isUndefinedOrNull } from '@tethys/cdk/is';\nimport { getFlexiblePositions } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { isNumber } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { ThyTooltipContent } from './interface';\nimport { ThyTooltip } from './tooltip.component';\nimport { ThyTooltipConfig } from './tooltip.config';\n\nexport class ThyTooltipRef {\n private overlayRef: OverlayRef;\n\n private tooltipInstance: ThyTooltip;\n\n private scrollStrategy: ScrollStrategy;\n\n private portal: ComponentPortal<ThyTooltip>;\n\n private readonly dispose$ = new Subject<void>();\n\n constructor(\n private host: ElementRef<HTMLElement> | HTMLElement,\n private config: ThyTooltipConfig,\n private overlay: Overlay,\n private scrollDispatcher: ScrollDispatcher,\n private ngZone: NgZone\n ) {\n this.scrollStrategy = overlay.scrollStrategies.reposition({\n scrollThrottle: this.config.scrollThrottleSeconds\n });\n }\n\n /** Create the overlay config and position strategy */\n private createOverlay(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n const scrollableAncestors = this.scrollDispatcher.getAncestorScrollContainers(this.host);\n // Create connected position strategy that listens for scroll events to reposition.\n const strategy = this.overlay\n .position()\n .flexibleConnectedTo(this.host)\n .withTransformOriginOn('.thy-tooltip-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(8);\n\n strategy.withScrollableContainers(scrollableAncestors);\n strategy.positionChanges.pipe(takeUntil(this.dispose$)).subscribe(change => {\n if (this.tooltipInstance) {\n if (change.scrollableViewProperties.isOverlayClipped && this.tooltipInstance.isVisible()) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.hide(0));\n }\n }\n });\n this.overlayRef = this.overlay.create({\n positionStrategy: strategy,\n panelClass: this.config.panelClass,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.config.hasBackdrop,\n backdropClass: 'thy-tooltip-backdrop'\n });\n\n this.updatePosition();\n\n this.overlayRef\n .detachments()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => this.detach());\n\n this.overlayRef\n .backdropClick()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => {\n this.overlayRef.detachBackdrop();\n this.hide(0);\n });\n\n return this.overlayRef;\n }\n\n /** Updates the position of the current tooltip. */\n private updatePosition() {\n const position = this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n const connectionPositions = getFlexiblePositions(this.config.placement, this.config.offset, 'thy-tooltip');\n position.withPositions(connectionPositions);\n }\n\n private detach() {\n if (this.overlayRef && this.overlayRef.hasAttached()) {\n this.overlayRef.detach();\n }\n this.tooltipInstance = null;\n }\n\n show(content: ThyTooltipContent, delay?: number): void;\n show<T extends Record<SafeAny, SafeAny>>(content: ThyTooltipContent, data: T, delay?: number): void;\n show<T extends Record<SafeAny, SafeAny>>(content: ThyTooltipContent, dataOrDelay: T | number, delay?: number) {\n if (!content || (this.isTooltipVisible() && !this.tooltipInstance.showTimeoutId && !this.tooltipInstance.hideTimeoutId)) {\n return;\n }\n let showDelay = null;\n let initialState = null;\n if (isNumber(dataOrDelay)) {\n showDelay = dataOrDelay as number;\n } else {\n initialState = dataOrDelay;\n showDelay = delay;\n }\n const overlayRef = this.createOverlay();\n this.detach();\n this.portal = this.portal || new ComponentPortal(ThyTooltip, this.config.viewContainerRef);\n this.tooltipInstance = overlayRef.attach(this.portal).instance;\n this.tooltipInstance\n .afterHidden()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => this.detach());\n this.updateTooltipContent(content, initialState);\n this.setTooltipClass(this.config.contentClass);\n this.tooltipInstance.show(!isUndefinedOrNull(showDelay) ? showDelay : this.config.showDelay);\n }\n\n hide(delay: number = 0): void {\n if (this.overlayRef && this.overlayRef['_scrollStrategy']) {\n this.overlayRef['_scrollStrategy'].disable();\n }\n if (this.tooltipInstance) {\n this.tooltipInstance.hide(!isUndefinedOrNull(delay) ? delay : this.config.hideDelay);\n }\n }\n\n getOverlayRef() {\n return this.overlayRef;\n }\n\n setTooltipClass(tooltipClass: string | string[]) {\n if (this.tooltipInstance) {\n this.tooltipInstance.setTooltipClass(tooltipClass);\n }\n }\n\n updateTooltipContent(content: string | TemplateRef<any>, data?: any) {\n // Must wait for the message to be painted to the tooltip so that the overlay can properly\n // calculate the correct positioning based on the size of the text.\n if (this.tooltipInstance) {\n this.tooltipInstance.content = content;\n this.tooltipInstance.data = data;\n this.tooltipInstance.markForCheck();\n\n this.ngZone.onMicrotaskEmpty\n .asObservable()\n .pipe(take(1), takeUntil(this.dispose$))\n .subscribe(() => {\n if (this.tooltipInstance) {\n this.overlayRef.updatePosition();\n }\n });\n }\n }\n\n isTooltipVisible(): boolean {\n return !!this.tooltipInstance && this.tooltipInstance.isVisible();\n }\n\n dispose(): void {\n this.dispose$.next();\n this.dispose$.complete();\n this.hide(0);\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.tooltipInstance = null;\n }\n }\n}\n","import { InjectionToken, ViewContainerRef } from '@angular/core';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\nexport interface ThyTooltipConfig {\n placement?: ThyPlacement;\n viewContainerRef?: ViewContainerRef;\n showDelay?: number;\n hideDelay?: number;\n touchendHideDelay?: number;\n offset?: number;\n contentClass?: string | string[];\n panelClass?: string | string[];\n hasBackdrop?: boolean;\n tooltipPin?: boolean;\n scrollThrottleSeconds?: number;\n}\n\nexport type ThyGlobalTooltipConfig = Pick<\n ThyTooltipConfig,\n 'placement' | 'offset' | 'scrollThrottleSeconds' | 'tooltipPin' | 'panelClass' | 'showDelay' | 'hideDelay' | 'touchendHideDelay'\n>;\n\nexport const THY_TOOLTIP_DEFAULT_CONFIG_TOKEN = new InjectionToken<ThyGlobalTooltipConfig>('thy-tooltip-default-config');\n\nexport const thyTooltipDefaultConfig: ThyGlobalTooltipConfig = {\n placement: 'top',\n showDelay: 200,\n hideDelay: 100,\n touchendHideDelay: 1500,\n offset: 4,\n panelClass: 'thy-tooltip-panel',\n tooltipPin: false,\n scrollThrottleSeconds: 20\n};\n\nexport const THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_TOOLTIP_DEFAULT_CONFIG_TOKEN,\n useValue: thyTooltipDefaultConfig\n};\n","import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport { Injectable, NgZone, ElementRef, inject } from '@angular/core';\nimport { ThyTooltipRef } from './tooltip-ref';\nimport { ThyGlobalTooltipConfig, ThyTooltipConfig, THY_TOOLTIP_DEFAULT_CONFIG_TOKEN } from './tooltip.config';\n\n@Injectable({ providedIn: 'root' })\nexport class ThyTooltipService {\n private overlay = inject(Overlay);\n private scrollDispatcher = inject(ScrollDispatcher);\n private ngZone = inject(NgZone);\n private defaultTooltipConfig = inject(THY_TOOLTIP_DEFAULT_CONFIG_TOKEN);\n\n /**\n * 创建一个 Tooltip\n */\n create(host: ElementRef<HTMLElement> | HTMLElement, config: ThyTooltipConfig = {}) {\n config = Object.assign({}, this.defaultTooltipConfig, config);\n const tooltipRef = new ThyTooltipRef(host, config, this.overlay, this.scrollDispatcher, this.ngZone);\n return tooltipRef;\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\nimport { Directive, ElementRef, Input, NgZone, OnDestroy, OnInit, ViewContainerRef, numberAttribute, inject } from '@angular/core';\nimport { ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceBooleanProperty, isString } from 'ngx-tethys/util';\nimport { ThyTooltipContent } from './interface';\nimport { ThyTooltipRef } from './tooltip-ref';\nimport { ThyTooltipService } from './tooltip.service';\n\n/**\n * @name thyTooltip\n */\n@Directive({\n selector: '[thyTooltip],[thy-tooltip]',\n exportAs: 'thyTooltip'\n})\nexport class ThyTooltipDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n private viewContainerRef = inject(ViewContainerRef);\n private thyTooltipService = inject(ThyTooltipService);\n\n touchendHideDelay = 1500;\n\n protected isAutoCloseOnMobileTouch: boolean = true;\n\n private tooltipClass: string | string[];\n\n private tooltipRef: ThyTooltipRef;\n\n private _content: ThyTooltipContent;\n\n get content() {\n return this._content;\n }\n\n /**\n * 提示消息,可以是文本,也可以是一个模板\n * @type string | TemplateRef<T>\n */\n @Input('thyTooltip') set content(value: ThyTooltipContent) {\n // If the content is not a string (e.g. number), convert it to a string and trim it.\n this._content = value && isString(value) ? `${value}`.trim() : value;\n if (!this._content && this.tooltipRef?.isTooltipVisible()) {\n this.tooltipRef.hide(0);\n } else {\n this.tooltipRef?.updateTooltipContent(value, this.data);\n }\n }\n\n /**\n * 指定提示的位置\n * @type ThyPlacement\n */\n @Input('thyTooltipPlacement') placement: ThyPlacement = 'top';\n\n /**\n * 提示内容自定义样式\n */\n @Input('thyTooltipClass')\n set thyTooltipClass(value: string | string[]) {\n this.tooltipClass = value;\n this.tooltipRef?.setTooltipClass(this.tooltipClass);\n }\n\n /**\n * 显示提示内容延迟毫秒\n */\n @Input({ alias: 'thyTooltipShowDelay', transform: numberAttribute }) showDelay: number;\n\n /**\n * 隐藏提示内容延迟毫秒\n */\n @Input({ alias: 'thyTooltipHideDelay', transform: numberAttribute }) hideDelay: number;\n\n _trigger: ThyOverlayTrigger = 'hover';\n\n /**\n * 触发提示方式\n * <br/>`hover` 鼠标移入,显示提示;鼠标移出,隐藏提示;显示提示时,滚动页面,会隐藏提示。\n * <br/>`focus` 元素获取焦点,显示提示;元素失去焦点,隐藏提示;显示元素时,滚动页面,提示会跟随聚焦源一起移动。\n * <br/>`click` 点击元素,显示提示;点击backdrop,隐藏提示;显示提示时,页面的滚动行为会被阻止。\n *\n * @type hover | focus | click\n */\n @Input('thyTooltipTrigger') set thyTooltipTrigger(value: ThyOverlayTrigger) {\n this.trigger = value;\n }\n\n /**\n * 设置是否禁用提示\n * @default false\n */\n @Input({ alias: 'thyTooltipDisabled', transform: coerceBooleanProperty })\n set thyTooltipDisabled(value: boolean) {\n this.disabled = value;\n // If tooltip is disabled, hide immediately.\n if (this.disabled) {\n this.hide(0);\n }\n }\n\n /**\n * 传入 template 时,需要注入给 template 的上下文数据\n */\n @Input('thyTooltipTemplateContext') data: SafeAny;\n\n /**\n * 偏移量\n */\n @Input({ alias: 'thyTooltipOffset', transform: numberAttribute }) tooltipOffset: number;\n\n /**\n * hover 触发方式下 鼠标移入Tooltip是否固定 Tooltip\n * @default false\n */\n @Input({ alias: 'thyTooltipPin', transform: coerceBooleanProperty })\n set tooltipPin(value: boolean) {\n this.overlayPin = value;\n }\n\n constructor() {\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n const ngZone = inject(NgZone);\n const platform = inject(Platform);\n const focusMonitor = inject(FocusMonitor);\n\n super(elementRef, platform, focusMonitor, ngZone);\n }\n\n ngOnInit() {\n this.initialize();\n }\n\n /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show 200ms */\n show(delay: number = this.showDelay): void {\n if (this.disabled) {\n return;\n }\n if (!this.tooltipRef) {\n this.tooltipRef = this.thyTooltipService.create(this.elementRef, {\n viewContainerRef: this.viewContainerRef,\n placement: this.placement,\n contentClass: this.tooltipClass,\n offset: this.tooltipOffset,\n tooltipPin: this.tooltipPin,\n hasBackdrop: this.trigger === 'click'\n });\n }\n this.tooltipRef.show(this.content, this.data, delay);\n }\n\n /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide 100ms */\n hide(delay: number = this.hideDelay): void {\n this.tooltipRef?.hide(delay);\n }\n\n ngOnDestroy() {\n this.tooltipRef?.dispose();\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyTooltipDirective } from './tooltip.directive';\nimport { ThyTooltip } from './tooltip.component';\nimport { THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER } from './tooltip.config';\n\n@NgModule({\n imports: [A11yModule, CommonModule, OverlayModule, ThyTooltipDirective, ThyTooltip],\n exports: [ThyTooltipDirective],\n providers: [THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER]\n})\nexport class ThyTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGa,MAAA,oBAAoB,GAE7B;AACA,IAAA,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAA,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QAC5E,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QAElD,UAAU,CAAC,cAAc,EAAE;YACvB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;AACnD,YAAA,OAAO,CACH,CAAA,EAAG,iBAAiB,CAAC,IAAI,CAAA,CAAA,EAAI,eAAe,CAAC,oBAAoB,CAAA,CAAE,EACnE,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,SAAS,EAAE;AACd,aAAA,CAAC;SAET,CAAC;QACF,UAAU,CAAC,cAAc,EAAE;YACvB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AAC/C,YAAA,OAAO,CACH,CAAA,EAAG,iBAAiB,CAAC,IAAI,CAAA,CAAA,EAAI,eAAe,CAAC,oBAAoB,CAAA,CAAE,EACnE,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,SAAS,EAAE;AACd,aAAA,CAAC;SAET;KACJ;;;ACZL;;AAEG;MAcU,UAAU,CAAA;AAbvB,IAAA,WAAA,GAAA;AAcY,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAEnB,IAAwB,CAAA,wBAAA,GAAG,IAAI;AAMhD,QAAA,IAAA,CAAA,MAAM,GAAkB,IAAI,OAAO,EAAE;QAE9C,IAAkB,CAAA,kBAAA,GAAG,KAAK;QAE1B,IAAY,CAAA,YAAA,GAAG,eAAe,EAAE;QAExC,IAAU,CAAA,UAAA,GAAyB,SAAS;QAM5C,IAAc,CAAA,cAAA,GAAa,EAAE;QAE7B,IAAa,CAAA,aAAA,GAAG,KAAK;AAoFxB;AAlFG,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ;;IAGxB,IAAI,OAAO,CAAC,KAAwC,EAAA;AAChD,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,YAAY,WAAW;;IAG7C,aAAa,GAAA;QACjB,IAAI,OAAO,GAAa,EAAE;AAE1B,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;;AAGjD,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;;AAG1C,IAAA,QAAQ;IAER,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;;IAGzC,SAAS,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS;;AAGxC,IAAA,IAAI,CAAC,KAAa,EAAA;;AAEd,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;;;AAI7B,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;AACjC,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;YACzB,IAAI,CAAC,YAAY,EAAE;SACtB,EAAE,KAAK,CAAC;;AAGb,IAAA,IAAI,CAAC,KAAa,EAAA;;AAEd,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;;AAG7B,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;AACjC,YAAA,IAAI,CAAC,UAAU,GAAG,QAAQ;AAC1B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;YACzB,IAAI,CAAC,YAAY,EAAE;SACtB,EAAE,KAAK,CAAC;;IAGb,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;;AAGnC,IAAA,aAAa,CAAC,KAAqB,EAAA;AAC/B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAA+B;QACrD,IAAI,OAAO,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;AAC3C,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;;QAEtB,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,QAAQ,EAAE;AAC/C,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;;;IAItC,WAAW,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;;AAGrC,IAAA,eAAe,CAAC,OAA0B,EAAA;AACtC,QAAA,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,aAAa,EAAE;;;8GAxGf,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClCvB,qPAQA,EDwBc,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,sIANd,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAQtC,UAAU,EAAA,UAAA,EAAA,CAAA;kBAbtB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAER,aAAA,EAAA,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,CAAC,oBAAoB,CAAC,YAAY,CAAC,EACzC,IAAA,EAAA;AACF,wBAAA,UAAU,EAAE,YAAY;AACxB,wBAAA,gBAAgB,EAAE,kBAAkB;AACpC,wBAAA,eAAe,EAAE;qBACpB,EACQ,OAAA,EAAA,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,qPAAA,EAAA;8BAKO,wBAAwB,EAAA,CAAA;sBAAzD,WAAW;uBAAC,CAAmB,iBAAA,CAAA;;;MExBvB,aAAa,CAAA;IAWtB,WACY,CAAA,IAA2C,EAC3C,MAAwB,EACxB,OAAgB,EAChB,gBAAkC,EAClC,MAAc,EAAA;QAJd,IAAI,CAAA,IAAA,GAAJ,IAAI;QACJ,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAO,CAAA,OAAA,GAAP,OAAO;QACP,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;QAChB,IAAM,CAAA,MAAA,GAAN,MAAM;AAPD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;QAS3C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC;AACtD,YAAA,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC;AAC/B,SAAA,CAAC;;;IAIE,aAAa,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,OAAO,IAAI,CAAC,UAAU;;AAE1B,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;;AAExF,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC;AACjB,aAAA,QAAQ;AACR,aAAA,mBAAmB,CAAC,IAAI,CAAC,IAAI;aAC7B,qBAAqB,CAAC,sBAAsB;aAC5C,sBAAsB,CAAC,KAAK;aAC5B,kBAAkB,CAAC,CAAC,CAAC;AAE1B,QAAA,QAAQ,CAAC,wBAAwB,CAAC,mBAAmB,CAAC;AACtD,QAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AACvE,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,IAAI,MAAM,CAAC,wBAAwB,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE;;;AAGtF,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;AAG/C,SAAC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAClC,YAAA,gBAAgB,EAAE,QAAQ;AAC1B,YAAA,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,cAAc,EAAE,IAAI,CAAC,cAAc;AACnC,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;AACpC,YAAA,aAAa,EAAE;AAClB,SAAA,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,CAAC;AACA,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AAEnC,QAAA,IAAI,CAAC;AACA,aAAA,aAAa;AACb,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB,SAAC,CAAC;QAEN,OAAO,IAAI,CAAC,UAAU;;;IAIlB,cAAc,GAAA;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,gBAAqD;AAClG,QAAA,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;AAC1G,QAAA,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC;;IAGvC,MAAM,GAAA;QACV,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;AAClD,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;;AAE5B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;AAK/B,IAAA,IAAI,CAAqC,OAA0B,EAAE,WAAuB,EAAE,KAAc,EAAA;QACxG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE;YACrH;;QAEJ,IAAI,SAAS,GAAG,IAAI;QACpB,IAAI,YAAY,GAAG,IAAI;AACvB,QAAA,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE;YACvB,SAAS,GAAG,WAAqB;;aAC9B;YACH,YAAY,GAAG,WAAW;YAC1B,SAAS,GAAG,KAAK;;AAErB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;QACvC,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAC1F,QAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ;AAC9D,QAAA,IAAI,CAAC;AACA,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC;QAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;;IAGhG,IAAI,CAAC,QAAgB,CAAC,EAAA;QAClB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;YACvD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE;;AAEhD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;;;IAI5F,aAAa,GAAA;QACT,OAAO,IAAI,CAAC,UAAU;;AAG1B,IAAA,eAAe,CAAC,YAA+B,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC;;;IAI1D,oBAAoB,CAAC,OAAkC,EAAE,IAAU,EAAA;;;AAG/D,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,OAAO;AACtC,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI;AAChC,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;YAEnC,IAAI,CAAC,MAAM,CAAC;AACP,iBAAA,YAAY;AACZ,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;iBACtC,SAAS,CAAC,MAAK;AACZ,gBAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;;AAExC,aAAC,CAAC;;;IAId,gBAAgB,GAAA;AACZ,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;;IAGrE,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACZ,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;;AAGtC;;MC5JY,gCAAgC,GAAG,IAAI,cAAc,CAAyB,4BAA4B;AAE1G,MAAA,uBAAuB,GAA2B;AAC3D,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,iBAAiB,EAAE,IAAI;AACvB,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,UAAU,EAAE,mBAAmB;AAC/B,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,qBAAqB,EAAE;;AAGd,MAAA,mCAAmC,GAAG;AAC/C,IAAA,OAAO,EAAE,gCAAgC;AACzC,IAAA,QAAQ,EAAE;;;MC/BD,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACzB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,gCAAgC,CAAC;AAU1E;AARG;;AAEG;AACH,IAAA,MAAM,CAAC,IAA2C,EAAE,MAAA,GAA2B,EAAE,EAAA;AAC7E,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC;AACpG,QAAA,OAAO,UAAU;;8GAZZ,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,cADJ,MAAM,EAAA,CAAA,CAAA;;2FACnB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACKlC;;AAEG;AAKG,MAAO,mBAAoB,SAAQ,uBAAuB,CAAA;AAc5D,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ;;AAGxB;;;AAGG;IACH,IAAyB,OAAO,CAAC,KAAwB,EAAA;;QAErD,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAG,EAAA,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACpE,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,EAAE;AACvD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;;aACpB;YACH,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;;;AAU/D;;AAEG;IACH,IACI,eAAe,CAAC,KAAwB,EAAA;AACxC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;;AAevD;;;;;;;AAOG;IACH,IAAgC,iBAAiB,CAAC,KAAwB,EAAA;AACtE,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;AAGxB;;;AAGG;IACH,IACI,kBAAkB,CAAC,KAAc,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;AAErB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;;AAcpB;;;AAGG;IACH,IACI,UAAU,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;;AAG3B,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AAC9D,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjC,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAEzC,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC;AA5G7C,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAErD,IAAiB,CAAA,iBAAA,GAAG,IAAI;QAEd,IAAwB,CAAA,wBAAA,GAAY,IAAI;AA0BlD;;;AAGG;QAC2B,IAAS,CAAA,SAAA,GAAiB,KAAK;QAqB7D,IAAQ,CAAA,QAAA,GAAsB,OAAO;;IAuDrC,QAAQ,GAAA;QACJ,IAAI,CAAC,UAAU,EAAE;;;AAIrB,IAAA,IAAI,CAAC,KAAA,GAAgB,IAAI,CAAC,SAAS,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf;;AAEJ,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAClB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE;gBAC7D,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3B,gBAAA,WAAW,EAAE,IAAI,CAAC,OAAO,KAAK;AACjC,aAAA,CAAC;;AAEN,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;;;AAIxD,IAAA,IAAI,CAAC,KAAA,GAAgB,IAAI,CAAC,SAAS,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC;;IAGhC,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;;8GA5IrB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,SAAA,CAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,EAAA,WAAA,CAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,EAAA,WAAA,EAkDsB,eAAe,CAKf,EAAA,SAAA,EAAA,CAAA,qBAAA,EAAA,WAAA,EAAA,eAAe,4GAoBhB,qBAAqB,CAAA,EAAA,IAAA,EAAA,CAAA,2BAAA,EAAA,MAAA,CAAA,EAAA,aAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,EAiBvB,eAAe,CAAA,EAAA,UAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAMlB,qBAAqB,CAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAlGxD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE;AACb,iBAAA;wDAuB4B,OAAO,EAAA,CAAA;sBAA/B,KAAK;uBAAC,YAAY;gBAcW,SAAS,EAAA,CAAA;sBAAtC,KAAK;uBAAC,qBAAqB;gBAMxB,eAAe,EAAA,CAAA;sBADlB,KAAK;uBAAC,iBAAiB;gBAS6C,SAAS,EAAA,CAAA;sBAA7E,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,eAAe,EAAE;gBAKE,SAAS,EAAA,CAAA;sBAA7E,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,eAAe,EAAE;gBAYnC,iBAAiB,EAAA,CAAA;sBAAhD,KAAK;uBAAC,mBAAmB;gBAStB,kBAAkB,EAAA,CAAA;sBADrB,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,qBAAqB,EAAE;gBAYpC,IAAI,EAAA,CAAA;sBAAvC,KAAK;uBAAC,2BAA2B;gBAKgC,aAAa,EAAA,CAAA;sBAA9E,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,EAAE;gBAO5D,UAAU,EAAA,CAAA;sBADb,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,qBAAqB,EAAE;;;MCtG1D,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAhB,gBAAgB,EAAA,OAAA,EAAA,CAJf,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,UAAU,CAAA,EAAA,OAAA,EAAA,CACxE,mBAAmB,CAAA,EAAA,CAAA,CAAA;+GAGpB,gBAAgB,EAAA,SAAA,EAFd,CAAC,mCAAmC,CAAC,YAFtC,UAAU,EAAE,YAAY,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA;;2FAIxC,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,UAAU,CAAC;oBACnF,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,SAAS,EAAE,CAAC,mCAAmC;AAClD,iBAAA;;;ACZD;;AAEG;;;;"}
|
|
@@ -126,10 +126,10 @@ class ThyTransferList {
|
|
|
126
126
|
listData: { lock: this.lockItems, unlock: this.unlockItems }
|
|
127
127
|
});
|
|
128
128
|
}
|
|
129
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
130
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
129
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTransferList, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
130
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ThyTransferList, isStandalone: true, selector: "thy-transfer-list", inputs: { title: "title", items: "items", draggable: "draggable", canLock: "canLock", maxLock: "maxLock", max: "max", disabled: "disabled", template: "template", contentRef: ["renderContentRef", "contentRef"] }, outputs: { draggableUpdate: "draggableUpdate", selectItem: "selectItem", unselectItem: "unselectItem" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<div class=\"thy-transfer-list-header\">\n <span class=\"thy-transfer-list-header-title\"\n >{{ title }} \u00B7 {{ items?.length }}\n @if (max) {\n <span>{{ locale().maxLimit.replace('{max}', max) }}</span>\n }\n </span>\n</div>\n@if (!contentRef) {\n <div class=\"thy-transfer-list-body\" cdkDropListGroup [cdkDropListGroupDisabled]=\"!draggable\">\n @if (canLock) {\n <div class=\"thy-transfer-list-group-name\">{{ locale().maxLockLimit.replace('{maxLock}', maxLock) }}</div>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n id=\"lock\"\n [cdkDropListData]=\"lockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"lockListEnterPredicate\">\n @if (lockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of lockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked }\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n <div class=\"thy-transfer-list-group-name\">{{ locale().unlocked }}</div>\n }\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n [cdkDropListDisabled]=\"!draggable\"\n id=\"unlock\"\n [cdkDropListData]=\"unlockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"unlockListEnterPredicate\">\n @if (unlockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of unlockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked, disabled: disabled && item.direction === 'left' }\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n </div>\n} @else {\n <div class=\"thy-transfer-list-body\">\n <ng-container\n *ngTemplateOutlet=\"\n contentRef;\n context: {\n $implicit: items,\n onSelectItem: onSelectItem,\n onUnselectItem: onUnselectItem\n }\n \"></ng-container>\n </div>\n}\n", dependencies: [{ kind: "directive", type: CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "component", type: ThyList, selector: "thy-list", inputs: ["thyDivided"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: ThyDragDropDirective, selector: "[thyDragDrop]" }, { kind: "component", type: ThyListItem, selector: "thy-list-item,[thy-list-item]" }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
131
131
|
}
|
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTransferList, decorators: [{
|
|
133
133
|
type: Component,
|
|
134
134
|
args: [{ selector: 'thy-transfer-list', encapsulation: ViewEncapsulation.None, imports: [CdkDropListGroup, ThyList, CdkDropList, ThyDragDropDirective, ThyListItem, CdkDrag, NgClass, NgTemplateOutlet], template: "<div class=\"thy-transfer-list-header\">\n <span class=\"thy-transfer-list-header-title\"\n >{{ title }} \u00B7 {{ items?.length }}\n @if (max) {\n <span>{{ locale().maxLimit.replace('{max}', max) }}</span>\n }\n </span>\n</div>\n@if (!contentRef) {\n <div class=\"thy-transfer-list-body\" cdkDropListGroup [cdkDropListGroupDisabled]=\"!draggable\">\n @if (canLock) {\n <div class=\"thy-transfer-list-group-name\">{{ locale().maxLockLimit.replace('{maxLock}', maxLock) }}</div>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n id=\"lock\"\n [cdkDropListData]=\"lockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"lockListEnterPredicate\">\n @if (lockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of lockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked }\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n <div class=\"thy-transfer-list-group-name\">{{ locale().unlocked }}</div>\n }\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n [cdkDropListDisabled]=\"!draggable\"\n id=\"unlock\"\n [cdkDropListData]=\"unlockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"unlockListEnterPredicate\">\n @if (unlockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of unlockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked, disabled: disabled && item.direction === 'left' }\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n </div>\n} @else {\n <div class=\"thy-transfer-list-body\">\n <ng-container\n *ngTemplateOutlet=\"\n contentRef;\n context: {\n $implicit: items,\n onSelectItem: onSelectItem,\n onUnselectItem: onUnselectItem\n }\n \"></ng-container>\n </div>\n}\n" }]
|
|
135
135
|
}], propDecorators: { title: [{
|
|
@@ -291,10 +291,10 @@ class ThyTransfer {
|
|
|
291
291
|
? [...event.listData.lock, ...event.listData.unlock]
|
|
292
292
|
: [...otherListData.lock, ...otherListData.unlock];
|
|
293
293
|
}
|
|
294
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
295
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
294
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTransfer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
295
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ThyTransfer, isStandalone: true, selector: "thy-transfer", inputs: { thyData: "thyData", thyrenderLeftTemplateRef: "thyrenderLeftTemplateRef", thyrenderRightTemplateRef: "thyrenderRightTemplateRef", thyTitles: "thyTitles", thyRightCanLock: "thyRightCanLock", thyRightLockMax: "thyRightLockMax", thyRightMax: "thyRightMax", thyAutoMove: "thyAutoMove", thyLeftDraggable: "thyLeftDraggable", thyRightDraggable: "thyRightDraggable" }, outputs: { thyDraggableUpdate: "thyDraggableUpdate", thyChange: "thyChange" }, host: { properties: { "class": "this.hostClass" } }, queries: [{ propertyName: "templateRef", first: true, predicate: ["renderTemplate"], descendants: true }, { propertyName: "leftContentRef", first: true, predicate: ["renderLeftTemplate"], descendants: true }, { propertyName: "rightContentRef", first: true, predicate: ["renderRightTemplate"], descendants: true }], ngImport: i0, template: "<thy-transfer-list\n [items]=\"allDataSource\"\n [title]=\"leftTitle\"\n [draggable]=\"thyLeftDraggable\"\n [disabled]=\"thyRightMax <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n @if (thyLeftDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right') {\n <thy-icon class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n }\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle\"\n [draggable]=\"thyRightDraggable\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock\"\n [maxLock]=\"thyRightLockMax\"\n [max]=\"thyRightMax\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #rightTemplateRef let-item>\n @if (thyRightDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right' && !item.isFixed) {\n <a class=\"link-secondary\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n }\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n @if (templateRef) {\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (!templateRef) {\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: ThyTransferList, selector: "thy-transfer-list", inputs: ["title", "items", "draggable", "canLock", "maxLock", "max", "disabled", "template", "renderContentRef"], outputs: ["draggableUpdate", "selectItem", "unselectItem"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
296
296
|
}
|
|
297
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
297
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTransfer, decorators: [{
|
|
298
298
|
type: Component,
|
|
299
299
|
args: [{ selector: 'thy-transfer', encapsulation: ViewEncapsulation.None, imports: [ThyTransferList, ThyIcon, NgClass, NgTemplateOutlet, ThyFlexibleText], template: "<thy-transfer-list\n [items]=\"allDataSource\"\n [title]=\"leftTitle\"\n [draggable]=\"thyLeftDraggable\"\n [disabled]=\"thyRightMax <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n @if (thyLeftDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right') {\n <thy-icon class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n }\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle\"\n [draggable]=\"thyRightDraggable\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock\"\n [maxLock]=\"thyRightLockMax\"\n [max]=\"thyRightMax\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #rightTemplateRef let-item>\n @if (thyRightDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right' && !item.isFixed) {\n <a class=\"link-secondary\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n }\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n @if (templateRef) {\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (!templateRef) {\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n }\n</ng-template>\n" }]
|
|
300
300
|
}], propDecorators: { hostClass: [{
|
|
@@ -336,8 +336,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
|
|
|
336
336
|
}] } });
|
|
337
337
|
|
|
338
338
|
class ThyTransferModule {
|
|
339
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
340
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
339
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTransferModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
340
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: ThyTransferModule, imports: [CommonModule,
|
|
341
341
|
ThyButtonModule,
|
|
342
342
|
DragDropModule,
|
|
343
343
|
ThyIconModule,
|
|
@@ -346,7 +346,7 @@ class ThyTransferModule {
|
|
|
346
346
|
ThyFlexibleTextModule,
|
|
347
347
|
ThyTransfer,
|
|
348
348
|
ThyTransferList], exports: [ThyTransfer] }); }
|
|
349
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
349
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTransferModule, imports: [CommonModule,
|
|
350
350
|
ThyButtonModule,
|
|
351
351
|
DragDropModule,
|
|
352
352
|
ThyIconModule,
|
|
@@ -356,7 +356,7 @@ class ThyTransferModule {
|
|
|
356
356
|
ThyTransfer,
|
|
357
357
|
ThyTransferList] }); }
|
|
358
358
|
}
|
|
359
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
359
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTransferModule, decorators: [{
|
|
360
360
|
type: NgModule,
|
|
361
361
|
args: [{
|
|
362
362
|
imports: [
|
|
@@ -411,8 +411,8 @@ class ThyTreeSelect extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
411
411
|
return result;
|
|
412
412
|
}
|
|
413
413
|
}
|
|
414
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
415
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
414
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTreeSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
415
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ThyTreeSelect, isStandalone: true, selector: "thy-tree-select", inputs: { thyTreeNodes: "thyTreeNodes", thyVirtualScroll: ["thyVirtualScroll", "thyVirtualScroll", coerceBooleanProperty], thyPrimaryKey: "thyPrimaryKey", thyShowKey: "thyShowKey", thyChildCountKey: "thyChildCountKey", thyAllowClear: ["thyAllowClear", "thyAllowClear", coerceBooleanProperty], thyMultiple: ["thyMultiple", "thyMultiple", coerceBooleanProperty], thyDisable: ["thyDisable", "thyDisable", coerceBooleanProperty], thyPlaceholder: "thyPlaceholder", thySize: "thySize", thyEmptyOptionsText: "thyEmptyOptionsText", thyHiddenNodeKey: "thyHiddenNodeKey", thyDisableNodeKey: "thyDisableNodeKey", thyAsyncNode: ["thyAsyncNode", "thyAsyncNode", coerceBooleanProperty], thyShowWholeName: ["thyShowWholeName", "thyShowWholeName", coerceBooleanProperty], thyShowSearch: ["thyShowSearch", "thyShowSearch", coerceBooleanProperty], thyIconType: "thyIconType", thyHiddenNodeFn: "thyHiddenNodeFn", thyDisableNodeFn: "thyDisableNodeFn", thyGetNodeChildren: "thyGetNodeChildren" }, outputs: { thyExpandStatusChange: "thyExpandStatusChange" }, host: { listeners: { "focus": "onFocus($event)", "blur": "onBlur($event)" }, properties: { "attr.tabindex": "tabIndex", "class.thy-select-custom": "this.treeSelectClass", "class.thy-select": "this.isTreeSelect", "class.menu-is-opened": "this.expandTreeSelectOptions", "class.thy-select-custom--multiple": "this.isMulti" } }, providers: [
|
|
416
416
|
{
|
|
417
417
|
provide: NG_VALUE_ACCESSOR,
|
|
418
418
|
useExisting: forwardRef(() => ThyTreeSelect),
|
|
@@ -420,7 +420,7 @@ class ThyTreeSelect extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
420
420
|
}
|
|
421
421
|
], queries: [{ propertyName: "thyTreeSelectTriggerDisplayRef", first: true, predicate: ["thyTreeSelectTriggerDisplay"], descendants: true }, { propertyName: "treeNodeTemplateRef", first: true, predicate: ["treeNodeTemplate"], descendants: true }], viewQueries: [{ propertyName: "cdkOverlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, static: true }, { propertyName: "cdkConnectedOverlay", first: true, predicate: CdkConnectedOverlay, descendants: true, static: true }, { propertyName: "customDisplayTemplate", first: true, predicate: ["customDisplayTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n cdkOverlayOrigin\n thySelectControl\n (click)=\"openSelectPop()\"\n #origin=\"cdkOverlayOrigin\"\n [thyPanelOpened]=\"expandTreeSelectOptions\"\n [thySelectedOptions]=\"selectedValueObject\"\n [thyIsMultiple]=\"thyMultiple\"\n [thyAllowClear]=\"thyAllowClear\"\n [thySize]=\"thySize\"\n [thyPlaceholder]=\"placeholder\"\n [customDisplayTemplate]=\"customDisplayTemplate\"\n [thyShowSearch]=\"thyShowSearch\"\n [thyDisabled]=\"thyDisable\"\n (thyOnBlur)=\"onBlur($event)\"\n (thyOnClear)=\"clearSelectedValue($event)\"\n (thyOnRemove)=\"removeMultipleSelectedNode($event)\"\n (thyOnSearch)=\"searchValue($event)\">\n <ng-template #customDisplayTemplate let-node>\n @if (thyTreeSelectTriggerDisplayRef) {\n <ng-template [ngTemplateOutlet]=\"thyTreeSelectTriggerDisplayRef\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n } @else {\n {{ node[thyShowKey] }}\n }\n </ng-template>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayMinWidth]=\"cdkConnectOverlayWidth\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOpen]=\"expandTreeSelectOptions\"\n cdkConnectedOverlayTransformOriginOn=\".thy-tree-select-dropdown\"\n [cdkConnectedOverlayPositions]=\"expandedDropdownPositions\"\n (detach)=\"close()\">\n <thy-tree-select-nodes\n thyStopPropagation\n [thyVirtualScroll]=\"thyVirtualScroll\"\n [treeNodes]=\"thyVirtualScroll ? virtualTreeNodes : treeNodes\"\n [@scaleYMotion]=\"'enter'\">\n </thy-tree-select-nodes>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i0.forwardRef(() => CdkOverlayOrigin), selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i0.forwardRef(() => ThySelectControl), selector: "thy-select-control,[thySelectControl]", inputs: ["thyPanelOpened", "thyIsMultiple", "thyShowSearch", "thySelectedOptions", "thyDisabled", "customDisplayTemplate", "thyAllowClear", "thyPlaceholder", "thySize", "thyMaxTagCount", "thyBorderless", "thyPreset"], outputs: ["thyOnSearch", "thyOnRemove", "thyOnClear", "thyOnBlur"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => CdkConnectedOverlay), selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: i0.forwardRef(() => ThyTreeSelectNodes), selector: "thy-tree-select-nodes", inputs: ["treeNodes", "thyVirtualScroll"] }, { kind: "directive", type: i0.forwardRef(() => ThyStopPropagationDirective), selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }], animations: [scaleYMotion] }); }
|
|
422
422
|
}
|
|
423
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
423
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTreeSelect, decorators: [{
|
|
424
424
|
type: Component,
|
|
425
425
|
args: [{ selector: 'thy-tree-select', providers: [
|
|
426
426
|
{
|
|
@@ -626,10 +626,10 @@ class ThyTreeSelectNodes {
|
|
|
626
626
|
tabTrackBy(index, item) {
|
|
627
627
|
return index;
|
|
628
628
|
}
|
|
629
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
630
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
629
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTreeSelectNodes, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
630
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ThyTreeSelectNodes, isStandalone: true, selector: "thy-tree-select-nodes", inputs: { treeNodes: "treeNodes", thyVirtualScroll: "thyVirtualScroll" }, host: { properties: { "attr.tabindex": "-1", "class": "this.class" } }, ngImport: i0, template: "@if (nodeList?.length > 0) {\n <div class=\"thy-tree-select-options\">\n <div class=\"thy-tree-select-node\">\n @if (!thyVirtualScroll) {\n @for (node of nodeList; track $index) {\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n }\n }\n @if (thyVirtualScroll) {\n <cdk-virtual-scroll-viewport #viewport [itemSize]=\"defaultItemSize\" [style.height]=\"thyVirtualHeight\">\n <ng-container *cdkVirtualFor=\"let node of nodeList; trackBy: tabTrackBy\">\n <ng-template [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n }\n </div>\n </div>\n} @else {\n <thy-empty\n class=\"thy-select-empty-content\"\n thySize=\"sm\"\n [thyMessage]=\"parent.thyEmptyOptionsText\"\n [thyIconName]=\"emptyIcon()\"></thy-empty>\n}\n\n<ng-template #treeSelectNode let-node>\n <ng-container>\n @if (!treeNodeIsHidden(node)) {\n <a\n class=\"thy-option-item\"\n [ngClass]=\"{ active: treeNodeIsSelected(node), 'pl-0': hasNodeChildren }\"\n [class.disabled]=\"treeNodeIsDisable(node)\"\n [ngStyle]=\"{ 'padding-left.px': 20 * node.level + parent.icons.gap }\"\n (click)=\"selectTreeNode($event, node)\">\n <span\n class=\"thy-tree-select-option-icon\"\n [class.invisible]=\"!(node.children?.length > 0 || (node[childCountKey] && node[childCountKey] > 0))\"\n (click)=\"nodeExpandToggle($event, node)\">\n <thy-icon\n class=\"node-expand-icon\"\n [thyIconName]=\"treeNodeIsExpand(node) ? parent.icons.expand : parent.icons.collapse\"></thy-icon>\n </span>\n <span class=\"thy-tree-select-option-text\" [ngClass]=\"{ 'ml-1': hasNodeChildren }\">\n @if (treeNodeTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"treeNodeTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n } @else {\n <span thyFlexibleText [thyTooltipContent]=\"node[showKey]\">{{ node[showKey] }}</span>\n }\n </span>\n @if (isMultiple) {\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n }\n </a>\n }\n @if (!thyVirtualScroll && treeNodeIsExpand(node) && node.children?.length > 0) {\n @for (node of node.children; track $index) {\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-container>\n }\n }\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: ThyEmpty, selector: "thy-empty", inputs: ["thyMessage", "thyTranslationKey", "thyTranslationValues", "thyEntityName", "thyEntityNameTranslateKey", "thyIconName", "thySize", "thyMarginTop", "thyTopAuto", "thyContainer", "thyImageUrl", "thyImageLoading", "thyImageFetchPriority", "thyDescription"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }] }); }
|
|
631
631
|
}
|
|
632
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
632
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTreeSelectNodes, decorators: [{
|
|
633
633
|
type: Component,
|
|
634
634
|
args: [{ selector: 'thy-tree-select-nodes', imports: [
|
|
635
635
|
NgTemplateOutlet,
|
|
@@ -654,8 +654,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
|
|
|
654
654
|
}] } });
|
|
655
655
|
|
|
656
656
|
class ThyTreeSelectModule {
|
|
657
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
658
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
657
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTreeSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
658
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: ThyTreeSelectModule, imports: [CommonModule,
|
|
659
659
|
FormsModule,
|
|
660
660
|
OverlayModule,
|
|
661
661
|
ThyListModule,
|
|
@@ -665,7 +665,7 @@ class ThyTreeSelectModule {
|
|
|
665
665
|
ThySharedModule,
|
|
666
666
|
ThyTreeSelect,
|
|
667
667
|
ThyTreeSelectNodes], exports: [ThyTreeSelect, ThyTreeSelectNodes] }); }
|
|
668
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
668
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTreeSelectModule, imports: [CommonModule,
|
|
669
669
|
FormsModule,
|
|
670
670
|
OverlayModule,
|
|
671
671
|
ThyListModule,
|
|
@@ -676,7 +676,7 @@ class ThyTreeSelectModule {
|
|
|
676
676
|
ThyTreeSelect,
|
|
677
677
|
ThyTreeSelectNodes] }); }
|
|
678
678
|
}
|
|
679
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
679
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyTreeSelectModule, decorators: [{
|
|
680
680
|
type: NgModule,
|
|
681
681
|
args: [{
|
|
682
682
|
imports: [
|