ngx-tethys 19.1.13 → 20.0.0-next.0

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 (827) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/action/index.d.ts +107 -3
  3. package/affix/index.d.ts +65 -2
  4. package/alert/index.d.ts +74 -3
  5. package/anchor/index.d.ts +118 -3
  6. package/arrow-switcher/index.d.ts +79 -2
  7. package/autocomplete/index.d.ts +280 -7
  8. package/avatar/index.d.ts +195 -5
  9. package/back-top/index.d.ts +68 -2
  10. package/badge/index.d.ts +87 -2
  11. package/breadcrumb/index.d.ts +71 -3
  12. package/button/index.d.ts +156 -4
  13. package/calendar/index.d.ts +161 -4
  14. package/card/index.d.ts +100 -4
  15. package/carousel/index.d.ts +210 -4
  16. package/cascader/index.d.ts +471 -5
  17. package/checkbox/index.d.ts +27 -2
  18. package/collapse/index.d.ts +108 -3
  19. package/color-picker/index.d.ts +494 -13
  20. package/comment/index.d.ts +53 -4
  21. package/copy/index.d.ts +59 -2
  22. package/core/index.d.ts +680 -15
  23. package/date-picker/index.d.ts +1148 -36
  24. package/date-range/index.d.ts +158 -4
  25. package/dialog/index.d.ts +393 -11
  26. package/divider/index.d.ts +60 -2
  27. package/dot/index.d.ts +56 -2
  28. package/drag-drop/index.d.ts +281 -9
  29. package/dropdown/index.d.ts +282 -6
  30. package/empty/index.d.ts +116 -3
  31. package/fesm2022/ngx-tethys-action.mjs +26 -26
  32. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-affix.mjs +14 -14
  34. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  35. package/fesm2022/ngx-tethys-alert.mjs +19 -19
  36. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  37. package/fesm2022/ngx-tethys-anchor.mjs +25 -25
  38. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  39. package/fesm2022/ngx-tethys-arrow-switcher.mjs +20 -20
  40. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  41. package/fesm2022/ngx-tethys-autocomplete.mjs +41 -36
  42. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  43. package/fesm2022/ngx-tethys-avatar.mjs +45 -45
  44. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-back-top.mjs +15 -15
  46. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-badge.mjs +27 -27
  48. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-breadcrumb.mjs +20 -20
  50. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-button.mjs +57 -51
  52. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  53. package/fesm2022/ngx-tethys-calendar.mjs +29 -29
  54. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-card.mjs +28 -28
  56. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-carousel.mjs +29 -29
  58. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  59. package/fesm2022/ngx-tethys-cascader.mjs +93 -87
  60. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-checkbox.mjs +9 -9
  62. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  63. package/fesm2022/ngx-tethys-collapse.mjs +24 -24
  64. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  65. package/fesm2022/ngx-tethys-color-picker.mjs +75 -73
  66. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  67. package/fesm2022/ngx-tethys-comment.mjs +17 -17
  68. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  69. package/fesm2022/ngx-tethys-copy.mjs +15 -15
  70. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  71. package/fesm2022/ngx-tethys-core.mjs +38 -38
  72. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  73. package/fesm2022/ngx-tethys-date-picker.mjs +323 -305
  74. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  75. package/fesm2022/ngx-tethys-date-range.mjs +23 -23
  76. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  77. package/fesm2022/ngx-tethys-dialog.mjs +56 -54
  78. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-divider.mjs +16 -16
  80. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-dot.mjs +20 -20
  82. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  83. package/fesm2022/ngx-tethys-drag-drop.mjs +20 -21
  84. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  85. package/fesm2022/ngx-tethys-dropdown.mjs +85 -83
  86. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  87. package/fesm2022/ngx-tethys-empty.mjs +28 -28
  88. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  89. package/fesm2022/ngx-tethys-flexible-text.mjs +13 -13
  90. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  91. package/fesm2022/ngx-tethys-form.mjs +99 -95
  92. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  93. package/fesm2022/ngx-tethys-fullscreen.mjs +22 -21
  94. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  95. package/fesm2022/ngx-tethys-grid.mjs +60 -60
  96. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  97. package/fesm2022/ngx-tethys-guider.mjs +20 -20
  98. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  99. package/fesm2022/ngx-tethys-i18n.mjs +4 -4
  100. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  101. package/fesm2022/ngx-tethys-icon.mjs +20 -20
  102. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  103. package/fesm2022/ngx-tethys-image.mjs +26 -26
  104. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  105. package/fesm2022/ngx-tethys-input-number.mjs +28 -24
  106. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  107. package/fesm2022/ngx-tethys-input.mjs +72 -71
  108. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  109. package/fesm2022/ngx-tethys-layout.mjs +128 -118
  110. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  111. package/fesm2022/ngx-tethys-list.mjs +37 -37
  112. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  113. package/fesm2022/ngx-tethys-loading.mjs +11 -11
  114. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  115. package/fesm2022/ngx-tethys-mention.mjs +18 -18
  116. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  117. package/fesm2022/ngx-tethys-menu.mjs +57 -57
  118. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  119. package/fesm2022/ngx-tethys-message.mjs +43 -40
  120. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  121. package/fesm2022/ngx-tethys-nav.mjs +58 -58
  122. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  123. package/fesm2022/ngx-tethys-notify.mjs +35 -32
  124. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  125. package/fesm2022/ngx-tethys-pagination.mjs +38 -38
  126. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  127. package/fesm2022/ngx-tethys-popover.mjs +46 -38
  128. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  129. package/fesm2022/ngx-tethys-progress.mjs +64 -57
  130. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  131. package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
  132. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  133. package/fesm2022/ngx-tethys-property.mjs +29 -29
  134. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  135. package/fesm2022/ngx-tethys-radio.mjs +23 -23
  136. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  137. package/fesm2022/ngx-tethys-rate.mjs +28 -28
  138. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  139. package/fesm2022/ngx-tethys-resizable.mjs +38 -38
  140. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  141. package/fesm2022/ngx-tethys-result.mjs +16 -16
  142. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  143. package/fesm2022/ngx-tethys-segment.mjs +23 -23
  144. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  145. package/fesm2022/ngx-tethys-select.mjs +76 -64
  146. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  147. package/fesm2022/ngx-tethys-shared.mjs +163 -155
  148. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  149. package/fesm2022/ngx-tethys-skeleton.mjs +84 -84
  150. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  151. package/fesm2022/ngx-tethys-slide.mjs +50 -46
  152. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  153. package/fesm2022/ngx-tethys-slider.mjs +21 -21
  154. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  155. package/fesm2022/ngx-tethys-space.mjs +16 -16
  156. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  157. package/fesm2022/ngx-tethys-statistic.mjs +29 -29
  158. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  159. package/fesm2022/ngx-tethys-stepper.mjs +37 -37
  160. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  161. package/fesm2022/ngx-tethys-strength.mjs +22 -22
  162. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  163. package/fesm2022/ngx-tethys-switch.mjs +19 -19
  164. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  165. package/fesm2022/ngx-tethys-table.mjs +22 -22
  166. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  167. package/fesm2022/ngx-tethys-tabs.mjs +31 -31
  168. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  169. package/fesm2022/ngx-tethys-tag.mjs +18 -18
  170. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  171. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  172. package/fesm2022/ngx-tethys-time-picker.mjs +75 -74
  173. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  174. package/fesm2022/ngx-tethys-timeline.mjs +28 -28
  175. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  176. package/fesm2022/ngx-tethys-tooltip.mjs +28 -28
  177. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  178. package/fesm2022/ngx-tethys-transfer.mjs +36 -36
  179. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  180. package/fesm2022/ngx-tethys-tree-select.mjs +58 -58
  181. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  182. package/fesm2022/ngx-tethys-tree.mjs +77 -72
  183. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys-typography.mjs +19 -19
  185. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  186. package/fesm2022/ngx-tethys-upload.mjs +68 -68
  187. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  188. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  189. package/fesm2022/ngx-tethys-vote.mjs +25 -25
  190. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  191. package/fesm2022/ngx-tethys-watermark.mjs +12 -12
  192. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  193. package/fesm2022/ngx-tethys.mjs +1 -1
  194. package/fesm2022/ngx-tethys.mjs.map +1 -1
  195. package/flexible-text/index.d.ts +64 -2
  196. package/form/index.d.ts +405 -11
  197. package/fullscreen/index.d.ts +117 -6
  198. package/grid/index.d.ts +262 -7
  199. package/guider/index.d.ts +304 -8
  200. package/i18n/index.d.ts +1053 -6
  201. package/icon/index.d.ts +145 -4
  202. package/image/index.d.ts +263 -8
  203. package/index.d.ts +5 -5
  204. package/input/index.d.ts +281 -6
  205. package/input-number/index.d.ts +133 -2
  206. package/layout/index.d.ts +362 -10
  207. package/list/index.d.ts +182 -6
  208. package/loading/index.d.ts +34 -2
  209. package/mention/index.d.ts +147 -4
  210. package/menu/index.d.ts +191 -8
  211. package/message/index.d.ts +203 -8
  212. package/nav/index.d.ts +269 -6
  213. package/notify/index.d.ts +158 -7
  214. package/package.json +13 -13
  215. package/pagination/index.d.ts +248 -5
  216. package/popover/index.d.ts +339 -9
  217. package/progress/index.d.ts +154 -5
  218. package/property/index.d.ts +118 -3
  219. package/property-operation/index.d.ts +114 -3
  220. package/radio/index.d.ts +102 -4
  221. package/rate/index.d.ts +99 -3
  222. package/resizable/index.d.ts +197 -7
  223. package/result/index.d.ts +63 -2
  224. package/schematics/ng-update/migration-collection.json +4 -4
  225. package/schematics/ng-update/{update-19 → update-20}/index.js +1 -1
  226. package/schematics/ng-update/{update-19 → update-20}/index.spec.js +5 -5
  227. package/schematics/version.d.ts +1 -1
  228. package/schematics/version.js +1 -1
  229. package/segment/index.d.ts +119 -4
  230. package/select/index.d.ts +332 -4
  231. package/shared/index.d.ts +516 -16
  232. package/skeleton/index.d.ts +301 -8
  233. package/slide/index.d.ts +270 -12
  234. package/slider/index.d.ts +117 -2
  235. package/space/index.d.ts +48 -2
  236. package/statistic/index.d.ts +124 -2
  237. package/stepper/index.d.ts +112 -5
  238. package/strength/index.d.ts +77 -2
  239. package/switch/index.d.ts +69 -2
  240. package/table/index.d.ts +670 -9
  241. package/tabs/index.d.ts +114 -4
  242. package/tag/index.d.ts +71 -3
  243. package/testing/index.d.ts +178 -7
  244. package/time-picker/index.d.ts +468 -7
  245. package/timeline/index.d.ts +109 -5
  246. package/tooltip/index.d.ts +198 -8
  247. package/transfer/index.d.ts +212 -4
  248. package/tree/index.d.ts +469 -5
  249. package/tree-select/index.d.ts +231 -3
  250. package/types/index.d.ts +22 -3
  251. package/typography/index.d.ts +69 -4
  252. package/upload/index.d.ts +253 -6
  253. package/util/index.d.ts +595 -14
  254. package/vote/index.d.ts +66 -2
  255. package/watermark/index.d.ts +75 -2
  256. package/action/action.component.d.ts +0 -76
  257. package/action/action.module.d.ts +0 -10
  258. package/action/actions.component.d.ts +0 -21
  259. package/affix/affix.component.d.ts +0 -54
  260. package/affix/affix.module.d.ts +0 -9
  261. package/affix/respond-events.d.ts +0 -9
  262. package/alert/alert.component.d.ts +0 -51
  263. package/alert/alert.directive.d.ts +0 -12
  264. package/alert/alert.module.d.ts +0 -10
  265. package/anchor/anchor-link.component.d.ts +0 -34
  266. package/anchor/anchor.component.d.ts +0 -68
  267. package/anchor/anchor.module.d.ts +0 -11
  268. package/anchor/anchor.token.d.ts +0 -9
  269. package/arrow-switcher/arrow-switcher.component.d.ts +0 -64
  270. package/arrow-switcher/module.d.ts +0 -12
  271. package/autocomplete/autocomplete.component.d.ts +0 -79
  272. package/autocomplete/autocomplete.trigger.directive.d.ts +0 -77
  273. package/autocomplete/module.d.ts +0 -18
  274. package/autocomplete/overlay/autocomplete-animations.d.ts +0 -8
  275. package/autocomplete/overlay/autocomplete-container.component.d.ts +0 -33
  276. package/autocomplete/overlay/autocomplete-ref.d.ts +0 -14
  277. package/autocomplete/overlay/autocomplete.config.d.ts +0 -36
  278. package/autocomplete/overlay/autocomplete.options.d.ts +0 -2
  279. package/autocomplete/overlay/autocomplete.service.d.ts +0 -32
  280. package/avatar/avatar-list/avatar-list.component.d.ts +0 -41
  281. package/avatar/avatar.component.d.ts +0 -95
  282. package/avatar/avatar.module.d.ts +0 -11
  283. package/avatar/avatar.pipe.d.ts +0 -30
  284. package/avatar/avatar.service.d.ts +0 -21
  285. package/back-top/back-top.component.d.ts +0 -57
  286. package/back-top/back-top.module.d.ts +0 -9
  287. package/badge/badge.component.d.ts +0 -75
  288. package/badge/badge.module.d.ts +0 -9
  289. package/breadcrumb/breadcrumb-item.component.d.ts +0 -15
  290. package/breadcrumb/breadcrumb.component.d.ts +0 -44
  291. package/breadcrumb/module.d.ts +0 -12
  292. package/button/button-group.component.d.ts +0 -32
  293. package/button/button-icon.component.d.ts +0 -51
  294. package/button/button.component.d.ts +0 -61
  295. package/button/button.module.d.ts +0 -11
  296. package/calendar/calendar-cells.d.ts +0 -17
  297. package/calendar/calendar-header.component.d.ts +0 -51
  298. package/calendar/calendar.component.d.ts +0 -78
  299. package/calendar/module.d.ts +0 -18
  300. package/card/card.component.d.ts +0 -28
  301. package/card/card.module.d.ts +0 -10
  302. package/card/content.component.d.ts +0 -21
  303. package/card/header.component.d.ts +0 -42
  304. package/carousel/carousel-item.directive.d.ts +0 -14
  305. package/carousel/carousel.component.d.ts +0 -112
  306. package/carousel/carousel.service.d.ts +0 -19
  307. package/carousel/carousel.token.d.ts +0 -7
  308. package/carousel/engine/carousel-base.d.ts +0 -27
  309. package/carousel/engine/carousel-fade.d.ts +0 -15
  310. package/carousel/engine/carousel-noop.d.ts +0 -14
  311. package/carousel/engine/carousel-slide.d.ts +0 -16
  312. package/carousel/engine/index.d.ts +0 -4
  313. package/carousel/module.d.ts +0 -11
  314. package/carousel/typings.d.ts +0 -20
  315. package/cascader/cascader-li.component.d.ts +0 -24
  316. package/cascader/cascader-search-option.component.d.ts +0 -21
  317. package/cascader/cascader.component.d.ts +0 -284
  318. package/cascader/cascader.pipe.d.ts +0 -11
  319. package/cascader/cascader.service.d.ts +0 -97
  320. package/cascader/module.d.ts +0 -19
  321. package/cascader/types.d.ts +0 -23
  322. package/checkbox/checkbox.component.d.ts +0 -16
  323. package/checkbox/module.d.ts +0 -9
  324. package/collapse/collapse-item.component.d.ts +0 -52
  325. package/collapse/collapse.component.d.ts +0 -29
  326. package/collapse/collapse.token.d.ts +0 -15
  327. package/collapse/module.d.ts +0 -13
  328. package/color-picker/color-picker-custom-panel.component.d.ts +0 -17
  329. package/color-picker/color-picker-panel.component.d.ts +0 -28
  330. package/color-picker/color-picker.component.d.ts +0 -100
  331. package/color-picker/constant.d.ts +0 -1
  332. package/color-picker/coordinates.directive.d.ts +0 -28
  333. package/color-picker/helpers/color.class.d.ts +0 -32
  334. package/color-picker/helpers/colors-table.class.d.ts +0 -154
  335. package/color-picker/helpers/rgba.class.d.ts +0 -20
  336. package/color-picker/module.d.ts +0 -22
  337. package/color-picker/parts/alpha/alpha.component.d.ts +0 -28
  338. package/color-picker/parts/hue/hue.component.d.ts +0 -26
  339. package/color-picker/parts/indicator/indicator.component.d.ts +0 -13
  340. package/color-picker/parts/inputs/inputs.component.d.ts +0 -18
  341. package/color-picker/parts/saturation/saturation.component.d.ts +0 -28
  342. package/comment/comment-actions.directive.d.ts +0 -8
  343. package/comment/comment-content.directive.d.ts +0 -8
  344. package/comment/comment.component.d.ts +0 -24
  345. package/comment/comment.module.d.ts +0 -13
  346. package/copy/copy.directive.d.ts +0 -47
  347. package/copy/module.d.ts +0 -9
  348. package/core/animation/animation-consts.d.ts +0 -22
  349. package/core/animation/collapse.d.ts +0 -2
  350. package/core/animation/fade.d.ts +0 -2
  351. package/core/animation/index.d.ts +0 -1
  352. package/core/animation/public-api.d.ts +0 -5
  353. package/core/animation/thumb.d.ts +0 -6
  354. package/core/animation/zoom.d.ts +0 -4
  355. package/core/behaviors/constructor.d.ts +0 -5
  356. package/core/behaviors/control-value-accessor.d.ts +0 -7
  357. package/core/behaviors/decorators.d.ts +0 -9
  358. package/core/behaviors/disabled.d.ts +0 -7
  359. package/core/behaviors/focus-control.d.ts +0 -14
  360. package/core/behaviors/index.d.ts +0 -10
  361. package/core/behaviors/initialized.d.ts +0 -6
  362. package/core/behaviors/loading-done.d.ts +0 -5
  363. package/core/behaviors/mixin.d.ts +0 -5
  364. package/core/behaviors/tabindex.d.ts +0 -11
  365. package/core/behaviors/unsubscribe.d.ts +0 -11
  366. package/core/click-positioner.d.ts +0 -15
  367. package/core/color/color.d.ts +0 -9
  368. package/core/color/index.d.ts +0 -1
  369. package/core/debounce-time.d.ts +0 -8
  370. package/core/event-dispatchers/index.d.ts +0 -1
  371. package/core/overlay/abstract-overlay-container.d.ts +0 -43
  372. package/core/overlay/abstract-overlay-ref.d.ts +0 -101
  373. package/core/overlay/abstract-overlay.config.d.ts +0 -131
  374. package/core/overlay/abstract-overlay.service.d.ts +0 -56
  375. package/core/overlay/index.d.ts +0 -9
  376. package/core/overlay/interface.d.ts +0 -5
  377. package/core/overlay/overlay-position-map.d.ts +0 -5
  378. package/core/overlay/overlay.directive.d.ts +0 -51
  379. package/core/overlay/portal-directives.d.ts +0 -14
  380. package/core/overlay/utils.d.ts +0 -14
  381. package/core/request-animation.d.ts +0 -2
  382. package/core/scroll-to.service.d.ts +0 -4
  383. package/core/scroll.d.ts +0 -22
  384. package/core/spacing/index.d.ts +0 -1
  385. package/core/spacing/spacing.d.ts +0 -2
  386. package/core/store/action-state.d.ts +0 -5
  387. package/core/store/action.d.ts +0 -4
  388. package/core/store/actions-stream.d.ts +0 -14
  389. package/core/store/index.d.ts +0 -3
  390. package/core/store/store.d.ts +0 -43
  391. package/core/store/types.d.ts +0 -12
  392. package/core/store/utils.d.ts +0 -2
  393. package/core/theme/enum.d.ts +0 -5
  394. package/core/theme/index.d.ts +0 -3
  395. package/core/theme/store.d.ts +0 -12
  396. package/core/theme/theme.d.ts +0 -2
  397. package/core/translate.d.ts +0 -8
  398. package/core/update-host-class.service.d.ts +0 -15
  399. package/date-picker/abstract-picker.component.d.ts +0 -174
  400. package/date-picker/abstract-picker.directive.d.ts +0 -57
  401. package/date-picker/base-picker.component.d.ts +0 -49
  402. package/date-picker/date-helper.service.d.ts +0 -20
  403. package/date-picker/date-picker.component.d.ts +0 -15
  404. package/date-picker/date-picker.config.d.ts +0 -27
  405. package/date-picker/date-picker.directive.d.ts +0 -13
  406. package/date-picker/date-picker.module.d.ts +0 -24
  407. package/date-picker/date-picker.service.d.ts +0 -14
  408. package/date-picker/inner-types.d.ts +0 -19
  409. package/date-picker/lib/calendar/calendar-footer.component.d.ts +0 -37
  410. package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -44
  411. package/date-picker/lib/calendar/calendar-table.component.d.ts +0 -41
  412. package/date-picker/lib/date/date-header.component.d.ts +0 -10
  413. package/date-picker/lib/date/date-table-cell.component.d.ts +0 -18
  414. package/date-picker/lib/date/date-table.component.d.ts +0 -23
  415. package/date-picker/lib/date/types.d.ts +0 -41
  416. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +0 -65
  417. package/date-picker/lib/decade/decade-header.component.d.ts +0 -14
  418. package/date-picker/lib/decade/decade-table.component.d.ts +0 -21
  419. package/date-picker/lib/lib-packer.module.d.ts +0 -28
  420. package/date-picker/lib/month/month-header.component.d.ts +0 -10
  421. package/date-picker/lib/month/month-table.component.d.ts +0 -22
  422. package/date-picker/lib/popups/date-popup.component.d.ts +0 -99
  423. package/date-picker/lib/popups/inner-popup.component.d.ts +0 -43
  424. package/date-picker/lib/quarter/quarter-table.component.d.ts +0 -21
  425. package/date-picker/lib/year/year-header.component.d.ts +0 -14
  426. package/date-picker/lib/year/year-table.component.d.ts +0 -21
  427. package/date-picker/month-picker.component.d.ts +0 -19
  428. package/date-picker/picker.component.d.ts +0 -76
  429. package/date-picker/picker.pipes.d.ts +0 -40
  430. package/date-picker/picker.util.d.ts +0 -30
  431. package/date-picker/picker.validators.d.ts +0 -22
  432. package/date-picker/quarter-picker.component.d.ts +0 -22
  433. package/date-picker/range-picker.component.d.ts +0 -16
  434. package/date-picker/range-picker.directive.d.ts +0 -14
  435. package/date-picker/standard-types.d.ts +0 -45
  436. package/date-picker/week-picker.component.d.ts +0 -15
  437. package/date-picker/year-picker.component.d.ts +0 -22
  438. package/date-range/date-range.class.d.ts +0 -29
  439. package/date-range/date-range.component.d.ts +0 -89
  440. package/date-range/module.d.ts +0 -15
  441. package/date-range/optional-dates/optional-dates.component.d.ts +0 -25
  442. package/dialog/body/dialog-body.component.d.ts +0 -18
  443. package/dialog/confirm/confirm.component.d.ts +0 -29
  444. package/dialog/confirm/token.d.ts +0 -8
  445. package/dialog/confirm.config.d.ts +0 -71
  446. package/dialog/dialog-animations.d.ts +0 -8
  447. package/dialog/dialog-container.component.d.ts +0 -46
  448. package/dialog/dialog-ref.d.ts +0 -32
  449. package/dialog/dialog.config.d.ts +0 -79
  450. package/dialog/dialog.module.d.ts +0 -20
  451. package/dialog/dialog.options.d.ts +0 -2
  452. package/dialog/dialog.service.d.ts +0 -52
  453. package/dialog/footer/dialog-footer.component.d.ts +0 -33
  454. package/dialog/header/dialog-header.component.d.ts +0 -47
  455. package/divider/divider.component.d.ts +0 -47
  456. package/divider/divider.module.d.ts +0 -10
  457. package/dot/dot.component.d.ts +0 -45
  458. package/dot/dot.module.d.ts +0 -8
  459. package/drag-drop/drag-content.directive.d.ts +0 -15
  460. package/drag-drop/drag-drop.class.d.ts +0 -36
  461. package/drag-drop/drag-drop.service.d.ts +0 -27
  462. package/drag-drop/drag-drop.token.d.ts +0 -24
  463. package/drag-drop/drag-handle.directive.d.ts +0 -24
  464. package/drag-drop/drag-ref.d.ts +0 -47
  465. package/drag-drop/drag.directive.d.ts +0 -39
  466. package/drag-drop/drop-container.directive.d.ts +0 -70
  467. package/drag-drop/module.d.ts +0 -14
  468. package/dropdown/dropdown-active.directive.d.ts +0 -27
  469. package/dropdown/dropdown-menu-item.directive.d.ts +0 -95
  470. package/dropdown/dropdown-menu.component.d.ts +0 -54
  471. package/dropdown/dropdown-submenu.component.d.ts +0 -23
  472. package/dropdown/dropdown.directive.d.ts +0 -77
  473. package/dropdown/module.d.ts +0 -13
  474. package/empty/empty.component.d.ts +0 -92
  475. package/empty/empty.config.d.ts +0 -10
  476. package/empty/empty.module.d.ts +0 -10
  477. package/empty/svgs.d.ts +0 -4
  478. package/flexible-text/flexible-text.component.d.ts +0 -53
  479. package/flexible-text/flexible-text.module.d.ts +0 -10
  480. package/form/form-group-error/form-group-error.component.d.ts +0 -21
  481. package/form/form-group-label.directive.d.ts +0 -18
  482. package/form/form-group.component.d.ts +0 -68
  483. package/form/form-submit.directive.d.ts +0 -18
  484. package/form/form-validator-loader.d.ts +0 -28
  485. package/form/form-validator.service.d.ts +0 -54
  486. package/form/form.class.d.ts +0 -54
  487. package/form/form.directive.d.ts +0 -56
  488. package/form/from-group-footer/form-group-footer.component.d.ts +0 -27
  489. package/form/module.d.ts +0 -25
  490. package/form/validator/confirm-validator.directive.d.ts +0 -17
  491. package/form/validator/index.d.ts +0 -4
  492. package/form/validator/max-validator.directive.d.ts +0 -15
  493. package/form/validator/min-validator.directive.d.ts +0 -15
  494. package/form/validator/unique-validator.directive.d.ts +0 -16
  495. package/fullscreen/fullscreen-launch.directive.d.ts +0 -9
  496. package/fullscreen/fullscreen-ref.d.ts +0 -25
  497. package/fullscreen/fullscreen.component.d.ts +0 -34
  498. package/fullscreen/fullscreen.config.d.ts +0 -23
  499. package/fullscreen/fullscreen.module.d.ts +0 -8
  500. package/fullscreen/fullscreen.service.d.ts +0 -20
  501. package/grid/flex.d.ts +0 -85
  502. package/grid/grid.token.d.ts +0 -7
  503. package/grid/grid.type.d.ts +0 -5
  504. package/grid/module.d.ts +0 -11
  505. package/grid/thy-col.directive.d.ts +0 -33
  506. package/grid/thy-grid-item.component.d.ts +0 -28
  507. package/grid/thy-grid.component.d.ts +0 -71
  508. package/grid/thy-row.directive.d.ts +0 -30
  509. package/guider/guider-hint/guider-hint.component.d.ts +0 -28
  510. package/guider/guider-manager.d.ts +0 -23
  511. package/guider/guider-ref.d.ts +0 -42
  512. package/guider/guider-step-ref.d.ts +0 -44
  513. package/guider/guider.class.d.ts +0 -95
  514. package/guider/guider.directive.d.ts +0 -21
  515. package/guider/guider.interface.d.ts +0 -26
  516. package/guider/guider.module.d.ts +0 -13
  517. package/guider/guider.service.d.ts +0 -25
  518. package/guider/utils.d.ts +0 -4
  519. package/i18n/i18n.d.ts +0 -191
  520. package/i18n/i18n.service.d.ts +0 -19
  521. package/i18n/i18n.token.d.ts +0 -8
  522. package/i18n/locale.d.ts +0 -4
  523. package/i18n/locales/de-de.d.ts +0 -162
  524. package/i18n/locales/en-us.d.ts +0 -183
  525. package/i18n/locales/index.d.ts +0 -5
  526. package/i18n/locales/ja-jp.d.ts +0 -162
  527. package/i18n/locales/zh-hans.d.ts +0 -162
  528. package/i18n/locales/zh-hant.d.ts +0 -162
  529. package/i18n/util.d.ts +0 -3
  530. package/icon/config.d.ts +0 -2
  531. package/icon/icon-registry.d.ts +0 -84
  532. package/icon/icon.component.d.ts +0 -47
  533. package/icon/icon.module.d.ts +0 -9
  534. package/image/image-group.component.d.ts +0 -16
  535. package/image/image.class.d.ts +0 -38
  536. package/image/image.config.d.ts +0 -21
  537. package/image/image.directive.d.ts +0 -50
  538. package/image/image.service.d.ts +0 -30
  539. package/image/image.token.d.ts +0 -17
  540. package/image/module.d.ts +0 -19
  541. package/image/preview/image-preview-ref.d.ts +0 -14
  542. package/image/preview/image-preview.component.d.ts +0 -73
  543. package/image/utils.d.ts +0 -1
  544. package/input/input-count.component.d.ts +0 -27
  545. package/input/input-group.component.d.ts +0 -71
  546. package/input/input-search.component.d.ts +0 -70
  547. package/input/input.component.d.ts +0 -82
  548. package/input/input.directive.d.ts +0 -26
  549. package/input/module.d.ts +0 -16
  550. package/input-number/input-number.component.d.ts +0 -115
  551. package/input-number/module.d.ts +0 -13
  552. package/layout/content-main.component.d.ts +0 -19
  553. package/layout/content-section.component.d.ts +0 -19
  554. package/layout/content.component.d.ts +0 -19
  555. package/layout/header.component.d.ts +0 -69
  556. package/layout/layout.component.d.ts +0 -22
  557. package/layout/layout.module.d.ts +0 -21
  558. package/layout/sidebar-content.component.d.ts +0 -19
  559. package/layout/sidebar-footer.component.d.ts +0 -19
  560. package/layout/sidebar-header.component.d.ts +0 -40
  561. package/layout/sidebar.component.d.ts +0 -123
  562. package/list/list-item-meta.component.d.ts +0 -25
  563. package/list/list-item.component.d.ts +0 -9
  564. package/list/list.component.d.ts +0 -14
  565. package/list/list.module.d.ts +0 -13
  566. package/list/selection/selection-list.d.ts +0 -116
  567. package/list/selection/selection.interface.d.ts +0 -8
  568. package/loading/loading.component.d.ts +0 -24
  569. package/loading/loading.module.d.ts +0 -8
  570. package/mention/adapter/adapter.d.ts +0 -19
  571. package/mention/adapter/editable.adapter.d.ts +0 -9
  572. package/mention/adapter/index.d.ts +0 -7
  573. package/mention/adapter/textarea.adapter.d.ts +0 -11
  574. package/mention/caret-positioner.d.ts +0 -19
  575. package/mention/interfaces.d.ts +0 -61
  576. package/mention/mention.directive.d.ts +0 -43
  577. package/mention/mention.module.d.ts +0 -13
  578. package/mention/suggestions/suggestions.component.d.ts +0 -28
  579. package/menu/divider/menu-divider.component.d.ts +0 -12
  580. package/menu/group/menu-group.component.d.ts +0 -61
  581. package/menu/item/action/menu-item-action.component.d.ts +0 -34
  582. package/menu/item/icon/menu-item-icon.component.d.ts +0 -18
  583. package/menu/item/menu-item.component.d.ts +0 -20
  584. package/menu/item/name/menu-item-name.component.d.ts +0 -17
  585. package/menu/menu.component.d.ts +0 -23
  586. package/menu/menu.module.d.ts +0 -16
  587. package/message/abstract/abstract-message-container.component.d.ts +0 -13
  588. package/message/abstract/abstract-message-queue.service.d.ts +0 -13
  589. package/message/abstract/abstract-message-ref.d.ts +0 -18
  590. package/message/abstract/abstract-message.component.d.ts +0 -35
  591. package/message/abstract/abstract-message.service.d.ts +0 -17
  592. package/message/abstract/index.d.ts +0 -5
  593. package/message/message-container.component.d.ts +0 -12
  594. package/message/message-queue.service.d.ts +0 -11
  595. package/message/message-ref.d.ts +0 -4
  596. package/message/message.component.d.ts +0 -13
  597. package/message/message.config.d.ts +0 -29
  598. package/message/message.service.d.ts +0 -36
  599. package/message/module.d.ts +0 -13
  600. package/nav/icon-nav/icon-nav-link.directive.d.ts +0 -10
  601. package/nav/icon-nav/icon-nav.component.d.ts +0 -15
  602. package/nav/nav-ink-bar.directive.d.ts +0 -22
  603. package/nav/nav-item.directive.d.ts +0 -60
  604. package/nav/nav.component.d.ts +0 -142
  605. package/nav/nav.module.d.ts +0 -17
  606. package/nav/nav.pipe.d.ts +0 -11
  607. package/notify/module.d.ts +0 -13
  608. package/notify/notify-container.component.d.ts +0 -12
  609. package/notify/notify-queue.service.d.ts +0 -15
  610. package/notify/notify-ref.d.ts +0 -4
  611. package/notify/notify.component.d.ts +0 -19
  612. package/notify/notify.config.d.ts +0 -55
  613. package/notify/notify.service.d.ts +0 -42
  614. package/pagination/pagination.class.d.ts +0 -79
  615. package/pagination/pagination.component.d.ts +0 -132
  616. package/pagination/pagination.config.d.ts +0 -8
  617. package/pagination/pagination.module.d.ts +0 -13
  618. package/pagination/pagination.pipe.d.ts +0 -17
  619. package/popover/body/popover-body.component.d.ts +0 -10
  620. package/popover/header/popover-header.component.d.ts +0 -35
  621. package/popover/module.d.ts +0 -14
  622. package/popover/popover-animations.d.ts +0 -8
  623. package/popover/popover-container.component.d.ts +0 -38
  624. package/popover/popover-ref.d.ts +0 -14
  625. package/popover/popover.config.d.ts +0 -110
  626. package/popover/popover.directive.d.ts +0 -67
  627. package/popover/popover.options.d.ts +0 -2
  628. package/popover/popover.service.d.ts +0 -58
  629. package/progress/interfaces.d.ts +0 -23
  630. package/progress/progress-circle.component.d.ts +0 -43
  631. package/progress/progress-strip.component.d.ts +0 -23
  632. package/progress/progress.component.d.ts +0 -59
  633. package/progress/progress.module.d.ts +0 -11
  634. package/property/module.d.ts +0 -11
  635. package/property/properties.component.d.ts +0 -25
  636. package/property/property-item.component.d.ts +0 -80
  637. package/property-operation/group/property-operation-group.component.d.ts +0 -10
  638. package/property-operation/module.d.ts +0 -12
  639. package/property-operation/property-operation.component.d.ts +0 -92
  640. package/public-api.d.ts +0 -1
  641. package/radio/button/radio-button.component.d.ts +0 -18
  642. package/radio/group/radio-group.component.d.ts +0 -46
  643. package/radio/module.d.ts +0 -11
  644. package/radio/radio.component.d.ts +0 -22
  645. package/radio/radio.token.d.ts +0 -12
  646. package/rate/module.d.ts +0 -13
  647. package/rate/rate-item.component.d.ts +0 -17
  648. package/rate/rate.component.d.ts +0 -69
  649. package/resizable/interface.d.ts +0 -12
  650. package/resizable/module.d.ts +0 -10
  651. package/resizable/resizable.directive.d.ts +0 -91
  652. package/resizable/resizable.service.d.ts +0 -32
  653. package/resizable/resize-handle.component.d.ts +0 -31
  654. package/resizable/resize-handles.component.d.ts +0 -21
  655. package/resizable/utils.d.ts +0 -3
  656. package/result/result.component.d.ts +0 -54
  657. package/result/result.module.d.ts +0 -8
  658. package/segment/segment-item.component.d.ts +0 -34
  659. package/segment/segment.component.d.ts +0 -55
  660. package/segment/segment.module.d.ts +0 -11
  661. package/segment/segment.token.d.ts +0 -16
  662. package/segment/types.d.ts +0 -5
  663. package/select/custom-select/custom-select.component.d.ts +0 -271
  664. package/select/module.d.ts +0 -16
  665. package/select/native-select/native-select.component.d.ts +0 -30
  666. package/select/select.config.d.ts +0 -34
  667. package/shared/base-form-check.component.d.ts +0 -51
  668. package/shared/directives/string-or-template-outlet.directive.d.ts +0 -17
  669. package/shared/directives/thy-autofocus.directive.d.ts +0 -23
  670. package/shared/directives/thy-contextmenu.directive.d.ts +0 -17
  671. package/shared/directives/thy-ctrl-enter.directive.d.ts +0 -17
  672. package/shared/directives/thy-drag-drop.directive.d.ts +0 -15
  673. package/shared/directives/thy-enter.directive.d.ts +0 -18
  674. package/shared/directives/thy-scroll.directive.d.ts +0 -39
  675. package/shared/directives/thy-show.d.ts +0 -19
  676. package/shared/directives/thy-stop-propagation.directive.d.ts +0 -17
  677. package/shared/directives/view-outlet.directive.d.ts +0 -27
  678. package/shared/ng-transclude.directive.d.ts +0 -14
  679. package/shared/option/group/option-group.component.d.ts +0 -22
  680. package/shared/option/index.d.ts +0 -8
  681. package/shared/option/list-option/list-option.component.d.ts +0 -32
  682. package/shared/option/module.d.ts +0 -13
  683. package/shared/option/option-group.component.d.ts +0 -12
  684. package/shared/option/option.component.d.ts +0 -51
  685. package/shared/option/option.token.d.ts +0 -30
  686. package/shared/option/options-container.component.d.ts +0 -9
  687. package/shared/option/select-option-base.d.ts +0 -5
  688. package/shared/select/index.d.ts +0 -2
  689. package/shared/select/module.d.ts +0 -11
  690. package/shared/select/select-control/select-control.component.d.ts +0 -73
  691. package/shared/shared.module.d.ts +0 -17
  692. package/shared/shared.type.d.ts +0 -1
  693. package/skeleton/module.d.ts +0 -16
  694. package/skeleton/skeleton-circle.component.d.ts +0 -45
  695. package/skeleton/skeleton-rectangle.component.d.ts +0 -55
  696. package/skeleton/skeleton.component.d.ts +0 -27
  697. package/skeleton/skeleton.config.d.ts +0 -8
  698. package/skeleton/stylized/bullet-list.component.d.ts +0 -55
  699. package/skeleton/stylized/list.component.d.ts +0 -44
  700. package/skeleton/stylized/paragraph.component.d.ts +0 -52
  701. package/slide/drawer/drawer-container.directive.d.ts +0 -11
  702. package/slide/slide-animations.d.ts +0 -4
  703. package/slide/slide-body/slide-body-section.component.d.ts +0 -16
  704. package/slide/slide-body/slide-body.component.d.ts +0 -10
  705. package/slide/slide-container.component.d.ts +0 -49
  706. package/slide/slide-footer/slide-footer.component.d.ts +0 -12
  707. package/slide/slide-header/slide-header.component.d.ts +0 -33
  708. package/slide/slide-layout/slide-layout.component.d.ts +0 -13
  709. package/slide/slide-ref.service.d.ts +0 -20
  710. package/slide/slide.config.d.ts +0 -73
  711. package/slide/slide.module.d.ts +0 -19
  712. package/slide/slide.service.d.ts +0 -28
  713. package/slider/slider.component.d.ts +0 -105
  714. package/slider/slider.module.d.ts +0 -9
  715. package/space/space.component.d.ts +0 -38
  716. package/space/space.module.d.ts +0 -8
  717. package/statistic/statistic.component.d.ts +0 -111
  718. package/statistic/statistic.module.d.ts +0 -10
  719. package/stepper/step-header.component.d.ts +0 -15
  720. package/stepper/step.component.d.ts +0 -28
  721. package/stepper/stepper-button.directive.d.ts +0 -25
  722. package/stepper/stepper.component.d.ts +0 -34
  723. package/stepper/stepper.module.d.ts +0 -11
  724. package/strength/strength.component.d.ts +0 -69
  725. package/strength/strength.module.d.ts +0 -7
  726. package/switch/switch.component.d.ts +0 -59
  727. package/switch/switch.module.d.ts +0 -8
  728. package/table/enums/column-skeleton-type.d.ts +0 -6
  729. package/table/enums/index.d.ts +0 -1
  730. package/table/pipes/drag.pipe.d.ts +0 -11
  731. package/table/pipes/table.pipe.d.ts +0 -10
  732. package/table/table-column.component.d.ts +0 -131
  733. package/table/table-skeleton.component.d.ts +0 -93
  734. package/table/table.component.d.ts +0 -333
  735. package/table/table.interface.d.ts +0 -87
  736. package/table/table.module.d.ts +0 -22
  737. package/table/table.type.d.ts +0 -3
  738. package/tabs/tab-content.component.d.ts +0 -12
  739. package/tabs/tab.component.d.ts +0 -31
  740. package/tabs/tabs.component.d.ts +0 -59
  741. package/tabs/tabs.module.d.ts +0 -12
  742. package/tabs/types.d.ts +0 -2
  743. package/tag/tag.component.d.ts +0 -48
  744. package/tag/tag.module.d.ts +0 -10
  745. package/tag/tags.component.d.ts +0 -11
  746. package/testing/data-transfer.d.ts +0 -22
  747. package/testing/dispatcher-events.d.ts +0 -32
  748. package/testing/element-focus.d.ts +0 -13
  749. package/testing/events.d.ts +0 -33
  750. package/testing/thy-icon.d.ts +0 -5
  751. package/testing/type-in-element.d.ts +0 -14
  752. package/testing/xhr-mock.d.ts +0 -51
  753. package/time-picker/inner/inner-time-picker.class.d.ts +0 -37
  754. package/time-picker/inner/inner-time-picker.component.d.ts +0 -91
  755. package/time-picker/inner/inner-time-picker.config.d.ts +0 -42
  756. package/time-picker/inner/inner-time-picker.store.d.ts +0 -23
  757. package/time-picker/time-picker-controls.util.d.ts +0 -7
  758. package/time-picker/time-picker-panel.component.d.ts +0 -113
  759. package/time-picker/time-picker.component.d.ts +0 -136
  760. package/time-picker/time-picker.module.d.ts +0 -17
  761. package/time-picker/time-picker.utils.d.ts +0 -16
  762. package/timeline/timeline-item.component.d.ts +0 -43
  763. package/timeline/timeline.component.d.ts +0 -47
  764. package/timeline/timeline.module.d.ts +0 -11
  765. package/timeline/timeline.service.d.ts +0 -8
  766. package/timeline/timeline.type.d.ts +0 -1
  767. package/tooltip/interface.d.ts +0 -5
  768. package/tooltip/tooltip-animations.d.ts +0 -4
  769. package/tooltip/tooltip-ref.d.ts +0 -31
  770. package/tooltip/tooltip.component.d.ts +0 -36
  771. package/tooltip/tooltip.config.d.ts +0 -22
  772. package/tooltip/tooltip.directive.d.ts +0 -81
  773. package/tooltip/tooltip.module.d.ts +0 -11
  774. package/tooltip/tooltip.service.d.ts +0 -16
  775. package/transfer/transfer-list.component.d.ts +0 -41
  776. package/transfer/transfer.component.d.ts +0 -90
  777. package/transfer/transfer.interface.d.ts +0 -66
  778. package/transfer/transfer.module.d.ts +0 -15
  779. package/tree/tree-abstract.d.ts +0 -19
  780. package/tree/tree-node.component.d.ts +0 -95
  781. package/tree/tree.class.d.ts +0 -106
  782. package/tree/tree.component.d.ts +0 -199
  783. package/tree/tree.module.d.ts +0 -20
  784. package/tree/tree.pipe.d.ts +0 -12
  785. package/tree/tree.service.d.ts +0 -34
  786. package/tree-select/module.d.ts +0 -14
  787. package/tree-select/tree-select.class.d.ts +0 -12
  788. package/tree-select/tree-select.component.d.ts +0 -203
  789. package/types/common.d.ts +0 -2
  790. package/types/dictionary.d.ts +0 -10
  791. package/types/pagination.d.ts +0 -6
  792. package/typography/bg-color.directive.d.ts +0 -20
  793. package/typography/module.d.ts +0 -11
  794. package/typography/text/text.component.d.ts +0 -17
  795. package/typography/text-color.directive.d.ts +0 -22
  796. package/upload/constant.d.ts +0 -73
  797. package/upload/file-drop.directive.d.ts +0 -32
  798. package/upload/file-select-base.d.ts +0 -22
  799. package/upload/file-select.component.d.ts +0 -34
  800. package/upload/module.d.ts +0 -9
  801. package/upload/types.d.ts +0 -11
  802. package/upload/upload.config.d.ts +0 -17
  803. package/upload/upload.service.d.ts +0 -140
  804. package/upload/util.d.ts +0 -1
  805. package/util/date/functions.d.ts +0 -85
  806. package/util/date/tiny-date.d.ts +0 -124
  807. package/util/dom.d.ts +0 -101
  808. package/util/helpers/helpers.d.ts +0 -55
  809. package/util/helpers/index.d.ts +0 -1
  810. package/util/immutable.d.ts +0 -70
  811. package/util/keycodes.d.ts +0 -2
  812. package/util/logger/index.d.ts +0 -1
  813. package/util/logger/logger.d.ts +0 -6
  814. package/util/ng.d.ts +0 -2
  815. package/util/references.d.ts +0 -58
  816. package/version.d.ts +0 -2
  817. package/vote/vote.component.d.ts +0 -53
  818. package/vote/vote.module.d.ts +0 -10
  819. package/watermark/config.d.ts +0 -19
  820. package/watermark/watermark.directive.d.ts +0 -63
  821. package/watermark/watermark.module.d.ts +0 -9
  822. /package/schematics/ng-update/{update-19 → update-20}/class-name-migration.d.ts +0 -0
  823. /package/schematics/ng-update/{update-19 → update-20}/class-name-migration.js +0 -0
  824. /package/schematics/ng-update/{update-19 → update-20}/index.d.ts +0 -0
  825. /package/schematics/ng-update/{update-19 → update-20}/index.spec.d.ts +0 -0
  826. /package/schematics/ng-update/{update-19 → update-20}/update-data.d.ts +0 -0
  827. /package/schematics/ng-update/{update-19 → update-20}/update-data.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-form.mjs","sources":["../../../src/form/form.class.ts","../../../src/form/form-validator-loader.ts","../../../src/form/form-validator.service.ts","../../../src/form/form.directive.ts","../../../src/form/form-group-error/form-group-error.component.ts","../../../src/form/form-group-error/form-group-error.component.html","../../../src/form/form-group-label.directive.ts","../../../src/form/form-group.component.ts","../../../src/form/form-group.component.html","../../../src/form/form-submit.directive.ts","../../../src/form/from-group-footer/form-group-footer.component.ts","../../../src/form/from-group-footer/form-group-footer.component.html","../../../src/form/validator/unique-validator.directive.ts","../../../src/form/validator/min-validator.directive.ts","../../../src/form/validator/max-validator.directive.ts","../../../src/form/validator/confirm-validator.directive.ts","../../../src/form/module.ts","../../../src/form/ngx-tethys-form.ts"],"sourcesContent":["import { Dictionary } from 'ngx-tethys/types';\n\nimport { InjectionToken } from '@angular/core';\nimport { AbstractControl, FormControlName } from '@angular/forms';\n\nexport type ThyFormLayout = 'horizontal' | 'vertical' | 'inline';\n\nexport type ThyFormGroupFooterAlign = 'left' | 'right' | 'center';\n\nexport declare type ThyValidateOn = 'submit' | 'blur' | 'change';\n\nexport declare type ThyFormValidationMessages = Dictionary<Dictionary<string>>;\n\n/**\n * @order 20\n */\nexport interface ThyFormValidatorConfig {\n /**\n * 当值为 true 或不传时,执行默认逻辑,当为 false 时,不显示错误;值为 function 时,执行自定义函数处理逻辑,需要注入 THY_VALIDATOR_CONFIG 来使配置生效。\n */\n showElementError?: boolean | ((element: HTMLElement, errorMessages: string[]) => void);\n\n /**\n * 移除错误,一般和 showElementError 匹配使用;当值为 true 或不传时,执行默认逻辑,当为 false 时,不显示错误提示;值为 function 时,执行自定义函数处理逻辑,需要注入 THY_VALIDATOR_CONFIG 来使配置生效。\n */\n removeElementError?: boolean | ((element: HTMLElement) => void);\n\n /**\n * 每个字段的验证提示信息配置, validationMessages: {external_url: {required: '应用地址不能为空'}}\n */\n validationMessages?: ThyFormValidationMessages;\n\n /**\n * 表单验证触发方式; 支持change、submit、blur三种方式触发。默认submit。\n */\n validateOn?: ThyValidateOn;\n}\n\nexport interface ThyFormValidatorGlobalConfig extends ThyFormValidatorConfig {\n globalValidationMessages?: Dictionary<string>;\n}\n\nexport interface ThyFormConfig {\n layout?: ThyFormLayout;\n footerAlign?: ThyFormGroupFooterAlign;\n}\n\nexport interface ThyControlValidationResult {\n valid: boolean;\n control: AbstractControl | FormControlName;\n element: HTMLElement;\n}\n\nexport interface ThyValidateResult {\n valid: boolean;\n invalidControls: ThyControlValidationResult[];\n validControls: ThyControlValidationResult[];\n}\n\nexport const THY_VALIDATOR_CONFIG = new InjectionToken<ThyFormValidatorGlobalConfig>('VALIDATION_CONFIG');\n\nexport const THY_FORM_CONFIG = new InjectionToken<ThyFormConfig>('THY_FORM_CONFIG');\n\nexport const THY_FORM_CONFIG_PROVIDER = {\n provide: THY_FORM_CONFIG,\n useValue: { layout: 'horizontal', footerAlign: 'left' }\n};\n","import { Dictionary } from 'ngx-tethys/types';\nimport { helpers } from 'ngx-tethys/util';\n\nimport { Inject, Injectable, Optional, Signal } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\nimport { THY_VALIDATOR_CONFIG, ThyFormValidationMessages, ThyFormValidatorGlobalConfig } from './form.class';\nimport { injectLocale, ThyFormLocale } from 'ngx-tethys/i18n';\n\nexport const ERROR_VALUE_REPLACE_REGEX = /\\{(.+?)\\}/g;\n\nconst INVALID_CLASS = 'is-invalid';\nconst INVALID_FEEDBACK_CLASS = 'invalid-feedback';\n\nconst defaultValidatorConfig: ThyFormValidatorGlobalConfig = {\n showElementError: true,\n removeElementError: true,\n validationMessages: {}\n};\n\n/**\n * @private\n */\n@Injectable()\nexport class ThyFormValidatorLoader {\n private config: ThyFormValidatorGlobalConfig;\n private locale: Signal<ThyFormLocale> = injectLocale('form');\n\n private globalValidationMessages = {\n required: this.locale().required,\n maxlength: this.locale().maxlength,\n minlength: this.locale().minlength,\n thyUniqueCheck: this.locale().uniqueCheck,\n email: this.locale().email,\n confirm: this.locale().confirm,\n pattern: this.locale().pattern,\n number: this.locale().number,\n url: this.locale().url,\n max: this.locale().max,\n min: this.locale().min\n };\n\n private getDefaultValidationMessage(key: string) {\n if (this.config.globalValidationMessages && this.config.globalValidationMessages[key]) {\n return this.config.globalValidationMessages[key];\n } else {\n return this.globalValidationMessages[key as keyof typeof this.globalValidationMessages];\n }\n }\n\n constructor(\n @Optional()\n @Inject(THY_VALIDATOR_CONFIG)\n config: ThyFormValidatorGlobalConfig\n ) {\n this.config = Object.assign({}, defaultValidatorConfig, config);\n }\n\n get validationMessages() {\n return this.config.validationMessages;\n }\n\n get validateOn() {\n if (!this.config?.validateOn) {\n this.config.validateOn = 'submit';\n }\n return this.config.validateOn;\n }\n\n isElementInInputGroup(element: HTMLElement) {\n return !!(element?.parentElement?.tagName.toUpperCase() === 'THY-INPUT-GROUP');\n }\n\n getErrorMessage(name: string, key: string): string {\n if (this.validationMessages[name] && this.validationMessages[name][key]) {\n return this.validationMessages[name][key];\n } else {\n return this.getDefaultValidationMessage(key);\n }\n }\n\n getErrorMessages(name: string, validationErrors: ValidationErrors): string[] {\n const messages = [];\n for (const validationError in validationErrors) {\n if (validationErrors.hasOwnProperty(validationError)) {\n messages.push(this.getErrorMessage(name, validationError));\n }\n }\n return messages;\n }\n\n defaultShowError(element: HTMLElement, errorMessages: string[]) {\n if (element && element.parentElement) {\n const documentFrag = document.createDocumentFragment();\n const divNode = document.createElement('DIV');\n const textNode = document.createTextNode(errorMessages[0]);\n divNode.appendChild(textNode);\n divNode.setAttribute('class', INVALID_FEEDBACK_CLASS);\n documentFrag.appendChild(divNode);\n element.parentElement.append(documentFrag);\n }\n }\n\n defaultRemoveError(element: HTMLElement) {\n if (element && element.parentElement) {\n const invalidFeedback = element.parentElement.querySelector('.invalid-feedback');\n if (invalidFeedback) {\n element.parentElement.removeChild(invalidFeedback);\n }\n }\n }\n\n removeError(element: HTMLElement) {\n const formControlElement = this.isElementInInputGroup(element) ? element.parentElement : element;\n formControlElement.classList.remove(INVALID_CLASS);\n if (helpers.isFunction(this.config.removeElementError)) {\n this.config.removeElementError(formControlElement);\n } else if (this.config.showElementError) {\n this.defaultRemoveError(formControlElement);\n } else {\n // do nothings\n }\n }\n\n showError(element: HTMLElement, errorMessages: string[]) {\n const formControlElement = this.isElementInInputGroup(element) ? element.parentElement : element;\n formControlElement.classList.add(INVALID_CLASS);\n if (helpers.isFunction(this.config.showElementError)) {\n this.config.showElementError(formControlElement, errorMessages);\n } else if (this.config.showElementError) {\n this.defaultShowError(formControlElement, errorMessages);\n } else {\n // do nothings\n }\n }\n\n addValidationMessages(messages: ThyFormValidationMessages) {\n Object.assign(this.config.validationMessages, messages);\n }\n\n setGlobalValidationMessages(validationMessages: Dictionary<string>) {\n this.config.globalValidationMessages = validationMessages;\n }\n}\n","import { Dictionary } from 'ngx-tethys/types';\nimport { isUndefinedOrNull } from 'ngx-tethys/util';\nimport { of, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { Injectable, OnDestroy, inject } from '@angular/core';\nimport { AbstractControl, FormControlName, FormGroupDirective, NgControl, NgForm, ValidationErrors } from '@angular/forms';\n\nimport { ERROR_VALUE_REPLACE_REGEX, ThyFormValidatorLoader } from './form-validator-loader';\nimport { ThyFormValidatorConfig, ThyValidateOn, ThyValidateResult } from './form.class';\n\n/**\n * @private\n */\n@Injectable()\nexport class ThyFormValidatorService implements OnDestroy {\n private thyFormValidateLoader = inject(ThyFormValidatorLoader);\n\n private _ngForm: NgForm | FormGroupDirective;\n\n private _formElement: HTMLFormElement;\n\n private _config: ThyFormValidatorConfig;\n\n public errors: string[] = [];\n\n private _controls: NgControl[] = [];\n\n // 记录所有元素的验证信息\n public validations: Dictionary<{\n hasError?: boolean;\n errorMessages?: string[];\n }> = {};\n\n private _destroy$ = new Subject<void>();\n\n private _getElement(name: string) {\n const element = this._formElement.elements[name];\n if (element) {\n return element;\n } else {\n return this._formElement.querySelector(`[name='${name}']`);\n }\n }\n\n private _clearElementError(name: string) {\n if (this.validations[name] && this.validations[name].hasError) {\n this.validations[name].hasError = false;\n this.validations[name].errorMessages = [];\n this.thyFormValidateLoader.removeError(this._getElement(name));\n }\n }\n\n private _tryGetValidation(name: string) {\n const controls = this._getControls();\n if (!this.validations[name]) {\n this._initializeFormControlValidation(name, controls[name] as any);\n }\n return this.validations[name];\n }\n\n private _addError(message: string) {\n this.errors.unshift(message);\n }\n\n private _clearErrors() {\n this.errors = [];\n }\n\n private _setControlValidateByChange(control: NgControl) {\n control.valueChanges\n .pipe(\n debounceTime(100),\n distinctUntilChanged(),\n filter(item => {\n return item;\n }),\n switchMap(item => {\n this.validateControl(control.name as string);\n return of([]);\n })\n )\n .subscribe();\n }\n\n private _setControlValidateByBlur(control: NgControl) {\n const element: HTMLElement = this._getElement(control.name as string);\n if (element) {\n // 继承了 AbstractControlValueAccessor 的自定义 Accessor,通过 __onBlurValidation 控制触发验证函数\n if (control.valueAccessor['__onBlurValidation']) {\n control.valueAccessor['__onBlurValidation'] = () => {\n this.validateControl(control.name as string);\n };\n } else {\n element.onblur = (event: FocusEvent) => {\n this.validateControl(control.name as string);\n };\n }\n }\n }\n\n private _initializeFormControlValidation(name: string, control: AbstractControl | FormControlName | NgControl) {\n this.validations[name] = {\n hasError: false,\n errorMessages: []\n };\n if (this._getValidateOn() === 'change') {\n this._setControlValidateByChange(control as NgControl);\n } else {\n if (this._getValidateOn() === 'blur') {\n this._setControlValidateByBlur(control as NgControl);\n }\n\n control.valueChanges.pipe(takeUntil(this._destroy$)).subscribe(item => {\n this._clearElementError(name);\n this._clearErrors();\n });\n }\n }\n\n private _restFormControlValidation(name: string) {\n const validation = this.validations[name];\n if (validation) {\n validation.hasError = false;\n validation.errorMessages = [];\n }\n }\n\n private _formatValidationMessage(name: string, message: string) {\n const controls = this._getControls();\n const control = controls[name];\n if (control) {\n return message.replace(ERROR_VALUE_REPLACE_REGEX, (tag, key) => {\n if (key) {\n return isUndefinedOrNull(control.errors[key][key]) ? control.errors[key].requiredLength : control.errors[key][key];\n }\n });\n } else {\n return message;\n }\n }\n\n private _getValidationMessage(name: string, validationError: string) {\n let message = null;\n if (\n this._config &&\n this._config.validationMessages &&\n this._config.validationMessages[name] &&\n this._config.validationMessages[name][validationError]\n ) {\n message = this._config.validationMessages[name][validationError];\n } else {\n message = this.thyFormValidateLoader.getErrorMessage(name, validationError);\n }\n return this._formatValidationMessage(name, message);\n }\n\n private _getValidationMessages(name: string, validationErrors: ValidationErrors) {\n const messages = [];\n for (const validationError in validationErrors) {\n if (validationErrors.hasOwnProperty(validationError)) {\n messages.push(this._getValidationMessage(name, validationError));\n }\n }\n return messages;\n }\n\n private _setControlValidationError(name: string, errorMessages: string[]) {\n const validation = this._tryGetValidation(name);\n validation.errorMessages = errorMessages;\n validation.hasError = true;\n this.thyFormValidateLoader.showError(this._getElement(name), errorMessages);\n }\n\n private _getValidateOn(): ThyValidateOn {\n return (this._config && this._config.validateOn) || this.thyFormValidateLoader.validateOn;\n }\n\n initialize(ngForm: NgForm | FormGroupDirective, formElement: HTMLFormElement) {\n this._ngForm = ngForm;\n this._formElement = formElement;\n }\n\n initializeFormControlsValidation(controls: NgControl[]) {\n if (this._getValidateOn() !== 'submit') {\n (controls || []).forEach((control: NgControl) => {\n if (!this._controls.find(item => item.name === control.name)) {\n this._initializeFormControlValidation(control.name as string, control);\n }\n });\n this._controls = controls;\n }\n }\n\n setValidatorConfig(config: ThyFormValidatorConfig) {\n this._config = config;\n }\n\n private _getControls() {\n if (this._ngForm instanceof NgForm) {\n return (this._ngForm as NgForm).controls;\n } else if (this._ngForm instanceof FormGroupDirective) {\n const controls = {};\n (this._ngForm as FormGroupDirective).directives.forEach(directive => {\n controls[directive.name] = directive;\n });\n return controls;\n }\n }\n\n private _getControlByName(name: string): AbstractControl | FormControlName {\n const controls = this._getControls();\n return controls[name];\n }\n\n validateControl(name: string) {\n this._clearElementError(name);\n const control = this._getControlByName(name);\n if (control && control.invalid) {\n const errorMessages = this._getValidationMessages(name, control.errors);\n this._setControlValidationError(name, errorMessages);\n }\n return {\n valid: control.valid,\n control: control,\n element: this._getElement(name)\n };\n }\n\n validateControls() {\n // 主要是 无法检测到 ngForm 的 controls 的变化,或者是我没有找到\n // 验证的时候循环 ngForm 的 controls 验证\n // 发现没有 validation 初始化一个,已经存在不会重新初始化,保存缓存数据\n const results = [];\n const controls = this._getControls();\n for (const name in controls) {\n if (controls.hasOwnProperty(name)) {\n this._tryGetValidation(name);\n const result = this.validateControl(name);\n results.push(result);\n }\n }\n // 移除已经不存在的 validation\n const names = Object.keys(this.validations);\n names.forEach(name => {\n if (!controls[name]) {\n delete this.validations[name];\n }\n });\n return results;\n }\n\n addError(message: string) {\n this._addError(message);\n }\n\n validate($event?: Event): boolean {\n this._ngForm.onSubmit($event);\n this.validateControls();\n return this._ngForm.valid;\n }\n\n validateWithDetail($event?: Event): ThyValidateResult {\n this._ngForm.onSubmit($event);\n const results = this.validateControls();\n return {\n valid: this._ngForm.valid,\n invalidControls: results.filter(res => !res.valid),\n validControls: results.filter(res => res.valid)\n };\n }\n\n reset() {\n this._ngForm.reset();\n for (const name in this.validations) {\n if (this.validations.hasOwnProperty(name)) {\n this._restFormControlValidation(name);\n this._clearElementError(name);\n }\n }\n }\n\n setElementErrorMessage(name: string, message: string) {\n this._clearElementError(name);\n this._setControlValidationError(name, [message]);\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n}\n","import { keycodes } from 'ngx-tethys/util';\n\nimport {\n AfterViewInit,\n ContentChildren,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n inject,\n input,\n afterRenderEffect,\n effect,\n afterNextRender\n} from '@angular/core';\nimport { ControlContainer, NgControl, NgForm } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport { ThyFormValidatorService } from './form-validator.service';\nimport { THY_FORM_CONFIG, ThyFormConfig, ThyFormLayout, ThyFormValidatorConfig } from './form.class';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\n// 1. submit 按 Enter 键提交, Textare或包含[contenteditable]属性的元素 除外,需要按 Ctrl | Command + Enter 提交\n// 2. alwaysSubmit 不管是哪个元素 按 Enter 键都提交\n// 3. forbidSubmit \bEnter 键禁止提交\n// 默认 submit\nexport enum ThyEnterKeyMode {\n submit = 'submit',\n alwaysSubmit = 'alwaysSubmit',\n forbidSubmit = 'forbidSubmit'\n}\n\n/**\n * 表单\n * @name thyForm,[thy-form]\n * @order 10\n */\n@Directive({ selector: '[thyForm],[thy-form]', providers: [ThyFormValidatorService], exportAs: 'thyForm', host: { class: 'thy-form' } })\nexport class ThyFormDirective implements OnInit, AfterViewInit, OnDestroy {\n private ngForm = inject(ControlContainer);\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n private ngZone = inject(NgZone);\n readonly validator = inject(ThyFormValidatorService);\n private config = inject(THY_FORM_CONFIG);\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 布局,默认水平居中 horizontal,其他2种布局待开发\n * @type horizontal | vertical | inline\n * @default horizontal\n */\n readonly thyLayout = input<ThyFormLayout>(undefined);\n\n get isHorizontal() {\n return this.layout === 'horizontal';\n }\n\n private get layout() {\n return this.thyLayout() || this.config.layout;\n }\n\n /**\n * Enter 键提交模式。`submit`: Textarea 需要 Ctrl | Command + Enter 提交,其他元素直接 Enter 提交; `alwaysSubmit`: 不管是什么元素 Enter 都提交; `forbidSubmit`: Enter 不提交\n * @type submit | alwaysSubmit | forbidSubmit\n * @default submit\n */\n readonly thyEnterKeyMode = input<ThyEnterKeyMode>(undefined);\n\n /**\n * 表单验证规则配置项 (更多内容查看:thyFormValidatorConfig)\n */\n readonly thyFormValidatorConfig = input<ThyFormValidatorConfig>();\n\n @HostBinding('class.was-validated') wasValidated = false;\n\n onSubmitSuccess: ($event: any) => void;\n\n private _unsubscribe: () => void;\n\n @ContentChildren(NgControl, { descendants: true })\n public controls: QueryList<NgControl>;\n\n constructor() {\n effect(() => {\n this.updateClasses();\n });\n\n effect(() => {\n const config = this.thyFormValidatorConfig();\n if (config) {\n this.validator.setValidatorConfig(config);\n }\n });\n\n // TODO:: replace ngAfterViewInit with afterNextRender\n // afterNextRender(() => {\n // this.validator.initialize(this.ngForm as NgForm, this.elementRef.nativeElement);\n // this.validator.initializeFormControlsValidation(this.controls.toArray());\n // this.controls.changes.subscribe(controls => {\n // this.validator.initializeFormControlsValidation(this.controls.toArray());\n // });\n // });\n }\n\n ngOnInit(): void {\n this.ngZone.runOutsideAngular(() => {\n this._unsubscribe = this.renderer.listen(this.elementRef.nativeElement, 'keydown', this.onKeydown.bind(this));\n });\n }\n\n ngAfterViewInit() {\n this.validator.initialize(this.ngForm as NgForm, this.elementRef.nativeElement);\n this.validator.initializeFormControlsValidation(this.controls.toArray());\n this.controls.changes.subscribe(controls => {\n this.validator.initializeFormControlsValidation(this.controls.toArray());\n });\n }\n\n submit($event: Event) {\n const result = this.validator.validateWithDetail($event);\n if (result.valid) {\n this.onSubmitSuccess && this.onSubmitSuccess($event);\n } else {\n const invalidElement = result.invalidControls[0].element;\n invalidElement.focus();\n }\n }\n\n updateClasses() {\n this.hostRenderer.updateClassByMap({ [`thy-form-${this.layout}`]: true });\n }\n\n submitRunInZone($event: any) {\n this.ngZone.run(() => {\n this.submit($event);\n });\n }\n\n onKeydown($event: KeyboardEvent) {\n const currentInput = document.activeElement;\n const key = $event.which || $event.keyCode;\n if (key === keycodes.ENTER && currentInput.tagName) {\n const thyEnterKeyMode = this.thyEnterKeyMode();\n if (!thyEnterKeyMode || thyEnterKeyMode === ThyEnterKeyMode.submit) {\n // TEXTAREA或包含[contenteditable]属性的元素 Ctrl + Enter 或者 Command + Enter 阻止\b默认行为并提交\n if (currentInput.tagName === 'TEXTAREA' || coerceBooleanProperty(currentInput.getAttribute('contenteditable'))) {\n if ($event.ctrlKey || $event.metaKey) {\n $event.preventDefault();\n this.submitRunInZone($event);\n }\n } else {\n // 不是 TEXTAREA Enter 阻止\b默认行为并提交\n $event.preventDefault();\n this.submitRunInZone($event);\n }\n } else if (thyEnterKeyMode === ThyEnterKeyMode.alwaysSubmit) {\n $event.preventDefault();\n this.submitRunInZone($event);\n } else {\n // do nothing\n }\n }\n }\n\n ngOnDestroy() {\n if (this._unsubscribe) {\n this._unsubscribe();\n this._unsubscribe = null;\n }\n }\n}\n","import { Component, HostBinding, ViewEncapsulation, OnInit, Input, inject, input } from '@angular/core';\nimport { ThyFormDirective } from '../form.directive';\nimport { ThyAlert } from 'ngx-tethys/alert';\nimport { NgClass } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @name thy-form-group-error\n * @order 50\n */\n@Component({\n selector: 'thy-form-group-error',\n templateUrl: './form-group-error.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [NgClass, ThyAlert]\n})\nexport class ThyFormGroupError implements OnInit {\n private thyParentForm = inject(ThyFormDirective, { optional: true })!;\n\n public errors: string[];\n\n readonly thyShowFirst = input(true, { transform: coerceBooleanProperty });\n\n /**\n * @type string[]\n */\n @Input()\n set thyErrors(errors: string[]) {\n this.errors = errors;\n }\n\n get thyErrors() {\n const errors = this.errors || this.thyParentForm.validator.errors;\n return errors && errors.length > 0 && this.thyShowFirst() ? [errors[0]] : errors;\n }\n\n @HostBinding('class.form-group')\n get _isFormGroup() {\n return this.thyErrors && this.thyErrors.length > 0;\n }\n\n @HostBinding('class.row') isHorizontal = true;\n\n ngOnInit() {\n if (this.thyParentForm) {\n this.isHorizontal = this.thyParentForm.isHorizontal;\n }\n }\n}\n","<div [ngClass]=\"{ 'col-sm-10 offset-sm-2 col-form-control': isHorizontal }\">\n @for (error of thyErrors; track $index) {\n <thy-alert thyType=\"danger\" [thyMessage]=\"error\"></thy-alert>\n }\n</div>\n","import { Directive, HostBinding, Input, inject } from '@angular/core';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @name thyFormGroupLabel\n * @order 45\n */\n@Directive({\n selector: '[thyFormGroupLabel]'\n})\nexport class ThyFormGroupLabelDirective {\n private thyTranslate = inject(ThyTranslate);\n\n public labelText: string;\n\n @HostBinding('class.label-required') labelRequired = false;\n\n @HostBinding('class.col-form-label') _isFormGroupLabel = true;\n\n @Input()\n set thyLabelText(value: string) {\n this.labelText = value;\n }\n\n @Input()\n set thyLabelTranslateKey(translateKey: string) {\n if (translateKey) {\n this.labelText = this.thyTranslate.instant(translateKey);\n }\n }\n\n @Input({ transform: coerceBooleanProperty })\n set thyLabelRequired(value: boolean) {\n this.labelRequired = value;\n }\n}\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n Input,\n OnInit,\n TemplateRef,\n ViewEncapsulation,\n inject,\n input,\n computed,\n signal,\n effect\n} from '@angular/core';\n\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyTooltipDirective } from 'ngx-tethys/tooltip';\n\nimport { ThyFormDirective } from './form.directive';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst internalIconMap: Record<string, string> = {\n date: 'calendar'\n};\n\ntype TipsMode = 'default' | 'label';\n\n/**\n * 表单分组组件\n * @name thy-form-group\n * @order 40\n */\n@Component({\n selector: 'thy-form-group',\n templateUrl: './form-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, ThyIcon, NgClass, ThyTooltipDirective],\n host: {\n class: 'form-group',\n '[class.row-fill]': 'thyRowFill()',\n '[class.row]': 'isHorizontalSignal()',\n '[class.has-feedback]': 'thyFeedbackIcon()'\n }\n})\nexport class ThyFormGroup implements OnInit {\n private thyParentForm = inject(ThyFormDirective, { optional: true })!;\n private thyTranslate = inject(ThyTranslate);\n\n protected isHorizontalSignal = signal(true);\n\n /**\n * Label 文本\n */\n readonly thyLabelText = input<string>();\n\n /**\n * Label 文本多语言 Key\n */\n readonly thyLabelTextTranslateKey = input<string>();\n\n protected labelTextSignal = computed(() => {\n const labelTextTranslateKey = this.thyLabelTextTranslateKey();\n const labelText = this.thyLabelText();\n if (labelText) {\n return labelText;\n } else if (labelTextTranslateKey) {\n return this.thyTranslate.instant(labelTextTranslateKey);\n }\n return '';\n });\n\n /**\n * Label 是否显示必填项样式\n */\n readonly thyLabelRequired = input(false, {\n transform: coerceBooleanProperty\n });\n\n /**\n * 清楚 Label padding 间距\n */\n readonly thyLabelPaddingTopClear = input(false, {\n transform: coerceBooleanProperty\n });\n\n /**\n * 反馈图标,比如日期输入框显示日期的图标,常用输入 date 表示时间 wtf wtf-schedule-o\n */\n thyFeedbackIcon = input('', {\n transform: (value: string) => {\n if (internalIconMap[value]) {\n return internalIconMap[value];\n }\n return value;\n }\n });\n\n /**\n * 提示文字的显示模式,`label`模式表示在 label 后通过图标+Tooltip 提示, `default`模式在 Form Control 下方直接显示\n * @type default | label\n * @default default\n */\n thyTipsMode = input<TipsMode>('default');\n\n /**\n * 提示文案\n */\n readonly thyTips = input<string>('');\n\n /**\n * 提示文案的多语言 Key\n */\n readonly thyTipsTranslateKey = input<string>('');\n\n protected readonly tipsSignal = computed(() => {\n const key = this.thyTipsTranslateKey();\n const tips = this.thyTips();\n\n if (key) {\n return this.thyTranslate.instant(key);\n }\n if (tips) {\n return tips;\n }\n return '';\n });\n\n /**\n * 是否填充整行, 没有 Label 文本,只有输入框\n * @default false\n */\n readonly thyRowFill = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 已废弃\n * @deprecated please use content because formGroup is same name with angular formGroup directive\n */\n @ContentChild('formGroup')\n public contentTemplateRef: TemplateRef<any>;\n\n /**\n * 内容自定义模板,`<ng-template #content></ng-template>`\n */\n @ContentChild('content')\n public contentTemplate: TemplateRef<any>;\n\n constructor() {\n // effect(() => {\n // const isHorizontal = this.thyParentForm ? this.thyParentForm.isHorizontal : true;\n // this.isHorizontal.set(isHorizontal);\n // });\n }\n\n ngOnInit() {\n const isHorizontal = this.thyParentForm ? this.thyParentForm.isHorizontal : true;\n this.isHorizontalSignal.set(isHorizontal);\n }\n}\n","@let tips = tipsSignal();\n@let labelText = labelTextSignal();\n@let isHorizontal = isHorizontalSignal();\n@let feedbackIcon = thyFeedbackIcon();\n@if (contentTemplate || contentTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"contentTemplate || contentTemplateRef\"></ng-container>\n @if (feedbackIcon) {\n <thy-icon class=\"form-control-feedback\" [thyIconName]=\"feedbackIcon\"></thy-icon>\n }\n} @else {\n @if (!(!isHorizontal && !labelText)) {\n <label\n class=\"form-label \"\n [ngClass]=\"{\n 'col-sm-2 col-form-label': isHorizontal,\n 'pt-0': thyLabelPaddingTopClear()\n }\"\n >\n <span\n [ngClass]=\"{\n 'label-required': thyLabelRequired()\n }\"\n >{{ labelText }}</span\n >\n @if (thyTipsMode() === 'label' && tips) {\n <thy-icon class=\"label-tips-icon\" thyIconName=\"question-circle\" [thyTooltip]=\"tips\"></thy-icon>\n }\n </label>\n }\n <div [ngClass]=\"{ 'col-sm-10 col-form-control': isHorizontal, 'position-relative': !isHorizontal }\">\n <ng-content></ng-content>\n @if (feedbackIcon) {\n <thy-icon class=\"form-control-feedback\" [thyIconName]=\"feedbackIcon\"></thy-icon>\n }\n @if (thyTipsMode() === 'default' && tips) {\n <span class=\"form-text text-desc\">{{ tips }}</span>\n }\n </div>\n }\n\n","import { Directive, EventEmitter, HostListener, OnInit, Output, inject, output } from '@angular/core';\n\nimport { ThyFormDirective } from './form.directive';\n\n/**\n * 表单提交指令\n * @name thyFormSubmit,[thy-form-submit]\n * @order 15\n */\n@Directive({\n selector: '[thyFormSubmit],[thy-form-submit]'\n})\nexport class ThyFormSubmitDirective implements OnInit {\n private thyFormDirective = inject(ThyFormDirective);\n\n /**\n * Form 验证通过的提交函数\n */\n thyFormSubmit = output<Event>();\n\n ngOnInit(): void {\n this.thyFormDirective.onSubmitSuccess = ($event: Event) => {\n this.thyFormSubmit.emit($event);\n };\n }\n\n @HostListener('click', ['$event'])\n onSubmit($event: Event) {\n this.thyFormDirective.submit($event);\n }\n}\n","import { Component, HostBinding, ViewEncapsulation, OnInit, ContentChild, TemplateRef, inject, input } from '@angular/core';\nimport { ThyFormDirective } from '../form.directive';\nimport { ThyFormGroupFooterAlign, THY_FORM_CONFIG, ThyFormConfig } from '../form.class';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\n/**\n * 表单组底部组件\n * @name thy-form-group-footer\n * @order 55\n */\n@Component({\n selector: 'thy-form-group-footer',\n templateUrl: './form-group-footer.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [NgClass, NgTemplateOutlet]\n})\nexport class ThyFormGroupFooter implements OnInit {\n private thyParentForm = inject(ThyFormDirective, { optional: true })!;\n private defaultConfig = inject(THY_FORM_CONFIG);\n\n @HostBinding('class.form-group') _isFormGroup = true;\n\n @HostBinding('class.row') isHorizontal = true;\n\n @ContentChild('description') description: TemplateRef<any>;\n\n /**\n * 对齐方式\n * @type left | right | center\n * @default left\n */\n readonly thyAlign = input<ThyFormGroupFooterAlign>(undefined);\n\n public footerClassMap = {};\n\n private get align() {\n const thyAlign = this.thyAlign();\n return !!thyAlign ? thyAlign : this.defaultConfig.footerAlign;\n }\n\n ngOnInit() {\n if (this.thyParentForm) {\n this.isHorizontal = this.thyParentForm.isHorizontal;\n }\n this.setFooterClassMap();\n }\n\n setFooterClassMap() {\n this.footerClassMap = {\n 'form-group-footer': true,\n 'col-sm-10 offset-sm-2 col-form-control': this.isHorizontal,\n [`form-group-footer-align-${this.align}`]: true\n };\n }\n}\n","<div [ngClass]=\"footerClassMap\">\n <div class=\"btn-pair form-footer-actions\">\n <ng-content></ng-content>\n </div>\n\n @if (description) {\n <div class=\"form-footer-description\">\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\n </div>\n }\n</div>\n","import { AsyncValidator, AbstractControl, ValidationErrors, NG_ASYNC_VALIDATORS } from '@angular/forms';\nimport { Directive, ElementRef, inject, input } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { map, catchError } from 'rxjs/operators';\nimport { ThyFormDirective } from '../form.directive';\n\n/**\n * 用于校验表单控件的输入值是否已经存在\n * @name thyUniqueCheck\n * @order 20\n */\n@Directive({\n selector: '[thyUniqueCheck]',\n providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: ThyUniqueCheckValidator, multi: true }]\n})\nexport class ThyUniqueCheckValidator implements AsyncValidator {\n private elementRef = inject(ElementRef);\n private thyForm = inject(ThyFormDirective, { optional: true })!;\n\n readonly thyUniqueCheck = input<(value: any) => Observable<boolean>>(undefined);\n\n validate(ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n return this.thyUniqueCheck()(ctrl.value).pipe(\n map((failed: boolean) => {\n setTimeout(() => {\n if (failed && this.thyForm && this.elementRef.nativeElement.name) {\n this.thyForm.validator.validateControl(this.elementRef.nativeElement.name);\n }\n });\n return failed ? { thyUniqueCheck: failed } : null;\n }),\n catchError(() => of(null))\n );\n }\n}\n","import { Directive, Input, forwardRef } from '@angular/core';\nimport { Validator, AbstractControl, NG_VALIDATORS, Validators, ValidatorFn } from '@angular/forms';\n\n/**\n * @name min\n * @order 35\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[min][formControlName],[min][formControl],[min][ngModel]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ThyMinDirective),\n multi: true\n }\n ]\n})\nexport class ThyMinDirective implements Validator {\n private _validator: ValidatorFn;\n @Input() public set min(value: string) {\n this._validator = Validators.min(parseFloat(value));\n }\n\n public validate(control: AbstractControl): { [key: string]: any } {\n return this._validator(control);\n }\n}\n","import { Directive, Input, forwardRef } from '@angular/core';\nimport { Validator, AbstractControl, NG_VALIDATORS, Validators, ValidatorFn } from '@angular/forms';\n\n/**\n * @name max\n * @order 30\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[max][formControlName],[max][formControl],[max][ngModel]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ThyMaxDirective),\n multi: true\n }\n ]\n})\nexport class ThyMaxDirective implements Validator {\n private _validator: ValidatorFn;\n @Input() public set max(value: string) {\n this._validator = Validators.max(parseFloat(value));\n }\n\n public validate(control: AbstractControl): { [key: string]: any } {\n return this._validator(control);\n }\n}\n","import { Directive, input } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\n\nexport function confirmValidator(value: string): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n const isEqual = value === control.value;\n return !isEqual ? { confirm: { value: value, actual: control.value } } : null;\n };\n}\n\n/**\n * confirm validator,用于确认两次输入是否一致\n * @name confirm\n * @order 25\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[confirm]',\n providers: [{ provide: NG_VALIDATORS, useExisting: ThyConfirmValidatorDirective, multi: true }]\n})\nexport class ThyConfirmValidatorDirective implements Validator {\n /**\n * 表单控件的校验值\n */\n readonly confirm = input<string>(undefined);\n\n validate(control: AbstractControl) {\n return confirmValidator(this.confirm())(control);\n }\n}\n","import { ThyAlertModule } from 'ngx-tethys/alert';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ThyFormGroupError } from './form-group-error/form-group-error.component';\nimport { ThyFormGroupLabelDirective } from './form-group-label.directive';\nimport { ThyFormGroup } from './form-group.component';\nimport { ThyFormSubmitDirective } from './form-submit.directive';\nimport { ThyFormValidatorLoader } from './form-validator-loader';\nimport { ThyFormValidatorGlobalConfig, THY_FORM_CONFIG_PROVIDER, THY_VALIDATOR_CONFIG } from './form.class';\nimport { ThyFormDirective } from './form.directive';\nimport { ThyFormGroupFooter } from './from-group-footer/form-group-footer.component';\nimport { ThyConfirmValidatorDirective, ThyMaxDirective, ThyMinDirective, ThyUniqueCheckValidator } from './validator/index';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ThyInputModule,\n ThyAlertModule,\n ThyIconModule,\n ThyTooltipModule,\n ThyFormDirective,\n ThyFormGroup,\n ThyFormGroupLabelDirective,\n ThyFormSubmitDirective,\n ThyFormGroupFooter,\n ThyUniqueCheckValidator,\n ThyFormGroupError,\n ThyMinDirective,\n ThyMaxDirective,\n ThyConfirmValidatorDirective\n ],\n exports: [\n ThyFormDirective,\n ThyFormGroup,\n ThyFormGroupLabelDirective,\n ThyFormSubmitDirective,\n ThyFormGroupFooter,\n ThyUniqueCheckValidator,\n ThyFormGroupError,\n ThyMinDirective,\n ThyMaxDirective,\n ThyConfirmValidatorDirective\n ],\n providers: [ThyFormValidatorLoader, THY_FORM_CONFIG_PROVIDER]\n})\nexport class ThyFormModule {\n static forRoot(config: ThyFormValidatorGlobalConfig): ModuleWithProviders<ThyFormModule> {\n return {\n ngModule: ThyFormModule,\n providers: [\n {\n provide: THY_VALIDATOR_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceBooleanProperty"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-form.mjs","sources":["../../../src/form/form.class.ts","../../../src/form/form-validator-loader.ts","../../../src/form/form-validator.service.ts","../../../src/form/form.directive.ts","../../../src/form/form-group-error/form-group-error.component.ts","../../../src/form/form-group-error/form-group-error.component.html","../../../src/form/form-group-label.directive.ts","../../../src/form/form-group.component.ts","../../../src/form/form-group.component.html","../../../src/form/form-submit.directive.ts","../../../src/form/from-group-footer/form-group-footer.component.ts","../../../src/form/from-group-footer/form-group-footer.component.html","../../../src/form/validator/unique-validator.directive.ts","../../../src/form/validator/min-validator.directive.ts","../../../src/form/validator/max-validator.directive.ts","../../../src/form/validator/confirm-validator.directive.ts","../../../src/form/module.ts","../../../src/form/ngx-tethys-form.ts"],"sourcesContent":["import { Dictionary } from 'ngx-tethys/types';\n\nimport { InjectionToken } from '@angular/core';\nimport { AbstractControl, FormControlName } from '@angular/forms';\n\nexport type ThyFormLayout = 'horizontal' | 'vertical' | 'inline';\n\nexport type ThyFormGroupFooterAlign = 'left' | 'right' | 'center';\n\nexport declare type ThyValidateOn = 'submit' | 'blur' | 'change';\n\nexport declare type ThyFormValidationMessages = Dictionary<Dictionary<string>>;\n\n/**\n * @order 20\n */\nexport interface ThyFormValidatorConfig {\n /**\n * 当值为 true 或不传时,执行默认逻辑,当为 false 时,不显示错误;值为 function 时,执行自定义函数处理逻辑,需要注入 THY_VALIDATOR_CONFIG 来使配置生效。\n */\n showElementError?: boolean | ((element: HTMLElement, errorMessages: string[]) => void);\n\n /**\n * 移除错误,一般和 showElementError 匹配使用;当值为 true 或不传时,执行默认逻辑,当为 false 时,不显示错误提示;值为 function 时,执行自定义函数处理逻辑,需要注入 THY_VALIDATOR_CONFIG 来使配置生效。\n */\n removeElementError?: boolean | ((element: HTMLElement) => void);\n\n /**\n * 每个字段的验证提示信息配置, validationMessages: {external_url: {required: '应用地址不能为空'}}\n */\n validationMessages?: ThyFormValidationMessages;\n\n /**\n * 表单验证触发方式; 支持change、submit、blur三种方式触发。默认submit。\n */\n validateOn?: ThyValidateOn;\n}\n\nexport interface ThyFormValidatorGlobalConfig extends ThyFormValidatorConfig {\n globalValidationMessages?: Dictionary<string>;\n}\n\nexport interface ThyFormConfig {\n layout?: ThyFormLayout;\n footerAlign?: ThyFormGroupFooterAlign;\n}\n\nexport interface ThyControlValidationResult {\n valid: boolean;\n control: AbstractControl | FormControlName;\n element: HTMLElement;\n}\n\nexport interface ThyValidateResult {\n valid: boolean;\n invalidControls: ThyControlValidationResult[];\n validControls: ThyControlValidationResult[];\n}\n\nexport const THY_VALIDATOR_CONFIG = new InjectionToken<ThyFormValidatorGlobalConfig>('VALIDATION_CONFIG');\n\nexport const THY_FORM_CONFIG = new InjectionToken<ThyFormConfig>('THY_FORM_CONFIG');\n\nexport const THY_FORM_CONFIG_PROVIDER = {\n provide: THY_FORM_CONFIG,\n useValue: { layout: 'horizontal', footerAlign: 'left' }\n};\n","import { Dictionary } from 'ngx-tethys/types';\nimport { helpers } from 'ngx-tethys/util';\n\nimport { inject, Injectable, Signal } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\nimport { THY_VALIDATOR_CONFIG, ThyFormValidationMessages, ThyFormValidatorGlobalConfig } from './form.class';\nimport { injectLocale, ThyFormLocale } from 'ngx-tethys/i18n';\n\nexport const ERROR_VALUE_REPLACE_REGEX = /\\{(.+?)\\}/g;\n\nconst INVALID_CLASS = 'is-invalid';\nconst INVALID_FEEDBACK_CLASS = 'invalid-feedback';\n\nconst defaultValidatorConfig: ThyFormValidatorGlobalConfig = {\n showElementError: true,\n removeElementError: true,\n validationMessages: {}\n};\n\n/**\n * @private\n */\n@Injectable()\nexport class ThyFormValidatorLoader {\n private config: ThyFormValidatorGlobalConfig = inject(THY_VALIDATOR_CONFIG, { optional: true });\n private locale: Signal<ThyFormLocale> = injectLocale('form');\n\n private get globalValidationMessages() {\n return {\n required: this.locale().required,\n maxlength: this.locale().maxlength,\n minlength: this.locale().minlength,\n thyUniqueCheck: this.locale().uniqueCheck,\n email: this.locale().email,\n confirm: this.locale().confirm,\n pattern: this.locale().pattern,\n number: this.locale().number,\n url: this.locale().url,\n max: this.locale().max,\n min: this.locale().min\n };\n }\n\n private getDefaultValidationMessage(key: string) {\n if (this.config.globalValidationMessages && this.config.globalValidationMessages[key]) {\n return this.config.globalValidationMessages[key];\n } else {\n const messages = this.globalValidationMessages;\n return messages[key as keyof typeof messages];\n }\n }\n\n constructor() {\n this.config = Object.assign({}, defaultValidatorConfig, this.config || {});\n }\n\n get validationMessages() {\n return this.config.validationMessages;\n }\n\n get validateOn() {\n if (!this.config?.validateOn) {\n this.config.validateOn = 'submit';\n }\n return this.config.validateOn;\n }\n\n isElementInInputGroup(element: HTMLElement) {\n return !!(element?.parentElement?.tagName.toUpperCase() === 'THY-INPUT-GROUP');\n }\n\n getErrorMessage(name: string, key: string): string {\n if (this.validationMessages[name] && this.validationMessages[name][key]) {\n return this.validationMessages[name][key];\n } else {\n return this.getDefaultValidationMessage(key);\n }\n }\n\n getErrorMessages(name: string, validationErrors: ValidationErrors): string[] {\n const messages = [];\n for (const validationError in validationErrors) {\n if (validationErrors.hasOwnProperty(validationError)) {\n messages.push(this.getErrorMessage(name, validationError));\n }\n }\n return messages;\n }\n\n defaultShowError(element: HTMLElement, errorMessages: string[]) {\n if (element && element.parentElement) {\n const documentFrag = document.createDocumentFragment();\n const divNode = document.createElement('DIV');\n const textNode = document.createTextNode(errorMessages[0]);\n divNode.appendChild(textNode);\n divNode.setAttribute('class', INVALID_FEEDBACK_CLASS);\n documentFrag.appendChild(divNode);\n element.parentElement.append(documentFrag);\n }\n }\n\n defaultRemoveError(element: HTMLElement) {\n if (element && element.parentElement) {\n const invalidFeedback = element.parentElement.querySelector('.invalid-feedback');\n if (invalidFeedback) {\n element.parentElement.removeChild(invalidFeedback);\n }\n }\n }\n\n removeError(element: HTMLElement) {\n const formControlElement = this.isElementInInputGroup(element) ? element.parentElement : element;\n formControlElement.classList.remove(INVALID_CLASS);\n if (helpers.isFunction(this.config.removeElementError)) {\n this.config.removeElementError(formControlElement);\n } else if (this.config.showElementError) {\n this.defaultRemoveError(formControlElement);\n } else {\n // do nothings\n }\n }\n\n showError(element: HTMLElement, errorMessages: string[]) {\n const formControlElement = this.isElementInInputGroup(element) ? element.parentElement : element;\n formControlElement.classList.add(INVALID_CLASS);\n if (helpers.isFunction(this.config.showElementError)) {\n this.config.showElementError(formControlElement, errorMessages);\n } else if (this.config.showElementError) {\n this.defaultShowError(formControlElement, errorMessages);\n } else {\n // do nothings\n }\n }\n\n addValidationMessages(messages: ThyFormValidationMessages) {\n Object.assign(this.config.validationMessages, messages);\n }\n\n setGlobalValidationMessages(validationMessages: Dictionary<string>) {\n this.config.globalValidationMessages = validationMessages;\n }\n}\n","import { Dictionary } from 'ngx-tethys/types';\nimport { isUndefinedOrNull } from 'ngx-tethys/util';\nimport { of, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { Injectable, OnDestroy, inject } from '@angular/core';\nimport { AbstractControl, FormControlName, FormGroupDirective, NgControl, NgForm, ValidationErrors } from '@angular/forms';\n\nimport { ERROR_VALUE_REPLACE_REGEX, ThyFormValidatorLoader } from './form-validator-loader';\nimport { ThyFormValidatorConfig, ThyValidateOn, ThyValidateResult } from './form.class';\n\n/**\n * @private\n */\n@Injectable()\nexport class ThyFormValidatorService implements OnDestroy {\n private thyFormValidateLoader = inject(ThyFormValidatorLoader);\n\n private _ngForm: NgForm | FormGroupDirective;\n\n private _formElement: HTMLFormElement;\n\n private _config: ThyFormValidatorConfig;\n\n public errors: string[] = [];\n\n private _controls: NgControl[] = [];\n\n // 记录所有元素的验证信息\n public validations: Dictionary<{\n hasError?: boolean;\n errorMessages?: string[];\n }> = {};\n\n private _destroy$ = new Subject<void>();\n\n private _getElement(name: string) {\n const element = this._formElement.elements[name];\n if (element) {\n return element;\n } else {\n return this._formElement.querySelector(`[name='${name}']`);\n }\n }\n\n private _clearElementError(name: string) {\n if (this.validations[name] && this.validations[name].hasError) {\n this.validations[name].hasError = false;\n this.validations[name].errorMessages = [];\n this.thyFormValidateLoader.removeError(this._getElement(name));\n }\n }\n\n private _tryGetValidation(name: string) {\n const controls = this._getControls();\n if (!this.validations[name]) {\n this._initializeFormControlValidation(name, controls[name] as any);\n }\n return this.validations[name];\n }\n\n private _addError(message: string) {\n this.errors.unshift(message);\n }\n\n private _clearErrors() {\n this.errors = [];\n }\n\n private _setControlValidateByChange(control: NgControl) {\n control.valueChanges\n .pipe(\n debounceTime(100),\n distinctUntilChanged(),\n filter(item => {\n return item;\n }),\n switchMap(item => {\n this.validateControl(control.name as string);\n return of([]);\n })\n )\n .subscribe();\n }\n\n private _setControlValidateByBlur(control: NgControl) {\n const element: HTMLElement = this._getElement(control.name as string);\n if (element) {\n // 继承了 AbstractControlValueAccessor 的自定义 Accessor,通过 __onBlurValidation 控制触发验证函数\n if (control.valueAccessor['__onBlurValidation']) {\n control.valueAccessor['__onBlurValidation'] = () => {\n this.validateControl(control.name as string);\n };\n } else {\n element.onblur = (event: FocusEvent) => {\n this.validateControl(control.name as string);\n };\n }\n }\n }\n\n private _initializeFormControlValidation(name: string, control: AbstractControl | FormControlName | NgControl) {\n this.validations[name] = {\n hasError: false,\n errorMessages: []\n };\n if (this._getValidateOn() === 'change') {\n this._setControlValidateByChange(control as NgControl);\n } else {\n if (this._getValidateOn() === 'blur') {\n this._setControlValidateByBlur(control as NgControl);\n }\n\n control.valueChanges.pipe(takeUntil(this._destroy$)).subscribe(item => {\n this._clearElementError(name);\n this._clearErrors();\n });\n }\n }\n\n private _restFormControlValidation(name: string) {\n const validation = this.validations[name];\n if (validation) {\n validation.hasError = false;\n validation.errorMessages = [];\n }\n }\n\n private _formatValidationMessage(name: string, message: string) {\n const controls = this._getControls();\n const control = controls[name];\n if (control) {\n return message.replace(ERROR_VALUE_REPLACE_REGEX, (tag, key) => {\n if (key) {\n return isUndefinedOrNull(control.errors[key][key]) ? control.errors[key].requiredLength : control.errors[key][key];\n }\n });\n } else {\n return message;\n }\n }\n\n private _getValidationMessage(name: string, validationError: string) {\n let message = null;\n if (\n this._config &&\n this._config.validationMessages &&\n this._config.validationMessages[name] &&\n this._config.validationMessages[name][validationError]\n ) {\n message = this._config.validationMessages[name][validationError];\n } else {\n message = this.thyFormValidateLoader.getErrorMessage(name, validationError);\n }\n return this._formatValidationMessage(name, message);\n }\n\n private _getValidationMessages(name: string, validationErrors: ValidationErrors) {\n const messages = [];\n for (const validationError in validationErrors) {\n if (validationErrors.hasOwnProperty(validationError)) {\n messages.push(this._getValidationMessage(name, validationError));\n }\n }\n return messages;\n }\n\n private _setControlValidationError(name: string, errorMessages: string[]) {\n const validation = this._tryGetValidation(name);\n validation.errorMessages = errorMessages;\n validation.hasError = true;\n this.thyFormValidateLoader.showError(this._getElement(name), errorMessages);\n }\n\n private _getValidateOn(): ThyValidateOn {\n return (this._config && this._config.validateOn) || this.thyFormValidateLoader.validateOn;\n }\n\n initialize(ngForm: NgForm | FormGroupDirective, formElement: HTMLFormElement) {\n this._ngForm = ngForm;\n this._formElement = formElement;\n }\n\n initializeFormControlsValidation(controls: NgControl[]) {\n if (this._getValidateOn() !== 'submit') {\n (controls || []).forEach((control: NgControl) => {\n if (!this._controls.find(item => item.name === control.name)) {\n this._initializeFormControlValidation(control.name as string, control);\n }\n });\n this._controls = controls;\n }\n }\n\n setValidatorConfig(config: ThyFormValidatorConfig) {\n this._config = config;\n }\n\n private _getControls() {\n if (this._ngForm instanceof NgForm) {\n return (this._ngForm as NgForm).controls;\n } else if (this._ngForm instanceof FormGroupDirective) {\n const controls = {};\n (this._ngForm as FormGroupDirective).directives.forEach(directive => {\n controls[directive.name] = directive;\n });\n return controls;\n }\n }\n\n private _getControlByName(name: string): AbstractControl | FormControlName {\n const controls = this._getControls();\n return controls[name];\n }\n\n validateControl(name: string) {\n this._clearElementError(name);\n const control = this._getControlByName(name);\n if (control && control.invalid) {\n const errorMessages = this._getValidationMessages(name, control.errors);\n this._setControlValidationError(name, errorMessages);\n }\n return {\n valid: control.valid,\n control: control,\n element: this._getElement(name)\n };\n }\n\n validateControls() {\n // 主要是 无法检测到 ngForm 的 controls 的变化,或者是我没有找到\n // 验证的时候循环 ngForm 的 controls 验证\n // 发现没有 validation 初始化一个,已经存在不会重新初始化,保存缓存数据\n const results = [];\n const controls = this._getControls();\n for (const name in controls) {\n if (controls.hasOwnProperty(name)) {\n this._tryGetValidation(name);\n const result = this.validateControl(name);\n results.push(result);\n }\n }\n // 移除已经不存在的 validation\n const names = Object.keys(this.validations);\n names.forEach(name => {\n if (!controls[name]) {\n delete this.validations[name];\n }\n });\n return results;\n }\n\n addError(message: string) {\n this._addError(message);\n }\n\n validate($event?: Event): boolean {\n this._ngForm.onSubmit($event);\n this.validateControls();\n return this._ngForm.valid;\n }\n\n validateWithDetail($event?: Event): ThyValidateResult {\n this._ngForm.onSubmit($event);\n const results = this.validateControls();\n return {\n valid: this._ngForm.valid,\n invalidControls: results.filter(res => !res.valid),\n validControls: results.filter(res => res.valid)\n };\n }\n\n reset() {\n this._ngForm.reset();\n for (const name in this.validations) {\n if (this.validations.hasOwnProperty(name)) {\n this._restFormControlValidation(name);\n this._clearElementError(name);\n }\n }\n }\n\n setElementErrorMessage(name: string, message: string) {\n this._clearElementError(name);\n this._setControlValidationError(name, [message]);\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n}\n","import { keycodes } from 'ngx-tethys/util';\n\nimport {\n AfterViewInit,\n ContentChildren,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n inject,\n input,\n afterRenderEffect,\n effect,\n afterNextRender\n} from '@angular/core';\nimport { ControlContainer, NgControl, NgForm } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport { ThyFormValidatorService } from './form-validator.service';\nimport { THY_FORM_CONFIG, ThyFormConfig, ThyFormLayout, ThyFormValidatorConfig } from './form.class';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\n// 1. submit 按 Enter 键提交, Textare或包含[contenteditable]属性的元素 除外,需要按 Ctrl | Command + Enter 提交\n// 2. alwaysSubmit 不管是哪个元素 按 Enter 键都提交\n// 3. forbidSubmit \bEnter 键禁止提交\n// 默认 submit\nexport enum ThyEnterKeyMode {\n submit = 'submit',\n alwaysSubmit = 'alwaysSubmit',\n forbidSubmit = 'forbidSubmit'\n}\n\n/**\n * 表单\n * @name thyForm,[thy-form]\n * @order 10\n */\n@Directive({ selector: '[thyForm],[thy-form]', providers: [ThyFormValidatorService], exportAs: 'thyForm', host: { class: 'thy-form' } })\nexport class ThyFormDirective implements OnInit, AfterViewInit, OnDestroy {\n private ngForm = inject(ControlContainer);\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n private ngZone = inject(NgZone);\n readonly validator = inject(ThyFormValidatorService);\n private config = inject(THY_FORM_CONFIG);\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 布局,默认水平居中 horizontal,其他2种布局待开发\n * @type horizontal | vertical | inline\n * @default horizontal\n */\n readonly thyLayout = input<ThyFormLayout>(undefined);\n\n get isHorizontal() {\n return this.layout === 'horizontal';\n }\n\n private get layout() {\n return this.thyLayout() || this.config.layout;\n }\n\n /**\n * Enter 键提交模式。`submit`: Textarea 需要 Ctrl | Command + Enter 提交,其他元素直接 Enter 提交; `alwaysSubmit`: 不管是什么元素 Enter 都提交; `forbidSubmit`: Enter 不提交\n * @type submit | alwaysSubmit | forbidSubmit\n * @default submit\n */\n readonly thyEnterKeyMode = input<ThyEnterKeyMode>(undefined);\n\n /**\n * 表单验证规则配置项 (更多内容查看:thyFormValidatorConfig)\n */\n readonly thyFormValidatorConfig = input<ThyFormValidatorConfig>();\n\n @HostBinding('class.was-validated') wasValidated = false;\n\n onSubmitSuccess: ($event: any) => void;\n\n private _unsubscribe: () => void;\n\n @ContentChildren(NgControl, { descendants: true })\n public controls: QueryList<NgControl>;\n\n constructor() {\n effect(() => {\n this.updateClasses();\n });\n\n effect(() => {\n const config = this.thyFormValidatorConfig();\n if (config) {\n this.validator.setValidatorConfig(config);\n }\n });\n\n // TODO:: replace ngAfterViewInit with afterNextRender\n // afterNextRender(() => {\n // this.validator.initialize(this.ngForm as NgForm, this.elementRef.nativeElement);\n // this.validator.initializeFormControlsValidation(this.controls.toArray());\n // this.controls.changes.subscribe(controls => {\n // this.validator.initializeFormControlsValidation(this.controls.toArray());\n // });\n // });\n }\n\n ngOnInit(): void {\n this.ngZone.runOutsideAngular(() => {\n this._unsubscribe = this.renderer.listen(this.elementRef.nativeElement, 'keydown', this.onKeydown.bind(this));\n });\n }\n\n ngAfterViewInit() {\n this.validator.initialize(this.ngForm as NgForm, this.elementRef.nativeElement);\n this.validator.initializeFormControlsValidation(this.controls.toArray());\n this.controls.changes.subscribe(controls => {\n this.validator.initializeFormControlsValidation(this.controls.toArray());\n });\n }\n\n submit($event: Event) {\n const result = this.validator.validateWithDetail($event);\n if (result.valid) {\n this.onSubmitSuccess && this.onSubmitSuccess($event);\n } else {\n const invalidElement = result.invalidControls[0].element;\n invalidElement.focus();\n }\n }\n\n updateClasses() {\n this.hostRenderer.updateClassByMap({ [`thy-form-${this.layout}`]: true });\n }\n\n submitRunInZone($event: any) {\n this.ngZone.run(() => {\n this.submit($event);\n });\n }\n\n onKeydown($event: KeyboardEvent) {\n const currentInput = document.activeElement;\n const key = $event.which || $event.keyCode;\n if (key === keycodes.ENTER && currentInput.tagName) {\n const thyEnterKeyMode = this.thyEnterKeyMode();\n if (!thyEnterKeyMode || thyEnterKeyMode === ThyEnterKeyMode.submit) {\n // TEXTAREA或包含[contenteditable]属性的元素 Ctrl + Enter 或者 Command + Enter 阻止\b默认行为并提交\n if (currentInput.tagName === 'TEXTAREA' || coerceBooleanProperty(currentInput.getAttribute('contenteditable'))) {\n if ($event.ctrlKey || $event.metaKey) {\n $event.preventDefault();\n this.submitRunInZone($event);\n }\n } else {\n // 不是 TEXTAREA Enter 阻止\b默认行为并提交\n $event.preventDefault();\n this.submitRunInZone($event);\n }\n } else if (thyEnterKeyMode === ThyEnterKeyMode.alwaysSubmit) {\n $event.preventDefault();\n this.submitRunInZone($event);\n } else {\n // do nothing\n }\n }\n }\n\n ngOnDestroy() {\n if (this._unsubscribe) {\n this._unsubscribe();\n this._unsubscribe = null;\n }\n }\n}\n","import { Component, HostBinding, ViewEncapsulation, OnInit, Input, inject, input } from '@angular/core';\nimport { ThyFormDirective } from '../form.directive';\nimport { ThyAlert } from 'ngx-tethys/alert';\nimport { NgClass } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @name thy-form-group-error\n * @order 50\n */\n@Component({\n selector: 'thy-form-group-error',\n templateUrl: './form-group-error.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [NgClass, ThyAlert]\n})\nexport class ThyFormGroupError implements OnInit {\n private thyParentForm = inject(ThyFormDirective, { optional: true })!;\n\n public errors: string[];\n\n readonly thyShowFirst = input(true, { transform: coerceBooleanProperty });\n\n /**\n * @type string[]\n */\n @Input()\n set thyErrors(errors: string[]) {\n this.errors = errors;\n }\n\n get thyErrors() {\n const errors = this.errors || this.thyParentForm.validator.errors;\n return errors && errors.length > 0 && this.thyShowFirst() ? [errors[0]] : errors;\n }\n\n @HostBinding('class.form-group')\n get _isFormGroup() {\n return this.thyErrors && this.thyErrors.length > 0;\n }\n\n @HostBinding('class.row') isHorizontal = true;\n\n ngOnInit() {\n if (this.thyParentForm) {\n this.isHorizontal = this.thyParentForm.isHorizontal;\n }\n }\n}\n","<div [ngClass]=\"{ 'col-sm-10 offset-sm-2 col-form-control': isHorizontal }\">\n @for (error of thyErrors; track $index) {\n <thy-alert thyType=\"danger\" [thyMessage]=\"error\"></thy-alert>\n }\n</div>\n","import { Directive, HostBinding, Input, inject } from '@angular/core';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @name thyFormGroupLabel\n * @order 45\n */\n@Directive({\n selector: '[thyFormGroupLabel]'\n})\nexport class ThyFormGroupLabelDirective {\n private thyTranslate = inject(ThyTranslate);\n\n public labelText: string;\n\n @HostBinding('class.label-required') labelRequired = false;\n\n @HostBinding('class.col-form-label') _isFormGroupLabel = true;\n\n @Input()\n set thyLabelText(value: string) {\n this.labelText = value;\n }\n\n @Input()\n set thyLabelTranslateKey(translateKey: string) {\n if (translateKey) {\n this.labelText = this.thyTranslate.instant(translateKey);\n }\n }\n\n @Input({ transform: coerceBooleanProperty })\n set thyLabelRequired(value: boolean) {\n this.labelRequired = value;\n }\n}\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n Input,\n OnInit,\n TemplateRef,\n ViewEncapsulation,\n inject,\n input,\n computed,\n signal,\n effect\n} from '@angular/core';\n\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyTooltipDirective } from 'ngx-tethys/tooltip';\n\nimport { ThyFormDirective } from './form.directive';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst internalIconMap: Record<string, string> = {\n date: 'calendar'\n};\n\ntype TipsMode = 'default' | 'label';\n\n/**\n * 表单分组组件\n * @name thy-form-group\n * @order 40\n */\n@Component({\n selector: 'thy-form-group',\n templateUrl: './form-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, ThyIcon, NgClass, ThyTooltipDirective],\n host: {\n class: 'form-group',\n '[class.row-fill]': 'thyRowFill()',\n '[class.row]': 'isHorizontalSignal()',\n '[class.has-feedback]': 'thyFeedbackIcon()'\n }\n})\nexport class ThyFormGroup implements OnInit {\n private thyParentForm = inject(ThyFormDirective, { optional: true })!;\n private thyTranslate = inject(ThyTranslate);\n\n protected isHorizontalSignal = signal(true);\n\n /**\n * Label 文本\n */\n readonly thyLabelText = input<string>();\n\n /**\n * Label 文本多语言 Key\n */\n readonly thyLabelTextTranslateKey = input<string>();\n\n protected labelTextSignal = computed(() => {\n const labelTextTranslateKey = this.thyLabelTextTranslateKey();\n const labelText = this.thyLabelText();\n if (labelText) {\n return labelText;\n } else if (labelTextTranslateKey) {\n return this.thyTranslate.instant(labelTextTranslateKey);\n }\n return '';\n });\n\n /**\n * Label 是否显示必填项样式\n */\n readonly thyLabelRequired = input(false, {\n transform: coerceBooleanProperty\n });\n\n /**\n * 清楚 Label padding 间距\n */\n readonly thyLabelPaddingTopClear = input(false, {\n transform: coerceBooleanProperty\n });\n\n /**\n * 反馈图标,比如日期输入框显示日期的图标,常用输入 date 表示时间 wtf wtf-schedule-o\n */\n thyFeedbackIcon = input('', {\n transform: (value: string) => {\n if (internalIconMap[value]) {\n return internalIconMap[value];\n }\n return value;\n }\n });\n\n /**\n * 提示文字的显示模式,`label`模式表示在 label 后通过图标+Tooltip 提示, `default`模式在 Form Control 下方直接显示\n * @type default | label\n * @default default\n */\n thyTipsMode = input<TipsMode>('default');\n\n /**\n * 提示文案\n */\n readonly thyTips = input<string>('');\n\n /**\n * 提示文案的多语言 Key\n */\n readonly thyTipsTranslateKey = input<string>('');\n\n protected readonly tipsSignal = computed(() => {\n const key = this.thyTipsTranslateKey();\n const tips = this.thyTips();\n\n if (key) {\n return this.thyTranslate.instant(key);\n }\n if (tips) {\n return tips;\n }\n return '';\n });\n\n /**\n * 是否填充整行, 没有 Label 文本,只有输入框\n * @default false\n */\n readonly thyRowFill = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 已废弃\n * @deprecated please use content because formGroup is same name with angular formGroup directive\n */\n @ContentChild('formGroup')\n public contentTemplateRef: TemplateRef<any>;\n\n /**\n * 内容自定义模板,`<ng-template #content></ng-template>`\n */\n @ContentChild('content')\n public contentTemplate: TemplateRef<any>;\n\n constructor() {\n // effect(() => {\n // const isHorizontal = this.thyParentForm ? this.thyParentForm.isHorizontal : true;\n // this.isHorizontal.set(isHorizontal);\n // });\n }\n\n ngOnInit() {\n const isHorizontal = this.thyParentForm ? this.thyParentForm.isHorizontal : true;\n this.isHorizontalSignal.set(isHorizontal);\n }\n}\n","@let tips = tipsSignal();\n@let labelText = labelTextSignal();\n@let isHorizontal = isHorizontalSignal();\n@let feedbackIcon = thyFeedbackIcon();\n@if (contentTemplate || contentTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"contentTemplate || contentTemplateRef\"></ng-container>\n @if (feedbackIcon) {\n <thy-icon class=\"form-control-feedback\" [thyIconName]=\"feedbackIcon\"></thy-icon>\n }\n} @else {\n @if (!(!isHorizontal && !labelText)) {\n <label\n class=\"form-label \"\n [ngClass]=\"{\n 'col-sm-2 col-form-label': isHorizontal,\n 'pt-0': thyLabelPaddingTopClear()\n }\"\n >\n <span\n [ngClass]=\"{\n 'label-required': thyLabelRequired()\n }\"\n >{{ labelText }}</span\n >\n @if (thyTipsMode() === 'label' && tips) {\n <thy-icon class=\"label-tips-icon\" thyIconName=\"question-circle\" [thyTooltip]=\"tips\"></thy-icon>\n }\n </label>\n }\n <div [ngClass]=\"{ 'col-sm-10 col-form-control': isHorizontal, 'position-relative': !isHorizontal }\">\n <ng-content></ng-content>\n @if (feedbackIcon) {\n <thy-icon class=\"form-control-feedback\" [thyIconName]=\"feedbackIcon\"></thy-icon>\n }\n @if (thyTipsMode() === 'default' && tips) {\n <span class=\"form-text text-desc\">{{ tips }}</span>\n }\n </div>\n }\n\n","import { Directive, EventEmitter, HostListener, OnInit, Output, inject, output } from '@angular/core';\n\nimport { ThyFormDirective } from './form.directive';\n\n/**\n * 表单提交指令\n * @name thyFormSubmit,[thy-form-submit]\n * @order 15\n */\n@Directive({\n selector: '[thyFormSubmit],[thy-form-submit]'\n})\nexport class ThyFormSubmitDirective implements OnInit {\n private thyFormDirective = inject(ThyFormDirective);\n\n /**\n * Form 验证通过的提交函数\n */\n thyFormSubmit = output<Event>();\n\n ngOnInit(): void {\n this.thyFormDirective.onSubmitSuccess = ($event: Event) => {\n this.thyFormSubmit.emit($event);\n };\n }\n\n @HostListener('click', ['$event'])\n onSubmit($event: Event) {\n this.thyFormDirective.submit($event);\n }\n}\n","import { Component, HostBinding, ViewEncapsulation, OnInit, ContentChild, TemplateRef, inject, input } from '@angular/core';\nimport { ThyFormDirective } from '../form.directive';\nimport { ThyFormGroupFooterAlign, THY_FORM_CONFIG, ThyFormConfig } from '../form.class';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\n/**\n * 表单组底部组件\n * @name thy-form-group-footer\n * @order 55\n */\n@Component({\n selector: 'thy-form-group-footer',\n templateUrl: './form-group-footer.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [NgClass, NgTemplateOutlet]\n})\nexport class ThyFormGroupFooter implements OnInit {\n private thyParentForm = inject(ThyFormDirective, { optional: true })!;\n private defaultConfig = inject(THY_FORM_CONFIG);\n\n @HostBinding('class.form-group') _isFormGroup = true;\n\n @HostBinding('class.row') isHorizontal = true;\n\n @ContentChild('description') description: TemplateRef<any>;\n\n /**\n * 对齐方式\n * @type left | right | center\n * @default left\n */\n readonly thyAlign = input<ThyFormGroupFooterAlign>(undefined);\n\n public footerClassMap = {};\n\n private get align() {\n const thyAlign = this.thyAlign();\n return !!thyAlign ? thyAlign : this.defaultConfig.footerAlign;\n }\n\n ngOnInit() {\n if (this.thyParentForm) {\n this.isHorizontal = this.thyParentForm.isHorizontal;\n }\n this.setFooterClassMap();\n }\n\n setFooterClassMap() {\n this.footerClassMap = {\n 'form-group-footer': true,\n 'col-sm-10 offset-sm-2 col-form-control': this.isHorizontal,\n [`form-group-footer-align-${this.align}`]: true\n };\n }\n}\n","<div [ngClass]=\"footerClassMap\">\n <div class=\"btn-pair form-footer-actions\">\n <ng-content></ng-content>\n </div>\n\n @if (description) {\n <div class=\"form-footer-description\">\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\n </div>\n }\n</div>\n","import { AsyncValidator, AbstractControl, ValidationErrors, NG_ASYNC_VALIDATORS } from '@angular/forms';\nimport { Directive, ElementRef, inject, input } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { map, catchError } from 'rxjs/operators';\nimport { ThyFormDirective } from '../form.directive';\n\n/**\n * 用于校验表单控件的输入值是否已经存在\n * @name thyUniqueCheck\n * @order 20\n */\n@Directive({\n selector: '[thyUniqueCheck]',\n providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: ThyUniqueCheckValidator, multi: true }]\n})\nexport class ThyUniqueCheckValidator implements AsyncValidator {\n private elementRef = inject(ElementRef);\n private thyForm = inject(ThyFormDirective, { optional: true })!;\n\n readonly thyUniqueCheck = input<(value: any) => Observable<boolean>>(undefined);\n\n validate(ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n return this.thyUniqueCheck()(ctrl.value).pipe(\n map((failed: boolean) => {\n setTimeout(() => {\n if (failed && this.thyForm && this.elementRef.nativeElement.name) {\n this.thyForm.validator.validateControl(this.elementRef.nativeElement.name);\n }\n });\n return failed ? { thyUniqueCheck: failed } : null;\n }),\n catchError(() => of(null))\n );\n }\n}\n","import { Directive, Input, forwardRef } from '@angular/core';\nimport { Validator, AbstractControl, NG_VALIDATORS, Validators, ValidatorFn } from '@angular/forms';\n\n/**\n * @name min\n * @order 35\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[min][formControlName],[min][formControl],[min][ngModel]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ThyMinDirective),\n multi: true\n }\n ]\n})\nexport class ThyMinDirective implements Validator {\n private _validator: ValidatorFn;\n @Input() public set min(value: string) {\n this._validator = Validators.min(parseFloat(value));\n }\n\n public validate(control: AbstractControl): { [key: string]: any } {\n return this._validator(control);\n }\n}\n","import { Directive, Input, forwardRef } from '@angular/core';\nimport { Validator, AbstractControl, NG_VALIDATORS, Validators, ValidatorFn } from '@angular/forms';\n\n/**\n * @name max\n * @order 30\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[max][formControlName],[max][formControl],[max][ngModel]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ThyMaxDirective),\n multi: true\n }\n ]\n})\nexport class ThyMaxDirective implements Validator {\n private _validator: ValidatorFn;\n @Input() public set max(value: string) {\n this._validator = Validators.max(parseFloat(value));\n }\n\n public validate(control: AbstractControl): { [key: string]: any } {\n return this._validator(control);\n }\n}\n","import { Directive, input } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\n\nexport function confirmValidator(value: string): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n const isEqual = value === control.value;\n return !isEqual ? { confirm: { value: value, actual: control.value } } : null;\n };\n}\n\n/**\n * confirm validator,用于确认两次输入是否一致\n * @name confirm\n * @order 25\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[confirm]',\n providers: [{ provide: NG_VALIDATORS, useExisting: ThyConfirmValidatorDirective, multi: true }]\n})\nexport class ThyConfirmValidatorDirective implements Validator {\n /**\n * 表单控件的校验值\n */\n readonly confirm = input<string>(undefined);\n\n validate(control: AbstractControl) {\n return confirmValidator(this.confirm())(control);\n }\n}\n","import { ThyAlertModule } from 'ngx-tethys/alert';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ThyFormGroupError } from './form-group-error/form-group-error.component';\nimport { ThyFormGroupLabelDirective } from './form-group-label.directive';\nimport { ThyFormGroup } from './form-group.component';\nimport { ThyFormSubmitDirective } from './form-submit.directive';\nimport { ThyFormValidatorLoader } from './form-validator-loader';\nimport { ThyFormValidatorGlobalConfig, THY_FORM_CONFIG_PROVIDER, THY_VALIDATOR_CONFIG } from './form.class';\nimport { ThyFormDirective } from './form.directive';\nimport { ThyFormGroupFooter } from './from-group-footer/form-group-footer.component';\nimport { ThyConfirmValidatorDirective, ThyMaxDirective, ThyMinDirective, ThyUniqueCheckValidator } from './validator/index';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ThyInputModule,\n ThyAlertModule,\n ThyIconModule,\n ThyTooltipModule,\n ThyFormDirective,\n ThyFormGroup,\n ThyFormGroupLabelDirective,\n ThyFormSubmitDirective,\n ThyFormGroupFooter,\n ThyUniqueCheckValidator,\n ThyFormGroupError,\n ThyMinDirective,\n ThyMaxDirective,\n ThyConfirmValidatorDirective\n ],\n exports: [\n ThyFormDirective,\n ThyFormGroup,\n ThyFormGroupLabelDirective,\n ThyFormSubmitDirective,\n ThyFormGroupFooter,\n ThyUniqueCheckValidator,\n ThyFormGroupError,\n ThyMinDirective,\n ThyMaxDirective,\n ThyConfirmValidatorDirective\n ],\n providers: [ThyFormValidatorLoader, THY_FORM_CONFIG_PROVIDER]\n})\nexport class ThyFormModule {\n static forRoot(config: ThyFormValidatorGlobalConfig): ModuleWithProviders<ThyFormModule> {\n return {\n ngModule: ThyFormModule,\n providers: [\n {\n provide: THY_VALIDATOR_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceBooleanProperty"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Inject, NgZone, inject, Injectable, Directive, ElementRef, input, output, contentChild, effect, Component, NgModule } from '@angular/core';
3
- import { DOCUMENT } from '@angular/common';
2
+ import { Inject, DOCUMENT, NgZone, inject, Injectable, Directive, ElementRef, input, output, contentChild, effect, Component, NgModule } from '@angular/core';
4
3
  import { __decorate, __param, __metadata } from 'tslib';
5
4
  import { coerceElement } from '@angular/cdk/coercion';
6
5
  import { ESCAPE } from '@angular/cdk/keycodes';
@@ -187,10 +186,10 @@ class ThyFullscreen {
187
186
  const lastFullscreenRef = this.fullscreenRefs[this.fullscreenRefs.length - 1];
188
187
  lastFullscreenRef?.exit();
189
188
  }
190
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyFullscreen, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
191
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyFullscreen, providedIn: 'root' }); }
189
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFullscreen, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
190
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFullscreen, providedIn: 'root' }); }
192
191
  }
