ngx-antd-json-schema-form
Version:
JSON form schema using ant-design and prismjs
95 lines • 8.42 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ElementRef, ViewChild } from "@angular/core";
import "prismjs/prism";
import "prismjs/components/prism-typescript";
import "prismjs/components/prism-sql";
import "prismjs/components/prism-http";
export class FormPrismComponent {
constructor() { }
/**
* @return {?}
*/
onContentChanged() {
this.codeViewChild.nativeElement.innerHTML = this.config.value
? this.encodeEntities(this.config.value)
: this.rawViewChild.nativeElement.innerHTML;
Prism.highlightElement(this.codeViewChild.nativeElement);
}
/**
* @return {?}
*/
ngAfterViewInit() {
this.observer.observe(this.rawViewChild.nativeElement, {
characterData: true,
childList: true,
subtree: true
});
this.onContentChanged();
}
/**
* @return {?}
*/
ngOnChanges() {
this.onContentChanged();
}
/**
* @return {?}
*/
ngAfterContentInit() {
this.observer = new MutationObserver(this.onContentChanged.bind(this));
}
/**
* @return {?}
*/
ngOnDestroy() {
if (this.observer) {
this.observer.disconnect();
}
}
/**
* @param {?} value
* @return {?}
*/
encodeEntities(value) {
return value
.replace(/&/g, "&")
.replace(/"/g, """)
.replace(/'/g, "'")
.replace(/</g, "<")
.replace(/>/g, ">");
}
}
FormPrismComponent.decorators = [
{ type: Component, args: [{
selector: "json-schema-form-prism",
template: "<nz-form-item\n *ngIf=\"!config.hidden\"\n class=\"json-form-schema-field {{ config.itemClass ? config.itemClass : settings.itemClass }}\"\n [formGroup]=\"group\"\n nz-row\n [nzGutter]=\"config.nzGutter ? config.nzGutter : settings.nzGutter\"\n nzFlex\n>\n <nz-form-label\n nz-col\n [nzSpan]=\"config.nzSpanLabel ? config.nzSpanLabel : settings.nzSpanLabel\"\n [nzRequired]=\"config.required\"\n [nzFor]=\"config.key\"\n [ngClass]=\"config.labelClass ? config.labelClass : settings.labelClass\"\n >\n {{ config.label }}\n </nz-form-label>\n <nz-form-control nz-col [nzSpan]=\"config.nzSpanControl ? config.nzSpanControl : settings.nzSpanControl\">\n <div hidden #raw style=\"display: none\">\n <ng-content></ng-content>\n </div>\n <pre class=\"prism-pre\" [ngClass]=\"config.fieldClass ? config.fieldClass : settings.fieldClass\">\n <code class=\"prism-code language-{{config.language}}\" #code></code>\n </pre>\n </nz-form-control>\n</nz-form-item>\n",
styles: [".json-form-schema-field.ant-form-item{padding-bottom:0;margin-bottom:0}pre.prism-pre{white-space:inherit;background:#f5f5f5;border:1px solid #d9d9d9;border-radius:4px}code.prism-code{word-break:break-all;white-space:pre-wrap}"]
}] }
];
/** @nocollapse */
FormPrismComponent.ctorParameters = () => [];
FormPrismComponent.propDecorators = {
rawViewChild: [{ type: ViewChild, args: ["raw",] }],
codeViewChild: [{ type: ViewChild, args: ["code",] }]
};
if (false) {
/**
* @type {?}
* @private
*/
FormPrismComponent.prototype.observer;
/** @type {?} */
FormPrismComponent.prototype.group;
/** @type {?} */
FormPrismComponent.prototype.config;
/** @type {?} */
FormPrismComponent.prototype.settings;
/** @type {?} */
FormPrismComponent.prototype.rawViewChild;
/** @type {?} */
FormPrismComponent.prototype.codeViewChild;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wcmlzbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYW50ZC1qc29uLXNjaGVtYS1mb3JtLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybS1wcmlzbS9mb3JtLXByaXNtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUIsVUFBVSxFQUFFLFNBQVMsRUFBMEMsTUFBTSxlQUFlLENBQUM7QUFHeEgsT0FBTyxlQUFlLENBQUM7QUFDdkIsT0FBTyxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sK0JBQStCLENBQUM7QUFXdkMsTUFBTSxPQUFPLGtCQUFrQjtJQVU3QixnQkFBZSxDQUFDOzs7O0lBRWhCLGdCQUFnQjtRQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDNUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUM5QyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzRCxDQUFDOzs7O0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFO1lBQ3JELGFBQWEsRUFBRSxJQUFJO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7Ozs7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxjQUFjLENBQUMsS0FBSztRQUNsQixPQUFPLEtBQUs7YUFDVCxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQzthQUN0QixPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQzthQUN2QixPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQzthQUN0QixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQzthQUNyQixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7OztZQXRERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMscy9CQUEwQzs7YUFFM0M7Ozs7OzJCQVFFLFNBQVMsU0FBQyxLQUFLOzRCQUNmLFNBQVMsU0FBQyxNQUFNOzs7Ozs7O0lBUGpCLHNDQUEwQzs7SUFFMUMsbUNBQWlCOztJQUNqQixvQ0FBaUI7O0lBQ2pCLHNDQUF1Qjs7SUFFdkIsMENBQTJDOztJQUMzQywyQ0FBNkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbmltcG9ydCBcInByaXNtanMvcHJpc21cIjtcbmltcG9ydCBcInByaXNtanMvY29tcG9uZW50cy9wcmlzbS10eXBlc2NyaXB0XCI7XG5pbXBvcnQgXCJwcmlzbWpzL2NvbXBvbmVudHMvcHJpc20tc3FsXCI7XG5pbXBvcnQgXCJwcmlzbWpzL2NvbXBvbmVudHMvcHJpc20taHR0cFwiO1xuXG5pbXBvcnQgeyBGb3JtSXRlbSwgRm9ybVNldHRpbmdzIH0gZnJvbSBcIi4uLy4uL21vZGVsc1wiO1xuXG5kZWNsYXJlIHZhciBQcmlzbTogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwianNvbi1zY2hlbWEtZm9ybS1wcmlzbVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Zvcm0tcHJpc20uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2Zvcm0tcHJpc20uY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybVByaXNtQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbDtcblxuICBncm91cDogRm9ybUdyb3VwO1xuICBjb25maWc6IEZvcm1JdGVtO1xuICBzZXR0aW5nczogRm9ybVNldHRpbmdzO1xuXG4gIEBWaWV3Q2hpbGQoXCJyYXdcIikgcmF3Vmlld0NoaWxkOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKFwiY29kZVwiKSBjb2RlVmlld0NoaWxkOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBvbkNvbnRlbnRDaGFuZ2VkKCkge1xuICAgIHRoaXMuY29kZVZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHRoaXMuY29uZmlnLnZhbHVlXG4gICAgICA/IHRoaXMuZW5jb2RlRW50aXRpZXModGhpcy5jb25maWcudmFsdWUpXG4gICAgICA6IHRoaXMucmF3Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MO1xuICAgIFByaXNtLmhpZ2hsaWdodEVsZW1lbnQodGhpcy5jb2RlVmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnJhd1ZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZVxuICAgIH0pO1xuICAgIHRoaXMub25Db250ZW50Q2hhbmdlZCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2VkKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKHRoaXMub25Db250ZW50Q2hhbmdlZC5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLm9ic2VydmVyKSB7XG4gICAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gIH1cblxuICBlbmNvZGVFbnRpdGllcyh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZVxuICAgICAgLnJlcGxhY2UoLyYvZywgXCImYW1wO1wiKVxuICAgICAgLnJlcGxhY2UoL1wiL2csIFwiJnF1b3Q7XCIpXG4gICAgICAucmVwbGFjZSgvJy9nLCBcIiYjMzk7XCIpXG4gICAgICAucmVwbGFjZSgvPC9nLCBcIiZsdDtcIilcbiAgICAgIC5yZXBsYWNlKC8+L2csIFwiJmd0O1wiKTtcbiAgfVxufVxuIl19