@delon/abc 16.4.2 → 17.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 (213) hide show
  1. package/avatar-list/style/index.less +3 -1
  2. package/cell/cell-host.directive.d.ts +1 -1
  3. package/cell/cell.component.d.ts +1 -1
  4. package/cell/cell.module.d.ts +12 -12
  5. package/cell/index.d.ts +1 -0
  6. package/cell/provide.d.ts +10 -0
  7. package/cell/style/index.less +1 -1
  8. package/down-file/style/index.less +1 -0
  9. package/ellipsis/style/index.less +2 -2
  10. package/error-collect/style/index.less +1 -1
  11. package/error-collect/style/rtl.less +2 -1
  12. package/esm2022/auto-focus/auto-focus.directive.mjs +5 -5
  13. package/esm2022/auto-focus/auto-focus.module.mjs +5 -5
  14. package/esm2022/avatar-list/avatar-list-item.component.mjs +4 -4
  15. package/esm2022/avatar-list/avatar-list.component.mjs +7 -7
  16. package/esm2022/avatar-list/avatar-list.module.mjs +5 -5
  17. package/esm2022/cell/cell-host.directive.mjs +7 -6
  18. package/esm2022/cell/cell.component.mjs +163 -126
  19. package/esm2022/cell/cell.module.mjs +10 -9
  20. package/esm2022/cell/cell.service.mjs +5 -5
  21. package/esm2022/cell/index.mjs +2 -1
  22. package/esm2022/cell/provide.mjs +18 -0
  23. package/esm2022/count-down/count-down.component.mjs +10 -7
  24. package/esm2022/count-down/count-down.module.mjs +5 -5
  25. package/esm2022/date-picker/date-picker.module.mjs +5 -5
  26. package/esm2022/date-picker/range-shortcut.component.mjs +11 -17
  27. package/esm2022/date-picker/range.directive.mjs +9 -7
  28. package/esm2022/down-file/down-file.directive.mjs +5 -5
  29. package/esm2022/down-file/down-file.module.mjs +5 -5
  30. package/esm2022/ellipsis/ellipsis.component.mjs +7 -7
  31. package/esm2022/ellipsis/ellipsis.module.mjs +5 -5
  32. package/esm2022/error-collect/error-collect.component.mjs +6 -6
  33. package/esm2022/error-collect/error-collect.module.mjs +5 -5
  34. package/esm2022/exception/exception.component.mjs +12 -13
  35. package/esm2022/exception/exception.module.mjs +5 -5
  36. package/esm2022/footer-toolbar/footer-toolbar.component.mjs +9 -10
  37. package/esm2022/footer-toolbar/footer-toolbar.module.mjs +5 -5
  38. package/esm2022/full-content/full-content-toggle.directive.mjs +5 -5
  39. package/esm2022/full-content/full-content.component.mjs +6 -6
  40. package/esm2022/full-content/full-content.module.mjs +5 -5
  41. package/esm2022/full-content/full-content.service.mjs +4 -4
  42. package/esm2022/global-footer/global-footer-item.component.mjs +4 -4
  43. package/esm2022/global-footer/global-footer.component.mjs +7 -7
  44. package/esm2022/global-footer/global-footer.module.mjs +5 -5
  45. package/esm2022/hotkey/hotkey.directive.mjs +6 -6
  46. package/esm2022/hotkey/hotkey.module.mjs +6 -6
  47. package/esm2022/let/let.directive.mjs +7 -7
  48. package/esm2022/let/let.module.mjs +6 -6
  49. package/esm2022/loading/loading.component.mjs +5 -5
  50. package/esm2022/loading/loading.module.mjs +5 -5
  51. package/esm2022/loading/loading.service.mjs +6 -6
  52. package/esm2022/lodop/lodop.module.mjs +5 -5
  53. package/esm2022/lodop/lodop.service.mjs +5 -5
  54. package/esm2022/media/media.component.mjs +5 -5
  55. package/esm2022/media/media.module.mjs +5 -5
  56. package/esm2022/media/media.service.mjs +5 -5
  57. package/esm2022/notice-icon/notice-icon-tab.component.mjs +5 -5
  58. package/esm2022/notice-icon/notice-icon.component.mjs +6 -6
  59. package/esm2022/notice-icon/notice-icon.module.mjs +5 -5
  60. package/esm2022/observers/observer-size.mjs +15 -14
  61. package/esm2022/onboarding/onboarding.component.mjs +12 -13
  62. package/esm2022/onboarding/onboarding.module.mjs +5 -5
  63. package/esm2022/onboarding/onboarding.service.mjs +6 -6
  64. package/esm2022/page-header/page-header.component.mjs +7 -7
  65. package/esm2022/page-header/page-header.module.mjs +5 -5
  66. package/esm2022/pdf/pdf.component.mjs +14 -11
  67. package/esm2022/pdf/pdf.module.mjs +5 -5
  68. package/esm2022/qr/qr.component.mjs +10 -7
  69. package/esm2022/qr/qr.module.mjs +5 -5
  70. package/esm2022/quick-menu/quick-menu.component.mjs +5 -5
  71. package/esm2022/quick-menu/quick-menu.module.mjs +5 -5
  72. package/esm2022/result/result.component.mjs +9 -10
  73. package/esm2022/result/result.module.mjs +5 -5
  74. package/esm2022/reuse-tab/provide.mjs +73 -0
  75. package/esm2022/reuse-tab/public_api.mjs +2 -1
  76. package/esm2022/reuse-tab/reuse-tab-context-menu.component.mjs +8 -8
  77. package/esm2022/reuse-tab/reuse-tab-context.component.mjs +7 -6
  78. package/esm2022/reuse-tab/reuse-tab-context.directive.mjs +7 -6
  79. package/esm2022/reuse-tab/reuse-tab-context.service.mjs +5 -5
  80. package/esm2022/reuse-tab/reuse-tab.component.mjs +22 -13
  81. package/esm2022/reuse-tab/reuse-tab.module.mjs +29 -8
  82. package/esm2022/reuse-tab/reuse-tab.service.mjs +6 -6
  83. package/esm2022/se/se-container.component.mjs +22 -19
  84. package/esm2022/se/se.component.mjs +7 -7
  85. package/esm2022/se/se.module.mjs +5 -5
  86. package/esm2022/sg/sg-container.component.mjs +5 -5
  87. package/esm2022/sg/sg.component.mjs +6 -6
  88. package/esm2022/sg/sg.module.mjs +5 -5
  89. package/esm2022/st/provide.mjs +18 -0
  90. package/esm2022/st/public_api.mjs +2 -1
  91. package/esm2022/st/st-column-source.mjs +6 -6
  92. package/esm2022/st/st-data-source.mjs +6 -6
  93. package/esm2022/st/st-export.mjs +6 -6
  94. package/esm2022/st/st-filter.component.mjs +184 -162
  95. package/esm2022/st/st-row.directive.mjs +9 -9
  96. package/esm2022/st/st-widget-host.directive.mjs +5 -5
  97. package/esm2022/st/st-widget.mjs +4 -4
  98. package/esm2022/st/st.component.mjs +13 -13
  99. package/esm2022/st/st.module.mjs +5 -5
  100. package/esm2022/sv/sv-container.component.mjs +21 -17
  101. package/esm2022/sv/sv-value.component.mjs +18 -11
  102. package/esm2022/sv/sv.component.mjs +11 -12
  103. package/esm2022/sv/sv.module.mjs +5 -5
  104. package/esm2022/tag-select/tag-select.component.mjs +8 -9
  105. package/esm2022/tag-select/tag-select.module.mjs +5 -5
  106. package/esm2022/xlsx/xlsx.directive.mjs +7 -6
  107. package/esm2022/xlsx/xlsx.module.mjs +6 -8
  108. package/esm2022/xlsx/xlsx.service.mjs +5 -5
  109. package/esm2022/zip/public_api.mjs +1 -2
  110. package/esm2022/zip/zip.service.mjs +5 -5
  111. package/exception/style/index.less +6 -6
  112. package/fesm2022/auto-focus.mjs +8 -8
  113. package/fesm2022/auto-focus.mjs.map +1 -1
  114. package/fesm2022/avatar-list.mjs +13 -13
  115. package/fesm2022/avatar-list.mjs.map +1 -1
  116. package/fesm2022/cell.mjs +201 -154
  117. package/fesm2022/cell.mjs.map +1 -1
  118. package/fesm2022/chart-observer-size.mjs +14 -13
  119. package/fesm2022/chart-observer-size.mjs.map +1 -1
  120. package/fesm2022/count-down.mjs +14 -11
  121. package/fesm2022/count-down.mjs.map +1 -1
  122. package/fesm2022/date-picker.mjs +22 -26
  123. package/fesm2022/date-picker.mjs.map +1 -1
  124. package/fesm2022/down-file.mjs +8 -8
  125. package/fesm2022/down-file.mjs.map +1 -1
  126. package/fesm2022/ellipsis.mjs +10 -10
  127. package/fesm2022/ellipsis.mjs.map +1 -1
  128. package/fesm2022/error-collect.mjs +10 -10
  129. package/fesm2022/error-collect.mjs.map +1 -1
  130. package/fesm2022/exception.mjs +17 -18
  131. package/fesm2022/exception.mjs.map +1 -1
  132. package/fesm2022/footer-toolbar.mjs +12 -13
  133. package/fesm2022/footer-toolbar.mjs.map +1 -1
  134. package/fesm2022/full-content.mjs +18 -18
  135. package/fesm2022/full-content.mjs.map +1 -1
  136. package/fesm2022/global-footer.mjs +13 -13
  137. package/fesm2022/global-footer.mjs.map +1 -1
  138. package/fesm2022/hotkey.mjs +10 -10
  139. package/fesm2022/hotkey.mjs.map +1 -1
  140. package/fesm2022/let.mjs +11 -11
  141. package/fesm2022/let.mjs.map +1 -1
  142. package/fesm2022/loading.mjs +14 -14
  143. package/fesm2022/loading.mjs.map +1 -1
  144. package/fesm2022/lodop.mjs +8 -8
  145. package/fesm2022/lodop.mjs.map +1 -1
  146. package/fesm2022/media.mjs +13 -13
  147. package/fesm2022/media.mjs.map +1 -1
  148. package/fesm2022/notice-icon.mjs +16 -16
  149. package/fesm2022/notice-icon.mjs.map +1 -1
  150. package/fesm2022/onboarding.mjs +20 -21
  151. package/fesm2022/onboarding.mjs.map +1 -1
  152. package/fesm2022/page-header.mjs +10 -10
  153. package/fesm2022/page-header.mjs.map +1 -1
  154. package/fesm2022/pdf.mjs +19 -16
  155. package/fesm2022/pdf.mjs.map +1 -1
  156. package/fesm2022/qr.mjs +13 -10
  157. package/fesm2022/qr.mjs.map +1 -1
  158. package/fesm2022/quick-menu.mjs +8 -8
  159. package/fesm2022/quick-menu.mjs.map +1 -1
  160. package/fesm2022/result.mjs +13 -14
  161. package/fesm2022/result.mjs.map +1 -1
  162. package/fesm2022/reuse-tab.mjs +148 -52
  163. package/fesm2022/reuse-tab.mjs.map +1 -1
  164. package/fesm2022/se.mjs +36 -32
  165. package/fesm2022/se.mjs.map +1 -1
  166. package/fesm2022/sg.mjs +13 -13
  167. package/fesm2022/sg.mjs.map +1 -1
  168. package/fesm2022/st.mjs +248 -210
  169. package/fesm2022/st.mjs.map +1 -1
  170. package/fesm2022/sv.mjs +50 -38
  171. package/fesm2022/sv.mjs.map +1 -1
  172. package/fesm2022/tag-select.mjs +13 -14
  173. package/fesm2022/tag-select.mjs.map +1 -1
  174. package/fesm2022/xlsx.mjs +15 -16
  175. package/fesm2022/xlsx.mjs.map +1 -1
  176. package/fesm2022/zip.mjs +6 -19
  177. package/fesm2022/zip.mjs.map +1 -1
  178. package/footer-toolbar/style/index.less +1 -1
  179. package/full-content/style/index.less +1 -1
  180. package/global-footer/style/index.less +1 -1
  181. package/hotkey/hotkey.directive.d.ts +1 -1
  182. package/hotkey/hotkey.module.d.ts +1 -1
  183. package/let/let.directive.d.ts +1 -1
  184. package/let/let.module.d.ts +1 -1
  185. package/loading/style/index.less +3 -3
  186. package/notice-icon/style/index.less +7 -7
  187. package/observers/observer-size.d.ts +2 -2
  188. package/onboarding/style/index.less +3 -3
  189. package/package.json +6 -6
  190. package/page-header/style/index.less +4 -4
  191. package/pdf/style/index.less +1 -1
  192. package/quick-menu/style/index.less +2 -2
  193. package/result/style/index.less +7 -7
  194. package/reuse-tab/provide.d.ts +28 -0
  195. package/reuse-tab/public_api.d.ts +1 -0
  196. package/reuse-tab/reuse-tab-context-menu.component.d.ts +1 -1
  197. package/reuse-tab/reuse-tab-context.component.d.ts +1 -1
  198. package/reuse-tab/reuse-tab-context.directive.d.ts +1 -1
  199. package/reuse-tab/reuse-tab.component.d.ts +1 -1
  200. package/reuse-tab/reuse-tab.module.d.ts +12 -12
  201. package/reuse-tab/style/index.less +4 -4
  202. package/se/style/index.less +5 -5
  203. package/st/provide.d.ts +10 -0
  204. package/st/public_api.d.ts +1 -0
  205. package/st/style/index.less +4 -4
  206. package/sv/style/index.less +11 -11
  207. package/tag-select/style/index.less +2 -2
  208. package/tag-select/style/rtl.less +2 -1
  209. package/xlsx/xlsx.directive.d.ts +1 -1
  210. package/xlsx/xlsx.module.d.ts +1 -2
  211. package/zip/public_api.d.ts +0 -1
  212. package/esm2022/zip/zip.module.mjs +0 -15
  213. package/zip/zip.module.d.ts +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"xlsx.mjs","sources":["../../../../packages/abc/xlsx/xlsx.service.ts","../../../../packages/abc/xlsx/xlsx.directive.ts","../../../../packages/abc/xlsx/xlsx.module.ts","../../../../packages/abc/xlsx/xlsx.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable, NgZone } from '@angular/core';\n\nimport isUtf8 from 'isutf8';\n\nimport { AlainConfigService, AlainXlsxConfig } from '@delon/util/config';\nimport { ZoneOutside } from '@delon/util/decorator';\nimport { LazyResult, LazyService } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { XlsxExportOptions, XlsxExportResult, XlsxExportSheet } from './xlsx.types';\n\ndeclare var XLSX: NzSafeAny;\ndeclare var cptable: NzSafeAny;\n\n@Injectable({ providedIn: 'root' })\nexport class XlsxService {\n constructor(\n private http: HttpClient,\n private lazy: LazyService,\n configSrv: AlainConfigService,\n private ngZone: NgZone\n ) {\n this.cog = configSrv.merge('xlsx', {\n url: 'https://cdn.jsdelivr.net/npm/xlsx/dist/xlsx.full.min.js',\n modules: [`https://cdn.jsdelivr.net/npm/xlsx/dist/cpexcel.js`]\n })!;\n }\n private cog: AlainXlsxConfig;\n\n private init(): Promise<LazyResult[]> {\n return typeof XLSX !== 'undefined'\n ? Promise.resolve([])\n : this.lazy.load([this.cog.url!].concat(this.cog.modules!));\n }\n\n @ZoneOutside()\n private read(data: NzSafeAny): { [key: string]: NzSafeAny[][] } {\n const {\n read,\n utils: { sheet_to_json }\n } = XLSX;\n const ret: NzSafeAny = {};\n const buf = new Uint8Array(data);\n let type = 'array';\n if (!isUtf8(buf)) {\n try {\n data = cptable.utils.decode(936, buf);\n type = 'string';\n } catch {}\n }\n const wb = read(data, { type });\n wb.SheetNames.forEach((name: string) => {\n const sheet: NzSafeAny = wb.Sheets[name];\n ret[name] = sheet_to_json(sheet, { header: 1 });\n });\n return ret;\n }\n\n /**\n * 导入Excel并输出JSON,支持 `<input type=\"file\">`、URL 形式\n */\n import(fileOrUrl: File | string): Promise<{ [key: string]: NzSafeAny[][] }> {\n return new Promise<{ [key: string]: NzSafeAny[][] }>((resolve, reject) => {\n const r = (data: NzSafeAny): void => this.ngZone.run(() => resolve(this.read(data)));\n this.init()\n .then(() => {\n // from url\n if (typeof fileOrUrl === 'string') {\n this.http.request('GET', fileOrUrl, { responseType: 'arraybuffer' }).subscribe({\n next: (res: ArrayBuffer) => r(new Uint8Array(res)),\n error: (err: NzSafeAny) => reject(err)\n });\n return;\n }\n // from file\n const reader: FileReader = new FileReader();\n reader.onload = (e: NzSafeAny) => r(e.target.result);\n reader.onerror = (e: NzSafeAny) => reject(e);\n reader.readAsArrayBuffer(fileOrUrl);\n })\n .catch(() => reject(`Unable to load xlsx.js`));\n });\n }\n\n @ZoneOutside()\n async export(options: XlsxExportOptions): Promise<XlsxExportResult> {\n return new Promise<XlsxExportResult>((resolve, reject) => {\n this.init()\n .then(() => {\n options = { format: 'xlsx', ...options };\n const {\n writeFile,\n utils: { book_new, aoa_to_sheet, book_append_sheet }\n } = XLSX;\n const wb: NzSafeAny = book_new();\n if (Array.isArray(options.sheets)) {\n (options.sheets as XlsxExportSheet[]).forEach((value: XlsxExportSheet, index: number) => {\n const ws: NzSafeAny = aoa_to_sheet(value.data);\n book_append_sheet(wb, ws, value.name || `Sheet${index + 1}`);\n });\n } else {\n wb.SheetNames = Object.keys(options.sheets);\n wb.Sheets = options.sheets;\n }\n\n if (options.callback) options.callback(wb);\n\n const filename = options.filename || `export.${options.format}`;\n writeFile(wb, filename, {\n bookType: options.format,\n bookSST: false,\n type: 'array',\n ...options.opts\n });\n\n resolve({ filename, wb });\n })\n .catch(err => reject(err));\n });\n }\n\n /**\n * 数据转符号名\n * - `1` => `A`\n * - `27` => `AA`\n * - `703` => `AAA`\n */\n numberToSchema(val: number): string {\n const startCode = 'A'.charCodeAt(0);\n let res = '';\n\n do {\n --val;\n res = String.fromCharCode(startCode + (val % 26)) + res;\n val = (val / 26) >> 0;\n } while (val > 0);\n\n return res;\n }\n}\n","import { Directive, Input } from '@angular/core';\n\nimport { XlsxService } from './xlsx.service';\nimport { XlsxExportOptions } from './xlsx.types';\n\n@Directive({\n selector: '[xlsx]',\n exportAs: 'xlsx',\n host: {\n '(click)': '_click()'\n }\n})\nexport class XlsxDirective {\n @Input('xlsx') data!: XlsxExportOptions;\n\n constructor(private srv: XlsxService) {}\n\n _click(): void {\n this.srv.export(this.data);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { XlsxDirective } from './xlsx.directive';\n\nconst COMPONENTS = [XlsxDirective];\n\n@NgModule({\n imports: [CommonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class XlsxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.XlsxService"],"mappings":";;;;;;;;;;MAgBa,WAAW,CAAA;AACtB,IAAA,WAAA,CACU,IAAgB,EAChB,IAAiB,EACzB,SAA6B,EACrB,MAAc,EAAA;QAHd,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAa;QAEjB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAEtB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;AACjC,YAAA,GAAG,EAAE,yDAAyD;YAC9D,OAAO,EAAE,CAAC,CAAA,iDAAA,CAAmD,CAAC;AAC/D,SAAA,CAAE,CAAC;KACL;IAGO,IAAI,GAAA;QACV,OAAO,OAAO,IAAI,KAAK,WAAW;AAChC,cAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;cACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAQ,CAAC,CAAC,CAAC;KAC/D;AAGO,IAAA,IAAI,CAAC,IAAe,EAAA;QAC1B,MAAM,EACJ,IAAI,EACJ,KAAK,EAAE,EAAE,aAAa,EAAE,EACzB,GAAG,IAAI,CAAC;QACT,MAAM,GAAG,GAAc,EAAE,CAAC;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,IAAI,GAAG,OAAO,CAAC;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAChB,IAAI;gBACF,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACtC,IAAI,GAAG,QAAQ,CAAC;AACjB,aAAA;AAAC,YAAA,MAAM,GAAE;AACX,SAAA;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAY,KAAI;YACrC,MAAM,KAAK,GAAc,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzC,YAAA,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAClD,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,GAAG,CAAC;KACZ;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,SAAwB,EAAA;QAC7B,OAAO,IAAI,OAAO,CAAmC,CAAC,OAAO,EAAE,MAAM,KAAI;YACvE,MAAM,CAAC,GAAG,CAAC,IAAe,KAAW,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrF,IAAI,CAAC,IAAI,EAAE;iBACR,IAAI,CAAC,MAAK;;AAET,gBAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACjC,oBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,SAAS,CAAC;AAC7E,wBAAA,IAAI,EAAE,CAAC,GAAgB,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;wBAClD,KAAK,EAAE,CAAC,GAAc,KAAK,MAAM,CAAC,GAAG,CAAC;AACvC,qBAAA,CAAC,CAAC;oBACH,OAAO;AACR,iBAAA;;AAED,gBAAA,MAAM,MAAM,GAAe,IAAI,UAAU,EAAE,CAAC;AAC5C,gBAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAY,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrD,gBAAA,MAAM,CAAC,OAAO,GAAG,CAAC,CAAY,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7C,gBAAA,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACtC,aAAC,CAAC;iBACD,KAAK,CAAC,MAAM,MAAM,CAAC,CAAA,sBAAA,CAAwB,CAAC,CAAC,CAAC;AACnD,SAAC,CAAC,CAAC;KACJ;AAGK,IAAN,MAAM,MAAM,CAAC,OAA0B,EAAA;QACrC,OAAO,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,KAAI;YACvD,IAAI,CAAC,IAAI,EAAE;iBACR,IAAI,CAAC,MAAK;gBACT,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;AACzC,gBAAA,MAAM,EACJ,SAAS,EACT,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,EACrD,GAAG,IAAI,CAAC;AACT,gBAAA,MAAM,EAAE,GAAc,QAAQ,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAChC,OAAO,CAAC,MAA4B,CAAC,OAAO,CAAC,CAAC,KAAsB,EAAE,KAAa,KAAI;wBACtF,MAAM,EAAE,GAAc,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/C,wBAAA,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,QAAQ,KAAK,GAAG,CAAC,CAAA,CAAE,CAAC,CAAC;AAC/D,qBAAC,CAAC,CAAC;AACJ,iBAAA;AAAM,qBAAA;oBACL,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5C,oBAAA,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC5B,iBAAA;gBAED,IAAI,OAAO,CAAC,QAAQ;AAAE,oBAAA,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAE3C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAA,OAAA,EAAU,OAAO,CAAC,MAAM,CAAA,CAAE,CAAC;AAChE,gBAAA,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE;oBACtB,QAAQ,EAAE,OAAO,CAAC,MAAM;AACxB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,IAAI,EAAE,OAAO;oBACb,GAAG,OAAO,CAAC,IAAI;AAChB,iBAAA,CAAC,CAAC;AAEH,gBAAA,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5B,aAAC,CAAC;iBACD,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,SAAC,CAAC,CAAC;KACJ;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAC,GAAW,EAAA;QACxB,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,GAAG,GAAG,EAAE,CAAC;QAEb,GAAG;AACD,YAAA,EAAE,GAAG,CAAC;AACN,YAAA,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;YACxD,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;SACvB,QAAQ,GAAG,GAAG,CAAC,EAAE;AAElB,QAAA,OAAO,GAAG,CAAC;KACZ;+GA3HU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cADE,MAAM,EAAA,CAAA,CAAA,EAAA;;AAsBtB,UAAA,CAAA;AADP,IAAA,WAAW,EAAE;AAqBb,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,MAAA,EAAA,IAAA,CAAA,CAAA;AA6BK,UAAA,CAAA;AADL,IAAA,WAAW,EAAE;AAmCb,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA,CAAA;4FAxGU,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;AAsBxB,SAAA,CAAA,EAAA,cAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA,EAAA,cAAA,EAAA,EAAA,IAAI,MAiDN,MAAM,EAAA,EAAA,EAAA,EAAA,CAAA;;MC1ED,aAAa,CAAA;AAGxB,IAAA,WAAA,CAAoB,GAAgB,EAAA;QAAhB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAa;KAAI;IAExC,MAAM,GAAA;QACJ,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;+GAPU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAb,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,MAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,QAAQ,EAAE,MAAM;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,UAAU;AACtB,qBAAA;AACF,iBAAA,CAAA;+FAEgB,IAAI,EAAA,CAAA;sBAAlB,KAAK;uBAAC,MAAM,CAAA;;;ACRf,MAAM,UAAU,GAAG,CAAC,aAAa,CAAC,CAAC;MAOtB,UAAU,CAAA;+GAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EAPH,YAAA,EAAA,CAAA,aAAa,CAGrB,EAAA,OAAA,EAAA,CAAA,YAAY,aAHJ,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;AAOpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YAJX,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,UAAU,EAAA,UAAA,EAAA,CAAA;kBALtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,YAAY,EAAE,UAAU;AACxB,oBAAA,OAAO,EAAE,UAAU;AACpB,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
