ngx-tethys 20.0.1 → 20.0.2

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 (239) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/action/index.d.ts +3 -3
  3. package/affix/index.d.ts +1 -1
  4. package/alert/index.d.ts +3 -3
  5. package/anchor/index.d.ts +3 -3
  6. package/arrow-switcher/index.d.ts +6 -6
  7. package/autocomplete/index.d.ts +7 -7
  8. package/avatar/index.d.ts +9 -9
  9. package/back-top/index.d.ts +3 -3
  10. package/badge/index.d.ts +6 -6
  11. package/breadcrumb/index.d.ts +7 -7
  12. package/button/index.d.ts +19 -19
  13. package/calendar/index.d.ts +8 -8
  14. package/card/index.d.ts +6 -6
  15. package/carousel/index.d.ts +4 -4
  16. package/cascader/index.d.ts +24 -24
  17. package/collapse/index.d.ts +4 -4
  18. package/color-picker/index.d.ts +16 -16
  19. package/comment/index.d.ts +3 -3
  20. package/copy/index.d.ts +2 -2
  21. package/core/index.d.ts +22 -22
  22. package/date-picker/index.d.ts +111 -111
  23. package/date-range/index.d.ts +5 -5
  24. package/dialog/index.d.ts +18 -18
  25. package/divider/index.d.ts +3 -3
  26. package/drag-drop/index.d.ts +7 -7
  27. package/dropdown/index.d.ts +10 -10
  28. package/empty/index.d.ts +12 -12
  29. package/fesm2022/ngx-tethys-action.mjs +14 -12
  30. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  31. package/fesm2022/ngx-tethys-affix.mjs +7 -7
  32. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-alert.mjs +10 -10
  34. package/fesm2022/ngx-tethys-anchor.mjs +11 -11
  35. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  36. package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
  37. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  38. package/fesm2022/ngx-tethys-autocomplete.mjs +19 -18
  39. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  40. package/fesm2022/ngx-tethys-avatar.mjs +23 -22
  41. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  42. package/fesm2022/ngx-tethys-back-top.mjs +7 -7
  43. package/fesm2022/ngx-tethys-badge.mjs +7 -7
  44. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
  46. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-button.mjs +16 -16
  48. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-calendar.mjs +16 -16
  50. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-card.mjs +13 -13
  52. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  53. package/fesm2022/ngx-tethys-carousel.mjs +15 -15
  54. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-cascader.mjs +41 -34
  56. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
  58. package/fesm2022/ngx-tethys-collapse.mjs +10 -10
  59. package/fesm2022/ngx-tethys-color-picker.mjs +65 -57
  60. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-comment.mjs +13 -13
  62. package/fesm2022/ngx-tethys-copy.mjs +10 -10
  63. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  64. package/fesm2022/ngx-tethys-core.mjs +30 -25
  65. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  66. package/fesm2022/ngx-tethys-date-picker.mjs +184 -174
  67. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  68. package/fesm2022/ngx-tethys-date-range.mjs +16 -16
  69. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  70. package/fesm2022/ngx-tethys-dialog.mjs +24 -24
  71. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  72. package/fesm2022/ngx-tethys-divider.mjs +7 -7
  73. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  74. package/fesm2022/ngx-tethys-dot.mjs +7 -7
  75. package/fesm2022/ngx-tethys-drag-drop.mjs +24 -24
  76. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  77. package/fesm2022/ngx-tethys-dropdown.mjs +48 -47
  78. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-empty.mjs +13 -13
  80. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
  82. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  83. package/fesm2022/ngx-tethys-form.mjs +64 -61
  84. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  85. package/fesm2022/ngx-tethys-fullscreen.mjs +18 -15
  86. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  87. package/fesm2022/ngx-tethys-grid.mjs +34 -33
  88. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  89. package/fesm2022/ngx-tethys-guider.mjs +25 -24
  90. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  91. package/fesm2022/ngx-tethys-i18n.mjs +3 -3
  92. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  93. package/fesm2022/ngx-tethys-icon.mjs +15 -13
  94. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  95. package/fesm2022/ngx-tethys-image.mjs +31 -29
  96. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  97. package/fesm2022/ngx-tethys-input-number.mjs +17 -10
  98. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  99. package/fesm2022/ngx-tethys-input.mjs +28 -27
  100. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  101. package/fesm2022/ngx-tethys-layout.mjs +63 -63
  102. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  103. package/fesm2022/ngx-tethys-list.mjs +21 -18
  104. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  105. package/fesm2022/ngx-tethys-loading.mjs +7 -7
  106. package/fesm2022/ngx-tethys-mention.mjs +35 -31
  107. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  108. package/fesm2022/ngx-tethys-menu.mjs +26 -26
  109. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  110. package/fesm2022/ngx-tethys-message.mjs +24 -24
  111. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  112. package/fesm2022/ngx-tethys-nav.mjs +27 -27
  113. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  114. package/fesm2022/ngx-tethys-notify.mjs +20 -20
  115. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  116. package/fesm2022/ngx-tethys-pagination.mjs +18 -18
  117. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  118. package/fesm2022/ngx-tethys-popover.mjs +22 -21
  119. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  120. package/fesm2022/ngx-tethys-progress.mjs +17 -17
  121. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  122. package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
  123. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  124. package/fesm2022/ngx-tethys-property.mjs +12 -11
  125. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  126. package/fesm2022/ngx-tethys-radio.mjs +17 -17
  127. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  128. package/fesm2022/ngx-tethys-rate.mjs +12 -12
  129. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  130. package/fesm2022/ngx-tethys-resizable.mjs +21 -18
  131. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  132. package/fesm2022/ngx-tethys-result.mjs +11 -11
  133. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  134. package/fesm2022/ngx-tethys-segment.mjs +19 -16
  135. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  136. package/fesm2022/ngx-tethys-select.mjs +60 -38
  137. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  138. package/fesm2022/ngx-tethys-shared.mjs +82 -79
  139. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  140. package/fesm2022/ngx-tethys-skeleton.mjs +32 -32
  141. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  142. package/fesm2022/ngx-tethys-slide.mjs +37 -36
  143. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  144. package/fesm2022/ngx-tethys-slider.mjs +11 -11
  145. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  146. package/fesm2022/ngx-tethys-space.mjs +10 -10
  147. package/fesm2022/ngx-tethys-statistic.mjs +7 -7
  148. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  149. package/fesm2022/ngx-tethys-stepper.mjs +22 -22
  150. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  151. package/fesm2022/ngx-tethys-strength.mjs +7 -7
  152. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  153. package/fesm2022/ngx-tethys-switch.mjs +7 -7
  154. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  155. package/fesm2022/ngx-tethys-table.mjs +28 -28
  156. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  157. package/fesm2022/ngx-tethys-tabs.mjs +13 -13
  158. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  159. package/fesm2022/ngx-tethys-tag.mjs +11 -11
  160. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  161. package/fesm2022/ngx-tethys-testing.mjs +1 -1
  162. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  163. package/fesm2022/ngx-tethys-time-picker.mjs +22 -22
  164. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  165. package/fesm2022/ngx-tethys-timeline.mjs +14 -14
  166. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  167. package/fesm2022/ngx-tethys-tooltip.mjs +19 -16
  168. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  169. package/fesm2022/ngx-tethys-transfer.mjs +15 -15
  170. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  171. package/fesm2022/ngx-tethys-tree-select.mjs +17 -17
  172. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  173. package/fesm2022/ngx-tethys-tree.mjs +50 -43
  174. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  175. package/fesm2022/ngx-tethys-typography.mjs +16 -16
  176. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  177. package/fesm2022/ngx-tethys-upload.mjs +26 -25
  178. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  179. package/fesm2022/ngx-tethys-util.mjs +11 -5
  180. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  181. package/fesm2022/ngx-tethys-vote.mjs +7 -7
  182. package/fesm2022/ngx-tethys-watermark.mjs +18 -15
  183. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys.mjs +1 -1
  185. package/fesm2022/ngx-tethys.mjs.map +1 -1
  186. package/flexible-text/index.d.ts +5 -5
  187. package/form/index.d.ts +26 -22
  188. package/fullscreen/index.d.ts +4 -4
  189. package/grid/index.d.ts +12 -12
  190. package/guider/index.d.ts +10 -10
  191. package/i18n/index.d.ts +1 -1
  192. package/icon/index.d.ts +3 -3
  193. package/image/index.d.ts +12 -12
  194. package/input/index.d.ts +22 -22
  195. package/input-number/index.d.ts +4 -4
  196. package/layout/index.d.ts +16 -16
  197. package/list/index.d.ts +16 -15
  198. package/mention/index.d.ts +4 -4
  199. package/menu/index.d.ts +7 -7
  200. package/message/index.d.ts +5 -5
  201. package/nav/index.d.ts +12 -12
  202. package/notify/index.d.ts +1 -1
  203. package/package.json +1 -1
  204. package/pagination/index.d.ts +21 -17
  205. package/popover/index.d.ts +8 -8
  206. package/progress/index.d.ts +18 -18
  207. package/property/index.d.ts +6 -6
  208. package/property-operation/index.d.ts +3 -3
  209. package/radio/index.d.ts +6 -6
  210. package/rate/index.d.ts +5 -5
  211. package/resizable/index.d.ts +2 -2
  212. package/result/index.d.ts +8 -8
  213. package/schematics/testing/test-workspace.js +1 -0
  214. package/schematics/version.d.ts +1 -1
  215. package/schematics/version.js +1 -1
  216. package/segment/index.d.ts +9 -9
  217. package/select/index.d.ts +21 -21
  218. package/shared/index.d.ts +29 -29
  219. package/skeleton/index.d.ts +52 -52
  220. package/slide/index.d.ts +5 -5
  221. package/slider/index.d.ts +6 -6
  222. package/space/index.d.ts +1 -1
  223. package/statistic/index.d.ts +18 -18
  224. package/stepper/index.d.ts +8 -8
  225. package/switch/index.d.ts +2 -2
  226. package/table/index.d.ts +24 -24
  227. package/tabs/index.d.ts +6 -6
  228. package/testing/index.d.ts +1 -1
  229. package/time-picker/index.d.ts +21 -21
  230. package/timeline/index.d.ts +8 -8
  231. package/tooltip/index.d.ts +12 -12
  232. package/transfer/index.d.ts +16 -16
  233. package/tree/index.d.ts +28 -28
  234. package/tree-select/index.d.ts +13 -13
  235. package/typography/index.d.ts +3 -3
  236. package/upload/index.d.ts +4 -4
  237. package/util/index.d.ts +17 -7
  238. package/vote/index.d.ts +2 -2
  239. package/watermark/index.d.ts +2 -2
