@delon/abc 13.0.0-beta.2 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/auto-focus/{autoFocus.d.ts → auto-focus.d.ts} +0 -0
  2. package/auto-focus/package.json +6 -6
  3. package/avatar-list/{avatarList.d.ts → avatar-list.d.ts} +0 -0
  4. package/avatar-list/package.json +6 -6
  5. package/date-picker/{datePicker.d.ts → date-picker.d.ts} +0 -0
  6. package/date-picker/package.json +6 -6
  7. package/down-file/{downFile.d.ts → down-file.d.ts} +0 -0
  8. package/down-file/package.json +6 -6
  9. package/error-collect/{errorCollect.d.ts → error-collect.d.ts} +0 -0
  10. package/error-collect/package.json +6 -6
  11. package/esm2020/auto-focus/auto-focus.mjs +5 -0
  12. package/esm2020/avatar-list/avatar-list.mjs +5 -0
  13. package/esm2020/date-picker/date-picker.mjs +5 -0
  14. package/esm2020/down-file/down-file.mjs +5 -0
  15. package/esm2020/error-collect/error-collect.mjs +5 -0
  16. package/esm2020/footer-toolbar/footer-toolbar.mjs +5 -0
  17. package/esm2020/full-content/full-content.mjs +5 -0
  18. package/esm2020/global-footer/global-footer.mjs +5 -0
  19. package/esm2020/notice-icon/notice-icon.mjs +5 -0
  20. package/esm2020/page-header/page-header.mjs +5 -0
  21. package/esm2020/quick-menu/quick-menu.mjs +5 -0
  22. package/esm2020/reuse-tab/reuse-tab.mjs +5 -0
  23. package/esm2020/se/se.mjs +5 -0
  24. package/esm2020/sg/sg.mjs +5 -0
  25. package/esm2020/st/st.mjs +5 -0
  26. package/esm2020/sv/sv.mjs +5 -0
  27. package/esm2020/tag-select/tag-select.mjs +5 -0
  28. package/fesm2015/{autoFocus.mjs → auto-focus.mjs} +1 -1
  29. package/fesm2015/auto-focus.mjs.map +1 -0
  30. package/fesm2015/{avatarList.mjs → avatar-list.mjs} +1 -1
  31. package/fesm2015/avatar-list.mjs.map +1 -0
  32. package/fesm2015/{datePicker.mjs → date-picker.mjs} +1 -1
  33. package/fesm2015/date-picker.mjs.map +1 -0
  34. package/fesm2015/{downFile.mjs → down-file.mjs} +1 -1
  35. package/fesm2015/down-file.mjs.map +1 -0
  36. package/fesm2015/{errorCollect.mjs → error-collect.mjs} +1 -1
  37. package/fesm2015/error-collect.mjs.map +1 -0
  38. package/fesm2015/{footerToolbar.mjs → footer-toolbar.mjs} +1 -1
  39. package/fesm2015/footer-toolbar.mjs.map +1 -0
  40. package/fesm2015/{fullContent.mjs → full-content.mjs} +1 -1
  41. package/fesm2015/full-content.mjs.map +1 -0
  42. package/fesm2015/{globalFooter.mjs → global-footer.mjs} +1 -1
  43. package/fesm2015/global-footer.mjs.map +1 -0
  44. package/{fesm2020/noticeIcon.mjs → fesm2015/notice-icon.mjs} +1 -1
  45. package/fesm2015/notice-icon.mjs.map +1 -0
  46. package/fesm2015/{pageHeader.mjs → page-header.mjs} +1 -1
  47. package/fesm2015/page-header.mjs.map +1 -0
  48. package/fesm2015/{quickMenu.mjs → quick-menu.mjs} +1 -1
  49. package/fesm2015/quick-menu.mjs.map +1 -0
  50. package/fesm2015/{reuseTab.mjs → reuse-tab.mjs} +1 -1
  51. package/fesm2015/reuse-tab.mjs.map +1 -0
  52. package/fesm2015/{edit.mjs → se.mjs} +1 -1
  53. package/fesm2015/se.mjs.map +1 -0
  54. package/fesm2015/{grid.mjs → sg.mjs} +1 -1
  55. package/fesm2015/sg.mjs.map +1 -0
  56. package/fesm2015/{table.mjs → st.mjs} +1 -1
  57. package/fesm2015/st.mjs.map +1 -0
  58. package/fesm2015/{view.mjs → sv.mjs} +1 -1
  59. package/fesm2015/sv.mjs.map +1 -0
  60. package/fesm2015/{tagSelect.mjs → tag-select.mjs} +1 -1
  61. package/fesm2015/tag-select.mjs.map +1 -0
  62. package/fesm2020/{autoFocus.mjs → auto-focus.mjs} +1 -1
  63. package/fesm2020/auto-focus.mjs.map +1 -0
  64. package/fesm2020/{avatarList.mjs → avatar-list.mjs} +1 -1
  65. package/fesm2020/avatar-list.mjs.map +1 -0
  66. package/fesm2020/{datePicker.mjs → date-picker.mjs} +1 -1
  67. package/fesm2020/date-picker.mjs.map +1 -0
  68. package/fesm2020/{downFile.mjs → down-file.mjs} +1 -1
  69. package/fesm2020/down-file.mjs.map +1 -0
  70. package/fesm2020/{errorCollect.mjs → error-collect.mjs} +1 -1
  71. package/fesm2020/error-collect.mjs.map +1 -0
  72. package/fesm2020/{footerToolbar.mjs → footer-toolbar.mjs} +1 -1
  73. package/fesm2020/footer-toolbar.mjs.map +1 -0
  74. package/fesm2020/{fullContent.mjs → full-content.mjs} +1 -1
  75. package/fesm2020/full-content.mjs.map +1 -0
  76. package/fesm2020/{globalFooter.mjs → global-footer.mjs} +1 -1
  77. package/fesm2020/global-footer.mjs.map +1 -0
  78. package/{fesm2015/noticeIcon.mjs → fesm2020/notice-icon.mjs} +1 -1
  79. package/fesm2020/notice-icon.mjs.map +1 -0
  80. package/fesm2020/{pageHeader.mjs → page-header.mjs} +1 -1
  81. package/fesm2020/page-header.mjs.map +1 -0
  82. package/fesm2020/{quickMenu.mjs → quick-menu.mjs} +1 -1
  83. package/fesm2020/quick-menu.mjs.map +1 -0
  84. package/fesm2020/{reuseTab.mjs → reuse-tab.mjs} +1 -1
  85. package/fesm2020/reuse-tab.mjs.map +1 -0
  86. package/fesm2020/{edit.mjs → se.mjs} +1 -1
  87. package/fesm2020/se.mjs.map +1 -0
  88. package/fesm2020/{grid.mjs → sg.mjs} +1 -1
  89. package/fesm2020/sg.mjs.map +1 -0
  90. package/fesm2020/{table.mjs → st.mjs} +1 -1
  91. package/fesm2020/st.mjs.map +1 -0
  92. package/fesm2020/{view.mjs → sv.mjs} +1 -1
  93. package/fesm2020/sv.mjs.map +1 -0
  94. package/fesm2020/{tagSelect.mjs → tag-select.mjs} +1 -1
  95. package/fesm2020/tag-select.mjs.map +1 -0
  96. package/footer-toolbar/{footerToolbar.d.ts → footer-toolbar.d.ts} +0 -0
  97. package/footer-toolbar/package.json +6 -6
  98. package/full-content/{fullContent.d.ts → full-content.d.ts} +0 -0
  99. package/full-content/package.json +6 -6
  100. package/global-footer/{globalFooter.d.ts → global-footer.d.ts} +0 -0
  101. package/global-footer/package.json +6 -6
  102. package/notice-icon/{noticeIcon.d.ts → notice-icon.d.ts} +0 -0
  103. package/notice-icon/package.json +6 -6
  104. package/package.json +106 -106
  105. package/page-header/package.json +6 -6
  106. package/page-header/{pageHeader.d.ts → page-header.d.ts} +0 -0
  107. package/quick-menu/package.json +6 -6
  108. package/quick-menu/{quickMenu.d.ts → quick-menu.d.ts} +0 -0
  109. package/reuse-tab/package.json +6 -6
  110. package/reuse-tab/{reuseTab.d.ts → reuse-tab.d.ts} +0 -0
  111. package/se/package.json +6 -6
  112. package/se/{edit.d.ts → se.d.ts} +0 -0
  113. package/sg/package.json +6 -6
  114. package/sg/{grid.d.ts → sg.d.ts} +0 -0
  115. package/st/package.json +6 -6
  116. package/st/{table.d.ts → st.d.ts} +0 -0
  117. package/sv/package.json +6 -6
  118. package/sv/{view.d.ts → sv.d.ts} +0 -0
  119. package/tag-select/package.json +6 -6
  120. package/tag-select/{tagSelect.d.ts → tag-select.d.ts} +0 -0
  121. package/esm2020/auto-focus/autoFocus.mjs +0 -5
  122. package/esm2020/avatar-list/avatarList.mjs +0 -5
  123. package/esm2020/date-picker/datePicker.mjs +0 -5
  124. package/esm2020/down-file/downFile.mjs +0 -5
  125. package/esm2020/error-collect/errorCollect.mjs +0 -5
  126. package/esm2020/footer-toolbar/footerToolbar.mjs +0 -5
  127. package/esm2020/full-content/fullContent.mjs +0 -5
  128. package/esm2020/global-footer/globalFooter.mjs +0 -5
  129. package/esm2020/notice-icon/noticeIcon.mjs +0 -5
  130. package/esm2020/page-header/pageHeader.mjs +0 -5
  131. package/esm2020/quick-menu/quickMenu.mjs +0 -5
  132. package/esm2020/reuse-tab/reuseTab.mjs +0 -5
  133. package/esm2020/se/edit.mjs +0 -5
  134. package/esm2020/sg/grid.mjs +0 -5
  135. package/esm2020/st/table.mjs +0 -5
  136. package/esm2020/sv/view.mjs +0 -5
  137. package/esm2020/tag-select/tagSelect.mjs +0 -5
  138. package/fesm2015/autoFocus.mjs.map +0 -1
  139. package/fesm2015/avatarList.mjs.map +0 -1
  140. package/fesm2015/datePicker.mjs.map +0 -1
  141. package/fesm2015/downFile.mjs.map +0 -1
  142. package/fesm2015/edit.mjs.map +0 -1
  143. package/fesm2015/errorCollect.mjs.map +0 -1
  144. package/fesm2015/footerToolbar.mjs.map +0 -1
  145. package/fesm2015/fullContent.mjs.map +0 -1
  146. package/fesm2015/globalFooter.mjs.map +0 -1
  147. package/fesm2015/grid.mjs.map +0 -1
  148. package/fesm2015/noticeIcon.mjs.map +0 -1
  149. package/fesm2015/pageHeader.mjs.map +0 -1
  150. package/fesm2015/quickMenu.mjs.map +0 -1
  151. package/fesm2015/reuseTab.mjs.map +0 -1
  152. package/fesm2015/table.mjs.map +0 -1
  153. package/fesm2015/tagSelect.mjs.map +0 -1
  154. package/fesm2015/view.mjs.map +0 -1
  155. package/fesm2020/autoFocus.mjs.map +0 -1
  156. package/fesm2020/avatarList.mjs.map +0 -1
  157. package/fesm2020/datePicker.mjs.map +0 -1
  158. package/fesm2020/downFile.mjs.map +0 -1
  159. package/fesm2020/edit.mjs.map +0 -1
  160. package/fesm2020/errorCollect.mjs.map +0 -1
  161. package/fesm2020/footerToolbar.mjs.map +0 -1
  162. package/fesm2020/fullContent.mjs.map +0 -1
  163. package/fesm2020/globalFooter.mjs.map +0 -1
  164. package/fesm2020/grid.mjs.map +0 -1
  165. package/fesm2020/noticeIcon.mjs.map +0 -1
  166. package/fesm2020/pageHeader.mjs.map +0 -1
  167. package/fesm2020/quickMenu.mjs.map +0 -1
  168. package/fesm2020/reuseTab.mjs.map +0 -1
  169. package/fesm2020/table.mjs.map +0 -1
  170. package/fesm2020/tagSelect.mjs.map +0 -1
  171. package/fesm2020/view.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"st.mjs","sources":["../../../../packages/abc/st/st-row.directive.ts","../../../../packages/abc/st/st-widget.ts","../../../../packages/abc/st/st-column-source.ts","../../../../packages/abc/st/st-data-source.ts","../../../../packages/abc/st/st-export.ts","../../../../packages/abc/st/st-widget-host.directive.ts","../../../../packages/abc/st/st.config.ts","../../../../packages/abc/st/st-filter.component.ts","../../../../packages/abc/st/st.component.ts","../../../../packages/abc/st/st.component.html","../../../../packages/abc/st/st-td.component.html","../../../../packages/abc/st/st.module.ts","../../../../packages/abc/st/st.ts"],"sourcesContent":["import { Directive, Host, Injectable, Input, OnInit, TemplateRef } from '@angular/core';\n\n@Injectable()\nexport class STRowSource {\n private titles: { [key: string]: TemplateRef<void> } = {};\n private rows: { [key: string]: TemplateRef<void> } = {};\n\n add(type: string | undefined, path: string, ref: TemplateRef<void>): void {\n this[type === 'title' ? 'titles' : 'rows'][path] = ref;\n }\n\n getTitle(path: string): TemplateRef<void> {\n return this.titles[path];\n }\n\n getRow(path: string): TemplateRef<void> {\n return this.rows[path];\n }\n}\n\n@Directive({ selector: '[st-row]' })\nexport class STRowDirective implements OnInit {\n @Input('st-row') id!: string;\n\n @Input() type?: 'title';\n\n constructor(private ref: TemplateRef<void>, @Host() private source: STRowSource) {}\n\n ngOnInit(): void {\n this.source.add(this.type, this.id, this.ref);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Injectable({ providedIn: 'root' })\nexport class STWidgetRegistry {\n private _widgets: { [type: string]: NzSafeAny } = {};\n\n get widgets(): NzSafeAny {\n return this._widgets;\n }\n\n register(type: string, widget: NzSafeAny): void {\n this._widgets[type] = widget;\n }\n\n has(type: string): boolean {\n return this._widgets.hasOwnProperty(type);\n }\n\n get(type: string): NzSafeAny {\n return this._widgets[type];\n }\n}\n","import { Host, Inject, Injectable, Optional, TemplateRef } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { ACLService } from '@delon/acl';\nimport { AlainI18NService, ALAIN_I18N_TOKEN } from '@delon/theme';\nimport { AlainSTConfig } from '@delon/util/config';\nimport { deepCopy, warn } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { STRowSource } from './st-row.directive';\nimport { STWidgetRegistry } from './st-widget';\nimport {\n STColumn,\n STColumnButton,\n STColumnButtonPop,\n STColumnFilter,\n STColumnGroupType,\n STColumnSafeType,\n STIcon,\n STResizable,\n STSortMap,\n STWidthMode\n} from './st.interfaces';\nimport { _STColumn, _STHeader } from './st.types';\n\nexport interface STColumnSourceProcessOptions {\n widthMode: STWidthMode;\n resizable?: STResizable;\n safeType: STColumnSafeType;\n}\n\n@Injectable()\nexport class STColumnSource {\n private cog!: AlainSTConfig;\n\n constructor(\n private dom: DomSanitizer,\n @Host() private rowSource: STRowSource,\n @Optional() private acl: ACLService,\n @Optional() @Inject(ALAIN_I18N_TOKEN) private i18nSrv: AlainI18NService,\n private stWidgetRegistry: STWidgetRegistry\n ) {}\n\n setCog(val: AlainSTConfig): void {\n this.cog = val;\n }\n\n private fixPop(i: STColumnButton, def: STColumnButtonPop): void {\n if (i.pop == null || i.pop === false) {\n i.pop = false;\n return;\n }\n\n let pop = {\n ...def\n };\n if (typeof i.pop === 'string') {\n pop.title = i.pop;\n } else if (typeof i.pop === 'object') {\n pop = {\n ...pop,\n ...i.pop\n };\n }\n\n if (typeof pop.condition !== 'function') {\n pop.condition = () => false;\n }\n\n i.pop = pop;\n }\n\n private btnCoerce(list: STColumnButton[]): STColumnButton[] {\n if (!list) return [];\n const ret: STColumnButton[] = [];\n const { modal, drawer, pop, btnIcon } = this.cog;\n\n for (const item of list) {\n if (this.acl && item.acl && !this.acl.can(item.acl)) {\n continue;\n }\n\n if (item.type === 'modal' || item.type === 'static') {\n if (item.modal == null || item.modal.component == null) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`[st] Should specify modal parameter when type is modal or static`);\n }\n item.type = 'none';\n } else {\n item.modal = { ...{ paramsName: 'record', size: 'lg' }, ...modal, ...item.modal };\n }\n }\n\n if (item.type === 'drawer') {\n if (item.drawer == null || item.drawer.component == null) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`[st] Should specify drawer parameter when type is drawer`);\n }\n item.type = 'none';\n } else {\n item.drawer = { ...{ paramsName: 'record', size: 'lg' }, ...drawer, ...item.drawer };\n }\n }\n\n if (item.type === 'del' && typeof item.pop === 'undefined') {\n item.pop = true;\n }\n\n // pop\n this.fixPop(item, pop!);\n\n if (item.icon) {\n item.icon = {\n ...btnIcon,\n ...(typeof item.icon === 'string' ? { type: item.icon } : item.icon)\n };\n }\n\n item.children = item.children && item.children.length > 0 ? this.btnCoerce(item.children) : [];\n\n // i18n\n if (item.i18n && this.i18nSrv) {\n item.text = this.i18nSrv.fanyi(item.i18n);\n }\n\n ret.push(item);\n }\n this.btnCoerceIf(ret);\n return ret;\n }\n\n private btnCoerceIf(list: STColumnButton[]): void {\n for (const item of list) {\n if (!item.iif) item.iif = () => true;\n item.iifBehavior = item.iifBehavior || this.cog.iifBehavior;\n if (item.children && item.children.length > 0) {\n this.btnCoerceIf(item.children);\n } else {\n item.children = [];\n }\n }\n }\n\n private fixedCoerce(list: _STColumn[]): void {\n const countReduce = (a: number, b: _STColumn): number => a + +b.width!.toString().replace('px', '');\n // left width\n list\n .filter(w => w.fixed && w.fixed === 'left' && w.width)\n .forEach((item, idx) => (item._left = `${list.slice(0, idx).reduce(countReduce, 0)}px`));\n // right width\n list\n .filter(w => w.fixed && w.fixed === 'right' && w.width)\n .reverse()\n .forEach((item, idx) => (item._right = `${idx > 0 ? list.slice(-idx).reduce(countReduce, 0) : 0}px`));\n }\n\n private sortCoerce(item: _STColumn): STSortMap {\n const res = this.fixSortCoerce(item);\n res.reName = {\n ...this.cog.sortReName,\n ...res.reName\n };\n return res;\n }\n\n private fixSortCoerce(item: _STColumn): STSortMap {\n if (typeof item.sort === 'undefined') {\n return { enabled: false };\n }\n\n let res: STSortMap = {};\n\n if (typeof item.sort === 'string') {\n res.key = item.sort;\n } else if (typeof item.sort !== 'boolean') {\n res = item.sort;\n } else if (typeof item.sort === 'boolean') {\n res.compare = (a, b) => a[item.indexKey!] - b[item.indexKey!];\n }\n\n if (!res.key) {\n res.key = item.indexKey;\n }\n\n res.enabled = true;\n\n return res;\n }\n\n private filterCoerce(item: _STColumn): STColumnFilter | null {\n if (item.filter == null) {\n return null;\n }\n\n let res: STColumnFilter | null = item.filter;\n res.type = res.type || 'default';\n res.showOPArea = res.showOPArea !== false;\n\n let icon = 'filter';\n let iconTheme = 'fill';\n let fixMenus = true;\n let value: NzSafeAny = undefined;\n switch (res.type) {\n case 'keyword':\n icon = 'search';\n iconTheme = 'outline';\n break;\n case 'number':\n icon = 'search';\n iconTheme = 'outline';\n res.number = {\n step: 1,\n min: -Infinity,\n max: Infinity,\n ...res.number\n };\n break;\n case 'date':\n icon = 'calendar';\n iconTheme = 'outline';\n res.date = {\n range: false,\n mode: 'date',\n showToday: true,\n showNow: false,\n ...res.date\n };\n break;\n default:\n fixMenus = false;\n break;\n }\n if (fixMenus && (res.menus == null || res.menus!.length === 0)) {\n res.menus = [{ value }];\n }\n\n if (res.menus!.length === 0) {\n return null;\n }\n\n if (typeof res.multiple === 'undefined') {\n res.multiple = true;\n }\n\n res.confirmText = res.confirmText || this.cog.filterConfirmText;\n res.clearText = res.clearText || this.cog.filterClearText;\n res.key = res.key || item.indexKey;\n res.icon = res.icon || icon;\n\n const baseIcon = { type: icon, theme: iconTheme } as STIcon;\n if (typeof res.icon === 'string') {\n res.icon = { ...baseIcon, type: res.icon } as STIcon;\n } else {\n res.icon = { ...baseIcon, ...res.icon };\n }\n\n this.updateDefault(res);\n\n if (this.acl) {\n res.menus = res.menus!.filter(w => this.acl.can(w.acl!));\n }\n\n if (res.menus!.length <= 0) {\n res = null;\n }\n\n return res;\n }\n\n private restoreRender(item: _STColumn): void {\n if (item.renderTitle) {\n item.__renderTitle =\n typeof item.renderTitle === 'string'\n ? this.rowSource.getTitle(item.renderTitle)\n : (item.renderTitle as TemplateRef<void>);\n }\n if (item.render) {\n item.__render =\n typeof item.render === 'string' ? this.rowSource.getRow(item.render) : (item.render as TemplateRef<void>);\n }\n }\n\n private widgetCoerce(item: _STColumn): void {\n if (item.type !== 'widget') return;\n if (item.widget == null || !this.stWidgetRegistry.has(item.widget.type)) {\n delete item.type;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warn(`st: No widget for type \"${item.widget?.type}\"`);\n }\n }\n }\n\n private genHeaders(rootColumns: _STColumn[]): { headers: _STHeader[][]; headerWidths: string[] | null } {\n const rows: _STHeader[][] = [];\n const widths: string[] = [];\n const fillRowCells = (columns: _STColumn[], colIndex: number, rowIndex = 0): number[] => {\n // Init rows\n rows[rowIndex] = rows[rowIndex] || [];\n\n let currentColIndex = colIndex;\n const colSpans: number[] = columns.map(column => {\n const cell: STColumnGroupType = {\n column,\n colStart: currentColIndex,\n hasSubColumns: false\n };\n\n let colSpan = 1;\n\n const subColumns = column.children;\n if (Array.isArray(subColumns) && subColumns.length > 0) {\n colSpan = fillRowCells(subColumns, currentColIndex, rowIndex + 1).reduce((total, count) => total + count, 0);\n cell.hasSubColumns = true;\n } else {\n widths.push((cell.column.width as string) || '');\n }\n\n if ('colSpan' in column) {\n colSpan = column.colSpan!;\n }\n\n if ('rowSpan' in column) {\n cell.rowSpan = column.rowSpan;\n }\n\n cell.colSpan = colSpan;\n cell.colEnd = cell.colStart + colSpan - 1;\n rows[rowIndex].push(cell as NzSafeAny);\n\n currentColIndex += colSpan;\n\n return colSpan;\n });\n\n return colSpans;\n };\n\n fillRowCells(rootColumns, 0);\n\n // Handle `rowSpan`\n const rowCount = rows.length;\n for (let rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\n rows[rowIndex].forEach(cell => {\n if (!('rowSpan' in cell) && !(cell as _STHeader).hasSubColumns) {\n (cell as _STHeader).rowSpan = rowCount - rowIndex;\n }\n });\n }\n\n return { headers: rows, headerWidths: rowCount > 1 ? widths : null };\n }\n\n private cleanCond(list: _STColumn[]): _STColumn[] {\n const res: _STColumn[] = [];\n const copyList = deepCopy(list);\n for (const item of copyList) {\n if (item.iif && !item.iif(item)) {\n continue;\n }\n if (this.acl && item.acl && !this.acl.can(item.acl)) {\n continue;\n }\n if (Array.isArray(item.children) && item.children.length > 0) {\n item.children = this.cleanCond(item.children);\n }\n res.push(item);\n }\n return res;\n }\n\n process(\n list: STColumn[],\n options: STColumnSourceProcessOptions\n ): { columns: _STColumn[]; headers: _STHeader[][]; headerWidths: string[] | null } {\n if (!list || list.length === 0) throw new Error(`[st]: the columns property muse be define!`);\n\n const { noIndex } = this.cog;\n let checkboxCount = 0;\n let radioCount = 0;\n let point = 0;\n const columns: _STColumn[] = [];\n\n const processItem = (item: _STColumn): _STColumn => {\n // index\n if (item.index) {\n if (!Array.isArray(item.index)) {\n item.index = item.index.toString().split('.');\n }\n item.indexKey = item.index.join('.');\n }\n\n // #region title\n\n const tit = (typeof item.title === 'string' ? { text: item.title } : item.title) || {};\n if (tit.i18n && this.i18nSrv) {\n tit.text = this.i18nSrv.fanyi(tit.i18n);\n }\n if (tit.text) {\n tit._text = this.dom.bypassSecurityTrustHtml(tit.text);\n }\n item.title = tit;\n\n // #endregion\n\n // no\n if (item.type === 'no') {\n item.noIndex = item.noIndex == null ? noIndex : item.noIndex;\n }\n // checkbox\n if (item.selections == null) {\n item.selections = [];\n }\n if (item.type === 'checkbox') {\n ++checkboxCount;\n if (!item.width) {\n item.width = `${item.selections.length > 0 ? 62 : 50}px`;\n }\n }\n if (this.acl) {\n item.selections = item.selections.filter(w => this.acl.can(w.acl!));\n }\n // radio\n if (item.type === 'radio') {\n ++radioCount;\n item.selections = [];\n if (!item.width) {\n item.width = '50px';\n }\n }\n // types\n if (item.type === 'yn') {\n item.yn = { truth: true, ...this.cog.yn, ...item.yn };\n }\n // date\n if (item.type === 'date') {\n item.dateFormat = item.dateFormat || this.cog.date?.format;\n }\n if (\n (item.type === 'link' && typeof item.click !== 'function') ||\n (item.type === 'badge' && item.badge == null) ||\n (item.type === 'tag' && item.tag == null) ||\n (item.type === 'enum' && item.enum == null)\n ) {\n item.type = '';\n }\n item._isTruncate = !!item.width && options.widthMode.strictBehavior === 'truncate' && item.type !== 'img';\n // className\n if (!item.className) {\n item.className = (\n {\n number: 'text-right',\n currency: 'text-right',\n date: 'text-center'\n } as NzSafeAny\n )[item.type!];\n }\n item._className = item.className || (item._isTruncate ? 'text-truncate' : null);\n // width\n if (typeof item.width === 'number') {\n item._width = item.width;\n item.width = `${item.width}px`;\n }\n item._left = false;\n item._right = false;\n item.safeType = item.safeType ?? options.safeType;\n\n // sorter\n item._sort = this.sortCoerce(item);\n // filter\n item.filter = this.filterCoerce(item) as STColumnFilter;\n // buttons\n item.buttons = this.btnCoerce(item.buttons!);\n // widget\n this.widgetCoerce(item);\n // restore custom row\n this.restoreRender(item);\n // resizable\n item.resizable = {\n disabled: true,\n bounds: 'window',\n minWidth: 60,\n maxWidth: 360,\n preview: true,\n ...options.resizable,\n ...(typeof item.resizable === 'boolean' ? ({ disabled: !item.resizable } as STResizable) : item.resizable)\n };\n\n item.__point = point++;\n\n return item;\n };\n\n const processList = (data: _STColumn[]): void => {\n for (const item of data) {\n columns.push(processItem(item));\n if (Array.isArray(item.children)) {\n processList(item.children);\n }\n }\n };\n\n const copyList = this.cleanCond(list as _STColumn[]);\n processList(copyList);\n\n if (checkboxCount > 1) {\n throw new Error(`[st]: just only one column checkbox`);\n }\n if (radioCount > 1) {\n throw new Error(`[st]: just only one column radio`);\n }\n\n this.fixedCoerce(columns as _STColumn[]);\n return {\n columns: columns.filter(w => !Array.isArray(w.children) || w.children.length === 0),\n ...this.genHeaders(copyList)\n };\n }\n\n restoreAllRender(columns: _STColumn[]): void {\n columns.forEach(i => this.restoreRender(i));\n }\n\n updateDefault(filter: STColumnFilter): this {\n if (filter.type === 'default') {\n filter.default = filter.menus!.findIndex(w => w.checked!) !== -1;\n } else {\n filter.default = !!filter.menus![0].value;\n }\n return this;\n }\n\n cleanFilter(col: _STColumn): this {\n const f = col.filter!;\n f.default = false;\n if (f.type === 'default') {\n f.menus!.forEach(i => (i.checked = false));\n } else {\n f.menus![0].value = undefined;\n }\n return this;\n }\n}\n","import { DecimalPipe } from '@angular/common';\nimport { HttpParams } from '@angular/common/http';\nimport { Host, Injectable } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { DatePipe, YNPipe, _HttpClient } from '@delon/theme';\nimport { CurrencyService } from '@delon/util/format';\nimport { deepCopy, deepGet } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport {\n STColumn,\n STColumnFilter,\n STColumnFilterMenu,\n STCustomRequestOptions,\n STData,\n STMultiSort,\n STMultiSortResultType,\n STPage,\n STReq,\n STReqReNameType,\n STRequestOptions,\n STRes,\n STRowClassName,\n STSingleSort,\n STSortMap,\n STStatistical,\n STStatisticalResult,\n STStatisticalResults,\n STStatisticalType\n} from './st.interfaces';\nimport { _STColumn, _STColumnButton, _STDataValue } from './st.types';\n\nexport interface STDataSourceOptions {\n pi: number;\n ps: number;\n paginator: boolean;\n data: string | STData[] | Observable<STData[]>;\n total: number;\n req: STReq;\n res: STRes;\n page: STPage;\n columns: _STColumn[];\n singleSort?: STSingleSort;\n multiSort?: STMultiSort;\n rowClassName?: STRowClassName;\n customRequest?: (options: STCustomRequestOptions) => Observable<NzSafeAny>;\n}\n\nexport interface STDataSourceResult {\n /** 是否需要显示分页器 */\n pageShow: boolean;\n /** 新 `pi`,若返回 `undefined` 表示用户受控 */\n pi: number;\n /** 新 `ps`,若返回 `undefined` 表示用户受控 */\n ps: number;\n /** 新 `total`,若返回 `undefined` 表示用户受控 */\n total: number;\n /** 数据 */\n list: STData[];\n /** 统计数据 */\n statistical: STStatisticalResults;\n}\n\n@Injectable()\nexport class STDataSource {\n private sortTick = 0;\n\n constructor(\n private http: _HttpClient,\n @Host() private datePipe: DatePipe,\n @Host() private ynPipe: YNPipe,\n @Host() private numberPipe: DecimalPipe,\n private currencySrv: CurrencyService,\n private dom: DomSanitizer\n ) {}\n\n process(options: STDataSourceOptions): Observable<STDataSourceResult> {\n let data$: Observable<STData[]>;\n let isRemote = false;\n const { data, res, total, page, pi, ps, paginator, columns } = options;\n let retTotal: number;\n let retPs: number;\n let retList: STData[];\n let retPi: number;\n let rawData: NzSafeAny;\n let showPage = page.show;\n\n if (typeof data === 'string') {\n isRemote = true;\n data$ = this.getByRemote(data, options).pipe(\n map(result => {\n rawData = result;\n let ret: STData[];\n if (Array.isArray(result)) {\n ret = result;\n retTotal = ret.length;\n retPs = retTotal;\n showPage = false;\n } else {\n // list\n ret = deepGet(result, res.reName!.list as string[], []);\n if (ret == null || !Array.isArray(ret)) {\n ret = [];\n }\n // total\n const resultTotal = res.reName!.total && deepGet(result, res.reName!.total as string[], null);\n retTotal = resultTotal == null ? total || 0 : +resultTotal;\n }\n return deepCopy(ret);\n })\n );\n } else if (Array.isArray(data)) {\n data$ = of(data);\n } else {\n // a cold observable\n data$ = data;\n }\n\n if (!isRemote) {\n data$ = data$.pipe(\n // sort\n map((result: STData[]) => {\n rawData = result;\n let copyResult = deepCopy(result);\n const sorterFn = this.getSorterFn(columns as _STColumn[]);\n if (sorterFn) {\n copyResult = copyResult.sort(sorterFn);\n }\n return copyResult;\n }),\n // filter\n map((result: STData[]) => {\n columns\n .filter(w => w.filter)\n .forEach(c => {\n const filter = c.filter!;\n const values = this.getFilteredData(filter);\n if (values.length === 0) return;\n const onFilter = filter.fn;\n if (typeof onFilter !== 'function') {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`[st] Muse provide the fn function in filter`);\n }\n return;\n }\n result = result.filter(record => values.some(v => onFilter(v, record)));\n });\n return result;\n }),\n // paging\n map((result: STData[]) => {\n if (paginator && page.front) {\n const maxPageIndex = Math.ceil(result.length / ps);\n retPi = Math.max(1, pi > maxPageIndex ? maxPageIndex : pi);\n retTotal = result.length;\n if (page.show === true) {\n return result.slice((retPi - 1) * ps, retPi * ps);\n }\n }\n return result;\n })\n );\n }\n\n // pre-process\n if (typeof res.process === 'function') {\n data$ = data$.pipe(map(result => res.process!(result, rawData)));\n }\n\n data$ = data$.pipe(map(result => this.optimizeData({ result, columns, rowClassName: options.rowClassName })));\n\n return data$.pipe(\n map(result => {\n retList = result;\n const realTotal = retTotal || total;\n const realPs = retPs || ps;\n\n return {\n pi: retPi,\n ps: retPs,\n total: retTotal,\n list: retList,\n statistical: this.genStatistical(columns as _STColumn[], retList, rawData),\n pageShow: typeof showPage === 'undefined' ? realTotal > realPs : showPage\n } as STDataSourceResult;\n })\n );\n }\n\n private get(item: STData, col: _STColumn, idx: number): _STDataValue {\n try {\n const safeHtml = col.safeType === 'safeHtml';\n if (col.format) {\n const formatRes = col.format(item, col, idx) || '';\n return {\n text: formatRes,\n _text: safeHtml ? this.dom.bypassSecurityTrustHtml(formatRes) : formatRes,\n org: formatRes,\n safeType: col.safeType!\n };\n }\n\n const value = deepGet(item, col.index as string[], col.default);\n\n let text = value;\n let color: string | undefined;\n switch (col.type) {\n case 'no':\n text = this.getNoIndex(item, col, idx);\n break;\n case 'img':\n text = value ? `<img src=\"${value}\" class=\"img\">` : '';\n break;\n case 'number':\n text = this.numberPipe.transform(value, col.numberDigits);\n break;\n case 'currency':\n text = this.currencySrv.format(value, col.currency?.format);\n break;\n case 'date':\n text = value === col.default ? col.default : this.datePipe.transform(value, col.dateFormat);\n break;\n case 'yn':\n text = this.ynPipe.transform(value === col.yn!.truth, col.yn!.yes!, col.yn!.no!, col.yn!.mode!, false);\n break;\n case 'enum':\n text = col.enum![value];\n break;\n case 'tag':\n case 'badge':\n const data = col.type === 'tag' ? col.tag : col.badge;\n if (data && data[text]) {\n const dataItem = data[text];\n text = dataItem.text;\n color = dataItem.color;\n } else {\n text = '';\n }\n break;\n }\n if (text == null) text = '';\n return {\n text,\n _text: safeHtml ? this.dom.bypassSecurityTrustHtml(text) : text,\n org: value,\n color,\n safeType: col.safeType!,\n buttons: []\n };\n } catch (ex) {\n const text = `INVALID DATA`;\n console.error(`Failed to get data`, item, col, ex);\n return { text, _text: text, org: text, buttons: [], safeType: 'text' };\n }\n }\n\n private getByRemote(url: string, options: STDataSourceOptions): Observable<unknown> {\n const { req, page, paginator, pi, ps, singleSort, multiSort, columns } = options;\n const method = (req.method || 'GET').toUpperCase();\n let params = {};\n const reName = req.reName as STReqReNameType;\n if (paginator) {\n if (req.type === 'page') {\n params = {\n [reName.pi as string]: page.zeroIndexed ? pi - 1 : pi,\n [reName.ps as string]: ps\n };\n } else {\n params = {\n [reName.skip as string]: (pi - 1) * ps,\n [reName.limit as string]: ps\n };\n }\n }\n params = {\n ...params,\n ...req.params,\n ...this.getReqSortMap(singleSort, multiSort, columns),\n ...this.getReqFilterMap(columns)\n };\n\n let reqOptions: STRequestOptions = {\n params,\n body: req.body,\n headers: req.headers\n };\n if (method === 'POST' && req.allInBody === true) {\n reqOptions = {\n body: { ...req.body, ...params },\n headers: req.headers\n };\n }\n if (typeof req.process === 'function') {\n reqOptions = req.process(reqOptions);\n }\n if (!(reqOptions.params instanceof HttpParams)) {\n reqOptions.params = new HttpParams({ fromObject: reqOptions.params });\n }\n if (typeof options.customRequest === 'function') {\n return options.customRequest({ method, url, options: reqOptions });\n }\n return this.http.request(method, url, reqOptions);\n }\n\n optimizeData(options: { columns: _STColumn[]; result: STData[]; rowClassName?: STRowClassName }): STData[] {\n const { result, columns, rowClassName } = options;\n for (let i = 0, len = result.length; i < len; i++) {\n result[i]._values = columns.map(c => {\n if (Array.isArray(c.buttons) && c.buttons.length > 0) {\n return { buttons: this.genButtons(c.buttons, result[i], c), _text: '' };\n }\n\n return this.get(result[i], c, i);\n });\n result[i]._rowClassName = [rowClassName ? rowClassName(result[i], i) : null, result[i].className]\n .filter(w => !!w)\n .join(' ');\n }\n return result;\n }\n\n getNoIndex(item: STData, col: _STColumn, idx: number): number {\n return typeof col.noIndex === 'function' ? col.noIndex(item, col, idx) : col.noIndex! + idx;\n }\n\n private genButtons(_btns: _STColumnButton[], item: STData, col: STColumn): _STColumnButton[] {\n const fn = (btns: _STColumnButton[]): _STColumnButton[] => {\n return deepCopy(btns).filter(btn => {\n const result = btn.iif!(item, btn, col);\n const isRenderDisabled = btn.iifBehavior === 'disabled';\n btn._result = result;\n btn._disabled = !result && isRenderDisabled;\n if (btn.children!.length > 0) {\n btn.children = fn(btn.children!);\n }\n delete btn.iif;\n return result || isRenderDisabled;\n });\n };\n\n const res = fn(_btns);\n\n const fnText = (btns: _STColumnButton[]): _STColumnButton[] => {\n for (const btn of btns) {\n btn._text = typeof btn.text === 'function' ? btn.text(item, btn) : btn.text || '';\n if (btn.children!.length > 0) {\n btn.children = fnText(btn.children!);\n }\n }\n return btns;\n };\n\n return fnText(res);\n }\n\n // #region sort\n\n private getValidSort(columns: _STColumn[]): STSortMap[] {\n return columns.filter(item => item._sort && item._sort.enabled && item._sort.default).map(item => item._sort!);\n }\n\n private getSorterFn(columns: _STColumn[]): ((a: STData, b: STData) => number) | void {\n const sortList = this.getValidSort(columns);\n if (sortList.length === 0) {\n return;\n }\n const sortItem = sortList[0];\n if (sortItem.compare === null) {\n return;\n }\n if (typeof sortItem.compare !== 'function') {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`[st] Muse provide the compare function in sort`);\n }\n return;\n }\n\n return (a: STData, b: STData) => {\n const result = sortItem.compare!(a, b);\n if (result !== 0) {\n return sortItem.default === 'descend' ? -result : result;\n }\n return 0;\n };\n }\n\n get nextSortTick(): number {\n return ++this.sortTick;\n }\n\n getReqSortMap(\n singleSort: STSingleSort | undefined,\n multiSort: STMultiSort | undefined,\n columns: _STColumn[]\n ): STMultiSortResultType {\n let ret: STMultiSortResultType = {};\n const sortList = this.getValidSort(columns);\n\n if (multiSort) {\n const ms: STMultiSort = {\n key: 'sort',\n separator: '-',\n nameSeparator: '.',\n keepEmptyKey: true,\n arrayParam: false,\n ...multiSort\n };\n\n const sortMap = sortList\n .sort((a, b) => a.tick - b.tick)\n .map(item => item.key! + ms.nameSeparator + ((item.reName || {})[item.default!] || item.default));\n\n ret = { [ms.key!]: ms.arrayParam ? sortMap : sortMap.join(ms.separator) };\n\n return sortMap.length === 0 && ms.keepEmptyKey === false ? {} : ret;\n }\n\n if (sortList.length === 0) return ret;\n\n const mapData = sortList[0];\n let sortFiled = mapData.key;\n let sortValue = (sortList[0].reName || {})[mapData.default!] || mapData.default;\n if (singleSort) {\n sortValue = sortFiled + (singleSort.nameSeparator || '.') + sortValue;\n sortFiled = singleSort.key || 'sort';\n }\n ret[sortFiled as string] = sortValue as string;\n return ret;\n }\n\n // #endregion\n\n // #region filter\n\n private getFilteredData(filter: STColumnFilter): STColumnFilterMenu[] {\n return filter.type === 'default' ? filter.menus!.filter(f => f.checked === true) : filter.menus!.slice(0, 1);\n }\n\n private getReqFilterMap(columns: _STColumn[]): { [key: string]: string } {\n let ret = {};\n columns\n .filter(w => w.filter && w.filter.default === true)\n .forEach(col => {\n const filter = col.filter!;\n const values = this.getFilteredData(filter);\n let obj: { [key: string]: NzSafeAny } = {};\n if (filter.reName) {\n obj = filter.reName!(filter.menus!, col);\n } else {\n obj[filter.key!] = values.map(i => i.value).join(',');\n }\n ret = { ...ret, ...obj };\n });\n return ret;\n }\n\n // #endregion\n\n // #region statistical\n\n private genStatistical(columns: _STColumn[], list: STData[], rawData: NzSafeAny): STStatisticalResults {\n const res: { [key: string]: NzSafeAny } = {};\n columns.forEach((col, index) => {\n res[col.key || col.indexKey || index] =\n col.statistical == null ? {} : this.getStatistical(col, index, list, rawData);\n });\n return res;\n }\n\n private getStatistical(col: _STColumn, index: number, list: STData[], rawData: NzSafeAny): STStatisticalResult {\n const val = col.statistical;\n const item: STStatistical = {\n digits: 2,\n currency: undefined,\n ...(typeof val === 'string' ? { type: val as STStatisticalType } : (val as STStatistical))\n };\n let res: STStatisticalResult = { value: 0 };\n let currency = false;\n if (typeof item.type === 'function') {\n res = item.type(this.getValues(index, list), col, list, rawData);\n currency = true;\n } else {\n switch (item.type) {\n case 'count':\n res.value = list.length;\n break;\n case 'distinctCount':\n res.value = this.getValues(index, list).filter((value, idx, self) => self.indexOf(value) === idx).length;\n break;\n case 'sum':\n res.value = this.toFixed(this.getSum(index, list), item.digits!);\n currency = true;\n break;\n case 'average':\n res.value = this.toFixed(this.getSum(index, list) / list.length, item.digits!);\n currency = true;\n break;\n case 'max':\n res.value = Math.max(...this.getValues(index, list));\n currency = true;\n break;\n case 'min':\n res.value = Math.min(...this.getValues(index, list));\n currency = true;\n break;\n }\n }\n if (item.currency === true || (item.currency == null && currency === true)) {\n res.text = this.currencySrv.format(res.value, col.currency?.format) as string;\n } else {\n res.text = String(res.value);\n }\n return res;\n }\n\n private toFixed(val: number, digits: number): number {\n if (isNaN(val) || !isFinite(val)) {\n return 0;\n }\n return parseFloat(val.toFixed(digits));\n }\n\n private getValues(index: number, list: STData[]): number[] {\n return list.map(i => i._values[index].org).map(i => (i === '' || i == null ? 0 : i));\n }\n\n private getSum(index: number, list: STData[]): number {\n return this.getValues(index, list).reduce((p, i) => (p += parseFloat(String(i))), 0);\n }\n\n // #endregion\n}\n","import { Injectable, Optional } from '@angular/core';\n\nimport { XlsxExportResult, XlsxService } from '@delon/abc/xlsx';\nimport { deepGet } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { STColumn, STExportOptions } from './st.interfaces';\nimport { _STColumn } from './st.types';\n\n@Injectable()\nexport class STExport {\n constructor(@Optional() private xlsxSrv: XlsxService) {}\n\n private _stGet(item: NzSafeAny, col: STColumn, index: number, colIndex: number): NzSafeAny {\n const ret: { [key: string]: NzSafeAny } = { t: 's', v: '' };\n\n if (col.format) {\n ret.v = col.format(item, col, index);\n } else {\n const val = item._values ? item._values[colIndex].text : deepGet(item, col.index as string[], '');\n ret.v = val;\n if (val != null) {\n switch (col.type) {\n case 'currency':\n ret.t = 'n';\n break;\n case 'date':\n // Can't be a empty value, it will cause `#NULL!`\n // See https://github.com/SheetJS/sheetjs/blob/master/docbits/52_datatype.md\n if (`${val}`.length > 0) {\n ret.t = 'd';\n // Number Formats: https://github.com/SheetJS/sheetjs/blob/master/docbits/63_numfmt.md\n ret.z = col.dateFormat;\n }\n break;\n case 'yn':\n const yn = col.yn!;\n ret.v = val === yn.truth ? yn.yes : yn.no;\n break;\n }\n }\n }\n\n ret.v = ret.v || '';\n\n return ret;\n }\n\n private genSheet(opt: STExportOptions): { [sheet: string]: unknown } {\n const sheets: { [sheet: string]: { [key: string]: NzSafeAny } } = {};\n const sheet: { [key: string]: NzSafeAny } = (sheets[opt.sheetname || 'Sheet1'] = {});\n const dataLen = opt.data!.length;\n let validColCount = 0;\n let loseCount = 0;\n const columns = opt.columens! as _STColumn[];\n if (columns.findIndex(w => w._width != null) !== -1) {\n // wpx: width in screen pixels https://github.com/SheetJS/sheetjs#column-properties\n sheet['!cols'] = columns.map(col => ({ wpx: col._width }));\n }\n for (let colIdx = 0; colIdx < columns.length; colIdx++) {\n const col = columns[colIdx];\n if (col.exported === false || !col.index || !(!col.buttons || col.buttons.length === 0)) {\n ++loseCount;\n continue;\n }\n ++validColCount;\n const columnName = this.xlsxSrv.numberToSchema(colIdx + 1 - loseCount);\n sheet[`${columnName}1`] = {\n t: 's',\n v: typeof col.title === 'object' ? col.title.text : col.title\n };\n for (let dataIdx = 0; dataIdx < dataLen; dataIdx++) {\n sheet[`${columnName}${dataIdx + 2}`] = this._stGet(opt.data![dataIdx], col, dataIdx, colIdx);\n }\n }\n\n if (validColCount > 0 && dataLen > 0) {\n sheet['!ref'] = `A1:${this.xlsxSrv.numberToSchema(validColCount)}${dataLen + 1}`;\n }\n\n return sheets;\n }\n\n async export(opt: STExportOptions): Promise<XlsxExportResult> {\n const sheets = this.genSheet(opt);\n return this.xlsxSrv.export({\n sheets,\n filename: opt.filename,\n callback: opt.callback\n });\n }\n}\n","import { Directive, Input, OnInit, ViewContainerRef } from '@angular/core';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { STWidgetRegistry } from './st-widget';\nimport { STColumn, STData } from './st.interfaces';\n\n@Directive({ selector: '[st-widget-host]' })\nexport class STWidgetHostDirective implements OnInit {\n @Input() record!: STData;\n @Input() column!: STColumn;\n\n constructor(private stWidgetRegistry: STWidgetRegistry, private viewContainerRef: ViewContainerRef) {}\n\n ngOnInit(): void {\n const widget = this.column.widget!;\n const componentType = this.stWidgetRegistry.get(widget.type);\n\n this.viewContainerRef.clear();\n const componentRef = this.viewContainerRef.createComponent(componentType);\n const { record, column } = this;\n const data: { [key: string]: NzSafeAny } = widget.params ? widget.params({ record, column }) : { record };\n Object.keys(data).forEach(key => {\n (componentRef.instance as NzSafeAny)[key] = data[key];\n });\n }\n}\n","import { AlainSTConfig } from '@delon/util/config';\n\nexport const ST_DEFAULT_CONFIG: AlainSTConfig = {\n pi: 1,\n ps: 10,\n size: 'default',\n responsive: true,\n responsiveHideHeaderFooter: false,\n req: {\n type: 'page',\n method: 'GET',\n allInBody: false,\n lazyLoad: false,\n reName: { pi: 'pi', ps: 'ps', skip: 'skip', limit: 'limit' }\n },\n res: {\n reName: { list: ['list'], total: ['total'] }\n },\n page: {\n front: true,\n zeroIndexed: false,\n position: 'bottom',\n placement: 'right',\n show: true,\n showSize: false,\n pageSizes: [10, 20, 30, 40, 50],\n showQuickJumper: false,\n total: true,\n toTop: true,\n toTopOffset: 100,\n itemRender: null,\n simple: false\n },\n modal: {\n paramsName: 'record',\n size: 'lg',\n exact: true\n },\n drawer: {\n paramsName: 'record',\n size: 'md',\n footer: true,\n footerHeight: 55\n },\n pop: {\n title: '确认删除吗?',\n trigger: 'click',\n placement: 'top'\n },\n btnIcon: {\n theme: 'outline',\n spin: false\n },\n noIndex: 1,\n expandRowByClick: false,\n expandAccordion: false,\n widthMode: {\n type: 'default',\n strictBehavior: 'truncate'\n },\n virtualItemSize: 54,\n virtualMaxBufferPx: 200,\n virtualMinBufferPx: 100,\n iifBehavior: 'hide',\n loadingDelay: 0,\n safeType: 'safeHtml',\n date: {\n format: `yyyy-MM-dd HH:mm`\n },\n yn: {\n truth: true,\n yes: '是',\n mode: 'icon'\n }\n};\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\nimport { LocaleData } from '@delon/theme';\n\nimport { STColumnFilter, STColumnFilterMenu, STIcon } from './st.interfaces';\nimport { _STColumn } from './st.types';\n\n@Component({\n selector: 'st-filter',\n template: `\n <span\n class=\"ant-table-filter-trigger\"\n [class.active]=\"visible || f.default\"\n nz-dropdown\n [nzDropdownMenu]=\"filterMenu\"\n nzTrigger=\"click\"\n [nzClickHide]=\"false\"\n [(nzVisible)]=\"visible\"\n nzOverlayClassName=\"st__filter-wrap\"\n (click)=\"show($event)\"\n >\n <i nz-icon [nzType]=\"icon.type\" [nzTheme]=\"icon.theme!\"></i>\n </span>\n <nz-dropdown-menu #filterMenu=\"nzDropdownMenu\">\n <div class=\"ant-table-filter-dropdown\">\n <ng-container [ngSwitch]=\"f.type\">\n <div *ngSwitchCase=\"'keyword'\" class=\"st__filter-keyword\">\n <input\n type=\"text\"\n nz-input\n [attr.placeholder]=\"f.placeholder\"\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n (keyup.enter)=\"confirm()\"\n />\n </div>\n <div *ngSwitchCase=\"'number'\" class=\"p-sm st__filter-number\">\n <nz-input-number\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n [nzMin]=\"f.number!.min!\"\n [nzMax]=\"f.number!.max!\"\n [nzStep]=\"f.number!.step!\"\n [nzPrecision]=\"f.number!.precision\"\n [nzPlaceHolder]=\"f.placeholder!\"\n class=\"width-100\"\n ></nz-input-number>\n </div>\n <div *ngSwitchCase=\"'date'\" class=\"p-sm st__filter-date\">\n <nz-date-picker\n *ngIf=\"!f.date!.range\"\n nzInline\n [nzMode]=\"f.date!.mode\"\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n [nzShowNow]=\"f.date!.showNow\"\n [nzShowToday]=\"f.date!.showToday\"\n [nzDisabledDate]=\"f.date!.disabledDate\"\n [nzDisabledTime]=\"f.date!.disabledTime\"\n ></nz-date-picker>\n <nz-range-picker\n *ngIf=\"f.date!.range\"\n nzInline\n [nzMode]=\"f.date!.mode\"\n [(ngModel)]=\"f.menus![0]!.value\"\n (ngModelChange)=\"n.emit($event)\"\n [nzShowNow]=\"f.date!.showNow\"\n [nzShowToday]=\"f.date!.showToday\"\n [nzDisabledDate]=\"f.date!.disabledDate\"\n [nzDisabledTime]=\"f.date!.disabledTime\"\n ></nz-range-picker>\n </div>\n <div *ngSwitchCase=\"'time'\" class=\"p-sm st__filter-time\"> </div>\n <div *ngSwitchCase=\"'custom'\" class=\"st__filter-custom\">\n <ng-template\n [ngTemplateOutlet]=\"f.custom!\"\n [ngTemplateOutletContext]=\"{ $implicit: f, col: col }\"\n ></ng-template>\n </div>\n <ul *ngSwitchDefault nz-menu>\n <ng-container *ngIf=\"f.multiple\">\n <li nz-menu-item *ngFor=\"let filter of f.menus\">\n <label nz-checkbox [(ngModel)]=\"filter.checked\" (ngModelChange)=\"checkboxChange()\">\n {{ filter.text }}\n </label>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!f.multiple\">\n <li nz-menu-item *ngFor=\"let filter of f.menus\">\n <label nz-radio [ngModel]=\"filter.checked\" (ngModelChange)=\"radioChange(filter)\">\n {{ filter.text }}\n </label>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n <div *ngIf=\"f.showOPArea\" class=\"ant-table-filter-dropdown-btns\">\n <a class=\"ant-table-filter-dropdown-link confirm\" (click)=\"visible = false\">\n <span (click)=\"confirm()\">{{ f.confirmText || locale.filterConfirm }}</span>\n </a>\n <a class=\"ant-table-filter-dropdown-link clear\" (click)=\"visible = false\">\n <span (click)=\"reset()\">{{ f.clearText || locale.filterReset }}</span>\n </a>\n </div>\n </div>\n </nz-dropdown-menu>\n `,\n host: {\n '[class.ant-table-filter-trigger-container]': `true`,\n '[class.st__filter]': `true`,\n '[class.ant-table-filter-trigger-container-open]': `visible`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class STFilterComponent {\n visible = false;\n @Input() col!: _STColumn;\n @Input() locale: LocaleData = {};\n @Input() f!: STColumnFilter;\n @Output() readonly n = new EventEmitter<unknown>();\n @Output() readonly handle = new EventEmitter<boolean>();\n get icon(): STIcon {\n return this.f.icon as STIcon;\n }\n\n show($event: MouseEvent): void {\n $event.stopPropagation();\n }\n\n checkboxChange(): void {\n this.n.emit(this.f.menus?.filter(w => w.checked));\n }\n\n radioChange(item: STColumnFilterMenu): void {\n this.f.menus!.forEach(i => (i.checked = false));\n item.checked = !item.checked;\n this.n.emit(item);\n }\n\n confirm(): void {\n this.handle.emit(true);\n }\n\n reset(): void {\n this.handle.emit(false);\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { DecimalPipe, DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Host,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChange,\n SimpleChanges,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { from, isObservable, Observable, of, Subject, Subscription } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport {\n AlainI18NService,\n ALAIN_I18N_TOKEN,\n DatePipe,\n DelonLocaleService,\n DrawerHelper,\n LocaleData,\n ModalHelper,\n YNPipe\n} from '@delon/theme';\nimport { AlainConfigService, AlainSTConfig } from '@delon/util/config';\nimport { BooleanInput, InputBoolean, InputNumber, NumberInput, toBoolean } from '@delon/util/decorator';\nimport { deepCopy, deepMergeKey } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzContextMenuService, NzDropdownMenuComponent } from 'ng-zorro-antd/dropdown';\nimport { NzResizeEvent } from 'ng-zorro-antd/resizable';\nimport { NzTableComponent } from 'ng-zorro-antd/table';\n\nimport { STColumnSource } from './st-column-source';\nimport { STDataSource, STDataSourceOptions, STDataSourceResult } from './st-data-source';\nimport { STExport } from './st-export';\nimport { STRowSource } from './st-row.directive';\nimport { ST_DEFAULT_CONFIG } from './st.config';\nimport {\n STChange,\n STChangeType,\n STClickRowClassName,\n STClickRowClassNameType,\n STColumn,\n STColumnButton,\n STColumnSafeType,\n STColumnSelection,\n STContextmenuFn,\n STContextmenuItem,\n STCustomRequestOptions,\n STData,\n STError,\n STExportOptions,\n STLoadOptions,\n STMultiSort,\n STPage,\n STReq,\n STRes,\n STResetColumnsOption,\n STResizable,\n STRowClassName,\n STSingleSort,\n STStatisticalResults,\n STWidthMode\n} from './st.interfaces';\nimport { _STColumn, _STDataValue, _STHeader, _STTdNotify, _STTdNotifyType } from './st.types';\n\n@Component({\n selector: 'st',\n exportAs: 'st',\n templateUrl: './st.component.html',\n providers: [STDataSource, STRowSource, STColumnSource, STExport, DatePipe, YNPipe, DecimalPipe],\n host: {\n '[class.st]': `true`,\n '[class.st__p-left]': `page.placement === 'left'`,\n '[class.st__p-center]': `page.placement === 'center'`,\n '[class.st__width-strict]': `widthMode.type === 'strict'`,\n '[class.ant-table-rep]': `responsive`,\n '[class.ant-table-rep__hide-header-footer]': `responsiveHideHeaderFooter`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class STComponent implements AfterViewInit, OnChanges, OnDestroy {\n static ngAcceptInputType_ps: NumberInput;\n static ngAcceptInputType_pi: NumberInput;\n static ngAcceptInputType_total: NumberInput;\n static ngAcceptInputType_loadingDelay: NumberInput;\n static ngAcceptInputType_bordered: BooleanInput;\n static ngAcceptInputType_expandRowByClick: BooleanInput;\n static ngAcceptInputType_expandAccordion: BooleanInput;\n static ngAcceptInputType_responsive: BooleanInput;\n static ngAcceptInputType_responsiveHideHeaderFooter: BooleanInput;\n static ngAcceptInputType_virtualScroll: BooleanInput;\n static ngAcceptInputType_virtualItemSize: NumberInput;\n static ngAcceptInputType_virtualMaxBufferPx: NumberInput;\n static ngAcceptInputType_virtualMinBufferPx: NumberInput;\n\n private destroy$ = new Subject<void>();\n private data$?: Subscription;\n private totalTpl = ``;\n private cog!: AlainSTConfig;\n private _req!: STReq;\n private _res!: STRes;\n private _page!: STPage;\n private _widthMode!: STWidthMode;\n private customWidthConfig: boolean = false;\n _widthConfig: string[] = [];\n locale: LocaleData = {};\n _loading = false;\n _data: STData[] = [];\n _statistical: STStatisticalResults = {};\n _isPagination = true;\n _allChecked = false;\n _allCheckedDisabled = false;\n _indeterminate = false;\n _headers: _STHeader[][] = [];\n _columns: _STColumn[] = [];\n contextmenuList: STContextmenuItem[] = [];\n @ViewChild('table') readonly orgTable!: NzTableComponent<STData>;\n @ViewChild('contextmenuTpl') readonly contextmenuTpl!: NzDropdownMenuComponent;\n\n @Input()\n get req(): STReq {\n return this._req;\n }\n set req(value: STReq) {\n this._req = deepMergeKey({}, true, this.cog.req, value);\n }\n /** 返回体配置 */\n @Input()\n get res(): STRes {\n return this._res;\n }\n set res(value: STRes) {\n const item = (this._res = deepMergeKey({}, true, this.cog.res, value));\n const reName = item.reName!;\n if (!Array.isArray(reName.list)) reName.list = reName.list!.split('.');\n if (!Array.isArray(reName.total)) reName.total = reName.total!.split('.');\n this._res = item;\n }\n @Input()\n get page(): STPage {\n return this._page;\n }\n set page(value: STPage) {\n this._page = { ...this.cog.page, ...value };\n this.updateTotalTpl();\n }\n @Input() data!: string | STData[] | Observable<STData[]>;\n @Input() columns: STColumn[] = [];\n @Input() contextmenu?: STContextmenuFn;\n @Input() @InputNumber() ps = 10;\n @Input() @InputNumber() pi = 1;\n @Input() @InputNumber() total = 0;\n @Input() loading: boolean | null = null;\n @Input() @InputNumber() loadingDelay = 0;\n @Input() loadingIndicator: TemplateRef<void> | null = null;\n @Input() @InputBoolean() bordered = false;\n @Input() size!: 'small' | 'middle' | 'default';\n @Input() scroll: { x?: string | null; y?: string | null } = { x: null, y: null };\n @Input() singleSort?: STSingleSort;\n private _multiSort?: STMultiSort;\n @Input()\n get multiSort(): NzSafeAny {\n return this._multiSort;\n }\n set multiSort(value: NzSafeAny) {\n if (\n (typeof value === 'boolean' && !toBoolean(value)) ||\n (typeof value === 'object' && Object.keys(value).length === 0)\n ) {\n this._multiSort = undefined;\n return;\n }\n this._multiSort = {\n ...(typeof value === 'object' ? value : {})\n };\n }\n @Input() rowClassName?: STRowClassName;\n @Input() clickRowClassName?: STClickRowClassName | null;\n @Input()\n set widthMode(value: STWidthMode) {\n this._widthMode = { ...this.cog.widthMode, ...value };\n }\n get widthMode(): STWidthMode {\n return this._widthMode;\n }\n @Input()\n set widthConfig(val: string[]) {\n this._widthConfig = val;\n this.customWidthConfig = val && val.length > 0;\n }\n private _resizable?: STResizable;\n @Input()\n set resizable(val: STResizable | boolean | string) {\n this._resizable = typeof val === 'object' ? val : { disabled: !toBoolean(val) };\n }\n @Input() header?: string | TemplateRef<void> | null;\n @Input() @InputBoolean() showHeader = true;\n @Input() footer?: string | TemplateRef<void> | null;\n @Input() bodyHeader?: TemplateRef<STStatisticalResults> | null;\n @Input() body?: TemplateRef<STStatisticalResults> | null;\n @Input() @InputBoolean() expandRowByClick = false;\n @Input() @InputBoolean() expandAccordion = false;\n @Input() expand: TemplateRef<{ $implicit: NzSafeAny; column: STColumn }> | null = null;\n @Input() noResult?: string | TemplateRef<void> | null;\n @Input() @InputBoolean() responsive: boolean = true;\n @Input() @InputBoolean() responsiveHideHeaderFooter?: boolean;\n @Output() readonly error = new EventEmitter<STError>();\n @Output() readonly change = new EventEmitter<STChange>();\n @Input() @InputBoolean() virtualScroll = false;\n @Input() @InputNumber() virtualItemSize = 54;\n @Input() @InputNumber() virtualMaxBufferPx = 200;\n @Input() @InputNumber() virtualMinBufferPx = 100;\n @Input() customRequest?: (options: STCustomRequestOptions) => Observable<NzSafeAny>;\n @Input() virtualForTrackBy: TrackByFunction<STData> = index => index;\n\n /**\n * Get the number of the current page\n */\n get count(): number {\n return this._data.length;\n }\n\n /**\n * Get the data of the current page\n */\n get list(): STData[] {\n return this._data;\n }\n\n constructor(\n @Optional() @Inject(ALAIN_I18N_TOKEN) i18nSrv: AlainI18NService,\n private cdr: ChangeDetectorRef,\n private el: ElementRef,\n private exportSrv: STExport,\n @Inject(DOCUMENT) private doc: NzSafeAny,\n private columnSource: STColumnSource,\n private dataSource: STDataSource,\n private delonI18n: DelonLocaleService,\n configSrv: AlainConfigService,\n private cms: NzContextMenuService\n ) {\n this.setCog(configSrv.merge('st', ST_DEFAULT_CONFIG)!);\n\n this.delonI18n.change.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.locale = this.delonI18n.getData('st');\n if (this._columns.length > 0) {\n this.updateTotalTpl();\n this.cd();\n }\n });\n\n i18nSrv.change\n .pipe(\n takeUntil(this.destroy$),\n filter(() => this._columns.length > 0)\n )\n .subscribe(() => this.refreshColumns());\n }\n\n private setCog(cog: AlainSTConfig): void {\n const copyMultiSort = { ...cog.multiSort };\n // Because multiSort.global will affect the result, it should be removed first, and multiSort will be operated again after processing.\n delete cog.multiSort;\n this.cog = cog;\n Object.assign(this, cog);\n\n if (copyMultiSort.global !== false) {\n this.multiSort = copyMultiSort;\n }\n this.columnSource.setCog(cog);\n }\n\n cd(): this {\n this.cdr.detectChanges();\n return this;\n }\n\n private refreshData(): this {\n this._data = [...this._data];\n return this.cd();\n }\n\n renderTotal(total: string, range: string[]): string {\n return this.totalTpl\n ? this.totalTpl.replace('{{total}}', total).replace('{{range[0]}}', range[0]).replace('{{range[1]}}', range[1])\n : '';\n }\n\n private changeEmit(type: STChangeType, data?: NzSafeAny): void {\n const res: STChange = {\n type,\n pi: this.pi,\n ps: this.ps,\n total: this.total\n };\n if (data != null) {\n res[type] = data;\n }\n this.change.emit(res);\n }\n\n // #region data\n\n /**\n * 获取过滤后所有数据\n * - 本地数据:包含排序、过滤后不分页数据\n * - 远程数据:不传递 `pi`、`ps` 两个参数\n */\n get filteredData(): Promise<STData[]> {\n return this.loadData({ paginator: false } as NzSafeAny).then(res => res.list);\n }\n\n private updateTotalTpl(): void {\n const { total } = this.page;\n if (typeof total === 'string' && total.length) {\n this.totalTpl = total;\n } else if (toBoolean(total)) {\n this.totalTpl = this.locale.total;\n } else {\n this.totalTpl = '';\n }\n }\n\n private setLoading(val: boolean): void {\n if (this.loading == null) {\n this._loading = val;\n this.cdr.detectChanges();\n }\n }\n\n private loadData(options?: STDataSourceOptions): Promise<STDataSourceResult> {\n const { pi, ps, data, req, res, page, total, singleSort, multiSort, rowClassName } = this;\n return new Promise((resolvePromise, rejectPromise) => {\n if (this.data$) {\n this.data$.unsubscribe();\n }\n\n this.data$ = this.dataSource\n .process({\n pi,\n ps,\n total,\n data,\n req,\n res,\n page,\n columns: this._columns,\n singleSort,\n multiSort,\n rowClassName,\n paginator: true,\n customRequest: this.customRequest || this.cog.customRequest,\n ...options\n })\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: result => resolvePromise(result),\n error: error => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn('st.loadDate', error);\n }\n rejectPromise(error);\n }\n });\n });\n }\n\n private async loadPageData(): Promise<this> {\n this.setLoading(true);\n try {\n const result = await this.loadData();\n this.setLoading(false);\n if (typeof result.pi !== 'undefined') {\n this.pi = result.pi;\n }\n if (typeof result.ps !== 'undefined') {\n this.ps = result.ps;\n }\n if (typeof result.total !== 'undefined') {\n this.total = result.total;\n }\n if (typeof result.pageShow !== 'undefined') {\n this._isPagination = result.pageShow;\n }\n this._data = result.list;\n this._statistical = result.statistical as STStatisticalResults;\n this.changeEmit('loaded', result.list);\n // Should be re-render in next tike when using virtual scroll\n // https://github.com/ng-alain/ng-alain/issues/1836\n if (this.cdkVirtualScrollViewport) {\n Promise.resolve().then(() => this.cdkVirtualScrollViewport.checkViewportSize());\n }\n return this._refCheck();\n } catch (error) {\n this.setLoading(false);\n if (!this.destroy$.isStopped) {\n this.cdr.detectChanges();\n this.error.emit({ type: 'req', error });\n }\n return this;\n }\n }\n\n /** 清空所有数据 */\n clear(cleanStatus: boolean = true): this {\n if (cleanStatus) {\n this.clearStatus();\n }\n this._data = [];\n return this.cd();\n }\n\n /** 清空所有状态 */\n clearStatus(): this {\n return this.clearCheck().clearRadio().clearFilter().clearSort();\n }\n\n /**\n * 根据页码重新加载数据\n *\n * @param pi 指定当前页码,默认:`1`\n * @param extraParams 重新指定 `extraParams` 值\n * @param options 选项\n */\n load(pi: number = 1, extraParams?: NzSafeAny, options?: STLoadOptions): this {\n if (pi !== -1) this.pi = pi;\n if (typeof extraParams !== 'undefined') {\n this.req.params = options && options.merge ? { ...this.req.params, ...extraParams } : extraParams;\n }\n this._change('pi', options);\n return this;\n }\n\n /**\n * 重新刷新当前页\n *\n * @param extraParams 重新指定 `extraParams` 值\n */\n reload(extraParams?: NzSafeAny, options?: STLoadOptions): this {\n return this.load(-1, extraParams, options);\n }\n\n /**\n * 重置且重新设置 `pi` 为 `1`,包含以下值:\n * - `check` 数据\n * - `radio` 数据\n * - `sort` 数据\n * - `fileter` 数据\n *\n * @param extraParams 重新指定 `extraParams` 值\n */\n reset(extraParams?: NzSafeAny, options?: STLoadOptions): this {\n this.clearStatus().load(1, extraParams, options);\n return this;\n }\n\n private _toTop(enforce?: boolean): void {\n if (!(enforce == null ? this.page.toTop : enforce)) return;\n const el = this.el.nativeElement as HTMLElement;\n el.scrollIntoView();\n // fix header height\n this.doc.documentElement.scrollTop -= this.page.toTopOffset!;\n if (this.scroll) {\n if (this.cdkVirtualScrollViewport) {\n this.cdkVirtualScrollViewport.scrollTo({\n top: 0,\n left: 0\n });\n } else {\n el.querySelector('.ant-table-body, .ant-table-content')?.scrollTo(0, 0);\n }\n }\n }\n\n _change(type: 'pi' | 'ps', options?: STLoadOptions): void {\n if (type === 'pi' || (type === 'ps' && this.pi <= Math.ceil(this.total / this.ps))) {\n this.loadPageData().then(() => this._toTop(options?.toTop));\n }\n\n this.changeEmit(type);\n }\n\n private closeOtherExpand(item: STData): void {\n if (this.expandAccordion === false) return;\n this._data.filter(i => i !== item).forEach(i => (i.expand = false));\n }\n\n _rowClick(e: Event, item: STData, index: number, dbl: boolean): void {\n const el = e.target as HTMLElement;\n if (el.nodeName === 'INPUT') return;\n const { expand, expandRowByClick } = this;\n if (!!expand && item.showExpand !== false && expandRowByClick) {\n item.expand = !item.expand;\n this.closeOtherExpand(item);\n this.changeEmit('expand', item);\n return;\n }\n\n const data = { e, item, index };\n if (dbl) {\n this.changeEmit('dblClick', data);\n } else {\n this._clickRowClassName(el, item, index);\n this.changeEmit('click', data);\n }\n }\n\n private _clickRowClassName(el: HTMLElement, item: STData, index: number): void {\n const cr = this.clickRowClassName;\n if (cr == null) return;\n const config = {\n exclusive: false,\n ...(typeof cr === 'string' ? { fn: () => cr } : cr)\n } as STClickRowClassNameType;\n const className = config.fn(item, index);\n const trEl = el.closest('tr') as HTMLElement;\n if (config.exclusive) {\n trEl.parentElement!!.querySelectorAll('tr').forEach((a: HTMLElement) => a.classList.remove(className));\n }\n if (trEl.classList.contains(className)) {\n trEl.classList.remove(className);\n } else {\n trEl.classList.add(className);\n }\n }\n\n _expandChange(item: STData, expand: boolean): void {\n item.expand = expand;\n this.closeOtherExpand(item);\n this.changeEmit('expand', item);\n }\n\n _stopPropagation(ev: Event): void {\n ev.stopPropagation();\n }\n\n /**\n * Remove a row in the table, like this:\n *\n * ```\n * this.st.removeRow(0)\n * this.st.removeRow(stDataItem)\n * ```\n */\n removeRow(data: STData | STData[] | number): this {\n if (typeof data === 'number') {\n this._data.splice(data, 1);\n } else {\n if (!Array.isArray(data)) {\n data = [data];\n }\n\n (data as STData[])\n .map(item => this._data.indexOf(item))\n .filter(pos => pos !== -1)\n .forEach(pos => this._data.splice(pos, 1));\n }\n // recalculate no\n this._columns\n .filter(w => w.type === 'no')\n .forEach(c =>\n this._data.forEach((i, idx) => {\n const text = `${this.dataSource.getNoIndex(i, c, idx)}`;\n i._values![c.__point!] = { text, _text: text, org: idx, safeType: 'text' } as _STDataValue;\n })\n );\n\n return this.refreshData();\n }\n\n /**\n * Sets the row value for the `index` in the table, like this:\n *\n * - `optinos.refreshSchema` Whether to refresh of st schemas\n * - `optinos.emitReload` Whether to trigger a reload http request when data is url\n *\n * ```\n * this.st.setRow(0, { price: 100 })\n * this.st.setRow(0, { price: 100, name: 'asdf' })\n * this.st.setRow(item, { price: 100 })\n * ```\n */\n setRow(index: number | STData, item: STData, options?: { refreshSchema?: boolean; emitReload?: boolean }): this {\n options = { refreshSchema: false, emitReload: false, ...options };\n if (typeof index !== 'number') {\n index = this._data.indexOf(index);\n }\n this._data[index] = deepMergeKey(this._data[index], false, item);\n this.optimizeData();\n if (options.refreshSchema) {\n this.resetColumns({ emitReload: options.emitReload });\n return this;\n }\n return this.refreshData();\n }\n\n // #endregion\n\n // #region sort\n\n sort(col: _STColumn, idx: number, value: NzSafeAny): void {\n if (this.multiSort) {\n col._sort.default = value;\n col._sort.tick = this.dataSource.nextSortTick;\n } else {\n this._columns.forEach((item, index) => (item._sort.default = index === idx ? value : null));\n }\n this.cdr.detectChanges();\n this.loadPageData();\n const res = {\n value,\n map: this.dataSource.getReqSortMap(this.singleSort, this.multiSort, this._columns),\n column: col\n };\n this.changeEmit('sort', res);\n }\n\n clearSort(): this {\n this._columns.forEach(item => (item._sort.default = null));\n return this;\n }\n\n // #endregion\n\n // #region filter\n\n _handleFilter(col: _STColumn, confirm: boolean): void {\n if (!confirm) {\n this.columnSource.cleanFilter(col);\n }\n // 过滤表示一种数据的变化应重置页码为 `1`\n this.pi = 1;\n this.columnSource.updateDefault(col.filter!);\n this.loadPageData();\n this.changeEmit('filter', col);\n }\n\n handleFilterNotify(value?: unknown): void {\n this.changeEmit('filterChange', value);\n }\n\n clearFilter(): this {\n this._columns.filter(w => w.filter && w.filter.default === true).forEach(col => this.columnSource.cleanFilter(col));\n return this;\n }\n // #endregion\n\n // #region checkbox\n\n /** 清除所有 `checkbox` */\n clearCheck(): this {\n return this.checkAll(false);\n }\n\n private _refCheck(): this {\n const validData = this._data.filter(w => !w.disabled);\n const checkedList = validData.filter(w => w.checked === true);\n this._allChecked = checkedList.length > 0 && checkedList.length === validData.length;\n const allUnChecked = validData.every(value => !value.checked);\n this._indeterminate = !this._allChecked && !allUnChecked;\n this._allCheckedDisabled = this._data.length === this._data.filter(w => w.disabled).length;\n return this.cd();\n }\n\n checkAll(checked?: boolean): this {\n checked = typeof checked === 'undefined' ? this._allChecked : checked;\n this._data.filter(w => !w.disabled).forEach(i => (i.checked = checked));\n return this._refCheck()._checkNotify().refreshData();\n }\n\n _rowSelection(row: STColumnSelection): this {\n row.select(this._data);\n return this._refCheck()._checkNotify();\n }\n\n _checkNotify(): this {\n const res = this._data.filter(w => !w.disabled && w.checked === true);\n this.changeEmit('checkbox', res);\n return this;\n }\n\n // #endregion\n\n // #region radio\n\n /** 清除所有 `radio` */\n clearRadio(): this {\n this._data.filter(w => w.checked).forEach(item => (item.checked = false));\n this.changeEmit('radio', null);\n return this.refreshData();\n }\n\n // #endregion\n\n _handleTd(ev: _STTdNotify): void {\n switch (ev.type) {\n case 'checkbox':\n this._refCheck()._checkNotify();\n break;\n case 'radio':\n this.changeEmit('radio', ev.item);\n this.refreshData();\n break;\n }\n }\n\n // #region export\n\n /**\n * 导出当前页,确保已经注册 `XlsxModule`\n *\n * @param newData 重新指定数据;若为 `true` 表示使用 `filteredData` 数据\n * @param opt 额外参数\n */\n export(newData?: STData[] | true, opt?: STExportOptions): void {\n const data = Array.isArray(newData)\n ? this.dataSource.optimizeData({ columns: this._columns, result: newData })\n : this._data;\n (newData === true ? from(this.filteredData) : of(data)).subscribe((res: STData[]) =>\n this.exportSrv.export({\n columens: this._columns,\n ...opt,\n data: res\n })\n );\n }\n\n // #endregion\n\n // #region resizable\n\n colResize({ width }: NzResizeEvent, column: _STColumn): void {\n column.width = `${width}px`;\n this.changeEmit('resize', column);\n }\n\n // #endregion\n\n // #region contextmenu\n onContextmenu(event: MouseEvent): void {\n if (!this.contextmenu) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n const colEl = (event.target as HTMLElement).closest('[data-col-index]') as HTMLElement;\n if (!colEl) {\n return;\n }\n const colIndex = Number(colEl.dataset.colIndex);\n const rowIndex = Number((colEl.closest('tr') as HTMLElement).dataset.index);\n const isTitle = isNaN(rowIndex);\n const obs$ = this.contextmenu({\n event,\n type: isTitle ? 'head' : 'body',\n rowIndex: isTitle ? null : rowIndex,\n colIndex,\n data: isTitle ? null : this.list[rowIndex],\n column: this._columns[colIndex]\n });\n (isObservable(obs$) ? obs$ : of(obs$))\n .pipe(\n takeUntil(this.destroy$),\n filter(res => res.length > 0)\n )\n .subscribe(res => {\n this.contextmenuList = res.map(i => {\n if (!Array.isArray(i.children)) {\n i.children = [];\n }\n return i;\n });\n this.cdr.detectChanges();\n this.cms.create(event, this.contextmenuTpl);\n });\n }\n // #endregion\n\n get cdkVirtualScrollViewport(): CdkVirtualScrollViewport {\n return this.orgTable.cdkVirtualScrollViewport!;\n }\n\n resetColumns(options?: STResetColumnsOption): Promise<this> {\n options = { emitReload: true, preClearData: false, ...options };\n if (typeof options.columns !== 'undefined') {\n this.columns = options.columns;\n }\n if (typeof options.pi !== 'undefined') {\n this.pi = options.pi;\n }\n if (typeof options.ps !== 'undefined') {\n this.ps = options.ps;\n }\n if (options.emitReload) {\n // Should clean data, Because of changing columns may cause inaccurate data\n options.preClearData = true;\n }\n if (options.preClearData) {\n this._data = [];\n }\n this.refreshColumns();\n if (options.emitReload) {\n return this.loadPageData();\n } else {\n this.cd();\n return Promise.resolve(this);\n }\n }\n\n private refreshColumns(): this {\n const res = this.columnSource.process(this.columns as _STColumn[], {\n widthMode: this.widthMode,\n resizable: this._resizable,\n safeType: this.cog.safeType as STColumnSafeType\n });\n this._columns = res.columns;\n this._headers = res.headers;\n if (this.customWidthConfig === false && res.headerWidths != null) {\n this._widthConfig = res.headerWidths;\n }\n return this;\n }\n\n private optimizeData(): void {\n this._data = this.dataSource.optimizeData({\n columns: this._columns,\n result: this._data,\n rowClassName: this.rowClassName\n });\n }\n\n /**\n * Return pure data, `st` internally maintains a set of data for caching, this part of data may affect the backend\n *\n * 返回纯净数据,`st` 内部会维护一组用于缓存的数据,这部分数据可能会影响后端\n */\n pureItem(itemOrIndex: STData | number): STData | null {\n if (typeof itemOrIndex === 'number') {\n itemOrIndex = this._data[itemOrIndex];\n }\n if (!itemOrIndex) {\n return null;\n }\n const copyItem = deepCopy(itemOrIndex);\n delete copyItem._values;\n return copyItem;\n }\n\n ngAfterViewInit(): void {\n this.columnSource.restoreAllRender(this._columns);\n }\n\n ngOnChanges(changes: { [P in keyof this]?: SimpleChange } & SimpleChanges): void {\n if (changes.columns) {\n this.refreshColumns().optimizeData();\n }\n const changeData = changes.data;\n if (changeData && changeData.currentValue && !(this.req.lazyLoad && changeData.firstChange)) {\n this.loadPageData();\n }\n if (changes.loading) {\n this._loading = changes.loading.currentValue;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n\n@Component({\n selector: 'st-td',\n templateUrl: './st-td.component.html',\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class STTdComponent {\n @Input() c!: _STColumn;\n @Input() cIdx!: number;\n @Input() data!: STData[];\n @Input() i!: STData;\n @Input() index!: number;\n @Output() readonly n = new EventEmitter<_STTdNotify>();\n\n private get routerState(): { pi: number; ps: number; total: number } {\n const { pi, ps, total } = this.stComp;\n return { pi, ps, total };\n }\n\n constructor(\n @Host() private stComp: STComponent,\n private router: Router,\n private modalHelper: ModalHelper,\n private drawerHelper: DrawerHelper\n ) {}\n\n private report(type: _STTdNotifyType): void {\n this.n.emit({ type, item: this.i, col: this.c });\n }\n\n _checkbox(value: boolean): void {\n this.i.checked = value;\n this.report('checkbox');\n }\n\n _radio(): void {\n this.data.filter(w => !w.disabled).forEach(i => (i.checked = false));\n this.i.checked = true;\n this.report('radio');\n }\n\n _link(e: Event): boolean {\n this._stopPropagation(e);\n const res = this.c.click!(this.i, this.stComp);\n if (typeof res === 'string') {\n this.router.navigateByUrl(res, { state: this.routerState });\n }\n return false;\n }\n\n _stopPropagation(ev: Event): void {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n _btn(btn: STColumnButton, ev?: Event): void {\n if (ev) {\n ev.stopPropagation();\n }\n const record = this.i;\n if (btn.type === 'modal' || btn.type === 'static') {\n const { modal } = btn;\n const obj = { [modal!.paramsName!]: record };\n (this.modalHelper[btn.type === 'modal' ? 'create' : 'createStatic'] as NzSafeAny)(\n modal!.component,\n { ...obj, ...(modal!.params && modal!.params!(record)) },\n deepMergeKey({}, true, this.stComp['cog'].modal, modal)\n )\n .pipe(filter(w => typeof w !== 'undefined'))\n .subscribe((res: NzSafeAny) => this.btnCallback(record, btn, res));\n return;\n } else if (btn.type === 'drawer') {\n const { drawer } = btn;\n const obj = { [drawer!.paramsName!]: record };\n this.drawerHelper\n .create(\n drawer!.title!,\n drawer!.component,\n { ...obj, ...(drawer!.params && drawer!.params!(record)) },\n deepMergeKey({}, true, this.stComp['cog'].drawer, drawer)\n )\n .pipe(filter(w => typeof w !== 'undefined'))\n .subscribe(res => this.btnCallback(record, btn, res));\n return;\n } else if (btn.type === 'link') {\n const clickRes = this.btnCallback(record, btn);\n if (typeof clickRes === 'string') {\n this.router.navigateByUrl(clickRes, { state: this.routerState });\n }\n return;\n }\n this.btnCallback(record, btn);\n }\n\n private btnCallback(record: STData, btn: STColumnButton, modal?: NzSafeAny): NzSafeAny {\n if (!btn.click) return;\n if (typeof btn.click === 'string') {\n switch (btn.click) {\n case 'load':\n this.stComp.load();\n break;\n case 'reload':\n this.stComp.reload();\n break;\n }\n } else {\n return btn.click(record, modal, this.stComp);\n }\n }\n}\n","<ng-template #titleTpl let-i>\n <span [innerHTML]=\"i._text\"></span>\n <small *ngIf=\"i.optional\" class=\"st__head-optional\" [innerHTML]=\"i.optional\"></small>\n <i\n *ngIf=\"i.optionalHelp\"\n class=\"st__head-tip\"\n nz-tooltip\n [nzTooltipTitle]=\"i.optionalHelp\"\n nz-icon\n nzType=\"question-circle\"\n ></i>\n</ng-template>\n<ng-template #chkAllTpl let-custom>\n <label\n nz-checkbox\n class=\"st__checkall\"\n [nzDisabled]=\"_allCheckedDisabled\"\n [(ngModel)]=\"_allChecked\"\n [nzIndeterminate]=\"_indeterminate\"\n (ngModelChange)=\"checkAll()\"\n [class.ant-table-selection-select-all-custom]=\"custom\"\n ></label>\n</ng-template>\n<nz-table\n #table\n [nzData]=\"_data\"\n [(nzPageIndex)]=\"pi\"\n (nzPageIndexChange)=\"_change('pi')\"\n [(nzPageSize)]=\"ps\"\n (nzPageSizeChange)=\"_change('ps')\"\n [nzTotal]=\"total\"\n [nzShowPagination]=\"_isPagination\"\n [nzFrontPagination]=\"false\"\n [nzBordered]=\"bordered\"\n [nzSize]=\"size\"\n [nzLoading]=\"_loading\"\n [nzLoadingDelay]=\"loadingDelay\"\n [nzLoadingIndicator]=\"loadingIndicator\"\n [nzTitle]=\"header!\"\n [nzFooter]=\"footer!\"\n [nzScroll]=\"scroll\"\n [nzVirtualItemSize]=\"virtualItemSize\"\n [nzVirtualMaxBufferPx]=\"virtualMaxBufferPx\"\n [nzVirtualMinBufferPx]=\"virtualMinBufferPx\"\n [nzVirtualForTrackBy]=\"virtualForTrackBy\"\n [nzNoResult]=\"noResult!\"\n [nzPageSizeOptions]=\"page.pageSizes!\"\n [nzShowQuickJumper]=\"page.showQuickJumper\"\n [nzShowSizeChanger]=\"page.showSize\"\n [nzPaginationPosition]=\"page.position!\"\n [nzPaginationType]=\"page.type!\"\n [nzItemRender]=\"page.itemRender!\"\n [nzSimple]=\"page.simple\"\n [nzShowTotal]=\"totalTpl\"\n [nzWidthConfig]=\"_widthConfig\"\n (contextmenu)=\"onContextmenu($event)\"\n>\n <thead *ngIf=\"showHeader\">\n <tr *ngFor=\"let row of _headers; let rowFirst = first\">\n <th *ngIf=\"rowFirst && expand\" nzWidth=\"50px\" [rowSpan]=\"_headers.length\"></th>\n <ng-container *ngFor=\"let h of row; let index = index; let last = last\">\n <th\n *let=\"h.column as _c\"\n [colSpan]=\"h.colSpan\"\n [rowSpan]=\"h.rowSpan\"\n [nzWidth]=\"$any(_c).width\"\n [nzLeft]=\"_c._left!\"\n [nzRight]=\"_c._right!\"\n [ngClass]=\"_c.className!\"\n [attr.data-col]=\"_c.indexKey\"\n [attr.data-col-index]=\"index\"\n [nzShowSort]=\"_c._sort.enabled\"\n [nzSortOrder]=\"$any(_c)._sort.default\"\n (nzSortOrderChange)=\"sort(_c, index, $event)\"\n [nzCustomFilter]=\"$any(_c).filter\"\n nz-resizable\n [nzDisabled]=\"last || $any(_c).resizable.disabled\"\n [nzMaxWidth]=\"$any(_c).resizable.maxWidth\"\n [nzMinWidth]=\"$any(_c).resizable.minWidth\"\n [nzBounds]=\"$any(_c).resizable.bounds\"\n [nzPreview]=\"$any(_c).resizable.preview\"\n (nzResizeEnd)=\"colResize($event, _c)\"\n >\n <nz-resize-handle *ngIf=\"$any(!last && !$any(_c).resizable.disabled)\" nzDirection=\"right\">\n <i></i>\n </nz-resize-handle>\n <ng-template\n #renderTitle\n [ngTemplateOutlet]=\"_c.__renderTitle!\"\n [ngTemplateOutletContext]=\"{ $implicit: h.column, index: index }\"\n ></ng-template>\n <ng-container *ngIf=\"!_c.__renderTitle; else renderTitle\">\n <ng-container [ngSwitch]=\"_c.type\">\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <ng-container *ngIf=\"_c.selections!.length === 0\">\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: false }\">\n </ng-template>\n </ng-container>\n <div *ngIf=\"_c.selections!.length > 0\" class=\"ant-table-selection\">\n <ng-template [ngTemplateOutlet]=\"chkAllTpl\" [ngTemplateOutletContext]=\"{ $implicit: true }\">\n </ng-template>\n <div *ngIf=\"_c.selections!.length\" class=\"ant-table-selection-extra\">\n <div\n nz-dropdown\n nzPlacement=\"bottomLeft\"\n [nzDropdownMenu]=\"selectionMenu\"\n class=\"ant-table-selection-down st__checkall-selection\"\n >\n <i nz-icon nzType=\"down\"></i>\n </div>\n </div>\n <nz-dropdown-menu #selectionMenu=\"nzDropdownMenu\">\n <ul nz-menu class=\"ant-table-selection-menu\">\n <li\n nz-menu-item\n *ngFor=\"let rw of _c.selections\"\n (click)=\"_rowSelection(rw)\"\n [innerHTML]=\"rw.text\"\n ></li>\n </ul>\n </nz-dropdown-menu>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-template\n [ngTemplateOutlet]=\"titleTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: _c.title }\"\n ></ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"_c.filter\">\n <st-filter\n nz-th-extra\n [col]=\"h.column\"\n [f]=\"_c.filter\"\n [locale]=\"locale\"\n (n)=\"handleFilterNotify($event)\"\n (handle)=\"_handleFilter(_c, $event)\"\n ></st-filter>\n </ng-container>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody class=\"st__body\">\n <ng-container *ngIf=\"!_loading\">\n <ng-template\n [ngTemplateOutlet]=\"bodyHeader!\"\n [ngTemplateOutletContext]=\"{ $implicit: _statistical }\"\n ></ng-template>\n </ng-container>\n <ng-template #bodyTpl let-i let-index=\"index\">\n <tr\n [attr.data-index]=\"index\"\n (click)=\"_rowClick($event, i, index, false)\"\n (dblclick)=\"_rowClick($event, i, index, true)\"\n [ngClass]=\"i._rowClassName\"\n >\n <td\n *ngIf=\"expand\"\n [nzShowExpand]=\"expand && i.showExpand !== false\"\n [nzExpand]=\"i.expand\"\n (nzExpandChange)=\"_expandChange(i, $event)\"\n (click)=\"_stopPropagation($event)\"\n nzWidth=\"50px\"\n ></td>\n <td\n *ngFor=\"let c of _columns; let cIdx = index\"\n [nzLeft]=\"!!c._left\"\n [nzRight]=\"!!c._right\"\n [attr.data-col-index]=\"cIdx\"\n [ngClass]=\"c._className!\"\n [attr.colspan]=\"c.colSpan\"\n >\n <span *ngIf=\"responsive\" class=\"ant-table-rep__title\">\n <ng-template [ngTemplateOutlet]=\"titleTpl\" [ngTemplateOutletContext]=\"{ $implicit: c.title }\"></ng-template>\n </span>\n <st-td [data]=\"_data\" [i]=\"i\" [index]=\"index\" [c]=\"c\" [cIdx]=\"cIdx\" (n)=\"_handleTd($event)\"></st-td>\n </td>\n </tr>\n <tr [nzExpand]=\"i.expand\">\n <ng-template\n [ngTemplateOutlet]=\"expand\"\n [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\"\n ></ng-template>\n </tr>\n </ng-template>\n <ng-container *ngIf=\"!virtualScroll\">\n <ng-container *ngFor=\"let i of _data; let index = index\">\n <ng-template [ngTemplateOutlet]=\"bodyTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\">\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"virtualScroll\">\n <ng-template nz-virtual-scroll let-i let-index=\"index\">\n <ng-template [ngTemplateOutlet]=\"bodyTpl\" [ngTemplateOutletContext]=\"{ $implicit: i, index: index }\">\n </ng-template>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!_loading\">\n <ng-template [ngTemplateOutlet]=\"body!\" [ngTemplateOutletContext]=\"{ $implicit: _statistical }\"></ng-template>\n </ng-container>\n </tbody>\n <ng-template #totalTpl let-range=\"range\" let-total>{{ renderTotal(total, range) }}</ng-template>\n</nz-table>\n<nz-dropdown-menu #contextmenuTpl=\"nzDropdownMenu\">\n <ul nz-menu class=\"st__contextmenu\">\n <ng-container *ngFor=\"let i of contextmenuList\">\n <li nz-menu-item *ngIf=\"i.children!.length === 0\" (click)=\"i.fn!(i)\" [innerHTML]=\"i.text\"></li>\n <li nz-submenu *ngIf=\"i.children!.length > 0\" [nzTitle]=\"i.text\">\n <ul>\n <li nz-menu-item *ngFor=\"let ci of i.children\" (click)=\"ci.fn!(ci)\" [innerHTML]=\"ci.text\"></li>\n </ul>\n </li>\n </ng-container>\n </ul>\n</nz-dropdown-menu>\n","<ng-template #btnTpl let-i>\n <ng-container *ngIf=\"!i.tooltip\">\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\"></ng-template>\n </ng-container>\n <span *ngIf=\"i.tooltip\" nz-tooltip [nzTooltipTitle]=\"i.tooltip\">\n <ng-template [ngTemplateOutlet]=\"btnItemTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\"></ng-template>\n </span>\n</ng-template>\n<ng-template #btnItemTpl let-i>\n <a\n *ngIf=\"i.pop\"\n nz-popconfirm\n [nzPopconfirmTitle]=\"i.pop.title\"\n [nzIcon]=\"i.pop.icon\"\n [nzCondition]=\"i.pop.condition(i)\"\n [nzCancelText]=\"i.pop.cancelText\"\n [nzOkText]=\"i.pop.okText\"\n [nzOkType]=\"i.pop.okType\"\n (nzOnConfirm)=\"_btn(i)\"\n class=\"st__btn-text\"\n [ngClass]=\"i.className\"\n (click)=\"_stopPropagation($event)\"\n >\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\"></ng-template>\n </a>\n <a *ngIf=\"!i.pop\" (click)=\"_btn(i, $event)\" class=\"st__btn-text\" [ngClass]=\"i.className\">\n <ng-template [ngTemplateOutlet]=\"btnTextTpl\" [ngTemplateOutletContext]=\"{ $implicit: i }\"></ng-template>\n </a>\n</ng-template>\n<ng-template #btnTextTpl let-i>\n <ng-container *ngIf=\"i.icon\">\n <i\n *ngIf=\"!i.icon.iconfont\"\n nz-icon\n [nzType]=\"i.icon.type\"\n [nzTheme]=\"i.icon.theme\"\n [nzSpin]=\"i.icon.spin\"\n [nzTwotoneColor]=\"i.icon.twoToneColor\"\n ></i>\n <i *ngIf=\"i.icon.iconfont\" nz-icon [nzIconfont]=\"i.icon.iconfont\"></i>\n </ng-container>\n <span [innerHTML]=\"i._text\" [ngClass]=\"{ 'pl-xs': i.icon }\"></span>\n</ng-template>\n<ng-template\n #render\n [ngTemplateOutlet]=\"c.__render!\"\n [ngTemplateOutletContext]=\"{ $implicit: i, index: index, column: c }\"\n></ng-template>\n<ng-container *ngIf=\"!c.__render; else render\">\n <ng-container [ngSwitch]=\"c.type\">\n <label\n *ngSwitchCase=\"'checkbox'\"\n nz-checkbox\n [nzDisabled]=\"i.disabled\"\n [ngModel]=\"i.checked\"\n (ngModelChange)=\"_checkbox($event)\"\n ></label>\n <label\n *ngSwitchCase=\"'radio'\"\n nz-radio\n [nzDisabled]=\"i.disabled\"\n [ngModel]=\"i.checked\"\n (ngModelChange)=\"_radio()\"\n ></label>\n <a\n *ngSwitchCase=\"'link'\"\n (click)=\"_link($event)\"\n [innerHTML]=\"i._values[cIdx]._text\"\n [attr.title]=\"i._values[cIdx].text\"\n ></a>\n <ng-container *ngIf=\"i._values[cIdx].text\">\n <nz-tag *ngSwitchCase=\"'tag'\" [nzColor]=\"i._values[cIdx].color\">\n <span [innerHTML]=\"i._values[cIdx]._text\"></span>\n </nz-tag>\n <nz-badge *ngSwitchCase=\"'badge'\" [nzStatus]=\"i._values[cIdx].color\" [nzText]=\"i._values[cIdx].text\"></nz-badge>\n </ng-container>\n <ng-template *ngSwitchCase=\"'widget'\" st-widget-host [record]=\"i\" [column]=\"c\"></ng-template\n ><ng-container *ngSwitchDefault>\n <span\n *ngIf=\"c.safeType !== 'text'\"\n [innerHTML]=\"i._values[cIdx]._text\"\n [attr.title]=\"c._isTruncate ? i._values[cIdx].text : null\"\n ></span>\n <span\n *ngIf=\"c.safeType === 'text'\"\n [innerText]=\"i._values[cIdx]._text\"\n [attr.title]=\"c._isTruncate ? i._values[cIdx].text : null\"\n ></span>\n </ng-container>\n </ng-container>\n <ng-container *ngFor=\"let btn of i._values[cIdx].buttons; let last = last\">\n <a *ngIf=\"btn.children!.length > 0\" nz-dropdown [nzDropdownMenu]=\"btnMenu\" nzOverlayClassName=\"st__btn-sub\">\n <span [innerHTML]=\"btn._text\"></span>\n <i nz-icon nzType=\"down\"></i>\n </a>\n <nz-dropdown-menu #btnMenu=\"nzDropdownMenu\">\n <ul nz-menu>\n <ng-container *ngFor=\"let subBtn of btn.children!\">\n <li *ngIf=\"subBtn.type !== 'divider'\" nz-menu-item [class.st__btn-disabled]=\"subBtn._disabled\">\n <ng-template [ngTemplateOutlet]=\"btnTpl\" [ngTemplateOutletContext]=\"{ $implicit: subBtn }\"> </ng-template>\n </li>\n <li *ngIf=\"subBtn.type === 'divider'\" nz-menu-divider></li>\n </ng-container>\n </ul>\n </nz-dropdown-menu>\n <span *ngIf=\"btn.children!.length === 0\" [class.st__btn-disabled]=\"btn._disabled\">\n <ng-template [ngTemplateOutlet]=\"btnTpl\" [ngTemplateOutletContext]=\"{ $implicit: btn }\"> </ng-template>\n </span>\n <nz-divider *ngIf=\"!last\" nzType=\"vertical\"></nz-divider>\n </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { LetModule } from '@delon/abc/let';\nimport { DelonACLModule } from '@delon/acl';\nimport { NzBadgeModule } from 'ng-zorro-antd/badge';\nimport { NzCheckboxModule } from 'ng-zorro-antd/checkbox';\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\nimport { NzTableModule } from 'ng-zorro-antd/table';\nimport { NzTagModule } from 'ng-zorro-antd/tag';\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\n\nimport { STFilterComponent } from './st-filter.component';\nimport { STRowDirective } from './st-row.directive';\nimport { STWidgetHostDirective } from './st-widget-host.directive';\nimport { STComponent, STTdComponent } from './st.component';\n\nconst COMPONENTS = [STComponent, STRowDirective, STWidgetHostDirective];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n DelonACLModule,\n LetModule,\n NzPopconfirmModule,\n NzTableModule,\n NzIconModule,\n NzBadgeModule,\n NzCheckboxModule,\n NzDividerModule,\n NzDropDownModule,\n NzMenuModule,\n NzRadioModule,\n NzTagModule,\n NzInputModule,\n NzToolTipModule,\n NzResizableModule,\n NzInputNumberModule,\n NzDatePickerModule\n ],\n declarations: [...COMPONENTS, STFilterComponent, STTdComponent],\n exports: COMPONENTS\n})\nexport class STModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -299,4 +299,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
299
299
  */
300
300
 
301
301
  export { SVComponent, SVContainerComponent, SVModule, SVTitleComponent, SVValueComponent };
302
- //# sourceMappingURL=view.mjs.map
302
+ //# sourceMappingURL=sv.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sv.mjs","sources":["../../../../packages/abc/sv/sv-container.component.ts","../../../../packages/abc/sv/sv-value.component.ts","../../../../packages/abc/sv/sv.component.ts","../../../../packages/abc/sv/sv.component.html","../../../../packages/abc/sv/sv.module.ts","../../../../packages/abc/sv/sv.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Host,\n Input,\n OnInit,\n Optional,\n Renderer2,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { AlainConfigService } from '@delon/util/config';\nimport { BooleanInput, InputBoolean, InputNumber, NumberInput } from '@delon/util/decorator';\n\n@Component({\n selector: 'sv-container, [sv-container]',\n exportAs: 'svContainer',\n template: `\n <div class=\"ant-row\" [ngStyle]=\"{ 'margin-left.px': -(gutter / 2), 'margin-right.px': -(gutter / 2) }\">\n <sv-title *ngIf=\"title\">\n <ng-container *nzStringTemplateOutlet=\"title\">{{ title }}</ng-container>\n </sv-title>\n <ng-content></ng-content>\n </div>\n `,\n host: {\n '[class.sv__container]': 'true',\n '[class.sv__horizontal]': `layout === 'horizontal'`,\n '[class.sv__vertical]': `layout === 'vertical'`,\n '[class.sv__small]': `size === 'small'`,\n '[class.sv__large]': `size === 'large'`,\n '[class.clearfix]': `true`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SVContainerComponent {\n static ngAcceptInputType_gutter: NumberInput;\n static ngAcceptInputType_labelWidth: NumberInput;\n static ngAcceptInputType_col: NumberInput;\n static ngAcceptInputType_default: BooleanInput;\n static ngAcceptInputType_noColon: BooleanInput;\n\n @Input() title?: string | TemplateRef<void>;\n @Input() size!: 'small' | 'large';\n /** 列表项间距,单位为 `px` */\n @Input() @InputNumber() gutter!: number;\n @Input() layout!: 'horizontal' | 'vertical';\n @Input() @InputNumber() labelWidth?: number;\n /** 指定信息最多分几列展示,最终一行几列由 col 配置结合响应式规则决定 */\n @Input() @InputNumber() col!: number;\n @Input() @InputBoolean() default!: boolean;\n @Input() @InputBoolean() noColon = false;\n\n constructor(configSrv: AlainConfigService) {\n configSrv.attach(this, 'sv', {\n size: 'large',\n gutter: 32,\n layout: 'horizontal',\n col: 3,\n default: true\n });\n }\n}\n\n@Component({\n selector: 'sv-title, [sv-title]',\n exportAs: 'svTitle',\n template: '<ng-content></ng-content>',\n host: {\n '[class.sv__title]': 'true'\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SVTitleComponent implements OnInit {\n private el: HTMLElement;\n constructor(el: ElementRef, @Host() @Optional() private parent: SVContainerComponent, private ren: Renderer2) {\n if (parent == null) {\n throw new Error(`[sv-title] must include 'sv-container' component`);\n }\n this.el = el.nativeElement;\n }\n\n private setClass(): void {\n const { gutter } = this.parent;\n const { el } = this;\n this.ren.setStyle(el, 'padding-left', `${gutter / 2}px`);\n this.ren.setStyle(el, 'padding-right', `${gutter / 2}px`);\n }\n\n ngOnInit(): void {\n this.setClass();\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\nimport type { NzTSType } from 'ng-zorro-antd/core/types';\n\n@Component({\n selector: 'sv-value, [sv-value]',\n exportAs: 'svValue',\n template: `\n <em *ngIf=\"prefix\" class=\"sv__value-prefix\" [innerHTML]=\"prefix\"></em>\n <span nz-tooltip [nzTooltipTitle]=\"tooltip\" class=\"sv__value-text\"><ng-content></ng-content></span>\n <em *ngIf=\"unit\" class=\"sv__value-unit\" [innerHTML]=\"unit\"></em>\n `,\n host: {\n '[class.sv__value]': 'true',\n '[class.sv__value-small]': `size === 'small'`,\n '[class.sv__value-large]': `size === 'large'`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SVValueComponent {\n @Input() prefix?: string;\n @Input() unit?: string;\n @Input() tooltip?: NzTSType | null;\n @Input() size: 'large' | 'small' | 'default' = 'default';\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Host,\n Input,\n OnChanges,\n Optional,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { ResponsiveService } from '@delon/theme';\nimport { isEmpty } from '@delon/util/browser';\nimport { BooleanInput, InputBoolean, InputNumber, NumberInput } from '@delon/util/decorator';\n\nimport { SVContainerComponent } from './sv-container.component';\n\nconst prefixCls = `sv`;\n\n@Component({\n selector: 'sv, [sv]',\n exportAs: 'sv',\n templateUrl: './sv.component.html',\n host: {\n '[style.padding-left.px]': 'paddingValue',\n '[style.padding-right.px]': 'paddingValue'\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SVComponent implements AfterViewInit, OnChanges {\n static ngAcceptInputType_col: NumberInput;\n static ngAcceptInputType_default: BooleanInput;\n static ngAcceptInputType_noColon: BooleanInput;\n\n @ViewChild('conEl', { static: false })\n private conEl!: ElementRef;\n private el: HTMLElement;\n private clsMap: string[] = [];\n _noColon = false;\n\n // #region fields\n\n @Input() optional?: string | TemplateRef<void> | null;\n @Input() optionalHelp?: string | TemplateRef<void> | null;\n @Input() optionalHelpColor?: string;\n @Input() label?: string | TemplateRef<void> | null;\n @Input() unit?: string | TemplateRef<void> | null;\n @Input() @InputNumber(null) col?: number | null;\n @Input() @InputBoolean(null) default?: boolean | null;\n @Input() type?: 'primary' | 'success' | 'danger' | 'warning';\n @Input() @InputBoolean(null) noColon?: boolean | null;\n\n // #endregion\n\n get paddingValue(): number {\n return this.parent && this.parent.gutter / 2;\n }\n\n get labelWidth(): number | null | undefined {\n const { labelWidth, layout } = this.parent;\n return layout === 'horizontal' ? labelWidth : null;\n }\n\n constructor(\n el: ElementRef,\n @Host() @Optional() public parent: SVContainerComponent,\n private rep: ResponsiveService,\n private ren: Renderer2\n ) {\n if (parent == null) {\n throw new Error(`[sv] must include 'sv-container' component`);\n }\n this.el = el.nativeElement;\n }\n\n private setClass(): void {\n const { el, ren, col, clsMap, type, rep, noColon, parent } = this;\n this._noColon = noColon != null ? noColon : parent.noColon;\n clsMap.forEach(cls => ren.removeClass(el, cls));\n clsMap.length = 0;\n clsMap.push(...rep.genCls(col != null ? col : this.parent.col));\n clsMap.push(`${prefixCls}__item`);\n if (this.parent.labelWidth) clsMap.push(`${prefixCls}__item-fixed`);\n if (type) clsMap.push(`${prefixCls}__type-${type}`);\n clsMap.forEach(cls => ren.addClass(el, cls));\n }\n\n ngAfterViewInit(): void {\n this.setClass();\n this.checkContent();\n }\n\n ngOnChanges(): void {\n this.setClass();\n }\n\n checkContent(): void {\n const { conEl } = this;\n const def = this.default;\n if (!(def != null ? def : this.parent.default)) {\n return;\n }\n const el = conEl.nativeElement as HTMLElement;\n const cls = `sv__default`;\n if (el.classList.contains(cls)) {\n el.classList.remove(cls);\n }\n if (isEmpty(el)) {\n el.classList.add(cls);\n }\n }\n}\n","<div\n class=\"sv__label\"\n [class.sv__label-empty]=\"!label\"\n [class.sv__label-width]=\"labelWidth !== null && labelWidth !== undefined\"\n [class.sv__no-colon]=\"_noColon\"\n [style.width.px]=\"labelWidth\"\n>\n <span class=\"sv__label-text\">\n <ng-container *nzStringTemplateOutlet=\"label\">{{ label }}</ng-container>\n </span>\n <span *ngIf=\"optional || optionalHelp\" class=\"sv__label-optional\" [class.sv__label-optional-no-text]=\"!optional\">\n <ng-container *nzStringTemplateOutlet=\"optional\">{{ optional }}</ng-container>\n <i\n *ngIf=\"optionalHelp\"\n nz-tooltip\n [nzTooltipTitle]=\"optionalHelp\"\n [nzTooltipColor]=\"optionalHelpColor\"\n nz-icon\n nzType=\"question-circle\"\n ></i>\n </span>\n</div>\n<div class=\"sv__detail\">\n <span (cdkObserveContent)=\"checkContent()\" #conEl>\n <ng-content></ng-content>\n </span>\n <ng-container *ngIf=\"!!unit\">\n <span class=\"sv__unit\" *nzStringTemplateOutlet=\"unit\">{{ unit }}</span>\n </ng-container>\n</div>\n","import { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\n\nimport { SVContainerComponent, SVTitleComponent } from './sv-container.component';\nimport { SVValueComponent } from './sv-value.component';\nimport { SVComponent } from './sv.component';\n\nconst COMPONENTS = [SVContainerComponent, SVComponent, SVTitleComponent, SVValueComponent];\n\n@NgModule({\n imports: [CommonModule, ObserversModule, NzToolTipModule, NzIconModule, NzOutletModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class SVModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -89,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
89
89
  */
90
90
 
91
91
  export { TagSelectComponent, TagSelectModule };
92
- //# sourceMappingURL=tagSelect.mjs.map
92
+ //# sourceMappingURL=tag-select.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag-select.mjs","sources":["../../../../packages/abc/tag-select/tag-select.component.ts","../../../../packages/abc/tag-select/tag-select.component.html","../../../../packages/abc/tag-select/tag-select.module.ts","../../../../packages/abc/tag-select/tag-select.ts"],"sourcesContent":["import { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DelonLocaleService, LocaleData } from '@delon/theme';\nimport { BooleanInput, InputBoolean } from '@delon/util/decorator';\n\n@Component({\n selector: 'tag-select',\n exportAs: 'tagSelect',\n templateUrl: './tag-select.component.html',\n host: {\n '[class.tag-select]': 'true',\n '[class.tag-select-rtl]': `dir === 'rtl'`,\n '[class.tag-select-rtl__has-expand]': `dir === 'rtl' && expandable`,\n '[class.tag-select__has-expand]': 'expandable',\n '[class.tag-select__expanded]': 'expand'\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TagSelectComponent implements OnInit, OnDestroy {\n static ngAcceptInputType_expandable: BooleanInput;\n\n private destroy$ = new Subject<void>();\n locale: LocaleData = {};\n expand = false;\n dir: Direction = 'ltr';\n\n /** 是否启用 `展开与收进` */\n @Input() @InputBoolean() expandable = true;\n @Output() readonly change = new EventEmitter<boolean>();\n\n constructor(\n private i18n: DelonLocaleService,\n @Optional() private directionality: Directionality,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit(): void {\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n });\n this.i18n.change.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.locale = this.i18n.getData('tagSelect');\n this.cdr.detectChanges();\n });\n }\n\n trigger(): void {\n this.expand = !this.expand;\n this.change.emit(this.expand);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-content></ng-content>\n<a *ngIf=\"expandable\" class=\"tag-select__trigger\" (click)=\"trigger()\">\n {{ expand ? locale.collapse : locale.expand\n }}<i nz-icon [nzType]=\"expand ? 'up' : 'down'\" class=\"tag-select__trigger-icon\"></i>\n</a>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DelonLocaleModule } from '@delon/theme';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { TagSelectComponent } from './tag-select.component';\n\nconst COMPONENTS = [TagSelectComponent];\n\n@NgModule({\n imports: [CommonModule, NzIconModule, DelonLocaleModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class TagSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;MAkCa,kBAAkB;IAY7B,YACU,IAAwB,EACZ,cAA8B,EAC1C,GAAsB;QAFtB,SAAI,GAAJ,IAAI,CAAoB;QACZ,mBAAc,GAAd,cAAc,CAAgB;QAC1C,QAAG,GAAH,GAAG,CAAmB;QAZxB,aAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QACvC,WAAM,GAAe,EAAE,CAAC;QACxB,WAAM,GAAG,KAAK,CAAC;QACf,QAAG,GAAc,KAAK,CAAC;;QAGE,eAAU,GAAG,IAAI,CAAC;QACxB,WAAM,GAAG,IAAI,YAAY,EAAW,CAAC;KAMpD;IAEJ,QAAQ;;QACN,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QACrC,MAAA,IAAI,CAAC,cAAc,CAAC,MAAM,0CAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,SAAoB;YACxF,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;SACtB,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC1B,CAAC,CAAC;KACJ;IAED,OAAO;QACL,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/B;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;;+GArCU,kBAAkB;mGAAlB,kBAAkB,wYClC/B,4PAKA;ADsC2B;IAAf,YAAY,EAAE;sDAAmB;2FAThC,kBAAkB;kBAf9B,SAAS;+BACE,YAAY,YACZ,WAAW,QAEf;wBACJ,oBAAoB,EAAE,MAAM;wBAC5B,wBAAwB,EAAE,eAAe;wBACzC,oCAAoC,EAAE,6BAA6B;wBACnE,gCAAgC,EAAE,YAAY;wBAC9C,8BAA8B,EAAE,QAAQ;qBACzC,uBACoB,KAAK,mBACT,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI;;;8BAgBlC,QAAQ;;yBALc,UAAU;sBAAlC,KAAK;gBACa,MAAM;sBAAxB,MAAM;;;AEpCT,MAAM,UAAU,GAAG,CAAC,kBAAkB,CAAC,CAAC;MAO3B,eAAe;;4GAAf,eAAe;6GAAf,eAAe,iBAPR,kBAAkB,aAG1B,YAAY,EAAE,YAAY,EAAE,iBAAiB,aAHrC,kBAAkB;6GAOzB,eAAe,YAJjB,CAAC,YAAY,EAAE,YAAY,EAAE,iBAAiB,CAAC;2FAI7C,eAAe;kBAL3B,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,iBAAiB,CAAC;oBACxD,YAAY,EAAE,UAAU;oBACxB,OAAO,EAAE,UAAU;iBACpB;;;ACdD;;;;;;"}
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
66
66
  */
67
67
 
68
68
  export { AutoFocusDirective, AutoFocusModule };
69
- //# sourceMappingURL=autoFocus.mjs.map
69
+ //# sourceMappingURL=auto-focus.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-focus.mjs","sources":["../../../../packages/abc/auto-focus/auto-focus.directive.ts","../../../../packages/abc/auto-focus/auto-focus.module.ts","../../../../packages/abc/auto-focus/auto-focus.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectorRef, Directive, ElementRef, Input, OnDestroy } from '@angular/core';\n\nimport { BooleanInput, InputBoolean, InputNumber, NumberInput } from '@delon/util/decorator';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Directive({\n selector: '[auto-focus], input[autofocus=\"autofocus\"], textarea[autofocus=\"autofocus\"]',\n exportAs: 'autoFocus'\n})\nexport class AutoFocusDirective implements AfterViewInit, OnDestroy {\n static ngAcceptInputType_enabled: BooleanInput;\n static ngAcceptInputType_delay: NumberInput;\n\n private _focusoutTimeout: NzSafeAny;\n @Input() @InputBoolean() enabled = true;\n @Input() @InputNumber() delay = 300;\n\n constructor(private el: ElementRef<HTMLElement>, private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n const el = this.el.nativeElement;\n if (!(el instanceof HTMLElement) || !this.enabled) {\n return;\n }\n this._focusoutTimeout = setTimeout(() => {\n el.focus({ preventScroll: false });\n this.cdr.markForCheck();\n }, this.delay);\n }\n\n ngOnDestroy(): void {\n if (this._focusoutTimeout) {\n clearTimeout(this._focusoutTimeout);\n this._focusoutTimeout = null;\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { AutoFocusDirective } from './auto-focus.directive';\n\nconst COMPONENTS = [AutoFocusDirective];\n\n@NgModule({\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class AutoFocusModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MASa,kBAAkB;IAQ7B,YAAoB,EAA2B,EAAU,GAAsB;QAA3D,OAAE,GAAF,EAAE,CAAyB;QAAU,QAAG,GAAH,GAAG,CAAmB;QAHtD,YAAO,GAAG,IAAI,CAAC;QAChB,UAAK,GAAG,GAAG,CAAC;KAE+C;IAEnF,eAAe;QACb,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QACjC,IAAI,EAAE,EAAE,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjD,OAAO;SACR;QACD,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;YACjC,EAAE,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAChB;IAED,WAAW;QACT,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAC9B;KACF;;+GA1BU,kBAAkB;mGAAlB,kBAAkB;AAKJ;IAAf,YAAY,EAAE;mDAAgB;AAChB;IAAd,WAAW,EAAE;iDAAa;2FANzB,kBAAkB;kBAJ9B,SAAS;mBAAC;oBACT,QAAQ,EAAE,6EAA6E;oBACvF,QAAQ,EAAE,WAAW;iBACtB;iIAM0B,OAAO;sBAA/B,KAAK;gBACkB,KAAK;sBAA5B,KAAK;;;ACXR,MAAM,UAAU,GAAG,CAAC,kBAAkB,CAAC,CAAC;MAM3B,eAAe;;4GAAf,eAAe;6GAAf,eAAe,iBANR,kBAAkB,aAAlB,kBAAkB;6GAMzB,eAAe;2FAAf,eAAe;kBAJ3B,QAAQ;mBAAC;oBACR,YAAY,EAAE,UAAU;oBACxB,OAAO,EAAE,UAAU;iBACpB;;;ACTD;;;;;;"}
@@ -134,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
134
134
  */
135
135
 
136
136
  export { AvatarListComponent, AvatarListItemComponent, AvatarListModule };
137
- //# sourceMappingURL=avatarList.mjs.map
137
+ //# sourceMappingURL=avatar-list.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-list.mjs","sources":["../../../../packages/abc/avatar-list/avatar-list-item.component.ts","../../../../packages/abc/avatar-list/avatar-list.component.ts","../../../../packages/abc/avatar-list/avatar-list.component.html","../../../../packages/abc/avatar-list/avatar-list.module.ts","../../../../packages/abc/avatar-list/avatar-list.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'avatar-list-item, [avatar-list-item]',\n exportAs: 'avatarListItem',\n template: `<ng-content></ng-content>`,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class AvatarListItemComponent {\n @Input() src?: string;\n @Input() text?: string;\n @Input() icon?: string;\n @Input() tips?: string;\n}\n","import { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { InputNumber, NumberInput } from '@delon/util/decorator';\nimport type { NgStyleInterface, NzSizeLDSType } from 'ng-zorro-antd/core/types';\n\nimport { AvatarListItemComponent } from './avatar-list-item.component';\n\n@Component({\n selector: 'avatar-list',\n exportAs: 'avatarList',\n templateUrl: './avatar-list.component.html',\n host: {\n '[class.avatar-list]': 'true',\n '[class.avatar-list-rtl]': `dir === 'rtl'`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class AvatarListComponent implements AfterViewInit, OnChanges, OnDestroy {\n static ngAcceptInputType_maxLength: NumberInput;\n\n private inited = false;\n @ContentChildren(AvatarListItemComponent, { descendants: false })\n private _items!: QueryList<AvatarListItemComponent>;\n private destroy$ = new Subject<void>();\n\n items: AvatarListItemComponent[] = [];\n exceedCount = 0;\n dir: Direction = 'ltr';\n\n cls = '';\n avatarSize: NzSizeLDSType = 'default';\n @Input()\n set size(value: 'large' | 'small' | 'mini' | 'default') {\n this.cls = `avatar-list__item${value === 'default' ? '' : ` avatar-list__${value}`}`;\n switch (value) {\n case 'large':\n case 'small':\n case 'default':\n this.avatarSize = value;\n break;\n default:\n this.avatarSize = 'small';\n break;\n }\n }\n @Input() @InputNumber() maxLength = 0;\n @Input() excessItemsStyle: NgStyleInterface | null = null;\n\n constructor(private cdr: ChangeDetectorRef, @Optional() private directionality: Directionality) {}\n\n private gen(): void {\n const { _items } = this;\n const maxLength = this.maxLength > 0 ? this.maxLength : _items.length;\n const numOfChildren = _items.length;\n const numToShow = maxLength > 0 && maxLength >= numOfChildren ? numOfChildren : maxLength;\n this.items = _items.toArray().slice(0, numToShow);\n this.exceedCount = numToShow < numOfChildren ? numOfChildren - maxLength : 0;\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n });\n this.gen();\n this.inited = true;\n }\n\n ngOnChanges(): void {\n if (this.inited) {\n this.gen();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ul class=\"avatar-list__wrap\">\n <li *ngFor=\"let i of items\" [ngClass]=\"cls\">\n <nz-avatar\n *ngIf=\"i.tips\"\n nz-tooltip\n [nzTooltipTitle]=\"i.tips\"\n [nzSrc]=\"i.src\"\n [nzText]=\"i.text\"\n [nzIcon]=\"i.icon\"\n [nzSize]=\"avatarSize\"\n ></nz-avatar>\n <nz-avatar *ngIf=\"!i.tips\" [nzSrc]=\"i.src\" [nzText]=\"i.text\" [nzIcon]=\"i.icon\" [nzSize]=\"avatarSize\"></nz-avatar>\n </li>\n <li *ngIf=\"exceedCount > 0\" [ngClass]=\"cls\">\n <nz-avatar\n [nzSize]=\"avatarSize\"\n style=\"cursor: auto\"\n [ngStyle]=\"excessItemsStyle\"\n [nzText]=\"'+' + exceedCount\"\n ></nz-avatar>\n </li>\n</ul>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzAvatarModule } from 'ng-zorro-antd/avatar';\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\n\nimport { AvatarListItemComponent } from './avatar-list-item.component';\nimport { AvatarListComponent } from './avatar-list.component';\n\nconst COMPONENTS = [AvatarListComponent, AvatarListItemComponent];\n\n@NgModule({\n imports: [CommonModule, NzAvatarModule, NzToolTipModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class AvatarListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -233,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
233
233
  */
234
234
 
235
235
  export { DatePickerModule, RangePickerDirective, RangePickerShortcutTplComponent };
236
- //# sourceMappingURL=datePicker.mjs.map
236
+ //# sourceMappingURL=date-picker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.mjs","sources":["../../../../packages/abc/date-picker/range-shortcut.component.ts","../../../../packages/abc/date-picker/range.directive.ts","../../../../packages/abc/date-picker/date-picker.module.ts","../../../../packages/abc/date-picker/date-picker.ts"],"sourcesContent":["import { Component, TemplateRef, ViewChild } from '@angular/core';\n\nimport { AlainDateRangePickerShortcutItem } from '@delon/util/config';\n\n@Component({\n selector: '',\n template: `\n <ng-template #tpl>\n <a\n *ngFor=\"let i of list; let first = first\"\n (click)=\"click(i)\"\n [innerHTML]=\"i._text\"\n [ngClass]=\"{ 'ml-sm': !first }\"\n ></a>\n </ng-template>\n `\n})\nexport class RangePickerShortcutTplComponent {\n @ViewChild('tpl', { static: true })\n tpl!: TemplateRef<void>;\n\n list: AlainDateRangePickerShortcutItem[] = [];\n\n click(_: AlainDateRangePickerShortcutItem): void {}\n}\n","import {\n AfterViewInit,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n EventEmitter,\n Host,\n Injector,\n Input,\n OnDestroy,\n Optional,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Subject } from 'rxjs';\n\nimport { AlainConfigService, AlainDateRangePickerShortcut, AlainDateRangePickerShortcutItem } from '@delon/util/config';\nimport { fixEndTimeOfRange, getTimeDistance } from '@delon/util/date-time';\nimport { assert, deepMergeKey } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzDatePickerComponent, NzRangePickerComponent } from 'ng-zorro-antd/date-picker';\nimport { DatePickerService } from 'ng-zorro-antd/date-picker/date-picker.service';\n\nimport { RangePickerShortcutTplComponent } from './range-shortcut.component';\n\n@Directive({\n selector: 'nz-range-picker[extend]',\n exportAs: 'extendRangePicker'\n})\nexport class RangePickerDirective implements OnDestroy, AfterViewInit {\n static ngAcceptInputType_shortcut: AlainDateRangePickerShortcut | string | null;\n\n private defaultShortcuts: AlainDateRangePickerShortcut;\n private _shortcut: AlainDateRangePickerShortcut | null = null;\n private destroy$ = new Subject<void>();\n private shortcutFactory: ComponentRef<RangePickerShortcutTplComponent> | null = null;\n start: Date | null = null;\n end: Date | null = null;\n\n @Input()\n set shortcut(val: AlainDateRangePickerShortcut | null) {\n const item = deepMergeKey(\n { list: [] },\n true,\n this.defaultShortcuts,\n val == null ? {} : val\n ) as AlainDateRangePickerShortcut;\n if (typeof val !== 'object') {\n item.enabled = val !== false;\n }\n (item.list || []).forEach(i => {\n i._text = this.dom.bypassSecurityTrustHtml(i.text);\n });\n this._shortcut = item;\n this.refreshShortcut();\n }\n get shortcut(): AlainDateRangePickerShortcut | null {\n return this._shortcut;\n }\n @Input() ngModelEnd: NzSafeAny;\n @Output() readonly ngModelEndChange = new EventEmitter<NzSafeAny>();\n\n private get dp(): NzDatePickerComponent {\n return this.nativeComp.datePicker;\n }\n\n private get srv(): DatePickerService {\n return this.dp.datePickerService;\n }\n\n constructor(\n private dom: DomSanitizer,\n configSrv: AlainConfigService,\n @Host() @Optional() private nativeComp: NzRangePickerComponent,\n private resolver: ComponentFactoryResolver,\n private injector: Injector\n ) {\n assert(\n !!nativeComp,\n `It should be attached to nz-range-picker component, for example: '<nz-range-picker [(ngModel)]=\"i.start\" extend [(ngModelEnd)]=\"i.end\" shortcut></nz-range-picker>'`\n );\n const cog = configSrv.merge('dataRange', {\n nzFormat: 'yyyy-MM-dd',\n nzAllowClear: true,\n nzAutoFocus: false,\n nzPopupStyle: { position: 'relative' },\n nzShowToday: true,\n shortcuts: {\n enabled: false,\n closed: true,\n list: [\n {\n text: '今天',\n fn: () => getTimeDistance('today')\n },\n {\n text: '昨天',\n fn: () => getTimeDistance('yesterday')\n },\n {\n text: '近3天',\n fn: () => getTimeDistance(-2)\n },\n {\n text: '近7天',\n fn: () => getTimeDistance(-6)\n },\n {\n text: '本周',\n fn: () => getTimeDistance('week')\n },\n {\n text: '本月',\n fn: () => getTimeDistance('month')\n },\n {\n text: '全年',\n fn: () => getTimeDistance('year')\n }\n ]\n }\n })!;\n this.defaultShortcuts = { ...cog.shortcuts } as AlainDateRangePickerShortcut;\n Object.assign(this, cog);\n }\n\n private cd(): void {\n (this.dp as NzSafeAny).cdr.markForCheck();\n }\n\n private overrideNative(): void {\n const dp = this.dp;\n dp.writeValue = (value: Date) => {\n const dates = (value && this.ngModelEnd ? [value, this.ngModelEnd] : []).filter(w => !!w);\n this.srv.setValue(this.srv.makeValue(dates));\n this.start = dates.length > 0 ? dates[0] : null;\n this.end = dates.length > 0 ? dates[1] : null;\n this.cd();\n };\n\n const oldOnChangeFn = dp.onChangeFn;\n dp.onChangeFn = (list: Array<Date | null>) => {\n let start: Date | null = null;\n let end: Date | null = null;\n if (list.length > 0 && list.filter(w => w != null).length === 2) {\n [start, end] = fixEndTimeOfRange([list[0]!, list[1]!]);\n }\n this.start = start;\n this.end = end;\n oldOnChangeFn(start);\n this.ngModelEnd = end;\n this.ngModelEndChange.emit(end);\n };\n }\n\n private refreshShortcut(): void {\n if (!this._shortcut) {\n return;\n }\n const { enabled, list } = this._shortcut;\n let extraFooter: TemplateRef<NzSafeAny> | undefined;\n if (!this.nativeComp || !enabled) {\n extraFooter = undefined;\n } else {\n if (!this.shortcutFactory) {\n const factory = this.resolver.resolveComponentFactory(RangePickerShortcutTplComponent);\n this.shortcutFactory = factory.create(this.injector);\n }\n const { instance } = this.shortcutFactory;\n instance.list = list!;\n instance.click = (item: AlainDateRangePickerShortcutItem) => {\n const res = item.fn([this.start, this.end]);\n this.srv.setValue(this.srv.makeValue(res as Date[]));\n this.dp.onChangeFn(res);\n this.dp.close();\n };\n extraFooter = instance.tpl;\n }\n this.nativeComp.datePicker.extraFooter = extraFooter;\n Promise.resolve().then(() => this.cd());\n }\n\n ngAfterViewInit(): void {\n this.overrideNative();\n this.refreshShortcut();\n }\n\n private destoryShortcut(): void {\n if (this.shortcutFactory != null) {\n this.shortcutFactory.destroy();\n }\n }\n\n ngOnDestroy(): void {\n this.destoryShortcut();\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\n\nimport { RangePickerShortcutTplComponent } from './range-shortcut.component';\nimport { RangePickerDirective } from './range.directive';\n\nconst COMPONENTS = [RangePickerDirective, RangePickerShortcutTplComponent];\n\n@NgModule({\n imports: [CommonModule, FormsModule, NzDatePickerModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class DatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -135,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
135
135
  */
136
136
 
137
137
  export { DownFileDirective, DownFileModule };
138
- //# sourceMappingURL=downFile.mjs.map
138
+ //# sourceMappingURL=down-file.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"down-file.mjs","sources":["../../../../packages/abc/down-file/down-file.directive.ts","../../../../packages/abc/down-file/down-file.module.ts","../../../../packages/abc/down-file/down-file.ts"],"sourcesContent":["import { HttpResponse } from '@angular/common/http';\nimport { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';\nimport { finalize } from 'rxjs/operators';\n\nimport { saveAs } from 'file-saver';\n\nimport { _HttpClient } from '@delon/theme';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Directive({\n selector: '[down-file]',\n exportAs: 'downFile',\n host: {\n '(click)': '_click($event)'\n }\n})\nexport class DownFileDirective {\n private isFileSaverSupported = true;\n @Input('http-data') httpData: NzSafeAny;\n @Input('http-body') httpBody: NzSafeAny;\n @Input('http-method') httpMethod: string = 'get';\n @Input('http-url') httpUrl!: string;\n @Input('file-name') fileName?: string | ((rep: HttpResponse<Blob>) => string);\n @Input() pre?: (ev: MouseEvent) => Promise<boolean>;\n @Output() readonly success = new EventEmitter<HttpResponse<Blob>>();\n @Output() readonly error = new EventEmitter<NzSafeAny>();\n\n private getDisposition(data: string | null): NzSafeAny {\n const arr: Array<Record<string, string>> = (data || '')\n .split(';')\n .filter(i => i.includes('='))\n .map(v => {\n const strArr = v.split('=');\n const utfId = `UTF-8''`;\n let value = strArr[1];\n if (value.startsWith(utfId)) value = value.substring(utfId.length);\n return { [strArr[0].trim()]: value };\n });\n return arr.reduce((_o, item) => item, {});\n }\n\n constructor(private el: ElementRef<HTMLButtonElement>, private _http: _HttpClient) {\n let isFileSaverSupported = false;\n try {\n isFileSaverSupported = !!new Blob();\n } catch {}\n this.isFileSaverSupported = isFileSaverSupported;\n if (!isFileSaverSupported) {\n el.nativeElement.classList.add(`down-file__not-support`);\n }\n }\n\n private setDisabled(status: boolean): void {\n const el = this.el.nativeElement;\n el.disabled = status;\n el.classList[status ? 'add' : 'remove'](`down-file__disabled`);\n }\n\n async _click(ev: MouseEvent): Promise<void> {\n if (!this.isFileSaverSupported || (typeof this.pre === 'function' && !(await this.pre(ev)))) {\n ev.stopPropagation();\n ev.preventDefault();\n return;\n }\n this.setDisabled(true);\n this._http\n .request(this.httpMethod, this.httpUrl, {\n params: this.httpData || {},\n responseType: 'blob',\n observe: 'response',\n body: this.httpBody\n })\n .pipe(finalize(() => this.setDisabled(false)))\n .subscribe({\n next: (res: HttpResponse<Blob>) => {\n if (res.status !== 200 || res.body!.size <= 0) {\n this.error.emit(res);\n return;\n }\n const disposition = this.getDisposition(res.headers.get('content-disposition'));\n let fileName = this.fileName;\n if (typeof fileName === 'function') fileName = fileName(res);\n fileName =\n fileName ||\n disposition[`filename*`] ||\n disposition[`filename`] ||\n res.headers.get('filename') ||\n res.headers.get('x-filename');\n saveAs(res.body!, decodeURI(fileName as string));\n this.success.emit(res);\n },\n error: err => this.error.emit(err)\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AlainThemeModule } from '@delon/theme';\n\nimport { DownFileDirective } from './down-file.directive';\n\nconst DIRECTIVES = [DownFileDirective];\n\n@NgModule({\n imports: [CommonModule, AlainThemeModule],\n declarations: [...DIRECTIVES],\n exports: [...DIRECTIVES]\n})\nexport class DownFileModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -138,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
138
138
  */
139
139
 
140
140
  export { ErrorCollectComponent, ErrorCollectModule };
141
- //# sourceMappingURL=errorCollect.mjs.map
141
+ //# sourceMappingURL=error-collect.mjs.map