1
+ {"version":3,"file":"xlsx.mjs","sources":["../../../../packages/abc/xlsx/xlsx.service.ts","../../../../packages/abc/xlsx/xlsx.directive.ts","../../../../packages/abc/xlsx/xlsx.module.ts","../../../../packages/abc/xlsx/xlsx.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable, NgZone } from '@angular/core';\n\nimport isUtf8 from 'isutf8';\n\nimport { AlainConfigService, AlainXlsxConfig } from '@delon/util/config';\nimport { ZoneOutside } from '@delon/util/decorator';\nimport { LazyResult, LazyService } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { XlsxExportOptions, XlsxExportResult, XlsxExportSheet } from './xlsx.types';\n\ndeclare var XLSX: NzSafeAny;\ndeclare var cptable: NzSafeAny;\n\n@Injectable({ providedIn: 'root' })\nexport class XlsxService {\n constructor(\n private http: HttpClient,\n private lazy: LazyService,\n configSrv: AlainConfigService,\n private ngZone: NgZone\n ) {\n this.cog = configSrv.merge('xlsx', {\n url: 'https://cdn.jsdelivr.net/npm/xlsx/dist/xlsx.full.min.js',\n modules: [`https://cdn.jsdelivr.net/npm/xlsx/dist/cpexcel.js`]\n })!;\n }\n private cog: AlainXlsxConfig;\n\n private init(): Promise<LazyResult[]> {\n return typeof XLSX !== 'undefined'\n ? Promise.resolve([])\n : this.lazy.load([this.cog.url!].concat(this.cog.modules!));\n }\n\n @ZoneOutside()\n private read(data: NzSafeAny): { [key: string]: NzSafeAny[][] } {\n const {\n read,\n utils: { sheet_to_json }\n } = XLSX;\n const ret: NzSafeAny = {};\n const buf = new Uint8Array(data);\n let type = 'array';\n if (!isUtf8(buf)) {\n try {\n data = cptable.utils.decode(936, buf);\n type = 'string';\n } catch {}\n }\n const wb = read(data, { type });\n wb.SheetNames.forEach((name: string) => {\n const sheet: NzSafeAny = wb.Sheets[name];\n ret[name] = sheet_to_json(sheet, { header: 1 });\n });\n return ret;\n }\n\n /**\n * 导入Excel并输出JSON,支持 `<input type=\"file\">`、URL 形式\n */\n import(fileOrUrl: File | string): Promise<{ [key: string]: NzSafeAny[][] }> {\n return new Promise<{ [key: string]: NzSafeAny[][] }>((resolve, reject) => {\n const r = (data: NzSafeAny): void => this.ngZone.run(() => resolve(this.read(data)));\n this.init()\n .then(() => {\n // from url\n if (typeof fileOrUrl === 'string') {\n this.http.request('GET', fileOrUrl, { responseType: 'arraybuffer' }).subscribe({\n next: (res: ArrayBuffer) => r(new Uint8Array(res)),\n error: (err: NzSafeAny) => reject(err)\n });\n return;\n }\n // from file\n const reader: FileReader = new FileReader();\n reader.onload = (e: NzSafeAny) => r(e.target.result);\n reader.onerror = (e: NzSafeAny) => reject(e);\n reader.readAsArrayBuffer(fileOrUrl);\n })\n .catch(() => reject(`Unable to load xlsx.js`));\n });\n }\n\n @ZoneOutside()\n async export(options: XlsxExportOptions): Promise<XlsxExportResult> {\n return new Promise<XlsxExportResult>((resolve, reject) => {\n this.init()\n .then(() => {\n options = { format: 'xlsx', ...options };\n const {\n writeFile,\n utils: { book_new, aoa_to_sheet, book_append_sheet }\n } = XLSX;\n const wb: NzSafeAny = book_new();\n if (Array.isArray(options.sheets)) {\n (options.sheets as XlsxExportSheet[]).forEach((value: XlsxExportSheet, index: number) => {\n const ws: NzSafeAny = aoa_to_sheet(value.data);\n book_append_sheet(wb, ws, value.name || `Sheet${index + 1}`);\n });\n } else {\n wb.SheetNames = Object.keys(options.sheets);\n wb.Sheets = options.sheets;\n }\n\n if (options.callback) options.callback(wb);\n\n const filename = options.filename || `export.${options.format}`;\n writeFile(wb, filename, {\n bookType: options.format,\n bookSST: false,\n type: 'array',\n ...options.opts\n });\n\n resolve({ filename, wb });\n })\n .catch(err => reject(err));\n });\n }\n\n /**\n * 数据转符号名\n * - `1` => `A`\n * - `27` => `AA`\n * - `703` => `AAA`\n */\n numberToSchema(val: number): string {\n const startCode = 'A'.charCodeAt(0);\n let res = '';\n\n do {\n --val;\n res = String.fromCharCode(startCode + (val % 26)) + res;\n val = (val / 26) >> 0;\n } while (val > 0);\n\n return res;\n }\n}\n","import { Directive, Input } from '@angular/core';\n\nimport { XlsxService } from './xlsx.service';\nimport { XlsxExportOptions } from './xlsx.types';\n\n@Directive({\n selector: '[xlsx]',\n exportAs: 'xlsx',\n host: {\n '(click)': '_click()'\n },\n standalone: true\n})\nexport class XlsxDirective {\n @Input('xlsx') data!: XlsxExportOptions;\n\n constructor(private srv: XlsxService) {}\n\n _click(): void {\n this.srv.export(this.data);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { XlsxDirective } from './xlsx.directive';\n\nconst COMPONENTS = [XlsxDirective];\n\n@NgModule({\n imports: [COMPONENTS],\n exports: COMPONENTS\n})\nexport class XlsxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.XlsxService"],"mappings":"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"}
package/fesm2022/zip.mjs CHANGED
@@ -1,12 +1,11 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { Injectable, NgModule } from '@angular/core';
3
+ import { Injectable } from '@angular/core';
4
4
  import { saveAs } from 'file-saver';
