ng-zorro-antd-extension 19.0.0 → 20.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 (198) hide show
  1. package/acl/index.d.ts +52 -5
  2. package/blank-field/index.d.ts +27 -5
  3. package/checkbox/index.d.ts +40 -3
  4. package/configurable-query/index.d.ts +243 -3
  5. package/core/config/index.d.ts +52 -3
  6. package/dynamic-form/index.d.ts +112 -3
  7. package/editable/index.d.ts +29 -5
  8. package/fesm2022/ng-zorro-antd-extension-acl.mjs +11 -11
  9. package/fesm2022/ng-zorro-antd-extension-acl.mjs.map +1 -1
  10. package/fesm2022/ng-zorro-antd-extension-blank-field.mjs +8 -8
  11. package/fesm2022/ng-zorro-antd-extension-blank-field.mjs.map +1 -1
  12. package/fesm2022/ng-zorro-antd-extension-checkbox.mjs +9 -9
  13. package/fesm2022/ng-zorro-antd-extension-checkbox.mjs.map +1 -1
  14. package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs +39 -39
  15. package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs.map +1 -1
  16. package/fesm2022/ng-zorro-antd-extension-core-config.mjs +4 -4
  17. package/fesm2022/ng-zorro-antd-extension-core-config.mjs.map +1 -1
  18. package/fesm2022/ng-zorro-antd-extension-dynamic-form.mjs +53 -53
  19. package/fesm2022/ng-zorro-antd-extension-dynamic-form.mjs.map +1 -1
  20. package/fesm2022/ng-zorro-antd-extension-editable.mjs +9 -9
  21. package/fesm2022/ng-zorro-antd-extension-editable.mjs.map +1 -1
  22. package/fesm2022/ng-zorro-antd-extension-jigsaw.mjs +8 -8
  23. package/fesm2022/ng-zorro-antd-extension-jigsaw.mjs.map +1 -1
  24. package/fesm2022/ng-zorro-antd-extension-pipes.mjs +25 -25
  25. package/fesm2022/ng-zorro-antd-extension-pipes.mjs.map +1 -1
  26. package/fesm2022/ng-zorro-antd-extension-print.mjs +36 -26
  27. package/fesm2022/ng-zorro-antd-extension-print.mjs.map +1 -1
  28. package/fesm2022/ng-zorro-antd-extension-simple-table.mjs +18 -18
  29. package/fesm2022/ng-zorro-antd-extension-simple-table.mjs.map +1 -1
  30. package/fesm2022/ng-zorro-antd-extension-table-adaptor.mjs +11 -11
  31. package/fesm2022/ng-zorro-antd-extension-table-adaptor.mjs.map +1 -1
  32. package/fesm2022/ng-zorro-antd-extension-table-form.mjs +19 -19
  33. package/fesm2022/ng-zorro-antd-extension-table-form.mjs.map +1 -1
  34. package/fesm2022/ng-zorro-antd-extension-table-select.mjs +20 -20
  35. package/fesm2022/ng-zorro-antd-extension-table-select.mjs.map +1 -1
  36. package/fesm2022/ng-zorro-antd-extension-timer-button.mjs +8 -8
  37. package/fesm2022/ng-zorro-antd-extension-timer-button.mjs.map +1 -1
  38. package/fesm2022/ng-zorro-antd-extension-trim.mjs +8 -8
  39. package/fesm2022/ng-zorro-antd-extension-trim.mjs.map +1 -1
  40. package/fesm2022/ng-zorro-antd-extension-util.mjs.map +1 -1
  41. package/fesm2022/ng-zorro-antd-extension-wang-editor.mjs +11 -11
  42. package/fesm2022/ng-zorro-antd-extension-wang-editor.mjs.map +1 -1
  43. package/i18n/index.d.ts +29 -5
  44. package/index.d.ts +2 -5
  45. package/jigsaw/index.d.ts +50 -5
  46. package/package.json +15 -15
  47. package/pipes/index.d.ts +68 -5
  48. package/print/index.d.ts +111 -3
  49. package/simple-table/index.d.ts +85 -3
  50. package/table-adaptor/index.d.ts +66 -5
  51. package/table-form/index.d.ts +247 -3
  52. package/table-select/index.d.ts +107 -3
  53. package/timer-button/index.d.ts +29 -5
  54. package/trim/index.d.ts +48 -5
  55. package/types/index.d.ts +8 -3
  56. package/util/index.d.ts +60 -3
  57. package/wang-editor/index.d.ts +70 -5
  58. package/.npmignore +0 -2
  59. package/acl/nzx-acl.directive.d.ts +0 -25
  60. package/acl/nzx-acl.module.d.ts +0 -9
  61. package/acl/nzx-acl.service.d.ts +0 -19
  62. package/acl/package.json +0 -3
  63. package/acl/public-api.d.ts +0 -7
  64. package/blank-field/blank-field.component.d.ts +0 -19
  65. package/blank-field/blank-field.module.d.ts +0 -7
  66. package/blank-field/package.json +0 -3
  67. package/blank-field/public-api.d.ts +0 -6
  68. package/checkbox/checkbox-group.component.d.ts +0 -33
  69. package/checkbox/checkbox.module.d.ts +0 -7
  70. package/checkbox/package.json +0 -3
  71. package/checkbox/public-api.d.ts +0 -6
  72. package/configurable-query/configurable-query-item/configurable-query-item.component.d.ts +0 -18
  73. package/configurable-query/configurable-query.component.d.ts +0 -111
  74. package/configurable-query/configurable-query.module.d.ts +0 -12
  75. package/configurable-query/control.directive.d.ts +0 -9
  76. package/configurable-query/controls/abstract.control.d.ts +0 -13
  77. package/configurable-query/controls/date-picker.control.d.ts +0 -6
  78. package/configurable-query/controls/input.control.d.ts +0 -6
  79. package/configurable-query/controls/range-picker.control.d.ts +0 -6
  80. package/configurable-query/controls/select.control.d.ts +0 -6
  81. package/configurable-query/controls/template.control.d.ts +0 -6
  82. package/configurable-query/package.json +0 -3
  83. package/configurable-query/public-api.d.ts +0 -6
  84. package/configurable-query/query-config.service.d.ts +0 -21
  85. package/configurable-query/type.d.ts +0 -89
  86. package/core/config/config.d.ts +0 -30
  87. package/core/config/config.service.d.ts +0 -20
  88. package/core/config/package.json +0 -3
  89. package/core/config/public-api.d.ts +0 -2
  90. package/dynamic-form/config/dynamic-form-config.d.ts +0 -18
  91. package/dynamic-form/controls/abstract.control.d.ts +0 -11
  92. package/dynamic-form/controls/date-picker.control.d.ts +0 -6
  93. package/dynamic-form/controls/input.control.d.ts +0 -6
  94. package/dynamic-form/controls/range-picker.control.d.ts +0 -6
  95. package/dynamic-form/controls/select.control.d.ts +0 -6
  96. package/dynamic-form/controls/template.control.d.ts +0 -6
  97. package/dynamic-form/dynamic-form-item/dynamic-form-item.component.d.ts +0 -12
  98. package/dynamic-form/dynamic-form.component.d.ts +0 -5
  99. package/dynamic-form/dynamic-form.module.d.ts +0 -17
  100. package/dynamic-form/package.json +0 -3
  101. package/dynamic-form/public-api.d.ts +0 -7
  102. package/dynamic-form/wrapper/control/abstract-control-wrapper.d.ts +0 -12
  103. package/dynamic-form/wrapper/control/built-in-control-wrapper.d.ts +0 -7
  104. package/dynamic-form/wrapper/item/abstract-item-wrapper.d.ts +0 -14
  105. package/dynamic-form/wrapper/item/built-in-item-wrapper.d.ts +0 -6
  106. package/dynamic-form/wrapper/label/abstract-label-wrapper.d.ts +0 -5
  107. package/dynamic-form/wrapper/label/built-in-label-wrapper.d.ts +0 -6
  108. package/editable/editable.component.d.ts +0 -20
  109. package/editable/editable.module.d.ts +0 -7
  110. package/editable/package.json +0 -3
  111. package/editable/public-api.d.ts +0 -2
  112. package/i18n/languages/en_US.d.ts +0 -10
  113. package/i18n/languages/zh_CN.d.ts +0 -10
  114. package/i18n/nz-i18n.interface.d.ts +0 -6
  115. package/i18n/package.json +0 -3
  116. package/i18n/public-api.d.ts +0 -3
  117. package/jigsaw/jigsaw.component.d.ts +0 -41
  118. package/jigsaw/jigsaw.module.d.ts +0 -7
  119. package/jigsaw/package.json +0 -3
  120. package/jigsaw/public-api.d.ts +0 -6
  121. package/pipes/map.pipe.d.ts +0 -9
  122. package/pipes/package.json +0 -3
  123. package/pipes/pipes.module.d.ts +0 -13
  124. package/pipes/public-api.d.ts +0 -12
  125. package/pipes/safe-html.pipe.d.ts +0 -9
  126. package/pipes/safe-null.pipe.d.ts +0 -11
  127. package/pipes/safe-resource-url.pipe.d.ts +0 -8
  128. package/pipes/safe-script.pipe.d.ts +0 -8
  129. package/pipes/safe-style.pipe.d.ts +0 -8
  130. package/pipes/safe-url.pipe.d.ts +0 -13
  131. package/print/nzx-print-content.directive.d.ts +0 -10
  132. package/print/nzx-print-v.component.d.ts +0 -45
  133. package/print/nzx-print.component.d.ts +0 -34
  134. package/print/nzx-print.directive.d.ts +0 -17
  135. package/print/nzx-print.module.d.ts +0 -10
  136. package/print/package.json +0 -3
  137. package/print/public-api.d.ts +0 -9
  138. package/public-api.d.ts +0 -2
  139. package/simple-table/directive/expand.directive.d.ts +0 -8
  140. package/simple-table/directive/td.directive.d.ts +0 -9
  141. package/simple-table/directive/th.directive.d.ts +0 -9
  142. package/simple-table/package.json +0 -3
  143. package/simple-table/public-api.d.ts +0 -9
  144. package/simple-table/simple-table.component.d.ts +0 -57
  145. package/simple-table/simple-table.module.d.ts +0 -10
  146. package/table-adaptor/package.json +0 -3
  147. package/table-adaptor/page-table-basic.d.ts +0 -14
  148. package/table-adaptor/public-api.d.ts +0 -7
  149. package/table-adaptor/table-adaptor.directive.d.ts +0 -43
  150. package/table-adaptor/table-adaptor.module.d.ts +0 -7
  151. package/table-form/directive/table-expand.directive.d.ts +0 -9
  152. package/table-form/directive/table-td.directive.d.ts +0 -9
  153. package/table-form/directive/table-th.directive.d.ts +0 -10
  154. package/table-form/package.json +0 -3
  155. package/table-form/public-api.d.ts +0 -10
  156. package/table-form/table-form.component.d.ts +0 -122
  157. package/table-form/table-form.module.d.ts +0 -10
  158. package/table-form/type.d.ts +0 -94
  159. package/table-select/abstract-table-select.d.ts +0 -51
  160. package/table-select/key.directive.d.ts +0 -8
  161. package/table-select/nzx-table-select.module.d.ts +0 -9
  162. package/table-select/package.json +0 -3
  163. package/table-select/page-table-select/page-table-select.component.d.ts +0 -22
  164. package/table-select/public-api.d.ts +0 -10
  165. package/table-select/table-select/table-select.component.d.ts +0 -13
  166. package/table-select/type.d.ts +0 -14
  167. package/timer-button/package.json +0 -3
  168. package/timer-button/public-api.d.ts +0 -6
  169. package/timer-button/timer-button.directive.d.ts +0 -20
  170. package/timer-button/timer-button.module.d.ts +0 -7
  171. package/trim/package.json +0 -3
  172. package/trim/public-api.d.ts +0 -6
  173. package/trim/trim.directive.d.ts +0 -39
  174. package/trim/trim.module.d.ts +0 -7
  175. package/types/common.d.ts +0 -8
  176. package/types/package.json +0 -3
  177. package/types/public-api.d.ts +0 -5
  178. package/util/lib/cloneDeep.d.ts +0 -2
  179. package/util/lib/fileUtil.d.ts +0 -16
  180. package/util/lib/getElementByTag.d.ts +0 -8
  181. package/util/lib/isArray.d.ts +0 -2
  182. package/util/lib/isDate.d.ts +0 -1
  183. package/util/lib/isEmpty.d.ts +0 -2
  184. package/util/lib/isNumber.d.ts +0 -1
  185. package/util/lib/isObject.d.ts +0 -1
  186. package/util/lib/isString.d.ts +0 -1
  187. package/util/lib/toNumber.d.ts +0 -1
  188. package/util/lib/toString.d.ts +0 -1
  189. package/util/lib/trimObject.d.ts +0 -2
  190. package/util/lib/updateControlStatus.d.ts +0 -9
  191. package/util/package.json +0 -3
  192. package/util/public-api.d.ts +0 -17
  193. package/wang-editor/package.json +0 -3
  194. package/wang-editor/public-api.d.ts +0 -8
  195. package/wang-editor/type.d.ts +0 -3
  196. package/wang-editor/wang-editor.component.d.ts +0 -41
  197. package/wang-editor/wang-editor.module.d.ts +0 -8
  198. package/wang-editor/wang-toolbar.component.d.ts +0 -19