193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyFullscreen, decorators: [{
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFullscreen, decorators: [{
194
193
  type: Injectable,
195
194
  args: [{
196
195
  providedIn: 'root'
@@ -202,10 +201,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
202
201
  * @name thyFullscreenLaunch,[fullscreen-launch]
203
202
  */
204
203
  class ThyFullscreenLaunchDirective {
205
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyFullscreenLaunchDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
206
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: ThyFullscreenLaunchDirective, isStandalone: true, selector: "[thyFullscreenLaunch], [fullscreen-launch]", ngImport: i0 }); }
204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFullscreenLaunchDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
205
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.10", type: ThyFullscreenLaunchDirective, isStandalone: true, selector: "[thyFullscreenLaunch], [fullscreen-launch]", ngImport: i0 }); }
207
206
  }
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyFullscreenLaunchDirective, decorators: [{
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFullscreenLaunchDirective, decorators: [{
209
208
  type: Directive,
210
209
  args: [{
211
210
  selector: '[thyFullscreenLaunch], [fullscreen-launch]'
@@ -225,18 +224,18 @@ class ThyFullscreenComponent {
225
224
  * immersive 模式使用了浏览器提供的全屏,整个窗体都全屏,emulated 模式为仿真的,只会在 body 区域全屏
226
225
  * @type immersive | emulated
227
226
  */
228
- this.thyMode = input(ThyFullscreenMode.immersive);
227
+ this.thyMode = input(ThyFullscreenMode.immersive, ...(ngDevMode ? [{ debugName: "thyMode" }] : []));
229
228
  /**
230
229
  * 打开全屏时需要添加的类名
231
230
  */
232
- this.thyFullscreenClasses = input();
231
+ this.thyFullscreenClasses = input(...(ngDevMode ? [undefined, { debugName: "thyFullscreenClasses" }] : []));
233
232
  /**
234
233
  * 全屏之后的回调
235
234
  */
236
235
  this.thyFullscreenChange = output();
237
- this.fullscreenLaunch = contentChild(ThyFullscreenLaunchDirective, {
238
- read: ElementRef
239
- });
236
+ this.fullscreenLaunch = contentChild(ThyFullscreenLaunchDirective, ...(ngDevMode ? [{ debugName: "fullscreenLaunch", read: ElementRef }] : [{
237
+ read: ElementRef
238
+ }]));
240
239
  this.ngUnsubscribe$ = new Subject();
241
240
  this.fullscreenLaunch$ = new Subject();
242
241
  // Toggles full screen on or off.
@@ -273,20 +272,22 @@ class ThyFullscreenComponent {
273
272
  this.ngUnsubscribe$.next();
274
273
  this.ngUnsubscribe$.complete();
275
274
  }
276
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyFullscreenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
277
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.8", type: ThyFullscreenComponent, isStandalone: true, selector: "thy-fullscreen, [thyFullscreen]", inputs: { thyMode: { classPropertyName: "thyMode", publicName: "thyMode", isSignal: true, isRequired: false, transformFunction: null }, thyFullscreenClasses: { classPropertyName: "thyFullscreenClasses", publicName: "thyFullscreenClasses", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyFullscreenChange: "thyFullscreenChange" }, queries: [{ propertyName: "fullscreenLaunch", first: true, predicate: ThyFullscreenLaunchDirective, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<ng-content></ng-content>\n" }); }
275
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFullscreenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
276
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.10", type: ThyFullscreenComponent, isStandalone: true, selector: "thy-fullscreen, [thyFullscreen]", inputs: { thyMode: { classPropertyName: "thyMode", publicName: "thyMode", isSignal: true, isRequired: false, transformFunction: null }, thyFullscreenClasses: { classPropertyName: "thyFullscreenClasses", publicName: "thyFullscreenClasses", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyFullscreenChange: "thyFullscreenChange" }, queries: [{ propertyName: "fullscreenLaunch", first: true, predicate: ThyFullscreenLaunchDirective, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<ng-content></ng-content>\n" }); }
278
277
  }
279
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyFullscreenComponent, decorators: [{
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFullscreenComponent, decorators: [{
280
279
  type: Component,
281
280
  args: [{ selector: 'thy-fullscreen, [thyFullscreen]', template: "<ng-content></ng-content>\n" }]
282
- }], ctorParameters: () => [] });
281
+ }], ctorParameters: () => [], propDecorators: { thyMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyMode", required: false }] }], thyFullscreenClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyFullscreenClasses", required: false }] }], thyFullscreenChange: [{ type: i0.Output, args: ["thyFullscreenChange"] }], fullscreenLaunch: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ThyFullscreenLaunchDirective), { ...{
282
+ read: ElementRef
283
+ }, isSignal: true }] }] } });
283
284
 
