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
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-dialog.mjs","sources":["../../../src/dialog/confirm/token.ts","../../../src/dialog/dialog-animations.ts","../../../src/dialog/dialog.config.ts","../../../src/dialog/dialog.options.ts","../../../src/dialog/dialog-container.component.ts","../../../src/dialog/dialog-ref.ts","../../../src/dialog/dialog.service.ts","../../../src/dialog/body/dialog-body.component.ts","../../../src/dialog/confirm.config.ts","../../../src/dialog/header/dialog-header.component.ts","../../../src/dialog/header/dialog-header.component.html","../../../src/dialog/confirm/confirm.component.ts","../../../src/dialog/confirm/confirm.component.html","../../../src/dialog/footer/dialog-footer.component.ts","../../../src/dialog/footer/dialog-footer.component.html","../../../src/dialog/dialog.module.ts","../../../src/dialog/ngx-tethys-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport interface ThyConfirmAbstractComponent {\n okText: string;\n okType: string;\n cancelText: string;\n okLoadingText: string;\n}\n\nexport const THY_CONFIRM_COMPONENT_TOKEN = new InjectionToken<ThyConfirmAbstractComponent>('thy-confirm-component-token');\n","import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\nconst animationBody = [\n // Note: The `enter` animation transitions to `transform: none`, because for some reason\n // specifying the transform explicitly, causes IE both to blur the dialog content and\n // decimate the animation performance. Leaving it as `none` solves both issues. translate(-300px,-100px)\n state('void, exit', style({ opacity: 0, transform: 'scale(0.1)' })),\n state('enter', style({ transform: 'none' })),\n transition('* => enter', animate('200ms cubic-bezier(0, 0, 0.57, 1)', style({ transform: 'none', opacity: 1 }))),\n transition('* => exit', animate('150ms cubic-bezier(0.24, 0.18, 0.96, 0.52)', style({ transform: 'scale(0.3)', opacity: 0 })))\n];\n\n/**\n * Animations used by MatDialog.\n * @docs-private\n */\nexport const thyDialogAnimations: {\n readonly dialogContainer: AnimationTriggerMetadata;\n} = {\n dialogContainer: trigger('dialogContainer', animationBody)\n};\n\n// export const setAnimationStart\n","import { ThyAbstractOverlayConfig, ThyAbstractOverlayPosition } from 'ngx-tethys/core';\n\nimport { ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\n/** Valid ARIA roles for a dialog element. */\nexport type ThyDialogRole = 'dialog' | 'alertdialog';\n\nexport enum ThyDialogSizes {\n lg = 'lg',\n /**\n * 已废弃,命名错误,请使用 superLg\n * @deprecated\n */\n supperLg = 'supper-lg',\n superLg = 'super-lg',\n maxLg = 'max-lg',\n md = 'md',\n sm = 'sm',\n full = 'full'\n}\n\n/**\n * 通过ThyDialog服务端打开模态框的配置\n * @description.en-us Configuration for opening a modal dialog with the ThyDialog service.\n * @public\n * @order 20\n */\nexport class ThyDialogConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /**\n * 对话框元素的 ARIA 角色\n * @description.en-us The ARIA role of the dialog element.\n */\n role?: ThyDialogRole = 'dialog';\n\n /**\n * 定位模态框的弹出位置\n * @description.en-us Position overrides.\n */\n position?: ThyAbstractOverlayPosition;\n\n /**\n * 模态框的大小,ThyDialogSizes: sm (400)、md (660)、lg (800)、maxLg (980)、superLg (94vw)、full (全屏)\n * @default md\n * @description.en-us Dialog size md, lg, sm\n */\n size?: ThyDialogSizes;\n\n /**\n * 用于模态框的滚动策略\n * @description.en-us Scroll strategy to be used for the dialog.\n */\n scrollStrategy?: ScrollStrategy;\n}\n\n/** Injection token that can be used to specify default dialog options. */\nexport const THY_DIALOG_DEFAULT_OPTIONS = new InjectionToken<ThyDialogConfig>('thy-dialog-default-options');\n\nexport const THY_DIALOG_DEFAULT_OPTIONS_PROVIDER = {\n provide: THY_DIALOG_DEFAULT_OPTIONS,\n useValue: {\n role: 'dialog',\n hasBackdrop: true,\n backdropClass: '',\n panelClass: '',\n backdropClosable: true,\n closeOnNavigation: true,\n autoFocus: true,\n restoreFocus: true,\n restoreFocusOptions: {\n preventScroll: true\n },\n hostClass: 'thy-dialog-content'\n }\n};\n\nexport type ThyDialogFooterAlign = 'left' | 'right' | 'center';\n\nexport class ThyDialogLayoutConfig {\n footerAlign?: ThyDialogFooterAlign;\n footerDivided?: boolean;\n}\n\nexport const THY_DIALOG_LAYOUT_CONFIG = new InjectionToken<ThyDialogLayoutConfig>('thy-dialog-layout-config');\n\nexport const THY_DIALOG_LAYOUT_CONFIG_PROVIDER = {\n provide: THY_DIALOG_LAYOUT_CONFIG,\n useValue: {\n footerAlign: 'left',\n footerDivided: false\n }\n};\n","import { ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport const dialogAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'dialog',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { reqAnimFrame, ThyAbstractOverlayContainer, ThyClickPositioner, ThyPortalOutlet } from 'ngx-tethys/core';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { PortalModule } from '@angular/cdk/portal';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n NgZone,\n OnDestroy,\n Renderer2,\n ViewChild,\n inject,\n DOCUMENT\n} from '@angular/core';\n\nimport { thyDialogAnimations } from './dialog-animations';\nimport { ThyDialogConfig } from './dialog.config';\nimport { dialogAbstractOverlayOptions } from './dialog.options';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-dialog-container',\n template: ` <ng-template thyPortalOutlet></ng-template> `,\n // Using OnPush for dialogs caused some sync issues, e.g. custom ngModel can't to detect changes\n // Disabled until we can track them down.\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [thyDialogAnimations.dialogContainer],\n host: {\n class: 'thy-dialog-container',\n tabindex: '-1',\n 'aria-modal': 'true',\n '[attr.id]': 'id',\n '[attr.role]': 'config.role',\n '[attr.aria-labelledby]': 'config.ariaLabel ? null : ariaLabelledBy',\n '[attr.aria-label]': 'config.ariaLabel',\n '[attr.aria-describedby]': 'config.ariaDescribedBy || null',\n '[@dialogContainer]': 'animationState',\n '(@dialogContainer.start)': 'onAnimationStart($event)',\n '(@dialogContainer.done)': 'onAnimationDone($event)'\n },\n imports: [PortalModule, ThyPortalOutlet]\n})\nexport class ThyDialogContainer extends ThyAbstractOverlayContainer implements OnDestroy {\n private elementRef = inject(ElementRef);\n private document = inject(DOCUMENT);\n config = inject(ThyDialogConfig);\n private clickPositioner = inject(ThyClickPositioner);\n private focusTrapFactory = inject(FocusTrapFactory);\n private ngZone = inject(NgZone);\n private renderer = inject(Renderer2);\n\n animationOpeningDone: Observable<AnimationEvent>;\n animationClosingDone: Observable<AnimationEvent>;\n\n @ViewChild(ThyPortalOutlet, { static: true })\n portalOutlet: ThyPortalOutlet;\n\n @HostBinding(`attr.id`)\n id: string;\n\n /** State of the dialog animation. */\n animationState: 'void' | 'enter' | 'exit' = 'void';\n\n /** Emits when an animation state changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** ID of the element that should be considered as the dialog's label. */\n ariaLabelledBy: string | null = null;\n\n /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n private elementFocusedBeforeDialogWasOpened: HTMLElement | null = null;\n\n /** The class that traps and manages focus within the dialog. */\n private focusTrap: FocusTrap;\n\n private savePreviouslyFocusedElement() {\n if (this.document) {\n this.elementFocusedBeforeDialogWasOpened = this.document.activeElement as HTMLElement;\n\n // Note that there is no focus method when rendering on the server.\n if (this.elementRef.nativeElement.focus) {\n // Note: this is being run outside of the Angular zone because `element.focus()` doesn't require\n // running change detection.\n this.ngZone.runOutsideAngular(() =>\n // Move focus onto the dialog immediately in order to prevent the user from accidentally\n // opening multiple dialogs at the same time. Needs to be async, because the element\n // may not be focusable immediately.\n\n // Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.\n // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#setting-focus\n // `setTimeout` is a macrotask and macrotasks are executed within the current rendering frame.\n // Animation tasks are executed within the next rendering frame.\n reqAnimFrame(() => this.elementRef.nativeElement.focus())\n );\n }\n }\n }\n\n /** Moves the focus inside the focus trap. */\n private trapFocus() {\n const element = this.elementRef.nativeElement;\n\n if (!this.focusTrap) {\n this.focusTrap = this.focusTrapFactory.create(element);\n }\n\n // If we were to attempt to focus immediately, then the content of the dialog would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty.\n if (this.config.autoFocus) {\n this.focusTrap.focusInitialElementWhenReady();\n } else {\n const activeElement = this.document.activeElement;\n\n // Otherwise ensure that focus is on the dialog container. It's possible that a different\n // component tried to move focus while the open animation was running. See:\n // https://github.com/angular/components/issues/16215. Note that we only want to do this\n // if the focus isn't inside the dialog already, because it's possible that the consumer\n // turned off `autoFocus` in order to move focus themselves.\n if (activeElement !== element && !element.contains(activeElement)) {\n element.focus();\n }\n }\n }\n\n private restoreFocus() {\n const toFocus = this.elementFocusedBeforeDialogWasOpened;\n\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (this.config.restoreFocus && toFocus && typeof toFocus.focus === 'function') {\n toFocus.focus(this.config.restoreFocusOptions);\n }\n\n if (this.focusTrap) {\n this.focusTrap.destroy();\n }\n }\n\n private setTransformOrigin() {\n this.clickPositioner.runTaskUseLastPosition(lastPosition => {\n if (lastPosition) {\n const containerElement: HTMLElement = this.elementRef.nativeElement;\n const transformOrigin = `${lastPosition.x - containerElement.offsetLeft}px ${\n lastPosition.y - containerElement.offsetTop\n }px 0px`;\n containerElement.style.transformOrigin = transformOrigin;\n // 手动修改动画状态为从 void 到 enter, 开启动画\n }\n this.animationState = 'enter';\n this.changeDetectorRef.markForCheck();\n });\n }\n\n constructor() {\n const changeDetectorRef = inject(ChangeDetectorRef);\n\n super(dialogAbstractOverlayOptions, changeDetectorRef);\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'void';\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n /* Prohibit operations on elements inside the container during animation execution */\n this.animationStateChanged\n .pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'start' && event.toState === 'exit';\n })\n )\n .subscribe(() => {\n this.renderer.setStyle(this.elementRef.nativeElement, 'pointer-events', 'none');\n });\n }\n\n beforeAttachPortal(): void {\n this.setTransformOrigin();\n this.savePreviouslyFocusedElement();\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n onAnimationDone(event: AnimationEvent) {\n if (event.toState === 'void') {\n this.trapFocus();\n } else if (event.toState === 'exit') {\n this.restoreFocus();\n }\n this.animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n ngOnDestroy() {\n super.destroy();\n }\n}\n","import { GlobalPositionStrategy, OverlayRef } from '@angular/cdk/overlay';\nimport {\n ThyAbstractInternalOverlayRef,\n ThyAbstractOverlayOptions,\n ThyAbstractOverlayPosition,\n ThyAbstractOverlayRef\n} from 'ngx-tethys/core';\n\nimport { ThyDialogContainer } from './dialog-container.component';\nimport { ThyDialogConfig } from './dialog.config';\nimport { dialogAbstractOverlayOptions } from './dialog.options';\n\n/**\n * @publicApi\n * @order 30\n */\nexport interface ThyAbstractDialog {\n toTop(id: string): void;\n}\n\nexport abstract class ThyDialogRef<T, TResult = unknown> extends ThyAbstractOverlayRef<T, ThyDialogContainer, TResult> {}\n\nexport class ThyInternalDialogRef<T, TResult = unknown> extends ThyAbstractInternalOverlayRef<T, ThyDialogContainer, TResult> {\n thyDialog: ThyAbstractDialog;\n\n protected get options(): ThyAbstractOverlayOptions {\n return dialogAbstractOverlayOptions;\n }\n\n constructor() {\n super();\n }\n\n override initialize(\n overlayRef: OverlayRef,\n containerInstance: ThyDialogContainer,\n config: ThyDialogConfig<T>,\n service: ThyAbstractDialog\n ): void {\n super.initialize(overlayRef, containerInstance, config);\n this.thyDialog = service;\n }\n\n /**\n * Updates the dialog's position.\n * @param position New dialog position.\n */\n updatePosition(position?: ThyAbstractOverlayPosition): this {\n this.updateGlobalPosition(position);\n return this;\n }\n\n /**\n * Updates the dialog's width and height.\n * @param width New width of the dialog.\n * @param height New height of the dialog.\n */\n updateSizeAndPosition(width: string = '', height: string = '', position?: ThyAbstractOverlayPosition): this {\n (this.getPositionStrategy() as GlobalPositionStrategy).width(width).height(height);\n this.updatePosition(position);\n return this;\n }\n\n /**\n * Update dialog to top\n */\n toTop() {\n this.thyDialog.toTop(this.id);\n }\n}\n","import { ThyAbstractOverlayRef, ThyAbstractOverlayService, ThyClickPositioner } from 'ngx-tethys/core';\nimport { of } from 'rxjs';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, OverlayConfig, OverlayContainer, OverlayKeyboardDispatcher, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { Injectable, Injector, OnDestroy, StaticProvider, TemplateRef, inject } from '@angular/core';\n\nimport { isString } from 'ngx-tethys/util';\nimport { ThyConfirmConfig } from './confirm.config';\nimport { THY_CONFIRM_COMPONENT_TOKEN, ThyConfirmAbstractComponent } from './confirm/token';\nimport { ThyDialogContainer } from './dialog-container.component';\nimport { ThyDialogRef, ThyInternalDialogRef } from './dialog-ref';\nimport { THY_DIALOG_DEFAULT_OPTIONS, ThyDialogConfig, ThyDialogSizes } from './dialog.config';\nimport { dialogAbstractOverlayOptions } from './dialog.options';\n\n/**\n * @public\n * @order 10\n */\n@Injectable()\nexport class ThyDialog extends ThyAbstractOverlayService<ThyDialogConfig, ThyDialogContainer> implements OnDestroy {\n private confirmComponentType = inject<ComponentType<ThyConfirmAbstractComponent>>(THY_CONFIRM_COMPONENT_TOKEN);\n\n private overlayKeyboardDispatcher = inject(OverlayKeyboardDispatcher);\n\n private overlayContainer = inject(OverlayContainer);\n\n protected buildOverlayConfig(config: ThyDialogConfig<any>): OverlayConfig {\n const size = config.size || ThyDialogSizes.md;\n const overlayConfig = this.buildBaseOverlayConfig(config, [`dialog-${size}`]);\n overlayConfig.positionStrategy = this.overlay.position().global();\n overlayConfig.scrollStrategy = config.scrollStrategy || this.overlay.scrollStrategies.block();\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThyDialogConfig<any>): ThyDialogContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThyDialogConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThyDialogContainer, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThyDialogContainer>(containerPortal);\n\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T, TResult>(\n overlayRef: OverlayRef,\n containerInstance: ThyDialogContainer,\n config: ThyDialogConfig<any>\n ): ThyAbstractOverlayRef<T, ThyDialogContainer, TResult> {\n const dialogRef = new ThyInternalDialogRef<T, TResult>();\n dialogRef.initialize(overlayRef, containerInstance, config, this);\n return dialogRef;\n }\n\n protected createInjector<T>(config: ThyDialogConfig, dialogRef: ThyDialogRef<T>, dialogContainer: ThyDialogContainer): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThyDialogContainer, useValue: dialogContainer },\n {\n provide: ThyDialogRef,\n useValue: dialogRef\n }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n constructor() {\n const overlay = inject(Overlay);\n const injector = inject(Injector);\n const defaultConfig = inject(THY_DIALOG_DEFAULT_OPTIONS, { optional: true })!;\n const clickPositioner = inject(ThyClickPositioner);\n\n super(dialogAbstractOverlayOptions, overlay, injector, defaultConfig);\n clickPositioner.initialize();\n }\n\n /**\n * 打开 Dialog\n */\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: ThyDialogConfig<TData>\n ): ThyDialogRef<T, TResult> {\n const dialogRef = this.openOverlay(componentOrTemplateRef, config);\n const dialogRefInternal = dialogRef as ThyInternalDialogRef<T, TResult>;\n dialogRefInternal.updateSizeAndPosition(\n dialogRef.containerInstance.config.width,\n dialogRef.containerInstance.config.height,\n dialogRef.containerInstance.config.position\n );\n return dialogRef as ThyDialogRef<T, TResult>;\n }\n\n /**\n * 打开 Confirm\n */\n confirm(options: ThyConfirmConfig) {\n return this.open(this.confirmComponentType, {\n initialState: {\n options: options\n }\n });\n }\n\n /**\n * 根据 id 获取 Dialog\n */\n getDialogById(id: string): ThyDialogRef<any> | undefined {\n return this.getAbstractOverlayById(id) as ThyDialogRef<any> | undefined;\n }\n\n /**\n * 获取所有打开的 Dialog\n */\n getOpenedDialogs(): ThyDialogRef<any>[] {\n return this.getAbstractOverlays();\n }\n\n /**\n * @description.en-us Finds the closest ThyDialogRef to an element by looking at the DOM.\n * @description 获取与指定元素最接近的 ThyDialogRef\n */\n getClosestDialog(element: HTMLElement): ThyDialogRef<any> | undefined {\n let parent: HTMLElement | null = element.parentElement;\n\n while (parent && !parent.classList.contains('thy-dialog-container')) {\n parent = parent.parentElement;\n }\n if (parent && parent.id) {\n return this.getDialogById(parent.id);\n }\n return null;\n }\n\n /**\n * Update dialog to top\n */\n toTop(idOrOverlayRef: string | ThyDialogRef<unknown, ThyDialogContainer>) {\n let dialogRef: ThyAbstractOverlayRef<unknown, ThyDialogContainer>;\n if (isString(idOrOverlayRef)) {\n dialogRef = this.openedOverlays.find(item => item.id === idOrOverlayRef);\n } else {\n dialogRef = idOrOverlayRef;\n }\n if (dialogRef) {\n const overlayRef = dialogRef.getOverlayRef();\n const containerElement = this.overlayContainer.getContainerElement();\n containerElement.appendChild(overlayRef.backdropElement);\n containerElement.appendChild(overlayRef.hostElement);\n this.overlayKeyboardDispatcher.remove(overlayRef);\n this.overlayKeyboardDispatcher.add(overlayRef);\n this.openedOverlays = [...(this.openedOverlays || []).filter(item => item.id !== dialogRef?.id), dialogRef];\n }\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { Component, Input, OnInit, HostBinding, inject, input } from '@angular/core';\nimport { ThyDialog } from '../dialog.service';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 模态框的主体组件\n * @name thy-dialog-body\n * @order 50\n */\n@Component({\n selector: 'thy-dialog-body',\n template: '<ng-content></ng-content>',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'thyDialogBody',\n hostDirectives: [CdkScrollable],\n host: {\n class: 'dialog-body',\n '[class.dialog-body-clear-padding]': 'thyClearPadding()'\n }\n})\nexport class ThyDialogBody implements OnInit {\n private dialog = inject(ThyDialog);\n /**\n * 清除间距\n */\n readonly thyClearPadding = input(false, { transform: coerceBooleanProperty });\n\n ngOnInit() {}\n}\n","import { InjectionToken } from '@angular/core';\nimport { ThyFormGroupFooterAlign } from 'ngx-tethys/form';\nimport { injectLocale, ThyI18nService } from 'ngx-tethys/i18n';\nimport { Observable } from 'rxjs';\n\n/**\n * 确认框配置\n * @public\n * @order 70\n */\nexport interface ThyConfirmConfig {\n /**\n * 标题\n */\n title?: string;\n\n /**\n * 提示内容\n */\n content: string;\n\n /**\n * 确认按钮的文案\n */\n okText?: string;\n\n /**\n * 确认按钮的类型,primary | danger\n */\n okType?: 'primary' | 'danger';\n\n /**\n * 确认按钮处于提交状态时的文案\n */\n okLoadingText?: string;\n\n /**\n * 底部对齐方式,left | center | right\n */\n footerAlign?: ThyFormGroupFooterAlign;\n\n /**\n * 确认后的回调事件\n */\n onOk?: () => Observable<boolean> | void;\n\n /**\n * 取消按钮的文案\n */\n cancelText?: string;\n\n /**\n * 取消后的回调事件\n */\n onCancel?: () => void;\n}\n\nexport const THY_CONFIRM_DEFAULT_OPTIONS = new InjectionToken<ThyConfirmConfig>('thy-confirm-default-options');\n\n/**\n * @deprecated\n */\nexport const THY_CONFIRM_DEFAULT_OPTIONS_VALUE = {\n title: '确认删除',\n okText: '确定',\n okType: 'danger',\n cancelText: '取消',\n footerAlign: 'left'\n};\n\nfunction useConfirmDefaultOptions() {\n const locale = injectLocale('dialog');\n return {\n title: locale().title,\n okText: locale().ok,\n okType: 'danger',\n cancelText: locale().cancel,\n footerAlign: 'left'\n };\n}\n\nexport const THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER = {\n provide: THY_CONFIRM_DEFAULT_OPTIONS,\n useFactory: useConfirmDefaultOptions,\n deps: [ThyI18nService]\n};\n","import { Component, TemplateRef, OnInit, ElementRef, inject, input, output, contentChild, computed, Signal } from '@angular/core';\nimport { ThyDialog } from '../dialog.service';\nimport { ThyDialogContainer } from '../dialog-container.component';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyInternalDialogRef } from '../dialog-ref';\nimport { ThyAction } from 'ngx-tethys/action';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 模态框头部组件\n * @name thy-dialog-header\n * @order 40\n */\n@Component({\n selector: 'thy-dialog-header',\n templateUrl: './dialog-header.component.html',\n exportAs: 'thyDialogHeader',\n host: {\n class: 'dialog-header thy-dialog-header',\n '[class.thy-dialog-header-lg]': `thySize() === 'lg'`,\n '[class.thy-dialog-header-divided]': `thyDivided()`\n },\n imports: [NgTemplateOutlet, ThyIcon, ThyAction]\n})\nexport class ThyDialogHeader implements OnInit {\n private elementRef = inject(ElementRef);\n private dialog = inject(ThyDialog);\n private translate = inject(ThyTranslate);\n private dialogContainer = inject(ThyDialogContainer, { optional: true })!;\n\n /**\n * 自定义头部模板\n */\n public readonly headerTemplate = contentChild<TemplateRef<any>>('dialogHeader');\n\n /**\n * 标题\n */\n readonly thyTitle = input<string>();\n\n /**\n * 大小,只有大的详情页场景会使用 lg,左右 padding 缩小至 20px\n * @type lg | md\n */\n readonly thySize = input<'lg' | 'md'>('md');\n\n /**\n * 是否显示分割线\n */\n readonly thyDivided = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 标题的多语言 Key\n */\n readonly thyTitleTranslationKey = input<string>();\n\n readonly title: Signal<string> = computed(() => {\n const title = this.thyTitle();\n const titleTranslationKey = this.thyTitleTranslationKey();\n return title || (titleTranslationKey && this.translate.instant(titleTranslationKey));\n });\n\n /**\n * 头部图标\n */\n readonly thyIcon = input<string>();\n\n /**\n * 关闭事件\n */\n readonly thyOnClose = output<Event>();\n\n ngOnInit() {\n if (!this.dialogContainer) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the ThyDialogContainerComponent isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the ThyDialogContainerComponent by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n const dialogRef = this.dialog.getClosestDialog(this.elementRef.nativeElement) as ThyInternalDialogRef<any>;\n this.dialogContainer = dialogRef ? dialogRef.containerInstance : null;\n }\n\n // change in next microtask avoid throw ExpressionChangedAfterItHasBeenCheckedError\n // because sub component change parent's HostBinding property (ariaLabelledBy)\n Promise.resolve().then(() => {\n if (this.dialogContainer) {\n this.dialogContainer.ariaLabelledBy = this.title();\n }\n });\n }\n\n close(event?: Event) {\n this.thyOnClose.emit(event);\n this.dialog.close();\n }\n}\n","@if (headerTemplate()) {\n <template [ngTemplateOutlet]=\"headerTemplate()\"></template>\n} @else {\n <h3 class=\"dialog-title\"><thy-icon [thyIconName]=\"thyIcon()\"></thy-icon>{{ title() }}</h3>\n <a href=\"javascript:;\" class=\"mr-n2\" thyAction thyActionIcon=\"close\" (click)=\"close($event)\"></a>\n}\n","import { ThyFormDirective, ThyFormGroupFooterAlign, ThyFormGroupFooter } from 'ngx-tethys/form';\nimport { finalize } from 'rxjs/operators';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, Signal, inject, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { ThyDialogBody } from '../body/dialog-body.component';\nimport { ThyConfirmConfig, THY_CONFIRM_DEFAULT_OPTIONS } from '../confirm.config';\nimport { ThyDialogRef } from '../dialog-ref';\nimport { ThyDialogHeader } from '../header/dialog-header.component';\nimport { injectLocale, ThyDialogLocale } from 'ngx-tethys/i18n';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-confirm-default',\n templateUrl: './confirm.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyDialogHeader, ThyDialogBody, FormsModule, ThyFormDirective, ThyFormGroupFooter, NgClass, ThyButton]\n})\nexport class ThyConfirm implements OnInit, OnDestroy {\n private dialogRef = inject<ThyDialogRef<ThyConfirm>>(ThyDialogRef);\n private changeDetectorRef = inject(ChangeDetectorRef);\n private defaultConfig = inject(THY_CONFIRM_DEFAULT_OPTIONS);\n private locale: Signal<ThyDialogLocale> = injectLocale('dialog');\n\n loading: boolean;\n\n readonly options = input<ThyConfirmConfig>();\n\n public title: string;\n\n public content: string;\n\n public okText: string;\n\n public okType: string;\n\n public cancelText: string;\n\n public okLoadingText: string;\n\n public footerAlign: ThyFormGroupFooterAlign;\n\n constructor() {\n this.defaultConfig = {\n ...{\n title: this.locale().title,\n okText: this.locale().ok,\n okType: 'danger',\n cancelText: this.locale().cancel,\n footerAlign: 'left'\n },\n ...this.defaultConfig\n };\n }\n\n ngOnInit() {\n this.defaultConfig = { ...this.defaultConfig, ...this.options() };\n this.title = this.defaultConfig.title;\n this.content = this.defaultConfig.content;\n this.okText = this.defaultConfig.okText;\n this.okType = this.defaultConfig.okType;\n this.cancelText = this.defaultConfig.cancelText;\n this.okLoadingText = this.defaultConfig.okLoadingText || this.okText;\n this.footerAlign = this.defaultConfig.footerAlign;\n }\n\n confirm() {\n this.loading = true;\n const result = this.options().onOk();\n if (result && result.subscribe) {\n result\n .pipe(\n finalize(() => {\n this.loading = false;\n this.changeDetectorRef.markForCheck();\n })\n )\n .subscribe(success => {\n if (success) {\n this.close();\n }\n });\n } else {\n this.close();\n }\n }\n\n close() {\n this.options()?.onCancel?.();\n this.dialogRef.close();\n }\n\n ngOnDestroy() {}\n}\n","<thy-dialog-header [thyTitle]=\"title || 'Install Angular'\" (thyOnClose)=\"close()\"> </thy-dialog-header>\n<thy-dialog-body class=\"thy-form\">\n <form thyForm name=\"thyConfirm\" thyLayout=\"vertical\">\n <div class=\"form-group\">\n <p [innerHTML]=\"content\"></p>\n </div>\n <thy-form-group-footer [thyAlign]=\"footerAlign\">\n <div class=\"thy-confirm-footer\" [ngClass]=\"'thy-confirm-footer-' + footerAlign\">\n <button [thyButton]=\"okType\" (click)=\"confirm()\" [thyLoading]=\"loading\" [thyLoadingText]=\"okLoadingText\">{{ okText }}</button>\n <button thyButton=\"link-secondary\" (click)=\"close()\" class=\"thy-confirm-cancel\">{{ cancelText }}</button>\n </div>\n </thy-form-group-footer>\n </form>\n</thy-dialog-body>\n","import { useHostRenderer } from '@tethys/cdk/dom';\nimport { Component, OnInit, TemplateRef, inject, input, contentChild, computed, WritableSignal, effect, Input } from '@angular/core';\n\nimport { THY_DIALOG_LAYOUT_CONFIG, ThyDialogFooterAlign } from '../dialog.config';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 模态框底部组件\n * @name thy-dialog-footer\n * @order 60\n */\n@Component({\n selector: 'thy-dialog-footer',\n templateUrl: './dialog-footer.component.html',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'thyDialogFooter',\n imports: [NgTemplateOutlet]\n})\nexport class ThyDialogFooter implements OnInit {\n private dialogLayoutConfig = inject(THY_DIALOG_LAYOUT_CONFIG);\n\n /**\n * 自定义弹出框底部的描述模板\n * @type TemplateRef\n */\n readonly description = contentChild<TemplateRef<any>>('description');\n\n /**\n * 底部是否有分割线,可全局配置默认值\n * @type boolean\n */\n readonly thyDivided = input(undefined, { transform: coerceBooleanProperty });\n\n divided = computed(() => {\n if (this.thyDivided() === undefined) {\n return this.dialogLayoutConfig.footerDivided;\n }\n return this.thyDivided();\n });\n\n /**\n * 对齐方式,可全局配置默认值\n * @type left | right | center\n */\n readonly thyAlign = input<ThyDialogFooterAlign>();\n\n readonly align = computed(() => (!!this.thyAlign() ? this.thyAlign() : this.dialogLayoutConfig.footerAlign));\n\n private hostRenderer = useHostRenderer();\n\n constructor() {}\n\n ngOnInit() {\n this.hostRenderer.updateClassByMap({\n 'dialog-footer': true,\n [`dialog-footer-actions-align-${this.align()}`]: true,\n 'dialog-footer-border-top': this.divided()\n });\n }\n}\n","<div class=\"dialog-footer-actions btn-pair\">\n <ng-content></ng-content>\n</div>\n@if (description()) {\n <div class=\"dialog-footer-description\">\n <ng-container [ngTemplateOutlet]=\"description()\"></ng-container>\n </div>\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyActionModule } from 'ngx-tethys/action';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyFormModule } from 'ngx-tethys/form';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyDialogBody } from './body/dialog-body.component';\nimport { THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER } from './confirm.config';\nimport { ThyConfirm } from './confirm/confirm.component';\nimport { THY_CONFIRM_COMPONENT_TOKEN } from './confirm/token';\nimport { ThyDialogContainer } from './dialog-container.component';\nimport { THY_DIALOG_DEFAULT_OPTIONS_PROVIDER, THY_DIALOG_LAYOUT_CONFIG_PROVIDER } from './dialog.config';\nimport { ThyDialog } from './dialog.service';\nimport { ThyDialogFooter } from './footer/dialog-footer.component';\nimport { ThyDialogHeader } from './header/dialog-header.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ThySharedModule,\n PortalModule,\n OverlayModule,\n ThyButtonModule,\n ThyIconModule,\n ThyFormModule,\n FormsModule,\n ThyActionModule,\n ThyDialogContainer,\n ThyDialogHeader,\n ThyDialogBody,\n ThyDialogFooter,\n ThyConfirm\n ],\n providers: [\n ThyDialog,\n THY_DIALOG_DEFAULT_OPTIONS_PROVIDER,\n THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER,\n THY_DIALOG_LAYOUT_CONFIG_PROVIDER,\n {\n provide: THY_CONFIRM_COMPONENT_TOKEN,\n useValue: ThyConfirm\n }\n ],\n exports: [ThyDialogContainer, ThyDialogHeader, ThyDialogBody, ThyDialogFooter]\n})\nexport class ThyDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-dialog.mjs","sources":["../../../src/dialog/confirm/token.ts","../../../src/dialog/dialog-animations.ts","../../../src/dialog/dialog.config.ts","../../../src/dialog/dialog.options.ts","../../../src/dialog/dialog-container.component.ts","../../../src/dialog/dialog-ref.ts","../../../src/dialog/dialog.service.ts","../../../src/dialog/body/dialog-body.component.ts","../../../src/dialog/confirm.config.ts","../../../src/dialog/header/dialog-header.component.ts","../../../src/dialog/header/dialog-header.component.html","../../../src/dialog/confirm/confirm.component.ts","../../../src/dialog/confirm/confirm.component.html","../../../src/dialog/footer/dialog-footer.component.ts","../../../src/dialog/footer/dialog-footer.component.html","../../../src/dialog/dialog.module.ts","../../../src/dialog/ngx-tethys-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport interface ThyConfirmAbstractComponent {\n okText: string;\n okType: string;\n cancelText: string;\n okLoadingText: string;\n}\n\nexport const THY_CONFIRM_COMPONENT_TOKEN = new InjectionToken<ThyConfirmAbstractComponent>('thy-confirm-component-token');\n","import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\nconst animationBody = [\n // Note: The `enter` animation transitions to `transform: none`, because for some reason\n // specifying the transform explicitly, causes IE both to blur the dialog content and\n // decimate the animation performance. Leaving it as `none` solves both issues. translate(-300px,-100px)\n state('void, exit', style({ opacity: 0, transform: 'scale(0.1)' })),\n state('enter', style({ transform: 'none' })),\n transition('* => enter', animate('200ms cubic-bezier(0, 0, 0.57, 1)', style({ transform: 'none', opacity: 1 }))),\n transition('* => exit', animate('150ms cubic-bezier(0.24, 0.18, 0.96, 0.52)', style({ transform: 'scale(0.3)', opacity: 0 })))\n];\n\n/**\n * Animations used by MatDialog.\n * @docs-private\n */\nexport const thyDialogAnimations: {\n readonly dialogContainer: AnimationTriggerMetadata;\n} = {\n dialogContainer: trigger('dialogContainer', animationBody)\n};\n\n// export const setAnimationStart\n","import { ThyAbstractOverlayConfig, ThyAbstractOverlayPosition } from 'ngx-tethys/core';\n\nimport { ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\n/** Valid ARIA roles for a dialog element. */\nexport type ThyDialogRole = 'dialog' | 'alertdialog';\n\nexport enum ThyDialogSizes {\n lg = 'lg',\n /**\n * 已废弃,命名错误,请使用 superLg\n * @deprecated\n */\n supperLg = 'supper-lg',\n superLg = 'super-lg',\n maxLg = 'max-lg',\n md = 'md',\n sm = 'sm',\n full = 'full'\n}\n\n/**\n * 通过ThyDialog服务端打开模态框的配置\n * @description.en-us Configuration for opening a modal dialog with the ThyDialog service.\n * @public\n * @order 20\n */\nexport class ThyDialogConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /**\n * 对话框元素的 ARIA 角色\n * @description.en-us The ARIA role of the dialog element.\n */\n role?: ThyDialogRole = 'dialog';\n\n /**\n * 定位模态框的弹出位置\n * @description.en-us Position overrides.\n */\n position?: ThyAbstractOverlayPosition;\n\n /**\n * 模态框的大小,ThyDialogSizes: sm (400)、md (660)、lg (800)、maxLg (980)、superLg (94vw)、full (全屏)\n * @default md\n * @description.en-us Dialog size md, lg, sm\n */\n size?: ThyDialogSizes;\n\n /**\n * 用于模态框的滚动策略\n * @description.en-us Scroll strategy to be used for the dialog.\n */\n scrollStrategy?: ScrollStrategy;\n}\n\n/** Injection token that can be used to specify default dialog options. */\nexport const THY_DIALOG_DEFAULT_OPTIONS = new InjectionToken<ThyDialogConfig>('thy-dialog-default-options');\n\nexport const THY_DIALOG_DEFAULT_OPTIONS_PROVIDER = {\n provide: THY_DIALOG_DEFAULT_OPTIONS,\n useValue: {\n role: 'dialog',\n hasBackdrop: true,\n backdropClass: '',\n panelClass: '',\n backdropClosable: true,\n closeOnNavigation: true,\n autoFocus: true,\n restoreFocus: true,\n restoreFocusOptions: {\n preventScroll: true\n },\n hostClass: 'thy-dialog-content'\n }\n};\n\nexport type ThyDialogFooterAlign = 'left' | 'right' | 'center';\n\nexport class ThyDialogLayoutConfig {\n footerAlign?: ThyDialogFooterAlign;\n footerDivided?: boolean;\n}\n\nexport const THY_DIALOG_LAYOUT_CONFIG = new InjectionToken<ThyDialogLayoutConfig>('thy-dialog-layout-config');\n\nexport const THY_DIALOG_LAYOUT_CONFIG_PROVIDER = {\n provide: THY_DIALOG_LAYOUT_CONFIG,\n useValue: {\n footerAlign: 'left',\n footerDivided: false\n }\n};\n","import { ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport const dialogAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'dialog',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { reqAnimFrame, ThyAbstractOverlayContainer, ThyClickPositioner, ThyPortalOutlet } from 'ngx-tethys/core';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { PortalModule } from '@angular/cdk/portal';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n NgZone,\n OnDestroy,\n Renderer2,\n ViewChild,\n inject,\n DOCUMENT\n} from '@angular/core';\n\nimport { thyDialogAnimations } from './dialog-animations';\nimport { ThyDialogConfig } from './dialog.config';\nimport { dialogAbstractOverlayOptions } from './dialog.options';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-dialog-container',\n template: ` <ng-template thyPortalOutlet></ng-template> `,\n // Using OnPush for dialogs caused some sync issues, e.g. custom ngModel can't to detect changes\n // Disabled until we can track them down.\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [thyDialogAnimations.dialogContainer],\n host: {\n class: 'thy-dialog-container',\n tabindex: '-1',\n 'aria-modal': 'true',\n '[attr.id]': 'id',\n '[attr.role]': 'config.role',\n '[attr.aria-labelledby]': 'config.ariaLabel ? null : ariaLabelledBy',\n '[attr.aria-label]': 'config.ariaLabel',\n '[attr.aria-describedby]': 'config.ariaDescribedBy || null',\n '[@dialogContainer]': 'animationState',\n '(@dialogContainer.start)': 'onAnimationStart($event)',\n '(@dialogContainer.done)': 'onAnimationDone($event)'\n },\n imports: [PortalModule, ThyPortalOutlet]\n})\nexport class ThyDialogContainer extends ThyAbstractOverlayContainer implements OnDestroy {\n private elementRef = inject(ElementRef);\n private document = inject(DOCUMENT);\n config = inject(ThyDialogConfig);\n private clickPositioner = inject(ThyClickPositioner);\n private focusTrapFactory = inject(FocusTrapFactory);\n private ngZone = inject(NgZone);\n private renderer = inject(Renderer2);\n\n animationOpeningDone!: Observable<AnimationEvent>;\n animationClosingDone!: Observable<AnimationEvent>;\n\n @ViewChild(ThyPortalOutlet, { static: true })\n portalOutlet!: ThyPortalOutlet;\n\n @HostBinding(`attr.id`)\n id!: string;\n\n /** State of the dialog animation. */\n animationState: 'void' | 'enter' | 'exit' = 'void';\n\n /** Emits when an animation state changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** ID of the element that should be considered as the dialog's label. */\n ariaLabelledBy: string | null = null;\n\n /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n private elementFocusedBeforeDialogWasOpened: HTMLElement | null = null;\n\n /** The class that traps and manages focus within the dialog. */\n private focusTrap!: FocusTrap;\n\n private savePreviouslyFocusedElement() {\n if (this.document) {\n this.elementFocusedBeforeDialogWasOpened = this.document.activeElement as HTMLElement;\n\n // Note that there is no focus method when rendering on the server.\n if (this.elementRef.nativeElement.focus) {\n // Note: this is being run outside of the Angular zone because `element.focus()` doesn't require\n // running change detection.\n this.ngZone.runOutsideAngular(() =>\n // Move focus onto the dialog immediately in order to prevent the user from accidentally\n // opening multiple dialogs at the same time. Needs to be async, because the element\n // may not be focusable immediately.\n\n // Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.\n // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#setting-focus\n // `setTimeout` is a macrotask and macrotasks are executed within the current rendering frame.\n // Animation tasks are executed within the next rendering frame.\n reqAnimFrame(() => this.elementRef.nativeElement.focus())\n );\n }\n }\n }\n\n /** Moves the focus inside the focus trap. */\n private trapFocus() {\n const element = this.elementRef.nativeElement;\n\n if (!this.focusTrap) {\n this.focusTrap = this.focusTrapFactory.create(element);\n }\n\n // If we were to attempt to focus immediately, then the content of the dialog would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty.\n if (this.config.autoFocus) {\n this.focusTrap.focusInitialElementWhenReady();\n } else {\n const activeElement = this.document.activeElement;\n\n // Otherwise ensure that focus is on the dialog container. It's possible that a different\n // component tried to move focus while the open animation was running. See:\n // https://github.com/angular/components/issues/16215. Note that we only want to do this\n // if the focus isn't inside the dialog already, because it's possible that the consumer\n // turned off `autoFocus` in order to move focus themselves.\n if (activeElement !== element && !element.contains(activeElement)) {\n element.focus();\n }\n }\n }\n\n private restoreFocus() {\n const toFocus = this.elementFocusedBeforeDialogWasOpened;\n\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (this.config.restoreFocus && toFocus && typeof toFocus.focus === 'function') {\n toFocus.focus(this.config.restoreFocusOptions);\n }\n\n if (this.focusTrap) {\n this.focusTrap.destroy();\n }\n }\n\n private setTransformOrigin() {\n this.clickPositioner.runTaskUseLastPosition(lastPosition => {\n if (lastPosition) {\n const containerElement: HTMLElement = this.elementRef.nativeElement;\n const transformOrigin = `${lastPosition.x - containerElement.offsetLeft}px ${\n lastPosition.y - containerElement.offsetTop\n }px 0px`;\n containerElement.style.transformOrigin = transformOrigin;\n // 手动修改动画状态为从 void 到 enter, 开启动画\n }\n this.animationState = 'enter';\n this.changeDetectorRef.markForCheck();\n });\n }\n\n constructor() {\n const changeDetectorRef = inject(ChangeDetectorRef);\n\n super(dialogAbstractOverlayOptions, changeDetectorRef);\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'void';\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n /* Prohibit operations on elements inside the container during animation execution */\n this.animationStateChanged\n .pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'start' && event.toState === 'exit';\n })\n )\n .subscribe(() => {\n this.renderer.setStyle(this.elementRef.nativeElement, 'pointer-events', 'none');\n });\n }\n\n beforeAttachPortal(): void {\n this.setTransformOrigin();\n this.savePreviouslyFocusedElement();\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n onAnimationDone(event: AnimationEvent) {\n if (event.toState === 'void') {\n this.trapFocus();\n } else if (event.toState === 'exit') {\n this.restoreFocus();\n }\n this.animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n ngOnDestroy() {\n super.destroy();\n }\n}\n","import { GlobalPositionStrategy, OverlayRef } from '@angular/cdk/overlay';\nimport {\n ThyAbstractInternalOverlayRef,\n ThyAbstractOverlayOptions,\n ThyAbstractOverlayPosition,\n ThyAbstractOverlayRef\n} from 'ngx-tethys/core';\n\nimport { ThyDialogContainer } from './dialog-container.component';\nimport { ThyDialogConfig } from './dialog.config';\nimport { dialogAbstractOverlayOptions } from './dialog.options';\n\n/**\n * @publicApi\n * @order 30\n */\nexport interface ThyAbstractDialog {\n toTop(id: string): void;\n}\n\nexport abstract class ThyDialogRef<T, TResult = unknown> extends ThyAbstractOverlayRef<T, ThyDialogContainer, TResult> {}\n\nexport class ThyInternalDialogRef<T, TResult = unknown> extends ThyAbstractInternalOverlayRef<T, ThyDialogContainer, TResult> {\n thyDialog!: ThyAbstractDialog;\n\n protected get options(): ThyAbstractOverlayOptions {\n return dialogAbstractOverlayOptions;\n }\n\n constructor() {\n super();\n }\n\n override initialize(\n overlayRef: OverlayRef,\n containerInstance: ThyDialogContainer,\n config: ThyDialogConfig<T>,\n service: ThyAbstractDialog\n ): void {\n super.initialize(overlayRef, containerInstance, config);\n this.thyDialog = service;\n }\n\n /**\n * Updates the dialog's position.\n * @param position New dialog position.\n */\n updatePosition(position?: ThyAbstractOverlayPosition): this {\n this.updateGlobalPosition(position);\n return this;\n }\n\n /**\n * Updates the dialog's width and height.\n * @param width New width of the dialog.\n * @param height New height of the dialog.\n */\n updateSizeAndPosition(width: string = '', height: string = '', position?: ThyAbstractOverlayPosition): this {\n (this.getPositionStrategy() as GlobalPositionStrategy).width(width).height(height);\n this.updatePosition(position);\n return this;\n }\n\n /**\n * Update dialog to top\n */\n toTop() {\n this.thyDialog.toTop(this.id);\n }\n}\n","import { ThyAbstractOverlayRef, ThyAbstractOverlayService, ThyClickPositioner } from 'ngx-tethys/core';\nimport { of } from 'rxjs';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, OverlayConfig, OverlayContainer, OverlayKeyboardDispatcher, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { Injectable, Injector, OnDestroy, StaticProvider, TemplateRef, inject } from '@angular/core';\n\nimport { isString } from 'ngx-tethys/util';\nimport { ThyConfirmConfig } from './confirm.config';\nimport { THY_CONFIRM_COMPONENT_TOKEN, ThyConfirmAbstractComponent } from './confirm/token';\nimport { ThyDialogContainer } from './dialog-container.component';\nimport { ThyDialogRef, ThyInternalDialogRef } from './dialog-ref';\nimport { THY_DIALOG_DEFAULT_OPTIONS, ThyDialogConfig, ThyDialogSizes } from './dialog.config';\nimport { dialogAbstractOverlayOptions } from './dialog.options';\n\n/**\n * @public\n * @order 10\n */\n@Injectable()\nexport class ThyDialog extends ThyAbstractOverlayService<ThyDialogConfig, ThyDialogContainer> implements OnDestroy {\n private confirmComponentType = inject<ComponentType<ThyConfirmAbstractComponent>>(THY_CONFIRM_COMPONENT_TOKEN);\n\n private overlayKeyboardDispatcher = inject(OverlayKeyboardDispatcher);\n\n private overlayContainer = inject(OverlayContainer);\n\n protected buildOverlayConfig(config: ThyDialogConfig<any>): OverlayConfig {\n const size = config.size || ThyDialogSizes.md;\n const overlayConfig = this.buildBaseOverlayConfig(config, [`dialog-${size}`]);\n overlayConfig.positionStrategy = this.overlay.position().global();\n overlayConfig.scrollStrategy = config.scrollStrategy || this.overlay.scrollStrategies.block();\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThyDialogConfig<any>): ThyDialogContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThyDialogConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThyDialogContainer, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThyDialogContainer>(containerPortal);\n\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T, TResult>(\n overlayRef: OverlayRef,\n containerInstance: ThyDialogContainer,\n config: ThyDialogConfig<any>\n ): ThyAbstractOverlayRef<T, ThyDialogContainer, TResult> {\n const dialogRef = new ThyInternalDialogRef<T, TResult>();\n dialogRef.initialize(overlayRef, containerInstance, config, this);\n return dialogRef;\n }\n\n protected createInjector<T>(config: ThyDialogConfig, dialogRef: ThyDialogRef<T>, dialogContainer: ThyDialogContainer): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThyDialogContainer, useValue: dialogContainer },\n {\n provide: ThyDialogRef,\n useValue: dialogRef\n }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n constructor() {\n const overlay = inject(Overlay);\n const injector = inject(Injector);\n const defaultConfig = inject(THY_DIALOG_DEFAULT_OPTIONS, { optional: true })!;\n const clickPositioner = inject(ThyClickPositioner);\n\n super(dialogAbstractOverlayOptions, overlay, injector, defaultConfig);\n clickPositioner.initialize();\n }\n\n /**\n * 打开 Dialog\n */\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: ThyDialogConfig<TData>\n ): ThyDialogRef<T, TResult> {\n const dialogRef = this.openOverlay(componentOrTemplateRef, config);\n const dialogRefInternal = dialogRef as ThyInternalDialogRef<T, TResult>;\n dialogRefInternal.updateSizeAndPosition(\n dialogRef.containerInstance.config.width,\n dialogRef.containerInstance.config.height,\n dialogRef.containerInstance.config.position\n );\n return dialogRef as ThyDialogRef<T, TResult>;\n }\n\n /**\n * 打开 Confirm\n */\n confirm(options: ThyConfirmConfig) {\n return this.open(this.confirmComponentType, {\n initialState: {\n options: options\n }\n });\n }\n\n /**\n * 根据 id 获取 Dialog\n */\n getDialogById(id: string): ThyDialogRef<any> | undefined {\n return this.getAbstractOverlayById(id) as ThyDialogRef<any> | undefined;\n }\n\n /**\n * 获取所有打开的 Dialog\n */\n getOpenedDialogs(): ThyDialogRef<any>[] {\n return this.getAbstractOverlays();\n }\n\n /**\n * @description.en-us Finds the closest ThyDialogRef to an element by looking at the DOM.\n * @description 获取与指定元素最接近的 ThyDialogRef\n */\n getClosestDialog(element: HTMLElement): ThyDialogRef<any> | undefined | null {\n let parent: HTMLElement | null = element.parentElement;\n\n while (parent && !parent.classList.contains('thy-dialog-container')) {\n parent = parent.parentElement;\n }\n if (parent && parent.id) {\n return this.getDialogById(parent.id);\n }\n return null;\n }\n\n /**\n * Update dialog to top\n */\n toTop(idOrOverlayRef: string | ThyDialogRef<unknown, ThyDialogContainer>) {\n let dialogRef: ThyAbstractOverlayRef<unknown, ThyDialogContainer> | undefined;\n if (isString(idOrOverlayRef)) {\n dialogRef = this.openedOverlays.find(item => item.id === idOrOverlayRef);\n } else {\n dialogRef = idOrOverlayRef;\n }\n if (dialogRef) {\n const overlayRef = dialogRef.getOverlayRef();\n const containerElement = this.overlayContainer.getContainerElement();\n containerElement.appendChild(overlayRef.backdropElement!);\n containerElement.appendChild(overlayRef.hostElement);\n this.overlayKeyboardDispatcher.remove(overlayRef);\n this.overlayKeyboardDispatcher.add(overlayRef);\n this.openedOverlays = [...(this.openedOverlays || []).filter(item => item.id !== dialogRef?.id), dialogRef];\n }\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { Component, Input, OnInit, HostBinding, inject, input } from '@angular/core';\nimport { ThyDialog } from '../dialog.service';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 模态框的主体组件\n * @name thy-dialog-body\n * @order 50\n */\n@Component({\n selector: 'thy-dialog-body',\n template: '<ng-content></ng-content>',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'thyDialogBody',\n hostDirectives: [CdkScrollable],\n host: {\n class: 'dialog-body',\n '[class.dialog-body-clear-padding]': 'thyClearPadding()'\n }\n})\nexport class ThyDialogBody implements OnInit {\n private dialog = inject(ThyDialog);\n /**\n * 清除间距\n */\n readonly thyClearPadding = input(false, { transform: coerceBooleanProperty });\n\n ngOnInit() {}\n}\n","import { InjectionToken } from '@angular/core';\nimport { ThyFormGroupFooterAlign } from 'ngx-tethys/form';\nimport { injectLocale, ThyI18nService } from 'ngx-tethys/i18n';\nimport { Observable } from 'rxjs';\n\n/**\n * 确认框配置\n * @public\n * @order 70\n */\nexport interface ThyConfirmConfig {\n /**\n * 标题\n */\n title?: string;\n\n /**\n * 提示内容\n */\n content: string;\n\n /**\n * 确认按钮的文案\n */\n okText?: string;\n\n /**\n * 确认按钮的类型,primary | danger\n */\n okType?: 'primary' | 'danger';\n\n /**\n * 确认按钮处于提交状态时的文案\n */\n okLoadingText?: string;\n\n /**\n * 底部对齐方式,left | center | right\n */\n footerAlign?: ThyFormGroupFooterAlign;\n\n /**\n * 确认后的回调事件\n */\n onOk?: () => Observable<boolean> | void;\n\n /**\n * 取消按钮的文案\n */\n cancelText?: string;\n\n /**\n * 取消后的回调事件\n */\n onCancel?: () => void;\n}\n\nexport const THY_CONFIRM_DEFAULT_OPTIONS = new InjectionToken<ThyConfirmConfig>('thy-confirm-default-options');\n\n/**\n * @deprecated\n */\nexport const THY_CONFIRM_DEFAULT_OPTIONS_VALUE = {\n title: '确认删除',\n okText: '确定',\n okType: 'danger',\n cancelText: '取消',\n footerAlign: 'left'\n};\n\nfunction useConfirmDefaultOptions() {\n const locale = injectLocale('dialog');\n return {\n title: locale().title,\n okText: locale().ok,\n okType: 'danger',\n cancelText: locale().cancel,\n footerAlign: 'left'\n };\n}\n\nexport const THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER = {\n provide: THY_CONFIRM_DEFAULT_OPTIONS,\n useFactory: useConfirmDefaultOptions,\n deps: [ThyI18nService]\n};\n","import { Component, TemplateRef, OnInit, ElementRef, inject, input, output, contentChild, computed, Signal } from '@angular/core';\nimport { ThyDialog } from '../dialog.service';\nimport { ThyDialogContainer } from '../dialog-container.component';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyInternalDialogRef } from '../dialog-ref';\nimport { ThyAction } from 'ngx-tethys/action';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 模态框头部组件\n * @name thy-dialog-header\n * @order 40\n */\n@Component({\n selector: 'thy-dialog-header',\n templateUrl: './dialog-header.component.html',\n exportAs: 'thyDialogHeader',\n host: {\n class: 'dialog-header thy-dialog-header',\n '[class.thy-dialog-header-lg]': `thySize() === 'lg'`,\n '[class.thy-dialog-header-divided]': `thyDivided()`\n },\n imports: [NgTemplateOutlet, ThyIcon, ThyAction]\n})\nexport class ThyDialogHeader implements OnInit {\n private elementRef = inject(ElementRef);\n private dialog = inject(ThyDialog);\n private translate = inject(ThyTranslate);\n private dialogContainer: ThyDialogContainer | null = inject(ThyDialogContainer, { optional: true })!;\n\n /**\n * 自定义头部模板\n */\n public readonly headerTemplate = contentChild<TemplateRef<any>>('dialogHeader');\n\n /**\n * 标题\n */\n readonly thyTitle = input<string>();\n\n /**\n * 大小,只有大的详情页场景会使用 lg,左右 padding 缩小至 20px\n * @type lg | md\n */\n readonly thySize = input<'lg' | 'md'>('md');\n\n /**\n * 是否显示分割线\n */\n readonly thyDivided = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 标题的多语言 Key\n */\n readonly thyTitleTranslationKey = input<string>();\n\n readonly title: Signal<string> = computed(() => {\n const title = this.thyTitle();\n const titleTranslationKey = this.thyTitleTranslationKey();\n return title || (titleTranslationKey && this.translate.instant(titleTranslationKey));\n });\n\n /**\n * 头部图标\n */\n readonly thyIcon = input<string>();\n\n /**\n * 关闭事件\n */\n readonly thyOnClose = output<Event | undefined>();\n\n ngOnInit() {\n if (!this.dialogContainer) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the ThyDialogContainerComponent isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the ThyDialogContainerComponent by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n const dialogRef = this.dialog.getClosestDialog(this.elementRef.nativeElement) as ThyInternalDialogRef<any>;\n this.dialogContainer = dialogRef ? dialogRef.containerInstance : null;\n }\n\n // change in next microtask avoid throw ExpressionChangedAfterItHasBeenCheckedError\n // because sub component change parent's HostBinding property (ariaLabelledBy)\n Promise.resolve().then(() => {\n if (this.dialogContainer) {\n this.dialogContainer.ariaLabelledBy = this.title();\n }\n });\n }\n\n close(event?: Event) {\n this.thyOnClose.emit(event);\n this.dialog.close();\n }\n}\n","@if (headerTemplate()) {\n <template [ngTemplateOutlet]=\"headerTemplate()\"></template>\n} @else {\n <h3 class=\"dialog-title\"><thy-icon [thyIconName]=\"thyIcon()\"></thy-icon>{{ title() }}</h3>\n <a href=\"javascript:;\" class=\"mr-n2\" thyAction thyActionIcon=\"close\" (click)=\"close($event)\"></a>\n}\n","import { ThyFormDirective, ThyFormGroupFooterAlign, ThyFormGroupFooter } from 'ngx-tethys/form';\nimport { finalize } from 'rxjs/operators';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, Signal, inject, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { ThyDialogBody } from '../body/dialog-body.component';\nimport { ThyConfirmConfig, THY_CONFIRM_DEFAULT_OPTIONS } from '../confirm.config';\nimport { ThyDialogRef } from '../dialog-ref';\nimport { ThyDialogHeader } from '../header/dialog-header.component';\nimport { injectLocale, ThyDialogLocale } from 'ngx-tethys/i18n';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-confirm-default',\n templateUrl: './confirm.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyDialogHeader, ThyDialogBody, FormsModule, ThyFormDirective, ThyFormGroupFooter, NgClass, ThyButton]\n})\nexport class ThyConfirm implements OnInit, OnDestroy {\n private dialogRef = inject<ThyDialogRef<ThyConfirm>>(ThyDialogRef);\n private changeDetectorRef = inject(ChangeDetectorRef);\n private defaultConfig = inject(THY_CONFIRM_DEFAULT_OPTIONS);\n private locale: Signal<ThyDialogLocale> = injectLocale('dialog');\n\n loading!: boolean;\n\n readonly options = input<ThyConfirmConfig>();\n\n public title: string | undefined;\n\n public content!: string;\n\n public okText: string | undefined;\n\n public okType: string | undefined;\n\n public cancelText: string | undefined;\n\n public okLoadingText: string | undefined;\n\n public footerAlign: ThyFormGroupFooterAlign | undefined;\n\n constructor() {\n this.defaultConfig = {\n ...{\n title: this.locale().title,\n okText: this.locale().ok,\n okType: 'danger',\n cancelText: this.locale().cancel,\n footerAlign: 'left'\n },\n ...this.defaultConfig\n };\n }\n\n ngOnInit() {\n this.defaultConfig = { ...this.defaultConfig, ...this.options() };\n this.title = this.defaultConfig.title;\n this.content = this.defaultConfig.content;\n this.okText = this.defaultConfig.okText;\n this.okType = this.defaultConfig.okType;\n this.cancelText = this.defaultConfig.cancelText;\n this.okLoadingText = this.defaultConfig.okLoadingText || this.okText;\n this.footerAlign = this.defaultConfig.footerAlign;\n }\n\n confirm() {\n this.loading = true;\n const result = this.options()!.onOk!();\n if (result && result!.subscribe!) {\n result\n .pipe(\n finalize(() => {\n this.loading = false;\n this.changeDetectorRef.markForCheck();\n })\n )\n .subscribe(success => {\n if (success) {\n this.close();\n }\n });\n } else {\n this.close();\n }\n }\n\n close() {\n this.options()?.onCancel?.();\n this.dialogRef.close();\n }\n\n ngOnDestroy() {}\n}\n","<thy-dialog-header [thyTitle]=\"title || 'Install Angular'\" (thyOnClose)=\"close()\"> </thy-dialog-header>\n<thy-dialog-body class=\"thy-form\">\n <form thyForm name=\"thyConfirm\" thyLayout=\"vertical\">\n <div class=\"form-group\">\n <p [innerHTML]=\"content\"></p>\n </div>\n <thy-form-group-footer [thyAlign]=\"footerAlign\">\n <div class=\"thy-confirm-footer\" [ngClass]=\"'thy-confirm-footer-' + footerAlign\">\n <button [thyButton]=\"okType\" (click)=\"confirm()\" [thyLoading]=\"loading\" [thyLoadingText]=\"okLoadingText\">{{ okText }}</button>\n <button thyButton=\"link-secondary\" (click)=\"close()\" class=\"thy-confirm-cancel\">{{ cancelText }}</button>\n </div>\n </thy-form-group-footer>\n </form>\n</thy-dialog-body>\n","import { useHostRenderer } from '@tethys/cdk/dom';\nimport { Component, OnInit, TemplateRef, inject, input, contentChild, computed, WritableSignal, effect, Input } from '@angular/core';\n\nimport { THY_DIALOG_LAYOUT_CONFIG, ThyDialogFooterAlign } from '../dialog.config';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 模态框底部组件\n * @name thy-dialog-footer\n * @order 60\n */\n@Component({\n selector: 'thy-dialog-footer',\n templateUrl: './dialog-footer.component.html',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'thyDialogFooter',\n imports: [NgTemplateOutlet]\n})\nexport class ThyDialogFooter implements OnInit {\n private dialogLayoutConfig = inject(THY_DIALOG_LAYOUT_CONFIG);\n\n /**\n * 自定义弹出框底部的描述模板\n * @type TemplateRef\n */\n readonly description = contentChild<TemplateRef<any>>('description');\n\n /**\n * 底部是否有分割线,可全局配置默认值\n * @type boolean\n */\n readonly thyDivided = input(undefined, { transform: coerceBooleanProperty });\n\n divided = computed(() => {\n if (this.thyDivided() === undefined) {\n return this.dialogLayoutConfig.footerDivided;\n }\n return this.thyDivided();\n });\n\n /**\n * 对齐方式,可全局配置默认值\n * @type left | right | center\n */\n readonly thyAlign = input<ThyDialogFooterAlign>();\n\n readonly align = computed(() => (this.thyAlign() ? this.thyAlign() : this.dialogLayoutConfig.footerAlign));\n\n private hostRenderer = useHostRenderer();\n\n constructor() {}\n\n ngOnInit() {\n this.hostRenderer.updateClassByMap({\n 'dialog-footer': true,\n [`dialog-footer-actions-align-${this.align()}`]: true,\n 'dialog-footer-border-top': !!this.divided()\n });\n }\n}\n","<div class=\"dialog-footer-actions btn-pair\">\n <ng-content></ng-content>\n</div>\n@if (description()) {\n <div class=\"dialog-footer-description\">\n <ng-container [ngTemplateOutlet]=\"description()\"></ng-container>\n </div>\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyActionModule } from 'ngx-tethys/action';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyFormModule } from 'ngx-tethys/form';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyDialogBody } from './body/dialog-body.component';\nimport { THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER } from './confirm.config';\nimport { ThyConfirm } from './confirm/confirm.component';\nimport { THY_CONFIRM_COMPONENT_TOKEN } from './confirm/token';\nimport { ThyDialogContainer } from './dialog-container.component';\nimport { THY_DIALOG_DEFAULT_OPTIONS_PROVIDER, THY_DIALOG_LAYOUT_CONFIG_PROVIDER } from './dialog.config';\nimport { ThyDialog } from './dialog.service';\nimport { ThyDialogFooter } from './footer/dialog-footer.component';\nimport { ThyDialogHeader } from './header/dialog-header.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ThySharedModule,\n PortalModule,\n OverlayModule,\n ThyButtonModule,\n ThyIconModule,\n ThyFormModule,\n FormsModule,\n ThyActionModule,\n ThyDialogContainer,\n ThyDialogHeader,\n ThyDialogBody,\n ThyDialogFooter,\n ThyConfirm\n ],\n providers: [\n ThyDialog,\n THY_DIALOG_DEFAULT_OPTIONS_PROVIDER,\n THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER,\n THY_DIALOG_LAYOUT_CONFIG_PROVIDER,\n {\n provide: THY_CONFIRM_COMPONENT_TOKEN,\n useValue: ThyConfirm\n }\n ],\n exports: [ThyDialogContainer, ThyDialogHeader, ThyDialogBody, ThyDialogFooter]\n})\nexport class ThyDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -61,8 +61,8 @@ class ThyDivider {
61
61
  setColor() {
62
62
  this.hostRenderer.updateClass([`thy-divider-${this.thyColor()}`]);
63
63
  }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDivider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThyDivider, isStandalone: true, selector: "thy-divider", inputs: { thyVertical: { classPropertyName: "thyVertical", publicName: "thyVertical", isSignal: true, isRequired: false, transformFunction: null }, thyStyle: { classPropertyName: "thyStyle", publicName: "thyStyle", isSignal: true, isRequired: false, transformFunction: null }, thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null }, thyText: { classPropertyName: "thyText", publicName: "thyText", isSignal: true, isRequired: false, transformFunction: null }, thyTextDirection: { classPropertyName: "thyTextDirection", publicName: "thyTextDirection", isSignal: true, isRequired: false, transformFunction: null }, thyDeeper: { classPropertyName: "thyDeeper", publicName: "thyDeeper", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-divider": "true", "class.thy-divider-horizontal": "!thyVertical()", "class.thy-divider-vertical": "thyVertical()", "class.thy-divider-with-content": "textContent() || templateContent()", "class.thy-divider-with-content-left": "(textContent() || templateContent()) && thyTextDirection() === 'left'", "class.thy-divider-with-content-right": "(textContent() || templateContent()) && thyTextDirection() === 'right'", "class.thy-divider-with-content-center": "(textContent() || templateContent()) && thyTextDirection() === 'center'", "class.thy-divider-solid": "thyStyle() === 'solid'", "class.thy-divider-dashed": "thyStyle() === 'dashed'", "class.thy-divider-deeper": "!!thyDeeper()" } }, ngImport: i0, template: `
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDivider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyDivider, isStandalone: true, selector: "thy-divider", inputs: { thyVertical: { classPropertyName: "thyVertical", publicName: "thyVertical", isSignal: true, isRequired: false, transformFunction: null }, thyStyle: { classPropertyName: "thyStyle", publicName: "thyStyle", isSignal: true, isRequired: false, transformFunction: null }, thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null }, thyText: { classPropertyName: "thyText", publicName: "thyText", isSignal: true, isRequired: false, transformFunction: null }, thyTextDirection: { classPropertyName: "thyTextDirection", publicName: "thyTextDirection", isSignal: true, isRequired: false, transformFunction: null }, thyDeeper: { classPropertyName: "thyDeeper", publicName: "thyDeeper", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-divider": "true", "class.thy-divider-horizontal": "!thyVertical()", "class.thy-divider-vertical": "thyVertical()", "class.thy-divider-with-content": "textContent() || templateContent()", "class.thy-divider-with-content-left": "(textContent() || templateContent()) && thyTextDirection() === 'left'", "class.thy-divider-with-content-right": "(textContent() || templateContent()) && thyTextDirection() === 'right'", "class.thy-divider-with-content-center": "(textContent() || templateContent()) && thyTextDirection() === 'center'", "class.thy-divider-solid": "thyStyle() === 'solid'", "class.thy-divider-dashed": "thyStyle() === 'dashed'", "class.thy-divider-deeper": "!!thyDeeper()" } }, ngImport: i0, template: `
66
66
  @if (templateContent()) {
67
67
  <div class="thy-divider-inner-template">
68
68
  <ng-template *ngTemplateOutlet="templateContent()"></ng-template>
@@ -74,7 +74,7 @@ class ThyDivider {
74
74
  }
75
75
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
76
76
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDivider, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDivider, decorators: [{
78
78
  type: Component,
79
79
  args: [{
80
80
  preserveWhitespaces: false,
@@ -109,11 +109,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
109
109
  }], ctorParameters: () => [], propDecorators: { thyVertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyVertical", required: false }] }], thyStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyStyle", required: false }] }], thyColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyColor", required: false }] }], thyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyText", required: false }] }], thyTextDirection: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTextDirection", required: false }] }], thyDeeper: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDeeper", required: false }] }] } });
