survey-creator-angular 1.9.92 → 1.9.94

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -18,6 +18,40 @@ To get started with Survey Creator / Form Builder for Angular, refer to the foll
18
18
  - [Live Examples](https://surveyjs.io/survey-creator/examples/free-nps-survey-template/angular)
19
19
  - [What's New](https://surveyjs.io/WhatsNew)
20
20
 
21
+ ## Build Survey Creator / Form Builder for Angular from Sources
22
+
23
+ If you want to build the library yourself, do the following:
24
+
25
+ 1. **Build `survey-library` and `survey-creator-core`**\
26
+ Refer to the following instructions:
27
+
28
+ - [Build the SurveyJS Form Library from Sources](https://github.com/surveyjs/survey-library#build-the-surveyjs-form-library-from-sources)
29
+ - [Build the Survey Creator Model from Sources](https://github.com/surveyjs/survey-creator/tree/master/packages/survey-creator-core#build-the-survey-creator-model-from-sources)
30
+
31
+ > NOTE: Make sure that folders with cloned `survey-library` and `survey-creator` repositories are in the same directory.
32
+
33
+ 2. **Install build dependencies for Survey Creator / Form Builder for Angular**
34
+
35
+ ```
36
+ cd survey-creator/packages/survey-creator-angular
37
+ npm install
38
+ ```
39
+
40
+ 3. **Build the library**
41
+
42
+ ```
43
+ npm run build
44
+ ```
45
+
46
+ You can find the built library in the "build" directory.
47
+
48
+ 4. **Run unit tests**
49
+
50
+ ```
51
+ npm test
52
+ ```
53
+ This command runs unit tests using [Karma](https://karma-runner.github.io/0.13/index.html).
54
+
21
55
  ## Licensing
22
56
 
23
57
  Survey Creator is **not available for free commercial usage**. If you want to integrate it into your application, you must purchase a [commercial license](https://surveyjs.io/licensing). However, you can [use Survey Creator online](https://surveyjs.io/create-survey) to produce survey JSON configurations and run them with [SurveyJS Form Library](https://surveyjs.io/form-library/documentation/overview) in your application free of charge.
@@ -41,7 +41,7 @@
41
41
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
42
42
  PERFORMANCE OF THIS SOFTWARE.
43
43
  ***************************************************************************** */
44
- /* global Reflect, Promise */
44
+ /* global Reflect, Promise, SuppressedError, Symbol */
45
45
  var extendStatics = function (d, b) {
46
46
  extendStatics = Object.setPrototypeOf ||
47
47
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -411,6 +411,56 @@
411
411
  throw new TypeError("Cannot use 'in' operator on non-object");
412
412
  return typeof state === "function" ? receiver === state : state.has(receiver);
413
413
  }
414
+ function __addDisposableResource(env, value, async) {
415
+ if (value !== null && value !== void 0) {
416
+ if (typeof value !== "object")
417
+ throw new TypeError("Object expected.");
418
+ var dispose;
419
+ if (async) {
420
+ if (!Symbol.asyncDispose)
421
+ throw new TypeError("Symbol.asyncDispose is not defined.");
422
+ dispose = value[Symbol.asyncDispose];
423
+ }
424
+ if (dispose === void 0) {
425
+ if (!Symbol.dispose)
426
+ throw new TypeError("Symbol.dispose is not defined.");
427
+ dispose = value[Symbol.dispose];
428
+ }
429
+ if (typeof dispose !== "function")
430
+ throw new TypeError("Object not disposable.");
431
+ env.stack.push({ value: value, dispose: dispose, async: async });
432
+ }
433
+ else if (async) {
434
+ env.stack.push({ async: true });
435
+ }
436
+ return value;
437
+ }
438
+ var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
439
+ var e = new Error(message);
440
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
441
+ };
442
+ function __disposeResources(env) {
443
+ function fail(e) {
444
+ env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
445
+ env.hasError = true;
446
+ }
447
+ function next() {
448
+ while (env.stack.length) {
449
+ var rec = env.stack.pop();
450
+ try {
451
+ var result = rec.dispose && rec.dispose.call(rec.value);
452
+ if (rec.async)
453
+ return Promise.resolve(result).then(next, function (e) { fail(e); return next(); });
454
+ }
455
+ catch (e) {
456
+ fail(e);
457
+ }
458
+ }
459
+ if (env.hasError)
460
+ throw env.error;
461
+ }
462
+ return next();
463
+ }
414
464
  var tslib_es6 = {
415
465
  __extends: __extends,
416
466
  __assign: __assign,
@@ -437,6 +487,8 @@
437
487
  __classPrivateFieldGet: __classPrivateFieldGet,
438
488
  __classPrivateFieldSet: __classPrivateFieldSet,
439
489
  __classPrivateFieldIn: __classPrivateFieldIn,
490
+ __addDisposableResource: __addDisposableResource,
491
+ __disposeResources: __disposeResources,
440
492
  };
441
493
 
442
494
  var SvgBundleComponent = /** @class */ (function () {
@@ -932,7 +984,7 @@
932
984
  return PageNavigatorComponent;
933
985
  }(CreatorModelComponent));
934
986
  PageNavigatorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PageNavigatorComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
935
- PageNavigatorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PageNavigatorComponent, selector: "svc-page-navigator", inputs: { pagesController: "pagesController", pageEditMode: "pageEditMode" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div class=\"svc-page-navigator\" #container>\n <ng-container *ngIf=\"model.visible\">\n <div class=\"svc-page-navigator__selector\"\n (click)=\"model.togglePageSelector($event)\" [key2click] [attr.title]=\"model.pageSelectorCaption\" [class.svc-page-navigator__selector--opened]=\"model.isPopupOpened\">\n <svg class=\"svc-page-navigator__navigator-icon\" [iconName]=\"model.icon\" [size]=\"24\" sv-ng-svg-icon></svg>\n <sv-ng-popup [popupModel]=\"model.popupModel\"></sv-ng-popup>\n </div>\n <div>\n <svc-page-navigator-item *ngFor=\"let item of model.visibleItems\" [model]=\"item\"></svc-page-navigator-item>\n </div>\n </ng-container>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1__namespace.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1__namespace.PopupComponent, selector: "sv-ng-popup, '[sv-ng-popup]'", inputs: ["popupModel"] }, { type: PageNavigatorItemComponent, selector: "svc-page-navigator-item", inputs: ["model"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
987
+ PageNavigatorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PageNavigatorComponent, selector: "svc-page-navigator", inputs: { pagesController: "pagesController", pageEditMode: "pageEditMode" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div class=\"svc-page-navigator\" #container>\n <ng-container *ngIf=\"model.visible\">\n <div class=\"svc-page-navigator__selector\"\n (click)=\"model.togglePageSelector($event)\" [key2click] [attr.title]=\"model.pageSelectorCaption\" [class.svc-page-navigator__selector--opened]=\"model.isPopupOpened\">\n <svg class=\"svc-page-navigator__navigator-icon\" [iconName]=\"model.icon\" [size]=\"24\" sv-ng-svg-icon></svg>\n <sv-ng-popup [popupModel]=\"model.popupModel\"></sv-ng-popup>\n </div>\n <div>\n <svc-page-navigator-item *ngFor=\"let item of model.visibleItems\" [model]=\"item\"></svc-page-navigator-item>\n </div>\n </ng-container>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1__namespace.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1__namespace.PopupComponent, selector: "sv-ng-popup, '[sv-ng-popup]'", inputs: ["popupModel", "getTarget"] }, { type: PageNavigatorItemComponent, selector: "svc-page-navigator-item", inputs: ["model"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
936
988
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PageNavigatorComponent, decorators: [{
937
989
  type: i0.Component,
938
990
  args: [{
@@ -1548,7 +1600,7 @@
1548
1600
  return AddQuestionButtonComponent;
1549
1601
  }(i1.ActionBarItemComponent));
1550
1602
  AddQuestionButtonComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: AddQuestionButtonComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
1551
- AddQuestionButtonComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AddQuestionButtonComponent, selector: "svc-add-new-question-btn", usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div *ngIf=\"adorner.showAddQuestionButton\" class=\"svc-page__add-new-question svc-btn\" [key2click]\n (click)=\"addNewQuestion($event)\" (mouseover)=\"adorner.hoverStopper($event, $event.currentTarget)\"\n data-bind=\"clickBubble: false\">\n <span class=\"svc-text svc-text--normal svc-text--bold\">\n {{ adorner.addNewQuestionText }}\n </span>\n <button type=\"button\" [key2click] (click)=\"selectQuestionType($event)\"\n [attr.title]=\"adorner.questionTypeSelectorModel.title\" [attr.aria-label]=\"adorner.questionTypeSelectorModel.title\"\n class=\"svc-page__question-type-selector\">\n <svg class=\"svc-page__question-type-selector-icon\" [iconName]=\"adorner.questionTypeSelectorModel.iconName\"\n [size]=\"24\" sv-ng-svg-icon></svg>\n <sv-ng-popup [popupModel]=\"adorner.questionTypeSelectorModel.popupModel\"></sv-ng-popup>\n </button>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1__namespace.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1__namespace.PopupComponent, selector: "sv-ng-popup, '[sv-ng-popup]'", inputs: ["popupModel"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }] });
1603
+ AddQuestionButtonComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AddQuestionButtonComponent, selector: "svc-add-new-question-btn", usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div *ngIf=\"adorner.showAddQuestionButton\" class=\"svc-page__add-new-question svc-btn\" [key2click]\n (click)=\"addNewQuestion($event)\" (mouseover)=\"adorner.hoverStopper($event, $event.currentTarget)\"\n data-bind=\"clickBubble: false\">\n <span class=\"svc-text svc-text--normal svc-text--bold\">\n {{ adorner.addNewQuestionText }}\n </span>\n <button type=\"button\" [key2click] (click)=\"selectQuestionType($event)\"\n [attr.title]=\"adorner.questionTypeSelectorModel.title\" [attr.aria-label]=\"adorner.questionTypeSelectorModel.title\"\n class=\"svc-page__question-type-selector\">\n <svg class=\"svc-page__question-type-selector-icon\" [iconName]=\"adorner.questionTypeSelectorModel.iconName\"\n [size]=\"24\" sv-ng-svg-icon></svg>\n <sv-ng-popup [popupModel]=\"adorner.questionTypeSelectorModel.popupModel\"></sv-ng-popup>\n </button>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1__namespace.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1__namespace.PopupComponent, selector: "sv-ng-popup, '[sv-ng-popup]'", inputs: ["popupModel", "getTarget"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }] });
1552
1604
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: AddQuestionButtonComponent, decorators: [{
1553
1605
  type: i0.Component,
1554
1606
  args: [{
@@ -1782,7 +1834,7 @@
1782
1834
  return ImageItemValueDesignerComponent;
1783
1835
  }(CreatorModelComponent));
1784
1836
  ImageItemValueDesignerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ImageItemValueDesignerComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
1785
- ImageItemValueDesignerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ImageItemValueDesignerComponent, selector: "svc-image-item-value", inputs: { componentName: "componentName", componentData: "componentData" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: i0.ElementRef }], usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div (pointerdown)=\"adorner.onPointerDown($event)\" [class]=\"adorner.getRootCss()\" [attr.data-sv-drop-target-item-value]=\"adorner.isDraggable ? this.item.value : null\" #container>\n <div class=\"svc-image-item-value-wrapper__ghost\" [style]=\"getNewItemStyle()\"></div>\n\n <div class=\"svc-image-item-value-wrapper__content\">\n <input type=\"file\" aria-hidden=\"true\" tabindex=\"-1\" [accept]=\"adorner.acceptedTypes\" class=\"svc-choose-file-input\" />\n\n <ng-container *ngIf=\"!adorner.isNew\">\n <div *ngIf=\"!adorner.isNew\" class=\"svc-image-item-value__item\">\n <ng-template [component]=\"{ name: componentName, data: componentData }\"></ng-template>\n </div>\n <span class=\"svc-context-button svc-image-item-value-controls__drag-area-indicator\" (pointerdown)=\"adorner.onPointerDown($event)\" [attr.title]=\"undefined\" [attr.aria-label]=\"undefined\">\n <svg [iconName]=\"'icon-drag-area-indicator'\" [size]=\"24\" sv-ng-svg-icon></svg>\n </span>\n <div class=\"svc-context-container svc-image-item-value-controls\">\n <ng-container *ngIf=\"adorner.allowRemove && !adorner.isUploading\">\n <span class=\"svc-context-button\" (click)=\"adorner.chooseFile(adorner)\" [key2click] [attr.title]=\"undefined\" [attr.aria-label]=\"undefined\">\n <svg [iconName]=\"'icon-file'\" [size]=\"24\" sv-ng-svg-icon></svg>\n </span>\n <span class=\"svc-context-button svc-context-button--danger\" (click)=\"adorner.remove(adorner)\" [key2click] [attr.title]=\"undefined\" [attr.aria-label]=\"undefined\">\n <svg [iconName]=\"'icon-delete'\" [size]=\"24\" sv-ng-svg-icon></svg>\n </span>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"adorner.isNew\">\n <div class=\"svc-image-item-value__item\"\n data-bind=\"event: { dragover: dragover, drop: drop, dragleave: dragleave }\">\n <div class=\"sd-imagepicker__item sd-imagepicker__item--inline\">\n <label class=\"sd-imagepicker__label\">\n <div [style]=\"getNewItemStyle()\" class=\"sd-imagepicker__image\"></div>\n </label>\n </div>\n </div>\n\n <div class=\"svc-image-item-value-controls\" data-bind=\"event: { pointerdown: blockEvent }\">\n <span class=\"svc-context-button svc-image-item-value-controls__add\" [key2click] (click)=\"adorner.chooseNewFile(adorner)\" [attr.title]=\"undefined\" [attr.aria-label]=\"undefined\">\n <svg *ngIf=\"adorner.allowAdd && !adorner.isUploading\" [iconName]=\"'icon-add-lg'\" [size]=\"24\" sv-ng-svg-icon></svg>\n </span>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1__namespace.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: i1__namespace.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }] });
1837
+ ImageItemValueDesignerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ImageItemValueDesignerComponent, selector: "svc-image-item-value", inputs: { componentName: "componentName", componentData: "componentData" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: i0.ElementRef }], usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div (pointerdown)=\"adorner.onPointerDown($event)\" [class]=\"adorner.getRootCss()\"\n [attr.data-sv-drop-target-item-value]=\"adorner.isDraggable ? this.item.value : null\" #container>\n <div class=\"svc-image-item-value-wrapper__ghost\" [style]=\"getNewItemStyle()\"></div>\n\n <div class=\"svc-image-item-value-wrapper__content\">\n <input type=\"file\" aria-hidden=\"true\" tabindex=\"-1\" [accept]=\"adorner.acceptedTypes\"\n class=\"svc-choose-file-input\" />\n\n <ng-container *ngIf=\"!adorner.isNew\">\n <div *ngIf=\"!adorner.isNew\" class=\"svc-image-item-value__item\">\n <ng-template [component]=\"{ name: componentName, data: componentData }\"></ng-template>\n </div>\n <span *ngIf=\"adorner.isDraggable\" class=\"svc-context-button svc-image-item-value-controls__drag-area-indicator\"\n (pointerdown)=\"adorner.onPointerDown($event)\" [attr.title]=\"undefined\" [attr.aria-label]=\"undefined\">\n <svg [iconName]=\"'icon-drag-area-indicator'\" [size]=\"24\" sv-ng-svg-icon></svg>\n </span>\n <div class=\"svc-context-container svc-image-item-value-controls\">\n <ng-container *ngIf=\"adorner.allowRemove && !adorner.isUploading\">\n <span class=\"svc-context-button\" (click)=\"adorner.chooseFile(adorner)\" [key2click] [attr.title]=\"undefined\"\n [attr.aria-label]=\"undefined\">\n <svg [iconName]=\"'icon-file'\" [size]=\"24\" sv-ng-svg-icon></svg>\n </span>\n <span class=\"svc-context-button svc-context-button--danger\" (click)=\"adorner.remove(adorner)\" [key2click]\n [attr.title]=\"undefined\" [attr.aria-label]=\"undefined\">\n <svg [iconName]=\"'icon-delete'\" [size]=\"24\" sv-ng-svg-icon></svg>\n </span>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"adorner.isNew\">\n <div class=\"svc-image-item-value__item\"\n data-bind=\"event: { dragover: dragover, drop: drop, dragleave: dragleave }\">\n <div class=\"sd-imagepicker__item sd-imagepicker__item--inline\">\n <label class=\"sd-imagepicker__label\">\n <div [style]=\"getNewItemStyle()\" class=\"sd-imagepicker__image\"></div>\n </label>\n </div>\n </div>\n\n <div class=\"svc-image-item-value-controls\" data-bind=\"event: { pointerdown: blockEvent }\">\n <span class=\"svc-context-button svc-image-item-value-controls__add\" [key2click]\n (click)=\"adorner.chooseNewFile(adorner)\" [attr.title]=\"undefined\" [attr.aria-label]=\"undefined\">\n <svg *ngIf=\"adorner.allowAdd && !adorner.isUploading\" [iconName]=\"'icon-add-lg'\" [size]=\"24\"\n sv-ng-svg-icon></svg>\n </span>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1__namespace.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: i1__namespace.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }] });
1786
1838
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ImageItemValueDesignerComponent, decorators: [{
1787
1839
  type: i0.Component,
1788
1840
  args: [{
@@ -1946,7 +1998,7 @@
1946
1998
  return PanelDesignerComponent;
1947
1999
  }(QuestionDesignerComponent));
1948
2000
  PanelDesignerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PanelDesignerComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
1949
- PanelDesignerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PanelDesignerComponent, selector: "svc-panel", usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div *ngIf=\"adorner\" class=\"svc-question__adorner\" [class]=\"adorner.rootCss()\"\n (mouseover)=\"adorner.hover($event, $event.currentTarget)\" (mouseleave)=\"adorner.hover($event, $event.currentTarget)\"\n [attr.data-sv-drop-target-survey-element]=\"adorner.element.name || null\" #container>\n\n <div [class]=\"adorner.css()\" [key2click]\n (click)=\"adorner.element.isInteractiveDesignElement ? adorner.select(adorner, $event) : null\"\n [attr.tabindex]=\"adorner.element.isInteractiveDesignElement ? undefined : -1\">\n <div *ngIf=\"adorner.allowDragging && adorner.element.isInteractiveDesignElement\" class=\"svc-question__drag-area\"\n (pointerdown)=\"adorner.onPointerDown($event)\">\n <svg class=\"svc-question__drag-element\" [iconName]=\"'icon-drag-area-indicator_24x16'\" [size]=\"24\"\n sv-ng-svg-icon></svg>\n </div>\n\n <ng-template [component]=\"{ name: componentName, data: componentData }\"></ng-template>\n\n <div *ngIf=\"adorner.isEmptyElement\" class=\"svc-panel__placeholder_frame\">\n <div class=\"svc-panel__placeholder\">{{ adorner.placeholderText }}</div>\n <div *ngIf=\"adorner.showAddQuestionButton\" class=\"svc-panel__add-new-question svc-action-button\" [key2click]\n (click)=\"addNewQuestion($event)\">\n <span class=\"svc-text svc-text--normal svc-text--bold\">\n {{ adorner.addNewQuestionText }}\n </span>\n </div>\n </div>\n\n <ng-template *ngIf=\"adornerComponent && adorner.element.isInteractiveDesignElement\"\n [component]=\"{ name: adornerComponent, data: { adorner: adorner, question: model } }\">\n </ng-template>\n\n <div *ngIf=\"!adorner.isEmptyElement && adorner.showAddQuestionButton\"\n class=\"svc-panel__add-new-question-container\">\n <div class=\"svc-panel__add-new-question svc-action-button\" [key2click] (click)=\"addNewQuestion($event)\">\n <span class=\"svc-text svc-text--normal svc-text--bold\">\n {{ adorner.addNewQuestionText }}\n </span>\n </div>\n <button type=\"button\" [attr.title]=\"adorner.addNewQuestionText\" [key2click] (click)=\"selectQuestionType($event)\"\n class=\"svc-panel__question-type-selector\">\n <svg class=\"svc-panel__question-type-selector-icon\" [iconName]=\"adorner.questionTypeSelectorModel.iconName\"\n [size]=\"24\" sv-ng-svg-icon></svg>\n <sv-ng-popup [popupModel]=\"adorner.questionTypeSelectorModel.popupModel\"></sv-ng-popup>\n </button>\n </div>\n\n <div *ngIf=\"adorner.element.isInteractiveDesignElement\" class=\"svc-question__content-actions\">\n <sv-action-bar [model]=\"adorner.actionContainer\" [handleClick]=\"false\"></sv-action-bar>\n </div>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1__namespace.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1__namespace.PopupComponent, selector: "sv-ng-popup, '[sv-ng-popup]'", inputs: ["popupModel"] }, { type: i1__namespace.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }, { type: i1__namespace.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
2001
+ PanelDesignerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PanelDesignerComponent, selector: "svc-panel", usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div *ngIf=\"adorner\" class=\"svc-question__adorner\" [class]=\"adorner.rootCss()\"\n (mouseover)=\"adorner.hover($event, $event.currentTarget)\" (mouseleave)=\"adorner.hover($event, $event.currentTarget)\"\n [attr.data-sv-drop-target-survey-element]=\"adorner.element.name || null\" #container>\n\n <div [class]=\"adorner.css()\" [key2click]\n (click)=\"adorner.element.isInteractiveDesignElement ? adorner.select(adorner, $event) : null\"\n [attr.tabindex]=\"adorner.element.isInteractiveDesignElement ? undefined : -1\">\n <div *ngIf=\"adorner.allowDragging && adorner.element.isInteractiveDesignElement\" class=\"svc-question__drag-area\"\n (pointerdown)=\"adorner.onPointerDown($event)\">\n <svg class=\"svc-question__drag-element\" [iconName]=\"'icon-drag-area-indicator_24x16'\" [size]=\"24\"\n sv-ng-svg-icon></svg>\n </div>\n\n <ng-template [component]=\"{ name: componentName, data: componentData }\"></ng-template>\n\n <div *ngIf=\"adorner.isEmptyElement\" class=\"svc-panel__placeholder_frame\">\n <div class=\"svc-panel__placeholder\">{{ adorner.placeholderText }}</div>\n <div *ngIf=\"adorner.showAddQuestionButton\" class=\"svc-panel__add-new-question svc-action-button\" [key2click]\n (click)=\"addNewQuestion($event)\">\n <span class=\"svc-text svc-text--normal svc-text--bold\">\n {{ adorner.addNewQuestionText }}\n </span>\n </div>\n </div>\n\n <ng-template *ngIf=\"adornerComponent && adorner.element.isInteractiveDesignElement\"\n [component]=\"{ name: adornerComponent, data: { adorner: adorner, question: model } }\">\n </ng-template>\n\n <div *ngIf=\"!adorner.isEmptyElement && adorner.showAddQuestionButton\"\n class=\"svc-panel__add-new-question-container\">\n <div class=\"svc-panel__add-new-question svc-action-button\" [key2click] (click)=\"addNewQuestion($event)\">\n <span class=\"svc-text svc-text--normal svc-text--bold\">\n {{ adorner.addNewQuestionText }}\n </span>\n </div>\n <button type=\"button\" [attr.title]=\"adorner.addNewQuestionText\" [key2click] (click)=\"selectQuestionType($event)\"\n class=\"svc-panel__question-type-selector\">\n <svg class=\"svc-panel__question-type-selector-icon\" [iconName]=\"adorner.questionTypeSelectorModel.iconName\"\n [size]=\"24\" sv-ng-svg-icon></svg>\n <sv-ng-popup [popupModel]=\"adorner.questionTypeSelectorModel.popupModel\"></sv-ng-popup>\n </button>\n </div>\n\n <div *ngIf=\"adorner.element.isInteractiveDesignElement\" class=\"svc-question__content-actions\">\n <sv-action-bar [model]=\"adorner.actionContainer\" [handleClick]=\"false\"></sv-action-bar>\n </div>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1__namespace.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1__namespace.PopupComponent, selector: "sv-ng-popup, '[sv-ng-popup]'", inputs: ["popupModel", "getTarget"] }, { type: i1__namespace.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }, { type: i1__namespace.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
1950
2002
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PanelDesignerComponent, decorators: [{
1951
2003
  type: i0.Component,
1952
2004
  args: [{
@@ -2188,7 +2240,7 @@
2188
2240
  return LogicOperatorComponent;
2189
2241
  }(i1.QuestionAngular));
2190
2242
  LogicOperatorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: LogicOperatorComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
2191
- LogicOperatorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: LogicOperatorComponent, selector: "svc-logic-operator", usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div [class]=\"model.cssClasses.selectWrapper\">\n <ng-container *ngIf=\"!model.isReadOnly\">\n <div [class]=\"model.getControlClass()\" (click)=\"click($event)\" (keyup)=\"keyup($event)\"\n [attr.id]=\"model.inputId\" \n [attr.required]=\"model.isRequired\" \n [attr.tabindex]= \"model.isInputReadOnly ? undefined : 0\"\n [attr.disabled]=\"model.isInputReadOnly\"\n [attr.role]=\"model.ariaRole\"\n [attr.aria-required]=\"model.ariaRequired\" \n [attr.aria-label]=\"model.ariaLabel\" \n [attr.aria-invalid]=\"model.ariaInvalid\" \n [attr.aria-describedby]= \"model.ariaDescribedBy\" \n >\n <div [class]=\"model.cssClasses.controlValue\">\n <sv-ng-string *ngIf=\"model.selectedItemLocText\" [model]=\"model.selectedItemLocText\"></sv-ng-string>\n <div>{{model.readOnlyText}}</div>\n </div>\n <div *ngIf=\"model.allowClear && model.cssClasses.cleanButtonIconId\" [class]=\"model.cssClasses.cleanButton\" (click)=\"clear\" [visible]=\"!model.isEmpty()\">\n <svg [class]=\"model.cssClasses.cleanButtonSvg\" [iconName]=\"model.cssClasses.cleanButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearCaption\" [size]=\"24\" sv-ng-svg-icon></svg>\n </div>\n </div>\n <sv-ng-popup [popupModel]=\"model.popupModel\"></sv-ng-popup>\n </ng-container>\n <div disabled *ngIf=\"model.isReadOnly\" [class]=\"model.getControlClass()\" [attr.id]=\"model.inputId\">\n <sv-ng-string *ngIf=\"model.selectedItemLocText\" [model]=\"model.selectedItemLocText\"></sv-ng-string>\n <div>{{model.readOnlyText}}</div>\n </div>\n </div>\n</ng-template>\n", styles: [":host { display: none; }"], components: [{ type: i1__namespace.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i1__namespace.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1__namespace.PopupComponent, selector: "sv-ng-popup, '[sv-ng-popup]'", inputs: ["popupModel"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.VisibleDirective, selector: "[visible]", inputs: ["visible"] }] });
2243
+ LogicOperatorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: LogicOperatorComponent, selector: "svc-logic-operator", usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div [class]=\"model.cssClasses.selectWrapper\">\n <ng-container *ngIf=\"!model.isReadOnly\">\n <div [class]=\"model.getControlClass()\" (click)=\"click($event)\" (keyup)=\"keyup($event)\"\n [attr.id]=\"model.inputId\" \n [attr.required]=\"model.isRequired\" \n [attr.tabindex]= \"model.isInputReadOnly ? undefined : 0\"\n [attr.disabled]=\"model.isInputReadOnly\"\n [attr.role]=\"model.ariaRole\"\n [attr.aria-required]=\"model.ariaRequired\" \n [attr.aria-label]=\"model.ariaLabel\" \n [attr.aria-invalid]=\"model.ariaInvalid\" \n [attr.aria-describedby]= \"model.ariaDescribedBy\" \n >\n <div [class]=\"model.cssClasses.controlValue\">\n <sv-ng-string *ngIf=\"model.selectedItemLocText\" [model]=\"model.selectedItemLocText\"></sv-ng-string>\n <div>{{model.readOnlyText}}</div>\n </div>\n <div *ngIf=\"model.allowClear && model.cssClasses.cleanButtonIconId\" [class]=\"model.cssClasses.cleanButton\" (click)=\"clear\" [visible]=\"!model.isEmpty()\">\n <svg [class]=\"model.cssClasses.cleanButtonSvg\" [iconName]=\"model.cssClasses.cleanButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearCaption\" [size]=\"24\" sv-ng-svg-icon></svg>\n </div>\n </div>\n <sv-ng-popup [popupModel]=\"model.popupModel\"></sv-ng-popup>\n </ng-container>\n <div disabled *ngIf=\"model.isReadOnly\" [class]=\"model.getControlClass()\" [attr.id]=\"model.inputId\">\n <sv-ng-string *ngIf=\"model.selectedItemLocText\" [model]=\"model.selectedItemLocText\"></sv-ng-string>\n <div>{{model.readOnlyText}}</div>\n </div>\n </div>\n</ng-template>\n", styles: [":host { display: none; }"], components: [{ type: i1__namespace.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i1__namespace.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1__namespace.PopupComponent, selector: "sv-ng-popup, '[sv-ng-popup]'", inputs: ["popupModel", "getTarget"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.VisibleDirective, selector: "[visible]", inputs: ["visible"] }] });
2192
2244
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: LogicOperatorComponent, decorators: [{
2193
2245
  type: i0.Component,
2194
2246
  args: [{
@@ -2668,7 +2720,7 @@
2668
2720
  return QuestionColorComponent;
2669
2721
  }(i1.QuestionAngular));
2670
2722
  QuestionColorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: QuestionColorComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
2671
- QuestionColorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionColorComponent, selector: "svc-color", usesInheritance: true, ngImport: i0__namespace, template: "<div [class]=\"model.cssClasses.root\">\n <label [class]=\"model.cssClasses.swatch\" [style]=\"model.getSwatchStyle()\">\n <svg [iconName]=\"model.cssClasses.swatchIcon\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n <input type=\"color\" [class]=\"model.cssClasses.colorInput\" [value]=\"model.renderedValue\" (change)=\"model.onColorInputChange($event)\"/>\n </label>\n <input autocomplete=\"off\" \n [disabled]=\"model.isInputReadOnly\" \n [attr.id]=\"model.inputId\" \n [placeholder]=\"model.renderedPlaceholder\" \n [attr.aria-required]=\"model.ariaRequired\" \n [attr.aria-label]=\"model.ariaLabel\" \n [attr.aria-invalid]=\"model.ariaInvalid\" \n [attr.aria-describedby]=\"model.ariaDescribedBy\" \n (change)=\"model.onChange($event)\" \n (keyup)=\"model.onKeyUp($event)\" \n (blur)=\"model.onBlur($event)\" \n (beforeinput)=\"model.onBeforeInput($event)\"\n [value]=\"model.renderedValue\"\n [class]=\"model.cssClasses.control\"/> \n <ng-container *ngIf=\"model.showDropdownAction\">\n <sv-action-bar-item [model]=\"model.dropdownAction\"></sv-action-bar-item>\n <sv-ng-popup [popupModel]=\"model.dropdownAction.popupModel\" [visible]=\"false\"></sv-ng-popup>\n </ng-container>\n</div>", components: [{ type: i1__namespace.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1__namespace.ActionBarItemComponent, selector: "sv-action-bar-item", inputs: ["model"] }, { type: i1__namespace.PopupComponent, selector: "sv-ng-popup, '[sv-ng-popup]'", inputs: ["popupModel"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.VisibleDirective, selector: "[visible]", inputs: ["visible"] }] });
2723
+ QuestionColorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionColorComponent, selector: "svc-color", usesInheritance: true, ngImport: i0__namespace, template: "<div [class]=\"model.cssClasses.root\">\n <label [class]=\"model.cssClasses.swatch\" [style]=\"model.getSwatchStyle()\">\n <svg [iconName]=\"model.cssClasses.swatchIcon\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n <input type=\"color\" [class]=\"model.cssClasses.colorInput\" [value]=\"model.renderedValue\" (change)=\"model.onColorInputChange($event)\"/>\n </label>\n <input autocomplete=\"off\" \n [disabled]=\"model.isInputReadOnly\" \n [attr.id]=\"model.inputId\" \n [placeholder]=\"model.renderedPlaceholder\" \n [attr.aria-required]=\"model.ariaRequired\" \n [attr.aria-label]=\"model.ariaLabel\" \n [attr.aria-invalid]=\"model.ariaInvalid\" \n [attr.aria-describedby]=\"model.ariaDescribedBy\" \n (change)=\"model.onChange($event)\" \n (keyup)=\"model.onKeyUp($event)\" \n (blur)=\"model.onBlur($event)\" \n (beforeinput)=\"model.onBeforeInput($event)\"\n [value]=\"model.renderedValue\"\n [class]=\"model.cssClasses.control\"/> \n <ng-container *ngIf=\"model.showDropdownAction\">\n <sv-action-bar-item [model]=\"model.dropdownAction\"></sv-action-bar-item>\n <sv-ng-popup [popupModel]=\"model.dropdownAction.popupModel\"></sv-ng-popup>\n </ng-container>\n</div>", components: [{ type: i1__namespace.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1__namespace.ActionBarItemComponent, selector: "sv-action-bar-item", inputs: ["model"] }, { type: i1__namespace.PopupComponent, selector: "sv-ng-popup, '[sv-ng-popup]'", inputs: ["popupModel", "getTarget"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2672
2724
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: QuestionColorComponent, decorators: [{
2673
2725
  type: i0.Component,
2674
2726
  args: [{