ngx-tethys 19.1.0-next.1 → 19.1.0-next.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/arrow-switcher/arrow-switcher.component.d.ts +5 -1
  3. package/badge/badge.component.d.ts +1 -1
  4. package/color-picker/coordinates.directive.d.ts +1 -2
  5. package/date-picker/abstract-picker.component.d.ts +50 -52
  6. package/date-picker/abstract-picker.directive.d.ts +15 -40
  7. package/date-picker/base-picker.component.d.ts +12 -40
  8. package/date-picker/date-picker.config.d.ts +3 -0
  9. package/date-picker/lib/calendar/calendar-footer.component.d.ts +24 -19
  10. package/date-picker/lib/calendar/calendar-header.component.d.ts +15 -15
  11. package/date-picker/lib/calendar/calendar-table.component.d.ts +15 -16
  12. package/date-picker/lib/date/date-table-cell.component.d.ts +6 -3
  13. package/date-picker/lib/date/date-table.component.d.ts +2 -3
  14. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +2 -3
  15. package/date-picker/lib/decade/decade-header.component.d.ts +2 -5
  16. package/date-picker/lib/decade/decade-table.component.d.ts +3 -5
  17. package/date-picker/lib/month/month-table.component.d.ts +1 -2
  18. package/date-picker/lib/popups/date-popup.component.d.ts +33 -34
  19. package/date-picker/lib/popups/inner-popup.component.d.ts +22 -29
  20. package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -4
  21. package/date-picker/lib/year/year-header.component.d.ts +2 -4
  22. package/date-picker/lib/year/year-table.component.d.ts +2 -4
  23. package/date-picker/month-picker.component.d.ts +2 -2
  24. package/date-picker/picker.component.d.ts +31 -36
  25. package/date-picker/picker.pipes.d.ts +4 -5
  26. package/date-picker/picker.util.d.ts +5 -5
  27. package/date-picker/picker.validators.d.ts +4 -8
  28. package/date-picker/quarter-picker.component.d.ts +2 -3
  29. package/date-picker/styles/range-picker.scss +1 -0
  30. package/date-picker/week-picker.component.d.ts +0 -1
  31. package/date-picker/year-picker.component.d.ts +2 -3
  32. package/dropdown/dropdown-menu.component.d.ts +1 -1
  33. package/dropdown/dropdown.directive.d.ts +4 -3
  34. package/empty/empty.component.d.ts +2 -1
  35. package/fesm2022/ngx-tethys-arrow-switcher.mjs +15 -3
  36. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  37. package/fesm2022/ngx-tethys-autocomplete.mjs +4 -4
  38. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  39. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  40. package/fesm2022/ngx-tethys-cascader.mjs +1 -1
  41. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  42. package/fesm2022/ngx-tethys-checkbox.mjs +2 -2
  43. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  44. package/fesm2022/ngx-tethys-color-picker.mjs +4 -6
  45. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  46. package/fesm2022/ngx-tethys-copy.mjs +2 -2
  47. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  48. package/fesm2022/ngx-tethys-date-picker.mjs +855 -1072
  49. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  50. package/fesm2022/ngx-tethys-divider.mjs +5 -5
  51. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  52. package/fesm2022/ngx-tethys-dropdown.mjs +9 -11
  53. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  54. package/fesm2022/ngx-tethys-empty.mjs +5 -2
  55. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  56. package/fesm2022/ngx-tethys-flexible-text.mjs +4 -5
  57. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  58. package/fesm2022/ngx-tethys-i18n.mjs +26 -6
  59. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  60. package/fesm2022/ngx-tethys-image.mjs +5 -7
  61. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  62. package/fesm2022/ngx-tethys-layout.mjs +291 -334
  63. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  64. package/fesm2022/ngx-tethys-list.mjs +183 -217
  65. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  66. package/fesm2022/ngx-tethys-message.mjs +29 -36
  67. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  68. package/fesm2022/ngx-tethys-notify.mjs +33 -41
  69. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  70. package/fesm2022/ngx-tethys-radio.mjs +4 -4
  71. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  72. package/fesm2022/ngx-tethys-resizable.mjs +20 -17
  73. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  74. package/fesm2022/ngx-tethys-select.mjs +164 -228
  75. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  76. package/fesm2022/ngx-tethys-shared.mjs +423 -587
  77. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  78. package/fesm2022/ngx-tethys-skeleton.mjs +1 -2
  79. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  80. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-table.mjs +1 -2
  82. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  83. package/fesm2022/ngx-tethys-time-picker.mjs +244 -271
  84. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  85. package/fesm2022/ngx-tethys-tooltip.mjs +109 -93
  86. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  87. package/fesm2022/ngx-tethys-tree-select.mjs +215 -281
  88. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  89. package/fesm2022/ngx-tethys-upload.mjs +2 -2
  90. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  91. package/fesm2022/ngx-tethys.mjs +1 -1
  92. package/fesm2022/ngx-tethys.mjs.map +1 -1
  93. package/i18n/i18n.d.ts +7 -2
  94. package/i18n/locales/de-de.d.ts +5 -1
  95. package/i18n/locales/en-us.d.ts +5 -1
  96. package/i18n/locales/ja-jp.d.ts +5 -1
  97. package/i18n/locales/zh-hans.d.ts +5 -1
  98. package/i18n/locales/zh-hant.d.ts +5 -1
  99. package/image/preview/image-preview.component.d.ts +2 -2
  100. package/layout/header.component.d.ts +15 -19
  101. package/layout/layout.component.d.ts +3 -2
  102. package/layout/sidebar-header.component.d.ts +7 -8
  103. package/layout/sidebar.component.d.ts +32 -62
  104. package/list/list-item-meta.component.d.ts +7 -9
  105. package/list/list-item.component.d.ts +0 -2
  106. package/list/list.component.d.ts +2 -8
  107. package/list/selection/selection-list.d.ts +33 -46
  108. package/message/abstract/abstract-message.component.d.ts +2 -3
  109. package/message/message-container.component.d.ts +0 -1
  110. package/message/message.component.d.ts +1 -3
  111. package/notify/notify-container.component.d.ts +0 -1
  112. package/notify/notify.component.d.ts +7 -12
  113. package/package.json +1 -1
  114. package/resizable/resizable.directive.d.ts +2 -1
  115. package/schematics/version.d.ts +1 -1
  116. package/schematics/version.js +1 -1
  117. package/select/custom-select/custom-select.component.d.ts +33 -56
  118. package/select/native-select/native-select.component.d.ts +7 -13
  119. package/shared/base-form-check.component.d.ts +6 -8
  120. package/shared/directives/string-or-template-outlet.directive.d.ts +5 -6
  121. package/shared/directives/thy-autofocus.directive.d.ts +4 -6
  122. package/shared/directives/thy-contextmenu.directive.d.ts +2 -2
  123. package/shared/directives/thy-ctrl-enter.directive.d.ts +2 -2
  124. package/shared/directives/thy-enter.directive.d.ts +2 -2
  125. package/shared/directives/thy-scroll.directive.d.ts +5 -8
  126. package/shared/directives/thy-show.d.ts +5 -6
  127. package/shared/directives/thy-stop-propagation.directive.d.ts +4 -4
  128. package/shared/directives/view-outlet.directive.d.ts +6 -7
  129. package/shared/ng-transclude.directive.d.ts +2 -3
  130. package/shared/option/group/option-group.component.d.ts +5 -9
  131. package/shared/option/list-option/list-option.component.d.ts +9 -13
  132. package/shared/option/option.component.d.ts +10 -17
  133. package/shared/option/option.token.d.ts +4 -3
  134. package/shared/option/options-container.component.d.ts +1 -1
  135. package/shared/select/select-control/select-control.component.d.ts +38 -53
  136. package/stepper/stepper.component.d.ts +1 -1
  137. package/table/table-column.component.d.ts +15 -5
  138. package/time-picker/inner/inner-time-picker.class.d.ts +15 -13
  139. package/time-picker/inner/inner-time-picker.component.d.ts +26 -26
  140. package/time-picker/time-picker-panel.component.d.ts +18 -20
  141. package/time-picker/time-picker.component.d.ts +22 -30
  142. package/tooltip/tooltip.directive.d.ts +20 -22
  143. package/tree-select/tree-select.component.d.ts +53 -70
