@xmagic/nz-formly
Version:
基于ng-zorro-antd UI 扩展的ngx-formly组件库
90 lines • 6.47 kB
JavaScript
import { ChangeDetectionStrategy, Component, Optional } from '@angular/core';
import { FieldType } from '@ngx-formly/core';
import { resolveTplName } from '@xmagic/nz-formly/common';
import * as i0 from "@angular/core";
import * as i1 from "@xmagic/nz-formly/common";
import * as i2 from "ng-zorro-antd/core/outlet";
import * as i3 from "@xmagic/nzx-antd/pipe";
/**
* 引用模板,支持HTML,TemplateRef对象,或者NamedTemplate
* @example
*
* 用法1: 使用NamedTemplate(推荐)
*
* html
* ```html
* <formly-form formly-box >
* <ng-template named="test"></ng-template>
* </formly-form>
* ```
*
* 配置
* ```js
* {
* type: 'ref-template',
* props: {
* refName: 'test'
* }
* }
* ```
*
* 用法2:TemplateRef对象
* ```html
* <ng-template #test2></ng-template>
* ```
*
* 配置
* @viewChild('test2') test2: TemplateRef<{}>;
*
* ```js
* {
* type: 'ref-template',
* props: {
* ref: this.test2
* }
* }
* ```
*
* 用法3: 使用html
*
* 配置
* ```js
* {
* type: 'ref-template',
* props: {
* ref: '<div>test text</div>'
* }
* }
* ```
*/
export class FormlyFieldRefTemplateComponent extends FieldType {
fieldTemplates;
constructor(fieldTemplates) {
super();
this.fieldTemplates = fieldTemplates;
}
get ref() {
return resolveTplName(this.props, this.fieldTemplates, 'ref');
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormlyFieldRefTemplateComponent, deps: [{ token: i1.FormlyBoxTemplates, optional: true }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormlyFieldRefTemplateComponent, selector: "nz-formly-ref-template", usesInheritance: true, ngImport: i0, template: `
<ng-container *nzStringTemplateOutlet="ref; context: { $implicit: field, props: props }">
<div [innerHTML]="$any(ref) | trustHtml"></div>
</ng-container>
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { kind: "pipe", type: i3.TrustHtmlPipe, name: "trustHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormlyFieldRefTemplateComponent, decorators: [{
type: Component,
args: [{
selector: 'nz-formly-ref-template',
template: `
<ng-container *nzStringTemplateOutlet="ref; context: { $implicit: field, props: props }">
<div [innerHTML]="$any(ref) | trustHtml"></div>
</ng-container>
`,
changeDetection: ChangeDetectionStrategy.OnPush
}]
}], ctorParameters: () => [{ type: i1.FormlyBoxTemplates, decorators: [{
type: Optional
}] }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmLXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9yZWYtdGVtcGxhdGUvcmVmLXRlbXBsYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFzQixjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFFOUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1ERztBQVVILE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxTQUFTO0lBQzdCO0lBQS9CLFlBQStCLGNBQWtDO1FBQy9ELEtBQUssRUFBRSxDQUFDO1FBRHFCLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjtJQUVqRSxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLENBQUM7d0dBUFUsK0JBQStCOzRGQUEvQiwrQkFBK0IscUZBUGhDOzs7O0dBSVQ7OzRGQUdVLCtCQUErQjtrQkFUM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQUVjLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgRm9ybWx5Qm94VGVtcGxhdGVzLCByZXNvbHZlVHBsTmFtZSB9IGZyb20gJ0B4bWFnaWMvbnotZm9ybWx5L2NvbW1vbic7XHJcblxyXG4vKipcclxuICog5byV55So5qih5p2/77yM5pSv5oyBSFRNTCxUZW1wbGF0ZVJlZuWvueixoSzmiJbogIVOYW1lZFRlbXBsYXRlXHJcbiAqIEBleGFtcGxlXHJcbiAqXHJcbiAqIOeUqOazlTE6IOS9v+eUqE5hbWVkVGVtcGxhdGUo5o6o6I2QKVxyXG4gKlxyXG4gKiBodG1sXHJcbiAqIGBgYGh0bWxcclxuICogPGZvcm1seS1mb3JtIGZvcm1seS1ib3ggPlxyXG4gKiAgPG5nLXRlbXBsYXRlIG5hbWVkPVwidGVzdFwiPjwvbmctdGVtcGxhdGU+XHJcbiAqIDwvZm9ybWx5LWZvcm0+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiDphY3nva5cclxuICogYGBganNcclxuICoge1xyXG4gKiAgIHR5cGU6ICdyZWYtdGVtcGxhdGUnLFxyXG4gKiAgIHByb3BzOiB7XHJcbiAqICAgICByZWZOYW1lOiAndGVzdCdcclxuICogICB9XHJcbiAqIH1cclxuICogYGBgXHJcbiAqXHJcbiAqIOeUqOazlTI6VGVtcGxhdGVSZWblr7nosaFcclxuICogYGBgaHRtbFxyXG4gKiA8bmctdGVtcGxhdGUgI3Rlc3QyPjwvbmctdGVtcGxhdGU+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiDphY3nva5cclxuICogQHZpZXdDaGlsZCgndGVzdDInKSB0ZXN0MjogVGVtcGxhdGVSZWY8e30+O1xyXG4gKlxyXG4gKiBgYGBqc1xyXG4gKiB7XHJcbiAqICAgdHlwZTogJ3JlZi10ZW1wbGF0ZScsXHJcbiAqICAgcHJvcHM6IHtcclxuICogICAgIHJlZjogdGhpcy50ZXN0MlxyXG4gKiAgIH1cclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICog55So5rOVMzog5L2/55SoaHRtbFxyXG4gKlxyXG4gKiDphY3nva5cclxuICogYGBganNcclxuICoge1xyXG4gKiAgIHR5cGU6ICdyZWYtdGVtcGxhdGUnLFxyXG4gKiAgIHByb3BzOiB7XHJcbiAqICAgICByZWY6ICc8ZGl2PnRlc3QgdGV4dDwvZGl2PidcclxuICogICB9XHJcbiAqIH1cclxuICogYGBgXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ256LWZvcm1seS1yZWYtdGVtcGxhdGUnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmctY29udGFpbmVyICpuelN0cmluZ1RlbXBsYXRlT3V0bGV0PVwicmVmOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZmllbGQsIHByb3BzOiBwcm9wcyB9XCI+XHJcbiAgICAgIDxkaXYgW2lubmVySFRNTF09XCIkYW55KHJlZikgfCB0cnVzdEh0bWxcIj48L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGAsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkUmVmVGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGUge1xyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHB1YmxpYyBmaWVsZFRlbXBsYXRlczogRm9ybWx5Qm94VGVtcGxhdGVzKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlZigpIHtcclxuICAgIHJldHVybiByZXNvbHZlVHBsTmFtZSh0aGlzLnByb3BzLCB0aGlzLmZpZWxkVGVtcGxhdGVzLCAncmVmJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==