Built motion from commit caf7d5f0.|2.5.39
[motion2.git] / public / assets / plugins / angular-material-form-builder / dist / angular-material-form-builder.js
1 (function webpackUniversalModuleDefinition(root, factory) {
2         if(typeof exports === 'object' && typeof module === 'object')
3                 module.exports = factory();
4         else if(typeof define === 'function' && define.amd)
5                 define([], factory);
6         else if(typeof exports === 'object')
7                 exports["angular-material-form-builder"] = factory();
8         else
9                 root["angular-material-form-builder"] = factory();
10 })(self, function() {
11 return /******/ (() => { // webpackBootstrap
12 /******/        "use strict";
13 /******/        var __webpack_modules__ = ({
14
15 /***/ "./src/lib/directives/agreement-item/agreement-item.controller.js":
16 /*!************************************************************************!*\
17   !*** ./src/lib/directives/agreement-item/agreement-item.controller.js ***!
18   \************************************************************************/
19 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20
21 __webpack_require__.r(__webpack_exports__);
22 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23 /* harmony export */   "AgreementItemCtrl": () => (/* binding */ AgreementItemCtrl)
24 /* harmony export */ });
25 AgreementItemCtrl.$inject = ["Utils", "$element"];
26
27 /**
28  * @ngInject
29  *
30  * @param {import('../../utils/utils.service').Utils} Utils
31  * @param {JQLite} $element
32  */
33 function AgreementItemCtrl(Utils, $element) {
34   this.Element = $element;
35   this.item = Utils.extend(this.item || {}, {
36     config: {
37       maxSelections: null
38     },
39     options: [{
40       value: '',
41       selected: false
42     }]
43   });
44 }
45
46
47
48 /***/ }),
49
50 /***/ "./src/lib/directives/agreement-item/agreement-item.directive.js":
51 /*!***********************************************************************!*\
52   !*** ./src/lib/directives/agreement-item/agreement-item.directive.js ***!
53   \***********************************************************************/
54 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
55
56 __webpack_require__.r(__webpack_exports__);
57 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
58 /* harmony export */   "AgreementItem": () => (/* binding */ AgreementItem)
59 /* harmony export */ });
60 /* harmony import */ var _agreement_item_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./agreement-item.controller */ "./src/lib/directives/agreement-item/agreement-item.controller.js");
61  // import AgreementItemTemplate from './agreement-item.tpl.html'
62
63 /**
64  * @implements {ng.IDirective}
65  */
66
67 class AgreementItem {
68   /**
69    * @ngInject
70    */
71   constructor() {
72     this.restrict = 'E';
73     this.scope = {
74       item: '='
75     };
76     this.controller = _agreement_item_controller__WEBPACK_IMPORTED_MODULE_0__.AgreementItemCtrl;
77     this.controllerAs = 'Agreement';
78     this.bindToController = true;
79   }
80
81 }
82
83 AgreementItem.$inject = [];
84
85
86 /***/ }),
87
88 /***/ "./src/lib/directives/agreement-item/agreement-view.controller.js":
89 /*!************************************************************************!*\
90   !*** ./src/lib/directives/agreement-item/agreement-view.controller.js ***!
91   \************************************************************************/
92 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
93
94 __webpack_require__.r(__webpack_exports__);
95 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
96 /* harmony export */   "AgreementViewCtrl": () => (/* binding */ AgreementViewCtrl)
97 /* harmony export */ });
98 class AgreementViewCtrl {
99   /**
100    * @ngInject
101    * @param {ng.IScope} $scope
102    * @param {import('../../utils/utils.service').Utils} Utils
103    */
104   constructor($scope, Utils) {
105     this.Scope = $scope;
106     this.Utils = Utils;
107     this.formItem = {};
108   }
109
110   init() {
111     this.formItem = this.Utils.extend(this.formItem || {}, {
112       config: {},
113       options: [{
114         value: '',
115         selected: false
116       }]
117     });
118     this.selectedOptions = this._getSelectedOptions();
119     this.disableOptions = false;
120     this.isValid = true;
121
122     this._updateView();
123
124     this._updateValidity();
125
126     if (this.isPreview()) {
127       this._enableWatchers();
128     }
129   }
130
131   toggleSelectedOption() {
132     this.selectedOptions = this._getSelectedOptions();
133
134     this._updateView();
135
136     this._updateValidity();
137   }
138
139   _getSelectedOptions() {
140     return this.formItem.options.filter(option => {
141       return option.selected;
142     });
143   }
144
145   _updateView() {
146     if (!this.formItem.config.maxSelections) {
147       this.disableOptions = false;
148     } else if (this.selectedOptions.length === this.formItem.config.maxSelections) {
149       this.disableOptions = true;
150     } else {
151       this.disableOptions = false;
152     }
153   }
154
155   _updateValidity() {
156     if (this.formItem.config.required) {
157       this.isValid = this.selectedOptions.length > 0;
158     } else {
159       this.isValid = true;
160     }
161
162     this.form.$setValidity('minSelections', this.isValid);
163   }
164
165   _enableWatchers() {
166     this.Scope.$watch('AgreementView.formItem.config.required', newVal => {
167       if (newVal !== undefined) {
168         this._updateView();
169
170         this._updateValidity();
171       }
172     });
173   }
174
175 }
176
177 AgreementViewCtrl.$inject = ["$scope", "Utils"];
178
179
180 /***/ }),
181
182 /***/ "./src/lib/directives/agreement-item/agreement-view.directive.js":
183 /*!***********************************************************************!*\
184   !*** ./src/lib/directives/agreement-item/agreement-view.directive.js ***!
185   \***********************************************************************/
186 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
187
188 __webpack_require__.r(__webpack_exports__);
189 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
190 /* harmony export */   "AgreementView": () => (/* binding */ AgreementView)
191 /* harmony export */ });
192 /* harmony import */ var _agreement_view_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./agreement-view.controller */ "./src/lib/directives/agreement-item/agreement-view.controller.js");
193 /* harmony import */ var _agreement_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./agreement-view.tpl.html */ "./src/lib/directives/agreement-item/agreement-view.tpl.html");
194
195
196
197 class AgreementView {
198   /**
199    * @ngInject
200    * @param {ng.ITimeoutService} $timeout
201    */
202   constructor($timeout) {
203     this.$timeout = $timeout;
204     this.template = _agreement_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__["default"];
205     this.restrict = 'E';
206     this.scope = {
207       formItem: '=',
208       isPreview: '&',
209       form: '='
210     };
211     this.controller = _agreement_view_controller__WEBPACK_IMPORTED_MODULE_0__.AgreementViewCtrl;
212     this.controllerAs = 'AgreementView';
213     this.bindToController = true;
214   }
215   /**
216    * @see https://docs.angularjs.org/api/ng/service/$compile#-link-
217    * @param {ng.IScope} scope - scope
218    * @param {JQLite} element - element
219    * @param {ng.IAttributes} attrs - attributes
220    * @param {AgreementViewCtrl} ctrl - this instance controller
221    * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)
222    */
223
224
225   link(scope, element, attrs, ctrl) {
226     //this timeout is placed here in order to make sure that the creator directive of this view is finished its work
227     this.$timeout(function () {
228       ctrl.init();
229     }, 50);
230   }
231
232 }
233
234 AgreementView.$inject = ["$timeout"];
235
236
237 /***/ }),
238
239 /***/ "./src/lib/directives/checkboxes-item/checkboxes-item.controller.js":
240 /*!**************************************************************************!*\
241   !*** ./src/lib/directives/checkboxes-item/checkboxes-item.controller.js ***!
242   \**************************************************************************/
243 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
244
245 __webpack_require__.r(__webpack_exports__);
246 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
247 /* harmony export */   "CheckboxesItemCtrl": () => (/* binding */ CheckboxesItemCtrl)
248 /* harmony export */ });
249 class CheckboxesItemCtrl {
250   /**
251    * @ngInject
252    *
253    * @param {import('../../utils/utils.service').Utils} Utils
254    * @param {JQLite} $element
255    */
256   constructor(Utils, $element) {
257     this.Element = $element;
258     this.item = Utils.extend(this.item || {}, {
259       config: {
260         maxSelections: null
261       },
262       options: [{
263         value: '',
264         selected: false
265       }]
266     });
267   }
268
269   deleteOption(index) {
270     this.item.options.splice(index, 1);
271   }
272
273   addOption() {
274     this.item.options.push({
275       value: '',
276       selected: false
277     }); // Focus new element
278
279     setTimeout(() => {
280       const options = this.Element.find('input');
281       const addedOption = options[options.length - 1];
282       addedOption.focus();
283     }, 0);
284   }
285
286 }
287
288 CheckboxesItemCtrl.$inject = ["Utils", "$element"];
289
290
291 /***/ }),
292
293 /***/ "./src/lib/directives/checkboxes-item/checkboxes-item.directive.js":
294 /*!*************************************************************************!*\
295   !*** ./src/lib/directives/checkboxes-item/checkboxes-item.directive.js ***!
296   \*************************************************************************/
297 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
298
299 __webpack_require__.r(__webpack_exports__);
300 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
301 /* harmony export */   "CheckboxesItem": () => (/* binding */ CheckboxesItem)
302 /* harmony export */ });
303 /* harmony import */ var _checkboxes_item_tpl_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./checkboxes-item.tpl.html */ "./src/lib/directives/checkboxes-item/checkboxes-item.tpl.html");
304 /* harmony import */ var _checkboxes_item_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./checkboxes-item.controller */ "./src/lib/directives/checkboxes-item/checkboxes-item.controller.js");
305
306
307 /**
308  * @implements {ng.IDirective}
309  */
310
311 function CheckboxesItem() {
312   const directive = {
313     restrict: 'E',
314     template: _checkboxes_item_tpl_html__WEBPACK_IMPORTED_MODULE_0__["default"],
315     scope: {
316       item: '='
317     },
318     controller: _checkboxes_item_controller__WEBPACK_IMPORTED_MODULE_1__.CheckboxesItemCtrl,
319     controllerAs: 'Checkboxes',
320     bindToController: true
321   };
322   return directive;
323 }
324
325
326
327 /***/ }),
328
329 /***/ "./src/lib/directives/checkboxes-item/checkboxes-view.controller.js":
330 /*!**************************************************************************!*\
331   !*** ./src/lib/directives/checkboxes-item/checkboxes-view.controller.js ***!
332   \**************************************************************************/
333 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
334
335 __webpack_require__.r(__webpack_exports__);
336 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
337 /* harmony export */   "CheckboxesViewCtrl": () => (/* binding */ CheckboxesViewCtrl)
338 /* harmony export */ });
339 class CheckboxesViewCtrl {
340   /**
341    * @ngInject
342    * @param {ng.IScope} $scope
343    * @param {import('../../utils/utils.service').Utils} Utils
344    */
345   constructor($scope, Utils) {
346     this.Scope = $scope;
347     this.Utils = Utils;
348     this.formItem = {};
349   }
350
351   init() {
352     this.formItem = this.Utils.extend(this.formItem || {}, {
353       config: {},
354       options: []
355     });
356     this.selectedOptions = this._getSelectedOptions();
357     this.disableOptions = false;
358     this.isValid = true;
359
360     this._updateView();
361
362     this._updateValidity();
363
364     if (this.isPreview()) {
365       this._enableWatchers();
366     }
367   }
368
369   toggleSelectedOption() {
370     this.selectedOptions = this._getSelectedOptions();
371
372     this._updateView();
373
374     this._updateValidity();
375   }
376
377   _getSelectedOptions() {
378     return this.formItem.options.filter(option => {
379       return option.selected;
380     });
381   }
382
383   _updateView() {
384     if (!this.formItem.config.maxSelections) {
385       this.disableOptions = false;
386     } else if (this.selectedOptions.length === this.formItem.config.maxSelections) {
387       this.disableOptions = true;
388     } else {
389       this.disableOptions = false;
390     }
391   }
392
393   _updateValidity() {
394     if (this.formItem.config.required) {
395       this.isValid = this.selectedOptions.length > 0;
396     } else {
397       this.isValid = true;
398     }
399
400     this.form.$setValidity('minSelections', this.isValid);
401   }
402
403   _enableWatchers() {
404     this.Scope.$watch('CheckboxesView.formItem.config.required', newVal => {
405       if (newVal !== undefined) {
406         this._updateView();
407
408         this._updateValidity();
409       }
410     });
411   }
412
413 }
414
415 CheckboxesViewCtrl.$inject = ["$scope", "Utils"];
416
417
418 /***/ }),
419
420 /***/ "./src/lib/directives/checkboxes-item/checkboxes-view.directive.js":
421 /*!*************************************************************************!*\
422   !*** ./src/lib/directives/checkboxes-item/checkboxes-view.directive.js ***!
423   \*************************************************************************/
424 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
425
426 __webpack_require__.r(__webpack_exports__);
427 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
428 /* harmony export */   "CheckboxesView": () => (/* binding */ CheckboxesView)
429 /* harmony export */ });
430 /* harmony import */ var _checkboxes_view_tpl_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./checkboxes-view.tpl.html */ "./src/lib/directives/checkboxes-item/checkboxes-view.tpl.html");
431 /* harmony import */ var _checkboxes_view_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./checkboxes-view.controller */ "./src/lib/directives/checkboxes-item/checkboxes-view.controller.js");
432
433
434 /**
435  * @implements {ng.IDirective}
436  */
437
438 class CheckboxesView {
439   /**
440    * @ngInject
441    * @param {ng.ITimeoutService} $timeout
442    */
443   constructor($timeout) {
444     this.$timeout = $timeout;
445     this.restrict = 'E';
446     this.template = _checkboxes_view_tpl_html__WEBPACK_IMPORTED_MODULE_0__["default"];
447     this.scope = {
448       formItem: '=',
449       isPreview: '&',
450       form: '='
451     };
452     this.controller = _checkboxes_view_controller__WEBPACK_IMPORTED_MODULE_1__.CheckboxesViewCtrl;
453     this.controllerAs = 'CheckboxesView';
454     this.bindToController = true;
455   }
456   /**
457    * @see https://docs.angularjs.org/api/ng/service/$compile#-link-
458    * @param {ng.IScope} scope - scope
459    * @param {JQLite} element - element
460    * @param {ng.IAttributes} attrs - attributes
461    * @param {CheckboxesViewCtrl} ctrl - this instance controller
462    * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)
463    */
464
465
466   link(scope, element, attrs, ctrl) {
467     //this timeout is placed here in order to make sure that the creator directive of this view is finished its work
468     this.$timeout(function () {
469       ctrl.init();
470     }, 50);
471   }
472
473 }
474
475 CheckboxesView.$inject = ["$timeout"];
476
477
478 /***/ }),
479
480 /***/ "./src/lib/directives/form-item/form-item.controller.js":
481 /*!**************************************************************!*\
482   !*** ./src/lib/directives/form-item/form-item.controller.js ***!
483   \**************************************************************/
484 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
485
486 __webpack_require__.r(__webpack_exports__);
487 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
488 /* harmony export */   "FormItemCtrl": () => (/* binding */ FormItemCtrl)
489 /* harmony export */ });
490 const DEFAULT_TITLE = {
491   upload: 'Attachment',
492   agreement: 'Agreement',
493   input: 'Field',
494   chooseFromList: 'Select',
495   label: 'Label',
496   multipleChoices: 'Choice',
497   matrix: 'Matrix',
498   checkboxes: 'Options',
499   textarea: 'Text'
500 };
501
502 class FormItemCtrl {
503   /**
504    * @ngInject
505    * @param {ng.IScope} $scope
506    * @param {ng.IAttributes} $attrs
507    * @param {import('../../utils/utils.service').Utils} Utils
508    */
509   constructor($scope, $attrs, Utils) {
510     this.Attrs = $attrs;
511     this.Utils = Utils;
512     this.templates = {
513       upload: '<upload-item item="FormItem.item"></upload-item>',
514       agreement: '<agreement-item item="FormItem.item"></agreement-item>',
515       input: '<input-item item="FormItem.item"></input-item>',
516       chooseFromList: '<bet-form-choose-from-list item="FormItem.item"></bet-form-choose-from-list>',
517       label: '<label-item item="FormItem.item"></label-item>',
518       multipleChoices: '<radio-button-item item="FormItem.item"></radio-button-item>',
519       matrix: '<matrix-item item="FormItem.item"></matrix-item>',
520       checkboxes: '<checkboxes-item item="FormItem.item"></checkboxes-item>',
521       textarea: '<textarea-item item="FormItem.item"></textarea-item>'
522     };
523     this.item = {};
524     this.scope = $scope;
525   }
526
527   init() {
528     this.item = this.Utils.extend(this.item || {}, {
529       type: this.Attrs.type,
530       props: {
531         title: DEFAULT_TITLE[this.Attrs.type],
532         helpText: ''
533       },
534       config: {
535         required: false
536       }
537     });
538   }
539
540   deleteClicked() {
541     this.onDelete({
542       item: this.item,
543       index: this.index()
544     });
545   }
546   /**
547    *
548    * @param {string} type
549    */
550
551
552   _getItemTemplate(type) {
553     const prefix = '' + '<div class="form-item-container">' + '<div class="form-item-actions">' + '<md-button class="md-button" ng-if="FormItem.Attrs.onDelete" ng-click="FormItem.deleteClicked()"> ' + '<md-icon class="material-icons small">delete</md-icon>' + '</md-button>' + '<md-button class="md-button" ng-if="FormItem.Attrs.onUp" ng-click="FormItem.onUp({item: FormItem.item, index: FormItem.index()})"> ' + '<md-icon class="material-icons small">arrow_drop_up</md-icon>' + '</md-button>' + '<md-button class="md-button" ng-if="FormItem.Attrs.onDown" ng-click="FormItem.onDown({item: FormItem.item, index: FormItem.index()})"> ' + '<md-icon class="material-icons small">arrow_drop_down</md-icon>' + '</md-button>' + '</div>' + '<md-input-container>' + '<label>Field Title</label>' + '<input ng-model="FormItem.item.props.title"/>' + '</md-input-container>' + '<md-input-container>' + '<label>Help Text</label>' + '<input ng-model="FormItem.item.props.helpText" />' + '</md-input-container>';
554     const suffix = '' + '<md-input-container>' + '<md-checkbox ng-model="FormItem.item.config.required">Required field</md-checkbox>' + '</md-input-container>' + '</div>';
555     return prefix + this.templates[type] + suffix;
556   }
557
558 }
559
560 FormItemCtrl.$inject = ["$scope", "$attrs", "Utils"];
561
562
563 /***/ }),
564
565 /***/ "./src/lib/directives/form-item/form-item.directive.js":
566 /*!*************************************************************!*\
567   !*** ./src/lib/directives/form-item/form-item.directive.js ***!
568   \*************************************************************/
569 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
570
571 __webpack_require__.r(__webpack_exports__);
572 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
573 /* harmony export */   "FormItem": () => (/* binding */ FormItem)
574 /* harmony export */ });
575 /* harmony import */ var _form_item_tpl_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./form-item.tpl.html */ "./src/lib/directives/form-item/form-item.tpl.html");
576 /* harmony import */ var _form_item_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./form-item.controller */ "./src/lib/directives/form-item/form-item.controller.js");
577
578
579 /**
580  * @implements {ng.IDirective}
581  */
582
583 class FormItem {
584   /**
585    * @ngInject
586    * @param {ng.ICompileService} $compile
587    */
588   constructor($compile) {
589     this.$compile = $compile;
590     this.restrict = 'E';
591     this.scope = {
592       item: '=',
593       onDelete: '&',
594       onUp: '&',
595       onDown: '&',
596       index: '&'
597     };
598     this.controller = _form_item_controller__WEBPACK_IMPORTED_MODULE_1__.FormItemCtrl;
599     this.controllerAs = 'FormItem';
600     this.bindToController = true;
601     this.template = _form_item_tpl_html__WEBPACK_IMPORTED_MODULE_0__["default"];
602   }
603   /**
604    * @see https://docs.angularjs.org/api/ng/service/$compile#-link-
605    * @param {ng.IScope} scope - scope
606    * @param {JQLite} element - element
607    * @param {ng.IAttributes} attrs - attributes
608    * @param {FormItemCtrl} ctrl - this instance controller
609    * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)
610    */
611
612
613   link(scope, element, attrs, ctrl) {
614     const template = ctrl._getItemTemplate(attrs.type);
615
616     const el = this.$compile(template)(scope); // element.append(el)
617     // if done like above adds twice
618     // element.append(this.$compile(template)(scope))
619
620     ctrl.init();
621     return el;
622   }
623
624 }
625
626 FormItem.$inject = ["$compile"];
627
628
629 /***/ }),
630
631 /***/ "./src/lib/directives/form-items-container/form-items-container.controller.js":
632 /*!************************************************************************************!*\
633   !*** ./src/lib/directives/form-items-container/form-items-container.controller.js ***!
634   \************************************************************************************/
635 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
636
637 __webpack_require__.r(__webpack_exports__);
638 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
639 /* harmony export */   "FormItemsContainerCtrl": () => (/* binding */ FormItemsContainerCtrl)
640 /* harmony export */ });
641 class FormItemsContainerCtrl {
642   /**
643    * @ngInject
644    */
645   constructor() {
646     /**
647      * @type {import('../../main/main.controller').FormConfig}
648      */
649     this.form = {
650       items: []
651     };
652   }
653   /**
654    *
655    * @param {import('../../main/main.controller').Item} item
656    * @param {number} index
657    */
658
659
660   delete(item, index) {
661     this.form.items.splice(index, 1);
662   }
663   /**
664    *
665    * @param {import('../../main/main.controller').Item} item
666    * @param {number} index
667    */
668
669
670   up(item, index) {
671     if (index !== 0) {
672       const prevItem = this.form.items[index - 1];
673       this.form.items[index] = prevItem;
674       this.form.items[index - 1] = item;
675     }
676   }
677   /**
678    *
679    * @param {import('../../main/main.controller').Item} item
680    * @param {number} index
681    */
682
683
684   down(item, index) {
685     if (index !== this.form.items.length - 1) {
686       const nextItem = this.form.items[index + 1];
687       this.form.items[index] = nextItem;
688       this.form.items[index + 1] = item;
689     }
690   }
691
692 }
693
694 FormItemsContainerCtrl.$inject = [];
695
696
697 /***/ }),
698
699 /***/ "./src/lib/directives/form-items-container/form-items-container.directive.js":
700 /*!***********************************************************************************!*\
701   !*** ./src/lib/directives/form-items-container/form-items-container.directive.js ***!
702   \***********************************************************************************/
703 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
704
705 __webpack_require__.r(__webpack_exports__);
706 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
707 /* harmony export */   "FormItemsContainer": () => (/* binding */ FormItemsContainer)
708 /* harmony export */ });
709 /* harmony import */ var _form_items_container_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./form-items-container.controller */ "./src/lib/directives/form-items-container/form-items-container.controller.js");
710 /* harmony import */ var _form_items_container_tpl_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./form-items-container.tpl.html */ "./src/lib/directives/form-items-container/form-items-container.tpl.html");
711
712
713 /**
714  * @implements {ng.IDirective}
715  */
716
717 class FormItemsContainer {
718   /**
719    * @ngInject
720    */
721   constructor() {
722     this.restrict = 'E';
723     this.scope = {
724       form: '='
725     };
726     this.template = _form_items_container_tpl_html__WEBPACK_IMPORTED_MODULE_1__["default"];
727     this.controller = _form_items_container_controller__WEBPACK_IMPORTED_MODULE_0__.FormItemsContainerCtrl;
728     this.controllerAs = 'container';
729     this.bindToController = true;
730   }
731
732 }
733
734 FormItemsContainer.$inject = [];
735
736
737 /***/ }),
738
739 /***/ "./src/lib/directives/form-view/form-view.controller.js":
740 /*!**************************************************************!*\
741   !*** ./src/lib/directives/form-view/form-view.controller.js ***!
742   \**************************************************************/
743 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
744
745 __webpack_require__.r(__webpack_exports__);
746 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
747 /* harmony export */   "FormViewCtrl": () => (/* binding */ FormViewCtrl)
748 /* harmony export */ });
749 class FormViewCtrl {
750   /**
751    * @ngInject
752    * @param {ng.IScù} $scope
753    */
754   constructor($scope) {
755     this.Scope = $scope;
756   }
757
758   init() {}
759
760 }
761
762 FormViewCtrl.$inject = ["$scope"];
763
764
765 /***/ }),
766
767 /***/ "./src/lib/directives/form-view/form-view.directive.js":
768 /*!*************************************************************!*\
769   !*** ./src/lib/directives/form-view/form-view.directive.js ***!
770   \*************************************************************/
771 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
772
773 __webpack_require__.r(__webpack_exports__);
774 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
775 /* harmony export */   "FormView": () => (/* binding */ FormView)
776 /* harmony export */ });
777 /* harmony import */ var _form_view_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./form-view.controller */ "./src/lib/directives/form-view/form-view.controller.js");
778 /* harmony import */ var _form_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./form-view.tpl.html */ "./src/lib/directives/form-view/form-view.tpl.html");
779
780
781 /**
782  * @implements {ng.IDirective}
783  */
784
785 class FormView {
786   /**
787    * @ngInject
788    */
789   constructor() {
790     this.restrict = 'E';
791     this.template = _form_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__["default"];
792     this.scope = {
793       form: '='
794     };
795     this.controller = _form_view_controller__WEBPACK_IMPORTED_MODULE_0__.FormViewCtrl;
796     this.controllerAs = 'FormView';
797     this.bindToController = true;
798   }
799   /**
800    * @see https://docs.angularjs.org/api/ng/service/$compile#-link-
801    * @param {ng.IScope} scope - scope
802    * @param {JQLite} element - element
803    * @param {ng.IAttributes} attrs - attributes
804    * @param {FormViewCtrl} ctrl - this instance controller
805    * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)
806    */
807
808
809   link(scope, element, attrs, ctrl) {
810     ctrl.init();
811   }
812
813 }
814
815 FormView.$inject = [];
816
817
818 /***/ }),
819
820 /***/ "./src/lib/directives/input-item/input-item.controller.js":
821 /*!****************************************************************!*\
822   !*** ./src/lib/directives/input-item/input-item.controller.js ***!
823   \****************************************************************/
824 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
825
826 __webpack_require__.r(__webpack_exports__);
827 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
828 /* harmony export */   "InputItemCtrl": () => (/* binding */ InputItemCtrl)
829 /* harmony export */ });
830 class InputItemCtrl {
831   /**
832    * @ngInject
833    * @param {import('../../utils/utils.service').Utils} Utils
834    * @param {JQLite} $element
835    */
836   constructor(Utils, $element) {
837     this.Element = $element;
838     this.item = Utils.extend(this.item || {}, {
839       config: {
840         type: 'text'
841       }
842     });
843   }
844
845 }
846
847 InputItemCtrl.$inject = ["Utils", "$element"];
848
849
850 /***/ }),
851
852 /***/ "./src/lib/directives/input-item/input-item.directive.js":
853 /*!***************************************************************!*\
854   !*** ./src/lib/directives/input-item/input-item.directive.js ***!
855   \***************************************************************/
856 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
857
858 __webpack_require__.r(__webpack_exports__);
859 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
860 /* harmony export */   "InputItem": () => (/* binding */ InputItem)
861 /* harmony export */ });
862 /* harmony import */ var _input_item_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./input-item.controller */ "./src/lib/directives/input-item/input-item.controller.js");
863 /* harmony import */ var _input_item_tpl_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./input-item.tpl.html */ "./src/lib/directives/input-item/input-item.tpl.html");
864
865
866 /**
867  * @implements {ng.IDirective}
868  */
869
870 class InputItem {
871   /**
872    * @ngInject
873    */
874   constructor() {
875     this.restrict = 'E';
876     this.template = _input_item_tpl_html__WEBPACK_IMPORTED_MODULE_1__["default"];
877     this.scope = {
878       item: '='
879     };
880     this.controller = _input_item_controller__WEBPACK_IMPORTED_MODULE_0__.InputItemCtrl;
881     this.controllerAs = 'Input';
882     this.bindToController = true;
883   }
884
885 }
886
887 InputItem.$inject = [];
888
889
890 /***/ }),
891
892 /***/ "./src/lib/directives/input-item/input-view.controller.js":
893 /*!****************************************************************!*\
894   !*** ./src/lib/directives/input-item/input-view.controller.js ***!
895   \****************************************************************/
896 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
897
898 __webpack_require__.r(__webpack_exports__);
899 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
900 /* harmony export */   "InputViewCtrl": () => (/* binding */ InputViewCtrl)
901 /* harmony export */ });
902 class InputViewCtrl {
903   /**
904    * @ngInject
905    * @param {import('../../utils/utils.service').Utils} Utils
906    */
907   constructor(Utils) {
908     this.Utils = Utils;
909     this.formItem = {};
910   }
911
912   init() {
913     this.Utils.extend(this.formItem, {
914       config: {}
915     });
916   }
917
918 }
919
920 InputViewCtrl.$inject = ["Utils"];
921
922
923 /***/ }),
924
925 /***/ "./src/lib/directives/input-item/input-view.directive.js":
926 /*!***************************************************************!*\
927   !*** ./src/lib/directives/input-item/input-view.directive.js ***!
928   \***************************************************************/
929 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
930
931 __webpack_require__.r(__webpack_exports__);
932 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
933 /* harmony export */   "InputView": () => (/* binding */ InputView)
934 /* harmony export */ });
935 /* harmony import */ var _input_view_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./input-view.controller */ "./src/lib/directives/input-item/input-view.controller.js");
936 /* harmony import */ var _input_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./input-view.tpl.html */ "./src/lib/directives/input-item/input-view.tpl.html");
937
938
939 /**
940  * @implements {ng.IDirective}
941  */
942
943 class InputView {
944   /**
945    * @ngInject
946    * @param {ng.ITimeoutService} $timeout
947    */
948   constructor($timeout) {
949     this.$timeout = $timeout;
950     this.restrict = 'E';
951     this.template = _input_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__["default"];
952     this.scope = {
953       formItem: '=',
954       form: '='
955     };
956     this.controller = _input_view_controller__WEBPACK_IMPORTED_MODULE_0__.InputViewCtrl;
957     this.controllerAs = 'InputView';
958     this.bindToController = true;
959   }
960   /**
961    * @see https://docs.angularjs.org/api/ng/service/$compile#-link-
962    * @param {ng.IScope} scope - scope
963    * @param {JQLite} element - element
964    * @param {ng.IAttributes} attrs - attributes
965    * @param {FormItemCtrl} ctrl - this instance controller
966    * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)
967    */
968
969
970   link(scope, elem, attrs, ctrl) {
971     //this timeout is placed here in order to make sure that the creator directive of this view is finished its work
972     this.$timeout(function () {
973       ctrl.init();
974     }, 50);
975   }
976
977 }
978
979 InputView.$inject = ["$timeout"];
980
981
982 /***/ }),
983
984 /***/ "./src/lib/directives/label-item/label-item.controller.js":
985 /*!****************************************************************!*\
986   !*** ./src/lib/directives/label-item/label-item.controller.js ***!
987   \****************************************************************/
988 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
989
990 __webpack_require__.r(__webpack_exports__);
991 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
992 /* harmony export */   "LabelItemCtrl": () => (/* binding */ LabelItemCtrl)
993 /* harmony export */ });
994 class LabelItemCtrl {
995   /**
996    * @ngInject
997    * @param {JQLite} $element
998    */
999   constructor($element) {
1000     this.Element = $element;
1001   }
1002
1003 }
1004
1005 LabelItemCtrl.$inject = ["$element"];
1006
1007
1008 /***/ }),
1009
1010 /***/ "./src/lib/directives/label-item/label-item.directive.js":
1011 /*!***************************************************************!*\
1012   !*** ./src/lib/directives/label-item/label-item.directive.js ***!
1013   \***************************************************************/
1014 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1015
1016 __webpack_require__.r(__webpack_exports__);
1017 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1018 /* harmony export */   "LabelItem": () => (/* binding */ LabelItem)
1019 /* harmony export */ });
1020 /* harmony import */ var _label_item_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./label-item.controller */ "./src/lib/directives/label-item/label-item.controller.js");
1021 /* harmony import */ var _label_item_tpl_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./label-item.tpl.html */ "./src/lib/directives/label-item/label-item.tpl.html");
1022
1023
1024 /**
1025  * @implements {ng.IDirective}
1026  */
1027
1028 class LabelItem {
1029   constructor() {
1030     this.restrict = 'E';
1031     this.template = _label_item_tpl_html__WEBPACK_IMPORTED_MODULE_1__["default"];
1032     this.scope = {
1033       item: '='
1034     };
1035     this.controller = _label_item_controller__WEBPACK_IMPORTED_MODULE_0__.LabelItemCtrl;
1036     this.controllerAs = 'Label';
1037     this.bindToController = true;
1038   }
1039
1040 }
1041
1042
1043
1044 /***/ }),
1045
1046 /***/ "./src/lib/directives/label-item/label-view.controller.js":
1047 /*!****************************************************************!*\
1048   !*** ./src/lib/directives/label-item/label-view.controller.js ***!
1049   \****************************************************************/
1050 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1051
1052 __webpack_require__.r(__webpack_exports__);
1053 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1054 /* harmony export */   "LabelViewCtrl": () => (/* binding */ LabelViewCtrl)
1055 /* harmony export */ });
1056 class LabelViewCtrl {
1057   /**
1058    * @ngInject
1059    * @param {import('../../utils/utils.service').Utils} Utils
1060    * @param {ng.ISCEService} $sce
1061    */
1062   constructor(Utils, $sce) {
1063     this.Utils = Utils;
1064     this.$sce = $sce;
1065   }
1066
1067   init() {
1068     this.Utils.extend(this.formItem, {});
1069   }
1070
1071   get sanitizedTitle() {
1072     return this.$sce.trustAsHtml(this.formItem.value);
1073   }
1074
1075 }
1076
1077 LabelViewCtrl.$inject = ["Utils", "$sce"];
1078
1079
1080 /***/ }),
1081
1082 /***/ "./src/lib/directives/label-item/label-view.directive.js":
1083 /*!***************************************************************!*\
1084   !*** ./src/lib/directives/label-item/label-view.directive.js ***!
1085   \***************************************************************/
1086 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1087
1088 __webpack_require__.r(__webpack_exports__);
1089 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1090 /* harmony export */   "LabelView": () => (/* binding */ LabelView)
1091 /* harmony export */ });
1092 /* harmony import */ var _label_view_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./label-view.controller */ "./src/lib/directives/label-item/label-view.controller.js");
1093 /* harmony import */ var _label_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./label-view.tpl.html */ "./src/lib/directives/label-item/label-view.tpl.html");
1094
1095
1096 /**
1097  * @implements {ng.IDirective}
1098  */
1099
1100 class LabelView {
1101   /**
1102    * @ngInject
1103    * @param {ng.ITimeoutService} $timeout
1104    */
1105   constructor($timeout) {
1106     this.$timeout = $timeout;
1107     this.restrict = 'E';
1108     this.template = _label_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__["default"];
1109     this.scope = {
1110       formItem: '=',
1111       form: '='
1112     };
1113     this.controller = _label_view_controller__WEBPACK_IMPORTED_MODULE_0__.LabelViewCtrl;
1114     this.controllerAs = 'LabelView';
1115     this.bindToController = true;
1116   }
1117   /**
1118    * @see https://docs.angularjs.org/api/ng/service/$compile#-link-
1119    * @param {ng.IScope} scope - scope
1120    * @param {JQLite} element - element
1121    * @param {ng.IAttributes} attrs - attributes
1122    * @param {LabelViewCtrl} ctrl - this instance controller
1123    * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)
1124    */
1125
1126
1127   link(scope, elem, attrs, ctrl) {
1128     //this timeout is placed here in order to make sure that the creator directive of this view is finished its work
1129     this.$timeout(function () {
1130       ctrl.init();
1131     }, 50);
1132   }
1133
1134 }
1135
1136 LabelView.$inject = ["$timeout"];
1137
1138
1139 /***/ }),
1140
1141 /***/ "./src/lib/directives/matrix-item/matrix-item.controller.js":
1142 /*!******************************************************************!*\
1143   !*** ./src/lib/directives/matrix-item/matrix-item.controller.js ***!
1144   \******************************************************************/
1145 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1146
1147 __webpack_require__.r(__webpack_exports__);
1148 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1149 /* harmony export */   "MatrixItemCtrl": () => (/* binding */ MatrixItemCtrl)
1150 /* harmony export */ });
1151 class MatrixItemCtrl {
1152   /**
1153    * @ngInject
1154    * @param {import('../../utils/utils.service').Utils} Utils
1155    * @param {ng.IDocumentService} $document
1156    */
1157   constructor(Utils, $document) {
1158     this.RowContainer = angular.element($document[0].querySelector('.rowContainer'));
1159     this.ColumnContainer = angular.element($document[0].querySelector('.columnContainer'));
1160     this.item = Utils.extend(this.item || {}, {
1161       config: {
1162         rows: [{
1163           value: ''
1164         }],
1165         columns: [{
1166           value: ''
1167         }]
1168       }
1169     });
1170   }
1171   /**
1172    *
1173    * @param {number} index
1174    */
1175
1176
1177   deleteRow(index) {
1178     this.item.config.rows.splice(index, 1);
1179   }
1180
1181   addRow() {
1182     this.item.config.rows.push({
1183       value: ''
1184     });
1185     setTimeout(function () {
1186       const options = this.RowContainer.find('input');
1187       const addedOption = options[options.length - 1];
1188       addedOption.focus();
1189     }.bind(this), 0);
1190   }
1191   /**
1192    *
1193    * @param {number} index
1194    */
1195
1196
1197   deleteColumn(index) {
1198     this.item.config.columns.splice(index, 1);
1199   }
1200
1201   addColumn() {
1202     this.item.config.columns.push({
1203       value: ''
1204     });
1205     setTimeout(() => {
1206       const options = this.ColumnContainer.find('input');
1207       const addedOption = options[options.length - 1];
1208       addedOption.focus();
1209     }, 0);
1210   }
1211
1212 }
1213
1214 MatrixItemCtrl.$inject = ["Utils", "$document"];
1215
1216
1217 /***/ }),
1218
1219 /***/ "./src/lib/directives/matrix-item/matrix-item.directive.js":
1220 /*!*****************************************************************!*\
1221   !*** ./src/lib/directives/matrix-item/matrix-item.directive.js ***!
1222   \*****************************************************************/
1223 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1224
1225 __webpack_require__.r(__webpack_exports__);
1226 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1227 /* harmony export */   "MatrixItem": () => (/* binding */ MatrixItem)
1228 /* harmony export */ });
1229 /* harmony import */ var _matrix_item_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./matrix-item.controller */ "./src/lib/directives/matrix-item/matrix-item.controller.js");
1230 /* harmony import */ var _matrix_item_tpl_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./matrix-item.tpl.html */ "./src/lib/directives/matrix-item/matrix-item.tpl.html");
1231
1232
1233 /**
1234  * @implements {ng.IDirective}
1235  */
1236
1237 class MatrixItem {
1238   /**
1239    * @ngInject
1240    */
1241   constructor() {
1242     this.restrict = 'E';
1243     this.template = _matrix_item_tpl_html__WEBPACK_IMPORTED_MODULE_1__["default"];
1244     this.scope = {
1245       item: '='
1246     };
1247     this.controller = _matrix_item_controller__WEBPACK_IMPORTED_MODULE_0__.MatrixItemCtrl;
1248     this.controllerAs = 'Matrix';
1249     this.bindToController = true;
1250   }
1251
1252 }
1253
1254 MatrixItem.$inject = [];
1255
1256
1257 /***/ }),
1258
1259 /***/ "./src/lib/directives/matrix-item/matrix-view.controller.js":
1260 /*!******************************************************************!*\
1261   !*** ./src/lib/directives/matrix-item/matrix-view.controller.js ***!
1262   \******************************************************************/
1263 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1264
1265 __webpack_require__.r(__webpack_exports__);
1266 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1267 /* harmony export */   "MatrixViewCtrl": () => (/* binding */ MatrixViewCtrl)
1268 /* harmony export */ });
1269 class MatrixViewCtrl {
1270   /**
1271    * @ngInject
1272    * @param {ng.IScope} $scope
1273    * @param {import('../../utils/utils.service').Utils} Utils
1274    */
1275   constructor($scope, Utils) {
1276     this.Scope = $scope;
1277     this.Utils = Utils;
1278     this.isValid = true;
1279     this.formItem = {};
1280   }
1281
1282   init() {
1283     this.formItem = this.Utils.extend(this.formItem, {
1284       config: {
1285         rows: [],
1286         columns: []
1287       }
1288     });
1289
1290     this._updateValidity();
1291
1292     if (this.isPreview()) {
1293       this._enableWatchers();
1294     }
1295   }
1296
1297   _updateValidity() {
1298     let valid = true;
1299
1300     if (this.formItem.config.required) {
1301       valid = !this.formItem.config.rows.some(row => typeof row['selected'] === 'undefined'); //   for (let i = 0; i < this.formItem.config.rows.length; i++) {
1302       //     if (typeof this.formItem.config.rows[i]['selected'] === 'undefined') {
1303       //       valid = false
1304       //       break
1305       //     }
1306       //   }
1307     }
1308
1309     this.isValid = valid;
1310     this.form.$setValidity('required', this.isValid);
1311   }
1312
1313   _enableWatchers() {
1314     this.Scope.$watchGroup(['MatrixView.formItem.config.required', 'MatrixView.formItem.config.rows.length'], newVal => {
1315       if (newVal !== undefined) {
1316         this._updateValidity();
1317       }
1318     });
1319   }
1320
1321 }
1322
1323 MatrixViewCtrl.$inject = ["$scope", "Utils"];
1324
1325
1326 /***/ }),
1327
1328 /***/ "./src/lib/directives/matrix-item/matrix-view.directive.js":
1329 /*!*****************************************************************!*\
1330   !*** ./src/lib/directives/matrix-item/matrix-view.directive.js ***!
1331   \*****************************************************************/
1332 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1333
1334 __webpack_require__.r(__webpack_exports__);
1335 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1336 /* harmony export */   "MatrixView": () => (/* binding */ MatrixView)
1337 /* harmony export */ });
1338 /* harmony import */ var _matrix_view_tpl_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./matrix-view.tpl.html */ "./src/lib/directives/matrix-item/matrix-view.tpl.html");
1339 /* harmony import */ var _matrix_view_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./matrix-view.controller */ "./src/lib/directives/matrix-item/matrix-view.controller.js");
1340
1341
1342 /**
1343  * @implements {ng.IDirective}
1344  */
1345
1346 class MatrixView {
1347   /**
1348    * @ngInject
1349    * @param {ng.ITimeoutService} $timeout
1350    */
1351   constructor($timeout) {
1352     this.$timeout = $timeout;
1353     this.restrict = 'E';
1354     this.template = _matrix_view_tpl_html__WEBPACK_IMPORTED_MODULE_0__["default"];
1355     this.scope = {
1356       formItem: '=',
1357       isPreview: '&',
1358       form: '='
1359     };
1360     this.controller = _matrix_view_controller__WEBPACK_IMPORTED_MODULE_1__.MatrixViewCtrl;
1361     this.controllerAs = 'MatrixView';
1362     this.bindToController = true;
1363   }
1364   /**
1365    * @see https://docs.angularjs.org/api/ng/service/$compile#-link-
1366    * @param {ng.IScope} scope - scope
1367    * @param {JQLite} element - element
1368    * @param {ng.IAttributes} attrs - attributes
1369    * @param {MatrixViewCtrl} ctrl - this instance controller
1370    * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)
1371    */
1372
1373
1374   link(scope, elem, attrs, ctrl) {
1375     //this timeout is placed here in order to make sure that the creator directive of this view is finished its work
1376     this.$timeout(function () {
1377       ctrl.init();
1378     }, 50);
1379   }
1380
1381 }
1382
1383 MatrixView.$inject = ["$timeout"];
1384
1385
1386 /***/ }),
1387
1388 /***/ "./src/lib/directives/radio-button-item/radio-button-item.controller.js":
1389 /*!******************************************************************************!*\
1390   !*** ./src/lib/directives/radio-button-item/radio-button-item.controller.js ***!
1391   \******************************************************************************/
1392 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1393
1394 __webpack_require__.r(__webpack_exports__);
1395 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1396 /* harmony export */   "RadioButtonItemCtrl": () => (/* binding */ RadioButtonItemCtrl)
1397 /* harmony export */ });
1398 class RadioButtonItemCtrl {
1399   /**
1400    * @ngInject
1401    * @param {import('../../utils/utils.service').Utils} Utils
1402    * @param {JQLite} $element
1403    */
1404   constructor(Utils, $element) {
1405     this.Element = $element;
1406     this.item = Utils.extend(this.item || {}, {
1407       config: {},
1408       options: [{
1409         value: ''
1410       }]
1411     });
1412   }
1413
1414   deleteOption(index) {
1415     this.item.options.splice(index, 1);
1416   }
1417
1418   addOption() {
1419     this.item.options.push({
1420       value: ''
1421     });
1422     setTimeout(() => {
1423       const options = this.Element.find('input');
1424       const addedOption = options[options.length - 1];
1425       addedOption.focus();
1426     }, 0);
1427   }
1428
1429 }
1430
1431 RadioButtonItemCtrl.$inject = ["Utils", "$element"];
1432
1433
1434 /***/ }),
1435
1436 /***/ "./src/lib/directives/radio-button-item/radio-button-item.directive.js":
1437 /*!*****************************************************************************!*\
1438   !*** ./src/lib/directives/radio-button-item/radio-button-item.directive.js ***!
1439   \*****************************************************************************/
1440 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1441
1442 __webpack_require__.r(__webpack_exports__);
1443 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1444 /* harmony export */   "RadioButtonItem": () => (/* binding */ RadioButtonItem)
1445 /* harmony export */ });
1446 /* harmony import */ var _radio_button_item_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./radio-button-item.controller */ "./src/lib/directives/radio-button-item/radio-button-item.controller.js");
1447 /* harmony import */ var _radio_button_item_tpl_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./radio-button-item.tpl.html */ "./src/lib/directives/radio-button-item/radio-button-item.tpl.html");
1448
1449
1450 /**
1451  * @implements {ng.IDirective}
1452  */
1453
1454 class RadioButtonItem {
1455   /**
1456    * @ngInject
1457    */
1458   constructor() {
1459     this.restrict = 'E';
1460     this.template = _radio_button_item_tpl_html__WEBPACK_IMPORTED_MODULE_1__["default"];
1461     this.scope = {
1462       item: '='
1463     };
1464     this.controller = _radio_button_item_controller__WEBPACK_IMPORTED_MODULE_0__.RadioButtonItemCtrl;
1465     this.controllerAs = 'RadioButton';
1466     this.bindToController = true;
1467   }
1468
1469 }
1470
1471 RadioButtonItem.$inject = [];
1472
1473
1474 /***/ }),
1475
1476 /***/ "./src/lib/directives/radio-button-item/radio-button-view.controller.js":
1477 /*!******************************************************************************!*\
1478   !*** ./src/lib/directives/radio-button-item/radio-button-view.controller.js ***!
1479   \******************************************************************************/
1480 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1481
1482 __webpack_require__.r(__webpack_exports__);
1483 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1484 /* harmony export */   "RadioButtonViewCtrl": () => (/* binding */ RadioButtonViewCtrl)
1485 /* harmony export */ });
1486 class RadioButtonViewCtrl {
1487   /**
1488    * @ngInject
1489    * @param {import('../../utils/utils.service').Utils} Utils
1490    */
1491   constructor(Utils) {
1492     this.Utils = Utils;
1493     this.formItem = {};
1494   }
1495
1496   init() {
1497     this.formItem = this.Utils.extend(this.formItem, {
1498       config: {},
1499       options: []
1500     });
1501   }
1502
1503 }
1504
1505 RadioButtonViewCtrl.$inject = ["Utils"];
1506
1507
1508 /***/ }),
1509
1510 /***/ "./src/lib/directives/radio-button-item/radio-button-view.directive.js":
1511 /*!*****************************************************************************!*\
1512   !*** ./src/lib/directives/radio-button-item/radio-button-view.directive.js ***!
1513   \*****************************************************************************/
1514 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1515
1516 __webpack_require__.r(__webpack_exports__);
1517 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1518 /* harmony export */   "RadioButtonView": () => (/* binding */ RadioButtonView)
1519 /* harmony export */ });
1520 /* harmony import */ var _radio_button_view_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./radio-button-view.controller */ "./src/lib/directives/radio-button-item/radio-button-view.controller.js");
1521 /* harmony import */ var _radio_button_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./radio-button-view.tpl.html */ "./src/lib/directives/radio-button-item/radio-button-view.tpl.html");
1522
1523
1524
1525 class RadioButtonView {
1526   /**
1527    * @ngInject
1528    * @param {ng.ITimeoutService} $timeout
1529    */
1530   constructor($timeout) {
1531     this.$timeout = $timeout;
1532     this.restrict = 'E';
1533     this.template = _radio_button_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__["default"];
1534     this.scope = {
1535       formItem: '=',
1536       isPreview: '&',
1537       form: '='
1538     };
1539     this.controller = _radio_button_view_controller__WEBPACK_IMPORTED_MODULE_0__.RadioButtonViewCtrl;
1540     this.controllerAs = 'RadioButtonView';
1541     this.bindToController = true;
1542   }
1543   /**
1544    * @see https://docs.angularjs.org/api/ng/service/$compile#-link-
1545    * @param {ng.IScope} scope - scope
1546    * @param {JQLite} element - element
1547    * @param {ng.IAttributes} attrs - attributes
1548    * @param {RadioButtonViewCtrl} ctrl - this instance controller
1549    * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)
1550    */
1551
1552
1553   link(scope, elem, attrs, ctrl) {
1554     //this timeout is placed here in order to make sure that the creator directive of this view is finished its work
1555     this.$timeout(function () {
1556       ctrl.init();
1557     }, 50);
1558   }
1559
1560 }
1561
1562 RadioButtonView.$inject = ["$timeout"];
1563
1564
1565 /***/ }),
1566
1567 /***/ "./src/lib/directives/select-item/select-item.controller.js":
1568 /*!******************************************************************!*\
1569   !*** ./src/lib/directives/select-item/select-item.controller.js ***!
1570   \******************************************************************/
1571 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1572
1573 __webpack_require__.r(__webpack_exports__);
1574 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1575 /* harmony export */   "SelectItemCtrl": () => (/* binding */ SelectItemCtrl)
1576 /* harmony export */ });
1577 class SelectItemCtrl {
1578   /**
1579    * @ngInject
1580    * @param {import('../../utils/utils.service').Utils} Utils
1581    * @param {JQLite} $element
1582    */
1583   constructor(Utils, $element) {
1584     this.Element = $element;
1585     this.item = Utils.extend(this.item || {}, {
1586       config: {},
1587       options: [{
1588         value: ''
1589       }]
1590     });
1591   }
1592   /**
1593    *
1594    * @param {number} index
1595    */
1596
1597
1598   deleteOption(index) {
1599     this.item.options.splice(index, 1);
1600   }
1601
1602   addOption() {
1603     this.item.options.push({
1604       value: ''
1605     });
1606     setTimeout(() => {
1607       const options = this.Element.find('input');
1608       const addedOption = options[options.length - 1];
1609       addedOption.focus();
1610     }, 0);
1611   }
1612
1613 }
1614
1615 SelectItemCtrl.$inject = ["Utils", "$element"];
1616
1617
1618 /***/ }),
1619
1620 /***/ "./src/lib/directives/select-item/select-item.directive.js":
1621 /*!*****************************************************************!*\
1622   !*** ./src/lib/directives/select-item/select-item.directive.js ***!
1623   \*****************************************************************/
1624 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1625
1626 __webpack_require__.r(__webpack_exports__);
1627 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1628 /* harmony export */   "SelectItem": () => (/* binding */ SelectItem)
1629 /* harmony export */ });
1630 /* harmony import */ var _select_item_tpl_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./select-item.tpl.html */ "./src/lib/directives/select-item/select-item.tpl.html");
1631 /* harmony import */ var _select_item_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select-item.controller */ "./src/lib/directives/select-item/select-item.controller.js");
1632
1633
1634 /**
1635  * @implements {ng.IDirective}
1636  */
1637
1638 class SelectItem {
1639   /**
1640    * @ngInject
1641    */
1642   constructor() {
1643     this.restrict = 'E';
1644     this.template = _select_item_tpl_html__WEBPACK_IMPORTED_MODULE_0__["default"];
1645     this.scope = {
1646       item: '='
1647     };
1648     this.controller = _select_item_controller__WEBPACK_IMPORTED_MODULE_1__.SelectItemCtrl;
1649     this.controllerAs = 'Select';
1650     this.bindToController = true;
1651   }
1652
1653 }
1654
1655 SelectItem.$inject = [];
1656
1657
1658 /***/ }),
1659
1660 /***/ "./src/lib/directives/select-item/select-view.controller.js":
1661 /*!******************************************************************!*\
1662   !*** ./src/lib/directives/select-item/select-view.controller.js ***!
1663   \******************************************************************/
1664 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1665
1666 __webpack_require__.r(__webpack_exports__);
1667 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1668 /* harmony export */   "SelectViewCtrl": () => (/* binding */ SelectViewCtrl)
1669 /* harmony export */ });
1670 class SelectViewCtrl {
1671   /**
1672    * @ngInject
1673    * @param {import('../../utils/utils.service').Utils} Utils
1674    */
1675   constructor(Utils) {
1676     this.Utils = Utils;
1677     this.formItem = {};
1678   }
1679
1680   init() {
1681     this.formItem = this.Utils.extend(this.formItem, {
1682       config: {},
1683       options: []
1684     });
1685   }
1686
1687 }
1688
1689 SelectViewCtrl.$inject = ["Utils"];
1690
1691
1692 /***/ }),
1693
1694 /***/ "./src/lib/directives/select-item/select-view.directive.js":
1695 /*!*****************************************************************!*\
1696   !*** ./src/lib/directives/select-item/select-view.directive.js ***!
1697   \*****************************************************************/
1698 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1699
1700 __webpack_require__.r(__webpack_exports__);
1701 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1702 /* harmony export */   "SelectView": () => (/* binding */ SelectView)
1703 /* harmony export */ });
1704 /* harmony import */ var _select_view_tpl_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./select-view.tpl.html */ "./src/lib/directives/select-item/select-view.tpl.html");
1705 /* harmony import */ var _select_view_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select-view.controller */ "./src/lib/directives/select-item/select-view.controller.js");
1706
1707
1708 /**
1709  * @implements {ng.IDirective}
1710  */
1711
1712 class SelectView {
1713   /**
1714    * @ngInject
1715    * @param {ng.ITimeoutService} $timeout
1716    */
1717   constructor($timeout) {
1718     this.$timeout = $timeout;
1719     this.restrict = 'E';
1720     this.template = _select_view_tpl_html__WEBPACK_IMPORTED_MODULE_0__["default"];
1721     this.scope = {
1722       formItem: '=',
1723       isPreview: '&',
1724       form: '='
1725     };
1726     this.controller = _select_view_controller__WEBPACK_IMPORTED_MODULE_1__.SelectViewCtrl;
1727     this.controllerAs = 'SelectView';
1728     this.bindToController = true;
1729   }
1730   /**
1731    * @see https://docs.angularjs.org/api/ng/service/$compile#-link-
1732    * @param {ng.IScope} scope - scope
1733    * @param {JQLite} element - element
1734    * @param {ng.IAttributes} attrs - attributes
1735    * @param {SelectViewCtrl} ctrl - this instance controller
1736    * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)
1737    */
1738
1739
1740   link(scope, elem, attrs, ctrl) {
1741     //this timeout is placed here in order to make sure that the creator directive of this view is finished its work
1742     this.$timeout(function () {
1743       ctrl.init();
1744     }, 50);
1745   }
1746
1747 }
1748
1749 SelectView.$inject = ["$timeout"];
1750
1751
1752 /***/ }),
1753
1754 /***/ "./src/lib/directives/textarea-item/textarea-item.controller.js":
1755 /*!**********************************************************************!*\
1756   !*** ./src/lib/directives/textarea-item/textarea-item.controller.js ***!
1757   \**********************************************************************/
1758 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1759
1760 __webpack_require__.r(__webpack_exports__);
1761 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1762 /* harmony export */   "TextareaItemCtrl": () => (/* binding */ TextareaItemCtrl)
1763 /* harmony export */ });
1764 class TextareaItemCtrl {
1765   /**
1766    * @ngInject
1767    * @param {import('../../utils/utils.service').Utils} Utils
1768    * @param {JQLite} $element
1769    */
1770   constructor(Utils, $element) {
1771     this.Element = $element;
1772     this.item = Utils.extend(this.item || {}, {
1773       config: {}
1774     });
1775   }
1776
1777 }
1778
1779 TextareaItemCtrl.$inject = ["Utils", "$element"];
1780
1781
1782 /***/ }),
1783
1784 /***/ "./src/lib/directives/textarea-item/textarea-item.directive.js":
1785 /*!*********************************************************************!*\
1786   !*** ./src/lib/directives/textarea-item/textarea-item.directive.js ***!
1787   \*********************************************************************/
1788 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1789
1790 __webpack_require__.r(__webpack_exports__);
1791 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1792 /* harmony export */   "TextareaItem": () => (/* binding */ TextareaItem)
1793 /* harmony export */ });
1794 /* harmony import */ var _textarea_item_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./textarea-item.controller */ "./src/lib/directives/textarea-item/textarea-item.controller.js");
1795 /* harmony import */ var _textarea_item_tpl_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./textarea-item.tpl.html */ "./src/lib/directives/textarea-item/textarea-item.tpl.html");
1796
1797
1798 /**
1799  * @implements {ng.IDirective}
1800  */
1801
1802 class TextareaItem {
1803   /**
1804    * @ngInject
1805    */
1806   constructor() {
1807     this.restrict = 'E';
1808     this.template = _textarea_item_tpl_html__WEBPACK_IMPORTED_MODULE_1__["default"];
1809     this.scope = {
1810       item: '='
1811     };
1812     this.controller = _textarea_item_controller__WEBPACK_IMPORTED_MODULE_0__.TextareaItemCtrl;
1813     this.controllerAs = 'Textarea';
1814     this.bindToController = true;
1815   }
1816
1817 }
1818
1819 TextareaItem.$inject = [];
1820
1821
1822 /***/ }),
1823
1824 /***/ "./src/lib/directives/textarea-item/textarea-view.controller.js":
1825 /*!**********************************************************************!*\
1826   !*** ./src/lib/directives/textarea-item/textarea-view.controller.js ***!
1827   \**********************************************************************/
1828 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1829
1830 __webpack_require__.r(__webpack_exports__);
1831 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1832 /* harmony export */   "TextareaViewCtrl": () => (/* binding */ TextareaViewCtrl)
1833 /* harmony export */ });
1834 class TextareaViewCtrl {
1835   /**
1836    * @ngInject
1837    * @param {import('../../utils/utils.service').Utils} Utils
1838    */
1839   constructor(Utils) {
1840     this.Utils = Utils;
1841     this.formItem = {};
1842   }
1843
1844   init() {
1845     this.formItem = this.Utils.extend(this.formItem, {
1846       config: {}
1847     });
1848   }
1849
1850 }
1851
1852 TextareaViewCtrl.$inject = ["Utils"];
1853
1854
1855 /***/ }),
1856
1857 /***/ "./src/lib/directives/textarea-item/textarea-view.directive.js":
1858 /*!*********************************************************************!*\
1859   !*** ./src/lib/directives/textarea-item/textarea-view.directive.js ***!
1860   \*********************************************************************/
1861 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1862
1863 __webpack_require__.r(__webpack_exports__);
1864 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1865 /* harmony export */   "TextareaView": () => (/* binding */ TextareaView)
1866 /* harmony export */ });
1867 /* harmony import */ var _textarea_view_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./textarea-view.controller */ "./src/lib/directives/textarea-item/textarea-view.controller.js");
1868 /* harmony import */ var _textarea_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./textarea-view.tpl.html */ "./src/lib/directives/textarea-item/textarea-view.tpl.html");
1869
1870
1871 /**
1872  * @implements {ng.IDirective}
1873  */
1874
1875 class TextareaView {
1876   /**
1877    * @ngInject
1878    * @param {ng.ITimeoutService} $timeout
1879    */
1880   constructor($timeout) {
1881     this.$timeout = $timeout;
1882     this.scope = {
1883       formItem: '=',
1884       form: '='
1885     };
1886     this.restrict = 'E';
1887     this.template = _textarea_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__["default"];
1888     this.controller = _textarea_view_controller__WEBPACK_IMPORTED_MODULE_0__.TextareaViewCtrl;
1889     this.controllerAs = 'TextareaView';
1890     this.bindToController = true;
1891   }
1892   /**
1893    * @see https://docs.angularjs.org/api/ng/service/$compile#-link-
1894    * @param {ng.IScope} scope - scope
1895    * @param {JQLite} element - element
1896    * @param {ng.IAttributes} attrs - attributes
1897    * @param {TextareaViewCtrl} ctrl - this instance controller
1898    * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)
1899    */
1900
1901
1902   link(scope, elem, attrs, ctrl) {
1903     //this timeout is placed here in order to make sure that the creator directive of this view is finished its work
1904     this.$timeout(function () {
1905       ctrl.init();
1906     }, 50);
1907   }
1908
1909 }
1910
1911 TextareaView.$inject = ["$timeout"];
1912
1913
1914 /***/ }),
1915
1916 /***/ "./src/lib/directives/upload-item/upload-item.controller.js":
1917 /*!******************************************************************!*\
1918   !*** ./src/lib/directives/upload-item/upload-item.controller.js ***!
1919   \******************************************************************/
1920 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1921
1922 __webpack_require__.r(__webpack_exports__);
1923 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1924 /* harmony export */   "UploadItemCtrl": () => (/* binding */ UploadItemCtrl)
1925 /* harmony export */ });
1926 class UploadItemCtrl {
1927   /**
1928    * @ngInject
1929    *
1930    * @param {import('../../utils/utils.service').Utils} Utils
1931    * @param {JQLite} $element
1932    */
1933   constructor(Utils, $element) {
1934     this.Element = $element;
1935     this.item = Utils.extend(this.item || {}, {
1936       config: {},
1937       options: []
1938     });
1939   }
1940
1941 }
1942
1943 UploadItemCtrl.$inject = ["Utils", "$element"];
1944
1945
1946 /***/ }),
1947
1948 /***/ "./src/lib/directives/upload-item/upload-item.directive.js":
1949 /*!*****************************************************************!*\
1950   !*** ./src/lib/directives/upload-item/upload-item.directive.js ***!
1951   \*****************************************************************/
1952 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1953
1954 __webpack_require__.r(__webpack_exports__);
1955 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1956 /* harmony export */   "UploadItem": () => (/* binding */ UploadItem)
1957 /* harmony export */ });
1958 /* harmony import */ var _upload_item_tpl_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./upload-item.tpl.html */ "./src/lib/directives/upload-item/upload-item.tpl.html");
1959 /* harmony import */ var _upload_item_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./upload-item.controller */ "./src/lib/directives/upload-item/upload-item.controller.js");
1960
1961
1962 /**
1963  * @implements {ng.IDirective}
1964  */
1965
1966 class UploadItem {
1967   /**
1968    * @ngInject
1969    */
1970   constructor() {
1971     this.restrict = 'E';
1972     this.template = _upload_item_tpl_html__WEBPACK_IMPORTED_MODULE_0__["default"];
1973     this.scope = {
1974       item: '='
1975     };
1976     this.controller = _upload_item_controller__WEBPACK_IMPORTED_MODULE_1__.UploadItemCtrl;
1977     this.controllerAs = 'Upload';
1978     this.bindToController = true;
1979   }
1980
1981 }
1982
1983 UploadItem.$inject = [];
1984
1985
1986 /***/ }),
1987
1988 /***/ "./src/lib/directives/upload-item/upload-view.controller.js":
1989 /*!******************************************************************!*\
1990   !*** ./src/lib/directives/upload-item/upload-view.controller.js ***!
1991   \******************************************************************/
1992 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1993
1994 __webpack_require__.r(__webpack_exports__);
1995 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1996 /* harmony export */   "UploadViewCtrl": () => (/* binding */ UploadViewCtrl)
1997 /* harmony export */ });
1998 class UploadViewCtrl {
1999   /**
2000    * @ngInject
2001    * @param {ng.IScope} $scope
2002    * @param {import('../../utils/utils.service').Utils} Utils
2003    * @param {JQLite} $element
2004    */
2005   constructor($scope, Utils, $element) {
2006     this.Scope = $scope;
2007     this.Element = $element;
2008     this.Utils = Utils;
2009     this.formItem = {};
2010   }
2011
2012   init() {
2013     this.isMultiple = false;
2014     this.showAllowed = false;
2015     this.formItem = this.Utils.extend(this.formItem || {}, {
2016       config: {
2017         size: 10,
2018         uploadFileButtonLabel: 'Add files'
2019       },
2020       options: []
2021     });
2022
2023     if (this.isPreview()) {
2024       this._enableWatchers();
2025     }
2026   }
2027
2028   _updateMultiple() {
2029     this.isMultiple = !!this.formItem.config.multipleUpload;
2030     const input = angular.element(this.Element[0].querySelector('input[type=file]'));
2031
2032     if (input) {
2033       this.formItem.options = [];
2034
2035       if (this.isMultiple) {
2036         input.attr('multiple', 'multiple');
2037       } else {
2038         input.removeAttr('multiple');
2039       }
2040     }
2041   }
2042
2043   _updateAccept() {
2044     this.showAllowed = !!this.formItem.config.showAccept;
2045     const input = angular.element(this.Element[0].querySelector('input[type=file]'));
2046
2047     if (input) {
2048       if (this.showAllowed) {
2049         input[0].setAttribute('accept', this.formItem.config.accept);
2050       } else {
2051         input[0].removeAttribute('accept');
2052         delete this.formItem.config.accept;
2053       }
2054     }
2055   }
2056
2057   _enableWatchers() {
2058     this.Scope.$watch('UploadView.formItem.config.multipleUpload', newVal => {
2059       if (newVal !== undefined) {
2060         this._updateMultiple();
2061       }
2062     });
2063     this.Scope.$watch('UploadView.formItem.config.showAccept', newVal => {
2064       if (newVal !== undefined) {
2065         this._updateAccept();
2066       }
2067     });
2068     this.Scope.$watch('UploadView.formItem.config.accept', newVal => {
2069       if (newVal !== undefined) {
2070         this._updateAccept();
2071       }
2072     });
2073   }
2074
2075   removeItem(index) {
2076     this.formItem.options.splice(index, 1);
2077   }
2078
2079 }
2080
2081 UploadViewCtrl.$inject = ["$scope", "Utils", "$element"];
2082
2083
2084 /***/ }),
2085
2086 /***/ "./src/lib/directives/upload-item/upload-view.directive.js":
2087 /*!*****************************************************************!*\
2088   !*** ./src/lib/directives/upload-item/upload-view.directive.js ***!
2089   \*****************************************************************/
2090 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2091
2092 __webpack_require__.r(__webpack_exports__);
2093 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2094 /* harmony export */   "UploadView": () => (/* binding */ UploadView)
2095 /* harmony export */ });
2096 /* harmony import */ var _upload_view_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./upload-view.controller */ "./src/lib/directives/upload-item/upload-view.controller.js");
2097 /* harmony import */ var _upload_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./upload-view.tpl.html */ "./src/lib/directives/upload-item/upload-view.tpl.html");
2098
2099
2100 const MB = 1024 * 1024;
2101
2102 class UploadView {
2103   /**
2104    * @ngInject
2105    * @param {ng.ITimeoutService} $timeout
2106    */
2107   constructor($timeout) {
2108     this.$timeout = $timeout;
2109     this.template = _upload_view_tpl_html__WEBPACK_IMPORTED_MODULE_1__["default"];
2110     this.restrict = 'E';
2111     this.scope = {
2112       formItem: '=',
2113       isPreview: '&',
2114       form: '='
2115     };
2116     this.controller = _upload_view_controller__WEBPACK_IMPORTED_MODULE_0__.UploadViewCtrl;
2117     this.controllerAs = 'UploadView';
2118     this.bindToController = true;
2119   }
2120   /**
2121    * @see https://docs.angularjs.org/api/ng/service/$compile#-link-
2122    * @param {ng.IScope} scope - scope
2123    * @param {JQLite} element - element
2124    * @param {ng.IAttributes} attrs - attributes
2125    * @param {UploadViewCtrl} ctrl - this instance controller
2126    * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)
2127    */
2128
2129
2130   link(scope, element, attrs, ctrl) {
2131     //this timeout is placed here in order to make sure that the creator directive of this view is finished its work
2132     this.$timeout(function () {
2133       ctrl.init();
2134     }, 50);
2135     const button = angular.element(element[0].querySelector('.upload-button'));
2136     const input = angular.element(element[0].querySelector('input[type=file]'));
2137     const label = angular.element(element[0].querySelector('label'));
2138
2139     if (label.length) {
2140       label.css('display', 'none');
2141     }
2142
2143     button.on('click', () => {
2144       label.css('display', 'none');
2145       typeof input.trigger === 'function' ? input.trigger('click') : input[0].click();
2146     });
2147     input.on('change', e => {
2148       scope.$apply(function () {
2149         /**
2150          * @type {File[]}
2151          */
2152         const files = Array.from(e.target.files); // Max allowed size in MB
2153
2154         const maxSizeMB = ctrl.formItem.config.size * MB;
2155         const exceedsSize = files.some(file => file.size >= maxSizeMB);
2156
2157         if (exceedsSize) {
2158           label.css('display', 'block');
2159           label.text(ctrl.formItem.config.sizeErrMessage);
2160           ctrl.formItem.options = [];
2161         } else {
2162           ctrl.formItem.options = files.map(file => {
2163             const {
2164               name,
2165               size,
2166               type
2167             } = file;
2168             return {
2169               name,
2170               size,
2171               type,
2172               file
2173             };
2174           });
2175         }
2176       });
2177     });
2178   }
2179
2180 }
2181
2182 UploadView.$inject = ["$timeout"];
2183
2184
2185 /***/ }),
2186
2187 /***/ "./src/lib/main/main.controller.js":
2188 /*!*****************************************!*\
2189   !*** ./src/lib/main/main.controller.js ***!
2190   \*****************************************/
2191 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2192
2193 __webpack_require__.r(__webpack_exports__);
2194 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2195 /* harmony export */   "MainController": () => (/* binding */ MainController)
2196 /* harmony export */ });
2197 /**
2198  * @typedef {{type:string}} Item
2199  * @typedef {{items: Item[]}} FormConfig
2200  */
2201 class MainController {
2202   /**
2203    * @ngInject
2204    */
2205   constructor() {
2206     /**
2207      * @type {FormConfig}
2208      */
2209     this.form = {
2210       items: []
2211     };
2212   }
2213   /**
2214    * Add new Item
2215    * @param {string} type
2216    */
2217
2218
2219   addItem(type) {
2220     this.form.items.push({
2221       type
2222     });
2223   }
2224   /**
2225    * Remove item at index
2226    * @param {Item} item
2227    * @param {number} index
2228    */
2229
2230
2231   delete(item, index) {
2232     this.form.items.splice(index, 1);
2233   }
2234   /**
2235    * insert before (bounded)
2236    * Pops out latest element (wanted?)
2237    * @param {Item} item
2238    * @param {number} index
2239    */
2240
2241
2242   up(item, index) {
2243     if (index !== 0) {
2244       const prevItem = this.form.items[index - 1];
2245       this.form.items[index] = prevItem;
2246       this.form.items[index - 1] = item;
2247     }
2248   }
2249   /**
2250    * insert after (bounded)
2251    * Pops out latest element (wanted?)
2252    * @param {Item} item
2253    * @param {number} index
2254    */
2255
2256
2257   down(item, index) {
2258     if (index !== this.form.items.length - 1) {
2259       const nextItem = this.form.items[index + 1];
2260       this.form.items[index] = nextItem;
2261       this.form.items[index + 1] = item;
2262     }
2263   }
2264
2265 }
2266
2267 MainController.$inject = [];
2268
2269
2270 /***/ }),
2271
2272 /***/ "./src/lib/utils/utils.service.js":
2273 /*!****************************************!*\
2274   !*** ./src/lib/utils/utils.service.js ***!
2275   \****************************************/
2276 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2277
2278 __webpack_require__.r(__webpack_exports__);
2279 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2280 /* harmony export */   "Utils": () => (/* binding */ Utils)
2281 /* harmony export */ });
2282 class Utils {
2283   /**
2284    * Recursively extend object properties
2285    * @param {Object} dest
2286    * @param {Object} src
2287    * @returns {Object}
2288    */
2289   extend(dest, src) {
2290     return Object.keys(src).reduce((result, key) => {
2291       if (typeof result[key] === 'undefined') {
2292         result[key] = src[key];
2293       } else if (typeof src[key] === 'object') {
2294         result[key] = this.extend(result[key], src[key]);
2295       }
2296
2297       return result;
2298     }, typeof dest === 'undefined' ? {} : dest);
2299   }
2300
2301 }
2302
2303
2304
2305 /***/ }),
2306
2307 /***/ "./src/lib/index.scss":
2308 /*!****************************!*\
2309   !*** ./src/lib/index.scss ***!
2310   \****************************/
2311 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2312
2313 __webpack_require__.r(__webpack_exports__);
2314 // extracted by mini-css-extract-plugin
2315
2316
2317 /***/ }),
2318
2319 /***/ "./src/lib/directives/agreement-item/agreement-view.tpl.html":
2320 /*!*******************************************************************!*\
2321   !*** ./src/lib/directives/agreement-item/agreement-view.tpl.html ***!
2322   \*******************************************************************/
2323 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2324
2325 __webpack_require__.r(__webpack_exports__);
2326 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2327 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2328 /* harmony export */ });
2329 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<md-input-container>\n  <div\n    layout=\"{{AgreementView.formItem.config.direction == 'horizontal' ? 'row' : 'columb'}}\"\n  >\n    <md-checkbox\n      ng-model=\"AgreementView.formItem.options[0].selected\"\n      ng-change=\"AgreementView.toggleSelectedOption(option)\"\n      ng-disabled=\"AgreementView.disableOptions && !option.selected\"\n      aria-label=\"...\"\n      >{{AgreementView.formItem.options[0].value}}</md-checkbox\n    >\n  </div>\n\n  <div ng-messages=\"AgreementView.form.$error\">\n    <div ng-message=\"minSelections\">\n      Must select {{AgreementView.formItem.maxSelections || 1}} items\n    </div>\n  </div>\n</md-input-container>\n");
2330
2331 /***/ }),
2332
2333 /***/ "./src/lib/directives/checkboxes-item/checkboxes-item.tpl.html":
2334 /*!*********************************************************************!*\
2335   !*** ./src/lib/directives/checkboxes-item/checkboxes-item.tpl.html ***!
2336   \*********************************************************************/
2337 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2338
2339 __webpack_require__.r(__webpack_exports__);
2340 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2341 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2342 /* harmony export */ });
2343 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<div\n  class=\"sortable-container\"\n  layout=\"column\"\n  sv-root\n  sv-part=\"Checkboxes.item.options\"\n>\n  <md-input-container class=\"md-block\">\n    <label>Max Selections</label>\n    <input type=\"number\" ng-model=\"Checkboxes.item.config.maxSelections\" />\n  </md-input-container>\n\n  <md-switch\n    ng-model=\"Checkboxes.item.config.direction\"\n    ng-true-value=\"'horizontal'\"\n    ng-false-value=\"'vertical'\"\n  >\n    Layout direction ({{Checkboxes.item.config.direction == 'horizontal' ?\n    'Horizontal' : 'Vertical'}})\n  </md-switch>\n\n  <div\n    class=\"option-item\"\n    layout=\"row\"\n    ng-repeat=\"option in Checkboxes.item.options track by $index\"\n    sv-element\n  >\n    <md-button\n      class=\"md-button handle\"\n      md-no-ink\n      aria-label=\"reorder option item\"\n      sv-handle\n    >\n      <md-icon class=\"material-icons\">reorder</md-icon>\n    </md-button>\n\n    <md-input-container class=\"md-block\">\n      <label>Option {{$index + 1}}</label>\n      <input ng-model=\"option.value\" />\n    </md-input-container>\n\n    <md-button class=\"md-button\" ng-click=\"Checkboxes.deleteOption($index)\">\n      <md-icon class=\"material-icons\">delete</md-icon>\n    </md-button>\n  </div>\n  <div layout=\"row\" layout-align=\"start\">\n    <md-button\n      class=\"md-primary add-option-button\"\n      ng-click=\"Checkboxes.addOption()\"\n    >\n      <md-icon class=\"material-icons\">add</md-icon>\n    </md-button>\n  </div>\n</div>\n");
2344
2345 /***/ }),
2346
2347 /***/ "./src/lib/directives/checkboxes-item/checkboxes-view.tpl.html":
2348 /*!*********************************************************************!*\
2349   !*** ./src/lib/directives/checkboxes-item/checkboxes-view.tpl.html ***!
2350   \*********************************************************************/
2351 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2352
2353 __webpack_require__.r(__webpack_exports__);
2354 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2355 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2356 /* harmony export */ });
2357 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<md-input-container>\n  <div\n    layout=\"{{CheckboxesView.formItem.config.direction == 'horizontal' ? 'row' : 'column'}}\"\n  >\n    <md-checkbox\n      ng-repeat=\"option in CheckboxesView.formItem.options track by $index\"\n      ng-model=\"option.selected\"\n      ng-change=\"CheckboxesView.toggleSelectedOption(option)\"\n      ng-disabled=\"CheckboxesView.disableOptions && !option.selected\"\n      aria-label=\"...\"\n      >{{option.value}}</md-checkbox\n    >\n  </div>\n\n  <div ng-messages=\"CheckboxesView.form.$error\">\n    <div ng-message=\"minSelections\">\n      Must select {{CheckboxesView.formItem.maxSelections || 1}} items\n    </div>\n  </div>\n</md-input-container>\n");
2358
2359 /***/ }),
2360
2361 /***/ "./src/lib/directives/form-item/form-item.tpl.html":
2362 /*!*********************************************************!*\
2363   !*** ./src/lib/directives/form-item/form-item.tpl.html ***!
2364   \*********************************************************/
2365 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2366
2367 __webpack_require__.r(__webpack_exports__);
2368 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2369 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2370 /* harmony export */ });
2371 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<div class=\"form-item-container md-inline-form\">\n  <div class=\"form-item-actions\">\n    <md-button\n      class=\"md-button\"\n      ng-if=\"FormItem.Attrs.onDelete\"\n      ng-click=\"FormItem.deleteClicked()\"\n    >\n      <md-icon class=\"material-icons small\">delete</md-icon>\n    </md-button>\n    <md-button\n      class=\"md-button\"\n      ng-if=\"FormItem.Attrs.onUp\"\n      ng-click=\"FormItem.onUp({item: FormItem.item, index: FormItem.index()})\"\n    >\n      <md-icon class=\"material-icons small\">arrow_drop_up</md-icon>\n    </md-button>\n    <md-button\n      class=\"md-button\"\n      ng-if=\"FormItem.Attrs.onDown\"\n      ng-click=\"FormItem.onDown({item: FormItem.item, index: FormItem.index()})\"\n    >\n      <md-icon class=\"material-icons small\">arrow_drop_down</md-icon>\n    </md-button>\n  </div>\n\n  <md-input-container ng-if=\"FormItem.item.type != 'label'\" class=\"md-block\">\n    <label>Field Title</label>\n    <input ng-model=\"FormItem.item.props.title\" />\n  </md-input-container>\n\n  <md-input-container ng-if=\"FormItem.item.type != 'label'\" class=\"md-block\">\n    <label>Help Text</label>\n    <input ng-model=\"FormItem.item.props.helpText\" />\n  </md-input-container>\n\n  <md-input-container\n    ng-if=\"FormItem.item.type === 'agreement'\"\n    class=\"md-block\"\n  >\n    <label>Option Text</label>\n    <input ng-model=\"FormItem.item.options[0].value\" />\n  </md-input-container>\n\n  <div ng-switch=\"FormItem.item.type\">\n    <upload-item ng-switch-when=\"upload\" item=\"FormItem.item\"></upload-item>\n    <agreement-item\n      ng-switch-when=\"agreement\"\n      item=\"FormItem.item\"\n    ></agreement-item>\n    <label-item ng-switch-when=\"label\" item=\"FormItem.item\"></label-item>\n    <input-item ng-switch-when=\"input\" item=\"FormItem.item\"></input-item>\n    <radio-button-item\n      ng-switch-when=\"multipleChoices\"\n      item=\"FormItem.item\"\n    ></radio-button-item>\n    <matrix-item ng-switch-when=\"matrix\" item=\"FormItem.item\"></matrix-item>\n    <checkboxes-item\n      ng-switch-when=\"checkboxes\"\n      item=\"FormItem.item\"\n    ></checkboxes-item>\n    <textarea-item\n      ng-switch-when=\"textarea\"\n      item=\"FormItem.item\"\n    ></textarea-item>\n    <select-item\n      ng-switch-when=\"chooseFromList\"\n      item=\"FormItem.item\"\n    ></select-item>\n    <p ng-switch-default>UNKNOWN TYPE</p>\n  </div>\n\n  <md-input-container\n    ng-if=\"FormItem.item.type != 'label' && FormItem.item.type != 'upload'\"\n    class=\"md-block\"\n  >\n    <md-checkbox ng-model=\"FormItem.item.config.required\"\n      >Required field</md-checkbox\n    >\n  </md-input-container>\n</div>\n");
2372
2373 /***/ }),
2374
2375 /***/ "./src/lib/directives/form-items-container/form-items-container.tpl.html":
2376 /*!*******************************************************************************!*\
2377   !*** ./src/lib/directives/form-items-container/form-items-container.tpl.html ***!
2378   \*******************************************************************************/
2379 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2380
2381 __webpack_require__.r(__webpack_exports__);
2382 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2383 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2384 /* harmony export */ });
2385 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<div>\n  <form-item\n    ng-repeat=\"item in container.form.items track by $index\"\n    type=\"{{item.type}}\"\n    item=\"item\"\n    index=\"$index\"\n    on-delete=\"container.delete(item, index)\"\n    on-up=\"container.up(item, index)\"\n    on-down=\"container.down(item, index)\"\n  >\n  </form-item>\n</div>\n");
2386
2387 /***/ }),
2388
2389 /***/ "./src/lib/directives/form-view/form-view.tpl.html":
2390 /*!*********************************************************!*\
2391   !*** ./src/lib/directives/form-view/form-view.tpl.html ***!
2392   \*********************************************************/
2393 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2394
2395 __webpack_require__.r(__webpack_exports__);
2396 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2397 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2398 /* harmony export */ });
2399 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<div class=\"md-inline-form\">\n  <div\n    class=\"formItem\"\n    ng-repeat=\"formItem in FormView.form.items track by $index\"\n    ng-switch=\"formItem.type\"\n    layout=\"column\"\n  >\n    <ng-form name=\"formItemForm\">\n      <div>\n        <div class=\"formItem-title\" ng-show=\"formItem.type !== 'label'\">{{formItem.props.title}}</div>\n        <div class=\"formItem-help-text\">{{formItem.props.helpText}}</div>\n\n        <upload-view\n          form-item=\"formItem\"\n          is-preview=\"true\"\n          form=\"formItemForm\"\n          ng-switch-when=\"upload\"\n        ></upload-view>\n        <agreement-view\n          form-item=\"formItem\"\n          is-preview=\"true\"\n          form=\"formItemForm\"\n          ng-switch-when=\"agreement\"\n        ></agreement-view>\n        <checkboxes-view\n          form-item=\"formItem\"\n          is-preview=\"true\"\n          form=\"formItemForm\"\n          ng-switch-when=\"checkboxes\"\n        ></checkboxes-view>\n        <radio-button-view\n          form-item=\"formItem\"\n          is-preview=\"true\"\n          form=\"formItemForm\"\n          ng-switch-when=\"multipleChoices\"\n        ></radio-button-view>\n        <input-view\n          form-item=\"formItem\"\n          form=\"formItemForm\"\n          ng-switch-when=\"input\"\n        ></input-view>\n        <textarea-view\n          form-item=\"formItem\"\n          form=\"formItemForm\"\n          ng-switch-when=\"textarea\"\n        ></textarea-view>\n        <matrix-view\n          form-item=\"formItem\"\n          is-preview=\"true\"\n          form=\"formItemForm\"\n          ng-switch-when=\"matrix\"\n        ></matrix-view>\n        <select-view\n          form-item=\"formItem\"\n          is-preview=\"true\"\n          form=\"formItemForm\"\n          ng-switch-when=\"chooseFromList\"\n        ></select-view>\n        <label-view\n          form-item=\"formItem\"\n          is-preview=\"true\"\n          form=\"formItemForm\"\n          ng-switch-when=\"label\"\n        ></label-view>\n      </div>\n    </ng-form>\n  </div>\n</div>\n");
2400
2401 /***/ }),
2402
2403 /***/ "./src/lib/directives/input-item/input-item.tpl.html":
2404 /*!***********************************************************!*\
2405   !*** ./src/lib/directives/input-item/input-item.tpl.html ***!
2406   \***********************************************************/
2407 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2408
2409 __webpack_require__.r(__webpack_exports__);
2410 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2411 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2412 /* harmony export */ });
2413 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<md-input-container class=\"md-block\">\n  <label>Placeholder</label>\n  <input type=\"text\" ng-model=\"Input.item.config.placeholder\" />\n</md-input-container>\n<md-input-container class=\"md-block\">\n  <label>Type</label>\n  <md-select ng-model=\"Input.item.config.type\">\n    <md-option value=\"text\">Text</md-option>\n    <md-option value=\"number\">Number</md-option>\n    <md-option value=\"email\">Email</md-option>\n  </md-select>\n</md-input-container>\n");
2414
2415 /***/ }),
2416
2417 /***/ "./src/lib/directives/input-item/input-view.tpl.html":
2418 /*!***********************************************************!*\
2419   !*** ./src/lib/directives/input-item/input-view.tpl.html ***!
2420   \***********************************************************/
2421 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2422
2423 __webpack_require__.r(__webpack_exports__);
2424 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2425 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2426 /* harmony export */ });
2427 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<md-input-container class=\"md-block\">\n  <input\n    ng-model=\"InputView.formItem.value\"\n    type=\"{{InputView.formItem.config.type}}\"\n    placeholder=\"{{InputView.formItem.config.placeholder}}\"\n    ng-required=\"InputView.formItem.config.required\"\n  />\n  <div ng-messages=\"InputView.form.$error\">\n    <div ng-message=\"required\">This field is required</div>\n  </div>\n</md-input-container>\n");
2428
2429 /***/ }),
2430
2431 /***/ "./src/lib/directives/label-item/label-item.tpl.html":
2432 /*!***********************************************************!*\
2433   !*** ./src/lib/directives/label-item/label-item.tpl.html ***!
2434   \***********************************************************/
2435 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2436
2437 __webpack_require__.r(__webpack_exports__);
2438 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2439 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2440 /* harmony export */ });
2441 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<md-input-container class=\"md-block\">\n  <label>Text</label>\n  <textarea ng-model=\"Label.item.value\" md-maxlength=\"150\" rows=\"5\"></textarea>\n</md-input-container>\n");
2442
2443 /***/ }),
2444
2445 /***/ "./src/lib/directives/label-item/label-view.tpl.html":
2446 /*!***********************************************************!*\
2447   !*** ./src/lib/directives/label-item/label-view.tpl.html ***!
2448   \***********************************************************/
2449 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2450
2451 __webpack_require__.r(__webpack_exports__);
2452 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2453 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2454 /* harmony export */ });
2455 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<md-input-container class=\"md-block\">\n  <md-content flex layout-padding layout=\"row\" layout-align=\"center center\">\n    <pre>\n      \n      <span class=\"formItem-content\" ng-bind-html=\"LabelView.sanitizedTitle\"></span>\n    </pre>\n  </md-content>\n</md-input-container>\n");
2456
2457 /***/ }),
2458
2459 /***/ "./src/lib/directives/matrix-item/matrix-item.tpl.html":
2460 /*!*************************************************************!*\
2461   !*** ./src/lib/directives/matrix-item/matrix-item.tpl.html ***!
2462   \*************************************************************/
2463 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2464
2465 __webpack_require__.r(__webpack_exports__);
2466 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2467 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2468 /* harmony export */ });
2469 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<div\n  class=\"sortable-container columnContainer\"\n  layout=\"column\"\n  sv-root\n  sv-part=\"Matrix.item.config.columns\"\n>\n  <div\n    class=\"option-item\"\n    layout=\"row\"\n    ng-repeat=\"column in Matrix.item.config.columns track by $index\"\n    sv-element\n  >\n    <md-button\n      class=\"md-button handle\"\n      md-no-ink\n      aria-label=\"reorder option item\"\n      sv-handle\n    >\n      <md-icon class=\"material-icons\">reorder</md-icon>\n    </md-button>\n\n    <md-input-container class=\"input-container\">\n      <label>Column {{$index + 1}}</label>\n      <input ng-model=\"column.value\" />\n    </md-input-container>\n\n    <md-button\n      class=\"md-button\"\n      md-no-ink\n      aria-label=\"delete column item\"\n      ng-click=\"Matrix.deleteColumn($index)\"\n    >\n      <md-icon class=\"material-icons\">delete</md-icon>\n      <md-tooltip md-autohide=\"true\">Delete</md-tooltip>\n    </md-button>\n  </div>\n  <div layout=\"row\" layout-align=\"start\">\n    <md-button\n      class=\"md-primary add-option-button\"\n      md-no-ink\n      aria-label=\"add option item\"\n      ng-click=\"Matrix.addColumn()\"\n      >Add Column</md-button\n    >\n  </div>\n</div>\n\n<div\n  class=\"sortable-container rowContainer\"\n  layout=\"column\"\n  sv-root\n  sv-part=\"Matrix.item.config.rows\"\n>\n  <div\n    class=\"option-item\"\n    layout=\"row\"\n    ng-repeat=\"row in Matrix.item.config.rows track by $index\"\n    sv-element\n  >\n    <md-button\n      class=\"md-button handle\"\n      md-no-ink\n      aria-label=\"reorder row item\"\n      sv-handle\n    >\n      <md-icon class=\"material-icons\">reorder</md-icon>\n    </md-button>\n\n    <md-input-container class=\"input-container\">\n      <label>Row {{$index + 1}}</label>\n      <input ng-model=\"row.value\" />\n    </md-input-container>\n\n    <md-button\n      class=\"md-button\"\n      md-no-ink\n      aria-label=\"delete row item\"\n      ng-click=\"Matrix.deleteRow($index)\"\n    >\n      <md-icon class=\"material-icons\">delete</md-icon>\n      <md-tooltip md-autohide=\"true\">Delete</md-tooltip>\n    </md-button>\n  </div>\n  <div layout=\"row\" layout-align=\"start\">\n    <md-button\n      class=\"md-primary add-option-button\"\n      md-no-ink\n      aria-label=\"add row item\"\n      ng-click=\"Matrix.addRow()\"\n      >Add row</md-button\n    >\n  </div>\n</div>\n");
2470
2471 /***/ }),
2472
2473 /***/ "./src/lib/directives/matrix-item/matrix-view.tpl.html":
2474 /*!*************************************************************!*\
2475   !*** ./src/lib/directives/matrix-item/matrix-view.tpl.html ***!
2476   \*************************************************************/
2477 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2478
2479 __webpack_require__.r(__webpack_exports__);
2480 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2481 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2482 /* harmony export */ });
2483 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<md-input-container class=\"matrix-container md-block\" layout=\"column\">\n  <div class=\"matrix\">\n    <div class=\"matrix-row\" flex layout=\"row\">\n      <span class=\"matrix-cell\" flex=\"20\"></span>\n      <span\n        class=\"matrix-cell matrix-cell-header\"\n        flex\n        ng-repeat=\"column in MatrixView.formItem.config.columns track by $index\"\n        >{{column.value}}</span\n      >\n    </div>\n    <div\n      class=\"matrix-row\"\n      ng-repeat=\"row in MatrixView.formItem.config.rows track by $index\"\n      layout=\"row\"\n    >\n      <span class=\"matrix-cell\" flex=\"20\" layout=\"column\" layout-align=\"center\"\n        >{{row.value}}</span\n      >\n      <md-radio-group\n        ng-model=\"row.selected\"\n        ng-change=\"MatrixView._updateValidity()\"\n        flex\n        layout=\"row\"\n      >\n        <span\n          class=\"matrix-cell radio-button-cell\"\n          flex\n          ng-repeat=\"column in MatrixView.formItem.config.columns track by $index\"\n        >\n          <md-radio-button\n            value=\"{{column.value}}\"\n            aria-label=\"...\"\n          ></md-radio-button>\n        </span>\n      </md-radio-group>\n    </div>\n  </div>\n\n  <div ng-messages=\"MatrixView.form.$error\">\n    <div ng-message=\"required\">This is required</div>\n  </div>\n</md-input-container>\n");
2484
2485 /***/ }),
2486
2487 /***/ "./src/lib/directives/radio-button-item/radio-button-item.tpl.html":
2488 /*!*************************************************************************!*\
2489   !*** ./src/lib/directives/radio-button-item/radio-button-item.tpl.html ***!
2490   \*************************************************************************/
2491 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2492
2493 __webpack_require__.r(__webpack_exports__);
2494 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2495 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2496 /* harmony export */ });
2497 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<div\n  class=\"sortable-container\"\n  layout=\"column\"\n  sv-root\n  sv-part=\"RadioButton.item.options\"\n>\n  <md-switch\n    ng-model=\"RadioButton.item.config.direction\"\n    ng-true-value=\"'horizontal'\"\n    ng-false-value=\"'vertical'\"\n  >\n    Layout direction ({{RadioButton.item.config.direction == 'horizontal' ?\n    'Horizontal' : 'Vertical'}})\n  </md-switch>\n\n  <div\n    class=\"option-item\"\n    layout=\"row\"\n    ng-repeat=\"option in RadioButton.item.options track by $index\"\n    sv-element\n  >\n    <md-button\n      class=\"md-button handle\"\n      md-no-ink\n      aria-label=\"reorder option item\"\n      sv-handle\n    >\n      <md-icon class=\"material-icons\">reorder</md-icon>\n    </md-button>\n\n    <md-input-container class=\"md-block\">\n      <label>Option {{$index + 1}}</label>\n      <input ng-model=\"option.value\" />\n    </md-input-container>\n\n    <md-button\n      class=\"md-button md-warn\"\n      ng-click=\"RadioButton.deleteOption($index)\"\n    >\n      <md-icon class=\"material-icons\">delete</md-icon>\n    </md-button>\n  </div>\n\n  <md-button class=\"md-raised md-accent\" ng-click=\"RadioButton.addOption()\"\n    >Add Option</md-button\n  >\n</div>\n");
2498
2499 /***/ }),
2500
2501 /***/ "./src/lib/directives/radio-button-item/radio-button-view.tpl.html":
2502 /*!*************************************************************************!*\
2503   !*** ./src/lib/directives/radio-button-item/radio-button-view.tpl.html ***!
2504   \*************************************************************************/
2505 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2506
2507 __webpack_require__.r(__webpack_exports__);
2508 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2509 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2510 /* harmony export */ });
2511 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<md-input-container class=\"md-block\">\n  <md-radio-group\n    name=\"formItemInput\"\n    ng-required=\"RadioButtonView.formItem.config.required\"\n    ng-model=\"RadioButtonView.formItem.value\"\n    layout=\"{{RadioButtonView.formItem.config.direction == 'horizontal' ? 'row' : 'column'}}\"\n    required\n  >\n    <md-radio-button\n      ng-repeat=\"option in RadioButtonView.formItem.options track by $index\"\n      value=\"{{option.value}}\"\n      aria-label=\"...\"\n    >\n      {{option.value}}\n    </md-radio-button>\n  </md-radio-group>\n\n  <div ng-messages=\"RadioButtonView.form.$error\">\n    <div ng-message=\"required\">This field is required</div>\n  </div>\n</md-input-container>\n");
2512
2513 /***/ }),
2514
2515 /***/ "./src/lib/directives/select-item/select-item.tpl.html":
2516 /*!*************************************************************!*\
2517   !*** ./src/lib/directives/select-item/select-item.tpl.html ***!
2518   \*************************************************************/
2519 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2520
2521 __webpack_require__.r(__webpack_exports__);
2522 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2523 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2524 /* harmony export */ });
2525 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<div\n  class=\"sortable-container\"\n  layout=\"column\"\n  sv-root\n  sv-part=\"Select.item.options\"\n>\n  <div\n    class=\"option-item\"\n    layout=\"row\"\n    ng-repeat=\"option in Select.item.options track by $index\"\n    sv-element\n  >\n    <md-button\n      class=\"md-button handle\"\n      md-no-ink\n      aria-label=\"reorder option item\"\n      sv-handle\n    >\n      <md-icon class=\"material-icons\">reorder</md-icon>\n    </md-button>\n\n    <md-input-container class=\"md-block\">\n      <label>Option {{$index + 1}}</label>\n      <input ng-model=\"option.value\" />\n    </md-input-container>\n\n    <md-button class=\"md-button md-warn\" ng-click=\"Select.deleteOption($index)\">\n      <md-icon class=\"material-icons\">delete</md-icon>\n    </md-button>\n  </div>\n\n  <md-button class=\"md-raised md-accent\" ng-click=\"Select.addOption()\"\n    >Add Option</md-button\n  >\n</div>\n");
2526
2527 /***/ }),
2528
2529 /***/ "./src/lib/directives/select-item/select-view.tpl.html":
2530 /*!*************************************************************!*\
2531   !*** ./src/lib/directives/select-item/select-view.tpl.html ***!
2532   \*************************************************************/
2533 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2534
2535 __webpack_require__.r(__webpack_exports__);
2536 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2537 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2538 /* harmony export */ });
2539 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<md-input-container class=\"md-block\">\n  <md-select\n    name=\"formItemInput\"\n    ng-required=\"SelectView.formItem.config.required\"\n    ng-model=\"SelectView.formItem.value\"\n  >\n    <md-option\n      ng-repeat=\"option in SelectView.formItem.options track by $index\"\n      ng-value=\"option.value\"\n      >{{ option.value }}</md-option\n    >\n  </md-select>\n  <div ng-messages=\"SelectView.form.$error\">\n    <div ng-message=\"required\">This field is required</div>\n  </div>\n</md-input-container>\n");
2540
2541 /***/ }),
2542
2543 /***/ "./src/lib/directives/textarea-item/textarea-item.tpl.html":
2544 /*!*****************************************************************!*\
2545   !*** ./src/lib/directives/textarea-item/textarea-item.tpl.html ***!
2546   \*****************************************************************/
2547 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2548
2549 __webpack_require__.r(__webpack_exports__);
2550 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2551 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2552 /* harmony export */ });
2553 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<md-input-container class=\"md-block\">\n  <label>Placeholder</label>\n  <input type=\"text\" ng-model=\"Textarea.item.config.placeholder\" />\n</md-input-container>\n");
2554
2555 /***/ }),
2556
2557 /***/ "./src/lib/directives/textarea-item/textarea-view.tpl.html":
2558 /*!*****************************************************************!*\
2559   !*** ./src/lib/directives/textarea-item/textarea-view.tpl.html ***!
2560   \*****************************************************************/
2561 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2562
2563 __webpack_require__.r(__webpack_exports__);
2564 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2565 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2566 /* harmony export */ });
2567 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<md-input-container class=\"md-block\">\n  <textarea\n    ng-model=\"TextareaView.formItem.value\"\n    placeholder=\"{{TextareaView.formItem.config.placeholder}}\"\n    ng-required=\"TextareaView.formItem.config.required\"\n  ></textarea>\n  <div ng-messages=\"TextareaView.form.$error\">\n    <div ng-message=\"required\">This field is required</div>\n  </div>\n</md-input-container>\n");
2568
2569 /***/ }),
2570
2571 /***/ "./src/lib/directives/upload-item/upload-item.tpl.html":
2572 /*!*************************************************************!*\
2573   !*** ./src/lib/directives/upload-item/upload-item.tpl.html ***!
2574   \*************************************************************/
2575 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2576
2577 __webpack_require__.r(__webpack_exports__);
2578 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2579 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2580 /* harmony export */ });
2581 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<div\n  class=\"sortable-container\"\n  layout=\"column\"\n  sv-root\n  sv-part=\"Upload.item.options\"\n>\n  <md-input-container class=\"md-block\">\n    <label>Upload Button label</label>\n    <input ng-model=\"Upload.item.config.uploadFileButtonLabel\" />\n  </md-input-container>\n\n  <md-switch\n    ng-model=\"Upload.item.config.multipleUpload\"\n    ng-true-value=\"true\"\n    ng-false-value=\"false\"\n  >\n    Multiple\n  </md-switch>\n\n  <md-input-container class=\"md-block\">\n    <span>Max File size: {{Upload.item.config.size}} Mb</span>\n    <input\n      type=\"number\"\n      id=\"size\"\n      name=\"size\"\n      min=\"0.1\"\n      max=\"999\"\n      step=\"0.1\"\n      aria-label=\"size\"\n      ng-model=\"Upload.item.config.size\"\n    />\n  </md-input-container>\n\n  <md-input-container class=\"md-block\">\n    <label>Max file size error message</label>\n    <textarea\n      ng-model=\"Upload.item.config.sizeErrMessage\"\n      md-maxlength=\"150\"\n      rows=\"2\"\n    ></textarea>\n  </md-input-container>\n\n  <md-switch\n    ng-model=\"Upload.item.config.showAccept\"\n    ng-true-value=\"true\"\n    ng-false-value=\"false\"\n  >\n    Configure allowed file types\n  </md-switch>\n\n  <md-input-container class=\"md-block\" ng-if=\"Upload.item.config.showAccept\">\n    <label>Allowed Types</label>\n    <textarea\n      ng-model=\"Upload.item.config.accept\"\n      md-maxlength=\"150\"\n      rows=\"2\"\n    ></textarea>\n  </md-input-container>\n</div>\n");
2582
2583 /***/ }),
2584
2585 /***/ "./src/lib/directives/upload-item/upload-view.tpl.html":
2586 /*!*************************************************************!*\
2587   !*** ./src/lib/directives/upload-item/upload-view.tpl.html ***!
2588   \*************************************************************/
2589 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2590
2591 __webpack_require__.r(__webpack_exports__);
2592 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2593 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2594 /* harmony export */ });
2595 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("<div layout=\"row\" class=\"option-item upload-item\">\n  <md-input-container class=\"md-block\" style=\"margin: 0\">\n    <input type=\"file\" class=\"ng-hide\" aria-label=\"file\" />\n    <md-input-container flex class=\"md-block\">\n      <input\n        type=\"text\"\n        ng-model=\"fileName\"\n        class=\"ng-hide\"\n        disabled\n        aria-label=\"fileName\"\n      />\n    </md-input-container>\n  </md-input-container>\n\n  <md-button class=\"md-raised md-accent upload-button\"\n    ><md-icon class=\"material-icons\">attach_file</md-icon\n    ><span\n      >{{UploadView.formItem.config.uploadFileButtonLabel}}</span\n    ></md-button\n  >\n</div>\n\n<div>\n  <label></label>\n  <div\n    style=\"display: grid; grid-template-columns: 8em auto; align-items: center\"\n    layout=\"row\"\n    ng-repeat=\"option in UploadView.formItem.options track by $index\"\n  >\n    <md-button ng-click=\"UploadView.removeItem($index)\" class=\"md-icon-button\">\n      <md-icon class=\"material-icons\">close</md-icon>\n    </md-button>\n    <span>{{option.name}}</span>\n  </div>\n</div>\n");
2596
2597 /***/ })
2598
2599 /******/        });
2600 /************************************************************************/
2601 /******/        // The module cache
2602 /******/        var __webpack_module_cache__ = {};
2603 /******/        
2604 /******/        // The require function
2605 /******/        function __webpack_require__(moduleId) {
2606 /******/                // Check if module is in cache
2607 /******/                var cachedModule = __webpack_module_cache__[moduleId];
2608 /******/                if (cachedModule !== undefined) {
2609 /******/                        return cachedModule.exports;
2610 /******/                }
2611 /******/                // Create a new module (and put it into the cache)
2612 /******/                var module = __webpack_module_cache__[moduleId] = {
2613 /******/                        // no module.id needed
2614 /******/                        // no module.loaded needed
2615 /******/                        exports: {}
2616 /******/                };
2617 /******/        
2618 /******/                // Execute the module function
2619 /******/                __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
2620 /******/        
2621 /******/                // Return the exports of the module
2622 /******/                return module.exports;
2623 /******/        }
2624 /******/        
2625 /************************************************************************/
2626 /******/        /* webpack/runtime/define property getters */
2627 /******/        (() => {
2628 /******/                // define getter functions for harmony exports
2629 /******/                __webpack_require__.d = (exports, definition) => {
2630 /******/                        for(var key in definition) {
2631 /******/                                if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
2632 /******/                                        Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
2633 /******/                                }
2634 /******/                        }
2635 /******/                };
2636 /******/        })();
2637 /******/        
2638 /******/        /* webpack/runtime/hasOwnProperty shorthand */
2639 /******/        (() => {
2640 /******/                __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
2641 /******/        })();
2642 /******/        
2643 /******/        /* webpack/runtime/make namespace object */
2644 /******/        (() => {
2645 /******/                // define __esModule on exports
2646 /******/                __webpack_require__.r = (exports) => {
2647 /******/                        if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
2648 /******/                                Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2649 /******/                        }
2650 /******/                        Object.defineProperty(exports, '__esModule', { value: true });
2651 /******/                };
2652 /******/        })();
2653 /******/        
2654 /************************************************************************/
2655 var __webpack_exports__ = {};
2656 // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
2657 (() => {
2658 /*!*********************************!*\
2659   !*** ./src/lib/index.module.js ***!
2660   \*********************************/
2661 __webpack_require__.r(__webpack_exports__);
2662 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2663 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2664 /* harmony export */ });
2665 /* harmony import */ var _index_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.scss */ "./src/lib/index.scss");
2666 /* harmony import */ var _directives_upload_item_upload_item_directive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./directives/upload-item/upload-item.directive */ "./src/lib/directives/upload-item/upload-item.directive.js");
2667 /* harmony import */ var _directives_upload_item_upload_view_directive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./directives/upload-item/upload-view.directive */ "./src/lib/directives/upload-item/upload-view.directive.js");
2668 /* harmony import */ var _directives_agreement_item_agreement_item_directive__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./directives/agreement-item/agreement-item.directive */ "./src/lib/directives/agreement-item/agreement-item.directive.js");
2669 /* harmony import */ var _directives_agreement_item_agreement_view_directive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./directives/agreement-item/agreement-view.directive */ "./src/lib/directives/agreement-item/agreement-view.directive.js");
2670 /* harmony import */ var _main_main_controller__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./main/main.controller */ "./src/lib/main/main.controller.js");
2671 /* harmony import */ var _utils_utils_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/utils.service */ "./src/lib/utils/utils.service.js");
2672 /* harmony import */ var _directives_checkboxes_item_checkboxes_item_directive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./directives/checkboxes-item/checkboxes-item.directive */ "./src/lib/directives/checkboxes-item/checkboxes-item.directive.js");
2673 /* harmony import */ var _directives_checkboxes_item_checkboxes_view_directive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./directives/checkboxes-item/checkboxes-view.directive */ "./src/lib/directives/checkboxes-item/checkboxes-view.directive.js");
2674 /* harmony import */ var _directives_form_item_form_item_directive__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./directives/form-item/form-item.directive */ "./src/lib/directives/form-item/form-item.directive.js");
2675 /* harmony import */ var _directives_form_items_container_form_items_container_directive__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./directives/form-items-container/form-items-container.directive */ "./src/lib/directives/form-items-container/form-items-container.directive.js");
2676 /* harmony import */ var _directives_form_view_form_view_directive__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./directives/form-view/form-view.directive */ "./src/lib/directives/form-view/form-view.directive.js");
2677 /* harmony import */ var _directives_input_item_input_item_directive__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./directives/input-item/input-item.directive */ "./src/lib/directives/input-item/input-item.directive.js");
2678 /* harmony import */ var _directives_input_item_input_view_directive__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./directives/input-item/input-view.directive */ "./src/lib/directives/input-item/input-view.directive.js");
2679 /* harmony import */ var _directives_label_item_label_item_directive__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./directives/label-item/label-item.directive */ "./src/lib/directives/label-item/label-item.directive.js");
2680 /* harmony import */ var _directives_label_item_label_view_directive__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./directives/label-item/label-view.directive */ "./src/lib/directives/label-item/label-view.directive.js");
2681 /* harmony import */ var _directives_matrix_item_matrix_item_directive__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./directives/matrix-item/matrix-item.directive */ "./src/lib/directives/matrix-item/matrix-item.directive.js");
2682 /* harmony import */ var _directives_matrix_item_matrix_view_directive__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./directives/matrix-item/matrix-view.directive */ "./src/lib/directives/matrix-item/matrix-view.directive.js");
2683 /* harmony import */ var _directives_radio_button_item_radio_button_item_directive__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./directives/radio-button-item/radio-button-item.directive */ "./src/lib/directives/radio-button-item/radio-button-item.directive.js");
2684 /* harmony import */ var _directives_radio_button_item_radio_button_view_directive__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./directives/radio-button-item/radio-button-view.directive */ "./src/lib/directives/radio-button-item/radio-button-view.directive.js");
2685 /* harmony import */ var _directives_select_item_select_view_directive__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./directives/select-item/select-view.directive */ "./src/lib/directives/select-item/select-view.directive.js");
2686 /* harmony import */ var _directives_select_item_select_item_directive__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./directives/select-item/select-item.directive */ "./src/lib/directives/select-item/select-item.directive.js");
2687 /* harmony import */ var _directives_textarea_item_textarea_item_directive__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./directives/textarea-item/textarea-item.directive */ "./src/lib/directives/textarea-item/textarea-item.directive.js");
2688 /* harmony import */ var _directives_textarea_item_textarea_view_directive__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./directives/textarea-item/textarea-view.directive */ "./src/lib/directives/textarea-item/textarea-view.directive.js");
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (angular.module('angularMaterialFormBuilder', ['ngMaterial', 'angular-sortable-view', 'ngMessages']).service('Utils', _utils_utils_service__WEBPACK_IMPORTED_MODULE_6__.Utils).controller('MainController', _main_main_controller__WEBPACK_IMPORTED_MODULE_5__.MainController).directive('uploadItem', _directives_upload_item_upload_item_directive__WEBPACK_IMPORTED_MODULE_1__.UploadItem).directive('uploadView', _directives_upload_item_upload_view_directive__WEBPACK_IMPORTED_MODULE_2__.UploadView).directive('agreementItem', _directives_agreement_item_agreement_item_directive__WEBPACK_IMPORTED_MODULE_3__.AgreementItem).directive('agreementView', _directives_agreement_item_agreement_view_directive__WEBPACK_IMPORTED_MODULE_4__.AgreementView).directive('checkboxesItem', _directives_checkboxes_item_checkboxes_item_directive__WEBPACK_IMPORTED_MODULE_7__.CheckboxesItem).directive('checkboxesView', _directives_checkboxes_item_checkboxes_view_directive__WEBPACK_IMPORTED_MODULE_8__.CheckboxesView).directive('formItem', _directives_form_item_form_item_directive__WEBPACK_IMPORTED_MODULE_9__.FormItem).directive('formItemsContainer', _directives_form_items_container_form_items_container_directive__WEBPACK_IMPORTED_MODULE_10__.FormItemsContainer).directive('formView', _directives_form_view_form_view_directive__WEBPACK_IMPORTED_MODULE_11__.FormView).directive('inputItem', _directives_input_item_input_item_directive__WEBPACK_IMPORTED_MODULE_12__.InputItem).directive('inputView', _directives_input_item_input_view_directive__WEBPACK_IMPORTED_MODULE_13__.InputView).directive('labelItem', _directives_label_item_label_item_directive__WEBPACK_IMPORTED_MODULE_14__.LabelItem).directive('labelView', _directives_label_item_label_view_directive__WEBPACK_IMPORTED_MODULE_15__.LabelView).directive('matrixItem', _directives_matrix_item_matrix_item_directive__WEBPACK_IMPORTED_MODULE_16__.MatrixItem).directive('matrixView', _directives_matrix_item_matrix_view_directive__WEBPACK_IMPORTED_MODULE_17__.MatrixView).directive('radioButtonItem', _directives_radio_button_item_radio_button_item_directive__WEBPACK_IMPORTED_MODULE_18__.RadioButtonItem).directive('radioButtonView', _directives_radio_button_item_radio_button_view_directive__WEBPACK_IMPORTED_MODULE_19__.RadioButtonView).directive('selectItem', _directives_select_item_select_item_directive__WEBPACK_IMPORTED_MODULE_21__.SelectItem).directive('selectView', _directives_select_item_select_view_directive__WEBPACK_IMPORTED_MODULE_20__.SelectView).directive('textareaItem', _directives_textarea_item_textarea_item_directive__WEBPACK_IMPORTED_MODULE_22__.TextareaItem).directive('textareaView', _directives_textarea_item_textarea_view_directive__WEBPACK_IMPORTED_MODULE_23__.TextareaView));
2714 })();
2715
2716 /******/        return __webpack_exports__;
2717 /******/ })()
2718 ;
2719 });
2720 //# sourceMappingURL=angular-material-form-builder.js.map