110
110
 
111
111
  class ThyDividerModule {
112
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDividerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
113
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: ThyDividerModule, imports: [CommonModule, ThySharedModule, ThyIconModule, ThyDivider], exports: [ThyDivider] }); }
114
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDividerModule, imports: [CommonModule, ThySharedModule, ThyIconModule] }); }
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDividerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
113
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyDividerModule, imports: [CommonModule, ThySharedModule, ThyIconModule, ThyDivider], exports: [ThyDivider] }); }
114
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDividerModule, imports: [CommonModule, ThySharedModule, ThyIconModule] }); }
115
115
  }
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDividerModule, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDividerModule, decorators: [{
117
117
  type: NgModule,
118
118
  args: [{
119
119
  imports: [CommonModule, ThySharedModule, ThyIconModule, ThyDivider],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-divider.mjs","sources":["../../../src/divider/divider.component.ts","../../../src/divider/divider.module.ts","../../../src/divider/ngx-tethys-divider.ts"],"sourcesContent":["import { Component, TemplateRef, ViewEncapsulation, OnInit, ChangeDetectionStrategy, input, effect, Signal, computed } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyDividerStyle = 'solid' | 'dashed';\n\nexport type ThyDividerTextDirection = 'left' | 'right' | 'center';\n\nexport type ThyDividerColor = 'lighter' | 'light' | 'danger' | 'primary' | 'success' | 'warning' | string;\n\n/**\n * 分割线\n * @name thy-divider\n */\n@Component({\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n selector: 'thy-divider',\n template: `\n @if (templateContent()) {\n <div class=\"thy-divider-inner-template\">\n <ng-template *ngTemplateOutlet=\"templateContent()\"></ng-template>\n </div>\n }\n\n @if (textContent()) {\n <span class=\"thy-divider-inner-text\">{{ textContent() }}</span>\n }\n `,\n host: {\n '[class.thy-divider]': `true`,\n '[class.thy-divider-horizontal]': `!thyVertical()`,\n '[class.thy-divider-vertical]': `thyVertical()`,\n '[class.thy-divider-with-content]': `textContent() || templateContent()`,\n '[class.thy-divider-with-content-left]': `(textContent() || templateContent()) && thyTextDirection() === 'left'`,\n '[class.thy-divider-with-content-right]': `(textContent() || templateContent()) && thyTextDirection() === 'right'`,\n '[class.thy-divider-with-content-center]': `(textContent() || templateContent()) && thyTextDirection() === 'center'`,\n '[class.thy-divider-solid]': `thyStyle() === 'solid'`,\n '[class.thy-divider-dashed]': `thyStyle() === 'dashed'`,\n '[class.thy-divider-deeper]': `!!thyDeeper()`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet]\n})\nexport class ThyDivider implements OnInit {\n private hostRenderer = useHostRenderer();\n\n /**\n * 是否垂直方向\n */\n readonly thyVertical = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 分割线的风格\n * @type solid(实线) | dashed(虚线)\n */\n readonly thyStyle = input<ThyDividerStyle>('solid');\n\n /**\n * 分割线的颜色,默认 #eee,light 为 #ddd,primary 主色,success 成功色,warning 警告色,danger 危险色\n * @type 'lighter' | 'light' | 'danger' | 'primary' | 'success' | 'warning' | string\n */\n readonly thyColor = input<ThyDividerColor>('default');\n\n /**\n * 中间文本内容,支持文字和模板\n */\n readonly thyText = input<string | TemplateRef<HTMLElement>>();\n\n readonly templateContent: Signal<TemplateRef<HTMLElement>> = computed(() => {\n const text = this.thyText();\n if (text instanceof TemplateRef) {\n return text;\n }\n });\n\n readonly textContent: Signal<string> = computed(() => {\n const text = this.thyText();\n if (typeof text === 'string') {\n return text;\n }\n });\n\n /**\n * 中间内容的方向\n * @type left | right | center\n */\n readonly thyTextDirection = input<ThyDividerTextDirection>('center');\n\n /**\n * 颜色加深,已经废弃,请使用 thyColor=\"light\" 代替\n * @deprecated\n */\n readonly thyDeeper = input(false, { transform: coerceBooleanProperty });\n\n constructor() {\n effect(() => {\n this.setColor();\n });\n }\n\n ngOnInit(): void {}\n\n setColor() {\n this.hostRenderer.updateClass([`thy-divider-${this.thyColor()}`]);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { ThyDivider } from './divider.component';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyDivider],\n exports: [ThyDivider],\n providers: []\n})\nexport class ThyDividerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-divider.mjs","sources":["../../../src/divider/divider.component.ts","../../../src/divider/divider.module.ts","../../../src/divider/ngx-tethys-divider.ts"],"sourcesContent":["import { Component, TemplateRef, ViewEncapsulation, OnInit, ChangeDetectionStrategy, input, effect, Signal, computed } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyDividerStyle = 'solid' | 'dashed';\n\nexport type ThyDividerTextDirection = 'left' | 'right' | 'center';\n\nexport type ThyDividerColor = 'lighter' | 'light' | 'danger' | 'primary' | 'success' | 'warning' | string;\n\n/**\n * 分割线\n * @name thy-divider\n */\n@Component({\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n selector: 'thy-divider',\n template: `\n @if (templateContent()) {\n <div class=\"thy-divider-inner-template\">\n <ng-template *ngTemplateOutlet=\"templateContent()\"></ng-template>\n </div>\n }\n\n @if (textContent()) {\n <span class=\"thy-divider-inner-text\">{{ textContent() }}</span>\n }\n `,\n host: {\n '[class.thy-divider]': `true`,\n '[class.thy-divider-horizontal]': `!thyVertical()`,\n '[class.thy-divider-vertical]': `thyVertical()`,\n '[class.thy-divider-with-content]': `textContent() || templateContent()`,\n '[class.thy-divider-with-content-left]': `(textContent() || templateContent()) && thyTextDirection() === 'left'`,\n '[class.thy-divider-with-content-right]': `(textContent() || templateContent()) && thyTextDirection() === 'right'`,\n '[class.thy-divider-with-content-center]': `(textContent() || templateContent()) && thyTextDirection() === 'center'`,\n '[class.thy-divider-solid]': `thyStyle() === 'solid'`,\n '[class.thy-divider-dashed]': `thyStyle() === 'dashed'`,\n '[class.thy-divider-deeper]': `!!thyDeeper()`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet]\n})\nexport class ThyDivider implements OnInit {\n private hostRenderer = useHostRenderer();\n\n /**\n * 是否垂直方向\n */\n readonly thyVertical = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 分割线的风格\n * @type solid(实线) | dashed(虚线)\n */\n readonly thyStyle = input<ThyDividerStyle>('solid');\n\n /**\n * 分割线的颜色,默认 #eee,light 为 #ddd,primary 主色,success 成功色,warning 警告色,danger 危险色\n * @type 'lighter' | 'light' | 'danger' | 'primary' | 'success' | 'warning' | string\n */\n readonly thyColor = input<ThyDividerColor>('default');\n\n /**\n * 中间文本内容,支持文字和模板\n */\n readonly thyText = input<string | TemplateRef<HTMLElement>>();\n\n readonly templateContent: Signal<TemplateRef<HTMLElement> | undefined> = computed(() => {\n const text = this.thyText();\n if (text instanceof TemplateRef) {\n return text;\n }\n });\n\n readonly textContent: Signal<string | undefined> = computed(() => {\n const text = this.thyText();\n if (typeof text === 'string') {\n return text;\n }\n });\n\n /**\n * 中间内容的方向\n * @type left | right | center\n */\n readonly thyTextDirection = input<ThyDividerTextDirection>('center');\n\n /**\n * 颜色加深,已经废弃,请使用 thyColor=\"light\" 代替\n * @deprecated\n */\n readonly thyDeeper = input(false, { transform: coerceBooleanProperty });\n\n constructor() {\n effect(() => {\n this.setColor();\n });\n }\n\n ngOnInit(): void {}\n\n setColor() {\n this.hostRenderer.updateClass([`thy-divider-${this.thyColor()}`]);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { ThyDivider } from './divider.component';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyDivider],\n exports: [ThyDivider],\n providers: []\n})\nexport class ThyDividerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -62,10 +62,10 @@ class ThyDot {
62
62
  this.renderer.setStyle(this.nativeElement, 'borderColor', this.thyColor());
63
63
  }
64
64
  }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: ThyDot, isStandalone: true, selector: "thy-dot,[thy-dot],[thyDot]", inputs: { thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyTheme: { classPropertyName: "thyTheme", publicName: "thyTheme", isSignal: true, isRequired: false, transformFunction: null }, thyShape: { classPropertyName: "thyShape", publicName: "thyShape", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.dot-theme-fill": "thyTheme() === \"fill\"", "class.dot-theme-outline": "thyTheme() === \"outline\"", "class.dot-shape-square": "thyShape() === \"square\"", "class.dot-shape-circle": "thyShape() === \"circle\"", "class.dot-size-md": "thySize() === \"md\"", "class.dot-size-sm": "thySize() === \"sm\"", "class.dot-size-xs": "thySize() === \"xs\"", "class.dot-size-lg": "thySize() === \"lg\"", "class.dot-size-xlg": "thySize() === \"xlg\"" }, classAttribute: "thy-dot" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyDot, isStandalone: true, selector: "thy-dot,[thy-dot],[thyDot]", inputs: { thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyTheme: { classPropertyName: "thyTheme", publicName: "thyTheme", isSignal: true, isRequired: false, transformFunction: null }, thyShape: { classPropertyName: "thyShape", publicName: "thyShape", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.dot-theme-fill": "thyTheme() === \"fill\"", "class.dot-theme-outline": "thyTheme() === \"outline\"", "class.dot-shape-square": "thyShape() === \"square\"", "class.dot-shape-circle": "thyShape() === \"circle\"", "class.dot-size-md": "thySize() === \"md\"", "class.dot-size-sm": "thySize() === \"sm\"", "class.dot-size-xs": "thySize() === \"xs\"", "class.dot-size-lg": "thySize() === \"lg\"", "class.dot-size-xlg": "thySize() === \"xlg\"" }, classAttribute: "thy-dot" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDot, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDot, decorators: [{
69
69
  type: Component,
70
70
  args: [{
71
71
  selector: 'thy-dot,[thy-dot],[thyDot]',
@@ -88,11 +88,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
88
88
  }], ctorParameters: () => [], propDecorators: { thyColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyColor", required: false }] }], thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }], thyTheme: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTheme", required: false }] }], thyShape: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyShape", required: false }] }] } });
89
89
 
90
90
  class ThyDotModule {
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDotModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
92
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: ThyDotModule, imports: [CommonModule, ThyDot], exports: [ThyDot] }); }
93
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDotModule, imports: [CommonModule] }); }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDotModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
92
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyDotModule, imports: [CommonModule, ThyDot], exports: [ThyDot] }); }
93
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDotModule, imports: [CommonModule] }); }
94
94
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDotModule, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDotModule, decorators: [{
96
96
  type: NgModule,
97
97
  args: [{
98
98
  imports: [CommonModule, ThyDot],
@@ -120,7 +120,7 @@ class DragRef {
120
120
  return {
121
121
  previousItem: previousItem,
122
122
  previousContainerItems,
123
- previousIndex: isEmpty(previousContainerItems) ? -1 : previousContainerItems.indexOf(previousItem)
123
+ previousIndex: isEmpty(previousContainerItems) ? -1 : previousContainerItems?.indexOf(previousItem)
124
124
  };
125
125
  }
126
126
  isContinueDragOver(event, container) {
@@ -245,10 +245,10 @@ class ThyDragDropService {
245
245
  */
246
246
  this.classMap = new Map();
247
247
  }
248
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDragDropService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
249
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDragDropService, providedIn: 'root' }); }
248
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragDropService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
249
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragDropService, providedIn: 'root' }); }
250
250
  }