5
5
  import { ZoneOutside } from '@delon/util/decorator';
6
6
  import * as i1 from '@angular/common/http';
7
7
  import * as i2 from '@delon/util/other';
8
8
  import * as i3 from '@delon/util/config';
9
- import { CommonModule } from '@angular/common';
10
9
 
11
10
  class ZipService {
12
11
  constructor(http, lazy, configSrv, ngZone) {
@@ -105,32 +104,20 @@ class ZipService {
105
104
  });
106
105
  });
107
106
  }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ZipService, deps: [{ token: i1.HttpClient }, { token: i2.LazyService }, { token: i3.AlainConfigService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
109
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ZipService, providedIn: 'root' }); }
107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ZipService, deps: [{ token: i1.HttpClient }, { token: i2.LazyService }, { token: i3.AlainConfigService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
108
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ZipService, providedIn: 'root' }); }
110
109
  }
111
110
  __decorate([
112
111
  ZoneOutside()
113
112
  ], ZipService.prototype, "read", null);
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ZipService, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ZipService, decorators: [{
115
114
  type: Injectable,
116
115
  args: [{ providedIn: 'root' }]
117
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.LazyService }, { type: i3.AlainConfigService }, { type: i0.NgZone }]; }, propDecorators: { read: [] } });
118
-
119
- class ZipModule {
120
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ZipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
121
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: ZipModule, imports: [CommonModule] }); }
122
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ZipModule, imports: [CommonModule] }); }
123
- }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ZipModule, decorators: [{
125
- type: NgModule,
126
- args: [{
127
- imports: [CommonModule]
128
- }]
129
- }] });
116
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.LazyService }, { type: i3.AlainConfigService }, { type: i0.NgZone }], propDecorators: { read: [] } });
130
117
 