@@ -62,7 +62,7 @@ class ThyDivider {
62
62
  this.hostRenderer.updateClass([`thy-divider-${this.thyColor()}`]);
63
63
  }
64
64
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyDivider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyDivider, isStandalone: true, selector: "thy-divider", inputs: { thyVertical: { classPropertyName: "thyVertical", publicName: "thyVertical", isSignal: true, isRequired: false, transformFunction: null }, thyStyle: { classPropertyName: "thyStyle", publicName: "thyStyle", isSignal: true, isRequired: false, transformFunction: null }, thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null }, thyText: { classPropertyName: "thyText", publicName: "thyText", isSignal: true, isRequired: false, transformFunction: null }, thyTextDirection: { classPropertyName: "thyTextDirection", publicName: "thyTextDirection", isSignal: true, isRequired: false, transformFunction: null }, thyDeeper: { classPropertyName: "thyDeeper", publicName: "thyDeeper", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-divider": "true", "class.thy-divider-horizontal": "!thyVertical()", "class.thy-divider-vertical": "thyVertical()", "class.thy-divider-with-content": "textContent || templateContent", "class.thy-divider-with-content-left": "(textContent || templateContent) && thyTextDirection() === 'left'", "class.thy-divider-with-content-right": "(textContent || templateContent) && thyTextDirection() === 'right'", "class.thy-divider-with-content-center": "(textContent || templateContent) && thyTextDirection() === 'center'", "class.thy-divider-solid": "thyStyle() === 'solid'", "class.thy-divider-dashed": "thyStyle() === 'dashed'", "class.thy-divider-deeper": "!!thyDeeper()" } }, ngImport: i0, template: `
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyDivider, isStandalone: true, selector: "thy-divider", inputs: { thyVertical: { classPropertyName: "thyVertical", publicName: "thyVertical", isSignal: true, isRequired: false, transformFunction: null }, thyStyle: { classPropertyName: "thyStyle", publicName: "thyStyle", isSignal: true, isRequired: false, transformFunction: null }, thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null }, thyText: { classPropertyName: "thyText", publicName: "thyText", isSignal: true, isRequired: false, transformFunction: null }, thyTextDirection: { classPropertyName: "thyTextDirection", publicName: "thyTextDirection", isSignal: true, isRequired: false, transformFunction: null }, thyDeeper: { classPropertyName: "thyDeeper", publicName: "thyDeeper", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-divider": "true", "class.thy-divider-horizontal": "!thyVertical()", "class.thy-divider-vertical": "thyVertical()", "class.thy-divider-with-content": "textContent() || templateContent()", "class.thy-divider-with-content-left": "(textContent() || templateContent()) && thyTextDirection() === 'left'", "class.thy-divider-with-content-right": "(textContent() || templateContent()) && thyTextDirection() === 'right'", "class.thy-divider-with-content-center": "(textContent() || templateContent()) && thyTextDirection() === 'center'", "class.thy-divider-solid": "thyStyle() === 'solid'", "class.thy-divider-dashed": "thyStyle() === 'dashed'", "class.thy-divider-deeper": "!!thyDeeper()" } }, ngImport: i0, template: `
66
66
  @if (templateContent()) {
67
67
  <div class="thy-divider-inner-template">
68
68
  <ng-template *ngTemplateOutlet="templateContent()"></ng-template>
@@ -95,10 +95,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
95
95
  '[class.thy-divider]': `true`,
96
96
  '[class.thy-divider-horizontal]': `!thyVertical()`,
97
97
  '[class.thy-divider-vertical]': `thyVertical()`,
98
- '[class.thy-divider-with-content]': `textContent || templateContent`,
99
- '[class.thy-divider-with-content-left]': `(textContent || templateContent) && thyTextDirection() === 'left'`,
100
- '[class.thy-divider-with-content-right]': `(textContent || templateContent) && thyTextDirection() === 'right'`,
101
- '[class.thy-divider-with-content-center]': `(textContent || templateContent) && thyTextDirection() === 'center'`,
98
+ '[class.thy-divider-with-content]': `textContent() || templateContent()`,
99
+ '[class.thy-divider-with-content-left]': `(textContent() || templateContent()) && thyTextDirection() === 'left'`,
100
+ '[class.thy-divider-with-content-right]': `(textContent() || templateContent()) && thyTextDirection() === 'right'`,
101
+ '[class.thy-divider-with-content-center]': `(textContent() || templateContent()) && thyTextDirection() === 'center'`,
102
102
  '[class.thy-divider-solid]': `thyStyle() === 'solid'`,
103
103
  '[class.thy-divider-dashed]': `thyStyle() === 'dashed'`,
104
104
  '[class.thy-divider-deeper]': `!!thyDeeper()`
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-divider.mjs","sources":["../../../src/divider/divider.component.ts","../../../src/divider/divider.module.ts","../../../src/divider/ngx-tethys-divider.ts"],"sourcesContent":["import { Component, TemplateRef, ViewEncapsulation, OnInit, ChangeDetectionStrategy, input, effect, Signal, computed } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyDividerStyle = 'solid' | 'dashed';\n\nexport type ThyDividerTextDirection = 'left' | 'right' | 'center';\n\nexport type ThyDividerColor = 'lighter' | 'light' | 'danger' | 'primary' | 'success' | 'warning' | string;\n\n/**\n * 分割线\n * @name thy-divider\n */\n@Component({\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n selector: 'thy-divider',\n template: `\n @if (templateContent()) {\n <div class=\"thy-divider-inner-template\">\n <ng-template *ngTemplateOutlet=\"templateContent()\"></ng-template>\n </div>\n }\n\n @if (textContent()) {\n <span class=\"thy-divider-inner-text\">{{ textContent() }}</span>\n }\n `,\n host: {\n '[class.thy-divider]': `true`,\n '[class.thy-divider-horizontal]': `!thyVertical()`,\n '[class.thy-divider-vertical]': `thyVertical()`,\n '[class.thy-divider-with-content]': `textContent || templateContent`,\n '[class.thy-divider-with-content-left]': `(textContent || templateContent) && thyTextDirection() === 'left'`,\n '[class.thy-divider-with-content-right]': `(textContent || templateContent) && thyTextDirection() === 'right'`,\n '[class.thy-divider-with-content-center]': `(textContent || templateContent) && thyTextDirection() === 'center'`,\n '[class.thy-divider-solid]': `thyStyle() === 'solid'`,\n '[class.thy-divider-dashed]': `thyStyle() === 'dashed'`,\n '[class.thy-divider-deeper]': `!!thyDeeper()`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet]\n})\nexport class ThyDivider implements OnInit {\n private hostRenderer = useHostRenderer();\n\n /**\n * 是否垂直方向\n */\n readonly thyVertical = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 分割线的风格\n * @type solid(实线) | dashed(虚线)\n */\n readonly thyStyle = input<ThyDividerStyle>('solid');\n\n /**\n * 分割线的颜色,默认 #eee,light 为 #ddd,primary 主色,success 成功色,warning 警告色,danger 危险色\n * @type 'lighter' | 'light' | 'danger' | 'primary' | 'success' | 'warning' | string\n */\n readonly thyColor = input<ThyDividerColor>('default');\n\n /**\n * 中间文本内容,支持文字和模板\n */\n readonly thyText = input<string | TemplateRef<HTMLElement>>();\n\n readonly templateContent: Signal<TemplateRef<HTMLElement>> = computed(() => {\n const text = this.thyText();\n if (text instanceof TemplateRef) {\n return text;\n }\n });\n\n readonly textContent: Signal<string> = computed(() => {\n const text = this.thyText();\n if (typeof text === 'string') {\n return text;\n }\n });\n\n /**\n * 中间内容的方向\n * @type left | right | center\n */\n readonly thyTextDirection = input<ThyDividerTextDirection>('center');\n\n /**\n * 颜色加深,已经废弃,请使用 thyColor=\"light\" 代替\n * @deprecated\n */\n readonly thyDeeper = input(false, { transform: coerceBooleanProperty });\n\n constructor() {\n effect(() => {\n this.setColor();\n });\n }\n\n ngOnInit(): void {}\n\n setColor() {\n this.hostRenderer.updateClass([`thy-divider-${this.thyColor()}`]);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { ThyDivider } from './divider.component';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyDivider],\n exports: [ThyDivider],\n providers: []\n})\nexport class ThyDividerModule {}\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-divider.mjs","sources":["../../../src/divider/divider.component.ts","../../../src/divider/divider.module.ts","../../../src/divider/ngx-tethys-divider.ts"],"sourcesContent":["import { Component, TemplateRef, ViewEncapsulation, OnInit, ChangeDetectionStrategy, input, effect, Signal, computed } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyDividerStyle = 'solid' | 'dashed';\n\nexport type ThyDividerTextDirection = 'left' | 'right' | 'center';\n\nexport type ThyDividerColor = 'lighter' | 'light' | 'danger' | 'primary' | 'success' | 'warning' | string;\n\n/**\n * 分割线\n * @name thy-divider\n */\n@Component({\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n selector: 'thy-divider',\n template: `\n @if (templateContent()) {\n <div class=\"thy-divider-inner-template\">\n <ng-template *ngTemplateOutlet=\"templateContent()\"></ng-template>\n </div>\n }\n\n @if (textContent()) {\n <span class=\"thy-divider-inner-text\">{{ textContent() }}</span>\n }\n `,\n host: {\n '[class.thy-divider]': `true`,\n '[class.thy-divider-horizontal]': `!thyVertical()`,\n '[class.thy-divider-vertical]': `thyVertical()`,\n '[class.thy-divider-with-content]': `textContent() || templateContent()`,\n '[class.thy-divider-with-content-left]': `(textContent() || templateContent()) && thyTextDirection() === 'left'`,\n '[class.thy-divider-with-content-right]': `(textContent() || templateContent()) && thyTextDirection() === 'right'`,\n '[class.thy-divider-with-content-center]': `(textContent() || templateContent()) && thyTextDirection() === 'center'`,\n '[class.thy-divider-solid]': `thyStyle() === 'solid'`,\n '[class.thy-divider-dashed]': `thyStyle() === 'dashed'`,\n '[class.thy-divider-deeper]': `!!thyDeeper()`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet]\n})\nexport class ThyDivider implements OnInit {\n private hostRenderer = useHostRenderer();\n\n /**\n * 是否垂直方向\n */\n readonly thyVertical = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 分割线的风格\n * @type solid(实线) | dashed(虚线)\n */\n readonly thyStyle = input<ThyDividerStyle>('solid');\n\n /**\n * 分割线的颜色,默认 #eee,light 为 #ddd,primary 主色,success 成功色,warning 警告色,danger 危险色\n * @type 'lighter' | 'light' | 'danger' | 'primary' | 'success' | 'warning' | string\n */\n readonly thyColor = input<ThyDividerColor>('default');\n\n /**\n * 中间文本内容,支持文字和模板\n */\n readonly thyText = input<string | TemplateRef<HTMLElement>>();\n\n readonly templateContent: Signal<TemplateRef<HTMLElement>> = computed(() => {\n const text = this.thyText();\n if (text instanceof TemplateRef) {\n return text;\n }\n });\n\n readonly textContent: Signal<string> = computed(() => {\n const text = this.thyText();\n if (typeof text === 'string') {\n return text;\n }\n });\n\n /**\n * 中间内容的方向\n * @type left | right | center\n */\n readonly thyTextDirection = input<ThyDividerTextDirection>('center');\n\n /**\n * 颜色加深,已经废弃,请使用 thyColor=\"light\" 代替\n * @deprecated\n */\n readonly thyDeeper = input(false, { transform: coerceBooleanProperty });\n\n constructor() {\n effect(() => {\n this.setColor();\n });\n }\n\n ngOnInit(): void {}\n\n setColor() {\n this.hostRenderer.updateClass([`thy-divider-${this.thyColor()}`]);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { ThyDivider } from './divider.component';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyDivider],\n exports: [ThyDivider],\n providers: []\n})\nexport class ThyDividerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,16 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
- import { HostBinding, Directive, viewChild, input, ChangeDetectionStrategy, ViewEncapsulation, Component, inject, ElementRef, NgZone, ChangeDetectorRef, ViewContainerRef, computed, numberAttribute, EventEmitter, effect, Output, HostListener, DestroyRef, ContentChildren, NgModule } from '@angular/core';
2
+ import { HostBinding, Directive, viewChild, input, ChangeDetectionStrategy, ViewEncapsulation, Component, inject, ElementRef, NgZone, ChangeDetectorRef, ViewContainerRef, computed, numberAttribute, output, effect, HostListener, DestroyRef, ContentChildren, NgModule } from '@angular/core';
3
3
  import { NgTemplateOutlet, CommonModule } from '@angular/common';
4
4
  import { ThyPopover, ThyPopoverModule } from 'ngx-tethys/popover';
5
5
  import { FocusMonitor } from '@angular/cdk/a11y';
6
6
  import { Platform } from '@angular/cdk/platform';
7
7
  import { ThyOverlayDirectiveBase } from 'ngx-tethys/core';
8
- import { coerceBooleanProperty, isUndefinedOrNull, coerceArray, isFunction, isTemplateRef, helpers, getElementOffset } from 'ngx-tethys/util';
9
- import { coerceCssPixelValue } from '@angular/cdk/coercion';
8
+ import { coerceCssPixelValue, coerceBooleanProperty, isUndefinedOrNull, coerceArray, isFunction, isTemplateRef, helpers, getElementOffset } from 'ngx-tethys/util';
10
9
  import { useHostRenderer } from '@tethys/cdk/dom';
11
10
  import { fromEvent, startWith, mergeMap } from 'rxjs';
12
11
  import { debounceTime, shareReplay } from 'rxjs/operators';
13
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
12
+ import { takeUntilDestroyed, outputToObservable } from '@angular/core/rxjs-interop';
14
13
 
15
14
  const THY_DROPDOWN_DEFAULT_WIDTH = '240px';
16
15
  /**
@@ -193,8 +192,9 @@ class ThyDropdownDirective extends ThyOverlayDirectiveBase {
193
192
  this.thyPopoverOptions = input();
194
193
  /**
195
194
  * 弹出框的显示位置,会覆盖 thyPopoverOptions 中的 placement,`top` | `topLeft` | `topRight` | `bottom` | `bottomLeft` | `bottomRight` | `left` | `leftTop` | `leftBottom` | `right` | `rightTop` | `rightBottom`
195
+ * @default bottomLeft
196
196
  */
197
- this.thyPlacement = input('bottomLeft', { transform: (value) => value || 'bottomLeft' });
197
+ this.thyPlacement = input();
198
198
  /**
199
199
  * 点击 dropdown-menu 内部是否关闭弹出框,会覆盖 thyPopoverOptions 中的 insideClosable
200
200
  */
@@ -209,7 +209,7 @@ class ThyDropdownDirective extends ThyOverlayDirectiveBase {
209
209
  /**
210
210
  * 菜单 Active 事件,打开菜单返回 true,关闭返回 false
211
211
  */
212
- this.thyActiveChange = new EventEmitter();
212
+ this.thyActiveChange = output();
213
213
  // TODO: 以下为 overlay 基类中参数,之后需统一修改
214
214
  effect(() => {
215
215
  this.trigger = (this.thyTrigger() || 'click');
@@ -307,9 +307,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
307
307
  class: 'thy-dropdown'
308
308
  }
309
309
  }]
310
- }], ctorParameters: () => [], propDecorators: { thyActiveChange: [{
311
- type: Output
312
- }] } });
310
+ }], ctorParameters: () => [] });
313
311
 