@@ -1 +1 @@
1
- {"version":3,"file":"ng-zorro-antd-extension-editable.mjs","sources":["../../../components/editable/editable.component.ts","../../../components/editable/editable.module.ts","../../../components/editable/ng-zorro-antd-extension-editable.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/directive-selector */\n/* eslint-disable @angular-eslint/component-selector */\nimport { NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n isNumber,\n isString,\n toNumber,\n toString,\n} from 'ng-zorro-antd-extension/util';\nimport { NzTransButtonModule } from 'ng-zorro-antd/core/trans-button';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\n\n@Component({\n selector: '[nzx-editable]',\n template: `\n <ng-container #detailContainer> </ng-container>\n\n <ng-template #detailTemplate>\n {{ nzxContent }}\n <button\n *ngIf=\"nzxShowBtn\"\n class=\"ant-typography-edit\"\n type=\"button\"\n nz-trans-button\n (click)=\"edit()\"\n >\n <span nz-icon nzType=\"edit\" nzTheme=\"outline\"></span>\n </button>\n </ng-template>\n\n <ng-template #editTemplate>\n <textarea\n nz-input\n [nzAutosize]=\"{ minRows: 1, maxRows: 4 }\"\n [ngModel]=\"nzxContent\"\n (ngModelChange)=\"valueChange($event)\"\n (blur)=\"blur()\"\n ></textarea>\n </ng-template>\n `,\n styles: [\n `\n .nzx-editable-cell {\n cursor: pointer;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'NzxEditable',\n imports: [\n NgIf,\n FormsModule,\n NzIconModule,\n NzInputModule,\n NzTransButtonModule,\n ],\n})\nexport class NzxEditableComponent implements OnInit {\n @Input() nzxContent: string | number | null = '';\n @Input() nzxShowBtn = true;\n @Input() nzxContentType: 'string' | 'number' | undefined;\n\n @Output() nzxContentChange = new EventEmitter();\n\n @HostBinding('class') class = 'nzx-editable-cell';\n\n @ViewChild('detailTemplate', { static: true })\n private detailTemplateRef!: TemplateRef<any>;\n\n @ViewChild('editTemplate', { static: true })\n private editTemplateRef!: TemplateRef<any>;\n\n @ViewChild('detailContainer', { static: true, read: ViewContainerRef })\n private detailContainerRef!: ViewContainerRef;\n private _valueType: 'string' | 'number' = 'string';\n\n @HostListener('dblclick')\n dblclick() {\n this.edit();\n }\n\n ngOnInit(): void {\n if (this.nzxContentType) {\n this._valueType = this.nzxContentType;\n } else {\n if (isString(this.nzxContent)) {\n this._valueType = 'string';\n }\n if (isNumber(this.nzxContent)) {\n this._valueType = 'number';\n }\n }\n\n this.detailContainerRef.clear();\n const view = this.detailContainerRef.createEmbeddedView(\n this.detailTemplateRef\n );\n view.markForCheck();\n }\n\n edit() {\n this.detailContainerRef.clear();\n const view = this.detailContainerRef.createEmbeddedView(\n this.editTemplateRef\n );\n view.markForCheck();\n (view.rootNodes[0] as HTMLTextAreaElement).focus();\n }\n\n blur() {\n this.detailContainerRef.clear();\n const view = this.detailContainerRef.createEmbeddedView(\n this.detailTemplateRef\n );\n view.markForCheck();\n }\n\n valueChange(value: any) {\n let result = value;\n if (this._valueType === 'number') {\n result = toNumber(value);\n } else {\n result = toString(value);\n }\n this.nzxContentChange.emit(result);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NzxEditableComponent } from './editable.component';\n@NgModule({\n imports: [NzxEditableComponent],\n exports: [NzxEditableComponent],\n})\nexport class NzxEditableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-zorro-antd-extension-editable.mjs","sources":["../../../components/editable/editable.component.ts","../../../components/editable/editable.module.ts","../../../components/editable/ng-zorro-antd-extension-editable.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/directive-selector */\n/* eslint-disable @angular-eslint/component-selector */\nimport { NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n isNumber,\n isString,\n toNumber,\n toString,\n} from 'ng-zorro-antd-extension/util';\nimport { NzTransButtonModule } from 'ng-zorro-antd/core/trans-button';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\n\n@Component({\n selector: '[nzx-editable]',\n template: `\n <ng-container #detailContainer> </ng-container>\n\n <ng-template #detailTemplate>\n {{ nzxContent }}\n <button\n *ngIf=\"nzxShowBtn\"\n class=\"ant-typography-edit\"\n type=\"button\"\n nz-trans-button\n (click)=\"edit()\"\n >\n <span nz-icon nzType=\"edit\" nzTheme=\"outline\"></span>\n </button>\n </ng-template>\n\n <ng-template #editTemplate>\n <textarea\n nz-input\n [nzAutosize]=\"{ minRows: 1, maxRows: 4 }\"\n [ngModel]=\"nzxContent\"\n (ngModelChange)=\"valueChange($event)\"\n (blur)=\"blur()\"\n ></textarea>\n </ng-template>\n `,\n styles: [\n `\n .nzx-editable-cell {\n cursor: pointer;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'NzxEditable',\n imports: [\n NgIf,\n FormsModule,\n NzIconModule,\n NzInputModule,\n NzTransButtonModule,\n ],\n})\nexport class NzxEditableComponent implements OnInit {\n @Input() nzxContent: string | number | null = '';\n @Input() nzxShowBtn = true;\n @Input() nzxContentType: 'string' | 'number' | undefined;\n\n @Output() nzxContentChange = new EventEmitter();\n\n @HostBinding('class') class = 'nzx-editable-cell';\n\n @ViewChild('detailTemplate', { static: true })\n private detailTemplateRef!: TemplateRef<any>;\n\n @ViewChild('editTemplate', { static: true })\n private editTemplateRef!: TemplateRef<any>;\n\n @ViewChild('detailContainer', { static: true, read: ViewContainerRef })\n private detailContainerRef!: ViewContainerRef;\n private _valueType: 'string' | 'number' = 'string';\n\n @HostListener('dblclick')\n dblclick() {\n this.edit();\n }\n\n ngOnInit(): void {\n if (this.nzxContentType) {\n this._valueType = this.nzxContentType;\n } else {\n if (isString(this.nzxContent)) {\n this._valueType = 'string';\n }\n if (isNumber(this.nzxContent)) {\n this._valueType = 'number';\n }\n }\n\n this.detailContainerRef.clear();\n const view = this.detailContainerRef.createEmbeddedView(\n this.detailTemplateRef\n );\n view.markForCheck();\n }\n\n edit() {\n this.detailContainerRef.clear();\n const view = this.detailContainerRef.createEmbeddedView(\n this.editTemplateRef\n );\n view.markForCheck();\n (view.rootNodes[0] as HTMLTextAreaElement).focus();\n }\n\n blur() {\n this.detailContainerRef.clear();\n const view = this.detailContainerRef.createEmbeddedView(\n this.detailTemplateRef\n );\n view.markForCheck();\n }\n\n valueChange(value: any) {\n let result = value;\n if (this._valueType === 'number') {\n result = toNumber(value);\n } else {\n result = toString(value);\n }\n this.nzxContentChange.emit(result);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NzxEditableComponent } from './editable.component';\n@NgModule({\n imports: [NzxEditableComponent],\n exports: [NzxEditableComponent],\n})\nexport class NzxEditableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, ViewChild, NgModule } from '@angular/core';
2
+ import { EventEmitter, ViewChild, Output, Input, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i2 from 'ng-zorro-antd/icon';
@@ -219,10 +219,10 @@ class NzxJigsawComponent {
219
219
  ctx.globalCompositeOperation = 'destination-over';
220
220
  operation === 'fill' ? ctx.fill() : ctx.clip();
221
221
  }
222
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxJigsawComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
223
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.2", type: NzxJigsawComponent, isStandalone: true, selector: "nzx-jigsaw", inputs: { width: "width", height: "height", nzxLoadingText: "nzxLoadingText", nzxTipText: "nzxTipText", nzxBgImgUrl: "nzxBgImgUrl" }, outputs: { nzxOnRefresh: "nzxOnRefresh", nzxOnSuccess: "nzxOnSuccess", nzxOnFail: "nzxOnFail" }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvasCtx"], descendants: true }, { propertyName: "blockRef", first: true, predicate: ["blockCtx"], descendants: true }, { propertyName: "sliderContainerRef", first: true, predicate: ["sliderContainer"], descendants: true }, { propertyName: "sliderRef", first: true, predicate: ["slider"], descendants: true }, { propertyName: "sliderMaskRef", first: true, predicate: ["sliderMask"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"nzx-jigsaw-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px'\r\n }\"\r\n (selectstart)=\"selectstart()\"\r\n>\r\n <div\r\n class=\"nzx-jigsaw-loading-container\"\r\n [ngStyle]=\"{\r\n display: isLoading ? '' : 'none',\r\n width: width + 'px',\r\n height: height + 'px'\r\n }\"\r\n >\r\n <span class=\"nzx-jigsaw-loading-icon\" nz-icon [nzType]=\"'loading'\"></span>\r\n <span>{{ nzxLoadingText }}</span>\r\n </div>\r\n\r\n <canvas #canvasCtx [width]=\"width\" [height]=\"height\"></canvas>\r\n\r\n <span\r\n class=\"nzx-jigsaw-refresh-icon\"\r\n nz-icon\r\n nzType=\"redo\"\r\n nzTheme=\"outline\"\r\n [nzRotate]=\"-80\"\r\n (click)=\"refresh()\"\r\n ></span>\r\n\r\n <canvas\r\n #blockCtx\r\n class=\"nzx-jigsaw-block\"\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n ></canvas>\r\n\r\n <div\r\n #sliderContainer\r\n class=\"nzx-jigsaw-slider-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px',\r\n 'pointer-events': isLoading ? 'none' : ''\r\n }\"\r\n >\r\n <div #sliderMask class=\"nzx-jigsaw-slider-mask\">\r\n <div\r\n #slider\r\n class=\"nzx-jigsaw-slider\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n >\r\n <span nz-icon nzType=\"arrow-right\" nzTheme=\"outline\"></span>\r\n </div>\r\n </div>\r\n <span class=\"nzx-jigsaw-slider-text\">{{ nzxTipText }}</span>\r\n </div>\r\n</div>\r\n", styles: [".nzx-jigsaw-container{position:relative}.nzx-jigsaw-block{position:absolute;left:0;top:0;cursor:pointer;cursor:grab}.nzx-jigsaw-block:active{cursor:grabbing}.nzx-jigsaw-slider-container{position:relative;text-align:center;line-height:40px;height:40px;background:#f7f9fa;color:#45494c;border:1px solid #e4e7eb}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider{top:-1px;border:1px solid #1991fa}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider-mask{border-width:1px}.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider{top:-1px;border:1px solid #52ccba;background-color:#52ccba!important}.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider-mask{border:1px solid #52ccba;background-color:#d2f4ef}.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider{top:-1px;border:1px solid #f57a7a;background-color:#f57a7a!important}.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider-mask{border:1px solid #f57a7a;background-color:#fce1e1}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider-text,.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider-text,.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider-text{display:none}.nzx-jigsaw-slider-mask{position:absolute;left:0;top:0;height:40px;border:0 solid #1991fa;background:#d1e9fe}.nzx-jigsaw-slider{position:absolute;top:0;left:0;width:40px;height:40px;background:#fff;box-shadow:0 0 3px #0000004d;transition:background .2s linear;cursor:pointer;cursor:grab}.nzx-jigsaw-slider:active{cursor:grabbing}.nzx-jigsaw-slider:hover{background:#1991fa}.nzx-jigsaw-refresh-icon{position:absolute;right:5px;top:5px;font-size:24px;cursor:pointer;color:#fff}.nzx-jigsaw-loading-container{position:absolute;left:0;top:0;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:14px;color:#45494c;z-index:2;background:#edf0f2}.nzx-jigsaw-loading-icon{font-size:32px;margin-bottom:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i2.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
222
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxJigsawComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
223
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.7", type: NzxJigsawComponent, isStandalone: true, selector: "nzx-jigsaw", inputs: { width: "width", height: "height", nzxLoadingText: "nzxLoadingText", nzxTipText: "nzxTipText", nzxBgImgUrl: "nzxBgImgUrl" }, outputs: { nzxOnRefresh: "nzxOnRefresh", nzxOnSuccess: "nzxOnSuccess", nzxOnFail: "nzxOnFail" }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvasCtx"], descendants: true }, { propertyName: "blockRef", first: true, predicate: ["blockCtx"], descendants: true }, { propertyName: "sliderContainerRef", first: true, predicate: ["sliderContainer"], descendants: true }, { propertyName: "sliderRef", first: true, predicate: ["slider"], descendants: true }, { propertyName: "sliderMaskRef", first: true, predicate: ["sliderMask"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"nzx-jigsaw-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px'\r\n }\"\r\n (selectstart)=\"selectstart()\"\r\n>\r\n <div\r\n class=\"nzx-jigsaw-loading-container\"\r\n [ngStyle]=\"{\r\n display: isLoading ? '' : 'none',\r\n width: width + 'px',\r\n height: height + 'px'\r\n }\"\r\n >\r\n <span class=\"nzx-jigsaw-loading-icon\" nz-icon [nzType]=\"'loading'\"></span>\r\n <span>{{ nzxLoadingText }}</span>\r\n </div>\r\n\r\n <canvas #canvasCtx [width]=\"width\" [height]=\"height\"></canvas>\r\n\r\n <span\r\n class=\"nzx-jigsaw-refresh-icon\"\r\n nz-icon\r\n nzType=\"redo\"\r\n nzTheme=\"outline\"\r\n [nzRotate]=\"-80\"\r\n (click)=\"refresh()\"\r\n ></span>\r\n\r\n <canvas\r\n #blockCtx\r\n class=\"nzx-jigsaw-block\"\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n ></canvas>\r\n\r\n <div\r\n #sliderContainer\r\n class=\"nzx-jigsaw-slider-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px',\r\n 'pointer-events': isLoading ? 'none' : ''\r\n }\"\r\n >\r\n <div #sliderMask class=\"nzx-jigsaw-slider-mask\">\r\n <div\r\n #slider\r\n class=\"nzx-jigsaw-slider\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n >\r\n <span nz-icon nzType=\"arrow-right\" nzTheme=\"outline\"></span>\r\n </div>\r\n </div>\r\n <span class=\"nzx-jigsaw-slider-text\">{{ nzxTipText }}</span>\r\n </div>\r\n</div>\r\n", styles: [".nzx-jigsaw-container{position:relative}.nzx-jigsaw-block{position:absolute;left:0;top:0;cursor:pointer;cursor:grab}.nzx-jigsaw-block:active{cursor:grabbing}.nzx-jigsaw-slider-container{position:relative;text-align:center;line-height:40px;height:40px;background:#f7f9fa;color:#45494c;border:1px solid #e4e7eb}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider{top:-1px;border:1px solid #1991fa}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider-mask{border-width:1px}.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider{top:-1px;border:1px solid #52ccba;background-color:#52ccba!important}.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider-mask{border:1px solid #52ccba;background-color:#d2f4ef}.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider{top:-1px;border:1px solid #f57a7a;background-color:#f57a7a!important}.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider-mask{border:1px solid #f57a7a;background-color:#fce1e1}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider-text,.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider-text,.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider-text{display:none}.nzx-jigsaw-slider-mask{position:absolute;left:0;top:0;height:40px;border:0 solid #1991fa;background:#d1e9fe}.nzx-jigsaw-slider{position:absolute;top:0;left:0;width:40px;height:40px;background:#fff;box-shadow:0 0 3px #0000004d;transition:background .2s linear;cursor:pointer;cursor:grab}.nzx-jigsaw-slider:active{cursor:grabbing}.nzx-jigsaw-slider:hover{background:#1991fa}.nzx-jigsaw-refresh-icon{position:absolute;right:5px;top:5px;font-size:24px;cursor:pointer;color:#fff}.nzx-jigsaw-loading-container{position:absolute;left:0;top:0;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:14px;color:#45494c;z-index:2;background:#edf0f2}.nzx-jigsaw-loading-icon{font-size:32px;margin-bottom:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i2.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
224
224
  }
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxJigsawComponent, decorators: [{
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxJigsawComponent, decorators: [{
226
226
  type: Component,
227
227
  args: [{ selector: 'nzx-jigsaw', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, NzIconModule], template: "<div\r\n class=\"nzx-jigsaw-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px'\r\n }\"\r\n (selectstart)=\"selectstart()\"\r\n>\r\n <div\r\n class=\"nzx-jigsaw-loading-container\"\r\n [ngStyle]=\"{\r\n display: isLoading ? '' : 'none',\r\n width: width + 'px',\r\n height: height + 'px'\r\n }\"\r\n >\r\n <span class=\"nzx-jigsaw-loading-icon\" nz-icon [nzType]=\"'loading'\"></span>\r\n <span>{{ nzxLoadingText }}</span>\r\n </div>\r\n\r\n <canvas #canvasCtx [width]=\"width\" [height]=\"height\"></canvas>\r\n\r\n <span\r\n class=\"nzx-jigsaw-refresh-icon\"\r\n nz-icon\r\n nzType=\"redo\"\r\n nzTheme=\"outline\"\r\n [nzRotate]=\"-80\"\r\n (click)=\"refresh()\"\r\n ></span>\r\n\r\n <canvas\r\n #blockCtx\r\n class=\"nzx-jigsaw-block\"\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n ></canvas>\r\n\r\n <div\r\n #sliderContainer\r\n class=\"nzx-jigsaw-slider-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px',\r\n 'pointer-events': isLoading ? 'none' : ''\r\n }\"\r\n >\r\n <div #sliderMask class=\"nzx-jigsaw-slider-mask\">\r\n <div\r\n #slider\r\n class=\"nzx-jigsaw-slider\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n >\r\n <span nz-icon nzType=\"arrow-right\" nzTheme=\"outline\"></span>\r\n </div>\r\n </div>\r\n <span class=\"nzx-jigsaw-slider-text\">{{ nzxTipText }}</span>\r\n </div>\r\n</div>\r\n", styles: [".nzx-jigsaw-container{position:relative}.nzx-jigsaw-block{position:absolute;left:0;top:0;cursor:pointer;cursor:grab}.nzx-jigsaw-block:active{cursor:grabbing}.nzx-jigsaw-slider-container{position:relative;text-align:center;line-height:40px;height:40px;background:#f7f9fa;color:#45494c;border:1px solid #e4e7eb}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider{top:-1px;border:1px solid #1991fa}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider-mask{border-width:1px}.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider{top:-1px;border:1px solid #52ccba;background-color:#52ccba!important}.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider-mask{border:1px solid #52ccba;background-color:#d2f4ef}.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider{top:-1px;border:1px solid #f57a7a;background-color:#f57a7a!important}.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider-mask{border:1px solid #f57a7a;background-color:#fce1e1}.nzx-jigsaw-slider-container-active .nzx-jigsaw-slider-text,.nzx-jigsaw-slider-container-success .nzx-jigsaw-slider-text,.nzx-jigsaw-slider-container-fail .nzx-jigsaw-slider-text{display:none}.nzx-jigsaw-slider-mask{position:absolute;left:0;top:0;height:40px;border:0 solid #1991fa;background:#d1e9fe}.nzx-jigsaw-slider{position:absolute;top:0;left:0;width:40px;height:40px;background:#fff;box-shadow:0 0 3px #0000004d;transition:background .2s linear;cursor:pointer;cursor:grab}.nzx-jigsaw-slider:active{cursor:grabbing}.nzx-jigsaw-slider:hover{background:#1991fa}.nzx-jigsaw-refresh-icon{position:absolute;right:5px;top:5px;font-size:24px;cursor:pointer;color:#fff}.nzx-jigsaw-loading-container{position:absolute;left:0;top:0;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:14px;color:#45494c;z-index:2;background:#edf0f2}.nzx-jigsaw-loading-icon{font-size:32px;margin-bottom:10px}\n"] }]
228
228
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { width: [{
@@ -259,11 +259,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
259
259
  }] } });
260
260
 
261
261
  class NzxJigsawModule {
262
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxJigsawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
263
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.2", ngImport: i0, type: NzxJigsawModule, imports: [NzxJigsawComponent], exports: [NzxJigsawComponent] }); }
264
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxJigsawModule, imports: [NzxJigsawComponent] }); }
262
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxJigsawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
263
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.7", ngImport: i0, type: NzxJigsawModule, imports: [NzxJigsawComponent], exports: [NzxJigsawComponent] }); }
264
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxJigsawModule, imports: [NzxJigsawComponent] }); }
265
265
  }