@@ -16,14 +16,14 @@ class ThyTabContent {
16
16
  this.active = input(false, ...(ngDevMode ? [{ debugName: "active", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
17
17
  this.tabPaneAnimated = input(true, ...(ngDevMode ? [{ debugName: "tabPaneAnimated", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
18
18
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTabContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThyTabContent, isStandalone: true, selector: "thy-tab-content, [thyTabContent]", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, tabPaneAnimated: { classPropertyName: "tabPaneAnimated", publicName: "tabPaneAnimated", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-hidden": "!active()", "attr.tabindex": "active() ? 0 : -1", "style.visibility": "tabPaneAnimated() ? active() ? null : \"hidden\" : null", "style.height": "tabPaneAnimated() ? active() ? null : 0 : null", "style.overflow-y": "tabPaneAnimated() ? active() ? null : \"none\" : null", "style.display": "!tabPaneAnimated() ? active() ? null : \"none\" : null" }, classAttribute: "thy-tab-content" }, exportAs: ["thyTabContent"], ngImport: i0, template: `
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyTabContent, isStandalone: true, selector: "thy-tab-content, [thyTabContent]", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, tabPaneAnimated: { classPropertyName: "tabPaneAnimated", publicName: "tabPaneAnimated", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-hidden": "!active()", "attr.tabindex": "active() ? 0 : -1", "style.visibility": "tabPaneAnimated() ? active() ? null : \"hidden\" : null", "style.height": "tabPaneAnimated() ? active() ? null : 0 : null", "style.overflow-y": "tabPaneAnimated() ? active() ? null : \"none\" : null", "style.display": "!tabPaneAnimated() ? active() ? null : \"none\" : null" }, classAttribute: "thy-tab-content" }, exportAs: ["thyTabContent"], ngImport: i0, template: `
21
21
  @if (active()) {
22
22
  <ng-template [ngTemplateOutlet]="content()"></ng-template>
23
23
  }
24
24
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTabContent, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabContent, decorators: [{
27
27
  type: Component,
28
28
  args: [{
29
29
  selector: 'thy-tab-content, [thyTabContent]',
@@ -70,10 +70,10 @@ class ThyTab {
70
70
  this.thyDisabled = input(false, ...(ngDevMode ? [{ debugName: "thyDisabled", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
71
71
  }
72
72
  ngOnInit() { }
73
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTab, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
74
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: ThyTab, isStandalone: true, selector: "thy-tab", inputs: { thyTitle: { classPropertyName: "thyTitle", publicName: "thyTitle", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "titleTemplateRef", first: true, predicate: ["title"], descendants: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }], ngImport: i0, template: ` <ng-template #content><ng-content></ng-content></ng-template> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTab, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
74
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyTab, isStandalone: true, selector: "thy-tab", inputs: { thyTitle: { classPropertyName: "thyTitle", publicName: "thyTitle", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "titleTemplateRef", first: true, predicate: ["title"], descendants: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }], ngImport: i0, template: ` <ng-template #content><ng-content></ng-content></ng-template> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
75
75
  }
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTab, decorators: [{
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTab, decorators: [{
77
77
  type: Component,
78
78
  args: [{
79
79
  selector: 'thy-tab',
@@ -171,10 +171,10 @@ class ThyTabs {
171
171
  const id = tab.id();
172
172
  this.thyActiveTab.set(id ? id : index);
173
173
  }
174
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTabs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
175
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThyTabs, isStandalone: true, selector: "thy-tabs", inputs: { thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyActiveTab: { classPropertyName: "thyActiveTab", publicName: "thyActiveTab", isSignal: true, isRequired: false, transformFunction: null }, thyExtra: { classPropertyName: "thyExtra", publicName: "thyExtra", isSignal: true, isRequired: false, transformFunction: null }, thyPosition: { classPropertyName: "thyPosition", publicName: "thyPosition", isSignal: true, isRequired: false, transformFunction: null }, thyAnimated: { classPropertyName: "thyAnimated", publicName: "thyAnimated", isSignal: true, isRequired: false, transformFunction: null }, thyResponsive: { classPropertyName: "thyResponsive", publicName: "thyResponsive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyActiveTab: "thyActiveTabChange" }, host: { properties: { "class.thy-tabs-top": "thyPosition() === 'top'", "class.thy-tabs-left": "thyPosition() === 'left'", "style.overflow": "transitionStarted ? \"hidden\" : null" }, classAttribute: "thy-tabs" }, queries: [{ propertyName: "tabs", predicate: ThyTab, descendants: true }], ngImport: i0, template: "<!-- tabs nav -->\n<thy-nav\n class=\"thy-tabs-nav\"\n [thyType]=\"thyType()\"\n [thySize]=\"thySize()\"\n [thyExtra]=\"thyExtra()\"\n [thyVertical]=\"thyPosition() === 'left'\"\n [thyResponsive]=\"thyResponsive()\">\n @for (tab of tabs; track $index; let i = $index) {\n <a\n href=\"javascript:;\"\n thyNavItem\n [id]=\"tab.id()\"\n [thyNavItemDisabled]=\"tab.thyDisabled()\"\n [thyNavItemActive]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n (click)=\"activeTab(tab, i)\">\n @if (tab.titleTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"tab.titleTemplateRef\"></ng-template>\n } @else {\n {{ tab.thyTitle() }}\n }\n </a>\n }\n</thy-nav>\n<!-- tabs content -->\n<div class=\"thy-tabs-content\" [class.thy-tabs-content-animated]=\"tabPaneAnimated\" [style.margin-left]=\"getTabContentMarginLeft()\">\n @for (tab of tabs; track $index; let i = $index) {\n <div\n thyTabContent\n [active]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n [content]=\"tab.content\"\n [tabPaneAnimated]=\"tabPaneAnimated\"></div>\n }\n</div>\n", dependencies: [{ kind: "component", type: ThyNav, selector: "thy-nav", inputs: ["thyType", "thySize", "thyHorizontal", "thyVertical", "thyFill", "thyResponsive", "thyPauseReCalculate", "thyInsideClosable", "thyPopoverOptions", "thyExtra"] }, { kind: "directive", type: ThyNavItemDirective, selector: "[thyNavLink],[thyNavItem]", inputs: ["id", "thyNavItemActive", "thyNavLinkActive", "thyNavItemDisabled"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyTabContent, selector: "thy-tab-content, [thyTabContent]", inputs: ["content", "active", "tabPaneAnimated"], exportAs: ["thyTabContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
174
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
175
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyTabs, isStandalone: true, selector: "thy-tabs", inputs: { thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyActiveTab: { classPropertyName: "thyActiveTab", publicName: "thyActiveTab", isSignal: true, isRequired: false, transformFunction: null }, thyExtra: { classPropertyName: "thyExtra", publicName: "thyExtra", isSignal: true, isRequired: false, transformFunction: null }, thyPosition: { classPropertyName: "thyPosition", publicName: "thyPosition", isSignal: true, isRequired: false, transformFunction: null }, thyAnimated: { classPropertyName: "thyAnimated", publicName: "thyAnimated", isSignal: true, isRequired: false, transformFunction: null }, thyResponsive: { classPropertyName: "thyResponsive", publicName: "thyResponsive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyActiveTab: "thyActiveTabChange" }, host: { properties: { "class.thy-tabs-top": "thyPosition() === 'top'", "class.thy-tabs-left": "thyPosition() === 'left'", "style.overflow": "transitionStarted ? \"hidden\" : null" }, classAttribute: "thy-tabs" }, queries: [{ propertyName: "tabs", predicate: ThyTab, descendants: true }], ngImport: i0, template: "<!-- tabs nav -->\n<thy-nav\n class=\"thy-tabs-nav\"\n [thyType]=\"thyType()\"\n [thySize]=\"thySize()\"\n [thyExtra]=\"thyExtra()\"\n [thyVertical]=\"thyPosition() === 'left'\"\n [thyResponsive]=\"thyResponsive()\">\n @for (tab of tabs; track $index; let i = $index) {\n <a\n href=\"javascript:;\"\n thyNavItem\n [id]=\"tab.id()\"\n [thyNavItemDisabled]=\"tab.thyDisabled()\"\n [thyNavItemActive]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n (click)=\"activeTab(tab, i)\">\n @if (tab.titleTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"tab.titleTemplateRef\"></ng-template>\n } @else {\n {{ tab.thyTitle() }}\n }\n </a>\n }\n</thy-nav>\n<!-- tabs content -->\n<div class=\"thy-tabs-content\" [class.thy-tabs-content-animated]=\"tabPaneAnimated\" [style.margin-left]=\"getTabContentMarginLeft()\">\n @for (tab of tabs; track $index; let i = $index) {\n <div\n thyTabContent\n [active]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n [content]=\"tab.content\"\n [tabPaneAnimated]=\"tabPaneAnimated\"></div>\n }\n</div>\n", dependencies: [{ kind: "component", type: ThyNav, selector: "thy-nav", inputs: ["thyType", "thySize", "thyHorizontal", "thyVertical", "thyFill", "thyResponsive", "thyPauseReCalculate", "thyInsideClosable", "thyPopoverOptions", "thyExtra"] }, { kind: "directive", type: ThyNavItemDirective, selector: "[thyNavLink],[thyNavItem]", inputs: ["id", "thyNavItemActive", "thyNavLinkActive", "thyNavItemDisabled"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyTabContent, selector: "thy-tab-content, [thyTabContent]", inputs: ["content", "active", "tabPaneAnimated"], exportAs: ["thyTabContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
176
176
  }
177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTabs, decorators: [{
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabs, decorators: [{
178
178
  type: Component,
179
179
  args: [{ selector: 'thy-tabs', changeDetection: ChangeDetectionStrategy.OnPush, host: {
180
180
  class: 'thy-tabs',
@@ -188,11 +188,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
188
188
  }], thyType: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyType", required: false }] }], thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }], thyActiveTab: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyActiveTab", required: false }] }, { type: i0.Output, args: ["thyActiveTabChange"] }], thyExtra: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyExtra", required: false }] }], thyPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyPosition", required: false }] }], thyAnimated: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyAnimated", required: false }] }], thyResponsive: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyResponsive", required: false }] }] } });
189
189
 
190
190
  class ThyTabsModule {
191
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
192
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: ThyTabsModule, imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs, ThyTab, ThyTabContent], exports: [ThyTabs, ThyTab] }); }
193
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTabsModule, imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs] }); }
191
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
192
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyTabsModule, imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs, ThyTab, ThyTabContent], exports: [ThyTabs, ThyTab] }); }
193
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabsModule, imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs] }); }
194
194
  }
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTabsModule, decorators: [{
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabsModule, decorators: [{
196
196
  type: NgModule,
197
197
  args: [{
198
198
  imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs, ThyTab, ThyTabContent],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-tabs.mjs","sources":["../../../src/tabs/tab-content.component.ts","../../../src/tabs/tab.component.ts","../../../src/tabs/tabs.component.ts","../../../src/tabs/tabs.component.html","../../../src/tabs/tabs.module.ts","../../../src/tabs/ngx-tethys-tabs.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-tab-content, [thyTabContent]',\n exportAs: 'thyTabContent',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (active()) {\n <ng-template [ngTemplateOutlet]=\"content()\"></ng-template>\n }\n `,\n host: {\n class: 'thy-tab-content',\n '[attr.aria-hidden]': '!active()',\n '[attr.tabindex]': 'active() ? 0 : -1',\n '[style.visibility]': 'tabPaneAnimated() ? active() ? null : \"hidden\" : null',\n '[style.height]': 'tabPaneAnimated() ? active() ? null : 0 : null',\n '[style.overflow-y]': 'tabPaneAnimated() ? active() ? null : \"none\" : null',\n '[style.display]': '!tabPaneAnimated() ? active() ? null : \"none\" : null'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyTabContent {\n readonly content = input<TemplateRef<void> | null>(null);\n\n readonly active = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly tabPaneAnimated = input<boolean, ThyBooleanInput>(true, { transform: coerceBooleanProperty });\n}\n","import { Component, OnInit, ChangeDetectionStrategy, ViewChild, TemplateRef, ContentChild, input } from '@angular/core';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * 选项卡的选项组件\n * @name thy-tab\n */\n@Component({\n selector: 'thy-tab',\n template: ` <ng-template #content><ng-content></ng-content></ng-template> `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyTab implements OnInit {\n /**\n * 自定义选项标题的模板\n * @type TemplateRef\n */\n @ContentChild('title') titleTemplateRef: TemplateRef<unknown>;\n\n @ViewChild('content', { static: true }) content: TemplateRef<HTMLElement>;\n\n /**\n * 选项标题\n */\n readonly thyTitle = input<string>(undefined);\n\n /**\n * 选项的唯一标识\n */\n readonly id = input<string>(undefined);\n\n /**\n * 是否禁用选项\n * @default false\n */\n readonly thyDisabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n inject,\n input,\n linkedSignal,\n model,\n OnInit,\n QueryList,\n TemplateRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ThyNav, ThyNavItemDirective } from 'ngx-tethys/nav';\nimport { coerceBooleanProperty, isNumber, ThyBooleanInput } from 'ngx-tethys/util';\nimport { fromEvent } from 'rxjs';\nimport { ThyTabContent } from './tab-content.component';\nimport { ThyTab } from './tab.component';\nimport { ThyActiveTabInfo } from './types';\n\nexport type ThyTabsSize = 'lg' | 'md' | 'sm';\n\nexport type ThyTabsType = 'pulled' | 'tabs' | 'pills' | 'lite';\n\nexport type ThyTabsPosition = 'top' | 'left';\n\n/**\n * 选项卡切换组件\n * @name thy-tabs\n */\n@Component({\n selector: 'thy-tabs',\n templateUrl: './tabs.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tabs',\n '[class.thy-tabs-top]': `thyPosition() === 'top'`,\n '[class.thy-tabs-left]': `thyPosition() === 'left'`,\n '[style.overflow]': `transitionStarted ? \"hidden\" : null`\n },\n imports: [ThyNav, ThyNavItemDirective, NgTemplateOutlet, ThyTabContent]\n})\nexport class ThyTabs implements OnInit, AfterContentInit {\n private cd = inject(ChangeDetectorRef);\n private el = inject(ElementRef);\n\n @ContentChildren(ThyTab, { descendants: true }) tabs = new QueryList<ThyTab>();\n\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * 标签类型\n * @type 'pulled' | 'tabs' | 'pills' | 'lite'\n */\n readonly thyType = input<ThyTabsType>('tabs');\n\n /**\n * 选项卡的大小\n * @type 'lg' | 'md' | 'sm'\n */\n readonly thySize = input<ThyTabsSize>('md');\n\n /**\n * 激活的项\n */\n readonly thyActiveTab = model<ThyActiveTabInfo>(0);\n\n /**\n * 附加操作\n */\n readonly thyExtra = input<TemplateRef<unknown>>(undefined);\n\n /**\n * 选项卡的位置\n * @type 'top' | 'left'\n */\n readonly thyPosition = input<ThyTabsPosition>('top');\n\n /**\n * 是否使用动画切换 Tabs\n */\n readonly thyAnimated = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 响应式,自动计算宽度存放 thyNavItem,并添加更多弹框\n */\n readonly thyResponsive = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly activeTabIndex = linkedSignal(() => {\n const activeTab = this.thyActiveTab();\n return isNumber(activeTab) ? activeTab : undefined;\n });\n\n readonly activeTabId = linkedSignal(() => {\n return this.thyActiveTab() ?? undefined;\n });\n\n transitionStarted: boolean = false;\n\n constructor() {}\n\n ngOnInit(): void {\n const tabsContent = this.el.nativeElement.querySelector('.thy-tabs-content');\n fromEvent(tabsContent, 'transitionend')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.transitionStarted = false;\n this.cd.markForCheck();\n });\n }\n\n ngAfterContentInit() {\n this.tabs.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(data => {\n this.thyAnimated() && (this.transitionStarted = true);\n this.activeTabIndex.set(data.length - 1);\n this.cd.markForCheck();\n });\n }\n\n get tabPaneAnimated(): boolean {\n return this.thyPosition() === 'top' && this.thyAnimated();\n }\n\n getTabContentMarginLeft(): string {\n if (this.tabPaneAnimated) {\n return `${-(this.activeTabIndex() || 0) * 100}%`;\n }\n return '';\n }\n\n activeTab(tab: ThyTab, index: number) {\n if (tab.thyDisabled()) {\n return;\n }\n this.thyAnimated() && (this.transitionStarted = this.activeTabIndex() !== index);\n const id = tab.id();\n this.thyActiveTab.set(id ? id : index);\n }\n}\n","<!-- tabs nav -->\n<thy-nav\n class=\"thy-tabs-nav\"\n [thyType]=\"thyType()\"\n [thySize]=\"thySize()\"\n [thyExtra]=\"thyExtra()\"\n [thyVertical]=\"thyPosition() === 'left'\"\n [thyResponsive]=\"thyResponsive()\">\n @for (tab of tabs; track $index; let i = $index) {\n <a\n href=\"javascript:;\"\n thyNavItem\n [id]=\"tab.id()\"\n [thyNavItemDisabled]=\"tab.thyDisabled()\"\n [thyNavItemActive]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n (click)=\"activeTab(tab, i)\">\n @if (tab.titleTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"tab.titleTemplateRef\"></ng-template>\n } @else {\n {{ tab.thyTitle() }}\n }\n </a>\n }\n</thy-nav>\n<!-- tabs content -->\n<div class=\"thy-tabs-content\" [class.thy-tabs-content-animated]=\"tabPaneAnimated\" [style.margin-left]=\"getTabContentMarginLeft()\">\n @for (tab of tabs; track $index; let i = $index) {\n <div\n thyTabContent\n [active]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n [content]=\"tab.content\"\n [tabPaneAnimated]=\"tabPaneAnimated\"></div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTabs } from './tabs.component';\nimport { ThyTab } from './tab.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyNavModule } from 'ngx-tethys/nav';\nimport { ThyTabContent } from './tab-content.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs, ThyTab, ThyTabContent],\n exports: [ThyTabs, ThyTab]\n})\nexport class ThyTabsModule {}\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-tabs.mjs","sources":["../../../src/tabs/tab-content.component.ts","../../../src/tabs/tab.component.ts","../../../src/tabs/tabs.component.ts","../../../src/tabs/tabs.component.html","../../../src/tabs/tabs.module.ts","../../../src/tabs/ngx-tethys-tabs.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-tab-content, [thyTabContent]',\n exportAs: 'thyTabContent',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (active()) {\n <ng-template [ngTemplateOutlet]=\"content()\"></ng-template>\n }\n `,\n host: {\n class: 'thy-tab-content',\n '[attr.aria-hidden]': '!active()',\n '[attr.tabindex]': 'active() ? 0 : -1',\n '[style.visibility]': 'tabPaneAnimated() ? active() ? null : \"hidden\" : null',\n '[style.height]': 'tabPaneAnimated() ? active() ? null : 0 : null',\n '[style.overflow-y]': 'tabPaneAnimated() ? active() ? null : \"none\" : null',\n '[style.display]': '!tabPaneAnimated() ? active() ? null : \"none\" : null'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyTabContent {\n readonly content = input<TemplateRef<void> | null>(null);\n\n readonly active = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly tabPaneAnimated = input<boolean, ThyBooleanInput>(true, { transform: coerceBooleanProperty });\n}\n","import { Component, OnInit, ChangeDetectionStrategy, ViewChild, TemplateRef, ContentChild, input } from '@angular/core';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * 选项卡的选项组件\n * @name thy-tab\n */\n@Component({\n selector: 'thy-tab',\n template: ` <ng-template #content><ng-content></ng-content></ng-template> `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyTab implements OnInit {\n /**\n * 自定义选项标题的模板\n * @type TemplateRef\n */\n @ContentChild('title') titleTemplateRef?: TemplateRef<unknown>;\n\n @ViewChild('content', { static: true }) content!: TemplateRef<HTMLElement>;\n\n /**\n * 选项标题\n */\n readonly thyTitle = input<string | undefined>(undefined);\n\n /**\n * 选项的唯一标识\n */\n readonly id = input<string | undefined>(undefined);\n\n /**\n * 是否禁用选项\n * @default false\n */\n readonly thyDisabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n inject,\n input,\n linkedSignal,\n model,\n OnInit,\n QueryList,\n TemplateRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ThyNav, ThyNavItemDirective } from 'ngx-tethys/nav';\nimport { coerceBooleanProperty, isNumber, ThyBooleanInput } from 'ngx-tethys/util';\nimport { fromEvent } from 'rxjs';\nimport { ThyTabContent } from './tab-content.component';\nimport { ThyTab } from './tab.component';\nimport { ThyActiveTabInfo } from './types';\n\nexport type ThyTabsSize = 'lg' | 'md' | 'sm';\n\nexport type ThyTabsType = 'pulled' | 'tabs' | 'pills' | 'lite';\n\nexport type ThyTabsPosition = 'top' | 'left';\n\n/**\n * 选项卡切换组件\n * @name thy-tabs\n */\n@Component({\n selector: 'thy-tabs',\n templateUrl: './tabs.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tabs',\n '[class.thy-tabs-top]': `thyPosition() === 'top'`,\n '[class.thy-tabs-left]': `thyPosition() === 'left'`,\n '[style.overflow]': `transitionStarted ? \"hidden\" : null`\n },\n imports: [ThyNav, ThyNavItemDirective, NgTemplateOutlet, ThyTabContent]\n})\nexport class ThyTabs implements OnInit, AfterContentInit {\n private cd = inject(ChangeDetectorRef);\n private el = inject(ElementRef);\n\n @ContentChildren(ThyTab, { descendants: true }) tabs = new QueryList<ThyTab>();\n\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * 标签类型\n * @type 'pulled' | 'tabs' | 'pills' | 'lite'\n */\n readonly thyType = input<ThyTabsType>('tabs');\n\n /**\n * 选项卡的大小\n * @type 'lg' | 'md' | 'sm'\n */\n readonly thySize = input<ThyTabsSize>('md');\n\n /**\n * 激活的项\n */\n readonly thyActiveTab = model<ThyActiveTabInfo>(0);\n\n /**\n * 附加操作\n */\n readonly thyExtra = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * 选项卡的位置\n * @type 'top' | 'left'\n */\n readonly thyPosition = input<ThyTabsPosition>('top');\n\n /**\n * 是否使用动画切换 Tabs\n */\n readonly thyAnimated = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 响应式,自动计算宽度存放 thyNavItem,并添加更多弹框\n */\n readonly thyResponsive = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly activeTabIndex = linkedSignal(() => {\n const activeTab = this.thyActiveTab();\n return isNumber(activeTab) ? activeTab : undefined;\n });\n\n readonly activeTabId = linkedSignal(() => {\n return this.thyActiveTab() ?? undefined;\n });\n\n transitionStarted: boolean = false;\n\n constructor() {}\n\n ngOnInit(): void {\n const tabsContent = this.el.nativeElement.querySelector('.thy-tabs-content');\n fromEvent(tabsContent, 'transitionend')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.transitionStarted = false;\n this.cd.markForCheck();\n });\n }\n\n ngAfterContentInit() {\n this.tabs.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(data => {\n this.thyAnimated() && (this.transitionStarted = true);\n this.activeTabIndex.set(data.length - 1);\n this.cd.markForCheck();\n });\n }\n\n get tabPaneAnimated(): boolean {\n return this.thyPosition() === 'top' && this.thyAnimated();\n }\n\n getTabContentMarginLeft(): string {\n if (this.tabPaneAnimated) {\n return `${-(this.activeTabIndex() || 0) * 100}%`;\n }\n return '';\n }\n\n activeTab(tab: ThyTab, index: number) {\n if (tab.thyDisabled()) {\n return;\n }\n this.thyAnimated() && (this.transitionStarted = this.activeTabIndex() !== index);\n const id = tab.id();\n this.thyActiveTab.set(id ? id : index);\n }\n}\n","<!-- tabs nav -->\n<thy-nav\n class=\"thy-tabs-nav\"\n [thyType]=\"thyType()\"\n [thySize]=\"thySize()\"\n [thyExtra]=\"thyExtra()\"\n [thyVertical]=\"thyPosition() === 'left'\"\n [thyResponsive]=\"thyResponsive()\">\n @for (tab of tabs; track $index; let i = $index) {\n <a\n href=\"javascript:;\"\n thyNavItem\n [id]=\"tab.id()\"\n [thyNavItemDisabled]=\"tab.thyDisabled()\"\n [thyNavItemActive]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n (click)=\"activeTab(tab, i)\">\n @if (tab.titleTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"tab.titleTemplateRef\"></ng-template>\n } @else {\n {{ tab.thyTitle() }}\n }\n </a>\n }\n</thy-nav>\n<!-- tabs content -->\n<div class=\"thy-tabs-content\" [class.thy-tabs-content-animated]=\"tabPaneAnimated\" [style.margin-left]=\"getTabContentMarginLeft()\">\n @for (tab of tabs; track $index; let i = $index) {\n <div\n thyTabContent\n [active]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n [content]=\"tab.content\"\n [tabPaneAnimated]=\"tabPaneAnimated\"></div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTabs } from './tabs.component';\nimport { ThyTab } from './tab.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyNavModule } from 'ngx-tethys/nav';\nimport { ThyTabContent } from './tab-content.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs, ThyTab, ThyTabContent],\n exports: [ThyTabs, ThyTab]\n})\nexport class ThyTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -55,7 +55,7 @@ class ThyTag {
55
55
  this.elementRef.nativeElement.style.removeProperty('color');
56
56
  this.hostRenderer.updateClass([]);
57
57
  if (isThemeColor(this.color())) {
58
- this.hostRenderer.updateClass([`thy-tag-${this.thyTheme() === 'fill' ? '' : this.thyTheme() + '-'}${this.color()}`]);
58
+ this.hostRenderer.updateClass([`thy-tag-${this.thyTheme() === 'fill' ? '' : `${this.thyTheme()}-`}${this.color()}`]);
59
59
  }
60
60
  else {
61
61
  if (this.thyTheme() === 'fill') {
@@ -71,10 +71,10 @@ class ThyTag {
71
71
  }
72
72
  }
73
73
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTag, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: ThyTag, isStandalone: true, selector: "thy-tag,[thyTag]", inputs: { thyTag: { classPropertyName: "thyTag", publicName: "thyTag", isSignal: true, isRequired: false, transformFunction: null }, thyShape: { classPropertyName: "thyShape", publicName: "thyShape", isSignal: true, isRequired: false, transformFunction: null }, thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null }, thyTheme: { classPropertyName: "thyTheme", publicName: "thyTheme", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyHoverable: { classPropertyName: "thyHoverable", publicName: "thyHoverable", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-tag-pill": "thyShape() === \"pill\"", "class.thy-tag-outline": "thyTheme() === \"outline\"", "class.thy-tag-hover": "thyHoverable()", "class.thy-tag-md": "thySize() === \"md\"", "class.thy-tag-sm": "thySize() === \"sm\"", "class.thy-tag-xs": "thySize() === \"xs\"", "class.thy-tag-lg": "thySize() === \"lg\"" }, classAttribute: "thy-tag" }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTag, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyTag, isStandalone: true, selector: "thy-tag,[thyTag]", inputs: { thyTag: { classPropertyName: "thyTag", publicName: "thyTag", isSignal: true, isRequired: false, transformFunction: null }, thyShape: { classPropertyName: "thyShape", publicName: "thyShape", isSignal: true, isRequired: false, transformFunction: null }, thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null }, thyTheme: { classPropertyName: "thyTheme", publicName: "thyTheme", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyHoverable: { classPropertyName: "thyHoverable", publicName: "thyHoverable", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-tag-pill": "thyShape() === \"pill\"", "class.thy-tag-outline": "thyTheme() === \"outline\"", "class.thy-tag-hover": "thyHoverable()", "class.thy-tag-md": "thySize() === \"md\"", "class.thy-tag-sm": "thySize() === \"sm\"", "class.thy-tag-xs": "thySize() === \"xs\"", "class.thy-tag-lg": "thySize() === \"lg\"" }, classAttribute: "thy-tag" }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
76
76
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTag, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTag, decorators: [{
78
78
  type: Component,
79
79
  args: [{ selector: 'thy-tag,[thyTag]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
80
80
  class: 'thy-tag',
@@ -94,10 +94,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
94
94
  class ThyTags {
95
95
  constructor() { }
96
96
  ngOnInit() { }
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTags, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: ThyTags, isStandalone: true, selector: "thy-tags", host: { classAttribute: "thy-tags" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
97
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTags, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
98
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: ThyTags, isStandalone: true, selector: "thy-tags", host: { classAttribute: "thy-tags" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
99
99
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTags, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTags, decorators: [{
101
101
  type: Component,
102
102
  args: [{
103
103
  selector: 'thy-tags',
@@ -110,11 +110,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
110
110
  }], ctorParameters: () => [] });
111
111
 
112
112
  class ThyTagModule {
113
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTagModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
114
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: ThyTagModule, imports: [CommonModule, ThyIconModule, ThyTag, ThyTags], exports: [ThyTag, ThyTags] }); }
115
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTagModule, imports: [CommonModule, ThyIconModule] }); }
113
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTagModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
114
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyTagModule, imports: [CommonModule, ThyIconModule, ThyTag, ThyTags], exports: [ThyTag, ThyTags] }); }
115
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTagModule, imports: [CommonModule, ThyIconModule] }); }
116
116
  }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyTagModule, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTagModule, decorators: [{
118
118
  type: NgModule,
119
119
  args: [{
120
120
  imports: [CommonModule, ThyIconModule, ThyTag, ThyTags],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-tag.mjs","sources":["../../../src/tag/tag.component.ts","../../../src/tag/tag.component.html","../../../src/tag/tags.component.ts","../../../src/tag/tag.module.ts","../../../src/tag/ngx-tethys-tag.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { isThemeColor, ThyThemeColor } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, hexToRgb } from 'ngx-tethys/util';\n\nexport type ThyTagColor = ThyThemeColor | string;\n\nexport type ThyTagShape = 'pill' | 'rectangle';\n\nexport type ThyTagSize = 'sm' | 'md' | 'lg';\n\n/**\n * 标签组件\n * @name thy-tag,[thyTag]\n */\n@Component({\n selector: 'thy-tag,[thyTag]',\n templateUrl: './tag.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tag',\n '[class.thy-tag-pill]': 'thyShape() === \"pill\"',\n '[class.thy-tag-outline]': 'thyTheme() === \"outline\"',\n '[class.thy-tag-hover]': 'thyHoverable()',\n '[class.thy-tag-md]': 'thySize() === \"md\"',\n '[class.thy-tag-sm]': 'thySize() === \"sm\"',\n '[class.thy-tag-xs]': 'thySize() === \"xs\"',\n '[class.thy-tag-lg]': 'thySize() === \"lg\"'\n }\n})\nexport class ThyTag {\n private elementRef = inject(ElementRef);\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 标签颜色,thyColor 的简写\n * @type primary | success | info | warning | danger | default | light | string\n * @default default\n */\n readonly thyTag = input<ThyTagColor>('');\n\n /**\n * 标签形状\n * @type pill | rectangle\n */\n readonly thyShape = input<ThyTagShape>('rectangle');\n\n /**\n * 标签颜色,支持设置主题色和颜色值,主题色为 default、primary、success、info、warning、danger\n */\n readonly thyColor = input<ThyTagColor>('');\n\n /**\n * 标签主题,fill 为颜色填充,outline 为线框,weak-fill 为背景色0.1透明度效果\n * @type outline | fill | weak-fill\n */\n readonly thyTheme = input<'outline' | 'fill' | 'weak-fill'>('fill');\n\n /**\n * 标签大小\n * @type sm | md | lg\n */\n readonly thySize = input<ThyTagSize>('md');\n\n /**\n * 可 Hover 悬停的标签,设置为 true 时会有一个 Hover 效果\n * @default false\n */\n readonly thyHoverable = input(false, { transform: coerceBooleanProperty });\n\n protected readonly color = computed(() => this.thyColor() || this.thyTag() || 'default');\n\n constructor() {\n effect(() => {\n this.setColor();\n });\n }\n\n private setColor(): void {\n this.elementRef.nativeElement.style.removeProperty('background-color');\n this.elementRef.nativeElement.style.removeProperty('border-color');\n this.elementRef.nativeElement.style.removeProperty('color');\n this.hostRenderer.updateClass([]);\n\n if (isThemeColor(this.color())) {\n this.hostRenderer.updateClass([`thy-tag-${this.thyTheme() === 'fill' ? '' : this.thyTheme() + '-'}${this.color()}`]);\n } else {\n if (this.thyTheme() === 'fill') {\n this.elementRef.nativeElement.style.backgroundColor = this.color();\n } else if (this.thyTheme() === 'outline') {\n this.elementRef.nativeElement.style.color = this.color();\n this.elementRef.nativeElement.style['border-color'] = this.color();\n } else {\n this.elementRef.nativeElement.style.backgroundColor = hexToRgb(this.color(), 0.1);\n this.elementRef.nativeElement.style.color = this.color();\n }\n }\n }\n}\n","<ng-content></ng-content>\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\n\n/**\n * @name thy-tags\n */\n@Component({\n selector: 'thy-tags',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tags'\n }\n})\nexport class ThyTags implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTag } from './tag.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyTags } from './tags.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyTag, ThyTags],\n exports: [ThyTag, ThyTags]\n})\nexport class ThyTagModule {}\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-tag.mjs","sources":["../../../src/tag/tag.component.ts","../../../src/tag/tag.component.html","../../../src/tag/tags.component.ts","../../../src/tag/tag.module.ts","../../../src/tag/ngx-tethys-tag.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { isThemeColor, ThyThemeColor } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, hexToRgb } from 'ngx-tethys/util';\n\nexport type ThyTagColor = ThyThemeColor | string;\n\nexport type ThyTagShape = 'pill' | 'rectangle';\n\nexport type ThyTagSize = 'sm' | 'md' | 'lg';\n\n/**\n * 标签组件\n * @name thy-tag,[thyTag]\n */\n@Component({\n selector: 'thy-tag,[thyTag]',\n templateUrl: './tag.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tag',\n '[class.thy-tag-pill]': 'thyShape() === \"pill\"',\n '[class.thy-tag-outline]': 'thyTheme() === \"outline\"',\n '[class.thy-tag-hover]': 'thyHoverable()',\n '[class.thy-tag-md]': 'thySize() === \"md\"',\n '[class.thy-tag-sm]': 'thySize() === \"sm\"',\n '[class.thy-tag-xs]': 'thySize() === \"xs\"',\n '[class.thy-tag-lg]': 'thySize() === \"lg\"'\n }\n})\nexport class ThyTag {\n private elementRef = inject(ElementRef);\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 标签颜色,thyColor 的简写\n * @type primary | success | info | warning | danger | default | light | string\n * @default default\n */\n readonly thyTag = input<ThyTagColor>('');\n\n /**\n * 标签形状\n * @type pill | rectangle\n */\n readonly thyShape = input<ThyTagShape>('rectangle');\n\n /**\n * 标签颜色,支持设置主题色和颜色值,主题色为 default、primary、success、info、warning、danger\n */\n readonly thyColor = input<ThyTagColor>('');\n\n /**\n * 标签主题,fill 为颜色填充,outline 为线框,weak-fill 为背景色0.1透明度效果\n * @type outline | fill | weak-fill\n */\n readonly thyTheme = input<'outline' | 'fill' | 'weak-fill'>('fill');\n\n /**\n * 标签大小\n * @type sm | md | lg\n */\n readonly thySize = input<ThyTagSize>('md');\n\n /**\n * 可 Hover 悬停的标签,设置为 true 时会有一个 Hover 效果\n * @default false\n */\n readonly thyHoverable = input(false, { transform: coerceBooleanProperty });\n\n protected readonly color = computed(() => this.thyColor() || this.thyTag() || 'default');\n\n constructor() {\n effect(() => {\n this.setColor();\n });\n }\n\n private setColor(): void {\n this.elementRef.nativeElement.style.removeProperty('background-color');\n this.elementRef.nativeElement.style.removeProperty('border-color');\n this.elementRef.nativeElement.style.removeProperty('color');\n this.hostRenderer.updateClass([]);\n\n if (isThemeColor(this.color())) {\n this.hostRenderer.updateClass([`thy-tag-${this.thyTheme() === 'fill' ? '' : `${this.thyTheme() }-`}${this.color()}`]);\n } else {\n if (this.thyTheme() === 'fill') {\n this.elementRef.nativeElement.style.backgroundColor = this.color();\n } else if (this.thyTheme() === 'outline') {\n this.elementRef.nativeElement.style.color = this.color();\n this.elementRef.nativeElement.style['border-color'] = this.color();\n } else {\n this.elementRef.nativeElement.style.backgroundColor = hexToRgb(this.color(), 0.1);\n this.elementRef.nativeElement.style.color = this.color();\n }\n }\n }\n}\n","<ng-content></ng-content>\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\n\n/**\n * @name thy-tags\n */\n@Component({\n selector: 'thy-tags',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tags'\n }\n})\nexport class ThyTags implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTag } from './tag.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyTags } from './tags.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyTag, ThyTags],\n exports: [ThyTag, ThyTags]\n})\nexport class ThyTagModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -303,7 +303,7 @@ class FakeDataTransfer {
303
303
  this.dropEffect = 'none';
304
304
  this.effectAllowed = 'all';
305
305
  this.types = [];
306
- this.getData = function (dataFormat) {
306
+ this.getData = (dataFormat) => {
307
307
  return this.dataByFormat[dataFormat];
308
308
  };
309
309
  this.setDragImage = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-testing.mjs","sources":["../../../src/testing/events.ts","../../../src/testing/dispatcher-events.ts","../../../src/testing/element-focus.ts","../../../src/testing/type-in-element.ts","../../../src/testing/thy-icon.ts","../../../src/testing/data-transfer.ts","../../../src/testing/xhr-mock.ts","../../../src/testing/ngx-tethys-testing.ts"],"sourcesContent":["import { ModifierKeys } from '@angular/cdk/testing';\n\n/**\n * Creates a browser MouseEvent with the specified options.\n * @docs-private\n */\nexport function createMouseEvent(\n type: string,\n clientX = 0,\n clientY = 0,\n button = 0,\n buttons = 1,\n detail = 1,\n modifiers: ModifierKeys = {},\n relatedTarget?: Element\n) {\n // Note: We cannot determine the position of the mouse event based on the screen\n // because the dimensions and position of the browser window are not available\n // To provide reasonable `screenX` and `screenY` coordinates, we simply use the\n // client coordinates as if the browser is opened in fullscreen.\n const screenX = clientX;\n const screenY = clientY;\n\n const event = new MouseEvent(type, {\n bubbles: true,\n cancelable: true,\n view: window,\n screenX,\n screenY,\n clientX,\n clientY,\n button,\n buttons,\n detail,\n relatedTarget,\n ctrlKey: !!modifiers.control,\n altKey: !!modifiers.alt,\n shiftKey: !!modifiers.shift,\n metaKey: !!modifiers.meta\n });\n\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n const originalPreventDefault = event.preventDefault.bind(event);\n event.preventDefault = function () {\n defineReadonlyEventProperty(event, 'defaultPrevented', true);\n return originalPreventDefault();\n };\n\n return event;\n}\n\n/**\n * Creates a browser `PointerEvent` with the specified options. Pointer events\n * by default will appear as if they are the primary pointer of their type.\n * https://www.w3.org/TR/pointerevents2/#dom-pointerevent-isprimary.\n *\n * For example, if pointer events for a multi-touch interaction are created, the non-primary\n * pointer touches would need to be represented by non-primary pointer events.\n *\n * @docs-private\n */\nexport function createPointerEvent(type: string, clientX = 0, clientY = 0, options: PointerEventInit = { isPrimary: true }) {\n return new PointerEvent(type, {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX,\n clientY,\n ...options\n });\n}\n\n/**\n * Creates a browser TouchEvent with the specified pointer coordinates.\n * @docs-private\n */\nexport function createTouchEvent(type: string, pageX = 0, pageY = 0) {\n // In favor of creating events that work for most of the browsers, the event is created\n // as a basic UI Event. The necessary details for the event will be set manually.\n const event = document.createEvent('UIEvent');\n const touchDetails = { pageX, pageY };\n\n // TS3.6 removes the initUIEvent method and suggests porting to \"new UIEvent()\".\n (event as any).initUIEvent(type, true, true, window, 0);\n\n // Most of the browsers don't have a \"initTouchEvent\" method that can be used to define\n // the touch details.\n defineReadonlyEventProperty(event, 'touches', [touchDetails]);\n defineReadonlyEventProperty(event, 'targetTouches', [touchDetails]);\n defineReadonlyEventProperty(event, 'changedTouches', [touchDetails]);\n\n return event;\n}\n\n/**\n * Creates a keyboard event with the specified key and modifiers.\n * @docs-private\n */\nexport function createKeyboardEvent(type: string, keyCode: number = 0, key: string = '', modifiers: ModifierKeys = {}) {\n const event = document.createEvent('KeyboardEvent');\n const originalPreventDefault = event.preventDefault.bind(event);\n\n // Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.\n // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyEvent.\n if ((event as any).initKeyEvent !== undefined) {\n (event as any).initKeyEvent(type, true, true, window, modifiers.control, modifiers.alt, modifiers.shift, modifiers.meta, keyCode);\n } else {\n // `initKeyboardEvent` expects to receive modifiers as a whitespace-delimited string\n // See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyboardEvent\n let modifiersList = '';\n\n if (modifiers.control) {\n modifiersList += 'Control ';\n }\n\n if (modifiers.alt) {\n modifiersList += 'Alt ';\n }\n\n if (modifiers.shift) {\n modifiersList += 'Shift ';\n }\n\n if (modifiers.meta) {\n modifiersList += 'Meta ';\n }\n\n // TS3.6 removed the `initKeyboardEvent` method and suggested porting to\n // `new KeyboardEvent()` constructor. We cannot use that as we support IE11.\n // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyboardEvent.\n (event as any).initKeyboardEvent(\n type,\n true /* canBubble */,\n true /* cancelable */,\n window /* view */,\n 0 /* char */,\n key /* key */,\n 0 /* location */,\n modifiersList.trim() /* modifiersList */,\n false /* repeat */\n );\n }\n\n // Webkit Browsers don't set the keyCode when calling the init function.\n // See related bug https://bugs.webkit.org/show_bug.cgi?id=16735\n defineReadonlyEventProperty(event, 'keyCode', keyCode);\n defineReadonlyEventProperty(event, 'key', key);\n defineReadonlyEventProperty(event, 'ctrlKey', !!modifiers.control);\n defineReadonlyEventProperty(event, 'altKey', !!modifiers.alt);\n defineReadonlyEventProperty(event, 'shiftKey', !!modifiers.shift);\n defineReadonlyEventProperty(event, 'metaKey', !!modifiers.meta);\n\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n event.preventDefault = function () {\n defineReadonlyEventProperty(event, 'defaultPrevented', true);\n return originalPreventDefault();\n };\n\n return event;\n}\n\n/**\n * Creates a fake event object with any desired event type.\n * @docs-private\n */\nexport function createFakeEvent(type: string, canBubble = false, cancelable = true) {\n const event = document.createEvent('Event');\n event.initEvent(type, canBubble, cancelable);\n return event;\n}\n\nexport function createDragEvent(type: string, dataTransfer: DataTransfer = null, canBubble = false, cancelable = true) {\n const event = document.createEvent('DragEvent');\n event.initEvent(type, canBubble, cancelable);\n defineReadonlyEventProperty(event, 'dataTransfer', dataTransfer);\n return event;\n}\n\n/**\n * Defines a readonly property on the given event object. Readonly properties on an event object\n * are always set as configurable as that matches default readonly properties for DOM event objects.\n */\nfunction defineReadonlyEventProperty(event: Event, propertyName: string, value: any) {\n Object.defineProperty(event, propertyName, { get: () => value, configurable: true });\n}\n","import { ModifierKeys } from '@angular/cdk/testing';\nimport { createFakeEvent, createKeyboardEvent, createMouseEvent, createPointerEvent, createTouchEvent } from './events';\n\n/**\n * Utility to dispatch any event on a Node.\n * @docs-private\n */\nexport function dispatchEvent<T extends Event>(node: Node | Window, event: T): T {\n node.dispatchEvent(event);\n return event;\n}\n\n/**\n * Shorthand to dispatch a fake event on a specified node.\n * @docs-private\n */\nexport function dispatchFakeEvent(node: Node | Window, type: string, canBubble?: boolean): Event {\n return dispatchEvent(node, createFakeEvent(type, canBubble));\n}\n\n/**\n * Shorthand to dispatch a keyboard event with a specified key code and\n * optional modifiers.\n * @docs-private\n */\nexport function dispatchKeyboardEvent(node: Node, type: string, keyCode?: number, key?: string, modifiers?: ModifierKeys): KeyboardEvent {\n return dispatchEvent(node, createKeyboardEvent(type, keyCode, key, modifiers));\n}\n\n/**\n * Shorthand to dispatch a mouse event on the specified coordinates.\n * @docs-private\n */\nexport function dispatchMouseEvent(\n node: Node,\n type: string,\n clientX = 0,\n clientY = 0,\n button?: number,\n buttons?: number,\n detail?: number,\n modifiers?: ModifierKeys,\n relatedTarget?: Element\n): MouseEvent {\n return dispatchEvent(node, createMouseEvent(type, clientX, clientY, button, buttons, detail, modifiers, relatedTarget));\n}\n\n/**\n * Shorthand to dispatch a pointer event on the specified coordinates.\n * @docs-private\n */\nexport function dispatchPointerEvent(node: Node, type: string, clientX = 0, clientY = 0, options?: PointerEventInit): PointerEvent {\n return dispatchEvent(node, createPointerEvent(type, clientX, clientY, options)) as PointerEvent;\n}\n\n/**\n * Shorthand to dispatch a touch event on the specified coordinates.\n * @docs-private\n */\nexport function dispatchTouchEvent(node: Node, type: string, x = 0, y = 0) {\n return dispatchEvent(node, createTouchEvent(type, x, y));\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { dispatchFakeEvent } from './dispatcher-events';\n\n/**\n * Patches an elements focus and blur methods to emit events consistently and predictably.\n * This is necessary, because some browsers, like IE11, will call the focus handlers asynchronously,\n * while others won't fire them at all if the browser window is not focused.\n */\nexport function patchElementFocus(element: HTMLElement) {\n element.focus = () => dispatchFakeEvent(element, 'focus');\n element.blur = () => dispatchFakeEvent(element, 'blur');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { dispatchFakeEvent } from './dispatcher-events';\n\n/**\n * Focuses an input, sets its value and dispatches\n * the `input` event, simulating the user typing.\n * @param value Value to be set on the input.\n * @param element Element onto which to set the value.\n */\nexport function typeInElement(value: string, element: HTMLInputElement) {\n element.focus();\n element.value = value;\n dispatchFakeEvent(element, 'input');\n}\n","import { ThyIconRegistry } from 'ngx-tethys/icon';\n\nimport { Provider, Sanitizer, SecurityContext } from '@angular/core';\nimport { inject } from '@angular/core/testing';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nexport const bypassSanitizeProvider: Provider = {\n provide: Sanitizer,\n useValue: {\n sanitize: (context: SecurityContext, html: string) => html\n }\n};\n\nexport const defaultInlineIconSet = `\n <svg>\n <defs>\n <svg id=\"inbox\"><path d=\"M10 10\"/></svg>\n <svg id=\"close\"><path d=\"M10 10\"/></svg>\n <svg id=\"close-bold\"><path d=\"M10 10\"/></svg>\n <svg id=\"calendar-check\"><path d=\"M10 10\"/></svg>\n <svg id=\"calendar\"><path d=\"M10 10\"/></svg>\n <svg id=\"angle-down\"><path d=\"M10 10\"/></svg>\n <svg id=\"check\"><path d=\"M10 10\"/></svg>\n <svg id=\"application-fill\"></svg>\n <svg id=\"angle-right\"></svg>\n <svg id=\"minus-circle-fill\"></svg>\n <svg id=\"check-circle-fill\"></svg>\n <svg id=\"waring-fill\"></svg>\n <svg id=\"close-circle-fill\"></svg>\n <svg id=\"question-circle-fill\"></svg>\n <svg id=\"more-bold\"></svg>\n <svg id=\"filter\">\n <title>Filter Title</title>\n <defs> <linearGradient id=\"Gradient1\"><stop class=\"stop1\" offset=\"0%\"/><stop class=\"stop2\" offset=\"50%\"/><stop class=\"stop3\" offset=\"100%\"/></linearGradient></defs>\n <style> #rect1 { fill: url(#Gradient1); }</style>\n <path d=\"filter\" style=\" \"/>\n </svg>\n <svg id=\"close-circle-bold-fill\"></svg>\n <svg id=\"search\"></svg>\n <svg id=\"sort-tt\"><style>.circle { fill: orange; }</style><g id=\"phnormal/sort-tt\" stroke-width=\"1\" fill-rule=\"nonzero\"><path d=\"M10 10 0 0 1 5.1 1.5v12.99a.6.6 0 0 1-1.2 0V3.607L2.466 6.082a.6.6 0 1 1-1.04-.6l2.47-4.262a.599.599 0 0 1 .426-.293z\" id=\"ph形状结合\"/><path d=\"M13.765 1.027a.6.6 0 0 1 .778.573v12.805a.6.6 0 1 1-1.2 0V3.682L11.82 6.276a.6.6 0 1 1-1.04-.6l2.558-4.356a.599.599 0 0 1 .427-.293z\" id=\"sort-secondary-color\" transform=\"rotate(-180 12.621 8.003)\"/></g></svg>\n </defs>\n </svg>\n`;\n\nexport const defaultSvgHtml = `\n<svg viewBox=\"0 0 16 16\" id=\"close1\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7.978 11.997l-.005.006L2.3 6.33l.83-.831 4.848 4.848L12.826 5.5l.83.83-5.673 5.673-.005-.006z\"/>\n</svg>`;\n\nexport const injectDefaultSvgIconSet = () => {\n inject([ThyIconRegistry, DomSanitizer], (iconRegistry: ThyIconRegistry, domSanitizer: DomSanitizer) => {\n iconRegistry.addSvgIconSetLiteral(domSanitizer.bypassSecurityTrustHtml(defaultInlineIconSet));\n })();\n};\n","function removeFromArray<T>(array: T[], item: T) {\n const index = array.indexOf(item);\n\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\n\nexport class FakeDataTransferItem implements DataTransferItem {\n type: string;\n\n constructor(\n private entry: FileSystemEntry,\n public kind: string\n ) {}\n\n getAsFile(): File {\n return this.entry as unknown as File;\n }\n\n getAsString(callback: FunctionStringCallback): void {\n throw new Error('Method not implemented.');\n }\n\n webkitGetAsEntry() {\n return this.entry;\n }\n}\n\nexport class FakeDataTransfer implements DataTransfer {\n dataByFormat = {};\n dropEffect: 'none' | 'copy' | 'link' | 'move' = 'none';\n effectAllowed: 'none' | 'copy' | 'copyLink' | 'copyMove' | 'link' | 'linkMove' | 'move' | 'all' | 'uninitialized' = 'all';\n files: FileList;\n types: string[] = [];\n items: DataTransferItemList;\n\n constructor(files?: File[], items?: DataTransferItem[]) {\n this.files = files as any;\n this.items = items as any;\n }\n\n clearData(dataFormat: string) {\n if (dataFormat) {\n delete this.dataByFormat[dataFormat];\n removeFromArray(this.types, dataFormat);\n } else {\n this.dataByFormat = {};\n this.types = [];\n }\n }\n\n getData = function (dataFormat: string) {\n return this.dataByFormat[dataFormat];\n };\n\n setData(dataFormat: string, data: string) {\n this.dataByFormat[dataFormat] = data;\n\n if (this.types.indexOf(dataFormat) < 0) {\n this.types.push(dataFormat);\n }\n\n return true;\n }\n\n setDragImage = function () {\n // don't do anything (the stub just makes sure there is no error thrown if someone tries to call the method)\n };\n}\n","import { XhrFactory } from '@angular/common';\nimport { HttpHeaders } from '@angular/common/http';\n\nexport class MockXhrFactory implements XhrFactory {\n mock: MockXMLHttpRequest;\n\n build(): XMLHttpRequest {\n return (this.mock = new MockXMLHttpRequest()) as any;\n }\n}\n\nexport class MockXMLHttpRequestUpload {\n constructor(private mock: MockXMLHttpRequest) {}\n\n addEventListener(event: 'progress', handler: Function) {\n this.mock.addEventListener(event === 'progress' ? 'uploadProgress' : event, handler);\n }\n\n removeEventListener(event: 'progress', handler: Function) {\n this.mock.removeEventListener(event === 'progress' ? 'uploadProgress' : event);\n }\n}\n\nexport class MockXMLHttpRequest {\n // Set by method calls.\n body: any;\n // TODO(issue/24571): remove '!'.\n method!: string;\n // TODO(issue/24571): remove '!'.\n url!: string;\n mockHeaders: { [key: string]: string } = {};\n mockAborted: boolean = false;\n\n // Directly settable interface.\n withCredentials: boolean = false;\n responseType: string = 'text';\n\n // Mocked response interface.\n response: any | undefined = undefined;\n responseText: string | undefined = undefined;\n responseURL: string | null = null;\n status: number = 0;\n statusText: string = '';\n mockResponseHeaders: string = '';\n readyState: number;\n\n listeners: {\n error?: (event: ErrorEvent) => void;\n load?: () => void;\n progress?: (event: ProgressEvent) => void;\n uploadProgress?: (event: ProgressEvent) => void;\n readystatechange?: () => void;\n } = {};\n\n upload = new MockXMLHttpRequestUpload(this);\n\n open(method: string, url: string): void {\n this.method = method;\n this.url = url;\n }\n\n send(body: any): void {\n this.body = body;\n }\n\n addEventListener(event: 'error' | 'load' | 'progress' | 'uploadProgress' | 'readystatechange', handler: Function): void {\n this.listeners[event] = handler as any;\n }\n\n removeEventListener(event: 'error' | 'load' | 'progress' | 'uploadProgress' | 'readystatechange'): void {\n delete this.listeners[event];\n }\n\n setRequestHeader(name: string, value: string): void {\n this.mockHeaders[name] = value;\n }\n\n getAllResponseHeaders(): string {\n return this.mockResponseHeaders;\n }\n\n getResponseHeader(header: string): string | null {\n return new HttpHeaders(this.mockResponseHeaders).get(header);\n }\n\n mockFlush(status: number, statusText: string, body?: string | object) {\n if (typeof body === 'string') {\n this.responseText = body;\n } else {\n this.response = body;\n }\n this.status = status;\n this.statusText = statusText;\n this.mockLoadEvent();\n }\n\n mockOnReadyStateChange(readyState: number = XMLHttpRequest.DONE) {\n this.readyState = XMLHttpRequest.DONE;\n this.listeners.readystatechange?.();\n }\n\n mockDownloadProgressEvent(loaded: number, total?: number): void {\n if (this.listeners.progress) {\n this.listeners.progress({ lengthComputable: total !== undefined, loaded, total } as any);\n }\n }\n\n mockUploadProgressEvent(loaded: number, total?: number) {\n if (this.listeners.uploadProgress) {\n this.listeners.uploadProgress({\n lengthComputable: total !== undefined,\n loaded,\n total\n } as any);\n }\n }\n\n mockLoadEvent(): void {\n if (this.listeners.load) {\n this.listeners.load();\n }\n }\n\n mockErrorEvent(error: any): void {\n if (this.listeners.error) {\n this.listeners.error(error);\n }\n }\n\n abort() {\n this.mockAborted = true;\n }\n}\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-testing.mjs","sources":["../../../src/testing/events.ts","../../../src/testing/dispatcher-events.ts","../../../src/testing/element-focus.ts","../../../src/testing/type-in-element.ts","../../../src/testing/thy-icon.ts","../../../src/testing/data-transfer.ts","../../../src/testing/xhr-mock.ts","../../../src/testing/ngx-tethys-testing.ts"],"sourcesContent":["import { ModifierKeys } from '@angular/cdk/testing';\n\n/**\n * Creates a browser MouseEvent with the specified options.\n * @docs-private\n */\nexport function createMouseEvent(\n type: string,\n clientX = 0,\n clientY = 0,\n button = 0,\n buttons = 1,\n detail = 1,\n modifiers: ModifierKeys = {},\n relatedTarget?: Element\n) {\n // Note: We cannot determine the position of the mouse event based on the screen\n // because the dimensions and position of the browser window are not available\n // To provide reasonable `screenX` and `screenY` coordinates, we simply use the\n // client coordinates as if the browser is opened in fullscreen.\n const screenX = clientX;\n const screenY = clientY;\n\n const event = new MouseEvent(type, {\n bubbles: true,\n cancelable: true,\n view: window,\n screenX,\n screenY,\n clientX,\n clientY,\n button,\n buttons,\n detail,\n relatedTarget,\n ctrlKey: !!modifiers.control,\n altKey: !!modifiers.alt,\n shiftKey: !!modifiers.shift,\n metaKey: !!modifiers.meta\n });\n\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n const originalPreventDefault = event.preventDefault.bind(event);\n event.preventDefault = function () {\n defineReadonlyEventProperty(event, 'defaultPrevented', true);\n return originalPreventDefault();\n };\n\n return event;\n}\n\n/**\n * Creates a browser `PointerEvent` with the specified options. Pointer events\n * by default will appear as if they are the primary pointer of their type.\n * https://www.w3.org/TR/pointerevents2/#dom-pointerevent-isprimary.\n *\n * For example, if pointer events for a multi-touch interaction are created, the non-primary\n * pointer touches would need to be represented by non-primary pointer events.\n *\n * @docs-private\n */\nexport function createPointerEvent(type: string, clientX = 0, clientY = 0, options: PointerEventInit = { isPrimary: true }) {\n return new PointerEvent(type, {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX,\n clientY,\n ...options\n });\n}\n\n/**\n * Creates a browser TouchEvent with the specified pointer coordinates.\n * @docs-private\n */\nexport function createTouchEvent(type: string, pageX = 0, pageY = 0) {\n // In favor of creating events that work for most of the browsers, the event is created\n // as a basic UI Event. The necessary details for the event will be set manually.\n const event = document.createEvent('UIEvent');\n const touchDetails = { pageX, pageY };\n\n // TS3.6 removes the initUIEvent method and suggests porting to \"new UIEvent()\".\n (event as any).initUIEvent(type, true, true, window, 0);\n\n // Most of the browsers don't have a \"initTouchEvent\" method that can be used to define\n // the touch details.\n defineReadonlyEventProperty(event, 'touches', [touchDetails]);\n defineReadonlyEventProperty(event, 'targetTouches', [touchDetails]);\n defineReadonlyEventProperty(event, 'changedTouches', [touchDetails]);\n\n return event;\n}\n\n/**\n * Creates a keyboard event with the specified key and modifiers.\n * @docs-private\n */\nexport function createKeyboardEvent(type: string, keyCode: number = 0, key: string = '', modifiers: ModifierKeys = {}) {\n const event = document.createEvent('KeyboardEvent');\n const originalPreventDefault = event.preventDefault.bind(event);\n\n // Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.\n // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyEvent.\n if ((event as any).initKeyEvent !== undefined) {\n (event as any).initKeyEvent(type, true, true, window, modifiers.control, modifiers.alt, modifiers.shift, modifiers.meta, keyCode);\n } else {\n // `initKeyboardEvent` expects to receive modifiers as a whitespace-delimited string\n // See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyboardEvent\n let modifiersList = '';\n\n if (modifiers.control) {\n modifiersList += 'Control ';\n }\n\n if (modifiers.alt) {\n modifiersList += 'Alt ';\n }\n\n if (modifiers.shift) {\n modifiersList += 'Shift ';\n }\n\n if (modifiers.meta) {\n modifiersList += 'Meta ';\n }\n\n // TS3.6 removed the `initKeyboardEvent` method and suggested porting to\n // `new KeyboardEvent()` constructor. We cannot use that as we support IE11.\n // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyboardEvent.\n (event as any).initKeyboardEvent(\n type,\n true /* canBubble */,\n true /* cancelable */,\n window /* view */,\n 0 /* char */,\n key /* key */,\n 0 /* location */,\n modifiersList.trim() /* modifiersList */,\n false /* repeat */\n );\n }\n\n // Webkit Browsers don't set the keyCode when calling the init function.\n // See related bug https://bugs.webkit.org/show_bug.cgi?id=16735\n defineReadonlyEventProperty(event, 'keyCode', keyCode);\n defineReadonlyEventProperty(event, 'key', key);\n defineReadonlyEventProperty(event, 'ctrlKey', !!modifiers.control);\n defineReadonlyEventProperty(event, 'altKey', !!modifiers.alt);\n defineReadonlyEventProperty(event, 'shiftKey', !!modifiers.shift);\n defineReadonlyEventProperty(event, 'metaKey', !!modifiers.meta);\n\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n event.preventDefault = function () {\n defineReadonlyEventProperty(event, 'defaultPrevented', true);\n return originalPreventDefault();\n };\n\n return event;\n}\n\n/**\n * Creates a fake event object with any desired event type.\n * @docs-private\n */\nexport function createFakeEvent(type: string, canBubble = false, cancelable = true) {\n const event = document.createEvent('Event');\n event.initEvent(type, canBubble, cancelable);\n return event;\n}\n\nexport function createDragEvent(type: string, dataTransfer: DataTransfer | null = null, canBubble = false, cancelable = true) {\n const event = document.createEvent('DragEvent');\n event.initEvent(type, canBubble, cancelable);\n defineReadonlyEventProperty(event, 'dataTransfer', dataTransfer);\n return event;\n}\n\n/**\n * Defines a readonly property on the given event object. Readonly properties on an event object\n * are always set as configurable as that matches default readonly properties for DOM event objects.\n */\nfunction defineReadonlyEventProperty(event: Event, propertyName: string, value: any) {\n Object.defineProperty(event, propertyName, { get: () => value, configurable: true });\n}\n","import { ModifierKeys } from '@angular/cdk/testing';\nimport { createFakeEvent, createKeyboardEvent, createMouseEvent, createPointerEvent, createTouchEvent } from './events';\n\n/**\n * Utility to dispatch any event on a Node.\n * @docs-private\n */\nexport function dispatchEvent<T extends Event>(node: Node | Window, event: T): T {\n node.dispatchEvent(event);\n return event;\n}\n\n/**\n * Shorthand to dispatch a fake event on a specified node.\n * @docs-private\n */\nexport function dispatchFakeEvent(node: Node | Window, type: string, canBubble?: boolean): Event {\n return dispatchEvent(node, createFakeEvent(type, canBubble));\n}\n\n/**\n * Shorthand to dispatch a keyboard event with a specified key code and\n * optional modifiers.\n * @docs-private\n */\nexport function dispatchKeyboardEvent(node: Node, type: string, keyCode?: number, key?: string, modifiers?: ModifierKeys): KeyboardEvent {\n return dispatchEvent(node, createKeyboardEvent(type, keyCode, key, modifiers));\n}\n\n/**\n * Shorthand to dispatch a mouse event on the specified coordinates.\n * @docs-private\n */\nexport function dispatchMouseEvent(\n node: Node,\n type: string,\n clientX = 0,\n clientY = 0,\n button?: number,\n buttons?: number,\n detail?: number,\n modifiers?: ModifierKeys,\n relatedTarget?: Element\n): MouseEvent {\n return dispatchEvent(node, createMouseEvent(type, clientX, clientY, button, buttons, detail, modifiers, relatedTarget));\n}\n\n/**\n * Shorthand to dispatch a pointer event on the specified coordinates.\n * @docs-private\n */\nexport function dispatchPointerEvent(node: Node, type: string, clientX = 0, clientY = 0, options?: PointerEventInit): PointerEvent {\n return dispatchEvent(node, createPointerEvent(type, clientX, clientY, options)) as PointerEvent;\n}\n\n/**\n * Shorthand to dispatch a touch event on the specified coordinates.\n * @docs-private\n */\nexport function dispatchTouchEvent(node: Node, type: string, x = 0, y = 0) {\n return dispatchEvent(node, createTouchEvent(type, x, y));\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { dispatchFakeEvent } from './dispatcher-events';\n\n/**\n * Patches an elements focus and blur methods to emit events consistently and predictably.\n * This is necessary, because some browsers, like IE11, will call the focus handlers asynchronously,\n * while others won't fire them at all if the browser window is not focused.\n */\nexport function patchElementFocus(element: HTMLElement) {\n element.focus = () => dispatchFakeEvent(element, 'focus');\n element.blur = () => dispatchFakeEvent(element, 'blur');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { dispatchFakeEvent } from './dispatcher-events';\n\n/**\n * Focuses an input, sets its value and dispatches\n * the `input` event, simulating the user typing.\n * @param value Value to be set on the input.\n * @param element Element onto which to set the value.\n */\nexport function typeInElement(value: string, element: HTMLInputElement) {\n element.focus();\n element.value = value;\n dispatchFakeEvent(element, 'input');\n}\n","import { ThyIconRegistry } from 'ngx-tethys/icon';\n\nimport { Provider, Sanitizer, SecurityContext } from '@angular/core';\nimport { inject } from '@angular/core/testing';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nexport const bypassSanitizeProvider: Provider = {\n provide: Sanitizer,\n useValue: {\n sanitize: (context: SecurityContext, html: string) => html\n }\n};\n\nexport const defaultInlineIconSet = `\n <svg>\n <defs>\n <svg id=\"inbox\"><path d=\"M10 10\"/></svg>\n <svg id=\"close\"><path d=\"M10 10\"/></svg>\n <svg id=\"close-bold\"><path d=\"M10 10\"/></svg>\n <svg id=\"calendar-check\"><path d=\"M10 10\"/></svg>\n <svg id=\"calendar\"><path d=\"M10 10\"/></svg>\n <svg id=\"angle-down\"><path d=\"M10 10\"/></svg>\n <svg id=\"check\"><path d=\"M10 10\"/></svg>\n <svg id=\"application-fill\"></svg>\n <svg id=\"angle-right\"></svg>\n <svg id=\"minus-circle-fill\"></svg>\n <svg id=\"check-circle-fill\"></svg>\n <svg id=\"waring-fill\"></svg>\n <svg id=\"close-circle-fill\"></svg>\n <svg id=\"question-circle-fill\"></svg>\n <svg id=\"more-bold\"></svg>\n <svg id=\"filter\">\n <title>Filter Title</title>\n <defs> <linearGradient id=\"Gradient1\"><stop class=\"stop1\" offset=\"0%\"/><stop class=\"stop2\" offset=\"50%\"/><stop class=\"stop3\" offset=\"100%\"/></linearGradient></defs>\n <style> #rect1 { fill: url(#Gradient1); }</style>\n <path d=\"filter\" style=\" \"/>\n </svg>\n <svg id=\"close-circle-bold-fill\"></svg>\n <svg id=\"search\"></svg>\n <svg id=\"sort-tt\"><style>.circle { fill: orange; }</style><g id=\"phnormal/sort-tt\" stroke-width=\"1\" fill-rule=\"nonzero\"><path d=\"M10 10 0 0 1 5.1 1.5v12.99a.6.6 0 0 1-1.2 0V3.607L2.466 6.082a.6.6 0 1 1-1.04-.6l2.47-4.262a.599.599 0 0 1 .426-.293z\" id=\"ph形状结合\"/><path d=\"M13.765 1.027a.6.6 0 0 1 .778.573v12.805a.6.6 0 1 1-1.2 0V3.682L11.82 6.276a.6.6 0 1 1-1.04-.6l2.558-4.356a.599.599 0 0 1 .427-.293z\" id=\"sort-secondary-color\" transform=\"rotate(-180 12.621 8.003)\"/></g></svg>\n </defs>\n </svg>\n`;\n\nexport const defaultSvgHtml = `\n<svg viewBox=\"0 0 16 16\" id=\"close1\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7.978 11.997l-.005.006L2.3 6.33l.83-.831 4.848 4.848L12.826 5.5l.83.83-5.673 5.673-.005-.006z\"/>\n</svg>`;\n\nexport const injectDefaultSvgIconSet = () => {\n inject([ThyIconRegistry, DomSanitizer], (iconRegistry: ThyIconRegistry, domSanitizer: DomSanitizer) => {\n iconRegistry.addSvgIconSetLiteral(domSanitizer.bypassSecurityTrustHtml(defaultInlineIconSet));\n })();\n};\n","function removeFromArray<T>(array: T[], item: T) {\n const index = array.indexOf(item);\n\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\n\nexport class FakeDataTransferItem implements DataTransferItem {\n type!: string;\n\n constructor(\n private entry: FileSystemEntry,\n public kind: string\n ) {}\n\n getAsFile(): File {\n return this.entry as unknown as File;\n }\n\n getAsString(callback: FunctionStringCallback): void {\n throw new Error('Method not implemented.');\n }\n\n webkitGetAsEntry() {\n return this.entry;\n }\n}\n\nexport class FakeDataTransfer implements DataTransfer {\n dataByFormat = {};\n dropEffect: 'none' | 'copy' | 'link' | 'move' = 'none';\n effectAllowed: 'none' | 'copy' | 'copyLink' | 'copyMove' | 'link' | 'linkMove' | 'move' | 'all' | 'uninitialized' = 'all';\n files!: FileList;\n types: string[] = [];\n items!: DataTransferItemList;\n\n constructor(files?: File[], items?: DataTransferItem[]) {\n this.files = files as any;\n this.items = items as any;\n }\n\n clearData(dataFormat: string) {\n if (dataFormat) {\n delete (this.dataByFormat as any)[dataFormat];\n removeFromArray(this.types, dataFormat);\n } else {\n this.dataByFormat = {};\n this.types = [];\n }\n }\n\n getData = (dataFormat: string) => {\n return (this.dataByFormat as any)[dataFormat];\n };\n\n setData(dataFormat: string, data: string) {\n (this.dataByFormat as any)[dataFormat] = data;\n\n if (this.types.indexOf(dataFormat) < 0) {\n this.types.push(dataFormat);\n }\n\n return true;\n }\n\n setDragImage = function () {\n // don't do anything (the stub just makes sure there is no error thrown if someone tries to call the method)\n };\n}\n","import { XhrFactory } from '@angular/common';\nimport { HttpHeaders } from '@angular/common/http';\n\nexport class MockXhrFactory implements XhrFactory {\n mock!: MockXMLHttpRequest;\n\n build(): XMLHttpRequest {\n return (this.mock = new MockXMLHttpRequest()) as any;\n }\n}\n\nexport class MockXMLHttpRequestUpload {\n constructor(private mock: MockXMLHttpRequest) {}\n\n addEventListener(event: 'progress', handler: Function) {\n this.mock.addEventListener(event === 'progress' ? 'uploadProgress' : event, handler);\n }\n\n removeEventListener(event: 'progress', handler: Function) {\n this.mock.removeEventListener(event === 'progress' ? 'uploadProgress' : event);\n }\n}\n\nexport class MockXMLHttpRequest {\n // Set by method calls.\n body!: any;\n // TODO(issue/24571): remove '!'.\n method!: string;\n // TODO(issue/24571): remove '!'.\n url!: string;\n mockHeaders: { [key: string]: string } = {};\n mockAborted: boolean = false;\n\n // Directly settable interface.\n withCredentials: boolean = false;\n responseType: string = 'text';\n\n // Mocked response interface.\n response: any | undefined = undefined;\n responseText: string | undefined = undefined;\n responseURL: string | null = null;\n status: number = 0;\n statusText: string = '';\n mockResponseHeaders: string = '';\n readyState!: number;\n\n listeners: {\n error?: (event: ErrorEvent) => void;\n load?: () => void;\n progress?: (event: ProgressEvent) => void;\n uploadProgress?: (event: ProgressEvent) => void;\n readystatechange?: () => void;\n } = {};\n\n upload = new MockXMLHttpRequestUpload(this);\n\n open(method: string, url: string): void {\n this.method = method;\n this.url = url;\n }\n\n send(body: any): void {\n this.body = body;\n }\n\n addEventListener(event: 'error' | 'load' | 'progress' | 'uploadProgress' | 'readystatechange', handler: Function): void {\n this.listeners[event] = handler as any;\n }\n\n removeEventListener(event: 'error' | 'load' | 'progress' | 'uploadProgress' | 'readystatechange'): void {\n delete this.listeners[event];\n }\n\n setRequestHeader(name: string, value: string): void {\n this.mockHeaders[name] = value;\n }\n\n getAllResponseHeaders(): string {\n return this.mockResponseHeaders;\n }\n\n getResponseHeader(header: string): string | null {\n return new HttpHeaders(this.mockResponseHeaders).get(header);\n }\n\n mockFlush(status: number, statusText: string, body?: string | object) {\n if (typeof body === 'string') {\n this.responseText = body;\n } else {\n this.response = body;\n }\n this.status = status;\n this.statusText = statusText;\n this.mockLoadEvent();\n }\n\n mockOnReadyStateChange(readyState: number = XMLHttpRequest.DONE) {\n this.readyState = XMLHttpRequest.DONE;\n this.listeners.readystatechange?.();\n }\n\n mockDownloadProgressEvent(loaded: number, total?: number): void {\n if (this.listeners.progress) {\n this.listeners.progress({ lengthComputable: total !== undefined, loaded, total } as any);\n }\n }\n\n mockUploadProgressEvent(loaded: number, total?: number) {\n if (this.listeners.uploadProgress) {\n this.listeners.uploadProgress({\n lengthComputable: total !== undefined,\n loaded,\n total\n } as any);\n }\n }\n\n mockLoadEvent(): void {\n if (this.listeners.load) {\n this.listeners.load();\n }\n }\n\n mockErrorEvent(error: any): void {\n if (this.listeners.error) {\n this.listeners.error(error);\n }\n }\n\n abort() {\n this.mockAborted = true;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}