314
312
  /**
315
313
  * 菜单项
@@ -590,9 +588,9 @@ class ThyDropdownActiveDirective {
590
588
  this.triggers.changes
591
589
  .pipe(startWith(this.triggers.toArray()), mergeMap((triggers) => {
592
590
  const result = triggers.map(item => {
593
- return item.thyActiveChange;
591
+ return outputToObservable(item.thyActiveChange);
594
592
  });
595
- this.trigger && result.push(this.trigger.thyActiveChange);
593
+ this.trigger && result.push(outputToObservable(this.trigger.thyActiveChange));
596
594
  return result;
597
595
  }), mergeMap(result => {
598
596
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-dropdown.mjs","sources":["../../../src/dropdown/dropdown-menu.component.ts","../../../src/dropdown/dropdown.directive.ts","../../../src/dropdown/dropdown-menu-item.directive.ts","../../../src/dropdown/dropdown-submenu.component.ts","../../../src/dropdown/dropdown-active.directive.ts","../../../src/dropdown/module.ts","../../../src/dropdown/ngx-tethys-dropdown.ts"],"sourcesContent":["import { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n HostBinding,\n TemplateRef,\n ViewEncapsulation,\n input,\n viewChild\n} from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyDropdownMenuDividerType = 'default' | 'crossing' | '';\n\nexport const THY_DROPDOWN_DEFAULT_WIDTH = '240px';\n\n/**\n * @private\n */\n@Directive()\nexport class ThyDropdownAbstractMenu {\n @HostBinding('class.thy-dropdown-menu') addDropdownMenuClass = true;\n}\n\n/**\n * 下拉菜单组件\n * @name thy-dropdown-menu\n * @order 20\n */\n@Component({\n selector: 'thy-dropdown-menu',\n template: `\n @if (thyImmediateRender()) {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n <ng-template #dropdownMenu>\n <div class=\"thy-dropdown-menu\" [style.width]=\"thyWidth()\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </ng-template>\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.thy-dropdown-menu]': 'thyImmediateRender()',\n '[style.width]': \"thyImmediateRender() ? thyWidth() : ''\"\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyDropdownMenuComponent {\n readonly templateRef = viewChild.required<TemplateRef<SafeAny>>('dropdownMenu');\n\n /**\n * 设置菜单宽度\n */\n readonly thyWidth = input(THY_DROPDOWN_DEFAULT_WIDTH, { transform: coerceCssPixelValue });\n\n /**\n * 是否直接渲染 dropdown-menu 中的元素\n */\n readonly thyImmediateRender = input(false, { transform: coerceBooleanProperty });\n\n constructor() {}\n}\n\n/**\n * 下拉菜单分组\n * @name thy-dropdown-menu-group\n * @order 50\n */\n@Component({\n selector: 'thy-dropdown-menu-group',\n template: `\n <div class=\"dropdown-menu-group-title\">{{ thyTitle() }}</div>\n <ng-content></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dropdown-menu-group'\n }\n})\nexport class ThyDropdownMenuGroup {\n /**\n * 分组标题\n */\n readonly thyTitle = input<string>();\n\n constructor() {}\n}\n\n/**\n * 下拉菜单分割线\n * @name thy-dropdown-menu-divider\n */\n@Component({\n selector: 'thy-dropdown-menu-divider',\n template: ` <!-- <div class=\"dropdown-menu-divider-title\">{{ title }}</div> --> `,\n host: {\n class: 'dropdown-menu-divider'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyDropdownMenuDivider {\n constructor() {}\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { ComponentType, OverlayRef } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n NgZone,\n OnInit,\n Output,\n Signal,\n TemplateRef,\n ViewContainerRef,\n computed,\n effect,\n inject,\n input,\n numberAttribute\n} from '@angular/core';\nimport { ComponentTypeOrTemplateRef, ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceArray, coerceBooleanProperty, helpers, isFunction, isTemplateRef, isUndefinedOrNull } from 'ngx-tethys/util';\nimport { ThyDropdownMenuComponent } from './dropdown-menu.component';\n\nexport type ThyDropdownTrigger = 'click' | 'hover';\n\ntype ThyDropdownMenu = ThyDropdownMenuComponent | TemplateRef<SafeAny> | ComponentType<SafeAny>;\n\n/**\n * thyDropdown 触发下拉菜单指令\n * @name thyDropdown\n * @order 10\n */\n@Directive({\n selector: `[thyDropdown]`,\n host: {\n class: 'thy-dropdown'\n }\n})\nexport class ThyDropdownDirective extends ThyOverlayDirectiveBase implements OnInit {\n private viewContainerRef = inject(ViewContainerRef);\n private popover = inject(ThyPopover);\n\n readonly menu: Signal<ThyDropdownMenu> = computed(() => {\n return (this.thyDropdownMenu() || this.thyDropdown())!;\n });\n\n private popoverRef: ThyPopoverRef<unknown>;\n\n popoverOpened = false;\n\n /**\n * Dropdown 下拉菜单,支持 thy-dropdown-menu 组件、TemplateRef 和自定义菜单组件\n */\n readonly thyDropdownMenu = input<ThyDropdownMenu>();\n\n /**\n * Dropdown 下拉菜单组件,和 thyDropdownMenu 参与相同,快捷传下拉菜单组件参数\n */\n readonly thyDropdown = input<ThyDropdownMenu>();\n\n /**\n * 下拉菜单触发方式\n * @type 'hover' | 'focus' | 'click' | string\n * @default click\n */\n readonly thyTrigger = input<ThyOverlayTrigger | string>('click');\n\n /**\n * 打开延迟毫秒\n */\n readonly thyShowDelay = input(100, { transform: numberAttribute });\n\n /**\n * 关闭延迟毫秒\n */\n readonly thyHideDelay = input(100, { transform: numberAttribute });\n\n /**\n * 弹出菜单后的当前触发元素的激活样式类\n */\n readonly thyActiveClass = input<string, string>('thy-dropdown-origin-active', {\n transform: (value: string) => value || 'thy-dropdown-origin-active'\n });\n\n /**\n * 弹出框的参数,底层使用 Popover 组件, 默认为`{ placement: \"bottomLeft\", insideClosable: true, minWidth: \"240px\", outsideClosable: true }`\n */\n readonly thyPopoverOptions =\n input<Pick<ThyPopoverConfig, 'placement' | 'height' | 'insideClosable' | 'minWidth' | 'outsideClosable'>>();\n\n /**\n * 弹出框的显示位置,会覆盖 thyPopoverOptions 中的 placement,`top` | `topLeft` | `topRight` | `bottom` | `bottomLeft` | `bottomRight` | `left` | `leftTop` | `leftBottom` | `right` | `rightTop` | `rightBottom`\n */\n readonly thyPlacement = input<ThyPlacement, ThyPlacement>('bottomLeft', { transform: (value: ThyPlacement) => value || 'bottomLeft' });\n\n /**\n * 点击 dropdown-menu 内部是否关闭弹出框,会覆盖 thyPopoverOptions 中的 insideClosable\n */\n readonly thyMenuInsideClosable = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 弹出框 overlay panel 的类名\n * @type string | string[]\n */\n readonly thyPanelClass = input<string | string[], string | string[]>(['thy-dropdown-pane'], {\n transform: (value: string | string[]) =>\n (!isUndefinedOrNull(value) && ['thy-dropdown-pane'].concat(coerceArray(value))) || ['thy-dropdown-pane']\n });\n\n /**\n * 菜单 Active 事件,打开菜单返回 true,关闭返回 false\n */\n @Output() thyActiveChange = new EventEmitter<boolean>();\n\n constructor() {\n const elementRef = inject(ElementRef);\n const platform = inject(Platform);\n const focusMonitor = inject(FocusMonitor);\n const ngZone = inject(NgZone);\n const changeDetectorRef = inject(ChangeDetectorRef);\n\n super(elementRef, platform, focusMonitor, ngZone, true, changeDetectorRef);\n\n // TODO: 以下为 overlay 基类中参数,之后需统一修改\n effect(() => {\n this.trigger = (this.thyTrigger() || 'click') as ThyOverlayTrigger;\n });\n effect(() => {\n this.hideDelay = this.thyHideDelay() ?? 100;\n });\n effect(() => {\n this.showDelay = this.thyShowDelay() ?? 100;\n });\n }\n\n ngOnInit() {\n this.initialize();\n }\n\n createOverlay(): OverlayRef {\n let componentTypeOrTemplateRef: ComponentTypeOrTemplateRef<SafeAny>;\n const menu = this.menu();\n if (menu && menu instanceof ThyDropdownMenuComponent) {\n componentTypeOrTemplateRef = menu?.templateRef();\n } else if (isFunction(menu) || isTemplateRef(menu)) {\n componentTypeOrTemplateRef = menu as ComponentTypeOrTemplateRef<SafeAny>;\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!componentTypeOrTemplateRef) {\n throw new Error(`thyDropdownMenu is required`);\n }\n }\n\n const { placement, height, insideClosable, outsideClosable, minWidth } = Object.assign(\n { placement: 'bottomLeft', insideClosable: true, outsideClosable: true },\n this.thyPopoverOptions()\n );\n const thyPlacement = this.thyPlacement();\n const thyMenuInsideClosable = this.thyMenuInsideClosable();\n const config: ThyPopoverConfig = {\n origin: this.elementRef.nativeElement,\n hasBackdrop: false,\n viewContainerRef: this.viewContainerRef,\n offset: 0,\n panelClass: this.thyPanelClass(),\n placement: thyPlacement ? thyPlacement : placement,\n height,\n outsideClosable,\n insideClosable: helpers.isUndefined(thyMenuInsideClosable) ? insideClosable : thyMenuInsideClosable,\n minWidth,\n originActiveClass: this.thyActiveClass()\n };\n this.popoverRef = this.popover.open(componentTypeOrTemplateRef, config);\n this.popoverRef.afterOpened().subscribe(() => {\n this.thyActiveChange.emit(true);\n });\n this.popoverRef.afterClosed().subscribe(() => {\n this.popoverOpened = false;\n this.thyActiveChange.emit(false);\n });\n\n return this.popoverRef.getOverlayRef();\n }\n\n show(delay: number = this.showDelay) {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n const overlayRef = this.createOverlay();\n this.overlayRef = overlayRef;\n this.popoverOpened = true;\n this.showTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n hide(delay: number = this.hideDelay) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef.close();\n }\n this.hideTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n}\n","import { Directive, ElementRef, HostBinding, HostListener, OnInit, computed, inject, input } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, shareReplay } from 'rxjs/operators';\n\nexport type ThyDropdownMenuItemType = 'default' | 'danger' | 'success' | '';\n\n/**\n * 菜单项\n * @name thyDropdownMenuItem\n * @order 30\n */\n@Directive({\n selector: '[thyDropdownMenuItem]',\n host: {\n class: 'dropdown-menu-item',\n '[class.dropdown-menu-item--disabled]': `thyDisabled()`,\n '[class.dropdown-menu-item--danger]': 'danger()',\n '[class.dropdown-menu-item--success]': 'success()'\n }\n})\nexport class ThyDropdownMenuItemDirective implements OnInit {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly danger = computed(() => this.thyType() === 'danger' || false);\n\n readonly success = computed(() => this.thyType() === 'success' || false);\n\n /**\n * 菜单项类型\n * @type 'default' | 'danger' | 'success' | ''\n */\n readonly thyType = input<ThyDropdownMenuItemType>('default');\n\n /**\n * 菜单项是否处于禁用状态\n */\n readonly thyDisabled = input(false, { transform: coerceBooleanProperty });\n\n @HostListener('click', ['$event'])\n onClick(event: Event): void {\n if (this.thyDisabled()) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n private hostRenderer = useHostRenderer();\n\n ngOnInit() {}\n\n updateClass(classes: string[]) {\n this.hostRenderer.updateClass(classes);\n }\n\n getElement() {\n return this.elementRef.nativeElement;\n }\n\n bindMouseenterEvent() {\n return fromEvent(this.elementRef.nativeElement, 'mouseenter').pipe(debounceTime(100), shareReplay());\n }\n}\n\n/**\n * 设置为菜单项图标\n * @name thyDropdownMenuItemIcon\n */\n@Directive({\n selector: '[thyDropdownMenuItemIcon]'\n})\nexport class ThyDropdownMenuItemIconDirective {\n @HostBinding('class.icon') className = true;\n\n constructor() {}\n}\n\n/**\n * 设置为菜单项名称\n * @name thyDropdownMenuItemName\n */\n@Directive({\n selector: '[thyDropdownMenuItemName]'\n})\nexport class ThyDropdownMenuItemNameDirective {\n @HostBinding('class.name') className = true;\n\n constructor() {}\n}\n\n/**\n * 设置为菜单项名称后的补充信息\n * @name thyDropdownMenuItemMeta\n */\n@Directive({\n selector: '[thyDropdownMenuItemMeta]'\n})\nexport class ThyDropdownMenuItemMetaDirective {\n @HostBinding('class.meta') className = true;\n\n constructor() {}\n}\n\n/**\n * 设置为菜单项的描述\n * @name thyDropdownMenuItemDesc\n */\n@Directive({\n selector: '[thyDropdownMenuItemDesc]'\n})\nexport class ThyDropdownMenuItemDescDirective {\n @HostBinding('class.desc') className = true;\n\n constructor() {}\n}\n\n/**\n * 菜单项的后置扩展图标,用于显示是否选中或者子菜单示意\n * @name thyDropdownMenuItemExtendIcon\n */\n@Directive({\n selector: '[thyDropdownMenuItemExtendIcon]'\n})\nexport class ThyDropdownMenuItemExtendIconDirective {\n @HostBinding('class.extend-icon') className = true;\n\n constructor() {}\n}\n\n/**\n * 菜单项是否激活指令\n * @name thyDropdownMenuItemActive\n * @order 70\n */\n@Directive({\n selector: '[thyDropdownMenuItemActive]',\n host: {\n '[class.active]': `thyDropdownMenuItemActive()`\n }\n})\nexport class ThyDropdownMenuItemActiveDirective {\n /**\n * 是否激活\n * @type boolean | string\n */\n readonly thyDropdownMenuItemActive = input(false, { transform: coerceBooleanProperty });\n\n constructor() {}\n}\n","import { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { getElementOffset } from 'ngx-tethys/util';\n\nimport { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, OnInit, inject, input } from '@angular/core';\n\nimport { ThyDropdownMenuItemDirective } from './dropdown-menu-item.directive';\n\nexport type ThyDropdownSubmenuDirection = 'left' | 'right' | 'auto';\n\ntype InnerDropdownSubmenuDirection = ThyDropdownSubmenuDirection | 'leftBottom' | 'rightBottom';\n\nconst SUBMENU_CLASS_PREFIX = 'dropdown-submenu';\n\n/**\n * 下拉子菜单\n * @name thy-dropdown-submenu,[thyDropdownSubmenu]\n * @order 40\n */\n@Component({\n selector: '[thyDropdownSubmenu],thy-dropdown-submenu',\n template: '<ng-content></ng-content>',\n host: {\n class: 'dropdown-submenu'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyDropdownSubmenu implements OnInit {\n private dropdownMenuItem = inject(ThyDropdownMenuItemDirective);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * 菜单方向\n * @type left | right | auto\n */\n readonly thyDirection = input<ThyDropdownSubmenuDirection, ThyDropdownSubmenuDirection>('right', {\n transform: (value: ThyDropdownSubmenuDirection) => {\n return value || 'right';\n }\n });\n\n ngOnInit(): void {\n let direction = this.thyDirection();\n this.updateClassByDirection(direction);\n this.dropdownMenuItem\n .bindMouseenterEvent()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.thyDirection() === 'auto') {\n const element = this.dropdownMenuItem.getElement();\n const offset = getElementOffset(element);\n if (document.documentElement.clientWidth < offset.left + offset.width + offset.width) {\n direction = 'left';\n } else {\n direction = 'right';\n }\n this.updateClassByDirection(direction);\n }\n this.updateVerticalDirection(direction);\n });\n }\n\n private updateClassByDirection(direction: InnerDropdownSubmenuDirection) {\n this.dropdownMenuItem.updateClass([`${SUBMENU_CLASS_PREFIX}-${direction}`]);\n }\n\n private updateVerticalDirection(direction: InnerDropdownSubmenuDirection) {\n const submenuItems = this.elementRef.nativeElement.querySelectorAll('.dropdown-menu-item');\n if (submenuItems.length) {\n let submenuItemHeight = 0;\n submenuItems.forEach(item => (submenuItemHeight += item.clientHeight));\n if (\n document.documentElement.clientHeight - this.dropdownMenuItem.getElement().getBoundingClientRect().bottom <\n submenuItemHeight\n ) {\n direction = direction === 'left' ? 'leftBottom' : 'rightBottom';\n this.updateClassByDirection(direction);\n } else {\n this.updateClassByDirection(direction);\n }\n }\n }\n}\n","import { AfterContentInit, ContentChildren, Directive, OnInit, QueryList, Signal, computed, inject, input } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { coerceArray } from 'ngx-tethys/util';\nimport { mergeMap, startWith } from 'rxjs';\nimport { ThyDropdownDirective } from './dropdown.directive';\n\n/**\n * 跟踪 Dropdown 菜单是否被打开处于激活状态,允许指定一个或多个CSS类,以便在菜单打开状态时添加到元素中\n * @name thyDropdownActive\n * @order 60\n */\n@Directive({\n selector: '[thyDropdownActive]'\n})\nexport class ThyDropdownActiveDirective implements OnInit, AfterContentInit {\n private trigger = inject(ThyDropdownDirective, { optional: true });\n\n readonly classes: Signal<string[]> = computed(() => {\n return coerceArray(this.thyDropdownActive()).filter(c => !!c);\n });\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 设置 Active 样式类,可以是一个或多个CSS类\n * @type string[] | string\n */\n readonly thyDropdownActive = input<string[] | string>();\n\n /**\n * @private\n */\n @ContentChildren(ThyDropdownDirective, { descendants: true }) triggers!: QueryList<ThyDropdownDirective>;\n\n ngOnInit(): void {}\n\n ngAfterContentInit(): void {\n this.triggers.changes\n .pipe(\n startWith(this.triggers.toArray()),\n mergeMap((triggers: ThyDropdownDirective[]) => {\n const result = triggers.map(item => {\n return item.thyActiveChange;\n });\n this.trigger && result.push(this.trigger.thyActiveChange);\n return result;\n }),\n mergeMap(result => {\n return result;\n })\n )\n .subscribe(active => {\n this.update(active);\n });\n }\n\n update(active: boolean) {\n this.classes().forEach(className => {\n if (active) {\n this.hostRenderer.addClass(className);\n } else {\n this.hostRenderer.removeClass(className);\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyDropdownDirective } from './dropdown.directive';\nimport { ThyDropdownMenuComponent, ThyDropdownMenuDivider, ThyDropdownMenuGroup } from './dropdown-menu.component';\nimport {\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyDropdownMenuItemMetaDirective,\n ThyDropdownMenuItemDescDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyDropdownMenuItemActiveDirective\n} from './dropdown-menu-item.directive';\nimport { ThyDropdownSubmenu } from './dropdown-submenu.component';\nimport { ThyDropdownActiveDirective } from './dropdown-active.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n ThyPopoverModule,\n ThyDropdownDirective,\n ThyDropdownActiveDirective,\n ThyDropdownMenuComponent,\n ThyDropdownSubmenu,\n ThyDropdownMenuGroup,\n ThyDropdownMenuDivider,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyDropdownMenuItemMetaDirective,\n ThyDropdownMenuItemDescDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyDropdownMenuItemActiveDirective\n ],\n exports: [\n ThyDropdownDirective,\n ThyDropdownActiveDirective,\n ThyDropdownMenuComponent,\n ThyDropdownSubmenu,\n ThyDropdownMenuGroup,\n ThyDropdownMenuDivider,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyDropdownMenuItemMetaDirective,\n ThyDropdownMenuItemDescDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyDropdownMenuItemActiveDirective\n ]\n})\nexport class ThyDropdownModule {}\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-dropdown.mjs","sources":["../../../src/dropdown/dropdown-menu.component.ts","../../../src/dropdown/dropdown.directive.ts","../../../src/dropdown/dropdown-menu-item.directive.ts","../../../src/dropdown/dropdown-submenu.component.ts","../../../src/dropdown/dropdown-active.directive.ts","../../../src/dropdown/module.ts","../../../src/dropdown/ngx-tethys-dropdown.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n HostBinding,\n TemplateRef,\n ViewEncapsulation,\n input,\n viewChild\n} from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceBooleanProperty, coerceCssPixelValue } from 'ngx-tethys/util';\n\nexport type ThyDropdownMenuDividerType = 'default' | 'crossing' | '';\n\nexport const THY_DROPDOWN_DEFAULT_WIDTH = '240px';\n\n/**\n * @private\n */\n@Directive()\nexport class ThyDropdownAbstractMenu {\n @HostBinding('class.thy-dropdown-menu') addDropdownMenuClass = true;\n}\n\n/**\n * 下拉菜单组件\n * @name thy-dropdown-menu\n * @order 20\n */\n@Component({\n selector: 'thy-dropdown-menu',\n template: `\n @if (thyImmediateRender()) {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n <ng-template #dropdownMenu>\n <div class=\"thy-dropdown-menu\" [style.width]=\"thyWidth()\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </ng-template>\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.thy-dropdown-menu]': 'thyImmediateRender()',\n '[style.width]': \"thyImmediateRender() ? thyWidth() : ''\"\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyDropdownMenuComponent {\n readonly templateRef = viewChild.required<TemplateRef<SafeAny>>('dropdownMenu');\n\n /**\n * 设置菜单宽度\n */\n readonly thyWidth = input(THY_DROPDOWN_DEFAULT_WIDTH, { transform: coerceCssPixelValue });\n\n /**\n * 是否直接渲染 dropdown-menu 中的元素\n */\n readonly thyImmediateRender = input(false, { transform: coerceBooleanProperty });\n\n constructor() {}\n}\n\n/**\n * 下拉菜单分组\n * @name thy-dropdown-menu-group\n * @order 50\n */\n@Component({\n selector: 'thy-dropdown-menu-group',\n template: `\n <div class=\"dropdown-menu-group-title\">{{ thyTitle() }}</div>\n <ng-content></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dropdown-menu-group'\n }\n})\nexport class ThyDropdownMenuGroup {\n /**\n * 分组标题\n */\n readonly thyTitle = input<string>();\n\n constructor() {}\n}\n\n/**\n * 下拉菜单分割线\n * @name thy-dropdown-menu-divider\n */\n@Component({\n selector: 'thy-dropdown-menu-divider',\n template: ` <!-- <div class=\"dropdown-menu-divider-title\">{{ title }}</div> --> `,\n host: {\n class: 'dropdown-menu-divider'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyDropdownMenuDivider {\n constructor() {}\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { ComponentType, OverlayRef } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n NgZone,\n OnInit,\n Signal,\n TemplateRef,\n ViewContainerRef,\n computed,\n effect,\n inject,\n input,\n numberAttribute,\n output\n} from '@angular/core';\nimport { ComponentTypeOrTemplateRef, ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceArray, coerceBooleanProperty, helpers, isFunction, isTemplateRef, isUndefinedOrNull } from 'ngx-tethys/util';\nimport { ThyDropdownMenuComponent } from './dropdown-menu.component';\n\nexport type ThyDropdownTrigger = 'click' | 'hover';\n\ntype ThyDropdownMenu = ThyDropdownMenuComponent | TemplateRef<SafeAny> | ComponentType<SafeAny>;\n\n/**\n * thyDropdown 触发下拉菜单指令\n * @name thyDropdown\n * @order 10\n */\n@Directive({\n selector: `[thyDropdown]`,\n host: {\n class: 'thy-dropdown'\n }\n})\nexport class ThyDropdownDirective extends ThyOverlayDirectiveBase implements OnInit {\n private viewContainerRef = inject(ViewContainerRef);\n private popover = inject(ThyPopover);\n\n readonly menu: Signal<ThyDropdownMenu> = computed(() => {\n return (this.thyDropdownMenu() || this.thyDropdown())!;\n });\n\n private popoverRef: ThyPopoverRef<unknown>;\n\n popoverOpened = false;\n\n /**\n * Dropdown 下拉菜单,支持 thy-dropdown-menu 组件、TemplateRef 和自定义菜单组件\n */\n readonly thyDropdownMenu = input<ThyDropdownMenu>();\n\n /**\n * Dropdown 下拉菜单组件,和 thyDropdownMenu 参与相同,快捷传下拉菜单组件参数\n */\n readonly thyDropdown = input<ThyDropdownMenu>();\n\n /**\n * 下拉菜单触发方式\n * @type 'hover' | 'focus' | 'click' | string\n * @default click\n */\n readonly thyTrigger = input<ThyOverlayTrigger | string>('click');\n\n /**\n * 打开延迟毫秒\n */\n readonly thyShowDelay = input(100, { transform: numberAttribute });\n\n /**\n * 关闭延迟毫秒\n */\n readonly thyHideDelay = input(100, { transform: numberAttribute });\n\n /**\n * 弹出菜单后的当前触发元素的激活样式类\n */\n readonly thyActiveClass = input<string, string>('thy-dropdown-origin-active', {\n transform: (value: string) => value || 'thy-dropdown-origin-active'\n });\n\n /**\n * 弹出框的参数,底层使用 Popover 组件, 默认为`{ placement: \"bottomLeft\", insideClosable: true, minWidth: \"240px\", outsideClosable: true }`\n */\n readonly thyPopoverOptions =\n input<Pick<ThyPopoverConfig, 'placement' | 'height' | 'insideClosable' | 'minWidth' | 'outsideClosable'>>();\n\n /**\n * 弹出框的显示位置,会覆盖 thyPopoverOptions 中的 placement,`top` | `topLeft` | `topRight` | `bottom` | `bottomLeft` | `bottomRight` | `left` | `leftTop` | `leftBottom` | `right` | `rightTop` | `rightBottom`\n * @default bottomLeft\n */\n readonly thyPlacement = input<ThyPlacement>();\n\n /**\n * 点击 dropdown-menu 内部是否关闭弹出框,会覆盖 thyPopoverOptions 中的 insideClosable\n */\n readonly thyMenuInsideClosable = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 弹出框 overlay panel 的类名\n * @type string | string[]\n */\n readonly thyPanelClass = input<string | string[], string | string[]>(['thy-dropdown-pane'], {\n transform: (value: string | string[]) =>\n (!isUndefinedOrNull(value) && ['thy-dropdown-pane'].concat(coerceArray(value))) || ['thy-dropdown-pane']\n });\n\n /**\n * 菜单 Active 事件,打开菜单返回 true,关闭返回 false\n */\n readonly thyActiveChange = output<boolean>();\n\n constructor() {\n const elementRef = inject(ElementRef);\n const platform = inject(Platform);\n const focusMonitor = inject(FocusMonitor);\n const ngZone = inject(NgZone);\n const changeDetectorRef = inject(ChangeDetectorRef);\n\n super(elementRef, platform, focusMonitor, ngZone, true, changeDetectorRef);\n\n // TODO: 以下为 overlay 基类中参数,之后需统一修改\n effect(() => {\n this.trigger = (this.thyTrigger() || 'click') as ThyOverlayTrigger;\n });\n effect(() => {\n this.hideDelay = this.thyHideDelay() ?? 100;\n });\n effect(() => {\n this.showDelay = this.thyShowDelay() ?? 100;\n });\n }\n\n ngOnInit() {\n this.initialize();\n }\n\n createOverlay(): OverlayRef {\n let componentTypeOrTemplateRef: ComponentTypeOrTemplateRef<SafeAny>;\n const menu = this.menu();\n if (menu && menu instanceof ThyDropdownMenuComponent) {\n componentTypeOrTemplateRef = menu?.templateRef();\n } else if (isFunction(menu) || isTemplateRef(menu)) {\n componentTypeOrTemplateRef = menu as ComponentTypeOrTemplateRef<SafeAny>;\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!componentTypeOrTemplateRef) {\n throw new Error(`thyDropdownMenu is required`);\n }\n }\n\n const { placement, height, insideClosable, outsideClosable, minWidth } = Object.assign(\n { placement: 'bottomLeft', insideClosable: true, outsideClosable: true },\n this.thyPopoverOptions()\n );\n const thyPlacement = this.thyPlacement();\n const thyMenuInsideClosable = this.thyMenuInsideClosable();\n const config: ThyPopoverConfig = {\n origin: this.elementRef.nativeElement,\n hasBackdrop: false,\n viewContainerRef: this.viewContainerRef,\n offset: 0,\n panelClass: this.thyPanelClass(),\n placement: thyPlacement ? thyPlacement : placement,\n height,\n outsideClosable,\n insideClosable: helpers.isUndefined(thyMenuInsideClosable) ? insideClosable : thyMenuInsideClosable,\n minWidth,\n originActiveClass: this.thyActiveClass()\n };\n this.popoverRef = this.popover.open(componentTypeOrTemplateRef, config);\n this.popoverRef.afterOpened().subscribe(() => {\n this.thyActiveChange.emit(true);\n });\n this.popoverRef.afterClosed().subscribe(() => {\n this.popoverOpened = false;\n this.thyActiveChange.emit(false);\n });\n\n return this.popoverRef.getOverlayRef();\n }\n\n show(delay: number = this.showDelay) {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n const overlayRef = this.createOverlay();\n this.overlayRef = overlayRef;\n this.popoverOpened = true;\n this.showTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n hide(delay: number = this.hideDelay) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef.close();\n }\n this.hideTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n}\n","import { Directive, ElementRef, HostBinding, HostListener, OnInit, computed, inject, input } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, shareReplay } from 'rxjs/operators';\n\nexport type ThyDropdownMenuItemType = 'default' | 'danger' | 'success' | '';\n\n/**\n * 菜单项\n * @name thyDropdownMenuItem\n * @order 30\n */\n@Directive({\n selector: '[thyDropdownMenuItem]',\n host: {\n class: 'dropdown-menu-item',\n '[class.dropdown-menu-item--disabled]': `thyDisabled()`,\n '[class.dropdown-menu-item--danger]': 'danger()',\n '[class.dropdown-menu-item--success]': 'success()'\n }\n})\nexport class ThyDropdownMenuItemDirective implements OnInit {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly danger = computed(() => this.thyType() === 'danger' || false);\n\n readonly success = computed(() => this.thyType() === 'success' || false);\n\n /**\n * 菜单项类型\n * @type 'default' | 'danger' | 'success' | ''\n */\n readonly thyType = input<ThyDropdownMenuItemType>('default');\n\n /**\n * 菜单项是否处于禁用状态\n */\n readonly thyDisabled = input(false, { transform: coerceBooleanProperty });\n\n @HostListener('click', ['$event'])\n onClick(event: Event): void {\n if (this.thyDisabled()) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n private hostRenderer = useHostRenderer();\n\n ngOnInit() {}\n\n updateClass(classes: string[]) {\n this.hostRenderer.updateClass(classes);\n }\n\n getElement() {\n return this.elementRef.nativeElement;\n }\n\n bindMouseenterEvent() {\n return fromEvent(this.elementRef.nativeElement, 'mouseenter').pipe(debounceTime(100), shareReplay());\n }\n}\n\n/**\n * 设置为菜单项图标\n * @name thyDropdownMenuItemIcon\n */\n@Directive({\n selector: '[thyDropdownMenuItemIcon]'\n})\nexport class ThyDropdownMenuItemIconDirective {\n @HostBinding('class.icon') className = true;\n\n constructor() {}\n}\n\n/**\n * 设置为菜单项名称\n * @name thyDropdownMenuItemName\n */\n@Directive({\n selector: '[thyDropdownMenuItemName]'\n})\nexport class ThyDropdownMenuItemNameDirective {\n @HostBinding('class.name') className = true;\n\n constructor() {}\n}\n\n/**\n * 设置为菜单项名称后的补充信息\n * @name thyDropdownMenuItemMeta\n */\n@Directive({\n selector: '[thyDropdownMenuItemMeta]'\n})\nexport class ThyDropdownMenuItemMetaDirective {\n @HostBinding('class.meta') className = true;\n\n constructor() {}\n}\n\n/**\n * 设置为菜单项的描述\n * @name thyDropdownMenuItemDesc\n */\n@Directive({\n selector: '[thyDropdownMenuItemDesc]'\n})\nexport class ThyDropdownMenuItemDescDirective {\n @HostBinding('class.desc') className = true;\n\n constructor() {}\n}\n\n/**\n * 菜单项的后置扩展图标,用于显示是否选中或者子菜单示意\n * @name thyDropdownMenuItemExtendIcon\n */\n@Directive({\n selector: '[thyDropdownMenuItemExtendIcon]'\n})\nexport class ThyDropdownMenuItemExtendIconDirective {\n @HostBinding('class.extend-icon') className = true;\n\n constructor() {}\n}\n\n/**\n * 菜单项是否激活指令\n * @name thyDropdownMenuItemActive\n * @order 70\n */\n@Directive({\n selector: '[thyDropdownMenuItemActive]',\n host: {\n '[class.active]': `thyDropdownMenuItemActive()`\n }\n})\nexport class ThyDropdownMenuItemActiveDirective {\n /**\n * 是否激活\n * @type boolean | string\n */\n readonly thyDropdownMenuItemActive = input(false, { transform: coerceBooleanProperty });\n\n constructor() {}\n}\n","import { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { getElementOffset } from 'ngx-tethys/util';\n\nimport { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, OnInit, inject, input } from '@angular/core';\n\nimport { ThyDropdownMenuItemDirective } from './dropdown-menu-item.directive';\n\nexport type ThyDropdownSubmenuDirection = 'left' | 'right' | 'auto';\n\ntype InnerDropdownSubmenuDirection = ThyDropdownSubmenuDirection | 'leftBottom' | 'rightBottom';\n\nconst SUBMENU_CLASS_PREFIX = 'dropdown-submenu';\n\n/**\n * 下拉子菜单\n * @name thy-dropdown-submenu,[thyDropdownSubmenu]\n * @order 40\n */\n@Component({\n selector: '[thyDropdownSubmenu],thy-dropdown-submenu',\n template: '<ng-content></ng-content>',\n host: {\n class: 'dropdown-submenu'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyDropdownSubmenu implements OnInit {\n private dropdownMenuItem = inject(ThyDropdownMenuItemDirective);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * 菜单方向\n * @type left | right | auto\n */\n readonly thyDirection = input<ThyDropdownSubmenuDirection, ThyDropdownSubmenuDirection>('right', {\n transform: (value: ThyDropdownSubmenuDirection) => {\n return value || 'right';\n }\n });\n\n ngOnInit(): void {\n let direction = this.thyDirection();\n this.updateClassByDirection(direction);\n this.dropdownMenuItem\n .bindMouseenterEvent()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.thyDirection() === 'auto') {\n const element = this.dropdownMenuItem.getElement();\n const offset = getElementOffset(element);\n if (document.documentElement.clientWidth < offset.left + offset.width + offset.width) {\n direction = 'left';\n } else {\n direction = 'right';\n }\n this.updateClassByDirection(direction);\n }\n this.updateVerticalDirection(direction);\n });\n }\n\n private updateClassByDirection(direction: InnerDropdownSubmenuDirection) {\n this.dropdownMenuItem.updateClass([`${SUBMENU_CLASS_PREFIX}-${direction}`]);\n }\n\n private updateVerticalDirection(direction: InnerDropdownSubmenuDirection) {\n const submenuItems = this.elementRef.nativeElement.querySelectorAll('.dropdown-menu-item');\n if (submenuItems.length) {\n let submenuItemHeight = 0;\n submenuItems.forEach(item => (submenuItemHeight += item.clientHeight));\n if (\n document.documentElement.clientHeight - this.dropdownMenuItem.getElement().getBoundingClientRect().bottom <\n submenuItemHeight\n ) {\n direction = direction === 'left' ? 'leftBottom' : 'rightBottom';\n this.updateClassByDirection(direction);\n } else {\n this.updateClassByDirection(direction);\n }\n }\n }\n}\n","import { AfterContentInit, ContentChildren, Directive, OnInit, QueryList, Signal, computed, inject, input } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { coerceArray } from 'ngx-tethys/util';\nimport { mergeMap, startWith } from 'rxjs';\nimport { ThyDropdownDirective } from './dropdown.directive';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\n\n/**\n * 跟踪 Dropdown 菜单是否被打开处于激活状态,允许指定一个或多个CSS类,以便在菜单打开状态时添加到元素中\n * @name thyDropdownActive\n * @order 60\n */\n@Directive({\n selector: '[thyDropdownActive]'\n})\nexport class ThyDropdownActiveDirective implements OnInit, AfterContentInit {\n private trigger = inject(ThyDropdownDirective, { optional: true });\n\n readonly classes: Signal<string[]> = computed(() => {\n return coerceArray(this.thyDropdownActive()).filter(c => !!c);\n });\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 设置 Active 样式类,可以是一个或多个CSS类\n * @type string[] | string\n */\n readonly thyDropdownActive = input<string[] | string>();\n\n /**\n * @private\n */\n @ContentChildren(ThyDropdownDirective, { descendants: true }) triggers!: QueryList<ThyDropdownDirective>;\n\n ngOnInit(): void {}\n\n ngAfterContentInit(): void {\n this.triggers.changes\n .pipe(\n startWith(this.triggers.toArray()),\n mergeMap((triggers: ThyDropdownDirective[]) => {\n const result = triggers.map(item => {\n return outputToObservable(item.thyActiveChange);\n });\n this.trigger && result.push(outputToObservable(this.trigger.thyActiveChange));\n return result;\n }),\n mergeMap(result => {\n return result;\n })\n )\n .subscribe(active => {\n this.update(active);\n });\n }\n\n update(active: boolean) {\n this.classes().forEach(className => {\n if (active) {\n this.hostRenderer.addClass(className);\n } else {\n this.hostRenderer.removeClass(className);\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyDropdownDirective } from './dropdown.directive';\nimport { ThyDropdownMenuComponent, ThyDropdownMenuDivider, ThyDropdownMenuGroup } from './dropdown-menu.component';\nimport {\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyDropdownMenuItemMetaDirective,\n ThyDropdownMenuItemDescDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyDropdownMenuItemActiveDirective\n} from './dropdown-menu-item.directive';\nimport { ThyDropdownSubmenu } from './dropdown-submenu.component';\nimport { ThyDropdownActiveDirective } from './dropdown-active.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n ThyPopoverModule,\n ThyDropdownDirective,\n ThyDropdownActiveDirective,\n ThyDropdownMenuComponent,\n ThyDropdownSubmenu,\n ThyDropdownMenuGroup,\n ThyDropdownMenuDivider,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyDropdownMenuItemMetaDirective,\n ThyDropdownMenuItemDescDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyDropdownMenuItemActiveDirective\n ],\n exports: [\n ThyDropdownDirective,\n ThyDropdownActiveDirective,\n ThyDropdownMenuComponent,\n ThyDropdownSubmenu,\n ThyDropdownMenuGroup,\n ThyDropdownMenuDivider,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyDropdownMenuItemMetaDirective,\n ThyDropdownMenuItemDescDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyDropdownMenuItemActiveDirective\n ]\n})\nexport class ThyDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
2
2
  import { ThySharedModule } from 'ngx-tethys/shared';
3
3
  import { NgClass, NgTemplateOutlet, CommonModule } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
- import { Injectable, inject, ElementRef, NgZone, input, contentChild, computed, effect, Component, NgModule } from '@angular/core';
5
+ import { Injectable, inject, ElementRef, NgZone, input, contentChild, computed, linkedSignal, effect, Component, NgModule } from '@angular/core';
6
6
  import { useHostRenderer } from '@tethys/cdk/dom';
7
7
  import { ThyTranslate } from 'ngx-tethys/core';
8
8
  import { DomSanitizer } from '@angular/platform-browser';
@@ -259,6 +259,9 @@ const sizeMap = {
259
259
  * @order 10
260
260
  */
261
261
  class ThyEmpty {
262
+ setMessage(text) {
263
+ this.displayText.set(text);
264
+ }
262
265
  constructor() {
263
266
  this.thyTranslate = inject(ThyTranslate);
264
267
  this.thyEmptyConfig = inject(ThyEmptyConfig);
@@ -334,7 +337,7 @@ class ThyEmpty {
334
337
  let presetSvg = this.thyIconName() ? PRESET_SVG[this.thyIconName()] : PRESET_SVG.default;
335
338
  return presetSvg ? this.sanitizer.bypassSecurityTrustHtml(presetSvg) : '';
336
339
  });
337
- this.displayText = computed(() => {
340
+ this.displayText = linkedSignal(() => {
338
341
  if (this.thyMessage()) {
339
342
  return this.thyMessage();
340
343
  }