survey-angular-ui
Version:
survey.js is a JavaScript Survey Library. It is a modern way to add a survey to your website. It uses JSON for survey metadata and results.
44 lines • 9.47 kB
JavaScript
import { Component } from "@angular/core";
import { AngularComponentFactory } from "../component-factory";
import { SelectBaseComponent } from "./selectbase.component";
import * as i0 from "@angular/core";
import * as i1 from "../survey-string.component";
import * as i2 from "@angular/common";
import * as i3 from "../utils/dynamic.directive";
export class RankingQuestionComponent extends SelectBaseComponent {
constructor() {
super(...arguments);
this.inputType = "";
this.trackItemBy = (index, item) => {
return item.value + "-" + index + "-item";
};
}
getDefaultComponentName() {
return "sv-ng-ranking-item";
}
getItemValueComponentData(item, index, unrankedItem) {
const res = {
componentName: this.getDefaultComponentName(),
componentData: {
question: this.model,
model: item,
inputType: this.inputType,
data: this.model.getItemValueWrapperComponentData(item),
index,
unrankedItem
}
};
return res;
}
}
RankingQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RankingQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
RankingQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RankingQuestionComponent, selector: "sv-ng-ranking-question", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"!model.selectToRankEnabled\" [class]=\"model.rootClass\" #contentElement>\n <ng-container *ngFor=\"let item of model.renderedRankingChoices; index as index; trackBy: trackItemBy\">\n <ng-template [component]=\"{ name: getItemValueComponentName(item), data: getItemValueComponentData(item, index) }\"></ng-template>\n </ng-container>\n</div>\n\n<div *ngIf=\"model.selectToRankEnabled\" [class]=\"model.rootClass\" #contentElement>\n <div [class]='model.getContainerClasses(\"from\")' data-ranking=\"from-container\">\n <ng-container *ngFor=\"let item of model.renderedUnRankingChoices; index as index; trackBy: trackItemBy\">\n <ng-template [component]=\"{ name: getItemValueComponentName(item), data: getItemValueComponentData(item, index, true) }\"></ng-template>\n </ng-container>\n\n <div *ngIf=\"model.renderedUnRankingChoices.length === 0\" [class]=\"model.cssClasses.containerPlaceholder\" [model]=\"$any(model).locSelectToRankEmptyRankedAreaText\" sv-ng-string></div>\n </div>\n\n <div [class]=\"model.cssClasses.containersDivider\"></div>\n\n <div [class]='model.getContainerClasses(\"to\")' data-ranking=\"to-container\">\n <ng-container *ngFor=\"let item of model.renderedRankingChoices; index as index; trackBy: trackItemBy\">\n <ng-template [component]=\"{ name: getItemValueComponentName(item), data: getItemValueComponentData(item, index) }\"></ng-template>\n </ng-container>\n\n <div *ngIf=\"model.renderedRankingChoices.length === 0\" [class]=\"model.cssClasses.containerPlaceholder\" [model]=\"$any(model).locSelectToRankEmptyUnrankedAreaText\" sv-ng-string></div>\n </div>\n</div>", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RankingQuestionComponent, decorators: [{
type: Component,
args: [{
selector: "sv-ng-ranking-question",
templateUrl: "./ranking.component.html",
}]
}] });
AngularComponentFactory.Instance.registerComponent("ranking-question", RankingQuestionComponent);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFua2luZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlc3Rpb25zL3JhbmtpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vc3JjL3F1ZXN0aW9ucy9yYW5raW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBTTdELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxtQkFBeUM7SUFKdkY7O1FBS2tCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxDQUFDLEtBQWEsRUFBRSxJQUFlLEVBQVUsRUFBRTtZQUNoRSxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxPQUFPLENBQUM7UUFDNUMsQ0FBQyxDQUFBO0tBa0JGO0lBakJpQix1QkFBdUI7UUFDckMsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBQ2UseUJBQXlCLENBQUMsSUFBZSxFQUFFLEtBQWMsRUFBRSxZQUFzQjtRQUMvRixNQUFNLEdBQUcsR0FBRztZQUNWLGFBQWEsRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDN0MsYUFBYSxFQUFFO2dCQUNiLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDcEIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZELEtBQUs7Z0JBQ0wsWUFBWTthQUNiO1NBQ0YsQ0FBQztRQUNGLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7c0hBckJVLHdCQUF3QjswR0FBeEIsd0JBQXdCLHFGQ1RyQyxtbkRBd0JNOzRGRGZPLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxXQUFXLEVBQUUsMEJBQTBCO2lCQUN4Qzs7QUF3QkQsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFLHdCQUF3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSXRlbVZhbHVlLCBRdWVzdGlvblJhbmtpbmdNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcbmltcG9ydCB7IFNlbGVjdEJhc2VDb21wb25lbnQgfSBmcm9tIFwiLi9zZWxlY3RiYXNlLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3YtbmctcmFua2luZy1xdWVzdGlvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3JhbmtpbmcuY29tcG9uZW50Lmh0bWxcIixcbn0pXG5leHBvcnQgY2xhc3MgUmFua2luZ1F1ZXN0aW9uQ29tcG9uZW50IGV4dGVuZHMgU2VsZWN0QmFzZUNvbXBvbmVudDxRdWVzdGlvblJhbmtpbmdNb2RlbD4ge1xuICBwdWJsaWMgb3ZlcnJpZGUgaW5wdXRUeXBlOiBzdHJpbmcgPSBcIlwiO1xuICBvdmVycmlkZSB0cmFja0l0ZW1CeSA9IChpbmRleDogbnVtYmVyLCBpdGVtOiBJdGVtVmFsdWUpOiBzdHJpbmcgPT4ge1xuICAgIHJldHVybiBpdGVtLnZhbHVlICsgXCItXCIgKyBpbmRleCArIFwiLWl0ZW1cIjtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0RGVmYXVsdENvbXBvbmVudE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJzdi1uZy1yYW5raW5nLWl0ZW1cIjtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0SXRlbVZhbHVlQ29tcG9uZW50RGF0YShpdGVtOiBJdGVtVmFsdWUsIGluZGV4PzogbnVtYmVyLCB1bnJhbmtlZEl0ZW0/OiBib29sZWFuKTogYW55IHtcbiAgICBjb25zdCByZXMgPSB7XG4gICAgICBjb21wb25lbnROYW1lOiB0aGlzLmdldERlZmF1bHRDb21wb25lbnROYW1lKCksXG4gICAgICBjb21wb25lbnREYXRhOiB7XG4gICAgICAgIHF1ZXN0aW9uOiB0aGlzLm1vZGVsLFxuICAgICAgICBtb2RlbDogaXRlbSxcbiAgICAgICAgaW5wdXRUeXBlOiB0aGlzLmlucHV0VHlwZSxcbiAgICAgICAgZGF0YTogdGhpcy5tb2RlbC5nZXRJdGVtVmFsdWVXcmFwcGVyQ29tcG9uZW50RGF0YShpdGVtKSxcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIHVucmFua2VkSXRlbVxuICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIHJlcztcbiAgfVxufVxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJyYW5raW5nLXF1ZXN0aW9uXCIsIFJhbmtpbmdRdWVzdGlvbkNvbXBvbmVudCk7IiwiPGRpdiAqbmdJZj1cIiFtb2RlbC5zZWxlY3RUb1JhbmtFbmFibGVkXCIgW2NsYXNzXT1cIm1vZGVsLnJvb3RDbGFzc1wiICNjb250ZW50RWxlbWVudD5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb2RlbC5yZW5kZXJlZFJhbmtpbmdDaG9pY2VzOyBpbmRleCBhcyBpbmRleDsgdHJhY2tCeTogdHJhY2tJdGVtQnlcIj5cbiAgICA8bmctdGVtcGxhdGUgW2NvbXBvbmVudF09XCJ7IG5hbWU6IGdldEl0ZW1WYWx1ZUNvbXBvbmVudE5hbWUoaXRlbSksIGRhdGE6IGdldEl0ZW1WYWx1ZUNvbXBvbmVudERhdGEoaXRlbSwgaW5kZXgpIH1cIj48L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwibW9kZWwuc2VsZWN0VG9SYW5rRW5hYmxlZFwiIFtjbGFzc109XCJtb2RlbC5yb290Q2xhc3NcIiAjY29udGVudEVsZW1lbnQ+XG4gIDxkaXYgW2NsYXNzXT0nbW9kZWwuZ2V0Q29udGFpbmVyQ2xhc3NlcyhcImZyb21cIiknIGRhdGEtcmFua2luZz1cImZyb20tY29udGFpbmVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb2RlbC5yZW5kZXJlZFVuUmFua2luZ0Nob2ljZXM7IGluZGV4IGFzIGluZGV4OyB0cmFja0J5OiB0cmFja0l0ZW1CeVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtjb21wb25lbnRdPVwieyBuYW1lOiBnZXRJdGVtVmFsdWVDb21wb25lbnROYW1lKGl0ZW0pLCBkYXRhOiBnZXRJdGVtVmFsdWVDb21wb25lbnREYXRhKGl0ZW0sIGluZGV4LCB0cnVlKSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgKm5nSWY9XCJtb2RlbC5yZW5kZXJlZFVuUmFua2luZ0Nob2ljZXMubGVuZ3RoID09PSAwXCIgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuY29udGFpbmVyUGxhY2Vob2xkZXJcIiBbbW9kZWxdPVwiJGFueShtb2RlbCkubG9jU2VsZWN0VG9SYW5rRW1wdHlSYW5rZWRBcmVhVGV4dFwiIHN2LW5nLXN0cmluZz48L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5jb250YWluZXJzRGl2aWRlclwiPjwvZGl2PlxuXG4gIDxkaXYgW2NsYXNzXT0nbW9kZWwuZ2V0Q29udGFpbmVyQ2xhc3NlcyhcInRvXCIpJyBkYXRhLXJhbmtpbmc9XCJ0by1jb250YWluZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1vZGVsLnJlbmRlcmVkUmFua2luZ0Nob2ljZXM7IGluZGV4IGFzIGluZGV4OyB0cmFja0J5OiB0cmFja0l0ZW1CeVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtjb21wb25lbnRdPVwieyBuYW1lOiBnZXRJdGVtVmFsdWVDb21wb25lbnROYW1lKGl0ZW0pLCBkYXRhOiBnZXRJdGVtVmFsdWVDb21wb25lbnREYXRhKGl0ZW0sIGluZGV4KSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgKm5nSWY9XCJtb2RlbC5yZW5kZXJlZFJhbmtpbmdDaG9pY2VzLmxlbmd0aCA9PT0gMFwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmNvbnRhaW5lclBsYWNlaG9sZGVyXCIgW21vZGVsXT1cIiRhbnkobW9kZWwpLmxvY1NlbGVjdFRvUmFua0VtcHR5VW5yYW5rZWRBcmVhVGV4dFwiIHN2LW5nLXN0cmluZz48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=