266
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxJigsawModule, decorators: [{
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxJigsawModule, decorators: [{
267
267
  type: NgModule,
268
268
  args: [{
269
269
  imports: [NzxJigsawComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-zorro-antd-extension-jigsaw.mjs","sources":["../../../components/jigsaw/jigsaw.component.ts","../../../components/jigsaw/jigsaw.component.html","../../../components/jigsaw/jigsaw.module.ts","../../../components/jigsaw/public-api.ts","../../../components/jigsaw/ng-zorro-antd-extension-jigsaw.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\n\r\nconst l = 42; // 滑块边长\r\nconst r = 9; // 滑块半径\r\nconst PI = Math.PI;\r\nconst L = l + r * 2 + 3; // 滑块实际边长\r\n\r\n@Component({\r\n selector: 'nzx-jigsaw',\r\n templateUrl: './jigsaw.component.html',\r\n styleUrls: ['./jigsaw.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CommonModule, NzIconModule],\r\n})\r\nexport class NzxJigsawComponent implements AfterViewInit {\r\n @Input() width = 310;\r\n @Input() height = 155;\r\n @Input() nzxLoadingText = '加载中...';\r\n @Input() nzxTipText = '向右滑动填充拼图';\r\n @Input() nzxBgImgUrl: string | string[] = '';\r\n\r\n @Output() nzxOnRefresh = new EventEmitter<void>();\r\n @Output() nzxOnSuccess = new EventEmitter<void>();\r\n @Output() nzxOnFail = new EventEmitter<void>();\r\n\r\n isLoading = false;\r\n\r\n @ViewChild('canvasCtx')\r\n private canvasRef!: ElementRef<HTMLCanvasElement>;\r\n\r\n @ViewChild('blockCtx')\r\n private blockRef!: ElementRef<HTMLCanvasElement>;\r\n\r\n @ViewChild('sliderContainer')\r\n private sliderContainerRef!: ElementRef<HTMLDivElement>;\r\n\r\n @ViewChild('slider')\r\n private sliderRef!: ElementRef<HTMLDivElement>;\r\n\r\n @ViewChild('sliderMask')\r\n private sliderMaskRef!: ElementRef<HTMLDivElement>;\r\n\r\n private img: any;\r\n private x: number = 0;\r\n private y: number = 0;\r\n\r\n private originX: number = 0;\r\n private originY: number = 0;\r\n private trail: any[] = [];\r\n private isMouseDown = false;\r\n\r\n constructor(private cd: ChangeDetectorRef) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.initImg();\r\n\r\n const handleDragMove = (e: any) => {\r\n if (!this.isMouseDown) {\r\n return false;\r\n }\r\n e.preventDefault();\r\n const eventX = e.clientX || e.touches[0].clientX;\r\n const eventY = e.clientY || e.touches[0].clientY;\r\n const moveX = eventX - this.originX;\r\n const moveY = eventY - this.originY;\r\n if (moveX < 0 || moveX + 38 >= this.width) return false;\r\n this.sliderRef.nativeElement.style.left = moveX + 'px';\r\n const blockLeft = ((this.width - 40 - 20) / (this.width - 40)) * moveX;\r\n this.blockRef.nativeElement.style.left = blockLeft + 'px';\r\n this.sliderContainerRef.nativeElement.classList.add(\r\n 'nzx-jigsaw-slider-container-active'\r\n );\r\n this.sliderMaskRef.nativeElement.style.width = moveX + 'px';\r\n this.trail.push(moveY);\r\n return false;\r\n };\r\n\r\n const handleDragEnd = (e: any) => {\r\n if (!this.isMouseDown) {\r\n return false;\r\n }\r\n this.isMouseDown = false;\r\n const eventX = e.clientX || e.changedTouches[0].clientX;\r\n if (eventX === this.originX) {\r\n return false;\r\n }\r\n this.sliderContainerRef.nativeElement.classList.remove(\r\n 'nzx-jigsaw-slider-container-active'\r\n );\r\n this.trail = this.trail;\r\n const { spliced, verified } = this.verify();\r\n\r\n if (spliced) {\r\n if (verified) {\r\n this.sliderContainerRef.nativeElement.classList.add(\r\n 'nzx-jigsaw-slider-container-success'\r\n );\r\n this.nzxOnSuccess.emit();\r\n } else {\r\n this.sliderContainerRef.nativeElement.classList.add(\r\n 'nzx-jigsaw-slider-container-fail'\r\n );\r\n this.nzxTipText = '请再试一次';\r\n this.reset();\r\n }\r\n } else {\r\n this.sliderContainerRef.nativeElement.classList.add(\r\n 'nzx-jigsaw-slider-container-fail'\r\n );\r\n this.nzxOnFail.emit();\r\n setTimeout(() => this.reset(), 1000);\r\n }\r\n return false;\r\n };\r\n\r\n document.addEventListener('mousemove', handleDragMove);\r\n document.addEventListener('touchmove', handleDragMove);\r\n document.addEventListener('mouseup', handleDragEnd);\r\n document.addEventListener('touchend', handleDragEnd);\r\n }\r\n\r\n selectstart() {\r\n return false;\r\n }\r\n\r\n refresh() {\r\n this.reset();\r\n this.nzxOnRefresh.emit();\r\n }\r\n\r\n handleDragStart(e: any) {\r\n this.originX = e.clientX || e.touches[0].clientX;\r\n this.originY = e.clientY || e.touches[0].clientY;\r\n this.isMouseDown = true;\r\n }\r\n\r\n private verify() {\r\n const arr = this.trail; // 拖动时y轴的移动距离\r\n const average = arr.reduce((x: number, y: number) => x + y) / arr.length;\r\n const deviations = arr.map((x) => x - average);\r\n const stddev = Math.sqrt(\r\n deviations\r\n .map((x: number) => x * x)\r\n .reduce((x: number, y: number) => x + y) / arr.length\r\n );\r\n const left = parseInt(this.blockRef.nativeElement.style.left);\r\n return {\r\n spliced: Math.abs(left - this.x) < 10,\r\n verified: stddev !== 0, // 简单验证拖动轨迹,为零时表示Y轴上下没有波动,可能非人为操作\r\n };\r\n }\r\n\r\n private reset() {\r\n const { width, height } = this;\r\n // 重置样式\r\n this.sliderContainerRef.nativeElement.className =\r\n 'nzx-jigsaw-slider-container';\r\n this.sliderRef.nativeElement.style.left = 0 + 'px';\r\n this.blockRef.nativeElement.width = width;\r\n this.blockRef.nativeElement.style.left = 0 + 'px';\r\n this.sliderMaskRef.nativeElement.style.width = 0 + 'px';\r\n\r\n // 清空画布\r\n this.canvasRef.nativeElement\r\n .getContext('2d')!\r\n .clearRect(0, 0, width, height);\r\n this.blockRef.nativeElement\r\n .getContext('2d')!\r\n .clearRect(0, 0, width, height);\r\n\r\n // 重新加载图片\r\n this.isLoading = true;\r\n this.cd.markForCheck();\r\n this.setImageSrc(this.getRandomImgSrc(), this.img);\r\n }\r\n\r\n private initImg() {\r\n const img: HTMLImageElement = new Image();\r\n img.style.objectFit = 'cover';\r\n img.crossOrigin = 'Anonymous';\r\n img.onload = () => {\r\n this.isLoading = false;\r\n this.draw(img);\r\n };\r\n img.onerror = () => {\r\n // 图片加载失败的时候重新加载其他图片\r\n this.setImageSrc(this.getRandomImgSrc(), img);\r\n };\r\n this.setImageSrc(this.getRandomImgSrc(), img);\r\n this.img = img;\r\n }\r\n\r\n private draw(img: HTMLImageElement) {\r\n const { width, height } = this;\r\n // 随机位置创建拼图形状\r\n this.x = this.getRandomNumberByRange(L + 10, width - (L + 10));\r\n this.y = this.getRandomNumberByRange(10 + r * 2, height - (L + 10));\r\n this.drawPath(\r\n this.canvasRef.nativeElement.getContext('2d')!,\r\n this.x,\r\n this.y,\r\n 'fill'\r\n );\r\n this.drawPath(\r\n this.blockRef.nativeElement.getContext('2d')!,\r\n this.x,\r\n this.y,\r\n 'clip'\r\n );\r\n\r\n // 画入图片\r\n this.canvasRef.nativeElement\r\n .getContext('2d')!\r\n .drawImage(img, 0, 0, width, height);\r\n this.blockRef.nativeElement\r\n .getContext('2d')!\r\n .drawImage(img, 0, 0, width, height);\r\n\r\n // 提取滑块并放到最左边\r\n const y = this.y - r * 2 - 1;\r\n const ImageData = this.blockRef.nativeElement\r\n .getContext('2d')!\r\n .getImageData(this.x - 3, y, L, L);\r\n this.blockRef.nativeElement!.width = L;\r\n this.blockRef.nativeElement.getContext('2d')!.putImageData(ImageData, 0, y);\r\n this.cd.markForCheck();\r\n }\r\n\r\n private setImageSrc(src: string, img: HTMLImageElement) {\r\n const isIE = window.navigator.userAgent.indexOf('Trident') > -1;\r\n if (isIE) {\r\n // IE浏览器无法通过img.crossOrigin跨域,使用ajax获取图片blob然后转为dataURL显示\r\n const xhr = new XMLHttpRequest();\r\n xhr.onloadend = (e: any) => {\r\n const file = new FileReader(); // FileReader仅支持IE10+\r\n file.readAsDataURL(e.target.response);\r\n file.onloadend = (e) => {\r\n img.src = e.target?.result as string;\r\n };\r\n };\r\n xhr.open('GET', src);\r\n xhr.responseType = 'blob';\r\n xhr.send();\r\n } else {\r\n img.src = src;\r\n }\r\n }\r\n\r\n private getRandomImgSrc() {\r\n if (this.nzxBgImgUrl && typeof this.nzxBgImgUrl == 'string') {\r\n return this.nzxBgImgUrl;\r\n }\r\n\r\n if (\r\n this.nzxBgImgUrl &&\r\n Array.isArray(this.nzxBgImgUrl) &&\r\n this.nzxBgImgUrl.length\r\n ) {\r\n return this.nzxBgImgUrl[\r\n this.getRandomNumberByRange(0, this.nzxBgImgUrl.length - 1)\r\n ];\r\n }\r\n return `https://picsum.photos/id/${this.getRandomNumberByRange(0, 1084)}/${\r\n this.width\r\n }/${this.height}`;\r\n }\r\n\r\n private getRandomNumberByRange(start: number, end: number) {\r\n return Math.round(Math.random() * (end - start) + start);\r\n }\r\n\r\n private drawPath(\r\n ctx: CanvasRenderingContext2D,\r\n x: number,\r\n y: number,\r\n operation: any\r\n ) {\r\n ctx.beginPath();\r\n ctx.moveTo(x, y);\r\n ctx.arc(x + l / 2, y - r + 2, r, 0.72 * PI, 2.26 * PI);\r\n ctx.lineTo(x + l, y);\r\n ctx.arc(x + l + r - 2, y + l / 2, r, 1.21 * PI, 2.78 * PI);\r\n ctx.lineTo(x + l, y + l);\r\n ctx.lineTo(x, y + l);\r\n ctx.arc(x + r - 2, y + l / 2, r + 0.4, 2.76 * PI, 1.24 * PI, true);\r\n ctx.lineTo(x, y);\r\n ctx.lineWidth = 2;\r\n ctx.fillStyle = 'rgba(255, 255, 255, 0.7)';\r\n ctx.strokeStyle = 'rgba(255, 255, 255, 0.7)';\r\n ctx.stroke();\r\n ctx.globalCompositeOperation = 'destination-over';\r\n operation === 'fill' ? ctx.fill() : ctx.clip();\r\n }\r\n}\r\n","<div\r\n class=\"nzx-jigsaw-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px'\r\n }\"\r\n (selectstart)=\"selectstart()\"\r\n>\r\n <div\r\n class=\"nzx-jigsaw-loading-container\"\r\n [ngStyle]=\"{\r\n display: isLoading ? '' : 'none',\r\n width: width + 'px',\r\n height: height + 'px'\r\n }\"\r\n >\r\n <span class=\"nzx-jigsaw-loading-icon\" nz-icon [nzType]=\"'loading'\"></span>\r\n <span>{{ nzxLoadingText }}</span>\r\n </div>\r\n\r\n <canvas #canvasCtx [width]=\"width\" [height]=\"height\"></canvas>\r\n\r\n <span\r\n class=\"nzx-jigsaw-refresh-icon\"\r\n nz-icon\r\n nzType=\"redo\"\r\n nzTheme=\"outline\"\r\n [nzRotate]=\"-80\"\r\n (click)=\"refresh()\"\r\n ></span>\r\n\r\n <canvas\r\n #blockCtx\r\n class=\"nzx-jigsaw-block\"\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n ></canvas>\r\n\r\n <div\r\n #sliderContainer\r\n class=\"nzx-jigsaw-slider-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px',\r\n 'pointer-events': isLoading ? 'none' : ''\r\n }\"\r\n >\r\n <div #sliderMask class=\"nzx-jigsaw-slider-mask\">\r\n <div\r\n #slider\r\n class=\"nzx-jigsaw-slider\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n >\r\n <span nz-icon nzType=\"arrow-right\" nzTheme=\"outline\"></span>\r\n </div>\r\n </div>\r\n <span class=\"nzx-jigsaw-slider-text\">{{ nzxTipText }}</span>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { NzxJigsawComponent } from './jigsaw.component';\r\n\r\n@NgModule({\r\n imports: [NzxJigsawComponent],\r\n exports: [NzxJigsawComponent],\r\n})\r\nexport class NzxJigsawModule {}\r\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './jigsaw.module';\nexport * from './jigsaw.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-zorro-antd-extension-jigsaw.mjs","sources":["../../../components/jigsaw/jigsaw.component.ts","../../../components/jigsaw/jigsaw.component.html","../../../components/jigsaw/jigsaw.module.ts","../../../components/jigsaw/public-api.ts","../../../components/jigsaw/ng-zorro-antd-extension-jigsaw.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\n\r\nconst l = 42; // 滑块边长\r\nconst r = 9; // 滑块半径\r\nconst PI = Math.PI;\r\nconst L = l + r * 2 + 3; // 滑块实际边长\r\n\r\n@Component({\r\n selector: 'nzx-jigsaw',\r\n templateUrl: './jigsaw.component.html',\r\n styleUrls: ['./jigsaw.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CommonModule, NzIconModule],\r\n})\r\nexport class NzxJigsawComponent implements AfterViewInit {\r\n @Input() width = 310;\r\n @Input() height = 155;\r\n @Input() nzxLoadingText = '加载中...';\r\n @Input() nzxTipText = '向右滑动填充拼图';\r\n @Input() nzxBgImgUrl: string | string[] = '';\r\n\r\n @Output() nzxOnRefresh = new EventEmitter<void>();\r\n @Output() nzxOnSuccess = new EventEmitter<void>();\r\n @Output() nzxOnFail = new EventEmitter<void>();\r\n\r\n isLoading = false;\r\n\r\n @ViewChild('canvasCtx')\r\n private canvasRef!: ElementRef<HTMLCanvasElement>;\r\n\r\n @ViewChild('blockCtx')\r\n private blockRef!: ElementRef<HTMLCanvasElement>;\r\n\r\n @ViewChild('sliderContainer')\r\n private sliderContainerRef!: ElementRef<HTMLDivElement>;\r\n\r\n @ViewChild('slider')\r\n private sliderRef!: ElementRef<HTMLDivElement>;\r\n\r\n @ViewChild('sliderMask')\r\n private sliderMaskRef!: ElementRef<HTMLDivElement>;\r\n\r\n private img: any;\r\n private x: number = 0;\r\n private y: number = 0;\r\n\r\n private originX: number = 0;\r\n private originY: number = 0;\r\n private trail: any[] = [];\r\n private isMouseDown = false;\r\n\r\n constructor(private cd: ChangeDetectorRef) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.initImg();\r\n\r\n const handleDragMove = (e: any) => {\r\n if (!this.isMouseDown) {\r\n return false;\r\n }\r\n e.preventDefault();\r\n const eventX = e.clientX || e.touches[0].clientX;\r\n const eventY = e.clientY || e.touches[0].clientY;\r\n const moveX = eventX - this.originX;\r\n const moveY = eventY - this.originY;\r\n if (moveX < 0 || moveX + 38 >= this.width) return false;\r\n this.sliderRef.nativeElement.style.left = moveX + 'px';\r\n const blockLeft = ((this.width - 40 - 20) / (this.width - 40)) * moveX;\r\n this.blockRef.nativeElement.style.left = blockLeft + 'px';\r\n this.sliderContainerRef.nativeElement.classList.add(\r\n 'nzx-jigsaw-slider-container-active'\r\n );\r\n this.sliderMaskRef.nativeElement.style.width = moveX + 'px';\r\n this.trail.push(moveY);\r\n return false;\r\n };\r\n\r\n const handleDragEnd = (e: any) => {\r\n if (!this.isMouseDown) {\r\n return false;\r\n }\r\n this.isMouseDown = false;\r\n const eventX = e.clientX || e.changedTouches[0].clientX;\r\n if (eventX === this.originX) {\r\n return false;\r\n }\r\n this.sliderContainerRef.nativeElement.classList.remove(\r\n 'nzx-jigsaw-slider-container-active'\r\n );\r\n this.trail = this.trail;\r\n const { spliced, verified } = this.verify();\r\n\r\n if (spliced) {\r\n if (verified) {\r\n this.sliderContainerRef.nativeElement.classList.add(\r\n 'nzx-jigsaw-slider-container-success'\r\n );\r\n this.nzxOnSuccess.emit();\r\n } else {\r\n this.sliderContainerRef.nativeElement.classList.add(\r\n 'nzx-jigsaw-slider-container-fail'\r\n );\r\n this.nzxTipText = '请再试一次';\r\n this.reset();\r\n }\r\n } else {\r\n this.sliderContainerRef.nativeElement.classList.add(\r\n 'nzx-jigsaw-slider-container-fail'\r\n );\r\n this.nzxOnFail.emit();\r\n setTimeout(() => this.reset(), 1000);\r\n }\r\n return false;\r\n };\r\n\r\n document.addEventListener('mousemove', handleDragMove);\r\n document.addEventListener('touchmove', handleDragMove);\r\n document.addEventListener('mouseup', handleDragEnd);\r\n document.addEventListener('touchend', handleDragEnd);\r\n }\r\n\r\n selectstart() {\r\n return false;\r\n }\r\n\r\n refresh() {\r\n this.reset();\r\n this.nzxOnRefresh.emit();\r\n }\r\n\r\n handleDragStart(e: any) {\r\n this.originX = e.clientX || e.touches[0].clientX;\r\n this.originY = e.clientY || e.touches[0].clientY;\r\n this.isMouseDown = true;\r\n }\r\n\r\n private verify() {\r\n const arr = this.trail; // 拖动时y轴的移动距离\r\n const average = arr.reduce((x: number, y: number) => x + y) / arr.length;\r\n const deviations = arr.map((x) => x - average);\r\n const stddev = Math.sqrt(\r\n deviations\r\n .map((x: number) => x * x)\r\n .reduce((x: number, y: number) => x + y) / arr.length\r\n );\r\n const left = parseInt(this.blockRef.nativeElement.style.left);\r\n return {\r\n spliced: Math.abs(left - this.x) < 10,\r\n verified: stddev !== 0, // 简单验证拖动轨迹,为零时表示Y轴上下没有波动,可能非人为操作\r\n };\r\n }\r\n\r\n private reset() {\r\n const { width, height } = this;\r\n // 重置样式\r\n this.sliderContainerRef.nativeElement.className =\r\n 'nzx-jigsaw-slider-container';\r\n this.sliderRef.nativeElement.style.left = 0 + 'px';\r\n this.blockRef.nativeElement.width = width;\r\n this.blockRef.nativeElement.style.left = 0 + 'px';\r\n this.sliderMaskRef.nativeElement.style.width = 0 + 'px';\r\n\r\n // 清空画布\r\n this.canvasRef.nativeElement\r\n .getContext('2d')!\r\n .clearRect(0, 0, width, height);\r\n this.blockRef.nativeElement\r\n .getContext('2d')!\r\n .clearRect(0, 0, width, height);\r\n\r\n // 重新加载图片\r\n this.isLoading = true;\r\n this.cd.markForCheck();\r\n this.setImageSrc(this.getRandomImgSrc(), this.img);\r\n }\r\n\r\n private initImg() {\r\n const img: HTMLImageElement = new Image();\r\n img.style.objectFit = 'cover';\r\n img.crossOrigin = 'Anonymous';\r\n img.onload = () => {\r\n this.isLoading = false;\r\n this.draw(img);\r\n };\r\n img.onerror = () => {\r\n // 图片加载失败的时候重新加载其他图片\r\n this.setImageSrc(this.getRandomImgSrc(), img);\r\n };\r\n this.setImageSrc(this.getRandomImgSrc(), img);\r\n this.img = img;\r\n }\r\n\r\n private draw(img: HTMLImageElement) {\r\n const { width, height } = this;\r\n // 随机位置创建拼图形状\r\n this.x = this.getRandomNumberByRange(L + 10, width - (L + 10));\r\n this.y = this.getRandomNumberByRange(10 + r * 2, height - (L + 10));\r\n this.drawPath(\r\n this.canvasRef.nativeElement.getContext('2d')!,\r\n this.x,\r\n this.y,\r\n 'fill'\r\n );\r\n this.drawPath(\r\n this.blockRef.nativeElement.getContext('2d')!,\r\n this.x,\r\n this.y,\r\n 'clip'\r\n );\r\n\r\n // 画入图片\r\n this.canvasRef.nativeElement\r\n .getContext('2d')!\r\n .drawImage(img, 0, 0, width, height);\r\n this.blockRef.nativeElement\r\n .getContext('2d')!\r\n .drawImage(img, 0, 0, width, height);\r\n\r\n // 提取滑块并放到最左边\r\n const y = this.y - r * 2 - 1;\r\n const ImageData = this.blockRef.nativeElement\r\n .getContext('2d')!\r\n .getImageData(this.x - 3, y, L, L);\r\n this.blockRef.nativeElement!.width = L;\r\n this.blockRef.nativeElement.getContext('2d')!.putImageData(ImageData, 0, y);\r\n this.cd.markForCheck();\r\n }\r\n\r\n private setImageSrc(src: string, img: HTMLImageElement) {\r\n const isIE = window.navigator.userAgent.indexOf('Trident') > -1;\r\n if (isIE) {\r\n // IE浏览器无法通过img.crossOrigin跨域,使用ajax获取图片blob然后转为dataURL显示\r\n const xhr = new XMLHttpRequest();\r\n xhr.onloadend = (e: any) => {\r\n const file = new FileReader(); // FileReader仅支持IE10+\r\n file.readAsDataURL(e.target.response);\r\n file.onloadend = (e) => {\r\n img.src = e.target?.result as string;\r\n };\r\n };\r\n xhr.open('GET', src);\r\n xhr.responseType = 'blob';\r\n xhr.send();\r\n } else {\r\n img.src = src;\r\n }\r\n }\r\n\r\n private getRandomImgSrc() {\r\n if (this.nzxBgImgUrl && typeof this.nzxBgImgUrl == 'string') {\r\n return this.nzxBgImgUrl;\r\n }\r\n\r\n if (\r\n this.nzxBgImgUrl &&\r\n Array.isArray(this.nzxBgImgUrl) &&\r\n this.nzxBgImgUrl.length\r\n ) {\r\n return this.nzxBgImgUrl[\r\n this.getRandomNumberByRange(0, this.nzxBgImgUrl.length - 1)\r\n ];\r\n }\r\n return `https://picsum.photos/id/${this.getRandomNumberByRange(0, 1084)}/${\r\n this.width\r\n }/${this.height}`;\r\n }\r\n\r\n private getRandomNumberByRange(start: number, end: number) {\r\n return Math.round(Math.random() * (end - start) + start);\r\n }\r\n\r\n private drawPath(\r\n ctx: CanvasRenderingContext2D,\r\n x: number,\r\n y: number,\r\n operation: any\r\n ) {\r\n ctx.beginPath();\r\n ctx.moveTo(x, y);\r\n ctx.arc(x + l / 2, y - r + 2, r, 0.72 * PI, 2.26 * PI);\r\n ctx.lineTo(x + l, y);\r\n ctx.arc(x + l + r - 2, y + l / 2, r, 1.21 * PI, 2.78 * PI);\r\n ctx.lineTo(x + l, y + l);\r\n ctx.lineTo(x, y + l);\r\n ctx.arc(x + r - 2, y + l / 2, r + 0.4, 2.76 * PI, 1.24 * PI, true);\r\n ctx.lineTo(x, y);\r\n ctx.lineWidth = 2;\r\n ctx.fillStyle = 'rgba(255, 255, 255, 0.7)';\r\n ctx.strokeStyle = 'rgba(255, 255, 255, 0.7)';\r\n ctx.stroke();\r\n ctx.globalCompositeOperation = 'destination-over';\r\n operation === 'fill' ? ctx.fill() : ctx.clip();\r\n }\r\n}\r\n","<div\r\n class=\"nzx-jigsaw-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px'\r\n }\"\r\n (selectstart)=\"selectstart()\"\r\n>\r\n <div\r\n class=\"nzx-jigsaw-loading-container\"\r\n [ngStyle]=\"{\r\n display: isLoading ? '' : 'none',\r\n width: width + 'px',\r\n height: height + 'px'\r\n }\"\r\n >\r\n <span class=\"nzx-jigsaw-loading-icon\" nz-icon [nzType]=\"'loading'\"></span>\r\n <span>{{ nzxLoadingText }}</span>\r\n </div>\r\n\r\n <canvas #canvasCtx [width]=\"width\" [height]=\"height\"></canvas>\r\n\r\n <span\r\n class=\"nzx-jigsaw-refresh-icon\"\r\n nz-icon\r\n nzType=\"redo\"\r\n nzTheme=\"outline\"\r\n [nzRotate]=\"-80\"\r\n (click)=\"refresh()\"\r\n ></span>\r\n\r\n <canvas\r\n #blockCtx\r\n class=\"nzx-jigsaw-block\"\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n ></canvas>\r\n\r\n <div\r\n #sliderContainer\r\n class=\"nzx-jigsaw-slider-container\"\r\n [ngStyle]=\"{\r\n width: width + 'px',\r\n 'pointer-events': isLoading ? 'none' : ''\r\n }\"\r\n >\r\n <div #sliderMask class=\"nzx-jigsaw-slider-mask\">\r\n <div\r\n #slider\r\n class=\"nzx-jigsaw-slider\"\r\n (touchstart)=\"handleDragStart($event)\"\r\n (mousedown)=\"handleDragStart($event)\"\r\n >\r\n <span nz-icon nzType=\"arrow-right\" nzTheme=\"outline\"></span>\r\n </div>\r\n </div>\r\n <span class=\"nzx-jigsaw-slider-text\">{{ nzxTipText }}</span>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { NzxJigsawComponent } from './jigsaw.component';\r\n\r\n@NgModule({\r\n imports: [NzxJigsawComponent],\r\n exports: [NzxJigsawComponent],\r\n})\r\nexport class NzxJigsawModule {}\r\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './jigsaw.module';\nexport * from './jigsaw.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -16,10 +16,10 @@ class NzxMapPipe {
16
16
  }
17
17
  return value;
18
18
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxMapPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
20
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.2", ngImport: i0, type: NzxMapPipe, isStandalone: true, name: "nzxMap" }); }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxMapPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
20
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.7", ngImport: i0, type: NzxMapPipe, isStandalone: true, name: "nzxMap" }); }
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxMapPipe, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxMapPipe, decorators: [{
23
23
  type: Pipe,
24
24
  args: [{
25
25
  name: 'nzxMap',
@@ -39,13 +39,13 @@ class NzxSafeNullPipe {
39
39
  }
40
40
  return value;
41
41
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeNullPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
43
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeNullPipe, isStandalone: true, name: "nzxSafeNull" }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeNullPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
43
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeNullPipe, isStandalone: true, name: "nzxSafeNull" }); }
44
44
  }
45
45
  __decorate([
46
46
  ExtensionWithConfig()
47
47
  ], NzxSafeNullPipe.prototype, "placeholder", void 0);
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeNullPipe, decorators: [{
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeNullPipe, decorators: [{
49
49
  type: Pipe,
50
50
  args: [{
51
51
  name: 'nzxSafeNull',
@@ -68,13 +68,13 @@ class NzxSafeUrlPipe {
68
68
  }
69
69
  return value;
70
70
  }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
72
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeUrlPipe, isStandalone: true, name: "nzxSafeUrl" }); }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
72
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeUrlPipe, isStandalone: true, name: "nzxSafeUrl" }); }
73
73
  }
74
74
  __decorate([
75
75
  ExtensionWithConfig()
76
76
  ], NzxSafeUrlPipe.prototype, "protocol", void 0);
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeUrlPipe, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeUrlPipe, decorators: [{
78
78
  type: Pipe,
79
79
  args: [{
80
80
  name: 'nzxSafeUrl',
@@ -88,10 +88,10 @@ class NzxSafeHtmlPipe {
88
88
  transform(value) {
89
89
  return this.domSanitizer.bypassSecurityTrustHtml(value);
90
90
  }
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
92
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeHtmlPipe, isStandalone: true, name: "nzxSafeHtml" }); }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
92
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeHtmlPipe, isStandalone: true, name: "nzxSafeHtml" }); }
93
93
  }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeHtmlPipe, decorators: [{
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeHtmlPipe, decorators: [{
95
95
  type: Pipe,
96
96
  args: [{
97
97
  name: 'nzxSafeHtml',
@@ -105,10 +105,10 @@ class NzxSafeResourceUrlPipe {
105
105
  transform(value) {
106
106
  return this.domSanitizer.bypassSecurityTrustResourceUrl(value);
107
107
  }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeResourceUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
109
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeResourceUrlPipe, isStandalone: true, name: "nzxSafeResourceUrl" }); }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeResourceUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
109
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeResourceUrlPipe, isStandalone: true, name: "nzxSafeResourceUrl" }); }
110
110
  }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeResourceUrlPipe, decorators: [{
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeResourceUrlPipe, decorators: [{
112
112
  type: Pipe,
113
113
  args: [{
114
114
  name: 'nzxSafeResourceUrl',
@@ -122,10 +122,10 @@ class NzxSafeScriptPipe {
122
122
  transform(value) {
123
123
  return this.domSanitizer.bypassSecurityTrustScript(value);
124
124
  }
125
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeScriptPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
126
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeScriptPipe, isStandalone: true, name: "nzxSafeScript" }); }
125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeScriptPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
126
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeScriptPipe, isStandalone: true, name: "nzxSafeScript" }); }
127
127
  }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeScriptPipe, decorators: [{
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeScriptPipe, decorators: [{
129
129
  type: Pipe,
130
130
  args: [{
131
131
  name: 'nzxSafeScript',
@@ -139,10 +139,10 @@ class NzxSafeStylePipe {
139
139
  transform(value) {
140
140
  return this.domSanitizer.bypassSecurityTrustStyle(value);
141
141
  }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeStylePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
143
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeStylePipe, isStandalone: true, name: "nzxSafeStyle" }); }
142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeStylePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
143
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeStylePipe, isStandalone: true, name: "nzxSafeStyle" }); }
144
144
  }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxSafeStylePipe, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxSafeStylePipe, decorators: [{
146
146
  type: Pipe,
147
147
  args: [{
148
148
  name: 'nzxSafeStyle',
@@ -150,8 +150,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
150
150
  }] });
151
151
 
152
152
  class NzxPipesModule {
153
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
154
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.2", ngImport: i0, type: NzxPipesModule, imports: [NzxMapPipe,
153
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
154
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.7", ngImport: i0, type: NzxPipesModule, imports: [NzxMapPipe,
155
155
  NzxSafeNullPipe,
156
156
  NzxSafeUrlPipe,
157
157
  NzxSafeStylePipe,
@@ -164,9 +164,9 @@ class NzxPipesModule {
164
164
  NzxSafeHtmlPipe,
165
165
  NzxSafeResourceUrlPipe,
166
166
  NzxSafeScriptPipe] }); }