131
118
  /**
132
119
  * Generated bundle index. Do not edit.
133
120
  */
134
121
 
135
- export { ZipModule, ZipService };
122
+ export { ZipService };
136
123
  //# sourceMappingURL=zip.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"zip.mjs","sources":["../../../../packages/abc/zip/zip.service.ts","../../../../packages/abc/zip/zip.module.ts","../../../../packages/abc/zip/zip.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable, NgZone } from '@angular/core';\n\nimport { saveAs } from 'file-saver';\nimport type jsZipType from 'jszip';\n\nimport { AlainConfigService, AlainZipConfig } from '@delon/util/config';\nimport { ZoneOutside } from '@delon/util/decorator';\nimport { LazyResult, LazyService } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { ZipSaveOptions } from './zip.types';\n\ndeclare var JSZip: jsZipType;\n\n@Injectable({ providedIn: 'root' })\nexport class ZipService {\n private cog: AlainZipConfig;\n\n constructor(\n private http: HttpClient,\n private lazy: LazyService,\n configSrv: AlainConfigService,\n private ngZone: NgZone\n ) {\n this.cog = configSrv.merge('zip', {\n url: 'https://cdn.jsdelivr.net/npm/jszip@3/dist/jszip.min.js',\n utils: []\n })!;\n }\n\n private init(): Promise<LazyResult[]> {\n return this.lazy.load([this.cog.url!].concat(this.cog.utils!));\n }\n\n private check(zip?: jsZipType | null): void {\n if (!zip) throw new Error('get instance via `ZipService.create()`');\n }\n\n /** 解压 */\n @ZoneOutside()\n read(fileOrUrl: File | string, options?: jsZipType.JSZipLoadOptions): Promise<jsZipType> {\n return new Promise<jsZipType>((resolve, reject) => {\n const resolveCallback = (data: jsZipType): void => {\n this.ngZone.run(() => resolve(data));\n };\n this.init().then(() => {\n // from url\n if (typeof fileOrUrl === 'string') {\n this.http.request('GET', fileOrUrl, { responseType: 'arraybuffer' }).subscribe({\n next: (res: ArrayBuffer) => {\n JSZip.loadAsync(res, options).then((ret: jsZipType) => resolveCallback(ret));\n },\n error: err => {\n reject(err);\n }\n });\n return;\n }\n // from file\n const reader: FileReader = new FileReader();\n reader.onload = (e: ProgressEvent<FileReader>) => {\n JSZip.loadAsync(e.target!.result as ArrayBuffer, options).then((ret: jsZipType) => resolveCallback(ret));\n };\n reader.readAsBinaryString(fileOrUrl as File);\n });\n });\n }\n\n /** 创建 Zip 实例,用于创建压缩文件 */\n create(): Promise<jsZipType | null> {\n return new Promise<jsZipType | null>(resolve => {\n this.init()\n .then(() => {\n const zipFile = new JSZip();\n resolve(zipFile);\n })\n .catch(() => resolve(null));\n });\n }\n\n /**\n * 下载URL资源并写入 zip\n *\n * @param zip Zip 实例\n * @param path Zip 路径,例如: `text.txt`、`txt/hi.txt`\n * @param url URL 地址\n */\n pushUrl(zip: jsZipType | null, path: string, url: string): Promise<void> {\n this.check(zip);\n return new Promise<void>((resolve, reject) => {\n this.http.request('GET', url, { responseType: 'arraybuffer' }).subscribe({\n next: (res: ArrayBuffer) => {\n zip!.file(path, res);\n resolve();\n },\n error: error => {\n reject({ url, error });\n }\n });\n });\n }\n\n /**\n * 保存Zip并执行打开保存对话框\n *\n * @param zip zip 对象,务必通过 `create()` 构建\n * @param options 额外参数,\n */\n save(zip: jsZipType | null, options?: ZipSaveOptions): Promise<void> {\n this.check(zip);\n const opt = { filename: 'download.zip', ...options } as ZipSaveOptions;\n return new Promise<void>((resolve, reject) => {\n zip!.generateAsync<'blob'>({ type: 'blob', ...opt.options } as NzSafeAny, opt.update as NzSafeAny).then(\n data => {\n if (opt.callback) opt.callback(data);\n saveAs(data, opt.filename);\n resolve();\n },\n err => {\n reject(err);\n }\n );\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\n@NgModule({\n imports: [CommonModule]\n})\nexport class ZipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zip.mjs","sources":["../../../../packages/abc/zip/zip.service.ts","../../../../packages/abc/zip/zip.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable, NgZone } from '@angular/core';\n\nimport { saveAs } from 'file-saver';\nimport type jsZipType from 'jszip';\n\nimport { AlainConfigService, AlainZipConfig } from '@delon/util/config';\nimport { ZoneOutside } from '@delon/util/decorator';\nimport { LazyResult, LazyService } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { ZipSaveOptions } from './zip.types';\n\ndeclare var JSZip: jsZipType;\n\n@Injectable({ providedIn: 'root' })\nexport class ZipService {\n private cog: AlainZipConfig;\n\n constructor(\n private http: HttpClient,\n private lazy: LazyService,\n configSrv: AlainConfigService,\n private ngZone: NgZone\n ) {\n this.cog = configSrv.merge('zip', {\n url: 'https://cdn.jsdelivr.net/npm/jszip@3/dist/jszip.min.js',\n utils: []\n })!;\n }\n\n private init(): Promise<LazyResult[]> {\n return this.lazy.load([this.cog.url!].concat(this.cog.utils!));\n }\n\n private check(zip?: jsZipType | null): void {\n if (!zip) throw new Error('get instance via `ZipService.create()`');\n }\n\n /** 解压 */\n @ZoneOutside()\n read(fileOrUrl: File | string, options?: jsZipType.JSZipLoadOptions): Promise<jsZipType> {\n return new Promise<jsZipType>((resolve, reject) => {\n const resolveCallback = (data: jsZipType): void => {\n this.ngZone.run(() => resolve(data));\n };\n this.init().then(() => {\n // from url\n if (typeof fileOrUrl === 'string') {\n this.http.request('GET', fileOrUrl, { responseType: 'arraybuffer' }).subscribe({\n next: (res: ArrayBuffer) => {\n JSZip.loadAsync(res, options).then((ret: jsZipType) => resolveCallback(ret));\n },\n error: err => {\n reject(err);\n }\n });\n return;\n }\n // from file\n const reader: FileReader = new FileReader();\n reader.onload = (e: ProgressEvent<FileReader>) => {\n JSZip.loadAsync(e.target!.result as ArrayBuffer, options).then((ret: jsZipType) => resolveCallback(ret));\n };\n reader.readAsBinaryString(fileOrUrl as File);\n });\n });\n }\n\n /** 创建 Zip 实例,用于创建压缩文件 */\n create(): Promise<jsZipType | null> {\n return new Promise<jsZipType | null>(resolve => {\n this.init()\n .then(() => {\n const zipFile = new JSZip();\n resolve(zipFile);\n })\n .catch(() => resolve(null));\n });\n }\n\n /**\n * 下载URL资源并写入 zip\n *\n * @param zip Zip 实例\n * @param path Zip 路径,例如: `text.txt`、`txt/hi.txt`\n * @param url URL 地址\n */\n pushUrl(zip: jsZipType | null, path: string, url: string): Promise<void> {\n this.check(zip);\n return new Promise<void>((resolve, reject) => {\n this.http.request('GET', url, { responseType: 'arraybuffer' }).subscribe({\n next: (res: ArrayBuffer) => {\n zip!.file(path, res);\n resolve();\n },\n error: error => {\n reject({ url, error });\n }\n });\n });\n }\n\n /**\n * 保存Zip并执行打开保存对话框\n *\n * @param zip zip 对象,务必通过 `create()` 构建\n * @param options 额外参数,\n */\n save(zip: jsZipType | null, options?: ZipSaveOptions): Promise<void> {\n this.check(zip);\n const opt = { filename: 'download.zip', ...options } as ZipSaveOptions;\n return new Promise<void>((resolve, reject) => {\n zip!.generateAsync<'blob'>({ type: 'blob', ...opt.options } as NzSafeAny, opt.update as NzSafeAny).then(\n data => {\n if (opt.callback) opt.callback(data);\n saveAs(data, opt.filename);\n resolve();\n },\n err => {\n reject(err);\n }\n );\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@
