@ng-nest/ui 21.0.2 → 21.0.4

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 (174) hide show
  1. package/fesm2022/ng-nest-ui-affix.mjs +12 -12
  2. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  3. package/fesm2022/ng-nest-ui-alert.mjs +22 -24
  4. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  5. package/fesm2022/ng-nest-ui-anchor.mjs +19 -19
  6. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  7. package/fesm2022/ng-nest-ui-api.mjs +7 -7
  8. package/fesm2022/ng-nest-ui-attachments.mjs +22 -22
  9. package/fesm2022/ng-nest-ui-attachments.mjs.map +1 -1
  10. package/fesm2022/ng-nest-ui-auto-complete.mjs +26 -30
  11. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  12. package/fesm2022/ng-nest-ui-avatar.mjs +17 -17
  13. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  14. package/fesm2022/ng-nest-ui-back-top.mjs +13 -13
  15. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  16. package/fesm2022/ng-nest-ui-badge.mjs +16 -16
  17. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  18. package/fesm2022/ng-nest-ui-base-form.mjs +13 -13
  19. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  20. package/fesm2022/ng-nest-ui-bubble.mjs +20 -20
  21. package/fesm2022/ng-nest-ui-bubble.mjs.map +1 -1
  22. package/fesm2022/ng-nest-ui-button.mjs +31 -31
  23. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  24. package/fesm2022/ng-nest-ui-calendar.mjs +10 -10
  25. package/fesm2022/ng-nest-ui-card.mjs +11 -11
  26. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  27. package/fesm2022/ng-nest-ui-carousel.mjs +24 -24
  28. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  29. package/fesm2022/ng-nest-ui-cascade.mjs +25 -29
  30. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  31. package/fesm2022/ng-nest-ui-checkbox.mjs +22 -22
  32. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  33. package/fesm2022/ng-nest-ui-collapse.mjs +22 -22
  34. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  35. package/fesm2022/ng-nest-ui-color-picker.mjs +25 -25
  36. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  37. package/fesm2022/ng-nest-ui-color.mjs +10 -10
  38. package/fesm2022/ng-nest-ui-comment.mjs +19 -19
  39. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  40. package/fesm2022/ng-nest-ui-container.mjs +34 -34
  41. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  42. package/fesm2022/ng-nest-ui-core.mjs +18 -18
  43. package/fesm2022/ng-nest-ui-coversations.mjs +11 -11
  44. package/fesm2022/ng-nest-ui-coversations.mjs.map +1 -1
  45. package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
  46. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  47. package/fesm2022/ng-nest-ui-date-picker.mjs +87 -87
  48. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  49. package/fesm2022/ng-nest-ui-description.mjs +20 -20
  50. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  51. package/fesm2022/ng-nest-ui-dialog.mjs +58 -58
  52. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  53. package/fesm2022/ng-nest-ui-doc.mjs +7 -7
  54. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  55. package/fesm2022/ng-nest-ui-drawer.mjs +34 -34
  56. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  57. package/fesm2022/ng-nest-ui-dropdown.mjs +21 -21
  58. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  59. package/fesm2022/ng-nest-ui-empty.mjs +10 -10
  60. package/fesm2022/ng-nest-ui-examples.mjs +7 -7
  61. package/fesm2022/ng-nest-ui-find.mjs +31 -35
  62. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  63. package/fesm2022/ng-nest-ui-form.mjs +21 -21
  64. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  65. package/fesm2022/ng-nest-ui-highlight.mjs +14 -14
  66. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  67. package/fesm2022/ng-nest-ui-i18n.mjs +32 -31
  68. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  69. package/fesm2022/ng-nest-ui-icon.mjs +14 -14
  70. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  71. package/fesm2022/ng-nest-ui-image.mjs +21 -21
  72. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  73. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  74. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  75. package/fesm2022/ng-nest-ui-input-number.mjs +21 -21
  76. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  77. package/fesm2022/ng-nest-ui-input.mjs +36 -40
  78. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  79. package/fesm2022/ng-nest-ui-keyword.mjs +11 -11
  80. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  81. package/fesm2022/ng-nest-ui-layout.mjs +25 -25
  82. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  83. package/fesm2022/ng-nest-ui-link.mjs +13 -13
  84. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  85. package/fesm2022/ng-nest-ui-list.mjs +41 -41
  86. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  87. package/fesm2022/ng-nest-ui-loading.mjs +14 -14
  88. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  89. package/fesm2022/ng-nest-ui-menu.mjs +22 -22
  90. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  91. package/fesm2022/ng-nest-ui-message-box.mjs +10 -10
  92. package/fesm2022/ng-nest-ui-message.mjs +10 -10
  93. package/fesm2022/ng-nest-ui-notification.mjs +10 -10
  94. package/fesm2022/ng-nest-ui-outlet.mjs +7 -7
  95. package/fesm2022/ng-nest-ui-page-header.mjs +10 -10
  96. package/fesm2022/ng-nest-ui-pagination.mjs +27 -31
  97. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  98. package/fesm2022/ng-nest-ui-pattern.mjs +7 -7
  99. package/fesm2022/ng-nest-ui-popconfirm.mjs +14 -14
  100. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  101. package/fesm2022/ng-nest-ui-popover.mjs +19 -19
  102. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  103. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  104. package/fesm2022/ng-nest-ui-progress.mjs +22 -22
  105. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  106. package/fesm2022/ng-nest-ui-prompts.mjs +12 -12
  107. package/fesm2022/ng-nest-ui-prompts.mjs.map +1 -1
  108. package/fesm2022/ng-nest-ui-radio.mjs +20 -20
  109. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  110. package/fesm2022/ng-nest-ui-rate.mjs +15 -15
  111. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  112. package/fesm2022/ng-nest-ui-resizable.mjs +14 -14
  113. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  114. package/fesm2022/ng-nest-ui-result.mjs +10 -10
  115. package/fesm2022/ng-nest-ui-ripple.mjs +12 -12
  116. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  117. package/fesm2022/ng-nest-ui-scrollable.mjs +19 -7
  118. package/fesm2022/ng-nest-ui-scrollable.mjs.map +1 -1
  119. package/fesm2022/ng-nest-ui-select.mjs +35 -39
  120. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  121. package/fesm2022/ng-nest-ui-sender.mjs +19 -19
  122. package/fesm2022/ng-nest-ui-sender.mjs.map +1 -1
  123. package/fesm2022/ng-nest-ui-skeleton.mjs +13 -13
  124. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  125. package/fesm2022/ng-nest-ui-slider-select.mjs +21 -21
  126. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  127. package/fesm2022/ng-nest-ui-slider.mjs +16 -18
  128. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  129. package/fesm2022/ng-nest-ui-statistic.mjs +16 -16
  130. package/fesm2022/ng-nest-ui-steps.mjs +33 -18
  131. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  132. package/fesm2022/ng-nest-ui-suggestion.mjs +17 -17
  133. package/fesm2022/ng-nest-ui-suggestion.mjs.map +1 -1
  134. package/fesm2022/ng-nest-ui-switch.mjs +15 -15
  135. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  136. package/fesm2022/ng-nest-ui-table-view.mjs +58 -58
  137. package/fesm2022/ng-nest-ui-table.mjs +90 -112
  138. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  139. package/fesm2022/ng-nest-ui-tabs.mjs +38 -40
  140. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  141. package/fesm2022/ng-nest-ui-tag.mjs +16 -16
  142. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  143. package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
  144. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  145. package/fesm2022/ng-nest-ui-textarea.mjs +19 -19
  146. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  147. package/fesm2022/ng-nest-ui-theme.mjs +12 -12
  148. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  149. package/fesm2022/ng-nest-ui-thought-chain.mjs +12 -12
  150. package/fesm2022/ng-nest-ui-thought-chain.mjs.map +1 -1
  151. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  152. package/fesm2022/ng-nest-ui-time-picker.mjs +28 -28
  153. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  154. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  155. package/fesm2022/ng-nest-ui-timeline.mjs +12 -12
  156. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  157. package/fesm2022/ng-nest-ui-tooltip.mjs +17 -17
  158. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  159. package/fesm2022/ng-nest-ui-transfer.mjs +14 -14
  160. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  161. package/fesm2022/ng-nest-ui-tree-file.mjs +17 -17
  162. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  163. package/fesm2022/ng-nest-ui-tree-select.mjs +36 -42
  164. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  165. package/fesm2022/ng-nest-ui-tree.mjs +44 -46
  166. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  167. package/fesm2022/ng-nest-ui-typography.mjs +10 -10
  168. package/fesm2022/ng-nest-ui-upload.mjs +24 -24
  169. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  170. package/fesm2022/ng-nest-ui-welcome.mjs +10 -10
  171. package/package.json +1 -1
  172. package/types/ng-nest-ui-i18n.d.ts +13 -11
  173. package/types/ng-nest-ui-scrollable.d.ts +6 -0
  174. package/types/ng-nest-ui-steps.d.ts +18 -3
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-list.mjs","sources":["../../../../lib/ng-nest/ui/list/list.property.ts","../../../../lib/ng-nest/ui/list/list-option.component.ts","../../../../lib/ng-nest/ui/list/list-option.component.html","../../../../lib/ng-nest/ui/list/list-drop-group.directive.ts","../../../../lib/ng-nest/ui/list/list.component.ts","../../../../lib/ng-nest/ui/list/list.component.html","../../../../lib/ng-nest/ui/list/list.module.ts","../../../../lib/ng-nest/ui/list/ng-nest-ui-list.ts"],"sourcesContent":["import {\r\n XData,\r\n XParentIdentityProperty,\r\n XNumber,\r\n XBoolean,\r\n XTemplate,\r\n XSize,\r\n XToNumber,\r\n XToBoolean,\r\n XStyle\r\n} from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, ElementRef, input, output, model } from '@angular/core';\r\nimport { XFormControlFunction } from '@ng-nest/ui/base-form';\r\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\r\nimport { XListOptionComponent } from './list-option.component';\r\n\r\n/**\r\n * List\r\n * @selector x-list\r\n * @decorator component\r\n */\r\nexport const XListPrefix = 'x-list';\r\nconst X_LIST_CONFIG_NAME = 'list';\r\n\r\n/**\r\n * List Property\r\n */\r\n@Component({ selector: `${XListPrefix}-property`, template: '' })\r\nexport class XListProperty extends XFormControlFunction(X_LIST_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 列表数据\r\n * @en_US List data\r\n */\r\n readonly data = input<XData<XListNode>>([]);\r\n /**\r\n * @zh_CN 多选个数,设置为0,不限制选择个数\r\n * @en_US Multiple choice\r\n */\r\n readonly multiple = input<number, XNumber>(1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 多选添加全选功能,适用于 multiple=0\r\n * @en_US Multi choice to add full selection function\r\n */\r\n readonly selectAll = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 全选的文字\r\n * @en_US Selected all text\r\n * @default '全选'\r\n */\r\n readonly selectAllText = input<string>(this.config?.selectAllText ?? '');\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Selected\r\n */\r\n readonly checked = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 拖动\r\n * @en_US Drag\r\n */\r\n readonly drag = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 当开启多选的时候,ngModel 的值为对象数组\r\n * @en_US When multiple selection is enabled, the value of ngmodel is an array of objects\r\n */\r\n readonly objectArray = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n readonly nodeTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 节点样式\r\n * @en_US Node style\r\n */\r\n readonly nodeStyle = input<XStyle>();\r\n /**\r\n * @zh_CN 分组模板\r\n * @en_US Group template\r\n */\r\n readonly groupTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 列表头部\r\n * @en_US List header\r\n */\r\n readonly header = input<XTemplate>();\r\n /**\r\n * @zh_CN 列表底部\r\n * @en_US List footer\r\n */\r\n readonly footer = input<XTemplate>();\r\n /**\r\n * @zh_CN 滚动区域元素\r\n * @en_US Rolling area element\r\n */\r\n readonly scrollElement = input<HTMLElement>();\r\n /**\r\n * @zh_CN 是否使用键盘控制\r\n * @en_US Whether to use keyboard control\r\n */\r\n readonly isKeyboardControlled = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 加载更多\r\n * @en_US load more\r\n */\r\n readonly loadMore = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 加载更多的文字\r\n * @en_US Load more text\r\n * @default '加载更多'\r\n */\r\n readonly loadMoreText = input<string>(this.config?.loadMoreText ?? '');\r\n /**\r\n * @zh_CN 正在加载中的文字\r\n * @en_US Loading\r\n * @default '正在加载中'\r\n */\r\n readonly loadingMoreText = input<string>(this.config?.loadingMoreText ?? '');\r\n /**\r\n * @zh_CN 开启虚拟滚动,不支持节点拖动功能\r\n * @en_US Turn on virtual scrolling\r\n */\r\n readonly virtualScroll = input<boolean, XBoolean>(this.config?.virtualScroll ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 虚拟滚动高度, 实际会去掉头尾、全选、更多的高度\r\n * @en_US The virtual rolling height will actually remove the head and end, the full selection, more height\r\n */\r\n readonly scrollHeight = input<number, XNumber>(this.config?.scrollHeight ?? 400, { transform: XToNumber });\r\n /**\r\n * @zh_CN 虚拟滚动高度自适应指定元素\r\n * @en_US virtual rolling height follows the specified object\r\n */\r\n readonly heightAdaption = input<ElementRef<HTMLElement> | HTMLElement>();\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly minBufferPx = input<number, XNumber>(100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly maxBufferPx = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN 关键字高亮\r\n * @en_US Keyword highlighting\r\n */\r\n readonly keywordText = input<string | string[]>();\r\n /**\r\n * @zh_CN 匹配关键字区分大小写\r\n * @en_US Case-sensitive\r\n */\r\n readonly caseSensitive = input<boolean, XBoolean>(this.config?.caseSensitive ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 在弹框中选择时的样式,根据尺寸来决定\r\n * @en_US The style selected in the pop-up box is determined by size\r\n */\r\n readonly inPortal = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN Full event\r\n * @en_US 全选事件\r\n */\r\n readonly onSelectAll = output<boolean>();\r\n /**\r\n * @zh_CN 节点 mouseenter 事件\r\n * @en_US Node mouseenter event\r\n */\r\n readonly nodeMouseenter = output<XListNode>();\r\n /**\r\n * @zh_CN 节点 mouseleave 事件\r\n * @en_US Node mouseleave event\r\n */\r\n readonly nodeMouseleave = output<XListNode>();\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeClick = output<XListNode>();\r\n /**\r\n * @zh_CN 拖动结束事件\r\n * @en_US Drag the end\r\n */\r\n readonly dropListDropped = output<XListDragDrop>();\r\n /**\r\n * @zh_CN Tab out 事件\r\n * @en_US Tab Out event\r\n */\r\n readonly keyManagerTabOut = output<void>();\r\n /**\r\n * @zh_CN Tab out 事件\r\n * @en_US Tab Out event\r\n */\r\n readonly keyManagerChange = output<number>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n}\r\n\r\n/**\r\n * @zh_CN List 数据对象\r\n * @en_US List data object\r\n */\r\nexport interface XListNode extends XParentIdentityProperty<XListNode> {\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Iicon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 分割线\r\n * @en_US Split line\r\n */\r\n divided?: boolean;\r\n /**\r\n * @zh_CN 事件\r\n * @en_US Event\r\n */\r\n event?: Event;\r\n /**\r\n * @zh_CN 悬停\r\n * @en_US Hover\r\n */\r\n hover?: boolean;\r\n /**\r\n * @zh_CN 节点样式\r\n * @en_US Node style\r\n */\r\n style?: XStyle;\r\n /**\r\n * @zh_CN 打开弹框\r\n * @en_US open portal\r\n */\r\n openPortal?: boolean;\r\n /**\r\n * @zh_CN 激活\r\n * @en_US Active\r\n */\r\n active?: boolean;\r\n /**\r\n * @zh_CN 检查更新\r\n * @en_US Check for updates\r\n */\r\n change?: Function;\r\n /**\r\n * @zh_CN 分组名称\r\n * @en_US Group name\r\n */\r\n group?: boolean;\r\n /**\r\n * @zh_CN 是否是分组节点\r\n * @en_US Group node\r\n */\r\n groupable?: boolean;\r\n /**\r\n * @zh_CN 对应的节点组件\r\n * @en_US List option component\r\n */\r\n component?: XListOptionComponent;\r\n}\r\n\r\n/**\r\n * List Option\r\n * @selector x-list-option\r\n * @decorator component\r\n */\r\nexport const XListOptionPrefix = 'x-list-option';\r\n\r\n/**\r\n * List Option Property\r\n */\r\n@Component({ selector: `${XListOptionPrefix}-property`, template: '' })\r\nexport class XListOptionProperty {\r\n /**\r\n * @zh_CN 节点参数\r\n * @en_US Node param\r\n */\r\n readonly node = input<XListNode>();\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Selected\r\n */\r\n readonly checked = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n readonly nodeTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 节点样式\r\n * @en_US Node style\r\n */\r\n readonly nodeStyle = input<XStyle>();\r\n /**\r\n * @zh_CN 分组模板\r\n * @en_US Group template\r\n */\r\n readonly groupTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 选中\r\n * @en_US selected\r\n */\r\n readonly selected = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 分组节点\r\n * @en_US Group node\r\n */\r\n readonly groupable = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US forbidden\r\n */\r\n readonly forbidden = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 激活\r\n * @en_US active\r\n */\r\n readonly active = model<boolean>(false);\r\n /**\r\n * @zh_CN 打开弹框\r\n * @en_US open portal\r\n */\r\n readonly openPortal = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 自定义数据对象样式\r\n * @en_US Customize data object styles\r\n */\r\n readonly optionClass = input<(node: XListNode) => { [className: string]: boolean }>();\r\n /**\r\n * @zh_CN 图标\r\n * @en_US icon\r\n */\r\n readonly icon = input<string>();\r\n /**\r\n * @zh_CN 分割线\r\n * @en_US Split line\r\n */\r\n readonly divided = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US label\r\n */\r\n readonly label = input<string>();\r\n /**\r\n * @zh_CN 叶子节点\r\n * @en_US leaf\r\n */\r\n readonly leaf = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n readonly size = input<XSize>('medium');\r\n /**\r\n * @zh_CN 关键字高亮\r\n * @en_US Keyword highlighting\r\n */\r\n readonly keywordText = input<string | string[]>();\r\n /**\r\n * @zh_CN 匹配关键字区分大小写\r\n * @en_US Case-sensitive\r\n */\r\n readonly caseSensitive = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n}\r\n\r\n/**\r\n * @zh_CN 拖动相关的数据\r\n * @en_US Drag related data\r\n */\r\nexport type XListDragDrop = {\r\n /**\r\n * @zh_CN 节点数据集合\r\n * @en_US Node data collection\r\n */\r\n data: XListNode[];\r\n /**\r\n * @zh_CN 当前拖动节点\r\n * @en_US The current drag nodes\r\n */\r\n current: XListNode;\r\n /**\r\n * @zh_CN 当前拖动节点的索引\r\n * @en_US The current drag index of the node\r\n */\r\n currentIndex: number;\r\n /**\r\n * @zh_CN 当前拖动节点事件\r\n * @en_US The current drag nodes event\r\n */\r\n event: CdkDragDrop<XListNode[]>;\r\n};\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n ViewEncapsulation,\r\n computed,\r\n effect,\r\n inject\r\n} from '@angular/core';\r\nimport { XListOptionPrefix, XListOptionProperty } from './list.property';\r\nimport { Highlightable } from '@angular/cdk/a11y';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XKeywordDirective } from '@ng-nest/ui/keyword';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XListOptionPrefix}`,\r\n imports: [NgClass, NgTemplateOutlet, XIconComponent, XKeywordDirective],\r\n templateUrl: './list-option.component.html',\r\n styleUrls: ['./list-option.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XListOptionComponent extends XListOptionProperty implements Highlightable {\r\n @HostBinding('attr.role') role = 'option';\r\n elementRef = inject(ElementRef);\r\n classMap = computed(() => ({}));\r\n disabled = false;\r\n\r\n nodeStyleComputed = computed(() => {\r\n return {\r\n ...(this.nodeStyle() ?? {}),\r\n ...(this.node()?.style ?? {})\r\n };\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => (this.disabled = this.forbidden()));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.active.set(false);\r\n }\r\n\r\n setActiveStyles(): void {\r\n this.active.set(true);\r\n }\r\n setInactiveStyles(): void {\r\n this.active.set(false);\r\n }\r\n\r\n getLabel() {\r\n return this.label() as string;\r\n }\r\n}\r\n","<div\r\n class=\"x-list-option\"\r\n [ngClass]=\"classMap()\"\r\n [style]=\"nodeStyleComputed()\"\r\n [class.x-selected]=\"selected()\"\r\n [class.x-disabled]=\"forbidden()\"\r\n [class.x-open-portal]=\"openPortal()\"\r\n [class.x-active]=\"active()\"\r\n [class.x-group]=\"groupable()\"\r\n [class.x-list-icon]=\"icon()\"\r\n [class.x-list-divided]=\"divided()\"\r\n>\r\n <div class=\"x-list-option-content\">\r\n @if (groupable() && groupTpl()) {\r\n <ng-template *ngTemplateOutlet=\"groupTpl()!; context: { $group: label() }\"></ng-template>\r\n } @else {\r\n @if (nodeTpl()) {\r\n <ng-template *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node() }\"></ng-template>\r\n } @else {\r\n @if (icon()) {\r\n <x-icon class=\"x-list-option-icon\" [type]=\"icon()\"></x-icon>\r\n }\r\n <span x-keyword [text]=\"keywordText()\" [caseSensitive]=\"caseSensitive()\" [attr.title]=\"label()\">{{\r\n label()\r\n }}</span>\r\n }\r\n }\r\n </div>\r\n @if (leaf()) {\r\n <x-icon class=\"x-list-leaf\" type=\"fto-chevron-right\"></x-icon>\r\n }\r\n @if (checked() && !leaf() && selected()) {\r\n <x-icon class=\"x-list-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n","import { coerceArray } from '@angular/cdk/coercion';\r\nimport { CdkDropList } from '@angular/cdk/drag-drop';\r\nimport { Directive, InjectionToken, OnDestroy, input } from '@angular/core';\r\nimport { XBoolean, XToBoolean } from '@ng-nest/ui/core';\r\n\r\nexport const X_LIST_DROP_GROUP = new InjectionToken<XListDropGroup>('XListDropGroup');\r\n\r\n@Directive({\r\n selector: '[xListDropGroup]',\r\n providers: [{ provide: X_LIST_DROP_GROUP, useExisting: XListDropGroup }]\r\n})\r\nexport class XListDropGroup implements OnDestroy {\r\n readonly dropLists = new Set<CdkDropList>();\r\n\r\n disabled = input<boolean, XBoolean>(false, { transform: XToBoolean, alias: 'xListDropGroupDisabled' });\r\n\r\n setConnectedTo() {\r\n this.dropLists.forEach((x) => {\r\n this.dropLists.forEach((y) => {\r\n const { connectedTo } = y;\r\n if (Array.isArray(connectedTo) && connectedTo.length === 0) {\r\n y.connectedTo = [x];\r\n } else {\r\n if (!coerceArray(y.connectedTo).includes(x)) {\r\n coerceArray(y.connectedTo).push(x);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.dropLists.clear();\r\n }\r\n}\r\n","import { Subject, Subscription } from 'rxjs';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n QueryList,\r\n ElementRef,\r\n HostBinding,\r\n HostListener,\r\n ViewChildren,\r\n inject,\r\n afterEveryRender,\r\n viewChild,\r\n signal,\r\n computed\r\n} from '@angular/core';\r\nimport { XListPrefix, XListNode, XListProperty } from './list.property';\r\nimport {\r\n XIsChange,\r\n XSetData,\r\n XIsEmpty,\r\n XIsUndefined,\r\n XIsNull,\r\n XResize,\r\n XResizeObserver,\r\n XGroupBy\r\n} from '@ng-nest/ui/core';\r\nimport { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\r\nimport { XListOptionComponent } from './list-option.component';\r\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\r\nimport { ENTER } from '@angular/cdk/keycodes';\r\nimport { map, takeUntil, debounceTime } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XI18nList, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { XListDropGroup, X_LIST_DROP_GROUP } from './list-drop-group.directive';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XEmptyComponent } from '@ng-nest/ui/empty';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XListPrefix}`,\r\n imports: [\r\n NgClass,\r\n NgTemplateOutlet,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CdkDropList,\r\n CdkDrag,\r\n ScrollingModule,\r\n XIconComponent,\r\n XEmptyComponent,\r\n XListOptionComponent,\r\n XOutletDirective\r\n ],\r\n templateUrl: './list.component.html',\r\n styleUrls: ['./list.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XListComponent), { provide: X_LIST_DROP_GROUP, useValue: undefined }]\r\n})\r\nexport class XListComponent extends XListProperty implements OnChanges {\r\n private unSubject = new Subject<void>();\r\n private i18n = inject(XI18nService);\r\n private listDropGroup = inject<XListDropGroup>(X_LIST_DROP_GROUP, { optional: true, skipSelf: true });\r\n nodes = signal<XListNode[]>([]);\r\n selectedNodes = signal<XListNode[]>([]);\r\n headerRef = viewChild<ElementRef<HTMLElement>>('headerRef');\r\n footerRef = viewChild<ElementRef<HTMLElement>>('footerRef');\r\n selectAllRef = viewChild<ElementRef<HTMLElement>>('selectAllRef');\r\n loadMoreRef = viewChild<ElementRef<HTMLElement>>('loadMoreRef');\r\n virtualBody = viewChild<CdkVirtualScrollViewport>('virtualBody');\r\n dropList = viewChild<CdkDropList>(CdkDropList);\r\n @ViewChildren(XListOptionComponent)\r\n options!: QueryList<XListOptionComponent>;\r\n keyManager!: ActiveDescendantKeyManager<XListOptionComponent>;\r\n isSelectAll = signal(false);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.list as XI18nList)), { initialValue: zh_CN.list });\r\n loadMoreIndex = signal(0);\r\n icon = signal('');\r\n iconSpin = signal(false);\r\n scrollHeightSignal = signal(0);\r\n classMap = computed(() => ({\r\n [`${XListPrefix}-${this.size()}`]: this.size() ? true : false,\r\n [`${XListPrefix}-group`]: this.groupable() ? true : false\r\n }));\r\n sizeChange: Subscription | null = null;\r\n activeNode = signal<XListNode | null>(null);\r\n private resizeObserver!: XResizeObserver;\r\n\r\n @HostBinding('attr.role') role = 'listbox';\r\n @HostBinding('attr.tabindex') tabindex = -1;\r\n\r\n @HostListener('keydown', ['$event']) keydown($event: KeyboardEvent) {\r\n if (!this.isKeyboardControlled()) return;\r\n this.keyManager.onKeydown($event);\r\n const activeIndex = this.keyManager.activeItemIndex as number;\r\n if ($event.keyCode === ENTER && !XIsUndefined(activeIndex)) {\r\n this.setUnActive(activeIndex);\r\n this.onNodeClick($event, this.nodes()[activeIndex]);\r\n }\r\n }\r\n\r\n groupable = computed(() => this.nodes().some((x) => !!x.group));\r\n\r\n itemSizeMap: { [key: string]: number } = {\r\n mini: 22,\r\n small: 24,\r\n medium: 28,\r\n large: 32,\r\n big: 36\r\n };\r\n\r\n itemSize = computed(() => this.itemSizeMap[this.size()]);\r\n isEmpty = computed(() => XIsEmpty(this.nodes()));\r\n getSelectAllText = computed(() => this.selectAllText() || this.locale()?.selectAllText);\r\n getLoadMoreText = computed(() => this.loadMoreText() || this.locale()?.loadMoreText);\r\n getLoadingMoreText = computed(() => this.loadingMoreText() || this.locale()?.loadingMoreText);\r\n\r\n getVirtualScrollHeight() {\r\n let headerH = 0,\r\n footerH = 0,\r\n selectAllH = 0,\r\n loadMoreH = 0;\r\n if (this.headerRef()) headerH = this.headerRef()!.nativeElement.clientHeight;\r\n if (this.footerRef()) footerH = this.footerRef()!.nativeElement.clientHeight;\r\n if (this.selectAllRef()) selectAllH = this.selectAllRef()!.nativeElement.clientHeight;\r\n if (this.loadMoreRef()) loadMoreH = this.loadMoreRef()!.nativeElement.clientHeight;\r\n\r\n return this.scrollHeightSignal() - headerH - footerH - selectAllH - loadMoreH;\r\n }\r\n\r\n override writeValue(value: any): void {\r\n this.value.set(value);\r\n this.setSelected();\r\n this.setKeyManager();\r\n }\r\n\r\n constructor() {\r\n super();\r\n afterEveryRender({\r\n mixedReadWrite: () => {\r\n if (this.virtualScroll() && this.scrollHeight()) {\r\n this.virtualBody()?.checkViewportSize();\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { data, scrollHeight, heightAdaption } = changes;\r\n XIsChange(data) && this.setData();\r\n XIsChange(scrollHeight) &&\r\n this.virtualScroll() &&\r\n !this.heightAdaption() &&\r\n this.scrollHeightSignal.set(this.scrollHeight());\r\n XIsChange(heightAdaption) && this.virtualScroll() && this.setHeightAdaption();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initKeyManager();\r\n if (this.virtualScroll() && this.heightAdaption()) {\r\n this.setHeightAdaption();\r\n } else {\r\n this.scrollHeightSignal.set(this.scrollHeight());\r\n }\r\n if (this.listDropGroup && this.dropList()) {\r\n this.listDropGroup.dropLists.add(this.dropList()!);\r\n this.listDropGroup.setConnectedTo();\r\n }\r\n }\r\n\r\n setHeightAdaption() {\r\n this.setVirtualScrollHeight();\r\n if (this.sizeChange) this.sizeChange.unsubscribe();\r\n this.sizeChange = XResize(this.heightAdaption() as HTMLElement)\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n this.resizeObserver = x.resizeObserver;\r\n this.setVirtualScrollHeight();\r\n });\r\n }\r\n\r\n minBufferPxSignal = computed(() => {\r\n if (this.virtualScroll() && this.heightAdaption()) {\r\n return this.getVirtualScrollHeight();\r\n } else {\r\n return this.minBufferPx();\r\n }\r\n });\r\n maxBufferPxSignal = computed(() => {\r\n if (this.virtualScroll() && this.heightAdaption()) {\r\n return this.getVirtualScrollHeight() * 1.2;\r\n } else {\r\n return this.maxBufferPx();\r\n }\r\n });\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.resizeObserver?.disconnect();\r\n this.listDropGroup?.dropLists.delete(this.dropList()!);\r\n }\r\n\r\n private setVirtualScrollHeight() {\r\n this.scrollHeightSignal.set((this.heightAdaption() as HTMLElement).clientHeight);\r\n if (!this.virtualBody()) return;\r\n this.virtualBody()!['_scrollStrategy']['_minBufferPx'] = this.minBufferPxSignal();\r\n this.virtualBody()!['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPxSignal();\r\n }\r\n\r\n private setData() {\r\n if (this.loadMore()) {\r\n this.icon.set('fto-loader');\r\n this.iconSpin.set(true);\r\n }\r\n XSetData<XListNode>(this.data(), this.unSubject, true, this.loadMoreIndex()).subscribe((x) => {\r\n if (this.loadMore()) {\r\n this.nodes.update((y) => [...y, ...x]);\r\n this.icon.set('');\r\n this.iconSpin.set(false);\r\n } else {\r\n this.nodes.set(x);\r\n }\r\n this.setGroup();\r\n this.setSelected();\r\n this.setKeyManager();\r\n });\r\n }\r\n\r\n private initKeyManager() {\r\n this.keyManager = new ActiveDescendantKeyManager<XListOptionComponent>(this.options)\r\n .withWrap()\r\n .withVerticalOrientation()\r\n .withHomeAndEnd();\r\n this.keyManager.tabOut.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.setUnActive(this.keyManager.activeItemIndex as number);\r\n this.keyManagerTabOut.emit();\r\n });\r\n this.keyManager.change.pipe(takeUntil(this.unSubject)).subscribe((num: number) => {\r\n this.setScorllTop(num);\r\n this.keyManagerChange.emit(num);\r\n });\r\n }\r\n\r\n private setGroup() {\r\n const nodes = this.nodes();\r\n if (!nodes.some((x) => !!x.group)) return;\r\n const groups = XGroupBy(nodes, 'group');\r\n const groupNodes: XListNode[] = [];\r\n for (let key in groups) {\r\n groupNodes.push({ id: `$group-${key}`, label: key, groupable: true });\r\n groupNodes.push(...groups[key]);\r\n }\r\n this.nodes.set(groupNodes);\r\n }\r\n\r\n setScorllTop(_num: number) {\r\n let list = this.scrollElement();\r\n if (!list || !this.keyManager.activeItem) return;\r\n let ele = this.keyManager.activeItem.elementRef.nativeElement as HTMLElement;\r\n let min = list.scrollTop;\r\n let max = list.scrollTop + list.clientHeight;\r\n if (ele.offsetTop + ele.clientHeight > max) {\r\n let scrollTop = ele.offsetTop + ele.clientHeight - list.clientHeight;\r\n list.scrollTop = scrollTop;\r\n }\r\n if (ele.offsetTop < min) {\r\n list.scrollTop = ele.offsetTop;\r\n }\r\n }\r\n\r\n setSelected() {\r\n const nodes = this.nodes();\r\n const value = this.value();\r\n const objectArray = this.objectArray();\r\n if (nodes.length > 0) {\r\n nodes\r\n .filter((x) => x.selected)\r\n .map((x) => {\r\n x.selected = false;\r\n });\r\n let valArry: any[] = [];\r\n if (value instanceof Array) {\r\n valArry = value;\r\n if (valArry.length === nodes.length) {\r\n this.isSelectAll.set(true);\r\n }\r\n } else {\r\n valArry = [value];\r\n }\r\n\r\n let ids = [];\r\n let selectedNodes = [];\r\n if (objectArray) {\r\n ids = valArry.filter((x) => !XIsUndefined(x) && !XIsNull(x)).map((x) => x.id);\r\n } else {\r\n ids = valArry;\r\n }\r\n for (let id of ids) {\r\n let node = nodes.find((x) => x.id === id);\r\n if (node) {\r\n node.selected = true;\r\n selectedNodes.push(node);\r\n }\r\n }\r\n this.selectedNodes.set(selectedNodes);\r\n }\r\n }\r\n\r\n setKeyManager() {\r\n if (XIsUndefined(this.keyManager) || XIsEmpty(this.nodes())) return;\r\n let activeIndex = 0;\r\n let value = this.value();\r\n let objectArray = this.objectArray();\r\n if (XIsEmpty(value)) {\r\n return;\r\n }\r\n let valArry: any[] = [];\r\n if (value instanceof Array) {\r\n valArry = value;\r\n } else {\r\n valArry = [value];\r\n }\r\n const first = valArry[0];\r\n if (objectArray) {\r\n activeIndex = this.nodes().findIndex((x) => x.id === first.id);\r\n } else {\r\n activeIndex = this.nodes().findIndex((x) => x.id === first);\r\n }\r\n\r\n this.keyManager.setActiveItem(activeIndex);\r\n this.setScorllTop(activeIndex);\r\n }\r\n\r\n onNodeClick(event: Event, node: XListNode) {\r\n if (XIsUndefined(node) || node.disabled || node.groupable) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n const index = this.nodes().findIndex((x) => x.id === node.id);\r\n const component = this.options.get(index)!;\r\n if (node.disabled) return;\r\n if (node.selected && this.multiple() === 1) {\r\n node.event = event;\r\n node.component = component;\r\n this.nodeClick.emit(node);\r\n return;\r\n }\r\n const selected = !node.selected;\r\n if (selected) {\r\n if (this.selectedNodes().length < this.multiple() || this.multiple() === 0 || isNaN(this.multiple())) {\r\n node.selected = selected;\r\n this.selectedNodes.update((x) => [...x, node]);\r\n if (this.selectedNodes().length === this.nodes().length) {\r\n this.isSelectAll.set(true);\r\n }\r\n } else if (this.multiple() === 1 && this.selectedNodes().length === 1) {\r\n node.selected = selected;\r\n this.selectedNodes.update((x) => {\r\n x[0].selected = false;\r\n x[0] = node;\r\n return [...x];\r\n });\r\n } else {\r\n return;\r\n }\r\n } else {\r\n node.selected = selected;\r\n this.selectedNodes.update((x) => {\r\n x.splice(\r\n x.findIndex((x) => x.id == node.id),\r\n 1\r\n );\r\n return [...x];\r\n });\r\n this.isSelectAll.set(false);\r\n }\r\n\r\n if (this.multiple() === 1 && this.selectedNodes().length === 1) {\r\n this.value.set(this.objectArray() ? this.selectedNodes()[0] : this.selectedNodes()[0].id);\r\n } else {\r\n this.value.set(this.objectArray() ? this.selectedNodes() : this.selectedNodes().map((x) => x.id));\r\n }\r\n if (this.onChange) this.onChange(this.value());\r\n node.event = event;\r\n node.component = component;\r\n this.nodeClick.emit(node);\r\n }\r\n\r\n onMouseenter(event: Event, node: XListNode) {\r\n if (node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n const index = this.nodes().findIndex((x) => x.id === node.id);\r\n const component = this.options.get(index)!;\r\n node.event = event;\r\n node.component = component;\r\n this.nodeMouseenter.emit(node);\r\n }\r\n\r\n onMouseleave(event: Event, node: XListNode) {\r\n if (node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n const index = this.nodes().findIndex((x) => x.id === node.id);\r\n const component = this.options.get(index)!;\r\n node.event = event;\r\n node.component = component;\r\n this.nodeMouseleave.emit(node);\r\n }\r\n\r\n dropCdk(event: CdkDragDrop<XListNode[]>) {\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n this.dropListDropped.emit({\r\n data: this.nodes(),\r\n current: this.nodes()[event.currentIndex],\r\n currentIndex: event.currentIndex,\r\n event: event\r\n });\r\n } else {\r\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\r\n this.dropListDropped.emit({\r\n data: event.container.data,\r\n current: event.container.data[event.currentIndex],\r\n currentIndex: event.currentIndex,\r\n event: event\r\n });\r\n }\r\n }\r\n\r\n predicate(_drag: CdkDrag<XListNode>, _drop: CdkDropList<XListNode>) {\r\n return true;\r\n }\r\n\r\n onSelectAllNodes() {\r\n this.isSelectAll.update((x) => !x);\r\n if (this.isSelectAll()) {\r\n this.nodes.update((x) => {\r\n x.forEach((y) => (y.selected = true));\r\n return [...x];\r\n });\r\n this.selectedNodes.set(this.nodes());\r\n } else {\r\n this.nodes.update((x) => {\r\n x.forEach((y) => (y.selected = false));\r\n return [...x];\r\n });\r\n this.selectedNodes.set([]);\r\n }\r\n this.value.set(this.objectArray() ? this.selectedNodes() : this.selectedNodes().map((x) => x.id));\r\n if (this.onChange) this.onChange(this.value());\r\n this.onSelectAll.emit(this.isSelectAll());\r\n }\r\n\r\n onLoadMore() {\r\n this.loadMoreIndex.update((x) => x + 1);\r\n this.setData();\r\n }\r\n\r\n trackByNode(_index: number, item: XListNode) {\r\n return item.id;\r\n }\r\n\r\n setUnActive(num: number) {\r\n if (num > -1) {\r\n this.nodes()[num].active = false;\r\n }\r\n }\r\n}\r\n","<div class=\"x-list\" [class.x-list-portal]=\"inPortal()\" [ngClass]=\"classMap()\">\r\n @if (header()) {\r\n <div #headerRef class=\"x-list-header\" *xOutlet=\"header()\">{{ header() }}</div>\r\n }\r\n @if (selectAll() && multiple() === 0) {\r\n <div #selectAllRef class=\"x-list-select-all\">\r\n <x-list-option\r\n [size]=\"size()\"\r\n [label]=\"getSelectAllText()\"\r\n [nodeStyle]=\"nodeStyle()\"\r\n [checked]=\"true\"\r\n [selected]=\"isSelectAll()\"\r\n (click)=\"onSelectAllNodes()\"\r\n ></x-list-option>\r\n </div>\r\n }\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n class=\"x-list-content\"\r\n [style.height.px]=\"getVirtualScrollHeight()\"\r\n [hidden]=\"isEmpty()\"\r\n >\r\n <x-list-option\r\n *cdkVirtualFor=\"let node of nodes(); trackBy: trackByNode\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [nodeStyle]=\"nodeStyle()\"\r\n [groupTpl]=\"groupTpl()\"\r\n [selected]=\"node.selected!\"\r\n [groupable]=\"node.groupable!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [divided]=\"node.divided!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n tabindex=\"-1\"\r\n ></x-list-option>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"listTpl; context: { $list: nodes() }\"></ng-container>\r\n }\r\n\r\n @if (loadMore() && !isEmpty()) {\r\n <div #loadMoreRef class=\"x-list-load-more\">\r\n <x-list-option\r\n [size]=\"size()\"\r\n [nodeTpl]=\"loadMoreTpl\"\r\n [nodeStyle]=\"nodeStyle()\"\r\n (click)=\"onLoadMore()\"\r\n ></x-list-option>\r\n </div>\r\n <ng-template #loadMoreTpl>\r\n @if (icon() && iconSpin()) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\"></x-icon>\r\n }\r\n {{ icon() && iconSpin() ? getLoadingMoreText() : getLoadMoreText() }}</ng-template\r\n >\r\n }\r\n @if (isEmpty()) {\r\n <x-empty></x-empty>\r\n }\r\n @if (footer()) {\r\n <div #footerRef class=\"x-list-footer\" *xOutlet=\"footer()\">{{ footer() }}</div>\r\n }\r\n</div>\r\n\r\n<ng-template #listTpl let-list=\"$list\">\r\n <div\r\n class=\"x-list-content\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"list\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of list; track node.id) {\r\n <x-list-option\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled || node.groupable\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [groupTpl]=\"groupTpl()\"\r\n [nodeStyle]=\"nodeStyle()\"\r\n [selected]=\"node.selected!\"\r\n [groupable]=\"node.groupable!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [divided]=\"node.divided!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n tabindex=\"-1\"\r\n ></x-list-option>\r\n }\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { XListComponent } from './list.component';\r\nimport { XListOptionComponent } from './list-option.component';\r\nimport { XListDropGroup } from './list-drop-group.directive';\r\n\r\n@NgModule({\r\n exports: [XListComponent, XListDropGroup, XListOptionComponent],\r\n imports: [XListComponent, XListDropGroup, XListOptionComponent]\r\n})\r\nexport class XListModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-list.mjs","sources":["../../../../lib/ng-nest/ui/list/list.property.ts","../../../../lib/ng-nest/ui/list/list-option.component.ts","../../../../lib/ng-nest/ui/list/list-option.component.html","../../../../lib/ng-nest/ui/list/list-drop-group.directive.ts","../../../../lib/ng-nest/ui/list/list.component.ts","../../../../lib/ng-nest/ui/list/list.component.html","../../../../lib/ng-nest/ui/list/list.module.ts","../../../../lib/ng-nest/ui/list/ng-nest-ui-list.ts"],"sourcesContent":["import {\r\n XData,\r\n XParentIdentityProperty,\r\n XNumber,\r\n XBoolean,\r\n XTemplate,\r\n XSize,\r\n XToNumber,\r\n XToBoolean,\r\n XStyle\r\n} from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, ElementRef, input, output, model } from '@angular/core';\r\nimport { XFormControlFunction } from '@ng-nest/ui/base-form';\r\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\r\nimport { XListOptionComponent } from './list-option.component';\r\n\r\n/**\r\n * List\r\n * @selector x-list\r\n * @decorator component\r\n */\r\nexport const XListPrefix = 'x-list';\r\nconst X_LIST_CONFIG_NAME = 'list';\r\n\r\n/**\r\n * List Property\r\n */\r\n@Component({ selector: `${XListPrefix}-property`, template: '' })\r\nexport class XListProperty extends XFormControlFunction(X_LIST_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 列表数据\r\n * @en_US List data\r\n */\r\n readonly data = input<XData<XListNode>>([]);\r\n /**\r\n * @zh_CN 多选个数,设置为0,不限制选择个数\r\n * @en_US Multiple choice\r\n */\r\n readonly multiple = input<number, XNumber>(1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 多选添加全选功能,适用于 multiple=0\r\n * @en_US Multi choice to add full selection function\r\n */\r\n readonly selectAll = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 全选的文字\r\n * @en_US Selected all text\r\n * @default '全选'\r\n */\r\n readonly selectAllText = input<string>(this.config?.selectAllText ?? '');\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Selected\r\n */\r\n readonly checked = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 拖动\r\n * @en_US Drag\r\n */\r\n readonly drag = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 当开启多选的时候,ngModel 的值为对象数组\r\n * @en_US When multiple selection is enabled, the value of ngmodel is an array of objects\r\n */\r\n readonly objectArray = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n readonly nodeTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 节点样式\r\n * @en_US Node style\r\n */\r\n readonly nodeStyle = input<XStyle>();\r\n /**\r\n * @zh_CN 分组模板\r\n * @en_US Group template\r\n */\r\n readonly groupTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 列表头部\r\n * @en_US List header\r\n */\r\n readonly header = input<XTemplate>();\r\n /**\r\n * @zh_CN 列表底部\r\n * @en_US List footer\r\n */\r\n readonly footer = input<XTemplate>();\r\n /**\r\n * @zh_CN 滚动区域元素\r\n * @en_US Rolling area element\r\n */\r\n readonly scrollElement = input<HTMLElement>();\r\n /**\r\n * @zh_CN 是否使用键盘控制\r\n * @en_US Whether to use keyboard control\r\n */\r\n readonly isKeyboardControlled = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 加载更多\r\n * @en_US load more\r\n */\r\n readonly loadMore = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 加载更多的文字\r\n * @en_US Load more text\r\n * @default '加载更多'\r\n */\r\n readonly loadMoreText = input<string>(this.config?.loadMoreText ?? '');\r\n /**\r\n * @zh_CN 正在加载中的文字\r\n * @en_US Loading\r\n * @default '正在加载中'\r\n */\r\n readonly loadingMoreText = input<string>(this.config?.loadingMoreText ?? '');\r\n /**\r\n * @zh_CN 开启虚拟滚动,不支持节点拖动功能\r\n * @en_US Turn on virtual scrolling\r\n */\r\n readonly virtualScroll = input<boolean, XBoolean>(this.config?.virtualScroll ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 虚拟滚动高度, 实际会去掉头尾、全选、更多的高度\r\n * @en_US The virtual rolling height will actually remove the head and end, the full selection, more height\r\n */\r\n readonly scrollHeight = input<number, XNumber>(this.config?.scrollHeight ?? 400, { transform: XToNumber });\r\n /**\r\n * @zh_CN 虚拟滚动高度自适应指定元素\r\n * @en_US virtual rolling height follows the specified object\r\n */\r\n readonly heightAdaption = input<ElementRef<HTMLElement> | HTMLElement>();\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly minBufferPx = input<number, XNumber>(100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly maxBufferPx = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN 关键字高亮\r\n * @en_US Keyword highlighting\r\n */\r\n readonly keywordText = input<string | string[]>();\r\n /**\r\n * @zh_CN 匹配关键字区分大小写\r\n * @en_US Case-sensitive\r\n */\r\n readonly caseSensitive = input<boolean, XBoolean>(this.config?.caseSensitive ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 在弹框中选择时的样式,根据尺寸来决定\r\n * @en_US The style selected in the pop-up box is determined by size\r\n */\r\n readonly inPortal = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN Full event\r\n * @en_US 全选事件\r\n */\r\n readonly onSelectAll = output<boolean>();\r\n /**\r\n * @zh_CN 节点 mouseenter 事件\r\n * @en_US Node mouseenter event\r\n */\r\n readonly nodeMouseenter = output<XListNode>();\r\n /**\r\n * @zh_CN 节点 mouseleave 事件\r\n * @en_US Node mouseleave event\r\n */\r\n readonly nodeMouseleave = output<XListNode>();\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeClick = output<XListNode>();\r\n /**\r\n * @zh_CN 拖动结束事件\r\n * @en_US Drag the end\r\n */\r\n readonly dropListDropped = output<XListDragDrop>();\r\n /**\r\n * @zh_CN Tab out 事件\r\n * @en_US Tab Out event\r\n */\r\n readonly keyManagerTabOut = output<void>();\r\n /**\r\n * @zh_CN Tab out 事件\r\n * @en_US Tab Out event\r\n */\r\n readonly keyManagerChange = output<number>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n}\r\n\r\n/**\r\n * @zh_CN List 数据对象\r\n * @en_US List data object\r\n */\r\nexport interface XListNode extends XParentIdentityProperty<XListNode> {\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Iicon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 分割线\r\n * @en_US Split line\r\n */\r\n divided?: boolean;\r\n /**\r\n * @zh_CN 事件\r\n * @en_US Event\r\n */\r\n event?: Event;\r\n /**\r\n * @zh_CN 悬停\r\n * @en_US Hover\r\n */\r\n hover?: boolean;\r\n /**\r\n * @zh_CN 节点样式\r\n * @en_US Node style\r\n */\r\n style?: XStyle;\r\n /**\r\n * @zh_CN 打开弹框\r\n * @en_US open portal\r\n */\r\n openPortal?: boolean;\r\n /**\r\n * @zh_CN 激活\r\n * @en_US Active\r\n */\r\n active?: boolean;\r\n /**\r\n * @zh_CN 检查更新\r\n * @en_US Check for updates\r\n */\r\n change?: Function;\r\n /**\r\n * @zh_CN 分组名称\r\n * @en_US Group name\r\n */\r\n group?: boolean;\r\n /**\r\n * @zh_CN 是否是分组节点\r\n * @en_US Group node\r\n */\r\n groupable?: boolean;\r\n /**\r\n * @zh_CN 对应的节点组件\r\n * @en_US List option component\r\n */\r\n component?: XListOptionComponent;\r\n}\r\n\r\n/**\r\n * List Option\r\n * @selector x-list-option\r\n * @decorator component\r\n */\r\nexport const XListOptionPrefix = 'x-list-option';\r\n\r\n/**\r\n * List Option Property\r\n */\r\n@Component({ selector: `${XListOptionPrefix}-property`, template: '' })\r\nexport class XListOptionProperty {\r\n /**\r\n * @zh_CN 节点参数\r\n * @en_US Node param\r\n */\r\n readonly node = input<XListNode>();\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Selected\r\n */\r\n readonly checked = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n readonly nodeTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 节点样式\r\n * @en_US Node style\r\n */\r\n readonly nodeStyle = input<XStyle>();\r\n /**\r\n * @zh_CN 分组模板\r\n * @en_US Group template\r\n */\r\n readonly groupTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 选中\r\n * @en_US selected\r\n */\r\n readonly selected = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 分组节点\r\n * @en_US Group node\r\n */\r\n readonly groupable = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US forbidden\r\n */\r\n readonly forbidden = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 激活\r\n * @en_US active\r\n */\r\n readonly active = model<boolean>(false);\r\n /**\r\n * @zh_CN 打开弹框\r\n * @en_US open portal\r\n */\r\n readonly openPortal = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 自定义数据对象样式\r\n * @en_US Customize data object styles\r\n */\r\n readonly optionClass = input<(node: XListNode) => { [className: string]: boolean }>();\r\n /**\r\n * @zh_CN 图标\r\n * @en_US icon\r\n */\r\n readonly icon = input<string>();\r\n /**\r\n * @zh_CN 分割线\r\n * @en_US Split line\r\n */\r\n readonly divided = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US label\r\n */\r\n readonly label = input<string>();\r\n /**\r\n * @zh_CN 叶子节点\r\n * @en_US leaf\r\n */\r\n readonly leaf = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n readonly size = input<XSize>('medium');\r\n /**\r\n * @zh_CN 关键字高亮\r\n * @en_US Keyword highlighting\r\n */\r\n readonly keywordText = input<string | string[]>();\r\n /**\r\n * @zh_CN 匹配关键字区分大小写\r\n * @en_US Case-sensitive\r\n */\r\n readonly caseSensitive = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n}\r\n\r\n/**\r\n * @zh_CN 拖动相关的数据\r\n * @en_US Drag related data\r\n */\r\nexport type XListDragDrop = {\r\n /**\r\n * @zh_CN 节点数据集合\r\n * @en_US Node data collection\r\n */\r\n data: XListNode[];\r\n /**\r\n * @zh_CN 当前拖动节点\r\n * @en_US The current drag nodes\r\n */\r\n current: XListNode;\r\n /**\r\n * @zh_CN 当前拖动节点的索引\r\n * @en_US The current drag index of the node\r\n */\r\n currentIndex: number;\r\n /**\r\n * @zh_CN 当前拖动节点事件\r\n * @en_US The current drag nodes event\r\n */\r\n event: CdkDragDrop<XListNode[]>;\r\n};\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n ViewEncapsulation,\r\n computed,\r\n effect,\r\n inject\r\n} from '@angular/core';\r\nimport { XListOptionPrefix, XListOptionProperty } from './list.property';\r\nimport { Highlightable } from '@angular/cdk/a11y';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XKeywordDirective } from '@ng-nest/ui/keyword';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XListOptionPrefix}`,\r\n imports: [NgClass, NgTemplateOutlet, XIconComponent, XKeywordDirective],\r\n templateUrl: './list-option.component.html',\r\n styleUrls: ['./list-option.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XListOptionComponent extends XListOptionProperty implements Highlightable {\r\n @HostBinding('attr.role') role = 'option';\r\n elementRef = inject(ElementRef);\r\n classMap = computed(() => ({}));\r\n disabled = false;\r\n\r\n nodeStyleComputed = computed(() => {\r\n return {\r\n ...(this.nodeStyle() ?? {}),\r\n ...(this.node()?.style ?? {})\r\n };\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => (this.disabled = this.forbidden()));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.active.set(false);\r\n }\r\n\r\n setActiveStyles(): void {\r\n this.active.set(true);\r\n }\r\n setInactiveStyles(): void {\r\n this.active.set(false);\r\n }\r\n\r\n getLabel() {\r\n return this.label() as string;\r\n }\r\n}\r\n","<div\r\n class=\"x-list-option\"\r\n [ngClass]=\"classMap()\"\r\n [style]=\"nodeStyleComputed()\"\r\n [class.x-selected]=\"selected()\"\r\n [class.x-disabled]=\"forbidden()\"\r\n [class.x-open-portal]=\"openPortal()\"\r\n [class.x-active]=\"active()\"\r\n [class.x-group]=\"groupable()\"\r\n [class.x-list-icon]=\"icon()\"\r\n [class.x-list-divided]=\"divided()\"\r\n>\r\n <div class=\"x-list-option-content\">\r\n @if (groupable() && groupTpl()) {\r\n <ng-template *ngTemplateOutlet=\"groupTpl()!; context: { $group: label() }\"></ng-template>\r\n } @else {\r\n @if (nodeTpl()) {\r\n <ng-template *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node() }\"></ng-template>\r\n } @else {\r\n @if (icon()) {\r\n <x-icon class=\"x-list-option-icon\" [type]=\"icon()\"></x-icon>\r\n }\r\n <span x-keyword [text]=\"keywordText()\" [caseSensitive]=\"caseSensitive()\" [attr.title]=\"label()\">{{\r\n label()\r\n }}</span>\r\n }\r\n }\r\n </div>\r\n @if (leaf()) {\r\n <x-icon class=\"x-list-leaf\" type=\"fto-chevron-right\"></x-icon>\r\n }\r\n @if (checked() && !leaf() && selected()) {\r\n <x-icon class=\"x-list-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n","import { coerceArray } from '@angular/cdk/coercion';\r\nimport { CdkDropList } from '@angular/cdk/drag-drop';\r\nimport { Directive, InjectionToken, OnDestroy, input } from '@angular/core';\r\nimport { XBoolean, XToBoolean } from '@ng-nest/ui/core';\r\n\r\nexport const X_LIST_DROP_GROUP = new InjectionToken<XListDropGroup>('XListDropGroup');\r\n\r\n@Directive({\r\n selector: '[xListDropGroup]',\r\n providers: [{ provide: X_LIST_DROP_GROUP, useExisting: XListDropGroup }]\r\n})\r\nexport class XListDropGroup implements OnDestroy {\r\n readonly dropLists = new Set<CdkDropList>();\r\n\r\n disabled = input<boolean, XBoolean>(false, { transform: XToBoolean, alias: 'xListDropGroupDisabled' });\r\n\r\n setConnectedTo() {\r\n this.dropLists.forEach((x) => {\r\n this.dropLists.forEach((y) => {\r\n const { connectedTo } = y;\r\n if (Array.isArray(connectedTo) && connectedTo.length === 0) {\r\n y.connectedTo = [x];\r\n } else {\r\n if (!coerceArray(y.connectedTo).includes(x)) {\r\n coerceArray(y.connectedTo).push(x);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.dropLists.clear();\r\n }\r\n}\r\n","import { Subject, Subscription } from 'rxjs';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n QueryList,\r\n ElementRef,\r\n HostBinding,\r\n HostListener,\r\n ViewChildren,\r\n inject,\r\n afterEveryRender,\r\n viewChild,\r\n signal,\r\n computed\r\n} from '@angular/core';\r\nimport { XListPrefix, XListNode, XListProperty } from './list.property';\r\nimport {\r\n XIsChange,\r\n XSetData,\r\n XIsEmpty,\r\n XIsUndefined,\r\n XIsNull,\r\n XResize,\r\n XResizeObserver,\r\n XGroupBy\r\n} from '@ng-nest/ui/core';\r\nimport { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\r\nimport { XListOptionComponent } from './list-option.component';\r\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\r\nimport { ENTER } from '@angular/cdk/keycodes';\r\nimport { map, takeUntil, debounceTime } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XI18nList, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { XListDropGroup, X_LIST_DROP_GROUP } from './list-drop-group.directive';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XEmptyComponent } from '@ng-nest/ui/empty';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XListPrefix}`,\r\n imports: [\r\n NgClass,\r\n NgTemplateOutlet,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CdkDropList,\r\n CdkDrag,\r\n ScrollingModule,\r\n XIconComponent,\r\n XEmptyComponent,\r\n XListOptionComponent,\r\n XOutletDirective\r\n ],\r\n templateUrl: './list.component.html',\r\n styleUrls: ['./list.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XListComponent), { provide: X_LIST_DROP_GROUP, useValue: undefined }]\r\n})\r\nexport class XListComponent extends XListProperty implements OnChanges {\r\n private unSubject = new Subject<void>();\r\n private i18n = inject(XI18nService);\r\n private listDropGroup = inject<XListDropGroup>(X_LIST_DROP_GROUP, { optional: true, skipSelf: true });\r\n nodes = signal<XListNode[]>([]);\r\n selectedNodes = signal<XListNode[]>([]);\r\n headerRef = viewChild<ElementRef<HTMLElement>>('headerRef');\r\n footerRef = viewChild<ElementRef<HTMLElement>>('footerRef');\r\n selectAllRef = viewChild<ElementRef<HTMLElement>>('selectAllRef');\r\n loadMoreRef = viewChild<ElementRef<HTMLElement>>('loadMoreRef');\r\n virtualBody = viewChild<CdkVirtualScrollViewport>('virtualBody');\r\n dropList = viewChild<CdkDropList>(CdkDropList);\r\n @ViewChildren(XListOptionComponent)\r\n options!: QueryList<XListOptionComponent>;\r\n keyManager!: ActiveDescendantKeyManager<XListOptionComponent>;\r\n isSelectAll = signal(false);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.list as XI18nList)), { initialValue: zh_CN.list });\r\n loadMoreIndex = signal(0);\r\n icon = signal('');\r\n iconSpin = signal(false);\r\n scrollHeightSignal = signal(0);\r\n classMap = computed(() => ({\r\n [`${XListPrefix}-${this.size()}`]: this.size() ? true : false,\r\n [`${XListPrefix}-group`]: this.groupable() ? true : false\r\n }));\r\n sizeChange: Subscription | null = null;\r\n activeNode = signal<XListNode | null>(null);\r\n private resizeObserver!: XResizeObserver;\r\n\r\n @HostBinding('attr.role') role = 'listbox';\r\n @HostBinding('attr.tabindex') tabindex = -1;\r\n\r\n @HostListener('keydown', ['$event']) keydown($event: KeyboardEvent) {\r\n if (!this.isKeyboardControlled()) return;\r\n this.keyManager.onKeydown($event);\r\n const activeIndex = this.keyManager.activeItemIndex as number;\r\n if ($event.keyCode === ENTER && !XIsUndefined(activeIndex)) {\r\n this.setUnActive(activeIndex);\r\n this.onNodeClick($event, this.nodes()[activeIndex]);\r\n }\r\n }\r\n\r\n groupable = computed(() => this.nodes().some((x) => !!x.group));\r\n\r\n itemSizeMap: { [key: string]: number } = {\r\n mini: 22,\r\n small: 24,\r\n medium: 28,\r\n large: 32,\r\n big: 36\r\n };\r\n\r\n itemSize = computed(() => this.itemSizeMap[this.size()]);\r\n isEmpty = computed(() => XIsEmpty(this.nodes()));\r\n getSelectAllText = computed(() => this.selectAllText() || this.locale()?.selectAllText);\r\n getLoadMoreText = computed(() => this.loadMoreText() || this.locale()?.loadMoreText);\r\n getLoadingMoreText = computed(() => this.loadingMoreText() || this.locale()?.loadingMoreText);\r\n\r\n getVirtualScrollHeight() {\r\n let headerH = 0,\r\n footerH = 0,\r\n selectAllH = 0,\r\n loadMoreH = 0;\r\n if (this.headerRef()) headerH = this.headerRef()!.nativeElement.clientHeight;\r\n if (this.footerRef()) footerH = this.footerRef()!.nativeElement.clientHeight;\r\n if (this.selectAllRef()) selectAllH = this.selectAllRef()!.nativeElement.clientHeight;\r\n if (this.loadMoreRef()) loadMoreH = this.loadMoreRef()!.nativeElement.clientHeight;\r\n\r\n return this.scrollHeightSignal() - headerH - footerH - selectAllH - loadMoreH;\r\n }\r\n\r\n override writeValue(value: any): void {\r\n this.value.set(value);\r\n this.setSelected();\r\n this.setKeyManager();\r\n }\r\n\r\n constructor() {\r\n super();\r\n afterEveryRender({\r\n mixedReadWrite: () => {\r\n if (this.virtualScroll() && this.scrollHeight()) {\r\n this.virtualBody()?.checkViewportSize();\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { data, scrollHeight, heightAdaption } = changes;\r\n XIsChange(data) && this.setData();\r\n XIsChange(scrollHeight) &&\r\n this.virtualScroll() &&\r\n !this.heightAdaption() &&\r\n this.scrollHeightSignal.set(this.scrollHeight());\r\n XIsChange(heightAdaption) && this.virtualScroll() && this.setHeightAdaption();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initKeyManager();\r\n if (this.virtualScroll() && this.heightAdaption()) {\r\n this.setHeightAdaption();\r\n } else {\r\n this.scrollHeightSignal.set(this.scrollHeight());\r\n }\r\n if (this.listDropGroup && this.dropList()) {\r\n this.listDropGroup.dropLists.add(this.dropList()!);\r\n this.listDropGroup.setConnectedTo();\r\n }\r\n }\r\n\r\n setHeightAdaption() {\r\n this.setVirtualScrollHeight();\r\n if (this.sizeChange) this.sizeChange.unsubscribe();\r\n this.sizeChange = XResize(this.heightAdaption() as HTMLElement)\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n this.resizeObserver = x.resizeObserver;\r\n this.setVirtualScrollHeight();\r\n });\r\n }\r\n\r\n minBufferPxSignal = computed(() => {\r\n if (this.virtualScroll() && this.heightAdaption()) {\r\n return this.getVirtualScrollHeight();\r\n } else {\r\n return this.minBufferPx();\r\n }\r\n });\r\n maxBufferPxSignal = computed(() => {\r\n if (this.virtualScroll() && this.heightAdaption()) {\r\n return this.getVirtualScrollHeight() * 1.2;\r\n } else {\r\n return this.maxBufferPx();\r\n }\r\n });\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.resizeObserver?.disconnect();\r\n this.listDropGroup?.dropLists.delete(this.dropList()!);\r\n }\r\n\r\n private setVirtualScrollHeight() {\r\n this.scrollHeightSignal.set((this.heightAdaption() as HTMLElement).clientHeight);\r\n if (!this.virtualBody()) return;\r\n this.virtualBody()!['_scrollStrategy']['_minBufferPx'] = this.minBufferPxSignal();\r\n this.virtualBody()!['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPxSignal();\r\n }\r\n\r\n private setData() {\r\n if (this.loadMore()) {\r\n this.icon.set('fto-loader');\r\n this.iconSpin.set(true);\r\n }\r\n XSetData<XListNode>(this.data(), this.unSubject, true, this.loadMoreIndex()).subscribe((x) => {\r\n if (this.loadMore()) {\r\n this.nodes.update((y) => [...y, ...x]);\r\n this.icon.set('');\r\n this.iconSpin.set(false);\r\n } else {\r\n this.nodes.set(x);\r\n }\r\n this.setGroup();\r\n this.setSelected();\r\n this.setKeyManager();\r\n });\r\n }\r\n\r\n private initKeyManager() {\r\n this.keyManager = new ActiveDescendantKeyManager<XListOptionComponent>(this.options)\r\n .withWrap()\r\n .withVerticalOrientation()\r\n .withHomeAndEnd();\r\n this.keyManager.tabOut.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.setUnActive(this.keyManager.activeItemIndex as number);\r\n this.keyManagerTabOut.emit();\r\n });\r\n this.keyManager.change.pipe(takeUntil(this.unSubject)).subscribe((num: number) => {\r\n this.setScorllTop(num);\r\n this.keyManagerChange.emit(num);\r\n });\r\n }\r\n\r\n private setGroup() {\r\n const nodes = this.nodes();\r\n if (!nodes.some((x) => !!x.group)) return;\r\n const groups = XGroupBy(nodes, 'group');\r\n const groupNodes: XListNode[] = [];\r\n for (let key in groups) {\r\n groupNodes.push({ id: `$group-${key}`, label: key, groupable: true });\r\n groupNodes.push(...groups[key]);\r\n }\r\n this.nodes.set(groupNodes);\r\n }\r\n\r\n setScorllTop(_num: number) {\r\n let list = this.scrollElement();\r\n if (!list || !this.keyManager.activeItem) return;\r\n let ele = this.keyManager.activeItem.elementRef.nativeElement as HTMLElement;\r\n let min = list.scrollTop;\r\n let max = list.scrollTop + list.clientHeight;\r\n if (ele.offsetTop + ele.clientHeight > max) {\r\n let scrollTop = ele.offsetTop + ele.clientHeight - list.clientHeight;\r\n list.scrollTop = scrollTop;\r\n }\r\n if (ele.offsetTop < min) {\r\n list.scrollTop = ele.offsetTop;\r\n }\r\n }\r\n\r\n setSelected() {\r\n const nodes = this.nodes();\r\n const value = this.value();\r\n const objectArray = this.objectArray();\r\n if (nodes.length > 0) {\r\n nodes\r\n .filter((x) => x.selected)\r\n .map((x) => {\r\n x.selected = false;\r\n });\r\n let valArry: any[] = [];\r\n if (value instanceof Array) {\r\n valArry = value;\r\n if (valArry.length === nodes.length) {\r\n this.isSelectAll.set(true);\r\n }\r\n } else {\r\n valArry = [value];\r\n }\r\n\r\n let ids = [];\r\n let selectedNodes = [];\r\n if (objectArray) {\r\n ids = valArry.filter((x) => !XIsUndefined(x) && !XIsNull(x)).map((x) => x.id);\r\n } else {\r\n ids = valArry;\r\n }\r\n for (let id of ids) {\r\n let node = nodes.find((x) => x.id === id);\r\n if (node) {\r\n node.selected = true;\r\n selectedNodes.push(node);\r\n }\r\n }\r\n this.selectedNodes.set(selectedNodes);\r\n }\r\n }\r\n\r\n setKeyManager() {\r\n if (XIsUndefined(this.keyManager) || XIsEmpty(this.nodes())) return;\r\n let activeIndex = 0;\r\n let value = this.value();\r\n let objectArray = this.objectArray();\r\n if (XIsEmpty(value)) {\r\n return;\r\n }\r\n let valArry: any[] = [];\r\n if (value instanceof Array) {\r\n valArry = value;\r\n } else {\r\n valArry = [value];\r\n }\r\n const first = valArry[0];\r\n if (objectArray) {\r\n activeIndex = this.nodes().findIndex((x) => x.id === first.id);\r\n } else {\r\n activeIndex = this.nodes().findIndex((x) => x.id === first);\r\n }\r\n\r\n this.keyManager.setActiveItem(activeIndex);\r\n this.setScorllTop(activeIndex);\r\n }\r\n\r\n onNodeClick(event: Event, node: XListNode) {\r\n if (XIsUndefined(node) || node.disabled || node.groupable) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n const index = this.nodes().findIndex((x) => x.id === node.id);\r\n const component = this.options.get(index)!;\r\n if (node.disabled) return;\r\n if (node.selected && this.multiple() === 1) {\r\n node.event = event;\r\n node.component = component;\r\n this.nodeClick.emit(node);\r\n return;\r\n }\r\n const selected = !node.selected;\r\n if (selected) {\r\n if (this.selectedNodes().length < this.multiple() || this.multiple() === 0 || isNaN(this.multiple())) {\r\n node.selected = selected;\r\n this.selectedNodes.update((x) => [...x, node]);\r\n if (this.selectedNodes().length === this.nodes().length) {\r\n this.isSelectAll.set(true);\r\n }\r\n } else if (this.multiple() === 1 && this.selectedNodes().length === 1) {\r\n node.selected = selected;\r\n this.selectedNodes.update((x) => {\r\n x[0].selected = false;\r\n x[0] = node;\r\n return [...x];\r\n });\r\n } else {\r\n return;\r\n }\r\n } else {\r\n node.selected = selected;\r\n this.selectedNodes.update((x) => {\r\n x.splice(\r\n x.findIndex((x) => x.id == node.id),\r\n 1\r\n );\r\n return [...x];\r\n });\r\n this.isSelectAll.set(false);\r\n }\r\n\r\n if (this.multiple() === 1 && this.selectedNodes().length === 1) {\r\n this.value.set(this.objectArray() ? this.selectedNodes()[0] : this.selectedNodes()[0].id);\r\n } else {\r\n this.value.set(this.objectArray() ? this.selectedNodes() : this.selectedNodes().map((x) => x.id));\r\n }\r\n if (this.onChange) this.onChange(this.value());\r\n node.event = event;\r\n node.component = component;\r\n this.nodeClick.emit(node);\r\n }\r\n\r\n onMouseenter(event: Event, node: XListNode) {\r\n if (node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n const index = this.nodes().findIndex((x) => x.id === node.id);\r\n const component = this.options.get(index)!;\r\n node.event = event;\r\n node.component = component;\r\n this.nodeMouseenter.emit(node);\r\n }\r\n\r\n onMouseleave(event: Event, node: XListNode) {\r\n if (node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n const index = this.nodes().findIndex((x) => x.id === node.id);\r\n const component = this.options.get(index)!;\r\n node.event = event;\r\n node.component = component;\r\n this.nodeMouseleave.emit(node);\r\n }\r\n\r\n dropCdk(event: CdkDragDrop<XListNode[]>) {\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n this.dropListDropped.emit({\r\n data: this.nodes(),\r\n current: this.nodes()[event.currentIndex],\r\n currentIndex: event.currentIndex,\r\n event: event\r\n });\r\n } else {\r\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\r\n this.dropListDropped.emit({\r\n data: event.container.data,\r\n current: event.container.data[event.currentIndex],\r\n currentIndex: event.currentIndex,\r\n event: event\r\n });\r\n }\r\n }\r\n\r\n predicate(_drag: CdkDrag<XListNode>, _drop: CdkDropList<XListNode>) {\r\n return true;\r\n }\r\n\r\n onSelectAllNodes() {\r\n this.isSelectAll.update((x) => !x);\r\n if (this.isSelectAll()) {\r\n this.nodes.update((x) => {\r\n x.forEach((y) => (y.selected = true));\r\n return [...x];\r\n });\r\n this.selectedNodes.set(this.nodes());\r\n } else {\r\n this.nodes.update((x) => {\r\n x.forEach((y) => (y.selected = false));\r\n return [...x];\r\n });\r\n this.selectedNodes.set([]);\r\n }\r\n this.value.set(this.objectArray() ? this.selectedNodes() : this.selectedNodes().map((x) => x.id));\r\n if (this.onChange) this.onChange(this.value());\r\n this.onSelectAll.emit(this.isSelectAll());\r\n }\r\n\r\n onLoadMore() {\r\n this.loadMoreIndex.update((x) => x + 1);\r\n this.setData();\r\n }\r\n\r\n trackByNode(_index: number, item: XListNode) {\r\n return item.id;\r\n }\r\n\r\n setUnActive(num: number) {\r\n if (num > -1) {\r\n this.nodes()[num].active = false;\r\n }\r\n }\r\n}\r\n","<div class=\"x-list\" [class.x-list-portal]=\"inPortal()\" [ngClass]=\"classMap()\">\r\n @if (header()) {\r\n <div #headerRef class=\"x-list-header\" *xOutlet=\"header()\">{{ header() }}</div>\r\n }\r\n @if (selectAll() && multiple() === 0) {\r\n <div #selectAllRef class=\"x-list-select-all\">\r\n <x-list-option\r\n [size]=\"size()\"\r\n [label]=\"getSelectAllText()\"\r\n [nodeStyle]=\"nodeStyle()\"\r\n [checked]=\"true\"\r\n [selected]=\"isSelectAll()\"\r\n (click)=\"onSelectAllNodes()\"\r\n ></x-list-option>\r\n </div>\r\n }\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n class=\"x-list-content\"\r\n [style.height.px]=\"getVirtualScrollHeight()\"\r\n [hidden]=\"isEmpty()\"\r\n >\r\n <x-list-option\r\n *cdkVirtualFor=\"let node of nodes(); trackBy: trackByNode\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [nodeStyle]=\"nodeStyle()\"\r\n [groupTpl]=\"groupTpl()\"\r\n [selected]=\"node.selected!\"\r\n [groupable]=\"node.groupable!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [divided]=\"node.divided!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n tabindex=\"-1\"\r\n ></x-list-option>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"listTpl; context: { $list: nodes() }\"></ng-container>\r\n }\r\n\r\n @if (loadMore() && !isEmpty()) {\r\n <div #loadMoreRef class=\"x-list-load-more\">\r\n <x-list-option\r\n [size]=\"size()\"\r\n [nodeTpl]=\"loadMoreTpl\"\r\n [nodeStyle]=\"nodeStyle()\"\r\n (click)=\"onLoadMore()\"\r\n ></x-list-option>\r\n </div>\r\n <ng-template #loadMoreTpl>\r\n @if (icon() && iconSpin()) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\"></x-icon>\r\n }\r\n {{ icon() && iconSpin() ? getLoadingMoreText() : getLoadMoreText() }}</ng-template\r\n >\r\n }\r\n @if (isEmpty()) {\r\n <x-empty></x-empty>\r\n }\r\n @if (footer()) {\r\n <div #footerRef class=\"x-list-footer\" *xOutlet=\"footer()\">{{ footer() }}</div>\r\n }\r\n</div>\r\n\r\n<ng-template #listTpl let-list=\"$list\">\r\n <div\r\n class=\"x-list-content\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"list\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of list; track node.id) {\r\n <x-list-option\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled || node.groupable\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [groupTpl]=\"groupTpl()\"\r\n [nodeStyle]=\"nodeStyle()\"\r\n [selected]=\"node.selected!\"\r\n [groupable]=\"node.groupable!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [divided]=\"node.divided!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n tabindex=\"-1\"\r\n ></x-list-option>\r\n }\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { XListComponent } from './list.component';\r\nimport { XListOptionComponent } from './list-option.component';\r\nimport { XListDropGroup } from './list-drop-group.directive';\r\n\r\n@NgModule({\r\n exports: [XListComponent, XListDropGroup, XListOptionComponent],\r\n imports: [XListComponent, XListDropGroup, XListOptionComponent]\r\n})\r\nexport class XListModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ class XLoadingProperty extends XPropertyFunction(X_LOADING_CONFIG_NAME) {
23
23
  * @zh_CN 显示 loading
24
24
  * @en_US Show loading
25
25
  */
26
- this.loading = input(false, ...(ngDevMode ? [{ debugName: "loading", transform: XToBoolean, alias: 'x-loading' }] : [{ transform: XToBoolean, alias: 'x-loading' }]));
26
+ this.loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : {}), transform: XToBoolean, alias: 'x-loading' });
27
27
  /**
28
28
  * @zh_CN Loading 类型
29
29
  * @en_US Loading type
@@ -33,7 +33,7 @@ class XLoadingProperty extends XPropertyFunction(X_LOADING_CONFIG_NAME) {
33
33
  * @zh_CN 层级
34
34
  * @en_US z-index
35
35
  */