167
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPipesModule }); }
167
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPipesModule }); }
168
168
  }
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPipesModule, decorators: [{
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPipesModule, decorators: [{
170
170
  type: NgModule,
171
171
  args: [{
172
172
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"ng-zorro-antd-extension-pipes.mjs","sources":["../../../components/pipes/map.pipe.ts","../../../components/pipes/safe-null.pipe.ts","../../../components/pipes/safe-url.pipe.ts","../../../components/pipes/safe-html.pipe.ts","../../../components/pipes/safe-resource-url.pipe.ts","../../../components/pipes/safe-script.pipe.ts","../../../components/pipes/safe-style.pipe.ts","../../../components/pipes/pipes.module.ts","../../../components/pipes/public-api.ts","../../../components/pipes/ng-zorro-antd-extension-pipes.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'nzxMap',\n})\nexport class NzxMapPipe implements PipeTransform {\n transform(\n value: string | number | any[],\n data?: { [key: string | number]: any } | null,\n separator = ','\n ): any {\n if (value !== null && value !== void 0) {\n if (Array.isArray(value)) {\n return value.join(separator);\n }\n if (data) {\n return data[value];\n }\n }\n return value;\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport {\n ExtensionWithConfig,\n NzxConfigKey,\n NzxConfigService,\n} from 'ng-zorro-antd-extension/core/config';\n\nconst NZ_CONFIG_MODULE_NAME: NzxConfigKey = 'nzxSafeNull';\n\n@Pipe({\n name: 'nzxSafeNull',\n})\nexport class NzxSafeNullPipe implements PipeTransform {\n readonly _nzModuleName: NzxConfigKey = NZ_CONFIG_MODULE_NAME;\n @ExtensionWithConfig() placeholder: string = '--';\n\n private nzxConfigService: NzxConfigService = inject(NzxConfigService);\n\n transform(value: any, placeholder = this.placeholder): string {\n if (value === null || value === void 0 || value === '') {\n return placeholder;\n }\n return value;\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport {\n ExtensionWithConfig,\n NzxConfigKey,\n NzxConfigService,\n} from 'ng-zorro-antd-extension/core/config';\n\nconst NZ_CONFIG_MODULE_NAME: NzxConfigKey = 'nzxSafeUrl';\n\n@Pipe({\n name: 'nzxSafeUrl',\n})\nexport class NzxSafeUrlPipe implements PipeTransform {\n readonly _nzModuleName: NzxConfigKey = NZ_CONFIG_MODULE_NAME;\n @ExtensionWithConfig() protocol: 'http' | 'https' | undefined;\n\n private nzxConfigService: NzxConfigService = inject(NzxConfigService);\n private domSanitizer: DomSanitizer = inject(DomSanitizer);\n\n transform(value: string, protocol = this.protocol): SafeUrl {\n if (/^(http|https|ftp):\\/\\/[^\\s/$.?#].[^\\s]*$/.test(value)) {\n if (protocol) {\n value = value.replace(/^(http|https)/, protocol);\n }\n return this.domSanitizer.bypassSecurityTrustUrl(value);\n }\n\n return value;\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'nzxSafeHtml',\n})\nexport class NzxSafeHtmlPipe implements PipeTransform {\n private domSanitizer: DomSanitizer = inject(DomSanitizer);\n\n transform(value: string): SafeHtml {\n return this.domSanitizer.bypassSecurityTrustHtml(value);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'nzxSafeResourceUrl',\n})\nexport class NzxSafeResourceUrlPipe implements PipeTransform {\n private domSanitizer: DomSanitizer = inject(DomSanitizer);\n\n transform(value: string) {\n return this.domSanitizer.bypassSecurityTrustResourceUrl(value);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'nzxSafeScript',\n})\nexport class NzxSafeScriptPipe implements PipeTransform {\n private domSanitizer: DomSanitizer = inject(DomSanitizer);\n\n transform(value: string) {\n return this.domSanitizer.bypassSecurityTrustScript(value);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'nzxSafeStyle',\n})\nexport class NzxSafeStylePipe implements PipeTransform {\n private domSanitizer: DomSanitizer = inject(DomSanitizer);\n\n transform(value: string) {\n return this.domSanitizer.bypassSecurityTrustStyle(value);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { NzxMapPipe } from './map.pipe';\nimport { NzxSafeNullPipe } from './safe-null.pipe';\nimport { NzxSafeUrlPipe } from './safe-url.pipe';\nimport { NzxSafeStylePipe } from './safe-style.pipe';\nimport { NzxSafeHtmlPipe } from './safe-html.pipe';\nimport { NzxSafeResourceUrlPipe } from './safe-resource-url.pipe';\nimport { NzxSafeScriptPipe } from './safe-script.pipe';\n\n@NgModule({\n imports: [\n NzxMapPipe,\n NzxSafeNullPipe,\n NzxSafeUrlPipe,\n NzxSafeStylePipe,\n NzxSafeHtmlPipe,\n NzxSafeResourceUrlPipe,\n NzxSafeScriptPipe,\n ],\n exports: [\n NzxMapPipe,\n NzxSafeNullPipe,\n NzxSafeUrlPipe,\n NzxSafeStylePipe,\n NzxSafeHtmlPipe,\n NzxSafeResourceUrlPipe,\n NzxSafeScriptPipe,\n ],\n})\nexport class NzxPipesModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './map.pipe';\nexport * from './safe-null.pipe';\nexport * from './safe-url.pipe';\nexport * from './safe-html.pipe';\nexport * from './safe-resource-url.pipe';\nexport * from './safe-script.pipe';\nexport * from './safe-style.pipe';\nexport * from './pipes.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["NZ_CONFIG_MODULE_NAME"],"mappings":"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"}
1
+ {"version":3,"file":"ng-zorro-antd-extension-pipes.mjs","sources":["../../../components/pipes/map.pipe.ts","../../../components/pipes/safe-null.pipe.ts","../../../components/pipes/safe-url.pipe.ts","../../../components/pipes/safe-html.pipe.ts","../../../components/pipes/safe-resource-url.pipe.ts","../../../components/pipes/safe-script.pipe.ts","../../../components/pipes/safe-style.pipe.ts","../../../components/pipes/pipes.module.ts","../../../components/pipes/public-api.ts","../../../components/pipes/ng-zorro-antd-extension-pipes.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'nzxMap',\n})\nexport class NzxMapPipe implements PipeTransform {\n transform(\n value: string | number | any[],\n data?: { [key: string | number]: any } | null,\n separator = ','\n ): any {\n if (value !== null && value !== void 0) {\n if (Array.isArray(value)) {\n return value.join(separator);\n }\n if (data) {\n return data[value];\n }\n }\n return value;\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport {\n ExtensionWithConfig,\n NzxConfigKey,\n NzxConfigService,\n} from 'ng-zorro-antd-extension/core/config';\n\nconst NZ_CONFIG_MODULE_NAME: NzxConfigKey = 'nzxSafeNull';\n\n@Pipe({\n name: 'nzxSafeNull',\n})\nexport class NzxSafeNullPipe implements PipeTransform {\n readonly _nzModuleName: NzxConfigKey = NZ_CONFIG_MODULE_NAME;\n @ExtensionWithConfig() placeholder: string = '--';\n\n private nzxConfigService: NzxConfigService = inject(NzxConfigService);\n\n transform(value: any, placeholder = this.placeholder): string {\n if (value === null || value === void 0 || value === '') {\n return placeholder;\n }\n return value;\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport {\n ExtensionWithConfig,\n NzxConfigKey,\n NzxConfigService,\n} from 'ng-zorro-antd-extension/core/config';\n\nconst NZ_CONFIG_MODULE_NAME: NzxConfigKey = 'nzxSafeUrl';\n\n@Pipe({\n name: 'nzxSafeUrl',\n})\nexport class NzxSafeUrlPipe implements PipeTransform {\n readonly _nzModuleName: NzxConfigKey = NZ_CONFIG_MODULE_NAME;\n @ExtensionWithConfig() protocol: 'http' | 'https' | undefined;\n\n private nzxConfigService: NzxConfigService = inject(NzxConfigService);\n private domSanitizer: DomSanitizer = inject(DomSanitizer);\n\n transform(value: string, protocol = this.protocol): SafeUrl {\n if (/^(http|https|ftp):\\/\\/[^\\s/$.?#].[^\\s]*$/.test(value)) {\n if (protocol) {\n value = value.replace(/^(http|https)/, protocol);\n }\n return this.domSanitizer.bypassSecurityTrustUrl(value);\n }\n\n return value;\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'nzxSafeHtml',\n})\nexport class NzxSafeHtmlPipe implements PipeTransform {\n private domSanitizer: DomSanitizer = inject(DomSanitizer);\n\n transform(value: string): SafeHtml {\n return this.domSanitizer.bypassSecurityTrustHtml(value);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'nzxSafeResourceUrl',\n})\nexport class NzxSafeResourceUrlPipe implements PipeTransform {\n private domSanitizer: DomSanitizer = inject(DomSanitizer);\n\n transform(value: string) {\n return this.domSanitizer.bypassSecurityTrustResourceUrl(value);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'nzxSafeScript',\n})\nexport class NzxSafeScriptPipe implements PipeTransform {\n private domSanitizer: DomSanitizer = inject(DomSanitizer);\n\n transform(value: string) {\n return this.domSanitizer.bypassSecurityTrustScript(value);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'nzxSafeStyle',\n})\nexport class NzxSafeStylePipe implements PipeTransform {\n private domSanitizer: DomSanitizer = inject(DomSanitizer);\n\n transform(value: string) {\n return this.domSanitizer.bypassSecurityTrustStyle(value);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { NzxMapPipe } from './map.pipe';\nimport { NzxSafeNullPipe } from './safe-null.pipe';\nimport { NzxSafeUrlPipe } from './safe-url.pipe';\nimport { NzxSafeStylePipe } from './safe-style.pipe';\nimport { NzxSafeHtmlPipe } from './safe-html.pipe';\nimport { NzxSafeResourceUrlPipe } from './safe-resource-url.pipe';\nimport { NzxSafeScriptPipe } from './safe-script.pipe';\n\n@NgModule({\n imports: [\n NzxMapPipe,\n NzxSafeNullPipe,\n NzxSafeUrlPipe,\n NzxSafeStylePipe,\n NzxSafeHtmlPipe,\n NzxSafeResourceUrlPipe,\n NzxSafeScriptPipe,\n ],\n exports: [\n NzxMapPipe,\n NzxSafeNullPipe,\n NzxSafeUrlPipe,\n NzxSafeStylePipe,\n NzxSafeHtmlPipe,\n NzxSafeResourceUrlPipe,\n NzxSafeScriptPipe,\n ],\n})\nexport class NzxPipesModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './map.pipe';\nexport * from './safe-null.pipe';\nexport * from './safe-url.pipe';\nexport * from './safe-html.pipe';\nexport * from './safe-resource-url.pipe';\nexport * from './safe-script.pipe';\nexport * from './safe-style.pipe';\nexport * from './pipes.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["NZ_CONFIG_MODULE_NAME"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import * as i1$1 from '@angular/common';
2
- import { DOCUMENT, CommonModule } from '@angular/common';
1
+ import * as i2 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Directive, Input, ElementRef, Component, Inject, ViewChild, ContentChild, EventEmitter, Output, ContentChildren, HostListener, NgModule } from '@angular/core';
4
+ import { Input, Directive, DOCUMENT, ElementRef, ContentChild, ViewChild, Inject, Component, EventEmitter, ContentChildren, Output, HostListener, NgModule } from '@angular/core';
5
5
  import { getElementByTag } from 'ng-zorro-antd-extension/util';
6
6
  import * as i1 from '@angular/cdk/platform';
7
7
  import { Navigation, CoreViewer, PageViewMode } from '@vivliostyle/core';
8
- import * as i2 from 'ng-zorro-antd/grid';
8
+ import * as i3 from 'ng-zorro-antd/grid';
9
9
  import { NzGridModule } from 'ng-zorro-antd/grid';
10
- import * as i3 from 'ng-zorro-antd/pagination';
10
+ import * as i4 from 'ng-zorro-antd/pagination';
11
11
  import { NzPaginationModule } from 'ng-zorro-antd/pagination';
12
12
 
13
13
  class NzxPrintContentDirective {
@@ -16,10 +16,10 @@ class NzxPrintContentDirective {
16
16
  this.identifierStr = '';
17
17
  this.customStyle = '';
18
18
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPrintContentDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
20
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.2", type: NzxPrintContentDirective, isStandalone: true, selector: "[nzxPrintContent]", inputs: { identifierStr: "identifierStr", customStyle: "customStyle" }, ngImport: i0 }); }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPrintContentDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
20
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: NzxPrintContentDirective, isStandalone: true, selector: "[nzxPrintContent]", inputs: { identifierStr: "identifierStr", customStyle: "customStyle" }, ngImport: i0 }); }
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPrintContentDirective, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPrintContentDirective, decorators: [{
23
23
  type: Directive,
24
24
  args: [{
25
25
  selector: '[nzxPrintContent]',
@@ -176,13 +176,13 @@ class NzxPrintComponent {
176
176
  html = html.replace(/<!---->/g, ' ');
177
177
  return html;
178
178
  }
179
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPrintComponent, deps: [{ token: i1.Platform }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
180
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.2", type: NzxPrintComponent, isStandalone: true, selector: "nzx-print", inputs: { printTitle: "printTitle", width: "width", height: "height", enablePreview: "enablePreview", identifierStr: "identifierStr", pagedCDN: "pagedCDN" }, queries: [{ propertyName: "_printEl", first: true, predicate: NzxPrintContentDirective, descendants: true, read: ElementRef, static: true }], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["iframeContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: `
179
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPrintComponent, deps: [{ token: i1.Platform }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
180
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.7", type: NzxPrintComponent, isStandalone: true, selector: "nzx-print", inputs: { printTitle: "printTitle", width: "width", height: "height", enablePreview: "enablePreview", identifierStr: "identifierStr", pagedCDN: "pagedCDN" }, queries: [{ propertyName: "_printEl", first: true, predicate: NzxPrintContentDirective, descendants: true, read: ElementRef, static: true }], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["iframeContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: `
181
181
  <ng-content select="[nzxPrintHeader]"></ng-content>
182
182
  <div #iframeContainer></div>
183
183
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
184
184
  }
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPrintComponent, decorators: [{
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPrintComponent, decorators: [{
186
186
  type: Component,
187
187
  args: [{
188
188
  selector: 'nzx-print',
@@ -219,7 +219,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
219
219
  * Vivliostyle 打印
220
220
  */
221
221
  class NzxPrintVComponent {
222
- constructor(cd) {
222
+ constructor(platform, cd) {
223
+ this.platform = platform;
223
224
  this.cd = cd;
224
225
  this.printTitle = 'pdf';
225
226
  /**
@@ -304,6 +305,15 @@ class NzxPrintVComponent {
304
305
  createIframeWrapper() {
305
306
  if (this.vivViewRef) {
306
307
  this.clearView();
308
+ if (!this.enablePreview) {
309
+ this.vivViewRef.nativeElement.style.visibility = 'hidden';
310
+ if (this.platform.FIREFOX) {
311
+ this.vivViewRef.nativeElement.setAttribute('style', 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0');
312
+ }
313
+ else {
314
+ this.vivViewRef.nativeElement.setAttribute('style', 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0');
315
+ }
316
+ }
307
317
  this.iframeEl = document.createElement('iframe');
308
318
  this.iframeEl.height = this.height + '';
309
319
  this.iframeEl.width = this.width + '';
@@ -446,13 +456,13 @@ class NzxPrintVComponent {
446
456
  this.viewer = undefined;
447
457
  this._isRenderComplete = false;
448
458
  }
449
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPrintVComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
450
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.2", type: NzxPrintVComponent, isStandalone: true, selector: "nzx-print-v", inputs: { printTitle: "printTitle", width: "width", height: "height", enablePreview: "enablePreview", pixelRatio: "pixelRatio" }, outputs: { pageRenderComplete: "pageRenderComplete" }, queries: [{ propertyName: "_printElQueryList", predicate: NzxPrintContentDirective }], viewQueries: [{ propertyName: "vivViewRef", first: true, predicate: ["vivView"], descendants: true }], ngImport: i0, template: `
459
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPrintVComponent, deps: [{ token: i1.Platform }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
460
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.7", type: NzxPrintVComponent, isStandalone: true, selector: "nzx-print-v", inputs: { printTitle: "printTitle", width: "width", height: "height", enablePreview: "enablePreview", pixelRatio: "pixelRatio" }, outputs: { pageRenderComplete: "pageRenderComplete" }, queries: [{ propertyName: "_printElQueryList", predicate: NzxPrintContentDirective }], viewQueries: [{ propertyName: "vivViewRef", first: true, predicate: ["vivView"], descendants: true }], ngImport: i0, template: `
451
461
  <ng-content select="[nzxPrintHeader]"></ng-content>
452
462
 
453
463
  <div #vivView [ngStyle]="{ margin: '10px 0' }"></div>
454
464
 
455
- <div nz-row nzJustify="end">
465
+ <div nz-row nzJustify="end" *ngIf="enablePreview">
456
466
  <ng-template #totalTemplate let-total>共 {{ total }} 页</ng-template>
457
467
  <nz-pagination
458
468
  [nzPageIndex]="1"
@@ -464,9 +474,9 @@ class NzxPrintVComponent {
464
474
  (nzPageIndexChange)="onPageIndexChange($event)"
465
475
  ></nz-pagination>
466
476
  </div>
467
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: NzGridModule }, { kind: "directive", type: i2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "ngmodule", type: NzPaginationModule }, { kind: "component", type: i3.NzPaginationComponent, selector: "nz-pagination", inputs: ["nzShowTotal", "nzItemRender", "nzSize", "nzPageSizeOptions", "nzShowSizeChanger", "nzShowQuickJumper", "nzSimple", "nzDisabled", "nzResponsive", "nzHideOnSinglePage", "nzTotal", "nzPageIndex", "nzPageSize"], outputs: ["nzPageSizeChange", "nzPageIndexChange"], exportAs: ["nzPagination"] }] }); }
477
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: NzGridModule }, { kind: "directive", type: i3.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "ngmodule", type: NzPaginationModule }, { kind: "component", type: i4.NzPaginationComponent, selector: "nz-pagination", inputs: ["nzShowTotal", "nzItemRender", "nzSize", "nzPageSizeOptions", "nzShowSizeChanger", "nzShowQuickJumper", "nzSimple", "nzDisabled", "nzResponsive", "nzHideOnSinglePage", "nzTotal", "nzPageIndex", "nzPageSize"], outputs: ["nzPageSizeChange", "nzPageIndexChange"], exportAs: ["nzPagination"] }] }); }
468
478
  }
469
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPrintVComponent, decorators: [{
479
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPrintVComponent, decorators: [{
470
480
  type: Component,
471
481
  args: [{
472
482
  selector: 'nzx-print-v',
@@ -475,7 +485,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
475
485
 
476
486
  <div #vivView [ngStyle]="{ margin: '10px 0' }"></div>
477
487
 
478
- <div nz-row nzJustify="end">
488
+ <div nz-row nzJustify="end" *ngIf="enablePreview">
479
489
  <ng-template #totalTemplate let-total>共 {{ total }} 页</ng-template>
480
490
  <nz-pagination
481
491
  [nzPageIndex]="1"
@@ -490,7 +500,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
490
500
  `,
491
501
  imports: [CommonModule, NzGridModule, NzPaginationModule],
492
502
  }]
493
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { printTitle: [{
503
+ }], ctorParameters: () => [{ type: i1.Platform }, { type: i0.ChangeDetectorRef }], propDecorators: { printTitle: [{
494
504
  type: Input
495
505
  }], width: [{
496
506
  type: Input
@@ -580,10 +590,10 @@ class NzxPrintDirective {
580
590
  throw new Error('printEl is invalid');
581
591
  }
582
592
  }
583
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPrintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
584
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.2", type: NzxPrintDirective, isStandalone: true, selector: "button[nzxPrint]", inputs: { printEl: "printEl", printTitle: "printTitle", identifierStr: "identifierStr" }, host: { listeners: { "click": "print()" } }, ngImport: i0 }); }
593
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPrintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
594
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: NzxPrintDirective, isStandalone: true, selector: "button[nzxPrint]", inputs: { printEl: "printEl", printTitle: "printTitle", identifierStr: "identifierStr" }, host: { listeners: { "click": "print()" } }, ngImport: i0 }); }
585
595
  }
586
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPrintDirective, decorators: [{
596
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPrintDirective, decorators: [{
587
597
  type: Directive,
588
598
  args: [{
589
599
  selector: 'button[nzxPrint]',
@@ -600,18 +610,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
600
610
  }] } });
601
611
 
602
612
  class NzxPrintModule {
603
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
604
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.2", ngImport: i0, type: NzxPrintModule, imports: [NzxPrintComponent,
613
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
614
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.7", ngImport: i0, type: NzxPrintModule, imports: [NzxPrintComponent,
605
615
  NzxPrintVComponent,
606
616
  NzxPrintDirective,
607
617
  NzxPrintContentDirective], exports: [NzxPrintComponent,
608
618
  NzxPrintVComponent,
609
619
  NzxPrintContentDirective,
610
620
  NzxPrintDirective] }); }
611
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPrintModule, imports: [NzxPrintComponent,
621
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPrintModule, imports: [NzxPrintComponent,
612
622
  NzxPrintVComponent] }); }
613
623
  }
614
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: NzxPrintModule, decorators: [{
624
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NzxPrintModule, decorators: [{
615
625
  type: NgModule,
616
626
  args: [{
617
627
  imports: [