3
3
 
4
4
  @{footer-toolbar-prefix} {
5
5
  position: fixed;
6
+ z-index: @zindex;
6
7
  right: 0;
7
8
  bottom: 0;
8
- z-index: @zindex;
9
9
  display: flex;
10
10
  width: 100%;
11
11
  height: @footer-toolbar-height;
@@ -2,9 +2,9 @@
2
2
  @full-content-prefix: ~'.full-content';
3
3
 
4
4
  @{full-content-prefix} {
5
+ overflow: auto;
5
6
  display: block;
6
7
  height: 100%;
7
- overflow: auto;
8
8
 
9
9
  &__body {
10
10
  overflow: hidden;
@@ -26,8 +26,8 @@
26
26
  }
27
27
 
28
28
  &__copyright {
29
- color: @text-color-secondary;
30
29
  font-size: @font-size-base;
30
+ color: @text-color-secondary;
31
31
  }
32
32
  }
33
33
 
@@ -14,5 +14,5 @@ export declare class HotkeyDirective implements OnDestroy {
14
14
  constructor(el: ElementRef<HTMLElement>, ngZone: NgZone, platform: Platform);
15
15
  ngOnDestroy(): void;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<HotkeyDirective, never>;
17
- static ɵdir: i0.ɵɵDirectiveDeclaration<HotkeyDirective, "[hotkey]", never, { "hotkey": { "alias": "hotkey"; "required": false; }; }, {}, never, never, false, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HotkeyDirective, "[hotkey]", never, { "hotkey": { "alias": "hotkey"; "required": false; }; }, {}, never, never, true, never>;
18
18
  }
@@ -2,6 +2,6 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "./hotkey.directive";
3
3
  export declare class HotkeyModule {
4
4
  static ɵfac: i0.ɵɵFactoryDeclaration<HotkeyModule, never>;
5
- static ɵmod: i0.ɵɵNgModuleDeclaration<HotkeyModule, [typeof i1.HotkeyDirective], never, [typeof i1.HotkeyDirective]>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<HotkeyModule, never, [typeof i1.HotkeyDirective], [typeof i1.HotkeyDirective]>;
6
6
  static ɵinj: i0.ɵɵInjectorDeclaration<HotkeyModule>;
7
7
  }
@@ -12,5 +12,5 @@ export declare class LetDirective<T> {
12
12
  constructor(vc: ViewContainerRef, ref: TemplateRef<LetContext<T>>);
13
13
  static ngTemplateContextGuard<T>(_dir: LetDirective<T>, _ctx: NzSafeAny): _ctx is LetDirective<T>;
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<LetDirective<any>, never>;
15
- static ɵdir: i0.ɵɵDirectiveDeclaration<LetDirective<any>, "[let]", never, { "let": { "alias": "let"; "required": true; }; }, {}, never, never, false, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<LetDirective<any>, "[let]", never, { "let": { "alias": "let"; "required": true; }; }, {}, never, never, true, never>;
16
16
  }
@@ -2,6 +2,6 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "./let.directive";
3
3
  export declare class LetModule {
4
4
  static ɵfac: i0.ɵɵFactoryDeclaration<LetModule, never>;
5
- static ɵmod: i0.ɵɵNgModuleDeclaration<LetModule, [typeof i1.LetDirective], never, [typeof i1.LetDirective]>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<LetModule, never, [typeof i1.LetDirective], [typeof i1.LetDirective]>;
6
6
  static ɵinj: i0.ɵɵInjectorDeclaration<LetModule>;
7
7
  }
@@ -4,14 +4,14 @@
4
4
  @{loading-prefix} {
5
5
  &-backdrop {
6
6
  z-index: @loading-zindex;
7
- background-color: @loading-backdrop-bg;
8
7
  opacity: 1;
8
+ background-color: @loading-backdrop-bg;
9
9
  }
10
10
 
11
11
  &-default {
12
12
  position: fixed;
13
- inset: 0;
14
13
  z-index: @loading-zindex + 1;
14
+ inset: 0;
15
15
  display: flex;
16
16
  flex-direction: column;
17
17
  align-items: center;
@@ -19,8 +19,8 @@
19
19
 
20
20
  &__icon {
21
21
  margin-bottom: 8px;
22
- color: @loading-icon-color;
23
22
  font-size: 24px;
23
+ color: @loading-icon-color;
24
24
  }
25
25
 
26
26
  &__text {
@@ -5,8 +5,8 @@
5
5
  width: 336px;
6
6
 
7
7
  &__btn {
8
- display: inline-block;
9
8
  cursor: pointer;
9
+ display: inline-block;
10
10
  transition: all 0.3s;
11
11
  }
12
12
 
@@ -28,14 +28,14 @@
28
28
  }
29
29
 
30
30
  .@{ant-prefix}-list {
31
- max-height: 400px;
32
31
  overflow: auto;
32
+ max-height: 400px;
33
33
 
34
34
  &-item {
35
+ cursor: pointer;
36
+ overflow: hidden;
35
37
  padding-right: 24px;
36
38
  padding-left: 24px;
37
- overflow: hidden;
38
- cursor: pointer;
39
39
  transition: all 0.3s;
40
40
 
41
41
  &:last-child {
@@ -74,13 +74,13 @@
74
74
  }
75
75
 
76
76
  &__clear {
77
+ cursor: pointer;
77
78
  height: 46px;
78
- color: @text-color;
79
79
  line-height: 46px;
80
+ color: @text-color;
80
81
  text-align: center;
81
82
  border-top: 1px solid @border-color-split;
82
83
  border-radius: 0 0 @border-radius-base @border-radius-base;
83
- cursor: pointer;
84
84
  transition: all 0.3s;
85
85
 
86
86
  &:hover {
@@ -112,8 +112,8 @@
112
112
  float: right;
113
113
  margin-top: -1.5px;
114
114
  margin-right: 0;
115
- color: @text-color-secondary;
116
115
  font-weight: normal;
116
+ color: @text-color-secondary;
117
117
  }
118
118
  }
119
119
  }
@@ -23,10 +23,10 @@ export declare class ObserverSize implements AfterViewInit, OnDestroy {
23
23
  private _unsub;
24
24
  ngOnDestroy(): void;
25
25
  static ɵfac: i0.ɵɵFactoryDeclaration<ObserverSize, never>;
26
- static ɵdir: i0.ɵɵDirectiveDeclaration<ObserverSize, "[observeSize]", ["observeSize"], {}, { "event": "observeSize"; }, never, never, false, never>;
26
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ObserverSize, "[observeSize]", ["observeSize"], {}, { "event": "observeSize"; }, never, never, true, never>;
27
27
  }
28
28
  export declare class ObserversModule {
29
29
  static ɵfac: i0.ɵɵFactoryDeclaration<ObserversModule, never>;
30
- static ɵmod: i0.ɵɵNgModuleDeclaration<ObserversModule, [typeof ObserverSize], never, [typeof ObserverSize]>;
30
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ObserversModule, never, [typeof ObserverSize], [typeof ObserverSize]>;
31
31
  static ɵinj: i0.ɵɵInjectorDeclaration<ObserversModule>;
32
32
  }
@@ -8,10 +8,10 @@
8
8
 
9
9
  &__mask {
10
10
  position: fixed;
11
- inset: 0;
12
11
  z-index: @onboarding-zindex - 1;
13
- background-color: @onboarding-mask-background-color;
12
+ inset: 0;
14
13
  opacity: @onboarding-mask-opacity;
14
+ background-color: @onboarding-mask-background-color;
15
15
  }
16
16
 
17
17
  &__item {
@@ -19,11 +19,11 @@
19
19
  }
20
20
 
21
21
  &__light {
22
+ pointer-events: none;
22
23
  position: absolute;
23
24
  z-index: @onboarding-zindex;
24
25
  background-color: @onboarding-light-background-color;
25
26
  animation: @onboarding-light-ant;
26
- pointer-events: none;
27
27
 
28
28
  &-el {
29
29
  // position: relative;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delon/abc",
3
- "version": "16.4.2",
3
+ "version": "17.0.0",
4
4
  "author": "cipchk<cipchk@qq.com>",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -26,11 +26,11 @@
26
26
  "jszip": "^3.10.1",
27
27
  "xlsx": "^0.18.5",
28
28
  "plyr": "^3.7.8",
29
- "@github/hotkey": "^2.0.1",
30
- "ngx-countdown": "^16.0.0",
31
- "@delon/theme": "^16.4.2",
32
- "@delon/util": "^16.4.2",
33
- "@delon/acl": "^16.4.2",
29
+ "@github/hotkey": "^2.3.0",
30
+ "ngx-countdown": "^17.0.0",
31
+ "@delon/theme": "^17.0.0",
32
+ "@delon/util": "^17.0.0",
33
+ "@delon/acl": "^17.0.0",
34
34
  "tslib": "^2.3.0"
35
35
  },
36
36
  "module": "fesm2022/abc.mjs",
@@ -45,15 +45,15 @@
45
45
  }
46
46
 
47
47
  &__title {
48
- color: @heading-color;
49
- font-weight: 500;
50
48
  font-size: 20px;
49
+ font-weight: 500;
50
+ color: @heading-color;
51
51
 
52
52
  small {
53
53
  padding-left: @layout-gutter;
54
- color: @page-header-title-sub-color;
55
- font-weight: normal;
56
54
  font-size: 14px;
55
+ font-weight: normal;
56
+ color: @page-header-title-sub-color;
57
57
  }
58
58
  }
59
59
 
@@ -4,9 +4,9 @@
4
4
  @{pdf-prefix} {
5
5
  &-container {
6
6
  position: absolute;
7
+ overflow-x: auto;
7
8
  width: 100%;
8
9
  height: 100%;
9
- overflow-x: auto;
10
10
  -webkit-overflow-scrolling: touch;
11
11
  }
12
12
  }
@@ -3,9 +3,9 @@
3
3
 
4
4
  @{quick-menu-prefix} {
5
5
  position: fixed;
6
+ z-index: @zindex + 2;
6
7
  right: -@quick-menu-border-width;
7
8
  left: auto;
8
- z-index: @zindex + 2;
9
9
  display: block;
10
10
  backface-visibility: hidden;
11
11
  transition: margin 0.3s cubic-bezier(1, 0, 0, 1);
@@ -23,6 +23,7 @@
23
23
  }
24
24
 
25
25
  &__ctrl {
26
+ cursor: pointer;
26
27
  position: absolute;
27
28
  top: -1px;
28
29
  left: -@quick-menu-ctrl-hw;
@@ -31,7 +32,6 @@
31
32
  text-align: center;
32
33
  border-right: 0;
33
34
  border-radius: 3px 0 0 3px;
34
- cursor: pointer;
35
35
 
36
36
  &-icon {
37
37
  font-size: 20px;
@@ -7,10 +7,6 @@
7
7
  margin: 0 auto;
8
8
  text-align: center;
9
9
 
10
- @media screen and (max-width: @screen-xs) {
11
- width: 100%;
12
- }
13
-
14
10
  &__icon {
15
11
  margin-bottom: 24px;
16
12
  font-size: 72px;
@@ -27,17 +23,17 @@
27
23
 
28
24
  &__title {
29
25
  margin-bottom: 16px;
30
- color: @heading-color;
31
- font-weight: 500;
32
26
  font-size: 24px;
27
+ font-weight: 500;
33
28
  line-height: 32px;
29
+ color: @heading-color;
34
30
  }
35
31
 
36
32
  &__desc {
37
33
  margin-bottom: 24px;
38
- color: @text-color-secondary;
39
34
  font-size: 14px;
40
35
  line-height: 22px;
36
+ color: @text-color-secondary;
41
37
  }
42
38
 
43
39
  &__extra {
@@ -62,6 +58,10 @@
62
58
  .@{ant-prefix}-steps .@{ant-prefix}-steps-title {
63
59
  background: @result-extra-bg;
64
60
  }
61
+
62
+ @media screen and (max-width: @screen-xs) {
63
+ width: 100%;
64
+ }
65
65
  }
66
66
 
67
67
  @import './rtl.less';
@@ -0,0 +1,28 @@
1
+ import { EnvironmentProviders, Provider } from '@angular/core';
2
+ import { ReuseTabMatchMode, ReuseTabRouteParamMatchMode } from './reuse-tab.interfaces';
3
+ export declare enum ReuseTabFeatureKind {
4
+ CacheManager = 0,
5
+ Store = 1
6
+ }
7
+ export interface ReuseTabFeature<KindT extends ReuseTabFeatureKind> {
8
+ ɵkind: KindT;
9
+ ɵproviders: Provider[];
10
+ }
11
+ /**
12
+ * Configures reuse-tab to be available for injection.
13
+ *
14
+ * @see {@link withLocalStorage}
15
+ * @see {@link withCacheManager}
16
+ */
17
+ export declare function provideReuseTabConfig(options?: {
18
+ debug?: boolean;
19
+ mode?: ReuseTabMatchMode;
20
+ routeParamMatchMode?: ReuseTabRouteParamMatchMode;
21
+ max?: number;
22
+ excludes?: RegExp[];
23
+ storeKey?: string;
24
+ cacheManager?: ReuseTabFeature<ReuseTabFeatureKind.CacheManager>;
25
+ store?: ReuseTabFeature<ReuseTabFeatureKind.Store>;
26
+ }): EnvironmentProviders;
27
+ export declare function withCacheManager(): ReuseTabFeature<ReuseTabFeatureKind.CacheManager>;
28
+ export declare function withLocalStorage(): ReuseTabFeature<ReuseTabFeatureKind.Store>;
@@ -10,3 +10,4 @@ export * from './reuse-tab.interfaces';
10
10
  export * from './lifecycle_hooks';
11
11
  export * from './reuse-tab.state';
12
12
  export { REUSE_TAB_CACHED_MANAGER, ReuseTabCachedManager } from './reuse-tab.cache';
13
+ export * from './provide';
@@ -19,5 +19,5 @@ export declare class ReuseTabContextMenuComponent implements OnInit {
19
19
  isDisabled(custom: ReuseCustomContextMenu): boolean;
20
20
  closeMenu(event: MouseEvent): void;
21
21
  static ɵfac: i0.ɵɵFactoryDeclaration<ReuseTabContextMenuComponent, never>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<ReuseTabContextMenuComponent, "reuse-tab-context-menu", never, { "i18n": { "alias": "i18n"; "required": false; }; "item": { "alias": "item"; "required": false; }; "event": { "alias": "event"; "required": false; }; "customContextMenu": { "alias": "customContextMenu"; "required": false; }; }, { "close": "close"; }, never, never, false, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<ReuseTabContextMenuComponent, "reuse-tab-context-menu", never, { "i18n": { "alias": "i18n"; "required": false; }; "item": { "alias": "item"; "required": false; }; "event": { "alias": "event"; "required": false; }; "customContextMenu": { "alias": "customContextMenu"; "required": false; }; }, { "close": "close"; }, never, never, true, never>;
23
23
  }
@@ -10,5 +10,5 @@ export declare class ReuseTabContextComponent implements OnDestroy {
10
10
  constructor(srv: ReuseTabContextService);
11
11
  ngOnDestroy(): void;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<ReuseTabContextComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<ReuseTabContextComponent, "reuse-tab-context", never, { "i18n": { "alias": "i18n"; "required": false; }; }, { "change": "change"; }, never, never, false, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<ReuseTabContextComponent, "reuse-tab-context", never, { "i18n": { "alias": "i18n"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
14
14
  }
@@ -8,5 +8,5 @@ export declare class ReuseTabContextDirective {
8
8
  constructor(srv: ReuseTabContextService);
9
9
  _onContextMenu(event: MouseEvent): void;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<ReuseTabContextDirective, never>;
11
- static ɵdir: i0.ɵɵDirectiveDeclaration<ReuseTabContextDirective, "[reuse-tab-context-menu]", ["reuseTabContextMenu"], { "item": { "alias": "reuse-tab-context-menu"; "required": false; }; "customContextMenu": { "alias": "customContextMenu"; "required": false; }; }, {}, never, never, false, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ReuseTabContextDirective, "[reuse-tab-context-menu]", ["reuseTabContextMenu"], { "item": { "alias": "reuse-tab-context-menu"; "required": false; }; "customContextMenu": { "alias": "customContextMenu"; "required": false; }; }, {}, never, never, true, never>;
12
12
  }
@@ -84,5 +84,5 @@ export declare class ReuseTabComponent implements OnInit, OnChanges {
84
84
  [P in keyof this]?: SimpleChange;
85
85
  } & SimpleChanges): void;
86
86
  static ɵfac: i0.ɵɵFactoryDeclaration<ReuseTabComponent, [null, null, null, null, { optional: true; }, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
87
- static ɵcmp: i0.ɵɵComponentDeclaration<ReuseTabComponent, "reuse-tab, [reuse-tab]", ["reuseTab"], { "mode": { "alias": "mode"; "required": false; }; "i18n": { "alias": "i18n"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "max": { "alias": "max"; "required": false; }; "tabMaxWidth": { "alias": "tabMaxWidth"; "required": false; }; "excludes": { "alias": "excludes"; "required": false; }; "allowClose": { "alias": "allowClose"; "required": false; }; "keepingScroll": { "alias": "keepingScroll"; "required": false; }; "storageState": { "alias": "storageState"; "required": false; }; "keepingScrollContainer": { "alias": "keepingScrollContainer"; "required": false; }; "customContextMenu": { "alias": "customContextMenu"; "required": false; }; "tabBarExtraContent": { "alias": "tabBarExtraContent"; "required": false; }; "tabBarGutter": { "alias": "tabBarGutter"; "required": false; }; "tabBarStyle": { "alias": "tabBarStyle"; "required": false; }; "tabType": { "alias": "tabType"; "required": false; }; "routeParamMatchMode": { "alias": "routeParamMatchMode"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "titleRender": { "alias": "titleRender"; "required": false; }; "canClose": { "alias": "canClose"; "required": false; }; }, { "change": "change"; "close": "close"; }, never, never, false, never>;
87
+ static ɵcmp: i0.ɵɵComponentDeclaration<ReuseTabComponent, "reuse-tab, [reuse-tab]", ["reuseTab"], { "mode": { "alias": "mode"; "required": false; }; "i18n": { "alias": "i18n"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "max": { "alias": "max"; "required": false; }; "tabMaxWidth": { "alias": "tabMaxWidth"; "required": false; }; "excludes": { "alias": "excludes"; "required": false; }; "allowClose": { "alias": "allowClose"; "required": false; }; "keepingScroll": { "alias": "keepingScroll"; "required": false; }; "storageState": { "alias": "storageState"; "required": false; }; "keepingScrollContainer": { "alias": "keepingScrollContainer"; "required": false; }; "customContextMenu": { "alias": "customContextMenu"; "required": false; }; "tabBarExtraContent": { "alias": "tabBarExtraContent"; "required": false; }; "tabBarGutter": { "alias": "tabBarGutter"; "required": false; }; "tabBarStyle": { "alias": "tabBarStyle"; "required": false; }; "tabType": { "alias": "tabType"; "required": false; }; "routeParamMatchMode": { "alias": "routeParamMatchMode"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "titleRender": { "alias": "titleRender"; "required": false; }; "canClose": { "alias": "canClose"; "required": false; }; }, { "change": "change"; "close": "close"; }, never, never, true, never>;
88
88
  }
@@ -1,17 +1,17 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./reuse-tab.component";
3
- import * as i2 from "./reuse-tab-context-menu.component";
4
- import * as i3 from "./reuse-tab-context.component";
5
- import * as i4 from "./reuse-tab-context.directive";
6
- import * as i5 from "@angular/common";
7
- import * as i6 from "@angular/router";
8
- import * as i7 from "@delon/theme";
9
- import * as i8 from "ng-zorro-antd/menu";
10
- import * as i9 from "ng-zorro-antd/tabs";
11
- import * as i10 from "ng-zorro-antd/icon";
12
- import * as i11 from "@angular/cdk/overlay";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "@angular/router";
4
+ import * as i3 from "@delon/theme";
5
+ import * as i4 from "ng-zorro-antd/menu";
6
+ import * as i5 from "ng-zorro-antd/tabs";
7
+ import * as i6 from "ng-zorro-antd/icon";
8
+ import * as i7 from "@angular/cdk/overlay";
9
+ import * as i8 from "./reuse-tab.component";
10
+ import * as i9 from "./reuse-tab-context-menu.component";
11
+ import * as i10 from "./reuse-tab-context.component";
12
+ import * as i11 from "./reuse-tab-context.directive";
13
13
  export declare class ReuseTabModule {
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<ReuseTabModule, never>;
15
- static ɵmod: i0.ɵɵNgModuleDeclaration<ReuseTabModule, [typeof i1.ReuseTabComponent, typeof i2.ReuseTabContextMenuComponent, typeof i3.ReuseTabContextComponent, typeof i4.ReuseTabContextDirective], [typeof i5.CommonModule, typeof i6.RouterModule, typeof i7.DelonLocaleModule, typeof i8.NzMenuModule, typeof i9.NzTabsModule, typeof i10.NzIconModule, typeof i11.OverlayModule], [typeof i1.ReuseTabComponent]>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ReuseTabModule, never, [typeof i1.CommonModule, typeof i2.RouterModule, typeof i3.DelonLocaleModule, typeof i4.NzMenuModule, typeof i5.NzTabsModule, typeof i6.NzIconModule, typeof i7.OverlayModule, typeof i8.ReuseTabComponent, typeof i9.ReuseTabContextMenuComponent, typeof i10.ReuseTabContextComponent, typeof i11.ReuseTabContextDirective], [typeof i8.ReuseTabComponent]>;
16
16
  static ɵinj: i0.ɵɵInjectorDeclaration<ReuseTabModule>;
17
17
  }
@@ -2,18 +2,18 @@
2
2
  @reuse-tab-prefix: ~'.reuse-tab';
3
3
 
4
4
  @{reuse-tab-prefix} {
5
+ user-select: none;
5
6
  display: block;
6
7
  background-color: @reuse-tab-bg;
7
8
  outline: none;
8
- user-select: none;
9
9
  .@{ant-prefix}-tabs {
10
10
  &-nav .@{ant-prefix}-tabs-tab {
11
11
  @{reuse-tab-prefix}__op {
12
12
  position: absolute;
13
13
  display: none;
14
14
  margin: 0;
15
- color: @text-color;
16
15
  font-size: 10px;
16
+ color: @text-color;
17
17
  }
18
18
 
19
19
  &:hover {
@@ -23,8 +23,8 @@
23
23
  }
24
24
  @{reuse-tab-prefix}__name {
25
25
  &-width {
26
- display: inline-block;
27
26
  overflow: hidden;
27
+ display: inline-block;
28
28
  text-overflow: ellipsis;
29
29
  }
30
30
  }
@@ -71,8 +71,8 @@
71
71
  }
72
72
 
73
73
  &__disabled {
74
- opacity: 0.8;
75
74
  pointer-events: none;
75
+ opacity: 0.8;
76
76
  }
77
77
  }
78
78