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.
76 lines • 11.1 kB
JavaScript
import { Component, Input, ViewChild } from "@angular/core";
import { BaseAngular } from "../../base-angular";
import { AngularComponentFactory } from "../../component-factory";
import * as i0 from "@angular/core";
import * as i1 from "../../utils/ng-key2click.directive";
import * as i2 from "../../utils/ng-show.directive";
import * as i3 from "@angular/common";
import * as i4 from "../../utils/dynamic.directive";
export class ListItemComponent extends BaseAngular {
get elementId() {
var _a;
return (_a = this.model) === null || _a === void 0 ? void 0 : _a.elementId;
}
get ariaSelected() {
return this.listModel.getA11yItemAriaSelected(this.model);
}
get ariaChecked() {
return this.listModel.getA11yItemAriaChecked(this.model);
}
get class() {
return this.listModel.getItemClass(this.model);
}
get itemStyle() {
return this.listModel.getItemStyle(this.model);
}
click(event) {
this.listModel.onItemClick(this.model);
event.stopPropagation();
}
pointerdown(event) {
this.listModel.onPointerDown(event, this.model);
}
get itemComponent() {
return this.model.component || this.listModel.itemComponent;
}
get itemComponentData() {
const itemData = this.model.data;
return {
model: this.model,
listModel: this.listModel,
itemData,
survey: itemData === null || itemData === void 0 ? void 0 : itemData.survey,
page: itemData === null || itemData === void 0 ? void 0 : itemData.page
};
}
getModel() {
return this.model;
}
ngAfterViewInit() {
var _a;
if (!!((_a = this.elementRef) === null || _a === void 0 ? void 0 : _a.nativeElement)) {
this.listModel.onItemRended(this.model, this.elementRef.nativeElement);
}
}
}
ListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ListItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ListItemComponent, selector: "sv-ng-list-item, '[sv-ng-list-item]'", inputs: { element: "element", model: "model", listModel: "listModel" }, viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["elementRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <li #elementRef [attr.role]=\"listModel.listItemRole\" [key2click]=\"{ processEsc: false, disableTabStop: model.disableTabStop }\" [visible]=\"listModel.isItemVisible(model)\" [class]=\"class\" \n [attr.id]=\"elementId\" [attr.aria-selected]=\"ariaSelected\" [attr.aria-checked]=\"ariaChecked\" (click)=\"click($event)\" (pointerdown)=\"pointerdown($event)\">\n <ng-container *ngIf=\"model.needSeparator\">\n <div [class]=\"listModel.cssClasses.itemSeparator\"></div>\n </ng-container>\n <div [class]=\"listModel.cssClasses.itemBody\" [style]=\"itemStyle\" [attr.title]=\"model.getTooltip()\"\n (mouseover)=\"listModel.onItemHover(model)\"\n (mouseleave)=\"listModel.onItemLeave(model)\">\n <ng-template [component]=\"{ name: itemComponent, data: itemComponentData }\"></ng-template>\n </div>\n </li>\n</ng-template>", styles: [":host{display:none}\n"], directives: [{ type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }, { type: i2.VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ListItemComponent, decorators: [{
type: Component,
args: [{
selector: "sv-ng-list-item, '[sv-ng-list-item]'",
templateUrl: "./list-item.component.html",
styleUrls: ["../../hide-host.scss"],
}]
}], propDecorators: { element: [{
type: Input
}], model: [{
type: Input
}], listModel: [{
type: Input
}], elementRef: [{
type: ViewChild,
args: ["elementRef"]
}] } });
AngularComponentFactory.Instance.registerComponent("sv-list-item", ListItemComponent);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2xpc3QvbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2xpc3QvbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFRbEUsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQVc7SUFNaEQsSUFBSSxTQUFTOztRQUNYLE9BQU8sTUFBQyxJQUFJLENBQUMsS0FBaUIsMENBQUUsU0FBUyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELEtBQUssQ0FBQyxLQUFVO1FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztJQUM5RCxDQUFDO0lBQ0QsSUFBSSxpQkFBaUI7UUFDbkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDakMsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsUUFBUTtZQUNSLE1BQU0sRUFBRSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsTUFBTTtZQUN4QixJQUFJLEVBQUUsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLElBQUk7U0FDckIsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxlQUFlOztRQUNiLElBQUksQ0FBQyxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxhQUFhLENBQUEsRUFBRTtZQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDeEU7SUFDSCxDQUFDOzsrR0FuRFUsaUJBQWlCO21HQUFqQixpQkFBaUIscVJDWDlCLHUyQkFZYzs0RkRERCxpQkFBaUI7a0JBTjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsV0FBVyxFQUFFLDRCQUE0QjtvQkFDekMsU0FBUyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzhCQUdVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDbUIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZOztBQWtEekIsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IExpc3RNb2RlbCwgQWN0aW9uLCBJQWN0aW9uIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBCYXNlQW5ndWxhciB9IGZyb20gXCIuLi8uLi9iYXNlLWFuZ3VsYXJcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudC1mYWN0b3J5XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1saXN0LWl0ZW0sICdbc3YtbmctbGlzdC1pdGVtXSdcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuLi8uLi9oaWRlLWhvc3Quc2Nzc1wiXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBMaXN0SXRlbUNvbXBvbmVudCBleHRlbmRzIEJhc2VBbmd1bGFyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGVsZW1lbnQ6IGFueTtcbiAgQElucHV0KCkgbW9kZWwhOiBBY3Rpb247XG4gIEBJbnB1dCgpIGxpc3RNb2RlbCE6IExpc3RNb2RlbDtcbiAgQFZpZXdDaGlsZChcImVsZW1lbnRSZWZcIikgZWxlbWVudFJlZiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIGdldCBlbGVtZW50SWQoKSB7XG4gICAgcmV0dXJuICh0aGlzLm1vZGVsIGFzIElBY3Rpb24pPy5lbGVtZW50SWQ7XG4gIH1cblxuICBnZXQgYXJpYVNlbGVjdGVkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubGlzdE1vZGVsLmdldEExMXlJdGVtQXJpYVNlbGVjdGVkKHRoaXMubW9kZWwpO1xuICB9XG4gIGdldCBhcmlhQ2hlY2tlZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmxpc3RNb2RlbC5nZXRBMTF5SXRlbUFyaWFDaGVja2VkKHRoaXMubW9kZWwpO1xuICB9XG4gIGdldCBjbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxpc3RNb2RlbC5nZXRJdGVtQ2xhc3ModGhpcy5tb2RlbCk7XG4gIH1cbiAgZ2V0IGl0ZW1TdHlsZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmxpc3RNb2RlbC5nZXRJdGVtU3R5bGUodGhpcy5tb2RlbCk7XG4gIH1cbiAgY2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMubGlzdE1vZGVsLm9uSXRlbUNsaWNrKHRoaXMubW9kZWwpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG4gIHBvaW50ZXJkb3duKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RNb2RlbC5vblBvaW50ZXJEb3duKGV2ZW50LCB0aGlzLm1vZGVsKTtcbiAgfVxuICBnZXQgaXRlbUNvbXBvbmVudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLmNvbXBvbmVudCB8fCB0aGlzLmxpc3RNb2RlbC5pdGVtQ29tcG9uZW50O1xuICB9XG4gIGdldCBpdGVtQ29tcG9uZW50RGF0YSgpOiBhbnkge1xuICAgIGNvbnN0IGl0ZW1EYXRhID0gdGhpcy5tb2RlbC5kYXRhO1xuICAgIHJldHVybiB7XG4gICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgIGxpc3RNb2RlbDogdGhpcy5saXN0TW9kZWwsXG4gICAgICBpdGVtRGF0YSxcbiAgICAgIHN1cnZleTogaXRlbURhdGE/LnN1cnZleSxcbiAgICAgIHBhZ2U6IGl0ZW1EYXRhPy5wYWdlXG4gICAgfTtcbiAgfVxuXG4gIGdldE1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghIXRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5saXN0TW9kZWwub25JdGVtUmVuZGVkKHRoaXMubW9kZWwsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJzdi1saXN0LWl0ZW1cIiwgTGlzdEl0ZW1Db21wb25lbnQpOyIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxsaSAjZWxlbWVudFJlZiBbYXR0ci5yb2xlXT1cImxpc3RNb2RlbC5saXN0SXRlbVJvbGVcIiBba2V5MmNsaWNrXT1cInsgcHJvY2Vzc0VzYzogZmFsc2UsIGRpc2FibGVUYWJTdG9wOiBtb2RlbC5kaXNhYmxlVGFiU3RvcCB9XCIgW3Zpc2libGVdPVwibGlzdE1vZGVsLmlzSXRlbVZpc2libGUobW9kZWwpXCIgW2NsYXNzXT1cImNsYXNzXCIgXG4gIFthdHRyLmlkXT1cImVsZW1lbnRJZFwiIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiYXJpYVNlbGVjdGVkXCIgW2F0dHIuYXJpYS1jaGVja2VkXT1cImFyaWFDaGVja2VkXCIgKGNsaWNrKT1cImNsaWNrKCRldmVudClcIiAocG9pbnRlcmRvd24pPVwicG9pbnRlcmRvd24oJGV2ZW50KVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbC5uZWVkU2VwYXJhdG9yXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwibGlzdE1vZGVsLmNzc0NsYXNzZXMuaXRlbVNlcGFyYXRvclwiPjwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgW2NsYXNzXT1cImxpc3RNb2RlbC5jc3NDbGFzc2VzLml0ZW1Cb2R5XCIgW3N0eWxlXT1cIml0ZW1TdHlsZVwiIFthdHRyLnRpdGxlXT1cIm1vZGVsLmdldFRvb2x0aXAoKVwiXG4gICAgKG1vdXNlb3Zlcik9XCJsaXN0TW9kZWwub25JdGVtSG92ZXIobW9kZWwpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJsaXN0TW9kZWwub25JdGVtTGVhdmUobW9kZWwpXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtjb21wb25lbnRdPVwieyBuYW1lOiBpdGVtQ29tcG9uZW50LCBkYXRhOiBpdGVtQ29tcG9uZW50RGF0YSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9saT5cbjwvbmctdGVtcGxhdGU+Il19