ng-zorro-antd-extension 18.1.5 → 19.0.1
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.
- package/README.md +2 -1
- package/acl/nzx-acl.directive.d.ts +1 -1
- package/acl/nzx-acl.module.d.ts +1 -2
- package/blank-field/blank-field.component.d.ts +1 -1
- package/blank-field/blank-field.module.d.ts +1 -2
- package/checkbox/checkbox-group.component.d.ts +5 -16
- package/checkbox/checkbox.module.d.ts +1 -4
- package/configurable-query/configurable-query-item/configurable-query-item.component.d.ts +1 -1
- package/configurable-query/configurable-query.component.d.ts +1 -1
- package/configurable-query/configurable-query.module.d.ts +3 -21
- package/configurable-query/control.directive.d.ts +1 -1
- package/configurable-query/controls/abstract.control.d.ts +2 -2
- package/configurable-query/controls/date-picker.control.d.ts +1 -1
- package/configurable-query/controls/input.control.d.ts +1 -1
- package/configurable-query/controls/range-picker.control.d.ts +1 -1
- package/configurable-query/controls/select.control.d.ts +1 -1
- package/configurable-query/controls/template.control.d.ts +1 -1
- package/dynamic-form/controls/abstract.control.d.ts +1 -1
- package/dynamic-form/controls/date-picker.control.d.ts +1 -1
- package/dynamic-form/controls/input.control.d.ts +1 -1
- package/dynamic-form/controls/range-picker.control.d.ts +1 -1
- package/dynamic-form/controls/select.control.d.ts +1 -1
- package/dynamic-form/controls/template.control.d.ts +1 -1
- package/dynamic-form/dynamic-form-item/dynamic-form-item.component.d.ts +1 -1
- package/dynamic-form/dynamic-form.component.d.ts +1 -1
- package/dynamic-form/dynamic-form.module.d.ts +1 -7
- package/dynamic-form/wrapper/control/abstract-control-wrapper.d.ts +1 -1
- package/dynamic-form/wrapper/control/built-in-control-wrapper.d.ts +1 -1
- package/dynamic-form/wrapper/item/abstract-item-wrapper.d.ts +1 -1
- package/dynamic-form/wrapper/item/built-in-item-wrapper.d.ts +1 -1
- package/dynamic-form/wrapper/label/abstract-label-wrapper.d.ts +1 -1
- package/dynamic-form/wrapper/label/built-in-label-wrapper.d.ts +1 -1
- package/editable/editable.component.d.ts +1 -1
- package/editable/editable.module.d.ts +1 -6
- package/fesm2022/ng-zorro-antd-extension-acl.mjs +11 -13
- package/fesm2022/ng-zorro-antd-extension-acl.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-blank-field.mjs +19 -17
- package/fesm2022/ng-zorro-antd-extension-blank-field.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-checkbox.mjs +28 -37
- package/fesm2022/ng-zorro-antd-extension-checkbox.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs +78 -116
- package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-core-config.mjs +3 -3
- package/fesm2022/ng-zorro-antd-extension-core-config.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-dynamic-form.mjs +86 -82
- package/fesm2022/ng-zorro-antd-extension-dynamic-form.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-editable.mjs +23 -33
- package/fesm2022/ng-zorro-antd-extension-editable.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-jigsaw.mjs +9 -10
- package/fesm2022/ng-zorro-antd-extension-jigsaw.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-pipes.mjs +26 -26
- package/fesm2022/ng-zorro-antd-extension-pipes.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-print.mjs +23 -21
- package/fesm2022/ng-zorro-antd-extension-print.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-simple-table.mjs +22 -22
- package/fesm2022/ng-zorro-antd-extension-simple-table.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-table-adaptor.mjs +11 -12
- package/fesm2022/ng-zorro-antd-extension-table-adaptor.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-table-form.mjs +36 -53
- package/fesm2022/ng-zorro-antd-extension-table-form.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-table-select.mjs +38 -40
- package/fesm2022/ng-zorro-antd-extension-table-select.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-timer-button.mjs +8 -10
- package/fesm2022/ng-zorro-antd-extension-timer-button.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-trim.mjs +8 -9
- package/fesm2022/ng-zorro-antd-extension-trim.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-util.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-wang-editor.mjs +11 -13
- package/fesm2022/ng-zorro-antd-extension-wang-editor.mjs.map +1 -1
- package/jigsaw/jigsaw.component.d.ts +1 -1
- package/jigsaw/jigsaw.module.d.ts +1 -3
- package/package.json +9 -51
- package/pipes/map.pipe.d.ts +1 -1
- package/pipes/pipes.module.d.ts +1 -1
- package/pipes/safe-html.pipe.d.ts +1 -1
- package/pipes/safe-null.pipe.d.ts +1 -1
- package/pipes/safe-resource-url.pipe.d.ts +1 -1
- package/pipes/safe-script.pipe.d.ts +1 -1
- package/pipes/safe-style.pipe.d.ts +1 -1
- package/pipes/safe-url.pipe.d.ts +1 -1
- package/print/nzx-print-content.directive.d.ts +1 -1
- package/print/nzx-print-v.component.d.ts +1 -1
- package/print/nzx-print.component.d.ts +1 -1
- package/print/nzx-print.directive.d.ts +1 -1
- package/print/nzx-print.module.d.ts +1 -4
- package/schematics/ng-add/index.js +1 -2
- package/schematics/ng-add/index.js.map +1 -1
- package/simple-table/directive/expand.directive.d.ts +1 -1
- package/simple-table/directive/td.directive.d.ts +1 -1
- package/simple-table/directive/th.directive.d.ts +1 -1
- package/simple-table/simple-table.component.d.ts +1 -1
- package/simple-table/simple-table.module.d.ts +1 -3
- package/table-adaptor/page-table-basic.d.ts +1 -1
- package/table-adaptor/table-adaptor.directive.d.ts +1 -1
- package/table-adaptor/table-adaptor.module.d.ts +1 -1
- package/table-form/directive/table-expand.directive.d.ts +1 -1
- package/table-form/directive/table-td.directive.d.ts +1 -1
- package/table-form/directive/table-th.directive.d.ts +1 -1
- package/table-form/table-form.component.d.ts +1 -1
- package/table-form/table-form.module.d.ts +1 -10
- package/table-select/abstract-table-select.d.ts +2 -2
- package/table-select/key.directive.d.ts +1 -1
- package/table-select/nzx-table-select.module.d.ts +1 -6
- package/table-select/page-table-select/page-table-select.component.d.ts +1 -1
- package/table-select/table-select/table-select.component.d.ts +1 -1
- package/timer-button/timer-button.directive.d.ts +1 -1
- package/timer-button/timer-button.module.d.ts +1 -2
- package/trim/trim.directive.d.ts +1 -1
- package/trim/trim.module.d.ts +1 -1
- package/wang-editor/wang-editor.component.d.ts +1 -1
- package/wang-editor/wang-editor.module.d.ts +1 -2
- package/wang-editor/wang-toolbar.component.d.ts +1 -1
- package/esm2022/acl/ng-zorro-antd-extension-acl.mjs +0 -5
- package/esm2022/acl/nzx-acl.directive.mjs +0 -80
- package/esm2022/acl/nzx-acl.module.mjs +0 -25
- package/esm2022/acl/nzx-acl.service.mjs +0 -45
- package/esm2022/acl/public-api.mjs +0 -8
- package/esm2022/blank-field/blank-field.component.mjs +0 -52
- package/esm2022/blank-field/blank-field.module.mjs +0 -18
- package/esm2022/blank-field/ng-zorro-antd-extension-blank-field.mjs +0 -5
- package/esm2022/blank-field/public-api.mjs +0 -7
- package/esm2022/checkbox/checkbox-group.component.mjs +0 -108
- package/esm2022/checkbox/checkbox.module.mjs +0 -20
- package/esm2022/checkbox/ng-zorro-antd-extension-checkbox.mjs +0 -5
- package/esm2022/checkbox/public-api.mjs +0 -7
- package/esm2022/configurable-query/configurable-query-item/configurable-query-item.component.mjs +0 -86
- package/esm2022/configurable-query/configurable-query.component.mjs +0 -309
- package/esm2022/configurable-query/configurable-query.module.mjs +0 -111
- package/esm2022/configurable-query/control.directive.mjs +0 -18
- package/esm2022/configurable-query/controls/abstract.control.mjs +0 -20
- package/esm2022/configurable-query/controls/date-picker.control.mjs +0 -37
- package/esm2022/configurable-query/controls/input.control.mjs +0 -36
- package/esm2022/configurable-query/controls/range-picker.control.mjs +0 -35
- package/esm2022/configurable-query/controls/select.control.mjs +0 -51
- package/esm2022/configurable-query/controls/template.control.mjs +0 -33
- package/esm2022/configurable-query/ng-zorro-antd-extension-configurable-query.mjs +0 -5
- package/esm2022/configurable-query/public-api.mjs +0 -7
- package/esm2022/configurable-query/query-config.service.mjs +0 -68
- package/esm2022/configurable-query/type.mjs +0 -2
- package/esm2022/core/config/config.mjs +0 -6
- package/esm2022/core/config/config.service.mjs +0 -84
- package/esm2022/core/config/ng-zorro-antd-extension-core-config.mjs +0 -5
- package/esm2022/core/config/public-api.mjs +0 -3
- package/esm2022/dynamic-form/config/dynamic-form-config.mjs +0 -47
- package/esm2022/dynamic-form/controls/abstract.control.mjs +0 -17
- package/esm2022/dynamic-form/controls/date-picker.control.mjs +0 -20
- package/esm2022/dynamic-form/controls/input.control.mjs +0 -15
- package/esm2022/dynamic-form/controls/range-picker.control.mjs +0 -15
- package/esm2022/dynamic-form/controls/select.control.mjs +0 -49
- package/esm2022/dynamic-form/controls/template.control.mjs +0 -30
- package/esm2022/dynamic-form/dynamic-form-item/dynamic-form-item.component.mjs +0 -31
- package/esm2022/dynamic-form/dynamic-form.component.mjs +0 -45
- package/esm2022/dynamic-form/dynamic-form.module.mjs +0 -72
- package/esm2022/dynamic-form/ng-zorro-antd-extension-dynamic-form.mjs +0 -5
- package/esm2022/dynamic-form/public-api.mjs +0 -8
- package/esm2022/dynamic-form/wrapper/control/abstract-control-wrapper.mjs +0 -30
- package/esm2022/dynamic-form/wrapper/control/built-in-control-wrapper.mjs +0 -32
- package/esm2022/dynamic-form/wrapper/item/abstract-item-wrapper.mjs +0 -44
- package/esm2022/dynamic-form/wrapper/item/built-in-item-wrapper.mjs +0 -27
- package/esm2022/dynamic-form/wrapper/label/abstract-label-wrapper.mjs +0 -10
- package/esm2022/dynamic-form/wrapper/label/built-in-label-wrapper.mjs +0 -17
- package/esm2022/editable/editable.component.mjs +0 -140
- package/esm2022/editable/editable.module.mjs +0 -36
- package/esm2022/editable/ng-zorro-antd-extension-editable.mjs +0 -5
- package/esm2022/editable/public-api.mjs +0 -3
- package/esm2022/i18n/languages/en_US.mjs +0 -10
- package/esm2022/i18n/languages/zh_CN.mjs +0 -10
- package/esm2022/i18n/ng-zorro-antd-extension-i18n.mjs +0 -5
- package/esm2022/i18n/nz-i18n.interface.mjs +0 -2
- package/esm2022/i18n/public-api.mjs +0 -4
- package/esm2022/jigsaw/jigsaw.component.mjs +0 -257
- package/esm2022/jigsaw/jigsaw.module.mjs +0 -19
- package/esm2022/jigsaw/ng-zorro-antd-extension-jigsaw.mjs +0 -5
- package/esm2022/jigsaw/public-api.mjs +0 -7
- package/esm2022/ng-zorro-antd-extension.mjs +0 -5
- package/esm2022/pipes/map.pipe.mjs +0 -24
- package/esm2022/pipes/ng-zorro-antd-extension-pipes.mjs +0 -5
- package/esm2022/pipes/pipes.module.mjs +0 -50
- package/esm2022/pipes/public-api.mjs +0 -13
- package/esm2022/pipes/safe-html.pipe.mjs +0 -20
- package/esm2022/pipes/safe-null.pipe.mjs +0 -30
- package/esm2022/pipes/safe-resource-url.pipe.mjs +0 -20
- package/esm2022/pipes/safe-script.pipe.mjs +0 -20
- package/esm2022/pipes/safe-style.pipe.mjs +0 -20
- package/esm2022/pipes/safe-url.pipe.mjs +0 -34
- package/esm2022/print/ng-zorro-antd-extension-print.mjs +0 -5
- package/esm2022/print/nzx-print-content.directive.mjs +0 -22
- package/esm2022/print/nzx-print-v.component.mjs +0 -312
- package/esm2022/print/nzx-print.component.mjs +0 -190
- package/esm2022/print/nzx-print.directive.mjs +0 -92
- package/esm2022/print/nzx-print.module.mjs +0 -39
- package/esm2022/print/public-api.mjs +0 -10
- package/esm2022/public-api.mjs +0 -5
- package/esm2022/simple-table/directive/expand.directive.mjs +0 -16
- package/esm2022/simple-table/directive/td.directive.mjs +0 -18
- package/esm2022/simple-table/directive/th.directive.mjs +0 -19
- package/esm2022/simple-table/ng-zorro-antd-extension-simple-table.mjs +0 -5
- package/esm2022/simple-table/public-api.mjs +0 -10
- package/esm2022/simple-table/simple-table.component.mjs +0 -229
- package/esm2022/simple-table/simple-table.module.mjs +0 -38
- package/esm2022/table-adaptor/ng-zorro-antd-extension-table-adaptor.mjs +0 -5
- package/esm2022/table-adaptor/page-table-basic.mjs +0 -22
- package/esm2022/table-adaptor/public-api.mjs +0 -8
- package/esm2022/table-adaptor/table-adaptor.directive.mjs +0 -173
- package/esm2022/table-adaptor/table-adaptor.module.mjs +0 -17
- package/esm2022/table-form/directive/table-expand.directive.mjs +0 -18
- package/esm2022/table-form/directive/table-td.directive.mjs +0 -18
- package/esm2022/table-form/directive/table-th.directive.mjs +0 -20
- package/esm2022/table-form/ng-zorro-antd-extension-table-form.mjs +0 -5
- package/esm2022/table-form/public-api.mjs +0 -11
- package/esm2022/table-form/table-form.component.mjs +0 -370
- package/esm2022/table-form/table-form.module.mjs +0 -71
- package/esm2022/table-form/type.mjs +0 -2
- package/esm2022/table-select/abstract-table-select.mjs +0 -140
- package/esm2022/table-select/key.directive.mjs +0 -21
- package/esm2022/table-select/ng-zorro-antd-extension-table-select.mjs +0 -5
- package/esm2022/table-select/nzx-table-select.module.mjs +0 -50
- package/esm2022/table-select/page-table-select/page-table-select.component.mjs +0 -58
- package/esm2022/table-select/public-api.mjs +0 -11
- package/esm2022/table-select/table-select/table-select.component.mjs +0 -39
- package/esm2022/table-select/type.mjs +0 -2
- package/esm2022/timer-button/ng-zorro-antd-extension-timer-button.mjs +0 -5
- package/esm2022/timer-button/public-api.mjs +0 -7
- package/esm2022/timer-button/timer-button.directive.mjs +0 -69
- package/esm2022/timer-button/timer-button.module.mjs +0 -18
- package/esm2022/trim/ng-zorro-antd-extension-trim.mjs +0 -5
- package/esm2022/trim/public-api.mjs +0 -7
- package/esm2022/trim/trim.directive.mjs +0 -123
- package/esm2022/trim/trim.module.mjs +0 -17
- package/esm2022/types/common.mjs +0 -2
- package/esm2022/types/ng-zorro-antd-extension-types.mjs +0 -5
- package/esm2022/types/public-api.mjs +0 -6
- package/esm2022/util/lib/cloneDeep.mjs +0 -49
- package/esm2022/util/lib/fileUtil.mjs +0 -51
- package/esm2022/util/lib/getElementByTag.mjs +0 -38
- package/esm2022/util/lib/isArray.mjs +0 -17
- package/esm2022/util/lib/isDate.mjs +0 -4
- package/esm2022/util/lib/isEmpty.mjs +0 -19
- package/esm2022/util/lib/isNumber.mjs +0 -12
- package/esm2022/util/lib/isObject.mjs +0 -10
- package/esm2022/util/lib/isString.mjs +0 -11
- package/esm2022/util/lib/toNumber.mjs +0 -18
- package/esm2022/util/lib/toString.mjs +0 -16
- package/esm2022/util/lib/trimObject.mjs +0 -15
- package/esm2022/util/lib/updateControlStatus.mjs +0 -47
- package/esm2022/util/ng-zorro-antd-extension-util.mjs +0 -5
- package/esm2022/util/public-api.mjs +0 -18
- package/esm2022/wang-editor/ng-zorro-antd-extension-wang-editor.mjs +0 -5
- package/esm2022/wang-editor/public-api.mjs +0 -9
- package/esm2022/wang-editor/type.mjs +0 -2
- package/esm2022/wang-editor/wang-editor.component.mjs +0 -235
- package/esm2022/wang-editor/wang-editor.module.mjs +0 -19
- package/esm2022/wang-editor/wang-toolbar.component.mjs +0 -57
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { inject, Pipe } from '@angular/core';
|
|
3
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
|
-
import { ExtensionWithConfig, NzxConfigService, } from 'ng-zorro-antd-extension/core/config';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
const NZ_CONFIG_MODULE_NAME = 'nzxSafeUrl';
|
|
7
|
-
export class NzxSafeUrlPipe {
|
|
8
|
-
constructor() {
|
|
9
|
-
this._nzModuleName = NZ_CONFIG_MODULE_NAME;
|
|
10
|
-
this.nzxConfigService = inject(NzxConfigService);
|
|
11
|
-
this.domSanitizer = inject(DomSanitizer);
|
|
12
|
-
}
|
|
13
|
-
transform(value, protocol = this.protocol) {
|
|
14
|
-
if (/^(http|https|ftp):\/\/[^\s/$.?#].[^\s]*$/.test(value)) {
|
|
15
|
-
if (protocol) {
|
|
16
|
-
value = value.replace(/^(http|https)/, protocol);
|
|
17
|
-
}
|
|
18
|
-
return this.domSanitizer.bypassSecurityTrustUrl(value);
|
|
19
|
-
}
|
|
20
|
-
return value;
|
|
21
|
-
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
23
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeUrlPipe, name: "nzxSafeUrl" }); }
|
|
24
|
-
}
|
|
25
|
-
__decorate([
|
|
26
|
-
ExtensionWithConfig()
|
|
27
|
-
], NzxSafeUrlPipe.prototype, "protocol", void 0);
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxSafeUrlPipe, decorators: [{
|
|
29
|
-
type: Pipe,
|
|
30
|
-
args: [{
|
|
31
|
-
name: 'nzxSafeUrl',
|
|
32
|
-
}]
|
|
33
|
-
}], propDecorators: { protocol: [] } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS11cmwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcGlwZXMvc2FmZS11cmwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQVcsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLGdCQUFnQixHQUNqQixNQUFNLHFDQUFxQyxDQUFDOztBQUU3QyxNQUFNLHFCQUFxQixHQUFpQixZQUFZLENBQUM7QUFLekQsTUFBTSxPQUFPLGNBQWM7SUFIM0I7UUFJVyxrQkFBYSxHQUFpQixxQkFBcUIsQ0FBQztRQUdyRCxxQkFBZ0IsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUQsaUJBQVksR0FBaUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBWTNEO0lBVkMsU0FBUyxDQUFDLEtBQWEsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVE7UUFDL0MsSUFBSSwwQ0FBMEMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzRCxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBaEJVLGNBQWM7NkdBQWQsY0FBYzs7QUFFRjtJQUF0QixtQkFBbUIsRUFBRTtnREFBd0M7NEZBRm5ELGNBQWM7a0JBSDFCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFlBQVk7aUJBQ25COzhCQUd3QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7XG4gIEV4dGVuc2lvbldpdGhDb25maWcsXG4gIE56eENvbmZpZ0tleSxcbiAgTnp4Q29uZmlnU2VydmljZSxcbn0gZnJvbSAnbmctem9ycm8tYW50ZC1leHRlbnNpb24vY29yZS9jb25maWcnO1xuXG5jb25zdCBOWl9DT05GSUdfTU9EVUxFX05BTUU6IE56eENvbmZpZ0tleSA9ICduenhTYWZlVXJsJztcblxuQFBpcGUoe1xuICBuYW1lOiAnbnp4U2FmZVVybCcsXG59KVxuZXhwb3J0IGNsYXNzIE56eFNhZmVVcmxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHJlYWRvbmx5IF9uek1vZHVsZU5hbWU6IE56eENvbmZpZ0tleSA9IE5aX0NPTkZJR19NT0RVTEVfTkFNRTtcbiAgQEV4dGVuc2lvbldpdGhDb25maWcoKSBwcm90b2NvbDogJ2h0dHAnIHwgJ2h0dHBzJyB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIG56eENvbmZpZ1NlcnZpY2U6IE56eENvbmZpZ1NlcnZpY2UgPSBpbmplY3QoTnp4Q29uZmlnU2VydmljZSk7XG4gIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcblxuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgcHJvdG9jb2wgPSB0aGlzLnByb3RvY29sKTogU2FmZVVybCB7XG4gICAgaWYgKC9eKGh0dHB8aHR0cHN8ZnRwKTpcXC9cXC9bXlxccy8kLj8jXS5bXlxcc10qJC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgIGlmIChwcm90b2NvbCkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL14oaHR0cHxodHRwcykvLCBwcm90b2NvbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctem9ycm8tYW50ZC1leHRlbnNpb24tcHJpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21wb25lbnRzL3ByaW50L25nLXpvcnJvLWFudGQtZXh0ZW5zaW9uLXByaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class NzxPrintContentDirective {
|
|
4
|
-
constructor(elementRef) {
|
|
5
|
-
this.elementRef = elementRef;
|
|
6
|
-
this.identifierStr = '';
|
|
7
|
-
this.customStyle = '';
|
|
8
|
-
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintContentDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NzxPrintContentDirective, selector: "[nzxPrintContent]", inputs: { identifierStr: "identifierStr", customStyle: "customStyle" }, ngImport: i0 }); }
|
|
11
|
-
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintContentDirective, decorators: [{
|
|
13
|
-
type: Directive,
|
|
14
|
-
args: [{
|
|
15
|
-
selector: '[nzxPrintContent]',
|
|
16
|
-
}]
|
|
17
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { identifierStr: [{
|
|
18
|
-
type: Input
|
|
19
|
-
}], customStyle: [{
|
|
20
|
-
type: Input
|
|
21
|
-
}] } });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnp4LXByaW50LWNvbnRlbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9wcmludC9uengtcHJpbnQtY29udGVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzdELE1BQU0sT0FBTyx3QkFBd0I7SUFHbkMsWUFBbUIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUZoQyxrQkFBYSxHQUFzQixFQUFFLENBQUM7UUFDdEMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7SUFDa0IsQ0FBQzsrR0FIbEMsd0JBQXdCO21HQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7K0VBRVUsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbnp4UHJpbnRDb250ZW50XScsXG59KVxuZXhwb3J0IGNsYXNzIE56eFByaW50Q29udGVudERpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIGlkZW50aWZpZXJTdHI6IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XG4gIEBJbnB1dCgpIGN1c3RvbVN0eWxlID0gJyc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxufVxuIl19
|
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
import { Component, ContentChildren, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
-
import { CoreViewer, Navigation, PageViewMode, } from '@vivliostyle/core';
|
|
3
|
-
import { NzxPrintContentDirective } from './nzx-print-content.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/cdk/platform";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
import * as i3 from "ng-zorro-antd/grid";
|
|
8
|
-
import * as i4 from "ng-zorro-antd/pagination";
|
|
9
|
-
/**
|
|
10
|
-
* Vivliostyle 打印
|
|
11
|
-
*/
|
|
12
|
-
export class NzxPrintVComponent {
|
|
13
|
-
constructor(platform, cd) {
|
|
14
|
-
this.platform = platform;
|
|
15
|
-
this.cd = cd;
|
|
16
|
-
this.printTitle = 'pdf';
|
|
17
|
-
/**
|
|
18
|
-
* a4 794px1123px
|
|
19
|
-
*/
|
|
20
|
-
this.width = 814;
|
|
21
|
-
this.height = 1143;
|
|
22
|
-
this.enablePreview = true;
|
|
23
|
-
this.pixelRatio = 8;
|
|
24
|
-
this.pageRenderComplete = new EventEmitter();
|
|
25
|
-
this.pageTotal = 0;
|
|
26
|
-
this._title = document.title;
|
|
27
|
-
this._isRenderComplete = false;
|
|
28
|
-
this.handleError = (payload) => {
|
|
29
|
-
console.log('error::', payload);
|
|
30
|
-
};
|
|
31
|
-
this.handleReadyStateChange = (payload) => {
|
|
32
|
-
this._isRenderComplete = false;
|
|
33
|
-
this.pageRenderComplete.emit(false);
|
|
34
|
-
if (this.viewer && this.viewer.readyState === 'complete') {
|
|
35
|
-
const intervalTag = setInterval(() => {
|
|
36
|
-
if (this.iframeEl &&
|
|
37
|
-
this.iframeEl.contentWindow &&
|
|
38
|
-
this.iframeEl.contentWindow.document) {
|
|
39
|
-
const images = this.iframeEl.contentWindow.document.getElementsByTagName('img');
|
|
40
|
-
let allImagesLoaded = true;
|
|
41
|
-
for (let i = 0; i < images.length; i++) {
|
|
42
|
-
if (!images[i].complete) {
|
|
43
|
-
allImagesLoaded = false;
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (allImagesLoaded) {
|
|
48
|
-
console.log('All images in iframe loaded successfully');
|
|
49
|
-
this.pageRenderComplete.emit(true);
|
|
50
|
-
this._isRenderComplete = true;
|
|
51
|
-
clearInterval(intervalTag);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}, 1000);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
this.handleHyperlink = (payload) => {
|
|
58
|
-
console.log('handleHyperlink::', payload);
|
|
59
|
-
};
|
|
60
|
-
this.handleLoaded = (payload) => {
|
|
61
|
-
console.log('handleLoaded::', payload);
|
|
62
|
-
};
|
|
63
|
-
this.handleNavigation = (payload) => {
|
|
64
|
-
this.pageTotal = payload.epageCount;
|
|
65
|
-
this.cd.markForCheck();
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
ngAfterViewInit() {
|
|
69
|
-
setTimeout(() => {
|
|
70
|
-
this.createIframeWrapper();
|
|
71
|
-
}, 1000);
|
|
72
|
-
}
|
|
73
|
-
ngOnDestroy() {
|
|
74
|
-
if (this.viewer) {
|
|
75
|
-
this.clearView();
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
onPageIndexChange(num) {
|
|
79
|
-
if (this.viewer) {
|
|
80
|
-
this.viewer.navigateToPage(Navigation.EPAGE, num - 1);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
print() {
|
|
84
|
-
if (this._isRenderComplete) {
|
|
85
|
-
this.iframeEl.contentWindow.print();
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
console.warn('rending...');
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
refresh() {
|
|
92
|
-
setTimeout(() => {
|
|
93
|
-
this.createIframeWrapper();
|
|
94
|
-
}, 100);
|
|
95
|
-
}
|
|
96
|
-
createIframeWrapper() {
|
|
97
|
-
if (this.vivViewRef) {
|
|
98
|
-
this.clearView();
|
|
99
|
-
if (!this.enablePreview) {
|
|
100
|
-
this.vivViewRef.nativeElement.style.visibility = 'hidden';
|
|
101
|
-
if (this.platform.FIREFOX) {
|
|
102
|
-
this.vivViewRef.nativeElement.setAttribute('style', 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0');
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
this.vivViewRef.nativeElement.setAttribute('style', 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0');
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
this.iframeEl = document.createElement('iframe');
|
|
109
|
-
this.iframeEl.height = this.height + '';
|
|
110
|
-
this.iframeEl.width = this.width + '';
|
|
111
|
-
this.iframeEl.style.border = '1px solid #ccc';
|
|
112
|
-
this.iframeEl.style.background = '#fff';
|
|
113
|
-
const template = `
|
|
114
|
-
<!DOCTYPE html>
|
|
115
|
-
<html data-vivliostyle-paginated="true">
|
|
116
|
-
<head>
|
|
117
|
-
<meta charset="utf-8" />
|
|
118
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
119
|
-
<base href="/" />
|
|
120
|
-
<title>${this.printTitle}</title>
|
|
121
|
-
<style>
|
|
122
|
-
html[data-vivliostyle-paginated] {
|
|
123
|
-
width: 100%;
|
|
124
|
-
height: 100%;
|
|
125
|
-
}
|
|
126
|
-
html[data-vivliostyle-paginated] body,
|
|
127
|
-
html[data-vivliostyle-paginated] [data-vivliostyle-viewer-viewport] {
|
|
128
|
-
width: 100% !important;
|
|
129
|
-
height: 100% !important;
|
|
130
|
-
background: #fff;
|
|
131
|
-
}
|
|
132
|
-
html[data-vivliostyle-paginated],
|
|
133
|
-
html[data-vivliostyle-paginated] body {
|
|
134
|
-
margin: 0;
|
|
135
|
-
padding: 0;
|
|
136
|
-
}
|
|
137
|
-
</style>
|
|
138
|
-
<style id="vivliostyle-page-rules"></style>
|
|
139
|
-
</head>
|
|
140
|
-
<body>
|
|
141
|
-
<div id="vivliostyle-viewer-viewport"></div>
|
|
142
|
-
</body>
|
|
143
|
-
</html>
|
|
144
|
-
`;
|
|
145
|
-
this.iframeEl.srcdoc = template;
|
|
146
|
-
this.vivViewRef.nativeElement.appendChild(this.iframeEl);
|
|
147
|
-
this.iframeEl.contentWindow.onbeforeprint = () => {
|
|
148
|
-
this.iframeEl.contentWindow.parent.document.title = this.printTitle;
|
|
149
|
-
};
|
|
150
|
-
this.iframeEl.contentWindow.onafterprint = () => {
|
|
151
|
-
this.iframeEl.contentWindow.parent.document.title = this._title;
|
|
152
|
-
};
|
|
153
|
-
this.createVivViewer();
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
createVivViewer() {
|
|
157
|
-
this.iframeEl.onload = () => {
|
|
158
|
-
const els = this._printElQueryList.toArray();
|
|
159
|
-
const templates = this.getVivTemplates(els);
|
|
160
|
-
const options = [];
|
|
161
|
-
templates.forEach((template) => {
|
|
162
|
-
const docBlob = new Blob([template], {
|
|
163
|
-
type: 'text/html',
|
|
164
|
-
});
|
|
165
|
-
const docURL = URL.createObjectURL(docBlob);
|
|
166
|
-
options.push({ url: docURL });
|
|
167
|
-
});
|
|
168
|
-
this.viewer = new CoreViewer({
|
|
169
|
-
viewportElement: this.iframeEl.contentWindow?.document.body
|
|
170
|
-
.firstElementChild,
|
|
171
|
-
}, {
|
|
172
|
-
pageViewMode: PageViewMode.SINGLE_PAGE,
|
|
173
|
-
pixelRatio: this.pixelRatio,
|
|
174
|
-
});
|
|
175
|
-
this.viewer.loadDocument(options);
|
|
176
|
-
this.createListener(this.viewer);
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
createListener(viewer) {
|
|
180
|
-
viewer.addListener('error', this.handleError);
|
|
181
|
-
viewer.addListener('readystatechange', this.handleReadyStateChange);
|
|
182
|
-
viewer.addListener('loaded', this.handleLoaded);
|
|
183
|
-
viewer.addListener('hyperlink', this.handleHyperlink);
|
|
184
|
-
viewer.addListener('nav', this.handleNavigation);
|
|
185
|
-
}
|
|
186
|
-
removeListeners(viewer) {
|
|
187
|
-
viewer.removeListener('error', this.handleError);
|
|
188
|
-
viewer.removeListener('readystatechange', this.handleReadyStateChange);
|
|
189
|
-
viewer.removeListener('loaded', this.handleLoaded);
|
|
190
|
-
viewer.removeListener('hyperlink', this.handleHyperlink);
|
|
191
|
-
viewer.removeListener('nav', this.handleNavigation);
|
|
192
|
-
}
|
|
193
|
-
getStyles(identifierStr) {
|
|
194
|
-
const stylesArray = [];
|
|
195
|
-
const styleElements = document.getElementsByTagName('style');
|
|
196
|
-
const length = styleElements.length;
|
|
197
|
-
let identifiers = [];
|
|
198
|
-
if (Array.isArray(identifierStr)) {
|
|
199
|
-
identifiers = [...identifierStr];
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
identifiers = [identifierStr];
|
|
203
|
-
}
|
|
204
|
-
for (let index = 0; index < length; index++) {
|
|
205
|
-
identifiers.forEach((s) => {
|
|
206
|
-
if (styleElements[index].outerHTML.includes(s)) {
|
|
207
|
-
const formateStr = styleElements[index].outerHTML.replace(/\/\*[\s\S]*?\*\//g, '');
|
|
208
|
-
stylesArray.push(formateStr);
|
|
209
|
-
}
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
return stylesArray.join('\r\n');
|
|
213
|
-
}
|
|
214
|
-
getVivTemplates(directives) {
|
|
215
|
-
const templates = [];
|
|
216
|
-
directives.forEach((d) => {
|
|
217
|
-
let styles = '';
|
|
218
|
-
if (d.identifierStr || d.identifierStr.length > 0) {
|
|
219
|
-
styles = this.getStyles(d.identifierStr);
|
|
220
|
-
}
|
|
221
|
-
let html = `
|
|
222
|
-
<!DOCTYPE html>
|
|
223
|
-
<html>
|
|
224
|
-
<head>
|
|
225
|
-
<meta charset="utf-8" />
|
|
226
|
-
<title>${this.printTitle}</title>
|
|
227
|
-
<base href="/" />
|
|
228
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
229
|
-
${d.customStyle}
|
|
230
|
-
${styles}
|
|
231
|
-
</head>
|
|
232
|
-
<body>
|
|
233
|
-
${d.elementRef.nativeElement.outerHTML}
|
|
234
|
-
</body>
|
|
235
|
-
</html>
|
|
236
|
-
`;
|
|
237
|
-
html = html.replace(/<!---->/g, ' ');
|
|
238
|
-
templates.push(html);
|
|
239
|
-
});
|
|
240
|
-
return templates;
|
|
241
|
-
}
|
|
242
|
-
clearView() {
|
|
243
|
-
if (this.viewer) {
|
|
244
|
-
this.removeListeners(this.viewer);
|
|
245
|
-
}
|
|
246
|
-
this.vivViewRef.nativeElement.innerHTML = '';
|
|
247
|
-
this.viewer = undefined;
|
|
248
|
-
this._isRenderComplete = false;
|
|
249
|
-
}
|
|
250
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintVComponent, deps: [{ token: i1.Platform }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
251
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NzxPrintVComponent, 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: `
|
|
252
|
-
<ng-content select="[nzxPrintHeader]"></ng-content>
|
|
253
|
-
|
|
254
|
-
<div #vivView [ngStyle]="{ margin: '10px 0' }"></div>
|
|
255
|
-
|
|
256
|
-
<div nz-row nzJustify="end" *ngIf="enablePreview">
|
|
257
|
-
<ng-template #totalTemplate let-total>共 {{ total }} 页</ng-template>
|
|
258
|
-
<nz-pagination
|
|
259
|
-
[nzPageIndex]="1"
|
|
260
|
-
[nzTotal]="pageTotal"
|
|
261
|
-
[nzPageSize]="1"
|
|
262
|
-
[nzSize]="'small'"
|
|
263
|
-
[nzShowTotal]="totalTemplate"
|
|
264
|
-
nzShowQuickJumper
|
|
265
|
-
(nzPageIndexChange)="onPageIndexChange($event)"
|
|
266
|
-
></nz-pagination>
|
|
267
|
-
</div>
|
|
268
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { 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"] }] }); }
|
|
269
|
-
}
|
|
270
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintVComponent, decorators: [{
|
|
271
|
-
type: Component,
|
|
272
|
-
args: [{
|
|
273
|
-
selector: 'nzx-print-v',
|
|
274
|
-
template: `
|
|
275
|
-
<ng-content select="[nzxPrintHeader]"></ng-content>
|
|
276
|
-
|
|
277
|
-
<div #vivView [ngStyle]="{ margin: '10px 0' }"></div>
|
|
278
|
-
|
|
279
|
-
<div nz-row nzJustify="end" *ngIf="enablePreview">
|
|
280
|
-
<ng-template #totalTemplate let-total>共 {{ total }} 页</ng-template>
|
|
281
|
-
<nz-pagination
|
|
282
|
-
[nzPageIndex]="1"
|
|
283
|
-
[nzTotal]="pageTotal"
|
|
284
|
-
[nzPageSize]="1"
|
|
285
|
-
[nzSize]="'small'"
|
|
286
|
-
[nzShowTotal]="totalTemplate"
|
|
287
|
-
nzShowQuickJumper
|
|
288
|
-
(nzPageIndexChange)="onPageIndexChange($event)"
|
|
289
|
-
></nz-pagination>
|
|
290
|
-
</div>
|
|
291
|
-
`,
|
|
292
|
-
}]
|
|
293
|
-
}], ctorParameters: () => [{ type: i1.Platform }, { type: i0.ChangeDetectorRef }], propDecorators: { printTitle: [{
|
|
294
|
-
type: Input
|
|
295
|
-
}], width: [{
|
|
296
|
-
type: Input
|
|
297
|
-
}], height: [{
|
|
298
|
-
type: Input
|
|
299
|
-
}], enablePreview: [{
|
|
300
|
-
type: Input
|
|
301
|
-
}], pixelRatio: [{
|
|
302
|
-
type: Input
|
|
303
|
-
}], pageRenderComplete: [{
|
|
304
|
-
type: Output
|
|
305
|
-
}], vivViewRef: [{
|
|
306
|
-
type: ViewChild,
|
|
307
|
-
args: ['vivView']
|
|
308
|
-
}], _printElQueryList: [{
|
|
309
|
-
type: ContentChildren,
|
|
310
|
-
args: [NzxPrintContentDirective]
|
|
311
|
-
}] } });
|
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnp4LXByaW50LXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9wcmludC9uengtcHJpbnQtdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksR0FHYixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7QUFFekU7O0dBRUc7QUFzQkgsTUFBTSxPQUFPLGtCQUFrQjtJQXVCN0IsWUFBb0IsUUFBa0IsRUFBVSxFQUFxQjtRQUFqRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUF0QjVELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDNUI7O1dBRUc7UUFDTSxVQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ1osV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRzNELGNBQVMsR0FBRyxDQUFDLENBQUM7UUFPTixXQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUV4QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFvSTFCLGdCQUFXLEdBQUcsQ0FBQyxPQUFnQixFQUFFLEVBQUU7WUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDO1FBRU0sMkJBQXNCLEdBQUcsQ0FBQyxPQUFnQixFQUFFLEVBQUU7WUFDcEQsSUFBSSxDQUFD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QUM7SUFDakMsQ0FBQzsrR0F2UlUsa0JBQWtCO21HQUFsQixrQkFBa0IsOFFBaUJaLHdCQUF3QixvSUFwQy9COzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVDs7NEZBRVUsa0JBQWtCO2tCQXJCOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVDtpQkFDRjs2R0FFVSxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFNQyxVQUFVO3NCQURqQixTQUFTO3VCQUFDLFNBQVM7Z0JBSVosaUJBQWlCO3NCQUR4QixlQUFlO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7XG4gIENvcmVWaWV3ZXIsXG4gIE5hdmlnYXRpb24sXG4gIFBhZ2VWaWV3TW9kZSxcbiAgUGF5bG9hZCxcbiAgU2luZ2xlRG9jdW1lbnRPcHRpb25zLFxufSBmcm9tICdAdml2bGlvc3R5bGUvY29yZSc7XG5pbXBvcnQgeyBOenhQcmludENvbnRlbnREaXJlY3RpdmUgfSBmcm9tICcuL256eC1wcmludC1jb250ZW50LmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogVml2bGlvc3R5bGUg5omT5Y2wXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ256eC1wcmludC12JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbnp4UHJpbnRIZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgPGRpdiAjdml2VmlldyBbbmdTdHlsZV09XCJ7IG1hcmdpbjogJzEwcHggMCcgfVwiPjwvZGl2PlxuXG4gICAgPGRpdiBuei1yb3cgbnpKdXN0aWZ5PVwiZW5kXCIgKm5nSWY9XCJlbmFibGVQcmV2aWV3XCI+XG4gICAgICA8bmctdGVtcGxhdGUgI3RvdGFsVGVtcGxhdGUgbGV0LXRvdGFsPuWFsSB7eyB0b3RhbCB9fSDpobU8L25nLXRlbXBsYXRlPlxuICAgICAgPG56LXBhZ2luYXRpb25cbiAgICAgICAgW256UGFnZUluZGV4XT1cIjFcIlxuICAgICAgICBbbnpUb3RhbF09XCJwYWdlVG90YWxcIlxuICAgICAgICBbbnpQYWdlU2l6ZV09XCIxXCJcbiAgICAgICAgW256U2l6ZV09XCInc21hbGwnXCJcbiAgICAgICAgW256U2hvd1RvdGFsXT1cInRvdGFsVGVtcGxhdGVcIlxuICAgICAgICBuelNob3dRdWlja0p1bXBlclxuICAgICAgICAobnpQYWdlSW5kZXhDaGFuZ2UpPVwib25QYWdlSW5kZXhDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+PC9uei1wYWdpbmF0aW9uPlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBOenhQcmludFZDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBwcmludFRpdGxlID0gJ3BkZic7XG4gIC8qKlxuICAgKiBhNCA3OTRweDExMjNweFxuICAgKi9cbiAgQElucHV0KCkgd2lkdGggPSA4MTQ7XG4gIEBJbnB1dCgpIGhlaWdodCA9IDExNDM7XG4gIEBJbnB1dCgpIGVuYWJsZVByZXZpZXcgPSB0cnVlO1xuICBASW5wdXQoKSBwaXhlbFJhdGlvID0gODtcbiAgQE91dHB1dCgpIHBhZ2VSZW5kZXJDb21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICB2aWV3ZXI6IENvcmVWaWV3ZXIgfCB1bmRlZmluZWQ7XG4gIHBhZ2VUb3RhbCA9IDA7XG5cbiAgQFZpZXdDaGlsZCgndml2VmlldycpXG4gIHByaXZhdGUgdml2Vmlld1JlZiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTnp4UHJpbnRDb250ZW50RGlyZWN0aXZlKVxuICBwcml2YXRlIF9wcmludEVsUXVlcnlMaXN0ITogUXVlcnlMaXN0PE56eFByaW50Q29udGVudERpcmVjdGl2ZT47XG4gIHByaXZhdGUgX3RpdGxlID0gZG9jdW1lbnQudGl0bGU7XG4gIHByaXZhdGUgaWZyYW1lRWwhOiBIVE1MSUZyYW1lRWxlbWVudDtcbiAgcHJpdmF0ZSBfaXNSZW5kZXJDb21wbGV0ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNyZWF0ZUlmcmFtZVdyYXBwZXIoKTtcbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpZXdlcikge1xuICAgICAgdGhpcy5jbGVhclZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBvblBhZ2VJbmRleENoYW5nZShudW06IG51bWJlcikge1xuICAgIGlmICh0aGlzLnZpZXdlcikge1xuICAgICAgdGhpcy52aWV3ZXIubmF2aWdhdGVUb1BhZ2UoTmF2aWdhdGlvbi5FUEFHRSwgbnVtIC0gMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpbnQoKSB7XG4gICAgaWYgKHRoaXMuX2lzUmVuZGVyQ29tcGxldGUpIHtcbiAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdyEucHJpbnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdyZW5kaW5nLi4uJyk7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY3JlYXRlSWZyYW1lV3JhcHBlcigpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUlmcmFtZVdyYXBwZXIoKSB7XG4gICAgaWYgKHRoaXMudml2Vmlld1JlZikge1xuICAgICAgdGhpcy5jbGVhclZpZXcoKTtcbiAgICAgIGlmICghdGhpcy5lbmFibGVQcmV2aWV3KSB7XG4gICAgICAgIHRoaXMudml2Vmlld1JlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgaWYgKHRoaXMucGxhdGZvcm0uRklSRUZPWCkge1xuICAgICAgICAgIHRoaXMudml2Vmlld1JlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICdzdHlsZScsXG4gICAgICAgICAgICAnd2lkdGg6IDFweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGZpeGVkOyBsZWZ0OiAwOyB0b3A6IDA7IG9wYWNpdHk6IDA7IGJvcmRlci13aWR0aDogMDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwJ1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aXZWaWV3UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgICAgICd2aXNpYmlsaXR5OiBoaWRkZW47IGhlaWdodDogMDsgd2lkdGg6IDA7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm9yZGVyOiAwJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5pZnJhbWVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgICAgdGhpcy5pZnJhbWVFbC5oZWlnaHQgPSB0aGlzLmhlaWdodCArICcnO1xuICAgICAgdGhpcy5pZnJhbWVFbC53aWR0aCA9IHRoaXMud2lkdGggKyAnJztcbiAgICAgIHRoaXMuaWZyYW1lRWwuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCAjY2NjJztcbiAgICAgIHRoaXMuaWZyYW1lRWwuc3R5bGUuYmFja2dyb3VuZCA9ICcjZmZmJztcblxuICAgICAgY29uc3QgdGVtcGxhdGUgPSBgXG4gICAgICAgIDwhRE9DVFlQRSBodG1sPlxuICAgICAgICA8aHRtbCBkYXRhLXZpdmxpb3N0eWxlLXBhZ2luYXRlZD1cInRydWVcIj5cbiAgICAgICAgICA8aGVhZD5cbiAgICAgICAgICAgIDxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiIC8+XG4gICAgICAgICAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMFwiIC8+XG4gICAgICAgICAgICA8YmFzZSBocmVmPVwiL1wiIC8+XG4gICAgICAgICAgICA8dGl0bGU+JHt0aGlzLnByaW50VGl0bGV9PC90aXRsZT5cbiAgICAgICAgICAgIDxzdHlsZT5cbiAgICAgICAgICAgICAgaHRtbFtkYXRhLXZpdmxpb3N0eWxlLXBhZ2luYXRlZF0ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBodG1sW2RhdGEtdml2bGlvc3R5bGUtcGFnaW5hdGVkXSBib2R5LFxuICAgICAgICAgICAgICBodG1sW2RhdGEtdml2bGlvc3R5bGUtcGFnaW5hdGVkXSBbZGF0YS12aXZsaW9zdHlsZS12aWV3ZXItdmlld3BvcnRdIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaHRtbFtkYXRhLXZpdmxpb3N0eWxlLXBhZ2luYXRlZF0sXG4gICAgICAgICAgICAgIGh0bWxbZGF0YS12aXZsaW9zdHlsZS1wYWdpbmF0ZWRdIGJvZHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3N0eWxlPlxuICAgICAgICAgICAgPHN0eWxlIGlkPVwidml2bGlvc3R5bGUtcGFnZS1ydWxlc1wiPjwvc3R5bGU+XG4gICAgICAgICAgPC9oZWFkPlxuICAgICAgICAgIDxib2R5PlxuICAgICAgICAgICAgPGRpdiBpZD1cInZpdmxpb3N0eWxlLXZpZXdlci12aWV3cG9ydFwiPjwvZGl2PlxuICAgICAgICAgIDwvYm9keT5cbiAgICAgICAgPC9odG1sPlxuICAgICAgYDtcblxuICAgICAgdGhpcy5pZnJhbWVFbC5zcmNkb2MgPSB0ZW1wbGF0ZTtcbiAgICAgIHRoaXMudml2Vmlld1JlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuaWZyYW1lRWwpO1xuICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93IS5vbmJlZm9yZXByaW50ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3chLnBhcmVudC5kb2N1bWVudC50aXRsZSA9IHRoaXMucHJpbnRUaXRsZTtcbiAgICAgIH07XG4gICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3chLm9uYWZ0ZXJwcmludCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93IS5wYXJlbnQuZG9jdW1lbnQudGl0bGUgPSB0aGlzLl90aXRsZTtcbiAgICAgIH07XG4gICAgICB0aGlzLmNyZWF0ZVZpdlZpZXdlcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVml2Vmlld2VyKCkge1xuICAgIHRoaXMuaWZyYW1lRWwub25sb2FkID0gKCkgPT4ge1xuICAgICAgY29uc3QgZWxzOiBOenhQcmludENvbnRlbnREaXJlY3RpdmVbXSA9IHRoaXMuX3ByaW50RWxRdWVyeUxpc3QudG9BcnJheSgpO1xuICAgICAgY29uc3QgdGVtcGxhdGVzID0gdGhpcy5nZXRWaXZUZW1wbGF0ZXMoZWxzKTtcbiAgICAgIGNvbnN0IG9wdGlvbnM6IFNpbmdsZURvY3VtZW50T3B0aW9uc1tdID0gW107XG4gICAgICB0ZW1wbGF0ZXMuZm9yRWFjaCgodGVtcGxhdGUpID0+IHtcbiAgICAgICAgY29uc3QgZG9jQmxvYiA9IG5ldyBCbG9iKFt0ZW1wbGF0ZV0sIHtcbiAgICAgICAgICB0eXBlOiAndGV4dC9odG1sJyxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGRvY1VSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZG9jQmxvYik7XG4gICAgICAgIG9wdGlvbnMucHVzaCh7IHVybDogZG9jVVJMIH0pO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnZpZXdlciA9IG5ldyBDb3JlVmlld2VyKFxuICAgICAgICB7XG4gICAgICAgICAgdmlld3BvcnRFbGVtZW50OiB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3c/LmRvY3VtZW50LmJvZHlcbiAgICAgICAgICAgIC5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhZ2VWaWV3TW9kZTogUGFnZVZpZXdNb2RlLlNJTkdMRV9QQUdFLFxuICAgICAgICAgIHBpeGVsUmF0aW86IHRoaXMucGl4ZWxSYXRpbyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHRoaXMudmlld2VyLmxvYWREb2N1bWVudChvcHRpb25zKTtcbiAgICAgIHRoaXMuY3JlYXRlTGlzdGVuZXIodGhpcy52aWV3ZXIpO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yID0gKHBheWxvYWQ6IFBheWxvYWQpID0+IHtcbiAgICBjb25zb2xlLmxvZygnZXJyb3I6OicsIHBheWxvYWQpO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlUmVhZHlTdGF0ZUNoYW5nZSA9IChwYXlsb2FkOiBQYXlsb2FkKSA9PiB7XG4gICAgdGhpcy5faXNSZW5kZXJDb21wbGV0ZSA9IGZhbHNlO1xuICAgIHRoaXMucGFnZVJlbmRlckNvbXBsZXRlLmVtaXQoZmFsc2UpO1xuICAgIGlmICh0aGlzLnZpZXdlciAmJiB0aGlzLnZpZXdlci5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICBjb25zdCBpbnRlcnZhbFRhZyA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuaWZyYW1lRWwgJiZcbiAgICAgICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cgJiZcbiAgICAgICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgaW1hZ2VzID1cbiAgICAgICAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW1nJyk7XG5cbiAgICAgICAgICBsZXQgYWxsSW1hZ2VzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGltYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFpbWFnZXNbaV0uY29tcGxldGUpIHtcbiAgICAgICAgICAgICAgYWxsSW1hZ2VzTG9hZGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYWxsSW1hZ2VzTG9hZGVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQWxsIGltYWdlcyBpbiBpZnJhbWUgbG9hZGVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgdGhpcy5wYWdlUmVuZGVyQ29tcGxldGUuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuX2lzUmVuZGVyQ29tcGxldGUgPSB0cnVlO1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbFRhZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCAxMDAwKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBoYW5kbGVIeXBlcmxpbmsgPSAocGF5bG9hZDogUGF5bG9hZCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKCdoYW5kbGVIeXBlcmxpbms6OicsIHBheWxvYWQpO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlTG9hZGVkID0gKHBheWxvYWQ6IFBheWxvYWQpID0+IHtcbiAgICBjb25zb2xlLmxvZygnaGFuZGxlTG9hZGVkOjonLCBwYXlsb2FkKTtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZU5hdmlnYXRpb24gPSAocGF5bG9hZDogUGF5bG9hZCkgPT4ge1xuICAgIHRoaXMucGFnZVRvdGFsID0gcGF5bG9hZC5lcGFnZUNvdW50O1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBjcmVhdGVMaXN0ZW5lcih2aWV3ZXI6IENvcmVWaWV3ZXIpIHtcbiAgICB2aWV3ZXIuYWRkTGlzdGVuZXIoJ2Vycm9yJywgdGhpcy5oYW5kbGVFcnJvcik7XG4gICAgdmlld2VyLmFkZExpc3RlbmVyKCdyZWFkeXN0YXRlY2hhbmdlJywgdGhpcy5oYW5kbGVSZWFkeVN0YXRlQ2hhbmdlKTtcbiAgICB2aWV3ZXIuYWRkTGlzdGVuZXIoJ2xvYWRlZCcsIHRoaXMuaGFuZGxlTG9hZGVkKTtcbiAgICB2aWV3ZXIuYWRkTGlzdGVuZXIoJ2h5cGVybGluaycsIHRoaXMuaGFuZGxlSHlwZXJsaW5rKTtcbiAgICB2aWV3ZXIuYWRkTGlzdGVuZXIoJ25hdicsIHRoaXMuaGFuZGxlTmF2aWdhdGlvbik7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUxpc3RlbmVycyh2aWV3ZXI6IENvcmVWaWV3ZXIpIHtcbiAgICB2aWV3ZXIucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgdGhpcy5oYW5kbGVFcnJvcik7XG4gICAgdmlld2VyLnJlbW92ZUxpc3RlbmVyKCdyZWFkeXN0YXRlY2hhbmdlJywgdGhpcy5oYW5kbGVSZWFkeVN0YXRlQ2hhbmdlKTtcbiAgICB2aWV3ZXIucmVtb3ZlTGlzdGVuZXIoJ2xvYWRlZCcsIHRoaXMuaGFuZGxlTG9hZGVkKTtcbiAgICB2aWV3ZXIucmVtb3ZlTGlzdGVuZXIoJ2h5cGVybGluaycsIHRoaXMuaGFuZGxlSHlwZXJsaW5rKTtcbiAgICB2aWV3ZXIucmVtb3ZlTGlzdGVuZXIoJ25hdicsIHRoaXMuaGFuZGxlTmF2aWdhdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGdldFN0eWxlcyhpZGVudGlmaWVyU3RyOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3R5bGVzQXJyYXk6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgc3R5bGVFbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzdHlsZScpO1xuICAgIGNvbnN0IGxlbmd0aCA9IHN0eWxlRWxlbWVudHMubGVuZ3RoO1xuICAgIGxldCBpZGVudGlmaWVyczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpZGVudGlmaWVyU3RyKSkge1xuICAgICAgaWRlbnRpZmllcnMgPSBbLi4uaWRlbnRpZmllclN0cl07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlkZW50aWZpZXJzID0gW2lkZW50aWZpZXJTdHJdO1xuICAgIH1cbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBpZGVudGlmaWVycy5mb3JFYWNoKChzKSA9PiB7XG4gICAgICAgIGlmIChzdHlsZUVsZW1lbnRzW2luZGV4XS5vdXRlckhUTUwuaW5jbHVkZXMocykpIHtcbiAgICAgICAgICBjb25zdCBmb3JtYXRlU3RyID0gc3R5bGVFbGVtZW50c1tpbmRleF0ub3V0ZXJIVE1MLnJlcGxhY2UoXG4gICAgICAgICAgICAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nLFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApO1xuICAgICAgICAgIHN0eWxlc0FycmF5LnB1c2goZm9ybWF0ZVN0cik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc3R5bGVzQXJyYXkuam9pbignXFxyXFxuJyk7XG4gIH1cblxuICBwcml2YXRlIGdldFZpdlRlbXBsYXRlcyhkaXJlY3RpdmVzOiBOenhQcmludENvbnRlbnREaXJlY3RpdmVbXSkge1xuICAgIGNvbnN0IHRlbXBsYXRlczogc3RyaW5nW10gPSBbXTtcbiAgICBkaXJlY3RpdmVzLmZvckVhY2goKGQpID0+IHtcbiAgICAgIGxldCBzdHlsZXMgPSAnJztcbiAgICAgIGlmIChkLmlkZW50aWZpZXJTdHIgfHwgZC5pZGVudGlmaWVyU3RyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgc3R5bGVzID0gdGhpcy5nZXRTdHlsZXMoZC5pZGVudGlmaWVyU3RyKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGh0bWwgPSBgXG4gICAgICAgICAgPCFET0NUWVBFIGh0bWw+XG4gICAgICAgICAgPGh0bWw+XG4gICAgICAgICAgICA8aGVhZD5cbiAgICAgICAgICAgIDxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiIC8+XG4gICAgICAgICAgICA8dGl0bGU+JHt0aGlzLnByaW50VGl0bGV9PC90aXRsZT5cbiAgICAgICAgICAgIDxiYXNlIGhyZWY9XCIvXCIgLz5cbiAgICAgICAgICAgIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MVwiIC8+XG4gICAgICAgICAgICAgJHtkLmN1c3RvbVN0eWxlfVxuICAgICAgICAgICAgICR7c3R5bGVzfVxuICAgICAgICAgICAgPC9oZWFkPlxuICAgICAgICAgICAgPGJvZHk+XG4gICAgICAgICAgICAgICR7ZC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub3V0ZXJIVE1MfVxuICAgICAgICAgICAgPC9ib2R5PlxuICAgICAgICAgIDwvaHRtbD5cbiAgICAgICAgYDtcbiAgICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoLzwhLS0tLT4vZywgJyAnKTtcbiAgICAgIHRlbXBsYXRlcy5wdXNoKGh0bWwpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRlbXBsYXRlcztcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJWaWV3KCkge1xuICAgIGlmICh0aGlzLnZpZXdlcikge1xuICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnModGhpcy52aWV3ZXIpO1xuICAgIH1cbiAgICB0aGlzLnZpdlZpZXdSZWYubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSAnJztcbiAgICB0aGlzLnZpZXdlciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9pc1JlbmRlckNvbXBsZXRlID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Component, ContentChild, ElementRef, Inject, Input, ViewChild, } from '@angular/core';
|
|
3
|
-
import { getElementByTag } from 'ng-zorro-antd-extension/util';
|
|
4
|
-
import { NzxPrintContentDirective } from './nzx-print-content.directive';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/cdk/platform";
|
|
7
|
-
/**
|
|
8
|
-
* 使用Paged.js打印
|
|
9
|
-
*/
|
|
10
|
-
export class NzxPrintComponent {
|
|
11
|
-
constructor(platform, document) {
|
|
12
|
-
this.platform = platform;
|
|
13
|
-
this.document = document;
|
|
14
|
-
this.printTitle = 'pdf';
|
|
15
|
-
/**
|
|
16
|
-
* a4 794px1123px
|
|
17
|
-
*/
|
|
18
|
-
this.width = 814;
|
|
19
|
-
this.height = 1143;
|
|
20
|
-
this.enablePreview = true;
|
|
21
|
-
this.identifierStr = '';
|
|
22
|
-
this.pagedCDN = '';
|
|
23
|
-
this._title = this.document.title;
|
|
24
|
-
this.afterPrint = () => {
|
|
25
|
-
this.iframeEl.contentWindow.parent.document.title = this._title;
|
|
26
|
-
};
|
|
27
|
-
this.beforePrint = () => {
|
|
28
|
-
this.iframeEl.contentWindow.parent.document.title = this.printTitle;
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
ngOnInit() {
|
|
32
|
-
if (!this.pagedCDN) {
|
|
33
|
-
throw new Error('pagedCDN is required');
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
ngAfterViewInit() {
|
|
37
|
-
this.render();
|
|
38
|
-
}
|
|
39
|
-
print() {
|
|
40
|
-
if (this.iframeEl.contentWindow) {
|
|
41
|
-
this.iframeEl.contentWindow.focus();
|
|
42
|
-
this.iframeEl.contentWindow.print();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
refresh() {
|
|
46
|
-
setTimeout(() => {
|
|
47
|
-
this.render();
|
|
48
|
-
}, 100);
|
|
49
|
-
}
|
|
50
|
-
render() {
|
|
51
|
-
this.iframeEl = this.document.createElement('iframe');
|
|
52
|
-
this.iframeEl.height = this.height + '';
|
|
53
|
-
this.iframeEl.width = this.width + '';
|
|
54
|
-
this.iframeEl.style.border = '1px solid #ccc';
|
|
55
|
-
this.iframeEl.style.background = '#fff';
|
|
56
|
-
if (!this.enablePreview) {
|
|
57
|
-
this.iframeEl.style.visibility = 'hidden';
|
|
58
|
-
if (this.platform.FIREFOX) {
|
|
59
|
-
this.iframeEl.setAttribute('style', 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0');
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
this.iframeEl.setAttribute('style', 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0');
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
if (this.containerRef) {
|
|
66
|
-
this.containerRef.nativeElement.innerHTML = '';
|
|
67
|
-
this.containerRef.nativeElement.appendChild(this.iframeEl);
|
|
68
|
-
}
|
|
69
|
-
if (this.iframeEl.contentWindow) {
|
|
70
|
-
this.iframeEl.contentWindow.document.open();
|
|
71
|
-
this.iframeEl.contentWindow.document.write(this.getTemplateStr());
|
|
72
|
-
this.iframeEl.contentWindow.document.close();
|
|
73
|
-
// chorme bug
|
|
74
|
-
this.iframeEl.contentWindow.onbeforeprint = this.beforePrint;
|
|
75
|
-
this.iframeEl.contentWindow.onafterprint = this.afterPrint;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
getTemplateStr() {
|
|
79
|
-
const styles = getElementByTag('style', this.identifierStr);
|
|
80
|
-
const scripts = `
|
|
81
|
-
<script src="${this.pagedCDN}"></script>
|
|
82
|
-
<script>
|
|
83
|
-
class RepeatingTableHeaders extends Paged.Handler {
|
|
84
|
-
constructor(chunker, polisher, caller) {
|
|
85
|
-
super(chunker, polisher, caller);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
afterPageLayout(pageElement, page, breakToken, chunker) {
|
|
89
|
-
let tables = pageElement.querySelectorAll('table[data-split-from]');
|
|
90
|
-
tables.forEach((table) => {
|
|
91
|
-
let ref = table.dataset.ref;
|
|
92
|
-
let sourceTable = chunker.source.querySelector(
|
|
93
|
-
"[data-ref='" + ref + "']"
|
|
94
|
-
);
|
|
95
|
-
let header = sourceTable.querySelector('thead');
|
|
96
|
-
if (header) {
|
|
97
|
-
let clonedHeader = header.cloneNode(true);
|
|
98
|
-
table.insertBefore(clonedHeader, table.firstChild);
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
Paged.registerHandlers(RepeatingTableHeaders);
|
|
104
|
-
</script>
|
|
105
|
-
`;
|
|
106
|
-
let html = `
|
|
107
|
-
<!DOCTYPE html>
|
|
108
|
-
<html>
|
|
109
|
-
<head>
|
|
110
|
-
<meta charset="utf-8" />
|
|
111
|
-
<title>${this.printTitle}</title>
|
|
112
|
-
<base href="/" />
|
|
113
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
114
|
-
<link
|
|
115
|
-
rel="preconnect"
|
|
116
|
-
href="https://winkong-frontend.oss-cn-qingdao.aliyuncs.com"
|
|
117
|
-
/>
|
|
118
|
-
<style>
|
|
119
|
-
::-webkit-scrollbar {
|
|
120
|
-
width: 5px;
|
|
121
|
-
height: 5px;
|
|
122
|
-
}
|
|
123
|
-
::-webkit-scrollbar-thumb {
|
|
124
|
-
background-color: #999;
|
|
125
|
-
-webkit-border-radius: 5px;
|
|
126
|
-
border-radius: 5px;
|
|
127
|
-
}
|
|
128
|
-
::-webkit-scrollbar-thumb:vertical:hover {
|
|
129
|
-
background-color: #666;
|
|
130
|
-
}
|
|
131
|
-
::-webkit-scrollbar-thumb:vertical:active {
|
|
132
|
-
background-color: #666;
|
|
133
|
-
}
|
|
134
|
-
::-webkit-scrollbar-button {
|
|
135
|
-
display: none;
|
|
136
|
-
}
|
|
137
|
-
::-webkit-scrollbar-track {
|
|
138
|
-
background-color: #f1f1f1;
|
|
139
|
-
}
|
|
140
|
-
</style>
|
|
141
|
-
|
|
142
|
-
${styles}
|
|
143
|
-
${scripts}
|
|
144
|
-
</head>
|
|
145
|
-
<body>
|
|
146
|
-
${this._printEl.nativeElement.outerHTML}
|
|
147
|
-
</body>
|
|
148
|
-
</html>
|
|
149
|
-
`;
|
|
150
|
-
html = html.replace(/<!---->/g, ' ');
|
|
151
|
-
return html;
|
|
152
|
-
}
|
|
153
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintComponent, deps: [{ token: i1.Platform }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
154
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NzxPrintComponent, 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: `
|
|
155
|
-
<ng-content select="[nzxPrintHeader]"></ng-content>
|
|
156
|
-
<div #iframeContainer></div>
|
|
157
|
-
`, isInline: true }); }
|
|
158
|
-
}
|
|
159
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintComponent, decorators: [{
|
|
160
|
-
type: Component,
|
|
161
|
-
args: [{
|
|
162
|
-
selector: 'nzx-print',
|
|
163
|
-
template: `
|
|
164
|
-
<ng-content select="[nzxPrintHeader]"></ng-content>
|
|
165
|
-
<div #iframeContainer></div>
|
|
166
|
-
`,
|
|
167
|
-
}]
|
|
168
|
-
}], ctorParameters: () => [{ type: i1.Platform }, { type: Document, decorators: [{
|
|
169
|
-
type: Inject,
|
|
170
|
-
args: [DOCUMENT]
|
|
171
|
-
}] }], propDecorators: { printTitle: [{
|
|
172
|
-
type: Input
|
|
173
|
-
}], width: [{
|
|
174
|
-
type: Input
|
|
175
|
-
}], height: [{
|
|
176
|
-
type: Input
|
|
177
|
-
}], enablePreview: [{
|
|
178
|
-
type: Input
|
|
179
|
-
}], identifierStr: [{
|
|
180
|
-
type: Input
|
|
181
|
-
}], pagedCDN: [{
|
|
182
|
-
type: Input
|
|
183
|
-
}], containerRef: [{
|
|
184
|
-
type: ViewChild,
|
|
185
|
-
args: ['iframeContainer', { read: ElementRef, static: true }]
|
|
186
|
-
}], _printEl: [{
|
|
187
|
-
type: ContentChild,
|
|
188
|
-
args: [NzxPrintContentDirective, { read: ElementRef, static: true }]
|
|
189
|
-
}] } });
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnp4LXByaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcHJpbnQvbnp4LXByaW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBRXpFOztHQUVHO0FBUUgsTUFBTSxPQUFPLGlCQUFpQjtJQTBCNUIsWUFDVSxRQUFrQixFQUNBLFFBQWtCO1FBRHBDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDQSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBM0JyQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzVCOztXQUVHO1FBQ00sVUFBSyxHQUFHLEdBQUcsQ0FBQztRQUNaLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixrQkFBYSxHQUFzQixFQUFFLENBQUM7UUFDdEMsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQVFmLFdBQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUU3QixlQUFVLEdBQUcsR0FBRyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDbkUsQ0FBQyxDQUFDO1FBQ00sZ0JBQVcsR0FBRyxHQUFHLEVBQUU7WUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFjLENBQUMsTUFBTSxDQUFD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dWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldEVsZW1lbnRCeVRhZyB9IGZyb20gJ25nLXpvcnJvLWFudGQtZXh0ZW5zaW9uL3V0aWwnO1xuaW1wb3J0IHsgTnp4UHJpbnRDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9uengtcHJpbnQtY29udGVudC5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIOS9v+eUqFBhZ2VkLmpz5omT5Y2wXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ256eC1wcmludCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW256eFByaW50SGVhZGVyXVwiPjwvbmctY29udGVudD5cbiAgICA8ZGl2ICNpZnJhbWVDb250YWluZXI+PC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIE56eFByaW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgcHJpbnRUaXRsZSA9ICdwZGYnO1xuICAvKipcbiAgICogYTQgNzk0cHgxMTIzcHhcbiAgICovXG4gIEBJbnB1dCgpIHdpZHRoID0gODE0O1xuICBASW5wdXQoKSBoZWlnaHQgPSAxMTQzO1xuICBASW5wdXQoKSBlbmFibGVQcmV2aWV3ID0gdHJ1ZTtcbiAgQElucHV0KCkgaWRlbnRpZmllclN0cjogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcbiAgQElucHV0KCkgcGFnZWRDRE4gPSAnJztcblxuICBAVmlld0NoaWxkKCdpZnJhbWVDb250YWluZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIGNvbnRhaW5lclJlZiE6IEVsZW1lbnRSZWY7XG5cbiAgQENvbnRlbnRDaGlsZChOenhQcmludENvbnRlbnREaXJlY3RpdmUsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgX3ByaW50RWwhOiBFbGVtZW50UmVmO1xuICBwcml2YXRlIGlmcmFtZUVsITogSFRNTElGcmFtZUVsZW1lbnQ7XG4gIHByaXZhdGUgX3RpdGxlID0gdGhpcy5kb2N1bWVudC50aXRsZTtcblxuICBwcml2YXRlIGFmdGVyUHJpbnQgPSAoKSA9PiB7XG4gICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93IS5wYXJlbnQuZG9jdW1lbnQudGl0bGUgPSB0aGlzLl90aXRsZTtcbiAgfTtcbiAgcHJpdmF0ZSBiZWZvcmVQcmludCA9ICgpID0+IHtcbiAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3chLnBhcmVudC5kb2N1bWVudC50aXRsZSA9IHRoaXMucHJpbnRUaXRsZTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBhZ2VkQ0ROKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhZ2VkQ0ROIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICBwcmludCgpIHtcbiAgICBpZiAodGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93KSB7XG4gICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cuZm9jdXMoKTtcbiAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdy5wcmludCgpO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcigpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlcigpIHtcbiAgICB0aGlzLmlmcmFtZUVsID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgICB0aGlzLmlmcmFtZUVsLmhlaWdodCA9IHRoaXMuaGVpZ2h0ICsgJyc7XG4gICAgdGhpcy5pZnJhbWVFbC53aWR0aCA9IHRoaXMud2lkdGggKyAnJztcbiAgICB0aGlzLmlmcmFtZUVsLnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgI2NjYyc7XG4gICAgdGhpcy5pZnJhbWVFbC5zdHlsZS5iYWNrZ3JvdW5kID0gJyNmZmYnO1xuXG4gICAgaWYgKCF0aGlzLmVuYWJsZVByZXZpZXcpIHtcbiAgICAgIHRoaXMuaWZyYW1lRWwuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgaWYgKHRoaXMucGxhdGZvcm0uRklSRUZPWCkge1xuICAgICAgICB0aGlzLmlmcmFtZUVsLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAnc3R5bGUnLFxuICAgICAgICAgICd3aWR0aDogMXB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogZml4ZWQ7IGxlZnQ6IDA7IHRvcDogMDsgb3BhY2l0eTogMDsgYm9yZGVyLXdpZHRoOiAwOyBtYXJnaW46IDA7IHBhZGRpbmc6IDAnXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmlmcmFtZUVsLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAnc3R5bGUnLFxuICAgICAgICAgICd2aXNpYmlsaXR5OiBoaWRkZW47IGhlaWdodDogMDsgd2lkdGg6IDA7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm9yZGVyOiAwJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5jb250YWluZXJSZWYpIHtcbiAgICAgIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgICB0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuaWZyYW1lRWwpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cpIHtcbiAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdy5kb2N1bWVudC5vcGVuKCk7XG4gICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQud3JpdGUodGhpcy5nZXRUZW1wbGF0ZVN0cigpKTtcbiAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdy5kb2N1bWVudC5jbG9zZSgpO1xuICAgICAgLy8gY2hvcm1lIGJ1Z1xuICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93Lm9uYmVmb3JlcHJpbnQgPSB0aGlzLmJlZm9yZVByaW50O1xuICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93Lm9uYWZ0ZXJwcmludCA9IHRoaXMuYWZ0ZXJQcmludDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFRlbXBsYXRlU3RyKCkge1xuICAgIGNvbnN0IHN0eWxlcyA9IGdldEVsZW1lbnRCeVRhZygnc3R5bGUnLCB0aGlzLmlkZW50aWZpZXJTdHIpO1xuXG4gICAgY29uc3Qgc2NyaXB0cyA9IGBcbiAgICAgICAgPHNjcmlwdCBzcmM9XCIke3RoaXMucGFnZWRDRE59XCI+PC9zY3JpcHQ+XG4gICAgICAgIDxzY3JpcHQ+XG4gICAgICAgICAgY2xhc3MgUmVwZWF0aW5nVGFibGVIZWFkZXJzIGV4dGVuZHMgUGFnZWQuSGFuZGxlciB7XG4gICAgICAgICAgICBjb25zdHJ1Y3RvcihjaHVua2VyLCBwb2xpc2hlciwgY2FsbGVyKSB7XG4gICAgICAgICAgICAgIHN1cGVyKGNodW5rZXIsIHBvbGlzaGVyLCBjYWxsZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhZnRlclBhZ2VMYXlvdXQocGFnZUVsZW1lbnQsIHBhZ2UsIGJyZWFrVG9rZW4sIGNodW5rZXIpIHtcbiAgICAgICAgICAgICAgbGV0IHRhYmxlcyA9IHBhZ2VFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlW2RhdGEtc3BsaXQtZnJvbV0nKTtcbiAgICAgICAgICAgICAgdGFibGVzLmZvckVhY2goKHRhYmxlKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHJlZiA9IHRhYmxlLmRhdGFzZXQucmVmO1xuICAgICAgICAgICAgICAgIGxldCBzb3VyY2VUYWJsZSA9IGNodW5rZXIuc291cmNlLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgICBcIltkYXRhLXJlZj0nXCIgKyByZWYgKyBcIiddXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGxldCBoZWFkZXIgPSBzb3VyY2VUYWJsZS5xdWVyeVNlbGVjdG9yKCd0aGVhZCcpO1xuICAgICAgICAgICAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgICAgICAgICAgIGxldCBjbG9uZWRIZWFkZXIgPSBoZWFkZXIuY2xvbmVOb2RlKHRydWUpO1xuICAgICAgICAgICAgICAgICAgdGFibGUuaW5zZXJ0QmVmb3JlKGNsb25lZEhlYWRlciwgdGFibGUuZmlyc3RDaGlsZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgUGFnZWQucmVnaXN0ZXJIYW5kbGVycyhSZXBlYXRpbmdUYWJsZUhlYWRlcnMpO1xuICAgICAgICA8L3NjcmlwdD5cbiAgICAgIGA7XG5cbiAgICBsZXQgaHRtbCA9IGBcbiAgICAgICAgPCFET0NUWVBFIGh0bWw+XG4gICAgICAgIDxodG1sPlxuICAgICAgICAgIDxoZWFkPlxuICAgICAgICAgIDxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiIC8+XG4gICAgICAgICAgPHRpdGxlPiR7dGhpcy5wcmludFRpdGxlfTwvdGl0bGU+XG4gICAgICAgICAgPGJhc2UgaHJlZj1cIi9cIiAvPlxuICAgICAgICAgIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MVwiIC8+XG4gICAgICAgICAgPGxpbmtcbiAgICAgICAgICAgIHJlbD1cInByZWNvbm5lY3RcIlxuICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd2lua29uZy1mcm9udGVuZC5vc3MtY24tcWluZ2Rhby5hbGl5dW5jcy5jb21cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHN0eWxlPlxuICAgICAgICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogNXB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6dmVydGljYWw6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjY7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjp2ZXJ0aWNhbDphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjY7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3R5bGU+XG5cbiAgICAgICAgICAgICR7c3R5bGVzfVxuICAgICAgICAgICAgJHtzY3JpcHRzfVxuICAgICAgICAgIDwvaGVhZD5cbiAgICAgICAgICA8Ym9keT5cbiAgICAgICAgICAgICR7dGhpcy5fcHJpbnRFbC5uYXRpdmVFbGVtZW50Lm91dGVySFRNTH1cbiAgICAgICAgICA8L2JvZHk+XG4gICAgICAgIDwvaHRtbD5cbiAgICAgIGA7XG4gICAgaHRtbCA9IGh0bWwucmVwbGFjZSgvPCEtLS0tPi9nLCAnICcpO1xuICAgIHJldHVybiBodG1sO1xuICB9XG59XG4iXX0=
|