251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDragDropService, decorators: [{
251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragDropService, decorators: [{
252
252
  type: Injectable,
253
253
  args: [{ providedIn: 'root' }]
254
254
  }], ctorParameters: () => [] });
@@ -296,10 +296,10 @@ class ThyDragDirective {
296
296
  ngOnDestroy() {
297
297
  this.dragRef.dispose();
298
298
  }
299
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDragDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
300
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.14", type: ThyDragDirective, isStandalone: true, selector: "thy-drag,[thyDrag]", inputs: { dragData: ["thyDrag", "dragData"], data: ["thyDragData", "data"], disabled: ["thyDragDisabled", "disabled", coerceBooleanProperty] }, host: { properties: { "attr.draggable": "this.isDraggable" } }, ngImport: i0 }); }
299
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
300
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.15", type: ThyDragDirective, isStandalone: true, selector: "thy-drag,[thyDrag]", inputs: { dragData: ["thyDrag", "dragData"], data: ["thyDragData", "data"], disabled: ["thyDragDisabled", "disabled", coerceBooleanProperty] }, host: { properties: { "attr.draggable": "this.isDraggable" } }, ngImport: i0 }); }
301
301
  }
302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDragDirective, decorators: [{
302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragDirective, decorators: [{
303
303
  type: Directive,
304
304
  args: [{
305
305
  selector: 'thy-drag,[thyDrag]'
@@ -343,10 +343,10 @@ class ThyDragHandleDirective {
343
343
  drag.dragRef.withHandles(this);
344
344
  }
345
345
  }
346
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDragHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
347
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.14", type: ThyDragHandleDirective, isStandalone: true, selector: "thy-drag-handle,[thyDragHandle]", inputs: { disabled: ["thyDisabled", "disabled", coerceBooleanProperty] }, ngImport: i0 }); }
346
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
347
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.15", type: ThyDragHandleDirective, isStandalone: true, selector: "thy-drag-handle,[thyDragHandle]", inputs: { disabled: ["thyDisabled", "disabled", coerceBooleanProperty] }, ngImport: i0 }); }
348
348
  }
349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDragHandleDirective, decorators: [{
349
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragHandleDirective, decorators: [{
350
350
  type: Directive,
351
351
  args: [{
352
352
  selector: 'thy-drag-handle,[thyDragHandle]'
@@ -371,10 +371,10 @@ class ThyDragContentDirective {
371
371
  drag.dragRef.withContentElement(this.element);
372
372
  }
373
373
  }
374
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDragContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
375
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: ThyDragContentDirective, isStandalone: true, selector: "thy-drag-content,[thyDragContent]", host: { properties: { "class.thy-drag-content": "this.contentClass" } }, ngImport: i0 }); }
374
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
375
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ThyDragContentDirective, isStandalone: true, selector: "thy-drag-content,[thyDragContent]", host: { properties: { "class.thy-drag-content": "this.contentClass" } }, ngImport: i0 }); }
376
376
  }
377
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDragContentDirective, decorators: [{
377
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragContentDirective, decorators: [{
378
378
  type: Directive,
379
379
  args: [{
380
380
  selector: 'thy-drag-content,[thyDragContent]'
@@ -424,16 +424,16 @@ class ThyDropContainerDirective {
424
424
  });
425
425
  }
426
426
  draggableChanges() {
427
- this.resetDraggableChanges(item => item.dragRef.started).subscribe(event => {
427
+ this.resetDraggableChanges(item => item.dragRef.started).subscribe((event) => {
428
428
  this.started.emit(event);
429
429
  });
430
- this.resetDraggableChanges(item => item.dragRef.ended).subscribe(event => {
430
+ this.resetDraggableChanges(item => item.dragRef.ended).subscribe((event) => {
431
431
  this.ended.emit(event);
432
432
  });
433
- this.resetDraggableChanges(item => item.dragRef.overed).subscribe(event => {
433
+ this.resetDraggableChanges(item => item.dragRef.overed).subscribe((event) => {
434
434
  this.overed.emit(event);
435
435
  });
436
- this.resetDraggableChanges(item => item.dragRef.dropped).subscribe(event => {
436
+ this.resetDraggableChanges(item => item.dragRef.dropped).subscribe((event) => {
437
437
  this.dropped.emit(event);
438
438
  });
439
439
  }
@@ -449,15 +449,15 @@ class ThyDropContainerDirective {
449
449
  this.ngUnsubscribe$.next();
450
450
  this.ngUnsubscribe$.complete();
451
451
  }
452
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDropContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
453
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.14", type: ThyDropContainerDirective, isStandalone: true, selector: "thy-drop-container,[thyDropContainer]", inputs: { dragContainer: ["thyDropContainer", "dragContainer"], data: ["thyDropContainerData", "data"], disabled: ["thyDropContainerDisabled", "disabled", coerceBooleanProperty], beforeStart: ["thyBeforeDragStart", "beforeStart"], beforeOver: ["thyBeforeDragOver", "beforeOver"], beforeDrop: ["thyBeforeDragDrop", "beforeDrop"] }, outputs: { started: "thyDragStarted", ended: "thyDragEnded", overed: "thyDragOvered", dropped: "thyDragDropped" }, providers: [
452
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDropContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
453
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.15", type: ThyDropContainerDirective, isStandalone: true, selector: "thy-drop-container,[thyDropContainer]", inputs: { dragContainer: ["thyDropContainer", "dragContainer"], data: ["thyDropContainerData", "data"], disabled: ["thyDropContainerDisabled", "disabled", coerceBooleanProperty], beforeStart: ["thyBeforeDragStart", "beforeStart"], beforeOver: ["thyBeforeDragOver", "beforeOver"], beforeDrop: ["thyBeforeDragDrop", "beforeDrop"] }, outputs: { started: "thyDragStarted", ended: "thyDragEnded", overed: "thyDragOvered", dropped: "thyDragDropped" }, providers: [
454
454
  {
455
455
  provide: THY_DROP_CONTAINER_DIRECTIVE,
456
456
  useExisting: ThyDropContainerDirective
457
457
  }
458
458
  ], queries: [{ propertyName: "draggables", predicate: ThyDragDirective }], ngImport: i0 }); }
459
459
  }
460
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDropContainerDirective, decorators: [{
460
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDropContainerDirective, decorators: [{
461
461
  type: Directive,
462
462
  args: [{
463
463
  selector: 'thy-drop-container,[thyDropContainer]',
@@ -512,11 +512,11 @@ class ThyDragDropModule {
512
512
  constructor() {
513
513
  warnDeprecation('`ThyDragDropModule` is deprecated, please use `@angular/cdk/drag-drop` instead.');
514
514
  }
515
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDragDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
516
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: ThyDragDropModule, imports: [ThyDropContainerDirective, ThyDragDirective, ThyDragHandleDirective, ThyDragContentDirective], exports: [ThyDropContainerDirective, ThyDragDirective, ThyDragHandleDirective, ThyDragContentDirective] }); }
517
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDragDropModule }); }
515
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
516
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyDragDropModule, imports: [ThyDropContainerDirective, ThyDragDirective, ThyDragHandleDirective, ThyDragContentDirective], exports: [ThyDropContainerDirective, ThyDragDirective, ThyDragHandleDirective, ThyDragContentDirective] }); }
517
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragDropModule }); }
518
518
  }
519
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDragDropModule, decorators: [{
519
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragDropModule, decorators: [{
520
520
  type: NgModule,
521
521
  args: [{
522
522
  imports: [ThyDropContainerDirective, ThyDragDirective, ThyDragHandleDirective, ThyDragContentDirective],