survey-angular-ui
Version:
A free MIT-licensed Angular UI component that renders dynamic, interactive JSON-based forms and surveys. You can use it to collect responses from users and send them to your own database.
64 lines • 6.83 kB
JavaScript
import { Component, HostBinding, Input } from "@angular/core";
import * as Survey from "survey-core";
import * as i0 from "@angular/core";
export class SvgIconComponent {
constructor(viewContaierRef) {
this.viewContaierRef = viewContaierRef;
}
createSvg() {
if (!!this.iconName) {
Survey.createSvg(this.size, this.width, this.height, this.iconName, this.viewContaierRef.element.nativeElement, this.title);
}
}
get rootClass() {
let className = "sv-svg-icon";
if (!this.css && !!this.partCss) {
className += " " + this.partCss;
}
else if (!!this.css) {
className = this.css;
}
return className;
}
get rootRole() {
return "presentation";
}
ngOnChanges() {
if (typeof document !== "undefined") {
const el = this.viewContaierRef.element.nativeElement;
el.innerHTML = "";
el.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "use"));
this.createSvg();
}
}
}
SvgIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SvgIconComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
SvgIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: { size: "size", width: "width", height: "height", iconName: "iconName", partCss: "partCss", css: "css", title: "title" }, host: { properties: { "class": "this.rootClass", "attr.role": "this.rootRole" } }, usesOnChanges: true, ngImport: i0, template: "", isInline: true });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SvgIconComponent, decorators: [{
type: Component,
args: [{
selector: "'[sv-ng-svg-icon]'",
template: ""
}]
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { size: [{
type: Input
}], width: [{
type: Input
}], height: [{
type: Input
}], iconName: [{
type: Input
}], partCss: [{
type: Input
}], css: [{
type: Input
}], title: [{
type: Input
}], rootClass: [{
type: HostBinding,
args: ["class"]
}], rootRole: [{
type: HostBinding,
args: ["attr.role"]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3ZnLWljb24vc3ZnLWljb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7O0FBT3RDLE1BQU0sT0FBTyxnQkFBZ0I7SUFRM0IsWUFBb0IsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO0lBQ3JELENBQUM7SUFDTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixNQUFjLENBQUMsU0FBUyxDQUN2QixJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBQ0QsSUFBMEIsU0FBUztRQUNqQyxJQUFJLFNBQVMsR0FBRyxhQUFhLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDL0IsU0FBUyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ2pDO2FBQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNyQixTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUN0QjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUE4QixRQUFRO1FBQ3BDLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFDbkMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQ3RELEVBQUUsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzlFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7OzhHQXpDVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixvU0FGakIsRUFBRTs0RkFFRCxnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7dUdBRVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFlb0IsU0FBUztzQkFBbEMsV0FBVzt1QkFBQyxPQUFPO2dCQVNVLFFBQVE7c0JBQXJDLFdBQVc7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0ICogYXMgU3VydmV5IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIidbc3Ytbmctc3ZnLWljb25dJ1wiLFxuICB0ZW1wbGF0ZTogXCJcIlxufSlcbmV4cG9ydCBjbGFzcyBTdmdJY29uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgc2l6ZT86IG51bWJlciB8IHN0cmluZztcbiAgQElucHV0KCkgd2lkdGg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGhlaWdodD86IG51bWJlcjtcbiAgQElucHV0KCkgaWNvbk5hbWUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhcnRDc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNzcz86IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaWVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVTdmcoKSB7XG4gICAgaWYgKCEhdGhpcy5pY29uTmFtZSkge1xuICAgICAgKFN1cnZleSBhcyBhbnkpLmNyZWF0ZVN2ZyhcbiAgICAgICAgdGhpcy5zaXplLFxuICAgICAgICB0aGlzLndpZHRoLFxuICAgICAgICB0aGlzLmhlaWdodCxcbiAgICAgICAgdGhpcy5pY29uTmFtZSxcbiAgICAgICAgdGhpcy52aWV3Q29udGFpZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICB0aGlzLnRpdGxlXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKSBnZXQgcm9vdENsYXNzKCk6IHN0cmluZyB7XG4gICAgbGV0IGNsYXNzTmFtZSA9IFwic3Ytc3ZnLWljb25cIjtcbiAgICBpZiAoIXRoaXMuY3NzICYmICEhdGhpcy5wYXJ0Q3NzKSB7XG4gICAgICBjbGFzc05hbWUgKz0gXCIgXCIgKyB0aGlzLnBhcnRDc3M7XG4gICAgfSBlbHNlIGlmICghIXRoaXMuY3NzKSB7XG4gICAgICBjbGFzc05hbWUgPSB0aGlzLmNzcztcbiAgICB9XG4gICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgfVxuICBASG9zdEJpbmRpbmcoXCJhdHRyLnJvbGVcIikgZ2V0IHJvb3RSb2xlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwicHJlc2VudGF0aW9uXCI7XG4gIH1cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWllclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBlbC5pbm5lckhUTUwgPSBcIlwiO1xuICAgICAgZWwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgXCJ1c2VcIikpO1xuICAgICAgdGhpcy5jcmVhdGVTdmcoKTtcbiAgICB9XG4gIH1cbn0iXX0=