284
285
  class ThyFullscreenModule {
285
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyFullscreenModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
286
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.8", ngImport: i0, type: ThyFullscreenModule, imports: [ThyFullscreenComponent, ThyFullscreenLaunchDirective], exports: [ThyFullscreenComponent, ThyFullscreenLaunchDirective] }); }
287
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyFullscreenModule }); }
286
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFullscreenModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
287
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.10", ngImport: i0, type: ThyFullscreenModule, imports: [ThyFullscreenComponent, ThyFullscreenLaunchDirective], exports: [ThyFullscreenComponent, ThyFullscreenLaunchDirective] }); }
288
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFullscreenModule }); }
288
289
  }
289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyFullscreenModule, decorators: [{
290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFullscreenModule, decorators: [{
290
291
  type: NgModule,
291
292
  args: [{
292
293
  imports: [ThyFullscreenComponent, ThyFullscreenLaunchDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-fullscreen.mjs","sources":["../../../src/fullscreen/fullscreen.config.ts","../../../src/fullscreen/fullscreen-ref.ts","../../../src/fullscreen/fullscreen.service.ts","../../../src/fullscreen/fullscreen-launch.directive.ts","../../../src/fullscreen/fullscreen.component.ts","../../../src/fullscreen/fullscreen.component.html","../../../src/fullscreen/fullscreen.module.ts","../../../src/fullscreen/ngx-tethys-fullscreen.ts"],"sourcesContent":["import { ElementRef } from '@angular/core';\n\nexport interface ThyFullscreenConfig {\n /**\n * immersive 模式使用了浏览器提供的全屏,整个窗体都全屏,emulated 模式为仿真的,只会在 body 区域全屏,默认 immersive\n */\n mode?: ThyFullscreenMode;\n /**\n * 需要全屏的目标元素,可以是选择器,可以是 HTML Element, 也可以是 Angular 的 ElementRef\n */\n target: string | Element | ElementRef;\n /**\n * 目标元素已经打开全屏的样式\n */\n targetLaunchedClass?: string;\n /**\n * emulated 模式下的目标元素全屏的容器,默认是 body\n */\n emulatedContainer?: string | Element | ElementRef;\n}\n\nexport enum ThyFullscreenMode {\n immersive = 'immersive',\n emulated = 'emulated'\n}\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { DOCUMENT } from '@angular/common';\nimport { ElementRef, Inject, NgZone } from '@angular/core';\nimport { fromEvent, merge, Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyFullscreenConfig, ThyFullscreenMode } from './fullscreen.config';\n\nexport class ThyFullscreenRef<TResult = unknown> {\n fullscreenConfig: ThyFullscreenConfig;\n\n private isFullscreen = false;\n\n private ngUnsubscribe$ = new Subject<void>();\n\n private readonly _afterLaunched = new Subject<TResult>();\n\n private readonly _afterExited = new Subject<TResult>();\n\n constructor(\n @Inject(DOCUMENT) protected document: Document,\n private ngZone: NgZone\n ) {}\n\n private onFullscreenChange() {\n const isFullScreen = this.isImmersiveFullscreen();\n if (isFullScreen) {\n this.launchNormalFullscreen();\n } else {\n this.exitNormalFullscreen();\n }\n }\n\n private resetElement(element: string | Element | ElementRef) {\n const targetType = typeof element;\n if (targetType === 'string') {\n return this.document.querySelector(`.${element}`);\n } else {\n return coerceElement(element);\n }\n }\n\n private isImmersiveFullscreen() {\n const doc = this.document;\n return !!(doc['fullscreenElement'] || doc['mozFullScreenElement'] || doc['webkitFullscreenElement'] || doc['msFullscreenElement']);\n }\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if (event.keyCode === ESCAPE) {\n if (this.isFullscreen && this.fullscreenConfig.mode === ThyFullscreenMode.emulated) {\n this.ngZone.run(() => this.exitNormalFullscreen());\n }\n }\n };\n\n private launchNormalFullscreen() {\n const targetElement = this.resetElement(this.fullscreenConfig.target);\n const classes = this.fullscreenConfig.targetLaunchedClass;\n const container = this.fullscreenConfig.emulatedContainer;\n if (container) {\n const containerElement = this.resetElement(container);\n const containerClientRect = containerElement.getBoundingClientRect();\n const targetClientRect = targetElement.getBoundingClientRect();\n const distanceX = containerClientRect.left - targetClientRect.left;\n const distanceY = containerClientRect.top - targetClientRect.top;\n targetElement.style.transform = `translate(${distanceX}px, ${distanceY}px)`;\n targetElement.style.width = `${containerClientRect.width}px`;\n targetElement.style.height = `${containerClientRect.height}px`;\n } else {\n targetElement.classList.add('thy-fullscreen');\n }\n targetElement.classList.add('thy-fullscreen-active');\n if (classes && classes.length) {\n targetElement.classList.add(classes);\n }\n this.isFullscreen = true;\n this._afterLaunched.next(undefined);\n }\n\n private exitNormalFullscreen() {\n const targetElement = this.resetElement(this.fullscreenConfig.target);\n const classes = this.fullscreenConfig.targetLaunchedClass;\n const container = this.fullscreenConfig.emulatedContainer;\n if (container) {\n targetElement.style.transform = ``;\n targetElement.style.width = ``;\n targetElement.style.height = ``;\n } else {\n targetElement.classList.remove('thy-fullscreen');\n }\n targetElement.classList.remove('thy-fullscreen-active');\n if (classes && classes.length) {\n targetElement.classList.remove(classes);\n }\n\n this.isFullscreen = false;\n this._afterExited.next(undefined);\n this._afterExited.complete();\n\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n\n protected launchImmersiveFullscreen() {\n const { documentElement } = this.document;\n\n const requestFullscreen: HTMLElement['requestFullscreen'] | undefined =\n documentElement.requestFullscreen ||\n documentElement['mozRequestFullScreen'] ||\n documentElement['webkitRequestFullscreen'] ||\n documentElement['msRequestFullscreen'];\n\n if (typeof requestFullscreen === 'function') {\n // Note: the `requestFullscreen` returns a promise that resolves when the full screen is initiated.\n // The promise may reject with a `fullscreen error`. The browser warns into the console before rejecting:\n // `Failed to execute ‘requestFullScreen’ on ‘Element’: API can only be initiated by a user gesture.`.\n // We explicitly call `catch` and redirect the rejection to `console.error`.\n // Otherwise, this fill fail in unit tests with the following error:\n // `An error was thrown in afterAll. Unhandled promise rejection: TypeError: fullscreen error`.\n requestFullscreen.call(documentElement)?.catch(console.error);\n }\n }\n\n protected exitImmersiveFullscreen() {\n const { document } = this;\n\n const exitFullscreen: Document['exitFullscreen'] | undefined =\n document.exitFullscreen || document['mozCancelFullScreen'] || document['webkitExitFullscreen'] || document['msExitFullscreen'];\n\n if (typeof exitFullscreen === 'function') {\n exitFullscreen.call(document)?.catch(console.error);\n }\n }\n\n launch() {\n if (this.fullscreenConfig.mode === ThyFullscreenMode.immersive) {\n merge(\n fromEvent(this.document, 'fullscreenchange'),\n fromEvent(this.document, 'MSFullscreenChange'),\n fromEvent(this.document, 'webkitfullscreenchange')\n )\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.onFullscreenChange();\n });\n this.launchImmersiveFullscreen();\n } else {\n this.ngZone.runOutsideAngular(() =>\n fromEvent<KeyboardEvent>(this.document, 'keydown').pipe(takeUntil(this.ngUnsubscribe$)).subscribe(this.handleKeyDown)\n );\n\n this.launchNormalFullscreen();\n }\n }\n\n exit() {\n if (this.fullscreenConfig.mode === ThyFullscreenMode.immersive) {\n this.exitImmersiveFullscreen();\n } else {\n this.exitNormalFullscreen();\n }\n }\n\n afterLaunched(): Observable<TResult> {\n return this._afterLaunched.asObservable();\n }\n\n afterExited(): Observable<TResult> {\n return this._afterExited.asObservable();\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, NgZone, inject } from '@angular/core';\nimport { ThyFullscreenRef } from './fullscreen-ref';\nimport { ThyFullscreenConfig, ThyFullscreenMode } from './fullscreen.config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyFullscreen {\n protected document = inject(DOCUMENT);\n private ngZone = inject(NgZone);\n\n private fullscreenRefs: ThyFullscreenRef[] = [];\n\n /**\n * 开始全屏\n * @param config\n */\n launch<TResult = unknown>(config: ThyFullscreenConfig): ThyFullscreenRef<TResult> {\n config.mode = config.mode || ThyFullscreenMode.immersive;\n const fullscreenRef = new ThyFullscreenRef<TResult>(this.document, this.ngZone);\n fullscreenRef.fullscreenConfig = config;\n fullscreenRef.launch();\n this.fullscreenRefs.push(fullscreenRef);\n fullscreenRef.afterExited().subscribe(() => {\n const index = this.fullscreenRefs.indexOf(fullscreenRef);\n if (index > -1) {\n this.fullscreenRefs.splice(index, 1);\n }\n });\n\n return fullscreenRef;\n }\n\n /**\n * 退出最后一个 ThyFullscreenRef 的全屏\n * @param config\n */\n exit() {\n const lastFullscreenRef = this.fullscreenRefs[this.fullscreenRefs.length - 1];\n lastFullscreenRef?.exit();\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * 全屏指令\n * @name thyFullscreenLaunch,[fullscreen-launch]\n */\n@Directive({\n selector: '[thyFullscreenLaunch], [fullscreen-launch]'\n})\nexport class ThyFullscreenLaunchDirective {}\n","import { Component, ElementRef, OnDestroy, OnInit, contentChild, effect, inject, input, output } from '@angular/core';\nimport { ThyFullscreen } from './fullscreen.service';\nimport { ThyFullscreenMode } from './fullscreen.config';\nimport { ThyFullscreenLaunchDirective } from './fullscreen-launch.directive';\nimport { EMPTY, fromEvent, Subject, switchMap, takeUntil } from 'rxjs';\n\n/**\n * 全屏组件,将某一区域进行全屏展示,支持组件`thy-fullscreen`和`thyFullscreen`指令两种形式\n * @name thy-fullscreen,[thyFullscreen]\n * @order 10\n */\n@Component({\n selector: 'thy-fullscreen, [thyFullscreen]',\n templateUrl: './fullscreen.component.html'\n})\nexport class ThyFullscreenComponent implements OnInit, OnDestroy {\n private elementRef = inject(ElementRef);\n private service = inject(ThyFullscreen);\n\n /**\n * immersive 模式使用了浏览器提供的全屏,整个窗体都全屏,emulated 模式为仿真的,只会在 body 区域全屏\n * @type immersive | emulated\n */\n readonly thyMode = input<ThyFullscreenMode>(ThyFullscreenMode.immersive);\n\n /**\n * 打开全屏时需要添加的类名\n */\n readonly thyFullscreenClasses = input<string>();\n\n /**\n * 全屏之后的回调\n */\n readonly thyFullscreenChange = output<boolean>();\n\n readonly fullscreenLaunch = contentChild<ThyFullscreenLaunchDirective, ElementRef>(ThyFullscreenLaunchDirective, {\n read: ElementRef\n });\n\n private ngUnsubscribe$ = new Subject<void>();\n\n private fullscreenLaunch$ = new Subject<ElementRef<HTMLButtonElement> | undefined>();\n\n constructor() {\n effect(() => {\n this.fullscreenLaunch$.next(this.fullscreenLaunch());\n });\n }\n\n ngOnInit(): void {\n this.fullscreenLaunch$\n .pipe(\n switchMap(fullscreenLaunch => (fullscreenLaunch ? fromEvent(fullscreenLaunch.nativeElement, 'click') : EMPTY)),\n takeUntil(this.ngUnsubscribe$)\n )\n .subscribe(this.handleFullscreen);\n }\n\n // Toggles full screen on or off.\n private handleFullscreen = () => {\n const targetElement = this.elementRef.nativeElement.querySelector('[fullscreen-target]');\n const containerElement = this.elementRef.nativeElement.querySelector('[fullscreen-container]');\n const fullscreen = targetElement.classList.contains('thy-fullscreen-active');\n\n if (fullscreen) {\n this.service.exit();\n } else {\n const fullscreenRef = this.service.launch({\n mode: this.thyMode(),\n target: targetElement,\n targetLaunchedClass: this.thyFullscreenClasses(),\n emulatedContainer: containerElement\n });\n\n this.thyFullscreenChange.emit(true);\n\n fullscreenRef.afterExited().subscribe(() => {\n this.thyFullscreenChange.emit(false);\n });\n }\n };\n\n ngOnDestroy() {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\n\nimport { ThyFullscreenComponent } from './fullscreen.component';\nimport { ThyFullscreenLaunchDirective } from './fullscreen-launch.directive';\n\n@NgModule({\n imports: [ThyFullscreenComponent, ThyFullscreenLaunchDirective],\n exports: [ThyFullscreenComponent, ThyFullscreenLaunchDirective]\n})\nexport class ThyFullscreenModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["takeUntil"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-fullscreen.mjs","sources":["../../../src/fullscreen/fullscreen.config.ts","../../../src/fullscreen/fullscreen-ref.ts","../../../src/fullscreen/fullscreen.service.ts","../../../src/fullscreen/fullscreen-launch.directive.ts","../../../src/fullscreen/fullscreen.component.ts","../../../src/fullscreen/fullscreen.component.html","../../../src/fullscreen/fullscreen.module.ts","../../../src/fullscreen/ngx-tethys-fullscreen.ts"],"sourcesContent":["import { ElementRef } from '@angular/core';\n\nexport interface ThyFullscreenConfig {\n /**\n * immersive 模式使用了浏览器提供的全屏,整个窗体都全屏,emulated 模式为仿真的,只会在 body 区域全屏,默认 immersive\n */\n mode?: ThyFullscreenMode;\n /**\n * 需要全屏的目标元素,可以是选择器,可以是 HTML Element, 也可以是 Angular 的 ElementRef\n */\n target: string | Element | ElementRef;\n /**\n * 目标元素已经打开全屏的样式\n */\n targetLaunchedClass?: string;\n /**\n * emulated 模式下的目标元素全屏的容器,默认是 body\n */\n emulatedContainer?: string | Element | ElementRef;\n}\n\nexport enum ThyFullscreenMode {\n immersive = 'immersive',\n emulated = 'emulated'\n}\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { ESCAPE } from '@angular/cdk/keycodes';\n\nimport { ElementRef, Inject, NgZone, DOCUMENT } from '@angular/core';\nimport { fromEvent, merge, Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyFullscreenConfig, ThyFullscreenMode } from './fullscreen.config';\n\nexport class ThyFullscreenRef<TResult = unknown> {\n fullscreenConfig: ThyFullscreenConfig;\n\n private isFullscreen = false;\n\n private ngUnsubscribe$ = new Subject<void>();\n\n private readonly _afterLaunched = new Subject<TResult>();\n\n private readonly _afterExited = new Subject<TResult>();\n\n constructor(\n @Inject(DOCUMENT) protected document: Document,\n private ngZone: NgZone\n ) {}\n\n private onFullscreenChange() {\n const isFullScreen = this.isImmersiveFullscreen();\n if (isFullScreen) {\n this.launchNormalFullscreen();\n } else {\n this.exitNormalFullscreen();\n }\n }\n\n private resetElement(element: string | Element | ElementRef) {\n const targetType = typeof element;\n if (targetType === 'string') {\n return this.document.querySelector(`.${element}`);\n } else {\n return coerceElement(element);\n }\n }\n\n private isImmersiveFullscreen() {\n const doc = this.document;\n return !!(doc['fullscreenElement'] || doc['mozFullScreenElement'] || doc['webkitFullscreenElement'] || doc['msFullscreenElement']);\n }\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if (event.keyCode === ESCAPE) {\n if (this.isFullscreen && this.fullscreenConfig.mode === ThyFullscreenMode.emulated) {\n this.ngZone.run(() => this.exitNormalFullscreen());\n }\n }\n };\n\n private launchNormalFullscreen() {\n const targetElement = this.resetElement(this.fullscreenConfig.target);\n const classes = this.fullscreenConfig.targetLaunchedClass;\n const container = this.fullscreenConfig.emulatedContainer;\n if (container) {\n const containerElement = this.resetElement(container);\n const containerClientRect = containerElement.getBoundingClientRect();\n const targetClientRect = targetElement.getBoundingClientRect();\n const distanceX = containerClientRect.left - targetClientRect.left;\n const distanceY = containerClientRect.top - targetClientRect.top;\n targetElement.style.transform = `translate(${distanceX}px, ${distanceY}px)`;\n targetElement.style.width = `${containerClientRect.width}px`;\n targetElement.style.height = `${containerClientRect.height}px`;\n } else {\n targetElement.classList.add('thy-fullscreen');\n }\n targetElement.classList.add('thy-fullscreen-active');\n if (classes && classes.length) {\n targetElement.classList.add(classes);\n }\n this.isFullscreen = true;\n this._afterLaunched.next(undefined);\n }\n\n private exitNormalFullscreen() {\n const targetElement = this.resetElement(this.fullscreenConfig.target);\n const classes = this.fullscreenConfig.targetLaunchedClass;\n const container = this.fullscreenConfig.emulatedContainer;\n if (container) {\n targetElement.style.transform = ``;\n targetElement.style.width = ``;\n targetElement.style.height = ``;\n } else {\n targetElement.classList.remove('thy-fullscreen');\n }\n targetElement.classList.remove('thy-fullscreen-active');\n if (classes && classes.length) {\n targetElement.classList.remove(classes);\n }\n\n this.isFullscreen = false;\n this._afterExited.next(undefined);\n this._afterExited.complete();\n\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n\n protected launchImmersiveFullscreen() {\n const { documentElement } = this.document;\n\n const requestFullscreen: HTMLElement['requestFullscreen'] | undefined =\n documentElement.requestFullscreen ||\n documentElement['mozRequestFullScreen'] ||\n documentElement['webkitRequestFullscreen'] ||\n documentElement['msRequestFullscreen'];\n\n if (typeof requestFullscreen === 'function') {\n // Note: the `requestFullscreen` returns a promise that resolves when the full screen is initiated.\n // The promise may reject with a `fullscreen error`. The browser warns into the console before rejecting:\n // `Failed to execute ‘requestFullScreen’ on ‘Element’: API can only be initiated by a user gesture.`.\n // We explicitly call `catch` and redirect the rejection to `console.error`.\n // Otherwise, this fill fail in unit tests with the following error:\n // `An error was thrown in afterAll. Unhandled promise rejection: TypeError: fullscreen error`.\n requestFullscreen.call(documentElement)?.catch(console.error);\n }\n }\n\n protected exitImmersiveFullscreen() {\n const { document } = this;\n\n const exitFullscreen: Document['exitFullscreen'] | undefined =\n document.exitFullscreen || document['mozCancelFullScreen'] || document['webkitExitFullscreen'] || document['msExitFullscreen'];\n\n if (typeof exitFullscreen === 'function') {\n exitFullscreen.call(document)?.catch(console.error);\n }\n }\n\n launch() {\n if (this.fullscreenConfig.mode === ThyFullscreenMode.immersive) {\n merge(\n fromEvent(this.document, 'fullscreenchange'),\n fromEvent(this.document, 'MSFullscreenChange'),\n fromEvent(this.document, 'webkitfullscreenchange')\n )\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.onFullscreenChange();\n });\n this.launchImmersiveFullscreen();\n } else {\n this.ngZone.runOutsideAngular(() =>\n fromEvent<KeyboardEvent>(this.document, 'keydown').pipe(takeUntil(this.ngUnsubscribe$)).subscribe(this.handleKeyDown)\n );\n\n this.launchNormalFullscreen();\n }\n }\n\n exit() {\n if (this.fullscreenConfig.mode === ThyFullscreenMode.immersive) {\n this.exitImmersiveFullscreen();\n } else {\n this.exitNormalFullscreen();\n }\n }\n\n afterLaunched(): Observable<TResult> {\n return this._afterLaunched.asObservable();\n }\n\n afterExited(): Observable<TResult> {\n return this._afterExited.asObservable();\n }\n}\n","import { Injectable, NgZone, inject, DOCUMENT } from '@angular/core';\nimport { ThyFullscreenRef } from './fullscreen-ref';\nimport { ThyFullscreenConfig, ThyFullscreenMode } from './fullscreen.config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyFullscreen {\n protected document = inject(DOCUMENT);\n private ngZone = inject(NgZone);\n\n private fullscreenRefs: ThyFullscreenRef[] = [];\n\n /**\n * 开始全屏\n * @param config\n */\n launch<TResult = unknown>(config: ThyFullscreenConfig): ThyFullscreenRef<TResult> {\n config.mode = config.mode || ThyFullscreenMode.immersive;\n const fullscreenRef = new ThyFullscreenRef<TResult>(this.document, this.ngZone);\n fullscreenRef.fullscreenConfig = config;\n fullscreenRef.launch();\n this.fullscreenRefs.push(fullscreenRef);\n fullscreenRef.afterExited().subscribe(() => {\n const index = this.fullscreenRefs.indexOf(fullscreenRef);\n if (index > -1) {\n this.fullscreenRefs.splice(index, 1);\n }\n });\n\n return fullscreenRef;\n }\n\n /**\n * 退出最后一个 ThyFullscreenRef 的全屏\n * @param config\n */\n exit() {\n const lastFullscreenRef = this.fullscreenRefs[this.fullscreenRefs.length - 1];\n lastFullscreenRef?.exit();\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * 全屏指令\n * @name thyFullscreenLaunch,[fullscreen-launch]\n */\n@Directive({\n selector: '[thyFullscreenLaunch], [fullscreen-launch]'\n})\nexport class ThyFullscreenLaunchDirective {}\n","import { Component, ElementRef, OnDestroy, OnInit, contentChild, effect, inject, input, output } from '@angular/core';\nimport { ThyFullscreen } from './fullscreen.service';\nimport { ThyFullscreenMode } from './fullscreen.config';\nimport { ThyFullscreenLaunchDirective } from './fullscreen-launch.directive';\nimport { EMPTY, fromEvent, Subject, switchMap, takeUntil } from 'rxjs';\n\n/**\n * 全屏组件,将某一区域进行全屏展示,支持组件`thy-fullscreen`和`thyFullscreen`指令两种形式\n * @name thy-fullscreen,[thyFullscreen]\n * @order 10\n */\n@Component({\n selector: 'thy-fullscreen, [thyFullscreen]',\n templateUrl: './fullscreen.component.html'\n})\nexport class ThyFullscreenComponent implements OnInit, OnDestroy {\n private elementRef = inject(ElementRef);\n private service = inject(ThyFullscreen);\n\n /**\n * immersive 模式使用了浏览器提供的全屏,整个窗体都全屏,emulated 模式为仿真的,只会在 body 区域全屏\n * @type immersive | emulated\n */\n readonly thyMode = input<ThyFullscreenMode>(ThyFullscreenMode.immersive);\n\n /**\n * 打开全屏时需要添加的类名\n */\n readonly thyFullscreenClasses = input<string>();\n\n /**\n * 全屏之后的回调\n */\n readonly thyFullscreenChange = output<boolean>();\n\n readonly fullscreenLaunch = contentChild<ThyFullscreenLaunchDirective, ElementRef>(ThyFullscreenLaunchDirective, {\n read: ElementRef\n });\n\n private ngUnsubscribe$ = new Subject<void>();\n\n private fullscreenLaunch$ = new Subject<ElementRef<HTMLButtonElement> | undefined>();\n\n constructor() {\n effect(() => {\n this.fullscreenLaunch$.next(this.fullscreenLaunch());\n });\n }\n\n ngOnInit(): void {\n this.fullscreenLaunch$\n .pipe(\n switchMap(fullscreenLaunch => (fullscreenLaunch ? fromEvent(fullscreenLaunch.nativeElement, 'click') : EMPTY)),\n takeUntil(this.ngUnsubscribe$)\n )\n .subscribe(this.handleFullscreen);\n }\n\n // Toggles full screen on or off.\n private handleFullscreen = () => {\n const targetElement = this.elementRef.nativeElement.querySelector('[fullscreen-target]');\n const containerElement = this.elementRef.nativeElement.querySelector('[fullscreen-container]');\n const fullscreen = targetElement.classList.contains('thy-fullscreen-active');\n\n if (fullscreen) {\n this.service.exit();\n } else {\n const fullscreenRef = this.service.launch({\n mode: this.thyMode(),\n target: targetElement,\n targetLaunchedClass: this.thyFullscreenClasses(),\n emulatedContainer: containerElement\n });\n\n this.thyFullscreenChange.emit(true);\n\n fullscreenRef.afterExited().subscribe(() => {\n this.thyFullscreenChange.emit(false);\n });\n }\n };\n\n ngOnDestroy() {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\n\nimport { ThyFullscreenComponent } from './fullscreen.component';\nimport { ThyFullscreenLaunchDirective } from './fullscreen-launch.directive';\n\n@NgModule({\n imports: [ThyFullscreenComponent, ThyFullscreenLaunchDirective],\n exports: [ThyFullscreenComponent, ThyFullscreenLaunchDirective]\n})\nexport class ThyFullscreenModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["takeUntil"],"mappings":";;;;;;;;IAqBY;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACzB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAAA,EAAA,CAAA,CAAA;;ACb7B,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB,CAAA;IAWzB,WAAA,CACsB,QAA4B,EACtC,MAAc,EAAA;QADM,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAC5B,IAAA,CAAA,MAAM,GAAN,MAAM;QAVV,IAAA,CAAA,YAAY,GAAG,KAAK;AAEpB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AAE3B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAW;AAEvC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAW;AA8B9C,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,KAAoB,KAAU;AACnD,YAAA,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;AAC1B,gBAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,iBAAiB,CAAC,QAAQ,EAAE;AAChF,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACtD;YACJ;AACJ,QAAA,CAAC;IA/BE;IAEK,kBAAkB,GAAA;AACtB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,EAAE;QACjD,IAAI,YAAY,EAAE;YACd,IAAI,CAAC,sBAAsB,EAAE;QACjC;aAAO;YACH,IAAI,CAAC,oBAAoB,EAAE;QAC/B;IACJ;AAEQ,IAAA,YAAY,CAAC,OAAsC,EAAA;AACvD,QAAA,MAAM,UAAU,GAAG,OAAO,OAAO;AACjC,QAAA,IAAI,UAAU,KAAK,QAAQ,EAAE;YACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,CAAC;QACrD;aAAO;AACH,YAAA,OAAO,aAAa,CAAC,OAAO,CAAC;QACjC;IACJ;IAEQ,qBAAqB,GAAA;AACzB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ;QACzB,OAAO,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC,yBAAyB,CAAC,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACtI;IAUQ,sBAAsB,GAAA;AAC1B,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACrE,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB;AACzD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB;QACzD,IAAI,SAAS,EAAE;YACX,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AACrD,YAAA,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,qBAAqB,EAAE;AACpE,YAAA,MAAM,gBAAgB,GAAG,aAAa,CAAC,qBAAqB,EAAE;YAC9D,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI;YAClE,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,GAAG,gBAAgB,CAAC,GAAG;YAChE,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,SAAS,CAAA,IAAA,EAAO,SAAS,CAAA,GAAA,CAAK;YAC3E,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAA,EAAA,CAAI;YAC5D,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAA,EAAA,CAAI;QAClE;aAAO;AACH,YAAA,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACjD;AACA,QAAA,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC;AACpD,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;AAC3B,YAAA,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;QACxC;AACA,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC;IACvC;IAEQ,oBAAoB,GAAA;AACxB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACrE,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB;AACzD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB;QACzD,IAAI,SAAS,EAAE;AACX,YAAA,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE;AAClC,YAAA,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;AAC9B,YAAA,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;QACnC;aAAO;AACH,YAAA,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACpD;AACA,QAAA,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,uBAAuB,CAAC;AACvD,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;AAC3B,YAAA,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3C;AAEA,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACjC,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAE5B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;IAClC;IAEU,yBAAyB,GAAA;AAC/B,QAAA,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,QAAQ;AAEzC,QAAA,MAAM,iBAAiB,GACnB,eAAe,CAAC,iBAAiB;YACjC,eAAe,CAAC,sBAAsB,CAAC;YACvC,eAAe,CAAC,yBAAyB,CAAC;YAC1C,eAAe,CAAC,qBAAqB,CAAC;AAE1C,QAAA,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE;;;;;;;AAOzC,YAAA,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACjE;IACJ;IAEU,uBAAuB,GAAA;AAC7B,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;QAEzB,MAAM,cAAc,GAChB,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,qBAAqB,CAAC,IAAI,QAAQ,CAAC,sBAAsB,CAAC,IAAI,QAAQ,CAAC,kBAAkB,CAAC;AAElI,QAAA,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;AACtC,YAAA,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACvD;IACJ;IAEA,MAAM,GAAA;QACF,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,iBAAiB,CAAC,SAAS,EAAE;YAC5D,KAAK,CACD,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAC5C,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,EAC9C,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,CAAC;AAEjD,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;iBACnC,SAAS,CAAC,MAAK;gBACZ,IAAI,CAAC,kBAAkB,EAAE;AAC7B,YAAA,CAAC,CAAC;YACN,IAAI,CAAC,yBAAyB,EAAE;QACpC;aAAO;AACH,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAC1B,SAAS,CAAgB,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CACxH;YAED,IAAI,CAAC,sBAAsB,EAAE;QACjC;IACJ;IAEA,IAAI,GAAA;QACA,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,iBAAiB,CAAC,SAAS,EAAE;YAC5D,IAAI,CAAC,uBAAuB,EAAE;QAClC;aAAO;YACH,IAAI,CAAC,oBAAoB,EAAE;QAC/B;IACJ;IAEA,aAAa,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;IAC7C;IAEA,WAAW,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;IAC3C;;AAjKS,gBAAgB,GAAA,UAAA,CAAA;AAYpB,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;qCAAqB,QAAQ;QAC9B,MAAM,CAAA;AAbjB,CAAA,EAAA,gBAAgB,CAkK5B;;MCnKY,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;AAIc,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC7B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAEvB,IAAA,CAAA,cAAc,GAAuB,EAAE;AA8BlD,IAAA;AA5BG;;;AAGG;AACH,IAAA,MAAM,CAAoB,MAA2B,EAAA;QACjD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,iBAAiB,CAAC,SAAS;AACxD,QAAA,MAAM,aAAa,GAAG,IAAI,gBAAgB,CAAU,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;AAC/E,QAAA,aAAa,CAAC,gBAAgB,GAAG,MAAM;QACvC,aAAa,CAAC,MAAM,EAAE;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;AACvC,QAAA,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAK;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC;AACxD,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACxC;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,aAAa;IACxB;AAEA;;;AAGG;IACH,IAAI,GAAA;AACA,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7E,iBAAiB,EAAE,IAAI,EAAE;IAC7B;+GAjCS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFV,MAAM,EAAA,CAAA,CAAA;;4FAET,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACJD;;;AAGG;MAIU,4BAA4B,CAAA;+GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;;;ACFD;;;;AAIG;MAKU,sBAAsB,CAAA;AA4B/B,IAAA,WAAA,GAAA;AA3BQ,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AAEvC;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAoB,iBAAiB,CAAC,SAAS,mDAAC;AAExE;;AAEG;QACM,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAE/C;;AAEG;QACM,IAAA,CAAA,mBAAmB,GAAG,MAAM,EAAW;QAEvC,IAAA,CAAA,gBAAgB,GAAG,YAAY,CAA2C,4BAA4B,oDAC3G,IAAI,EAAE,UAAU,EAAA,CAAA,GAAA,CAD6F;AAC7G,gBAAA,IAAI,EAAE;AACT,aAAA,CAAA,CAAA,CAAC;AAEM,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AAEpC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAA6C;;QAkB5E,IAAA,CAAA,gBAAgB,GAAG,MAAK;AAC5B,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,qBAAqB,CAAC;AACxF,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,wBAAwB,CAAC;YAC9F,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAE5E,IAAI,UAAU,EAAE;AACZ,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACvB;iBAAO;AACH,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,oBAAA,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;AACpB,oBAAA,MAAM,EAAE,aAAa;AACrB,oBAAA,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,EAAE;AAChD,oBAAA,iBAAiB,EAAE;AACtB,iBAAA,CAAC;AAEF,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AAEnC,gBAAA,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAK;AACvC,oBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;AACxC,gBAAA,CAAC,CAAC;YACN;AACJ,QAAA,CAAC;QApCG,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxD,QAAA,CAAC,CAAC;IACN;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC;AACA,aAAA,IAAI,CACD,SAAS,CAAC,gBAAgB,KAAK,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,EAC9GA,WAAS,CAAC,IAAI,CAAC,cAAc,CAAC;AAEjC,aAAA,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACzC;IA0BA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;IAClC;+GAtES,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAoBoD,4BAA4B,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACrG,UAAU,6CCpCxB,6BACA,EAAA,CAAA,CAAA;;4FDca,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;+BACI,iCAAiC,EAAA,QAAA,EAAA,6BAAA,EAAA;AAuBwC,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,4BAA4B,CAAA,EAAA,EAAA,GAAE;AAC7G,4BAAA,IAAI,EAAE;AACT,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ME5BQ,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHlB,sBAAsB,EAAE,4BAA4B,CAAA,EAAA,OAAA,EAAA,CACpD,sBAAsB,EAAE,4BAA4B,CAAA,EAAA,CAAA,CAAA;gHAErD,mBAAmB,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,4BAA4B,CAAC;AAC/D,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,4BAA4B;AACjE,iBAAA;;;ACRD;;AAEG;;;;"}