36
- this.zIndex = input(this.config?.zIndex ?? 10, ...(ngDevMode ? [{ debugName: "zIndex", transform: XToNumber }] : [{ transform: XToNumber }]));
36
+ this.zIndex = input(this.config?.zIndex ?? 10, { ...(ngDevMode ? { debugName: "zIndex" } : {}), transform: XToNumber });
37
37
  /**
38
38
  * @zh_CN 尺寸
39
39
  * @en_US Size
@@ -63,7 +63,7 @@ class XLoadingProperty extends XPropertyFunction(X_LOADING_CONFIG_NAME) {
63
63
  * @zh_CN 全屏显示
64
64
  * @en_US Full-screen display
65
65
  */
66
- this.fullScreen = input(false, ...(ngDevMode ? [{ debugName: "fullScreen", transform: XToBoolean }] : [{ transform: XToBoolean }]));
66
+ this.fullScreen = input(false, { ...(ngDevMode ? { debugName: "fullScreen" } : {}), transform: XToBoolean });
67
67
  /**
68
68
  * @zh_CN 圆角覆盖显示
69
69
  * @en_US Rounded corner coverage display
@@ -78,12 +78,12 @@ class XLoadingProperty extends XPropertyFunction(X_LOADING_CONFIG_NAME) {
78
78
  * @zh_CN 行内显示
79
79
  * @en_US Inline display
80
80
  */
81
- this.inline = input(false, ...(ngDevMode ? [{ debugName: "inline", transform: XToBoolean }] : [{ transform: XToBoolean }]));
81
+ this.inline = input(false, { ...(ngDevMode ? { debugName: "inline" } : {}), transform: XToBoolean });
82
82
  }
83
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: XLoadingProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
84
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.0", type: XLoadingProperty, isStandalone: true, selector: "x-loading-property", inputs: { loading: { classPropertyName: "loading", publicName: "x-loading", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, customTpl: { classPropertyName: "customTpl", publicName: "customTpl", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, fullScreen: { classPropertyName: "fullScreen", publicName: "fullScreen", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null }, inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
83
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XLoadingProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
84
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: XLoadingProperty, isStandalone: true, selector: "x-loading-property", inputs: { loading: { classPropertyName: "loading", publicName: "x-loading", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, customTpl: { classPropertyName: "customTpl", publicName: "customTpl", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, fullScreen: { classPropertyName: "fullScreen", publicName: "fullScreen", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null }, inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
85
85
  }
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: XLoadingProperty, decorators: [{
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XLoadingProperty, decorators: [{
87
87
  type: Component,
88
88
  args: [{ selector: `${XLoadingPrefix}-property`, template: '' }]
89
89
  }], propDecorators: { loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "x-loading", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], zIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "zIndex", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], customTpl: [{ type: i0.Input, args: [{ isSignal: true, alias: "customTpl", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], fullScreen: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullScreen", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], background: [{ type: i0.Input, args: [{ isSignal: true, alias: "background", required: false }] }], inline: [{ type: i0.Input, args: [{ isSignal: true, alias: "inline", required: false }] }] } });
@@ -146,10 +146,10 @@ class XLoadingComponent extends XLoadingProperty {
146
146
  this.portalRef.overlayRef.detach();
147
147
  }
148
148
  }
149
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: XLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
150
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: XLoadingComponent, isStandalone: true, selector: "x-loading, [x-loading]", host: { properties: { "class.x-loading-parent": "this.getLoading" } }, viewQueries: [{ propertyName: "loadingTpl", first: true, predicate: ["loadingTpl"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\r\n\r\n@if (!fullScreen()) {\r\n <ng-container *ngTemplateOutlet=\"loadingTpl\"></ng-container>\r\n}\r\n\r\n<ng-template #loadingTpl>\r\n @if (loading()) {\r\n <div\r\n #loading\r\n class=\"x-loading\"\r\n [ngClass]=\"classMap()\"\r\n [style.background]=\"background()\"\r\n [style.zIndex]=\"zIndex()\"\r\n [class.x-loading-radius]=\"isRadius()\"\r\n [class.x-loading-top-left-radius]=\"includeRadius('top-start')\"\r\n [class.x-loading-top-right-radius]=\"includeRadius('top-end')\"\r\n [class.x-loading-bottom-left-radius]=\"includeRadius('bottom-start')\"\r\n [class.x-loading-bottom-left-radius]=\"includeRadius('bottom-end')\"\r\n [class.x-loading-inline]=\"inline()\"\r\n >\r\n <div class=\"x-loading-inner\" [style.color]=\"color()\">\r\n @if (customTpl()) {\r\n <ng-template *ngTemplateOutlet=\"customTpl()!\"></ng-template>\r\n } @else {\r\n @if (icon()) {\r\n <div class=\"x-loading-icon\" [style.font-size.px]=\"sizeNumber()\">\r\n <x-icon [type]=\"icon()!\"></x-icon>\r\n </div>\r\n } @else {\r\n @switch (type()) {\r\n @case ('circular') {\r\n <ng-container *ngTemplateOutlet=\"circularTpl\"></ng-container>\r\n }\r\n @case ('spinner') {\r\n <ng-container *ngTemplateOutlet=\"spinnerTpl\"></ng-container>\r\n }\r\n @case ('ripple') {\r\n <ng-container *ngTemplateOutlet=\"rippleTpl\"></ng-container>\r\n }\r\n @case ('dual-ring') {\r\n <ng-container *ngTemplateOutlet=\"dualRingTpl\"></ng-container>\r\n }\r\n @case ('dual-ball') {\r\n <ng-container *ngTemplateOutlet=\"dualBallTpl\"></ng-container>\r\n }\r\n @case ('bars') {\r\n <ng-container *ngTemplateOutlet=\"barsTpl\"></ng-container>\r\n }\r\n @default {\r\n <ng-container *ngTemplateOutlet=\"circularTpl\"></ng-container>\r\n }\r\n }\r\n }\r\n }\r\n\r\n <div class=\"x-loading-text\">\r\n <ng-container *xOutlet=\"text()\">{{ text() }}</ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #circularTpl>\r\n <svg\r\n class=\"x-loading-circular\"\r\n [style.width.px]=\"sizeNumber()\"\r\n [style.height.px]=\"sizeNumber()\"\r\n viewBox=\"25 25 50 50\"\r\n >\r\n <circle class=\"x-loading-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #spinnerTpl>\r\n <svg class=\"x-loading-spinner\" [style.width.px]=\"sizeNumber()\" [style.height.px]=\"sizeNumber()\" viewBox=\"25 25 50 50\">\r\n <g>\r\n <g transform=\"rotate(0 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.9166666666666666s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(30 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.8333333333333334s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(60 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.75s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(90 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.6666666666666666s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(120 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.5833333333333334s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(150 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.5s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(180 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.4166666666666667s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(210 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.3333333333333333s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(240 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.25s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(270 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.16666666666666666s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(300 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.08333333333333333s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(330 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"0s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g></g>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n<ng-template #rippleTpl>\r\n <svg class=\"x-loading-ripple\" [style.width.px]=\"sizeNumber()\" [style.height.px]=\"sizeNumber()\" viewBox=\"0 0 100 100\">\r\n <g>\r\n <circle stroke-width=\"6\" stroke=\"currentColor\" fill=\"none\" r=\"0\" cy=\"50\" cx=\"50\">\r\n <animate\r\n begin=\"0s\"\r\n calcMode=\"spline\"\r\n keySplines=\"0 0.2 0.8 1\"\r\n keyTimes=\"0;1\"\r\n values=\"0;40\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"r\"\r\n ></animate>\r\n <animate\r\n begin=\"0s\"\r\n calcMode=\"spline\"\r\n keySplines=\"0.2 0 0.8 1\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </circle>\r\n <circle stroke-width=\"6\" stroke=\"currentColor\" fill=\"none\" r=\"0\" cy=\"50\" cx=\"50\">\r\n <animate\r\n begin=\"-0.5s\"\r\n calcMode=\"spline\"\r\n keySplines=\"0 0.2 0.8 1\"\r\n keyTimes=\"0;1\"\r\n values=\"0;40\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"r\"\r\n ></animate>\r\n <animate\r\n begin=\"-0.5s\"\r\n calcMode=\"spline\"\r\n keySplines=\"0.2 0 0.8 1\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </circle>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n<ng-template #dualRingTpl>\r\n <svg\r\n class=\"x-loading-dual-ring\"\r\n [style.width.px]=\"sizeNumber()\"\r\n [style.height.px]=\"sizeNumber()\"\r\n viewBox=\"0 0 100 100\"\r\n >\r\n <g>\r\n <circle\r\n stroke-linecap=\"round\"\r\n fill=\"none\"\r\n stroke-dasharray=\"50.26548245743669 50.26548245743669\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"8\"\r\n r=\"32\"\r\n cy=\"50\"\r\n cx=\"50\"\r\n >\r\n <animateTransform\r\n values=\"0 50 50;360 50 50\"\r\n keyTimes=\"0;1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n type=\"rotate\"\r\n attributeName=\"transform\"\r\n ></animateTransform>\r\n </circle>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n<ng-template #dualBallTpl>\r\n <svg\r\n class=\"x-loading-dual-ball\"\r\n [style.width.px]=\"sizeNumber()\"\r\n [style.height.px]=\"sizeNumber()\"\r\n viewBox=\"0 0 100 100\"\r\n >\r\n <g>\r\n <circle r=\"20\" fill=\"currentColor\" cy=\"50\" cx=\"30\">\r\n <animate\r\n begin=\"-0.5s\"\r\n values=\"30;70;30\"\r\n keyTimes=\"0;0.5;1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"cx\"\r\n ></animate>\r\n </circle>\r\n <circle r=\"20\" fill=\"var(--x-primary-500)\" cy=\"50\" cx=\"70\">\r\n <animate\r\n begin=\"0s\"\r\n values=\"30;70;30\"\r\n keyTimes=\"0;0.5;1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"cx\"\r\n ></animate>\r\n </circle>\r\n <circle r=\"20\" fill=\"currentColor\" cy=\"50\" cx=\"30\">\r\n <animate\r\n begin=\"-0.5s\"\r\n values=\"30;70;30\"\r\n keyTimes=\"0;0.5;1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"cx\"\r\n ></animate>\r\n <animate\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n keyTimes=\"0;0.499;0.5;1\"\r\n calcMode=\"discrete\"\r\n values=\"0;0;1;1\"\r\n attributeName=\"fill-opacity\"\r\n ></animate>\r\n </circle>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n<ng-template #barsTpl>\r\n <svg class=\"x-loading-bars\" [style.width.px]=\"sizeNumber()\" [style.height.px]=\"sizeNumber()\" viewBox=\"0 0 100 100\">\r\n <g>\r\n <rect fill=\"currentColor\" height=\"40\" width=\"10\" y=\"30\" x=\"15\">\r\n <animate\r\n begin=\"-0.6\"\r\n values=\"1;0.2;1\"\r\n keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\r\n keyTimes=\"0;0.5;1\"\r\n calcMode=\"spline\"\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n <rect fill=\"var(--x-primary-200)\" height=\"40\" width=\"10\" y=\"30\" x=\"35\">\r\n <animate\r\n begin=\"-0.4\"\r\n values=\"1;0.2;1\"\r\n keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\r\n keyTimes=\"0;0.5;1\"\r\n calcMode=\"spline\"\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n <rect fill=\"var(--x-primary-400)\" height=\"40\" width=\"10\" y=\"30\" x=\"55\">\r\n <animate\r\n begin=\"-0.2\"\r\n values=\"1;0.2;1\"\r\n keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\r\n keyTimes=\"0;0.5;1\"\r\n calcMode=\"spline\"\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n <rect fill=\"var(--x-primary-600)\" height=\"40\" width=\"10\" y=\"30\" x=\"75\">\r\n <animate\r\n begin=\"-1\"\r\n values=\"1;0.2;1\"\r\n keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\r\n keyTimes=\"0;0.5;1\"\r\n calcMode=\"spline\"\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n", styles: ["@keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-2.5rem}to{stroke-dasharray:90,150;stroke-dashoffset:-7.5rem}}.x-loading-parent{position:relative}.x-loading{margin:0;padding:0}.x-loading{position:absolute;background-color:var(--x-background);opacity:.85;margin:0;inset:0;display:flex;justify-content:center;align-items:center}.x-loading-inline{position:initial}.x-loading-inner{color:var(--x-primary);text-align:center;line-height:1}.x-loading-circular{animation:loading-rotate 2s linear infinite}.x-loading-icon{animation:loading-rotate 2s linear infinite;display:inline-flex}.x-loading-path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:4;stroke:var(--x-primary);stroke-linecap:round}.x-loading-radius{border-radius:var(--x-border-radius)}.x-loading-top-left-radius{border-top-left-radius:var(--x-border-radius)}.x-loading-top-right-radius{border-top-right-radius:var(--x-border-radius)}.x-loading-bottom-left-radius{border-bottom-left-radius:var(--x-border-radius)}.x-loading-bottom-right-radius{border-bottom-right-radius:var(--x-border-radius)}.x-loading-big .x-loading-circular,.x-loading-big .x-loading-spinner{height:2.175rem;width:2.175rem}.x-loading-big .x-loading-dual-ring,.x-loading-big .x-loading-dual-ball,.x-loading-big .x-loading-bars{height:2.61rem;width:2.61rem}.x-loading-big .x-loading-ripple{height:3.2625rem;width:3.2625rem}.x-loading-big .x-loading-icon{font-size:2.175rem}.x-loading-large .x-loading-circular,.x-loading-large .x-loading-spinner{height:1.875rem;width:1.875rem}.x-loading-large .x-loading-dual-ring,.x-loading-large .x-loading-dual-ball,.x-loading-large .x-loading-bars{height:2.25rem;width:2.25rem}.x-loading-large .x-loading-ripple{height:2.8125rem;width:2.8125rem}.x-loading-large .x-loading-icon{font-size:1.875rem}.x-loading-medium .x-loading-circular,.x-loading-medium .x-loading-spinner{height:1.675rem;width:1.675rem}.x-loading-medium .x-loading-dual-ring,.x-loading-medium .x-loading-dual-ball,.x-loading-medium .x-loading-bars{height:2.01rem;width:2.01rem}.x-loading-medium .x-loading-ripple{height:2.5125rem;width:2.5125rem}.x-loading-medium .x-loading-icon{font-size:1.675rem}.x-loading-small .x-loading-circular,.x-loading-small .x-loading-spinner{height:1.5rem;width:1.5rem}.x-loading-small .x-loading-dual-ring,.x-loading-small .x-loading-dual-ball,.x-loading-small .x-loading-bars{height:1.8rem;width:1.8rem}.x-loading-small .x-loading-ripple{height:2.25rem;width:2.25rem}.x-loading-small .x-loading-icon{font-size:1.5rem}.x-loading-mini .x-loading-circular,.x-loading-mini .x-loading-spinner{height:1.375rem;width:1.375rem}.x-loading-mini .x-loading-dual-ring,.x-loading-mini .x-loading-dual-ball,.x-loading-mini .x-loading-bars{height:1.65rem;width:1.65rem}.x-loading-mini .x-loading-ripple{height:2.0625rem;width:2.0625rem}.x-loading-mini .x-loading-icon{font-size:1.375rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
149
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
150
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: XLoadingComponent, isStandalone: true, selector: "x-loading, [x-loading]", host: { properties: { "class.x-loading-parent": "this.getLoading" } }, viewQueries: [{ propertyName: "loadingTpl", first: true, predicate: ["loadingTpl"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\r\n\r\n@if (!fullScreen()) {\r\n <ng-container *ngTemplateOutlet=\"loadingTpl\"></ng-container>\r\n}\r\n\r\n<ng-template #loadingTpl>\r\n @if (loading()) {\r\n <div\r\n #loading\r\n class=\"x-loading\"\r\n [ngClass]=\"classMap()\"\r\n [style.background]=\"background()\"\r\n [style.zIndex]=\"zIndex()\"\r\n [class.x-loading-radius]=\"isRadius()\"\r\n [class.x-loading-top-left-radius]=\"includeRadius('top-start')\"\r\n [class.x-loading-top-right-radius]=\"includeRadius('top-end')\"\r\n [class.x-loading-bottom-left-radius]=\"includeRadius('bottom-start')\"\r\n [class.x-loading-bottom-left-radius]=\"includeRadius('bottom-end')\"\r\n [class.x-loading-inline]=\"inline()\"\r\n >\r\n <div class=\"x-loading-inner\" [style.color]=\"color()\">\r\n @if (customTpl()) {\r\n <ng-template *ngTemplateOutlet=\"customTpl()!\"></ng-template>\r\n } @else {\r\n @if (icon()) {\r\n <div class=\"x-loading-icon\" [style.font-size.px]=\"sizeNumber()\">\r\n <x-icon [type]=\"icon()!\"></x-icon>\r\n </div>\r\n } @else {\r\n @switch (type()) {\r\n @case ('circular') {\r\n <ng-container *ngTemplateOutlet=\"circularTpl\"></ng-container>\r\n }\r\n @case ('spinner') {\r\n <ng-container *ngTemplateOutlet=\"spinnerTpl\"></ng-container>\r\n }\r\n @case ('ripple') {\r\n <ng-container *ngTemplateOutlet=\"rippleTpl\"></ng-container>\r\n }\r\n @case ('dual-ring') {\r\n <ng-container *ngTemplateOutlet=\"dualRingTpl\"></ng-container>\r\n }\r\n @case ('dual-ball') {\r\n <ng-container *ngTemplateOutlet=\"dualBallTpl\"></ng-container>\r\n }\r\n @case ('bars') {\r\n <ng-container *ngTemplateOutlet=\"barsTpl\"></ng-container>\r\n }\r\n @default {\r\n <ng-container *ngTemplateOutlet=\"circularTpl\"></ng-container>\r\n }\r\n }\r\n }\r\n }\r\n\r\n <div class=\"x-loading-text\">\r\n <ng-container *xOutlet=\"text()\">{{ text() }}</ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #circularTpl>\r\n <svg\r\n class=\"x-loading-circular\"\r\n [style.width.px]=\"sizeNumber()\"\r\n [style.height.px]=\"sizeNumber()\"\r\n viewBox=\"25 25 50 50\"\r\n >\r\n <circle class=\"x-loading-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #spinnerTpl>\r\n <svg class=\"x-loading-spinner\" [style.width.px]=\"sizeNumber()\" [style.height.px]=\"sizeNumber()\" viewBox=\"25 25 50 50\">\r\n <g>\r\n <g transform=\"rotate(0 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.9166666666666666s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(30 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.8333333333333334s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(60 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.75s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(90 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.6666666666666666s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(120 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.5833333333333334s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(150 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.5s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(180 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.4166666666666667s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(210 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.3333333333333333s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(240 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.25s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(270 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.16666666666666666s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(300 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.08333333333333333s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(330 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"0s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g></g>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n<ng-template #rippleTpl>\r\n <svg class=\"x-loading-ripple\" [style.width.px]=\"sizeNumber()\" [style.height.px]=\"sizeNumber()\" viewBox=\"0 0 100 100\">\r\n <g>\r\n <circle stroke-width=\"6\" stroke=\"currentColor\" fill=\"none\" r=\"0\" cy=\"50\" cx=\"50\">\r\n <animate\r\n begin=\"0s\"\r\n calcMode=\"spline\"\r\n keySplines=\"0 0.2 0.8 1\"\r\n keyTimes=\"0;1\"\r\n values=\"0;40\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"r\"\r\n ></animate>\r\n <animate\r\n begin=\"0s\"\r\n calcMode=\"spline\"\r\n keySplines=\"0.2 0 0.8 1\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </circle>\r\n <circle stroke-width=\"6\" stroke=\"currentColor\" fill=\"none\" r=\"0\" cy=\"50\" cx=\"50\">\r\n <animate\r\n begin=\"-0.5s\"\r\n calcMode=\"spline\"\r\n keySplines=\"0 0.2 0.8 1\"\r\n keyTimes=\"0;1\"\r\n values=\"0;40\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"r\"\r\n ></animate>\r\n <animate\r\n begin=\"-0.5s\"\r\n calcMode=\"spline\"\r\n keySplines=\"0.2 0 0.8 1\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </circle>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n<ng-template #dualRingTpl>\r\n <svg\r\n class=\"x-loading-dual-ring\"\r\n [style.width.px]=\"sizeNumber()\"\r\n [style.height.px]=\"sizeNumber()\"\r\n viewBox=\"0 0 100 100\"\r\n >\r\n <g>\r\n <circle\r\n stroke-linecap=\"round\"\r\n fill=\"none\"\r\n stroke-dasharray=\"50.26548245743669 50.26548245743669\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"8\"\r\n r=\"32\"\r\n cy=\"50\"\r\n cx=\"50\"\r\n >\r\n <animateTransform\r\n values=\"0 50 50;360 50 50\"\r\n keyTimes=\"0;1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n type=\"rotate\"\r\n attributeName=\"transform\"\r\n ></animateTransform>\r\n </circle>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n<ng-template #dualBallTpl>\r\n <svg\r\n class=\"x-loading-dual-ball\"\r\n [style.width.px]=\"sizeNumber()\"\r\n [style.height.px]=\"sizeNumber()\"\r\n viewBox=\"0 0 100 100\"\r\n >\r\n <g>\r\n <circle r=\"20\" fill=\"currentColor\" cy=\"50\" cx=\"30\">\r\n <animate\r\n begin=\"-0.5s\"\r\n values=\"30;70;30\"\r\n keyTimes=\"0;0.5;1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"cx\"\r\n ></animate>\r\n </circle>\r\n <circle r=\"20\" fill=\"var(--x-primary-500)\" cy=\"50\" cx=\"70\">\r\n <animate\r\n begin=\"0s\"\r\n values=\"30;70;30\"\r\n keyTimes=\"0;0.5;1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"cx\"\r\n ></animate>\r\n </circle>\r\n <circle r=\"20\" fill=\"currentColor\" cy=\"50\" cx=\"30\">\r\n <animate\r\n begin=\"-0.5s\"\r\n values=\"30;70;30\"\r\n keyTimes=\"0;0.5;1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"cx\"\r\n ></animate>\r\n <animate\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n keyTimes=\"0;0.499;0.5;1\"\r\n calcMode=\"discrete\"\r\n values=\"0;0;1;1\"\r\n attributeName=\"fill-opacity\"\r\n ></animate>\r\n </circle>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n<ng-template #barsTpl>\r\n <svg class=\"x-loading-bars\" [style.width.px]=\"sizeNumber()\" [style.height.px]=\"sizeNumber()\" viewBox=\"0 0 100 100\">\r\n <g>\r\n <rect fill=\"currentColor\" height=\"40\" width=\"10\" y=\"30\" x=\"15\">\r\n <animate\r\n begin=\"-0.6\"\r\n values=\"1;0.2;1\"\r\n keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\r\n keyTimes=\"0;0.5;1\"\r\n calcMode=\"spline\"\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n <rect fill=\"var(--x-primary-200)\" height=\"40\" width=\"10\" y=\"30\" x=\"35\">\r\n <animate\r\n begin=\"-0.4\"\r\n values=\"1;0.2;1\"\r\n keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\r\n keyTimes=\"0;0.5;1\"\r\n calcMode=\"spline\"\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n <rect fill=\"var(--x-primary-400)\" height=\"40\" width=\"10\" y=\"30\" x=\"55\">\r\n <animate\r\n begin=\"-0.2\"\r\n values=\"1;0.2;1\"\r\n keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\r\n keyTimes=\"0;0.5;1\"\r\n calcMode=\"spline\"\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n <rect fill=\"var(--x-primary-600)\" height=\"40\" width=\"10\" y=\"30\" x=\"75\">\r\n <animate\r\n begin=\"-1\"\r\n values=\"1;0.2;1\"\r\n keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\r\n keyTimes=\"0;0.5;1\"\r\n calcMode=\"spline\"\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n", styles: ["@keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-2.5rem}to{stroke-dasharray:90,150;stroke-dashoffset:-7.5rem}}.x-loading-parent{position:relative}.x-loading{margin:0;padding:0}.x-loading{position:absolute;background-color:var(--x-background);opacity:.85;margin:0;inset:0;display:flex;justify-content:center;align-items:center}.x-loading-inline{position:initial}.x-loading-inner{color:var(--x-primary);text-align:center;line-height:1}.x-loading-circular{animation:loading-rotate 2s linear infinite}.x-loading-icon{animation:loading-rotate 2s linear infinite;display:inline-flex}.x-loading-path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:4;stroke:var(--x-primary);stroke-linecap:round}.x-loading-radius{border-radius:var(--x-border-radius)}.x-loading-top-left-radius{border-top-left-radius:var(--x-border-radius)}.x-loading-top-right-radius{border-top-right-radius:var(--x-border-radius)}.x-loading-bottom-left-radius{border-bottom-left-radius:var(--x-border-radius)}.x-loading-bottom-right-radius{border-bottom-right-radius:var(--x-border-radius)}.x-loading-big .x-loading-circular,.x-loading-big .x-loading-spinner{height:2.175rem;width:2.175rem}.x-loading-big .x-loading-dual-ring,.x-loading-big .x-loading-dual-ball,.x-loading-big .x-loading-bars{height:2.61rem;width:2.61rem}.x-loading-big .x-loading-ripple{height:3.2625rem;width:3.2625rem}.x-loading-big .x-loading-icon{font-size:2.175rem}.x-loading-large .x-loading-circular,.x-loading-large .x-loading-spinner{height:1.875rem;width:1.875rem}.x-loading-large .x-loading-dual-ring,.x-loading-large .x-loading-dual-ball,.x-loading-large .x-loading-bars{height:2.25rem;width:2.25rem}.x-loading-large .x-loading-ripple{height:2.8125rem;width:2.8125rem}.x-loading-large .x-loading-icon{font-size:1.875rem}.x-loading-medium .x-loading-circular,.x-loading-medium .x-loading-spinner{height:1.675rem;width:1.675rem}.x-loading-medium .x-loading-dual-ring,.x-loading-medium .x-loading-dual-ball,.x-loading-medium .x-loading-bars{height:2.01rem;width:2.01rem}.x-loading-medium .x-loading-ripple{height:2.5125rem;width:2.5125rem}.x-loading-medium .x-loading-icon{font-size:1.675rem}.x-loading-small .x-loading-circular,.x-loading-small .x-loading-spinner{height:1.5rem;width:1.5rem}.x-loading-small .x-loading-dual-ring,.x-loading-small .x-loading-dual-ball,.x-loading-small .x-loading-bars{height:1.8rem;width:1.8rem}.x-loading-small .x-loading-ripple{height:2.25rem;width:2.25rem}.x-loading-small .x-loading-icon{font-size:1.5rem}.x-loading-mini .x-loading-circular,.x-loading-mini .x-loading-spinner{height:1.375rem;width:1.375rem}.x-loading-mini .x-loading-dual-ring,.x-loading-mini .x-loading-dual-ball,.x-loading-mini .x-loading-bars{height:1.65rem;width:1.65rem}.x-loading-mini .x-loading-ripple{height:2.0625rem;width:2.0625rem}.x-loading-mini .x-loading-icon{font-size:1.375rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
151
151
  }
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: XLoadingComponent, decorators: [{
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XLoadingComponent, decorators: [{
153
153
  type: Component,
154
154
  args: [{ selector: `${XLoadingPrefix}, [${XLoadingPrefix}]`, imports: [NgClass, NgTemplateOutlet, XIconComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\r\n\r\n@if (!fullScreen()) {\r\n <ng-container *ngTemplateOutlet=\"loadingTpl\"></ng-container>\r\n}\r\n\r\n<ng-template #loadingTpl>\r\n @if (loading()) {\r\n <div\r\n #loading\r\n class=\"x-loading\"\r\n [ngClass]=\"classMap()\"\r\n [style.background]=\"background()\"\r\n [style.zIndex]=\"zIndex()\"\r\n [class.x-loading-radius]=\"isRadius()\"\r\n [class.x-loading-top-left-radius]=\"includeRadius('top-start')\"\r\n [class.x-loading-top-right-radius]=\"includeRadius('top-end')\"\r\n [class.x-loading-bottom-left-radius]=\"includeRadius('bottom-start')\"\r\n [class.x-loading-bottom-left-radius]=\"includeRadius('bottom-end')\"\r\n [class.x-loading-inline]=\"inline()\"\r\n >\r\n <div class=\"x-loading-inner\" [style.color]=\"color()\">\r\n @if (customTpl()) {\r\n <ng-template *ngTemplateOutlet=\"customTpl()!\"></ng-template>\r\n } @else {\r\n @if (icon()) {\r\n <div class=\"x-loading-icon\" [style.font-size.px]=\"sizeNumber()\">\r\n <x-icon [type]=\"icon()!\"></x-icon>\r\n </div>\r\n } @else {\r\n @switch (type()) {\r\n @case ('circular') {\r\n <ng-container *ngTemplateOutlet=\"circularTpl\"></ng-container>\r\n }\r\n @case ('spinner') {\r\n <ng-container *ngTemplateOutlet=\"spinnerTpl\"></ng-container>\r\n }\r\n @case ('ripple') {\r\n <ng-container *ngTemplateOutlet=\"rippleTpl\"></ng-container>\r\n }\r\n @case ('dual-ring') {\r\n <ng-container *ngTemplateOutlet=\"dualRingTpl\"></ng-container>\r\n }\r\n @case ('dual-ball') {\r\n <ng-container *ngTemplateOutlet=\"dualBallTpl\"></ng-container>\r\n }\r\n @case ('bars') {\r\n <ng-container *ngTemplateOutlet=\"barsTpl\"></ng-container>\r\n }\r\n @default {\r\n <ng-container *ngTemplateOutlet=\"circularTpl\"></ng-container>\r\n }\r\n }\r\n }\r\n }\r\n\r\n <div class=\"x-loading-text\">\r\n <ng-container *xOutlet=\"text()\">{{ text() }}</ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #circularTpl>\r\n <svg\r\n class=\"x-loading-circular\"\r\n [style.width.px]=\"sizeNumber()\"\r\n [style.height.px]=\"sizeNumber()\"\r\n viewBox=\"25 25 50 50\"\r\n >\r\n <circle class=\"x-loading-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #spinnerTpl>\r\n <svg class=\"x-loading-spinner\" [style.width.px]=\"sizeNumber()\" [style.height.px]=\"sizeNumber()\" viewBox=\"25 25 50 50\">\r\n <g>\r\n <g transform=\"rotate(0 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.9166666666666666s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(30 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.8333333333333334s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(60 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.75s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(90 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.6666666666666666s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(120 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.5833333333333334s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(150 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.5s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(180 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.4166666666666667s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(210 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.3333333333333333s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(240 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.25s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(270 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.16666666666666666s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(300 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"-0.08333333333333333s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(330 50 50)\">\r\n <rect fill=\"currentColor\" height=\"11\" width=\"6\" ry=\"0.66\" rx=\"0.66\" y=\"25.5\" x=\"47\">\r\n <animate\r\n repeatCount=\"indefinite\"\r\n begin=\"0s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n <g></g>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n<ng-template #rippleTpl>\r\n <svg class=\"x-loading-ripple\" [style.width.px]=\"sizeNumber()\" [style.height.px]=\"sizeNumber()\" viewBox=\"0 0 100 100\">\r\n <g>\r\n <circle stroke-width=\"6\" stroke=\"currentColor\" fill=\"none\" r=\"0\" cy=\"50\" cx=\"50\">\r\n <animate\r\n begin=\"0s\"\r\n calcMode=\"spline\"\r\n keySplines=\"0 0.2 0.8 1\"\r\n keyTimes=\"0;1\"\r\n values=\"0;40\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"r\"\r\n ></animate>\r\n <animate\r\n begin=\"0s\"\r\n calcMode=\"spline\"\r\n keySplines=\"0.2 0 0.8 1\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </circle>\r\n <circle stroke-width=\"6\" stroke=\"currentColor\" fill=\"none\" r=\"0\" cy=\"50\" cx=\"50\">\r\n <animate\r\n begin=\"-0.5s\"\r\n calcMode=\"spline\"\r\n keySplines=\"0 0.2 0.8 1\"\r\n keyTimes=\"0;1\"\r\n values=\"0;40\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"r\"\r\n ></animate>\r\n <animate\r\n begin=\"-0.5s\"\r\n calcMode=\"spline\"\r\n keySplines=\"0.2 0 0.8 1\"\r\n keyTimes=\"0;1\"\r\n values=\"1;0\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </circle>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n<ng-template #dualRingTpl>\r\n <svg\r\n class=\"x-loading-dual-ring\"\r\n [style.width.px]=\"sizeNumber()\"\r\n [style.height.px]=\"sizeNumber()\"\r\n viewBox=\"0 0 100 100\"\r\n >\r\n <g>\r\n <circle\r\n stroke-linecap=\"round\"\r\n fill=\"none\"\r\n stroke-dasharray=\"50.26548245743669 50.26548245743669\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"8\"\r\n r=\"32\"\r\n cy=\"50\"\r\n cx=\"50\"\r\n >\r\n <animateTransform\r\n values=\"0 50 50;360 50 50\"\r\n keyTimes=\"0;1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n type=\"rotate\"\r\n attributeName=\"transform\"\r\n ></animateTransform>\r\n </circle>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n<ng-template #dualBallTpl>\r\n <svg\r\n class=\"x-loading-dual-ball\"\r\n [style.width.px]=\"sizeNumber()\"\r\n [style.height.px]=\"sizeNumber()\"\r\n viewBox=\"0 0 100 100\"\r\n >\r\n <g>\r\n <circle r=\"20\" fill=\"currentColor\" cy=\"50\" cx=\"30\">\r\n <animate\r\n begin=\"-0.5s\"\r\n values=\"30;70;30\"\r\n keyTimes=\"0;0.5;1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"cx\"\r\n ></animate>\r\n </circle>\r\n <circle r=\"20\" fill=\"var(--x-primary-500)\" cy=\"50\" cx=\"70\">\r\n <animate\r\n begin=\"0s\"\r\n values=\"30;70;30\"\r\n keyTimes=\"0;0.5;1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"cx\"\r\n ></animate>\r\n </circle>\r\n <circle r=\"20\" fill=\"currentColor\" cy=\"50\" cx=\"30\">\r\n <animate\r\n begin=\"-0.5s\"\r\n values=\"30;70;30\"\r\n keyTimes=\"0;0.5;1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n attributeName=\"cx\"\r\n ></animate>\r\n <animate\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n keyTimes=\"0;0.499;0.5;1\"\r\n calcMode=\"discrete\"\r\n values=\"0;0;1;1\"\r\n attributeName=\"fill-opacity\"\r\n ></animate>\r\n </circle>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n<ng-template #barsTpl>\r\n <svg class=\"x-loading-bars\" [style.width.px]=\"sizeNumber()\" [style.height.px]=\"sizeNumber()\" viewBox=\"0 0 100 100\">\r\n <g>\r\n <rect fill=\"currentColor\" height=\"40\" width=\"10\" y=\"30\" x=\"15\">\r\n <animate\r\n begin=\"-0.6\"\r\n values=\"1;0.2;1\"\r\n keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\r\n keyTimes=\"0;0.5;1\"\r\n calcMode=\"spline\"\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n <rect fill=\"var(--x-primary-200)\" height=\"40\" width=\"10\" y=\"30\" x=\"35\">\r\n <animate\r\n begin=\"-0.4\"\r\n values=\"1;0.2;1\"\r\n keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\r\n keyTimes=\"0;0.5;1\"\r\n calcMode=\"spline\"\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n <rect fill=\"var(--x-primary-400)\" height=\"40\" width=\"10\" y=\"30\" x=\"55\">\r\n <animate\r\n begin=\"-0.2\"\r\n values=\"1;0.2;1\"\r\n keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\r\n keyTimes=\"0;0.5;1\"\r\n calcMode=\"spline\"\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n <rect fill=\"var(--x-primary-600)\" height=\"40\" width=\"10\" y=\"30\" x=\"75\">\r\n <animate\r\n begin=\"-1\"\r\n values=\"1;0.2;1\"\r\n keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\r\n keyTimes=\"0;0.5;1\"\r\n calcMode=\"spline\"\r\n repeatCount=\"indefinite\"\r\n dur=\"1s\"\r\n attributeName=\"opacity\"\r\n ></animate>\r\n </rect>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n", styles: ["@keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-2.5rem}to{stroke-dasharray:90,150;stroke-dashoffset:-7.5rem}}.x-loading-parent{position:relative}.x-loading{margin:0;padding:0}.x-loading{position:absolute;background-color:var(--x-background);opacity:.85;margin:0;inset:0;display:flex;justify-content:center;align-items:center}.x-loading-inline{position:initial}.x-loading-inner{color:var(--x-primary);text-align:center;line-height:1}.x-loading-circular{animation:loading-rotate 2s linear infinite}.x-loading-icon{animation:loading-rotate 2s linear infinite;display:inline-flex}.x-loading-path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:4;stroke:var(--x-primary);stroke-linecap:round}.x-loading-radius{border-radius:var(--x-border-radius)}.x-loading-top-left-radius{border-top-left-radius:var(--x-border-radius)}.x-loading-top-right-radius{border-top-right-radius:var(--x-border-radius)}.x-loading-bottom-left-radius{border-bottom-left-radius:var(--x-border-radius)}.x-loading-bottom-right-radius{border-bottom-right-radius:var(--x-border-radius)}.x-loading-big .x-loading-circular,.x-loading-big .x-loading-spinner{height:2.175rem;width:2.175rem}.x-loading-big .x-loading-dual-ring,.x-loading-big .x-loading-dual-ball,.x-loading-big .x-loading-bars{height:2.61rem;width:2.61rem}.x-loading-big .x-loading-ripple{height:3.2625rem;width:3.2625rem}.x-loading-big .x-loading-icon{font-size:2.175rem}.x-loading-large .x-loading-circular,.x-loading-large .x-loading-spinner{height:1.875rem;width:1.875rem}.x-loading-large .x-loading-dual-ring,.x-loading-large .x-loading-dual-ball,.x-loading-large .x-loading-bars{height:2.25rem;width:2.25rem}.x-loading-large .x-loading-ripple{height:2.8125rem;width:2.8125rem}.x-loading-large .x-loading-icon{font-size:1.875rem}.x-loading-medium .x-loading-circular,.x-loading-medium .x-loading-spinner{height:1.675rem;width:1.675rem}.x-loading-medium .x-loading-dual-ring,.x-loading-medium .x-loading-dual-ball,.x-loading-medium .x-loading-bars{height:2.01rem;width:2.01rem}.x-loading-medium .x-loading-ripple{height:2.5125rem;width:2.5125rem}.x-loading-medium .x-loading-icon{font-size:1.675rem}.x-loading-small .x-loading-circular,.x-loading-small .x-loading-spinner{height:1.5rem;width:1.5rem}.x-loading-small .x-loading-dual-ring,.x-loading-small .x-loading-dual-ball,.x-loading-small .x-loading-bars{height:1.8rem;width:1.8rem}.x-loading-small .x-loading-ripple{height:2.25rem;width:2.25rem}.x-loading-small .x-loading-icon{font-size:1.5rem}.x-loading-mini .x-loading-circular,.x-loading-mini .x-loading-spinner{height:1.375rem;width:1.375rem}.x-loading-mini .x-loading-dual-ring,.x-loading-mini .x-loading-dual-ball,.x-loading-mini .x-loading-bars{height:1.65rem;width:1.65rem}.x-loading-mini .x-loading-ripple{height:2.0625rem;width:2.0625rem}.x-loading-mini .x-loading-icon{font-size:1.375rem}\n"] }]
155
155
  }], ctorParameters: () => [], propDecorators: { getLoading: [{
@@ -158,11 +158,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
158
158
  }], loadingTpl: [{ type: i0.ViewChild, args: ['loadingTpl', { isSignal: true }] }] } });
159
159
 
160
160
  class XLoadingModule {
161
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: XLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
162
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: XLoadingModule, imports: [XLoadingComponent], exports: [XLoadingComponent] }); }
163
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: XLoadingModule, imports: [XLoadingComponent] }); }
161
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
162
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: XLoadingModule, imports: [XLoadingComponent], exports: [XLoadingComponent] }); }
163
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XLoadingModule, imports: [XLoadingComponent] }); }
164
164
  }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: XLoadingModule, decorators: [{
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XLoadingModule, decorators: [{
166
166
  type: NgModule,
167
167
  args: [{
168
168
  exports: [XLoadingComponent],