Built motion from commit (unavailable).|2.5.30
[motion2.git] / public / assets / plugins / angular-material-form-builder / dist / angular-material-form-builder.min.js.map
1 {"version":3,"sources":["webpack://angular-material-form-builder/webpack/universalModuleDefinition","webpack://angular-material-form-builder/./src/lib/directives/agreement-item/agreement-item.controller.js","webpack://angular-material-form-builder/./src/lib/directives/agreement-item/agreement-item.directive.js","webpack://angular-material-form-builder/./src/lib/directives/agreement-item/agreement-view.controller.js","webpack://angular-material-form-builder/./src/lib/directives/agreement-item/agreement-view.directive.js","webpack://angular-material-form-builder/./src/lib/directives/checkboxes-item/checkboxes-item.controller.js","webpack://angular-material-form-builder/./src/lib/directives/checkboxes-item/checkboxes-item.directive.js","webpack://angular-material-form-builder/./src/lib/directives/checkboxes-item/checkboxes-view.controller.js","webpack://angular-material-form-builder/./src/lib/directives/checkboxes-item/checkboxes-view.directive.js","webpack://angular-material-form-builder/./src/lib/directives/form-item/form-item.controller.js","webpack://angular-material-form-builder/./src/lib/directives/form-item/form-item.directive.js","webpack://angular-material-form-builder/./src/lib/directives/form-items-container/form-items-container.controller.js","webpack://angular-material-form-builder/./src/lib/directives/form-items-container/form-items-container.directive.js","webpack://angular-material-form-builder/./src/lib/directives/form-view/form-view.controller.js","webpack://angular-material-form-builder/./src/lib/directives/form-view/form-view.directive.js","webpack://angular-material-form-builder/./src/lib/directives/input-item/input-item.controller.js","webpack://angular-material-form-builder/./src/lib/directives/input-item/input-item.directive.js","webpack://angular-material-form-builder/./src/lib/directives/input-item/input-view.controller.js","webpack://angular-material-form-builder/./src/lib/directives/input-item/input-view.directive.js","webpack://angular-material-form-builder/./src/lib/directives/label-item/label-item.controller.js","webpack://angular-material-form-builder/./src/lib/directives/label-item/label-item.directive.js","webpack://angular-material-form-builder/./src/lib/directives/label-item/label-view.controller.js","webpack://angular-material-form-builder/./src/lib/directives/label-item/label-view.directive.js","webpack://angular-material-form-builder/./src/lib/directives/matrix-item/matrix-item.controller.js","webpack://angular-material-form-builder/./src/lib/directives/matrix-item/matrix-item.directive.js","webpack://angular-material-form-builder/./src/lib/directives/matrix-item/matrix-view.controller.js","webpack://angular-material-form-builder/./src/lib/directives/matrix-item/matrix-view.directive.js","webpack://angular-material-form-builder/./src/lib/directives/radio-button-item/radio-button-item.controller.js","webpack://angular-material-form-builder/./src/lib/directives/radio-button-item/radio-button-item.directive.js","webpack://angular-material-form-builder/./src/lib/directives/radio-button-item/radio-button-view.controller.js","webpack://angular-material-form-builder/./src/lib/directives/radio-button-item/radio-button-view.directive.js","webpack://angular-material-form-builder/./src/lib/directives/select-item/select-item.controller.js","webpack://angular-material-form-builder/./src/lib/directives/select-item/select-item.directive.js","webpack://angular-material-form-builder/./src/lib/directives/select-item/select-view.controller.js","webpack://angular-material-form-builder/./src/lib/directives/select-item/select-view.directive.js","webpack://angular-material-form-builder/./src/lib/directives/textarea-item/textarea-item.controller.js","webpack://angular-material-form-builder/./src/lib/directives/textarea-item/textarea-item.directive.js","webpack://angular-material-form-builder/./src/lib/directives/textarea-item/textarea-view.controller.js","webpack://angular-material-form-builder/./src/lib/directives/textarea-item/textarea-view.directive.js","webpack://angular-material-form-builder/./src/lib/directives/upload-item/upload-item.controller.js","webpack://angular-material-form-builder/./src/lib/directives/upload-item/upload-item.directive.js","webpack://angular-material-form-builder/./src/lib/directives/upload-item/upload-view.controller.js","webpack://angular-material-form-builder/./src/lib/directives/upload-item/upload-view.directive.js","webpack://angular-material-form-builder/./src/lib/index.module.js","webpack://angular-material-form-builder/./src/lib/main/main.controller.js","webpack://angular-material-form-builder/./src/lib/utils/utils.service.js","webpack://angular-material-form-builder/./src/lib/directives/agreement-item/agreement-view.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/checkboxes-item/checkboxes-item.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/checkboxes-item/checkboxes-view.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/form-item/form-item.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/form-items-container/form-items-container.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/form-view/form-view.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/input-item/input-item.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/input-item/input-view.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/label-item/label-item.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/label-item/label-view.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/matrix-item/matrix-item.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/matrix-item/matrix-view.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/radio-button-item/radio-button-item.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/radio-button-item/radio-button-view.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/select-item/select-item.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/select-item/select-view.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/textarea-item/textarea-item.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/textarea-item/textarea-view.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/upload-item/upload-item.tpl.html","webpack://angular-material-form-builder/./src/lib/directives/upload-item/upload-view.tpl.html","webpack://angular-material-form-builder/webpack/bootstrap","webpack://angular-material-form-builder/webpack/startup","webpack://angular-material-form-builder/webpack/runtime/define property getters","webpack://angular-material-form-builder/webpack/runtime/hasOwnProperty shorthand","webpack://angular-material-form-builder/webpack/runtime/make namespace object"],"names":["root","factory","exports","module","define","amd","self","AgreementItemCtrl","Utils","$element","this","Element","item","extend","config","maxSelections","options","value","selected","AgreementItem","constructor","restrict","scope","controller","controllerAs","bindToController","AgreementViewCtrl","$scope","Scope","formItem","init","selectedOptions","_getSelectedOptions","disableOptions","isValid","_updateView","_updateValidity","isPreview","_enableWatchers","toggleSelectedOption","filter","option","length","required","form","$setValidity","$watch","newVal","undefined","AgreementView","$timeout","template","AgreementViewTemplate","link","element","attrs","ctrl","CheckboxesItemCtrl","deleteOption","index","splice","addOption","push","setTimeout","find","focus","CheckboxesItem","CheckboxesItemTemplate","CheckboxesViewCtrl","CheckboxesView","CheckboxesViewTemplate","DEFAULT_TITLE","upload","agreement","input","chooseFromList","label","multipleChoices","matrix","checkboxes","textarea","FormItemCtrl","$attrs","Attrs","templates","type","props","title","helpText","deleteClicked","onDelete","_getItemTemplate","FormItem","$compile","onUp","onDown","FormItemTemplate","el","FormItemsContainerCtrl","items","delete","up","prevItem","down","nextItem","FormItemsContainer","FormItemsContainerTemplate","FormViewCtrl","FormView","FormViewTemplate","InputItemCtrl","InputItem","InputItemTemplate","InputViewCtrl","InputView","InputViewTemplate","elem","LabelItemCtrl","LabelItem","LabelItemTemplate","LabelViewCtrl","LabelView","LabelViewTemplate","MatrixItemCtrl","$document","RowContainer","angular","querySelector","ColumnContainer","rows","columns","deleteRow","addRow","bind","deleteColumn","addColumn","MatrixItem","MatrixItemTemplate","MatrixViewCtrl","valid","some","row","$watchGroup","MatrixView","MatrixViewTemplate","RadioButtonItemCtrl","RadioButtonItem","RadioButtonTemplate","RadioButtonViewCtrl","RadioButtonView","RadioButtonViewTemplate","SelectItemCtrl","SelectItem","SelectTemplate","SelectViewCtrl","SelectView","SelectViewTemplate","TextareaItemCtrl","TextareaItem","TextareaItemTemplate","TextareaViewCtrl","TextareaView","TextareaViewTemplate","UploadItemCtrl","UploadItem","UploadItemTemplate","UploadViewCtrl","isMultiple","showAllowed","size","uploadFileButtonLabel","_updateMultiple","multipleUpload","attr","removeAttr","_updateAccept","showAccept","setAttribute","accept","removeAttribute","removeItem","UploadView","UploadViewTemplate","button","css","on","trigger","click","e","$apply","files","Array","from","target","maxSizeMB","file","text","sizeErrMessage","map","name","service","MainController","directive","addItem","dest","src","Object","keys","reduce","result","key","__webpack_module_cache__","__webpack_require__","moduleId","__webpack_modules__","d","definition","o","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag"],"mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAQ,iCAAmCD,IAE3CD,EAAK,iCAAmCC,IAR1C,CASGK,MAAM,WACT,M,uGCJA,SAASC,EAAkBC,EAAOC,GAChCC,KAAKC,QAAUF,EACfC,KAAKE,KAAOJ,EAAMK,OAAOH,KAAKE,MAAQ,GAAI,CACxCE,OAAQ,CACNC,cAAe,MAEjBC,QAAS,CACP,CACEC,MAAO,GACPC,UAAU,M,oQCTlB,MAAMC,EAIJC,cACEV,KAAKW,SAAW,IAChBX,KAAKY,MAAQ,CACXV,KAAM,KAERF,KAAKa,WAAahB,oBAClBG,KAAKc,aAAe,YACpBd,KAAKe,kBAAmB,G,mICjB5B,MAAMC,EAMJN,YAAYO,EAAQnB,GAClBE,KAAKkB,MAAQD,EACbjB,KAAKF,MAAQA,EACbE,KAAKmB,SAAW,GAGlBC,OACEpB,KAAKmB,SAAWnB,KAAKF,MAAMK,OAAOH,KAAKmB,UAAY,GAAI,CACrDf,OAAQ,GACRE,QAAS,CACP,CACEC,MAAO,GACPC,UAAU,MAKhBR,KAAKqB,gBAAkBrB,KAAKsB,sBAC5BtB,KAAKuB,gBAAiB,EAEtBvB,KAAKwB,SAAU,EACfxB,KAAKyB,cACLzB,KAAK0B,kBACD1B,KAAK2B,aACP3B,KAAK4B,kBAITC,uBACE7B,KAAKqB,gBAAkBrB,KAAKsB,sBAC5BtB,KAAKyB,cACLzB,KAAK0B,kBAGPJ,sBACE,OAAOtB,KAAKmB,SAASb,QAAQwB,QAAQC,GAC5BA,EAAOvB,WAIlBiB,cACOzB,KAAKmB,SAASf,OAAOC,eAGxBL,KAAKqB,gBAAgBW,SAAWhC,KAAKmB,SAASf,OAAOC,cAErDL,KAAKuB,gBAAiB,EAJtBvB,KAAKuB,gBAAiB,EAU1BG,kBACM1B,KAAKmB,SAASf,OAAO6B,SACvBjC,KAAKwB,QAAUxB,KAAKqB,gBAAgBW,OAAS,EAE7ChC,KAAKwB,SAAU,EAGjBxB,KAAKkC,KAAKC,aAAa,gBAAiBnC,KAAKwB,SAG/CI,kBACE5B,KAAKkB,MAAMkB,OAAO,0CAA2CC,SAC5CC,IAAXD,IACFrC,KAAKyB,cACLzB,KAAK0B,uB,6RCrEb,MAAMa,EAKJ7B,YAAY8B,GACVxC,KAAKwC,SAAWA,EAChBxC,KAAKyC,SAAWC,UAChB1C,KAAKW,SAAW,IAChBX,KAAKY,MAAQ,CACXO,SAAU,IACVQ,UAAW,IACXO,KAAM,KAERlC,KAAKa,WAAaG,oBAClBhB,KAAKc,aAAe,gBACpBd,KAAKe,kBAAmB,EAW1B4B,KAAK/B,EAAOgC,EAASC,EAAOC,GAE1B9C,KAAKwC,UAAS,WACZM,EAAK1B,SACJ,K,gJClCP,MAAM2B,EAOJrC,YAAYZ,EAAOC,GACjBC,KAAKC,QAAUF,EACfC,KAAKE,KAAOJ,EAAMK,OAAOH,KAAKE,MAAQ,GAAI,CACxCE,OAAQ,CACNC,cAAe,MAEjBC,QAAS,CACP,CACEC,MAAO,GACPC,UAAU,MAMlBwC,aAAaC,GACXjD,KAAKE,KAAKI,QAAQ4C,OAAOD,EAAO,GAGlCE,YACEnD,KAAKE,KAAKI,QAAQ8C,KAAK,CACrB7C,MAAO,GACPC,UAAU,IAGZ6C,YAAW,KACT,MAAM/C,EAAUN,KAAKC,QAAQqD,KAAK,SACdhD,EAAQA,EAAQ0B,OAAS,GACjCuB,UACX,I,sSC9BP,SAASC,IAYP,MAXkB,CAChB7C,SAAU,IACV8B,SAAUgB,UACV7C,MAAO,CACLV,KAAM,KAERW,WAAYkC,qBACZjC,aAAc,aACdC,kBAAkB,K,wHCftB,MAAM2C,EAMJhD,YAAYO,EAAQnB,GAClBE,KAAKkB,MAAQD,EACbjB,KAAKF,MAAQA,EACbE,KAAKmB,SAAW,GAGlBC,OACEpB,KAAKmB,SAAWnB,KAAKF,MAAMK,OAAOH,KAAKmB,UAAY,GAAI,CACrDf,OAAQ,GACRE,QAAS,KAGXN,KAAKqB,gBAAkBrB,KAAKsB,sBAC5BtB,KAAKuB,gBAAiB,EAEtBvB,KAAKwB,SAAU,EACfxB,KAAKyB,cACLzB,KAAK0B,kBACD1B,KAAK2B,aACP3B,KAAK4B,kBAITC,uBACE7B,KAAKqB,gBAAkBrB,KAAKsB,sBAC5BtB,KAAKyB,cACLzB,KAAK0B,kBAGPJ,sBACE,OAAOtB,KAAKmB,SAASb,QAAQwB,QAAQC,GAC5BA,EAAOvB,WAIlBiB,cACOzB,KAAKmB,SAASf,OAAOC,eAGxBL,KAAKqB,gBAAgBW,SAAWhC,KAAKmB,SAASf,OAAOC,cAErDL,KAAKuB,gBAAiB,EAJtBvB,KAAKuB,gBAAiB,EAU1BG,kBACM1B,KAAKmB,SAASf,OAAO6B,SACvBjC,KAAKwB,QAAUxB,KAAKqB,gBAAgBW,OAAS,EAE7ChC,KAAKwB,SAAU,EAGjBxB,KAAKkC,KAAKC,aAAa,gBAAiBnC,KAAKwB,SAG/CI,kBACE5B,KAAKkB,MAAMkB,OAAO,2CAA4CC,SAC7CC,IAAXD,IACFrC,KAAKyB,cACLzB,KAAK0B,uB,oSC7Db,MAAMiC,EAKJjD,YAAY8B,GACVxC,KAAKwC,SAAWA,EAChBxC,KAAKW,SAAW,IAChBX,KAAKyC,SAAWmB,UAChB5D,KAAKY,MAAQ,CACXO,SAAU,IACVQ,UAAW,IACXO,KAAM,KAERlC,KAAKa,WAAa6C,qBAClB1D,KAAKc,aAAe,iBACpBd,KAAKe,kBAAmB,EAW1B4B,KAAK/B,EAAOgC,EAASC,EAAOC,GAE1B9C,KAAKwC,UAAS,WACZM,EAAK1B,SACJ,K,8HCrCP,MAAMyC,EAAgB,CACpBC,OAAQ,aACRC,UAAW,YACXC,MAAO,QACPC,eAAgB,SAChBC,MAAO,QACPC,gBAAiB,SACjBC,OAAQ,SACRC,WAAY,UACZC,SAAU,QAGZ,MAAMC,EAOJ7D,YAAYO,EAAQuD,EAAQ1E,GAC1BE,KAAKyE,MAAQD,EACbxE,KAAKF,MAAQA,EACbE,KAAK0E,UAAY,CACfZ,OAAQ,mDACRC,UAAW,yDACXC,MAAO,iDACPC,eACE,+EACFC,MAAO,iDACPC,gBACE,+DACFC,OAAQ,mDACRC,WAAY,2DACZC,SAAU,wDAEZtE,KAAKE,KAAO,GACZF,KAAKY,MAAQK,EAGfG,OACEpB,KAAKE,KAAOF,KAAKF,MAAMK,OAAOH,KAAKE,MAAQ,GAAI,CAC7CyE,KAAM3E,KAAKyE,MAAME,KACjBC,MAAO,CACLC,MAAOhB,EAAc7D,KAAKyE,MAAME,MAChCG,SAAU,IAEZ1E,OAAQ,CACN6B,UAAU,KAKhB8C,gBACE/E,KAAKgF,SAAS,CAAE9E,KAAMF,KAAKE,KAAM+C,MAAOjD,KAAKiD,UAO/CgC,iBAAiBN,GA+Bf,MA7BE,62BA6Bc3E,KAAK0E,UAAUC,GAN7B,qI,mQC/EN,MAAMO,EAKJxE,YAAYyE,GACVnF,KAAKmF,SAAWA,EAChBnF,KAAKW,SAAW,IAChBX,KAAKY,MAAQ,CACXV,KAAM,IACN8E,SAAU,IACVI,KAAM,IACNC,OAAQ,IACRpC,MAAO,KAETjD,KAAKa,WAAa0D,eAClBvE,KAAKc,aAAe,WACpBd,KAAKe,kBAAmB,EACxBf,KAAKyC,SAAW6C,UAWlB3C,KAAK/B,EAAOgC,EAASC,EAAOC,GAC1B,MAAML,EAAWK,EAAKmC,iBAAiBpC,EAAM8B,MACvCY,EAAKvF,KAAKmF,SAAS1C,EAAdzC,CAAwBY,GAKnC,OADAkC,EAAK1B,OACEmE,G,8JC1CX,MAAMC,EAIJ9E,cAIEV,KAAKkC,KAAO,CACVuD,MAAO,IASXC,OAAOxF,EAAM+C,GACXjD,KAAKkC,KAAKuD,MAAMvC,OAAOD,EAAO,GAQhC0C,GAAGzF,EAAM+C,GACP,GAAc,IAAVA,EAAa,CACf,MAAM2C,EAAW5F,KAAKkC,KAAKuD,MAAMxC,EAAQ,GACzCjD,KAAKkC,KAAKuD,MAAMxC,GAAS2C,EACzB5F,KAAKkC,KAAKuD,MAAMxC,EAAQ,GAAK/C,GASjC2F,KAAK3F,EAAM+C,GACT,GAAIA,IAAUjD,KAAKkC,KAAKuD,MAAMzD,OAAS,EAAG,CACxC,MAAM8D,EAAW9F,KAAKkC,KAAKuD,MAAMxC,EAAQ,GACzCjD,KAAKkC,KAAKuD,MAAMxC,GAAS6C,EACzB9F,KAAKkC,KAAKuD,MAAMxC,EAAQ,GAAK/C,I,sTCtCnC,MAAM6F,EAIJrF,cACEV,KAAKW,SAAW,IAChBX,KAAKY,MAAQ,CACXsB,KAAM,KAERlC,KAAKyC,SAAWuD,UAChBhG,KAAKa,WAAa2E,yBAClBxF,KAAKc,aAAe,YACpBd,KAAKe,kBAAmB,G,oHClB5B,MAAMkF,EAKJvF,YAAYO,GACVjB,KAAKkB,MAAQD,EAGfG,S,kPCHF,MAAM8E,EAIJxF,cACEV,KAAKW,SAAW,IAChBX,KAAKyC,SAAW0D,UAChBnG,KAAKY,MAAQ,CACXsB,KAAM,KAERlC,KAAKa,WAAaoF,eAClBjG,KAAKc,aAAe,WACpBd,KAAKe,kBAAmB,EAW1B4B,KAAK/B,EAAOgC,EAASC,EAAOC,GAC1BA,EAAK1B,Q,uHC9BT,MAAMgF,EAMJ1F,YAAYZ,EAAOC,GACjBC,KAAKC,QAAUF,EAEfC,KAAKE,KAAOJ,EAAMK,OAAOH,KAAKE,MAAQ,GAAI,CACxCE,OAAQ,CACNuE,KAAM,W,mQCLd,MAAM0B,EAIJ3F,cACEV,KAAKW,SAAW,IAChBX,KAAKyC,SAAW6D,UAChBtG,KAAKY,MAAQ,CACXV,KAAM,KAERF,KAAKa,WAAauF,gBAClBpG,KAAKc,aAAe,QACpBd,KAAKe,kBAAmB,G,uHClB5B,MAAMwF,EAKJ7F,YAAYZ,GACVE,KAAKF,MAAQA,EACbE,KAAKmB,SAAW,GAGlBC,OACEpB,KAAKF,MAAMK,OAAOH,KAAKmB,SAAU,CAC/Bf,OAAQ,M,wPCNd,MAAMoG,EAKJ9F,YAAY8B,GACVxC,KAAKwC,SAAWA,EAChBxC,KAAKW,SAAW,IAChBX,KAAKyC,SAAWgE,UAChBzG,KAAKY,MAAQ,CACXO,SAAU,IACVe,KAAM,KAERlC,KAAKa,WAAa0F,gBAClBvG,KAAKc,aAAe,YACpBd,KAAKe,kBAAmB,EAW1B4B,KAAK/B,EAAO8F,EAAM7D,EAAOC,GAEvB9C,KAAKwC,UAAS,WACZM,EAAK1B,SACJ,K,iICpCP,MAAMuF,EAKJjG,YAAYX,GACVC,KAAKC,QAAUF,G,2PCAnB,MAAM6G,EACJlG,cACEV,KAAKW,SAAW,IAChBX,KAAKyC,SAAWoE,UAChB7G,KAAKY,MAAQ,CACXV,KAAM,KAERF,KAAKa,WAAa8F,gBAClB3G,KAAKc,aAAe,QACpBd,KAAKe,kBAAmB,K,yGCf5B,MAAM+F,EAKJpG,YAAYZ,GACVE,KAAKF,MAAQA,EAGfsB,OACEpB,KAAKF,MAAMK,OAAOH,KAAKmB,SAAU,K,wPCJrC,MAAM4F,EAKJrG,YAAY8B,GACVxC,KAAKwC,SAAWA,EAChBxC,KAAKW,SAAW,IAChBX,KAAKyC,SAAWuE,UAChBhH,KAAKY,MAAQ,CACXO,SAAU,IACVe,KAAM,KAERlC,KAAKa,WAAaiG,gBAClB9G,KAAKc,aAAe,YACpBd,KAAKe,kBAAmB,EAW1B4B,KAAK/B,EAAO8F,EAAM7D,EAAOC,GAEvB9C,KAAKwC,UAAS,WACZM,EAAK1B,SACJ,K,oICpCP,MAAM6F,EAMJvG,YAAYZ,EAAOoH,GACjBlH,KAAKmH,aAAeC,QAAQxE,QAC1BsE,EAAU,GAAGG,cAAc,kBAE7BrH,KAAKsH,gBAAkBF,QAAQxE,QAC7BsE,EAAU,GAAGG,cAAc,qBAG7BrH,KAAKE,KAAOJ,EAAMK,OAAOH,KAAKE,MAAQ,GAAI,CACxCE,OAAQ,CACNmH,KAAM,CACJ,CACEhH,MAAO,KAGXiH,QAAS,CACP,CACEjH,MAAO,QAWjBkH,UAAUxE,GACRjD,KAAKE,KAAKE,OAAOmH,KAAKrE,OAAOD,EAAO,GAGtCyE,SACE1H,KAAKE,KAAKE,OAAOmH,KAAKnE,KAAK,CACzB7C,MAAO,KAGT8C,WACE,WACE,MAAM/C,EAAUN,KAAKmH,aAAa7D,KAAK,SACnBhD,EAAQA,EAAQ0B,OAAS,GACjCuB,SACZoE,KAAK3H,MACP,GAQJ4H,aAAa3E,GACXjD,KAAKE,KAAKE,OAAOoH,QAAQtE,OAAOD,EAAO,GAGzC4E,YACE7H,KAAKE,KAAKE,OAAOoH,QAAQpE,KAAK,CAC5B7C,MAAO,KAGT8C,YAAW,KACT,MAAM/C,EAAUN,KAAKsH,gBAAgBhE,KAAK,SACtBhD,EAAQA,EAAQ0B,OAAS,GACjCuB,UACX,I,2QChEP,MAAMuE,EAIJpH,cACEV,KAAKW,SAAW,IAChBX,KAAKyC,SAAWsF,UAChB/H,KAAKY,MAAQ,CACXV,KAAM,KAERF,KAAKa,WAAaoG,iBAClBjH,KAAKc,aAAe,SACpBd,KAAKe,kBAAmB,G,0HClB5B,MAAMiH,EAMJtH,YAAYO,EAAQnB,GAClBE,KAAKkB,MAAQD,EACbjB,KAAKF,MAAQA,EACbE,KAAKwB,SAAU,EACfxB,KAAKmB,SAAW,GAGlBC,OACEpB,KAAKmB,SAAWnB,KAAKF,MAAMK,OAAOH,KAAKmB,SAAU,CAC/Cf,OAAQ,CACNmH,KAAM,GACNC,QAAS,MAIbxH,KAAK0B,kBACD1B,KAAK2B,aACP3B,KAAK4B,kBAITF,kBACE,IAAIuG,GAAQ,EACRjI,KAAKmB,SAASf,OAAO6B,WACvBgG,GAASjI,KAAKmB,SAASf,OAAOmH,KAAKW,MAChCC,QAAmC,IAApBA,EAAG,YAUvBnI,KAAKwB,QAAUyG,EACfjI,KAAKkC,KAAKC,aAAa,WAAYnC,KAAKwB,SAG1CI,kBACE5B,KAAKkB,MAAMkH,YACT,CACE,sCACA,2CAED/F,SACgBC,IAAXD,GACFrC,KAAK0B,sB,wQC9Cf,MAAM2G,EAKJ3H,YAAY8B,GACVxC,KAAKwC,SAAWA,EAChBxC,KAAKW,SAAW,IAChBX,KAAKyC,SAAW6F,UAChBtI,KAAKY,MAAQ,CACXO,SAAU,IACVQ,UAAW,IACXO,KAAM,KAERlC,KAAKa,WAAamH,iBAClBhI,KAAKc,aAAe,aACpBd,KAAKe,kBAAmB,EAW1B4B,KAAK/B,EAAO8F,EAAM7D,EAAOC,GAEvB9C,KAAKwC,UAAS,WACZM,EAAK1B,SACJ,K,qJCtCP,MAAMmH,EAMJ7H,YAAYZ,EAAOC,GACjBC,KAAKC,QAAUF,EACfC,KAAKE,KAAOJ,EAAMK,OAAOH,KAAKE,MAAQ,GAAI,CACxCE,OAAQ,GACRE,QAAS,CACP,CACEC,MAAO,OAMfyC,aAAaC,GACXjD,KAAKE,KAAKI,QAAQ4C,OAAOD,EAAO,GAGlCE,YACEnD,KAAKE,KAAKI,QAAQ8C,KAAK,CACrB7C,MAAO,KAGT8C,YAAW,KACT,MAAM/C,EAAUN,KAAKC,QAAQqD,KAAK,SACdhD,EAAQA,EAAQ0B,OAAS,GACjCuB,UACX,I,mTCxBP,MAAMiF,EAIJ9H,cACEV,KAAKW,SAAW,IAChBX,KAAKyC,SAAWgG,UAChBzI,KAAKY,MAAQ,CACXV,KAAM,KAERF,KAAKa,WAAa0H,sBAClBvI,KAAKc,aAAe,cACpBd,KAAKe,kBAAmB,G,2ICnB5B,MAAM2H,EAKJhI,YAAYZ,GACVE,KAAKF,MAAQA,EACbE,KAAKmB,SAAW,GAGlBC,OACEpB,KAAKmB,SAAWnB,KAAKF,MAAMK,OAAOH,KAAKmB,SAAU,CAC/Cf,OAAQ,GACRE,QAAS,M,wSCVf,MAAMqI,EAKJjI,YAAY8B,GACVxC,KAAKwC,SAAWA,EAChBxC,KAAKW,SAAW,IAChBX,KAAKyC,SAAWmG,UAChB5I,KAAKY,MAAQ,CACXO,SAAU,IACVQ,UAAW,IACXO,KAAM,KAERlC,KAAKa,WAAa6H,sBAClB1I,KAAKc,aAAe,kBACpBd,KAAKe,kBAAmB,EAW1B4B,KAAK/B,EAAO8F,EAAM7D,EAAOC,GAEvB9C,KAAKwC,UAAS,WACZM,EAAK1B,SACJ,K,oIClCP,MAAMyH,EAMJnI,YAAYZ,EAAOC,GACjBC,KAAKC,QAAUF,EACfC,KAAKE,KAAOJ,EAAMK,OAAOH,KAAKE,MAAQ,GAAI,CACxCE,OAAQ,GACRE,QAAS,CACP,CACEC,MAAO,OAUfyC,aAAaC,GACXjD,KAAKE,KAAKI,QAAQ4C,OAAOD,EAAO,GAGlCE,YACEnD,KAAKE,KAAKI,QAAQ8C,KAAK,CACrB7C,MAAO,KAGT8C,YAAW,KACT,MAAM/C,EAAUN,KAAKC,QAAQqD,KAAK,SACdhD,EAAQA,EAAQ0B,OAAS,GACjCuB,UACX,I,0QC7BP,MAAMuF,EAIJpI,cACEV,KAAKW,SAAW,IAChBX,KAAKyC,SAAWsG,UAChB/I,KAAKY,MAAQ,CACXV,KAAM,KAERF,KAAKa,WAAagI,iBAClB7I,KAAKc,aAAe,SACpBd,KAAKe,kBAAmB,G,0HClB5B,MAAMiI,EAKJtI,YAAYZ,GACVE,KAAKF,MAAQA,EACbE,KAAKmB,SAAW,GAGlBC,OACEpB,KAAKmB,SAAWnB,KAAKF,MAAMK,OAAOH,KAAKmB,SAAU,CAC/Cf,OAAQ,GACRE,QAAS,M,+PCPf,MAAM2I,EAKJvI,YAAY8B,GACVxC,KAAKwC,SAAWA,EAEhBxC,KAAKW,SAAW,IAChBX,KAAKyC,SAAWyG,UAChBlJ,KAAKY,MAAQ,CACXO,SAAU,IACVQ,UAAW,IACXO,KAAM,KAERlC,KAAKa,WAAamI,iBAClBhJ,KAAKc,aAAe,aACpBd,KAAKe,kBAAmB,EAW1B4B,KAAK/B,EAAO8F,EAAM7D,EAAOC,GAEvB9C,KAAKwC,UAAS,WACZM,EAAK1B,SACJ,K,0ICtCP,MAAM+H,EAMJzI,YAAYZ,EAAOC,GACjBC,KAAKC,QAAUF,EAEfC,KAAKE,KAAOJ,EAAMK,OAAOH,KAAKE,MAAQ,GAAI,CACxCE,OAAQ,M,wRCJd,MAAMgJ,EAIJ1I,cACEV,KAAKW,SAAW,IAChBX,KAAKyC,SAAW4G,UAChBrJ,KAAKY,MAAQ,CACXV,KAAM,KAERF,KAAKa,WAAasI,mBAClBnJ,KAAKc,aAAe,WACpBd,KAAKe,kBAAmB,G,gIClB5B,MAAMuI,EAKJ5I,YAAYZ,GACVE,KAAKF,MAAQA,EACbE,KAAKmB,SAAW,GAGlBC,OACEpB,KAAKmB,SAAWnB,KAAKF,MAAMK,OAAOH,KAAKmB,SAAU,CAC/Cf,OAAQ,M,6QCLd,MAAMmJ,EAKJ7I,YAAY8B,GACVxC,KAAKwC,SAAWA,EAChBxC,KAAKY,MAAQ,CACXO,SAAU,IACVe,KAAM,KAERlC,KAAKW,SAAW,IAChBX,KAAKyC,SAAW+G,UAChBxJ,KAAKa,WAAayI,mBAClBtJ,KAAKc,aAAe,eACpBd,KAAKe,kBAAmB,EAW1B4B,KAAK/B,EAAO8F,EAAM7D,EAAOC,GAEvB9C,KAAKwC,UAAS,WACZM,EAAK1B,SACJ,K,oICrCP,MAAMqI,EAOJ/I,YAAYZ,EAAOC,GACjBC,KAAKC,QAAUF,EACfC,KAAKE,KAAOJ,EAAMK,OAAOH,KAAKE,MAAQ,GAAI,CACxCE,OAAQ,GACRE,QAAS,M,0QCLf,MAAMoJ,EAIJhJ,cACEV,KAAKW,SAAW,IAChBX,KAAKyC,SAAWkH,UAChB3J,KAAKY,MAAQ,CACXV,KAAM,KAERF,KAAKa,WAAa4I,iBAClBzJ,KAAKc,aAAe,SACpBd,KAAKe,kBAAmB,G,0HClB5B,MAAM6I,EAOJlJ,YAAYO,EAAQnB,EAAOC,GACzBC,KAAKkB,MAAQD,EACbjB,KAAKC,QAAUF,EACfC,KAAKF,MAAQA,EACbE,KAAKmB,SAAW,GAElBC,OACEpB,KAAK6J,YAAa,EAClB7J,KAAK8J,aAAc,EACnB9J,KAAKmB,SAAWnB,KAAKF,MAAMK,OAAOH,KAAKmB,UAAY,GAAI,CACrDf,OAAQ,CACN2J,KAAM,GACNC,sBAAuB,aAEzB1J,QAAS,KAEPN,KAAK2B,aACP3B,KAAK4B,kBAGTqI,kBACEjK,KAAK6J,aAAe7J,KAAKmB,SAASf,OAAO8J,eACzC,MAAMlG,EAAQoD,QAAQxE,QACpB5C,KAAKC,QAAQ,GAAGoH,cAAc,qBAE5BrD,IACFhE,KAAKmB,SAASb,QAAU,GACpBN,KAAK6J,WACP7F,EAAMmG,KAAK,WAAY,YAEvBnG,EAAMoG,WAAW,aAKvBC,gBACErK,KAAK8J,cAAgB9J,KAAKmB,SAASf,OAAOkK,WAC1C,MAAMtG,EAAQoD,QAAQxE,QACpB5C,KAAKC,QAAQ,GAAGoH,cAAc,qBAE5BrD,IACEhE,KAAK8J,YACP9F,EAAM,GAAGuG,aAAa,SAAUvK,KAAKmB,SAASf,OAAOoK,SAErDxG,EAAM,GAAGyG,gBAAgB,iBAClBzK,KAAKmB,SAASf,OAAOoK,SAKlC5I,kBACE5B,KAAKkB,MAAMkB,OAAO,6CAA8CC,SAC/CC,IAAXD,GACFrC,KAAKiK,qBAITjK,KAAKkB,MAAMkB,OAAO,yCAA0CC,SAC3CC,IAAXD,GACFrC,KAAKqK,mBAITrK,KAAKkB,MAAMkB,OAAO,qCAAsCC,SACvCC,IAAXD,GACFrC,KAAKqK,mBAKXK,WAAWzH,GACTjD,KAAKmB,SAASb,QAAQ4C,OAAOD,EAAO,I,mRCzExC,MAAM0H,EAKJjK,YAAY8B,GACVxC,KAAKwC,SAAWA,EAChBxC,KAAKyC,SAAWmI,UAChB5K,KAAKW,SAAW,IAChBX,KAAKY,MAAQ,CACXO,SAAU,IACVQ,UAAW,IACXO,KAAM,KAERlC,KAAKa,WAAa+I,iBAClB5J,KAAKc,aAAe,aACpBd,KAAKe,kBAAmB,EAW1B4B,KAAK/B,EAAOgC,EAASC,EAAOC,GAE1B9C,KAAKwC,UAAS,WACZM,EAAK1B,SACJ,IAEH,MAAMyJ,EAASzD,QAAQxE,QAAQA,EAAQ,GAAGyE,cAAc,mBAClDrD,EAAQoD,QAAQxE,QAAQA,EAAQ,GAAGyE,cAAc,qBACjDnD,EAAQkD,QAAQxE,QAAQA,EAAQ,GAAGyE,cAAc,UAEnDnD,EAAMlC,QACRkC,EAAM4G,IAAI,UAAW,QAGvBD,EAAOE,GAAG,SAAS,KACjB7G,EAAM4G,IAAI,UAAW,QACI,mBAAlB9G,EAAMgH,QACThH,EAAMgH,QAAQ,SACdhH,EAAM,GAAGiH,WAGfjH,EAAM+G,GAAG,UAAWG,IAClBtK,EAAMuK,QAAO,WAIX,MAAMC,EAAQC,MAAMC,KAAKJ,EAAEK,OAAOH,OAE5BI,EAzDH,QAyDe1I,EAAK3B,SAASf,OAAO2J,KACnBqB,EAAMlD,MAAMuD,GAASA,EAAK1B,MAAQyB,KAEpDtH,EAAM4G,IAAI,UAAW,SACrB5G,EAAMwH,KAAK5I,EAAK3B,SAASf,OAAOuL,gBAChC7I,EAAK3B,SAASb,QAAU,IAExBwC,EAAK3B,SAASb,QAAU8K,EAAMQ,KAAKH,IACjC,MAAM,KAAEI,EAAF,KAAQ9B,EAAR,KAAcpF,GAAS8G,EAC7B,MAAO,CAAEI,OAAM9B,OAAMpF,OAAM8G,kB,8lDC5CvC,QAAerE,QACZ3H,OAAO,6BAA8B,CACpC,aACA,wBACA,eAEDqM,QAAQ,QAAShM,SACjBe,WAAW,iBAAkBkL,kBAC7BC,UAAU,aAActC,cACxBsC,UAAU,aAAcrB,cACxBqB,UAAU,gBAAiBvL,iBAC3BuL,UAAU,gBAAiBzJ,iBAC3ByJ,UAAU,iBAAkBxI,kBAC5BwI,UAAU,iBAAkBrI,kBAC5BqI,UAAU,WAAY9G,YACtB8G,UAAU,qBAAsBjG,sBAChCiG,UAAU,WAAY9F,YACtB8F,UAAU,YAAa3F,aACvB2F,UAAU,YAAaxF,aACvBwF,UAAU,YAAapF,aACvBoF,UAAU,YAAajF,aACvBiF,UAAU,aAAclE,cACxBkE,UAAU,aAAc3D,cACxB2D,UAAU,kBAAmBxD,mBAC7BwD,UAAU,kBAAmBrD,mBAC7BqD,UAAU,aAAclD,cACxBkD,UAAU,aAAc/C,cACxB+C,UAAU,eAAgB5C,gBAC1B4C,UAAU,eAAgBzC,iB,mFChD7B,MAAMwC,EAIJrL,cAIEV,KAAKkC,KAAO,CACVuD,MAAO,IAQXwG,QAAQtH,GACN3E,KAAKkC,KAAKuD,MAAMrC,KAAK,CACnBuB,SASJe,OAAOxF,EAAM+C,GACXjD,KAAKkC,KAAKuD,MAAMvC,OAAOD,EAAO,GAShC0C,GAAGzF,EAAM+C,GACP,GAAc,IAAVA,EAAa,CACf,MAAM2C,EAAW5F,KAAKkC,KAAKuD,MAAMxC,EAAQ,GACzCjD,KAAKkC,KAAKuD,MAAMxC,GAAS2C,EACzB5F,KAAKkC,KAAKuD,MAAMxC,EAAQ,GAAK/C,GAUjC2F,KAAK3F,EAAM+C,GACT,GAAIA,IAAUjD,KAAKkC,KAAKuD,MAAMzD,OAAS,EAAG,CACxC,MAAM8D,EAAW9F,KAAKkC,KAAKuD,MAAMxC,EAAQ,GACzCjD,KAAKkC,KAAKuD,MAAMxC,GAAS6C,EACzB9F,KAAKkC,KAAKuD,MAAMxC,EAAQ,GAAK/C,I,uFC7DnC,MAAMJ,EAOJK,OAAO+L,EAAMC,GACX,OAAOC,OAAOC,KAAKF,GAAKG,QACtB,CAACC,EAAQC,UACoB,IAAhBD,EAAOC,GAChBD,EAAOC,GAAOL,EAAIK,GACW,iBAAbL,EAAIK,KACpBD,EAAOC,GAAOxM,KAAKG,OAAOoM,EAAOC,GAAML,EAAIK,KAEtCD,SAEO,IAATL,EAAuB,GAAKA,M,+ICjBzC,4pB,wGCAA,m8C,wGCAA,wrB,4FCAA,+kF,kHCAA,4T,4FCAA,y8D,8FCAA,gd,8FCAA,yZ,8FCAA,kL,8FCAA,0Q,gGCAA,4xE,gGCAA,gzC,4GCAA,wrC,4GCAA,8rB,gGCAA,63B,gGCAA,kgB,oGCAA,6K,oGCAA,mY,gGCAA,26C,gGCAA,qjCCCIO,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,GAAGF,EAAyBE,GAC3B,OAAOF,EAAyBE,GAAUnN,QAG3C,IAAIC,EAASgN,EAAyBE,GAAY,CAGjDnN,QAAS,IAOV,OAHAoN,EAAoBD,GAAUlN,EAAQA,EAAOD,QAASkN,GAG/CjN,EAAOD,QCjBf,OCFAkN,EAAoBG,EAAI,CAACrN,EAASsN,KACjC,IAAI,IAAIN,KAAOM,EACXJ,EAAoBK,EAAED,EAAYN,KAASE,EAAoBK,EAAEvN,EAASgN,IAC5EJ,OAAOY,eAAexN,EAASgN,EAAK,CAAES,YAAY,EAAMC,IAAKJ,EAAWN,MCJ3EE,EAAoBK,EAAI,CAACI,EAAKC,IAAShB,OAAOiB,UAAUC,eAAeC,KAAKJ,EAAKC,GCCjFV,EAAoBc,EAAKhO,IACH,oBAAXiO,QAA0BA,OAAOC,aAC1CtB,OAAOY,eAAexN,EAASiO,OAAOC,YAAa,CAAEnN,MAAO,WAE7D6L,OAAOY,eAAexN,EAAS,aAAc,CAAEe,OAAO,KHFhDmM,EAAoB,8B","file":"angular-material-form-builder.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"angular-material-form-builder\"] = factory();\n\telse\n\t\troot[\"angular-material-form-builder\"] = factory();\n})(self, function() {\nreturn ","/**\n * @ngInject\n *\n * @param {import('../../utils/utils.service').Utils} Utils\n * @param {JQLite} $element\n */\nfunction AgreementItemCtrl(Utils, $element) {\n  this.Element = $element\n  this.item = Utils.extend(this.item || {}, {\n    config: {\n      maxSelections: null,\n    },\n    options: [\n      {\n        value: '',\n        selected: false,\n      },\n    ],\n  })\n}\n\nexport { AgreementItemCtrl }\n","import { AgreementItemCtrl } from './agreement-item.controller'\n// import AgreementItemTemplate from './agreement-item.tpl.html'\n\n/**\n * @implements {ng.IDirective}\n */\nclass AgreementItem {\n  /**\n   * @ngInject\n   */\n  constructor() {\n    this.restrict = 'E'\n    this.scope = {\n      item: '=',\n    }\n    this.controller = AgreementItemCtrl\n    this.controllerAs = 'Agreement'\n    this.bindToController = true\n  }\n}\n\nexport { AgreementItem }\n","class AgreementViewCtrl {\n  /**\n   * @ngInject\n   * @param {ng.IScope} $scope\n   * @param {import('../../utils/utils.service').Utils} Utils\n   */\n  constructor($scope, Utils) {\n    this.Scope = $scope\n    this.Utils = Utils\n    this.formItem = {}\n  }\n\n  init() {\n    this.formItem = this.Utils.extend(this.formItem || {}, {\n      config: {},\n      options: [\n        {\n          value: '',\n          selected: false,\n        },\n      ],\n    })\n\n    this.selectedOptions = this._getSelectedOptions()\n    this.disableOptions = false\n\n    this.isValid = true\n    this._updateView()\n    this._updateValidity()\n    if (this.isPreview()) {\n      this._enableWatchers()\n    }\n  }\n\n  toggleSelectedOption() {\n    this.selectedOptions = this._getSelectedOptions()\n    this._updateView()\n    this._updateValidity()\n  }\n\n  _getSelectedOptions() {\n    return this.formItem.options.filter((option) => {\n      return option.selected\n    })\n  }\n\n  _updateView() {\n    if (!this.formItem.config.maxSelections) {\n      this.disableOptions = false\n    } else if (\n      this.selectedOptions.length === this.formItem.config.maxSelections\n    ) {\n      this.disableOptions = true\n    } else {\n      this.disableOptions = false\n    }\n  }\n\n  _updateValidity() {\n    if (this.formItem.config.required) {\n      this.isValid = this.selectedOptions.length > 0\n    } else {\n      this.isValid = true\n    }\n\n    this.form.$setValidity('minSelections', this.isValid)\n  }\n\n  _enableWatchers() {\n    this.Scope.$watch('AgreementView.formItem.config.required', (newVal) => {\n      if (newVal !== undefined) {\n        this._updateView()\n        this._updateValidity()\n      }\n    })\n  }\n}\n\nexport { AgreementViewCtrl }\n","import { AgreementViewCtrl } from './agreement-view.controller'\nimport AgreementViewTemplate from './agreement-view.tpl.html'\n\nclass AgreementView {\n  /**\n   * @ngInject\n   * @param {ng.ITimeoutService} $timeout\n   */\n  constructor($timeout) {\n    this.$timeout = $timeout\n    this.template = AgreementViewTemplate\n    this.restrict = 'E'\n    this.scope = {\n      formItem: '=',\n      isPreview: '&',\n      form: '=',\n    }\n    this.controller = AgreementViewCtrl\n    this.controllerAs = 'AgreementView'\n    this.bindToController = true\n  }\n\n  /**\n   * @see https://docs.angularjs.org/api/ng/service/$compile#-link-\n   * @param {ng.IScope} scope - scope\n   * @param {JQLite} element - element\n   * @param {ng.IAttributes} attrs - attributes\n   * @param {AgreementViewCtrl} ctrl - this instance controller\n   * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)\n   */\n  link(scope, element, attrs, ctrl) {\n    //this timeout is placed here in order to make sure that the creator directive of this view is finished its work\n    this.$timeout(function () {\n      ctrl.init()\n    }, 50)\n  }\n}\n\nexport { AgreementView }\n","class CheckboxesItemCtrl {\n  /**\n   * @ngInject\n   *\n   * @param {import('../../utils/utils.service').Utils} Utils\n   * @param {JQLite} $element\n   */\n  constructor(Utils, $element) {\n    this.Element = $element\n    this.item = Utils.extend(this.item || {}, {\n      config: {\n        maxSelections: null,\n      },\n      options: [\n        {\n          value: '',\n          selected: false,\n        },\n      ],\n    })\n  }\n\n  deleteOption(index) {\n    this.item.options.splice(index, 1)\n  }\n\n  addOption() {\n    this.item.options.push({\n      value: '',\n      selected: false,\n    })\n    // Focus new element\n    setTimeout(() => {\n      const options = this.Element.find('input')\n      const addedOption = options[options.length - 1]\n      addedOption.focus()\n    }, 0)\n  }\n}\n\nexport { CheckboxesItemCtrl }\n","import CheckboxesItemTemplate from './checkboxes-item.tpl.html'\nimport { CheckboxesItemCtrl } from './checkboxes-item.controller'\n\n/**\n * @implements {ng.IDirective}\n */\nfunction CheckboxesItem() {\n  const directive = {\n    restrict: 'E',\n    template: CheckboxesItemTemplate,\n    scope: {\n      item: '=',\n    },\n    controller: CheckboxesItemCtrl,\n    controllerAs: 'Checkboxes',\n    bindToController: true,\n  }\n\n  return directive\n}\n\nexport { CheckboxesItem }\n","class CheckboxesViewCtrl {\n  /**\n   * @ngInject\n   * @param {ng.IScope} $scope\n   * @param {import('../../utils/utils.service').Utils} Utils\n   */\n  constructor($scope, Utils) {\n    this.Scope = $scope\n    this.Utils = Utils\n    this.formItem = {}\n  }\n\n  init() {\n    this.formItem = this.Utils.extend(this.formItem || {}, {\n      config: {},\n      options: [],\n    })\n\n    this.selectedOptions = this._getSelectedOptions()\n    this.disableOptions = false\n\n    this.isValid = true\n    this._updateView()\n    this._updateValidity()\n    if (this.isPreview()) {\n      this._enableWatchers()\n    }\n  }\n\n  toggleSelectedOption() {\n    this.selectedOptions = this._getSelectedOptions()\n    this._updateView()\n    this._updateValidity()\n  }\n\n  _getSelectedOptions() {\n    return this.formItem.options.filter((option) => {\n      return option.selected\n    })\n  }\n\n  _updateView() {\n    if (!this.formItem.config.maxSelections) {\n      this.disableOptions = false\n    } else if (\n      this.selectedOptions.length === this.formItem.config.maxSelections\n    ) {\n      this.disableOptions = true\n    } else {\n      this.disableOptions = false\n    }\n  }\n\n  _updateValidity() {\n    if (this.formItem.config.required) {\n      this.isValid = this.selectedOptions.length > 0\n    } else {\n      this.isValid = true\n    }\n\n    this.form.$setValidity('minSelections', this.isValid)\n  }\n\n  _enableWatchers() {\n    this.Scope.$watch('CheckboxesView.formItem.config.required', (newVal) => {\n      if (newVal !== undefined) {\n        this._updateView()\n        this._updateValidity()\n      }\n    })\n  }\n}\n\nexport { CheckboxesViewCtrl }\n","import CheckboxesViewTemplate from './checkboxes-view.tpl.html'\nimport { CheckboxesViewCtrl } from './checkboxes-view.controller'\n\n/**\n * @implements {ng.IDirective}\n */\nclass CheckboxesView {\n  /**\n   * @ngInject\n   * @param {ng.ITimeoutService} $timeout\n   */\n  constructor($timeout) {\n    this.$timeout = $timeout\n    this.restrict = 'E'\n    this.template = CheckboxesViewTemplate\n    this.scope = {\n      formItem: '=',\n      isPreview: '&',\n      form: '=',\n    }\n    this.controller = CheckboxesViewCtrl\n    this.controllerAs = 'CheckboxesView'\n    this.bindToController = true\n  }\n\n  /**\n   * @see https://docs.angularjs.org/api/ng/service/$compile#-link-\n   * @param {ng.IScope} scope - scope\n   * @param {JQLite} element - element\n   * @param {ng.IAttributes} attrs - attributes\n   * @param {CheckboxesViewCtrl} ctrl - this instance controller\n   * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)\n   */\n  link(scope, element, attrs, ctrl) {\n    //this timeout is placed here in order to make sure that the creator directive of this view is finished its work\n    this.$timeout(function () {\n      ctrl.init()\n    }, 50)\n  }\n}\n\nexport { CheckboxesView }\n","const DEFAULT_TITLE = {\n  upload: 'Attachment',\n  agreement: 'Agreement',\n  input: 'Field',\n  chooseFromList: 'Select',\n  label: 'Label',\n  multipleChoices: 'Choice',\n  matrix: 'Matrix',\n  checkboxes: 'Options',\n  textarea: 'Text',\n}\n\nclass FormItemCtrl {\n  /**\n   * @ngInject\n   * @param {ng.IScope} $scope\n   * @param {ng.IAttributes} $attrs\n   * @param {import('../../utils/utils.service').Utils} Utils\n   */\n  constructor($scope, $attrs, Utils) {\n    this.Attrs = $attrs\n    this.Utils = Utils\n    this.templates = {\n      upload: '<upload-item item=\"FormItem.item\"></upload-item>',\n      agreement: '<agreement-item item=\"FormItem.item\"></agreement-item>',\n      input: '<input-item item=\"FormItem.item\"></input-item>',\n      chooseFromList:\n        '<bet-form-choose-from-list item=\"FormItem.item\"></bet-form-choose-from-list>',\n      label: '<label-item item=\"FormItem.item\"></label-item>',\n      multipleChoices:\n        '<radio-button-item item=\"FormItem.item\"></radio-button-item>',\n      matrix: '<matrix-item item=\"FormItem.item\"></matrix-item>',\n      checkboxes: '<checkboxes-item item=\"FormItem.item\"></checkboxes-item>',\n      textarea: '<textarea-item item=\"FormItem.item\"></textarea-item>',\n    }\n    this.item = {}\n    this.scope = $scope\n  }\n\n  init() {\n    this.item = this.Utils.extend(this.item || {}, {\n      type: this.Attrs.type,\n      props: {\n        title: DEFAULT_TITLE[this.Attrs.type],\n        helpText: '',\n      },\n      config: {\n        required: false,\n      },\n    })\n  }\n\n  deleteClicked() {\n    this.onDelete({ item: this.item, index: this.index() })\n  }\n\n  /**\n   *\n   * @param {string} type\n   */\n  _getItemTemplate(type) {\n    const prefix =\n      '' +\n      '<div class=\"form-item-container\">' +\n      '<div class=\"form-item-actions\">' +\n      '<md-button class=\"md-button\" ng-if=\"FormItem.Attrs.onDelete\" ng-click=\"FormItem.deleteClicked()\"> ' +\n      '<md-icon class=\"material-icons small\">delete</md-icon>' +\n      '</md-button>' +\n      '<md-button class=\"md-button\" ng-if=\"FormItem.Attrs.onUp\" ng-click=\"FormItem.onUp({item: FormItem.item, index: FormItem.index()})\"> ' +\n      '<md-icon class=\"material-icons small\">arrow_drop_up</md-icon>' +\n      '</md-button>' +\n      '<md-button class=\"md-button\" ng-if=\"FormItem.Attrs.onDown\" ng-click=\"FormItem.onDown({item: FormItem.item, index: FormItem.index()})\"> ' +\n      '<md-icon class=\"material-icons small\">arrow_drop_down</md-icon>' +\n      '</md-button>' +\n      '</div>' +\n      '<md-input-container>' +\n      '<label>Field Title</label>' +\n      '<input ng-model=\"FormItem.item.props.title\"/>' +\n      '</md-input-container>' +\n      '<md-input-container>' +\n      '<label>Help Text</label>' +\n      '<input ng-model=\"FormItem.item.props.helpText\" />' +\n      '</md-input-container>'\n\n    const suffix =\n      '' +\n      '<md-input-container>' +\n      '<md-checkbox ng-model=\"FormItem.item.config.required\">Required field</md-checkbox>' +\n      '</md-input-container>' +\n      '</div>'\n\n    return prefix + this.templates[type] + suffix\n  }\n}\n\nexport { FormItemCtrl }\n","import FormItemTemplate from './form-item.tpl.html'\nimport { FormItemCtrl } from './form-item.controller'\n\n/**\n * @implements {ng.IDirective}\n */\nclass FormItem {\n  /**\n   * @ngInject\n   * @param {ng.ICompileService} $compile\n   */\n  constructor($compile) {\n    this.$compile = $compile\n    this.restrict = 'E'\n    this.scope = {\n      item: '=',\n      onDelete: '&',\n      onUp: '&',\n      onDown: '&',\n      index: '&',\n    }\n    this.controller = FormItemCtrl\n    this.controllerAs = 'FormItem'\n    this.bindToController = true\n    this.template = FormItemTemplate\n  }\n\n  /**\n   * @see https://docs.angularjs.org/api/ng/service/$compile#-link-\n   * @param {ng.IScope} scope - scope\n   * @param {JQLite} element - element\n   * @param {ng.IAttributes} attrs - attributes\n   * @param {FormItemCtrl} ctrl - this instance controller\n   * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)\n   */\n  link(scope, element, attrs, ctrl) {\n    const template = ctrl._getItemTemplate(attrs.type)\n    const el = this.$compile(template)(scope)\n    // element.append(el)\n    // if done like above adds twice\n    // element.append(this.$compile(template)(scope))\n    ctrl.init()\n    return el\n  }\n}\nexport { FormItem }\n","class FormItemsContainerCtrl {\n  /**\n   * @ngInject\n   */\n  constructor() {\n    /**\n     * @type {import('../../main/main.controller').FormConfig}\n     */\n    this.form = {\n      items: [],\n    }\n  }\n\n  /**\n   *\n   * @param {import('../../main/main.controller').Item} item\n   * @param {number} index\n   */\n  delete(item, index) {\n    this.form.items.splice(index, 1)\n  }\n\n  /**\n   *\n   * @param {import('../../main/main.controller').Item} item\n   * @param {number} index\n   */\n  up(item, index) {\n    if (index !== 0) {\n      const prevItem = this.form.items[index - 1]\n      this.form.items[index] = prevItem\n      this.form.items[index - 1] = item\n    }\n  }\n\n  /**\n   *\n   * @param {import('../../main/main.controller').Item} item\n   * @param {number} index\n   */\n  down(item, index) {\n    if (index !== this.form.items.length - 1) {\n      const nextItem = this.form.items[index + 1]\n      this.form.items[index] = nextItem\n      this.form.items[index + 1] = item\n    }\n  }\n}\n\nexport { FormItemsContainerCtrl }\n","import { FormItemsContainerCtrl } from './form-items-container.controller'\nimport FormItemsContainerTemplate from './form-items-container.tpl.html'\n\n/**\n * @implements {ng.IDirective}\n */\nclass FormItemsContainer {\n  /**\n   * @ngInject\n   */\n  constructor() {\n    this.restrict = 'E'\n    this.scope = {\n      form: '=',\n    }\n    this.template = FormItemsContainerTemplate\n    this.controller = FormItemsContainerCtrl\n    this.controllerAs = 'container'\n    this.bindToController = true\n  }\n}\n\nexport { FormItemsContainer }\n","class FormViewCtrl {\n  /**\n   * @ngInject\n   * @param {ng.IScù} $scope\n   */\n  constructor($scope) {\n    this.Scope = $scope\n  }\n\n  init() {}\n}\n\nexport { FormViewCtrl }\n","import { FormViewCtrl } from './form-view.controller'\nimport FormViewTemplate from './form-view.tpl.html'\n\n/**\n * @implements {ng.IDirective}\n */\nclass FormView {\n  /**\n   * @ngInject\n   */\n  constructor() {\n    this.restrict = 'E'\n    this.template = FormViewTemplate\n    this.scope = {\n      form: '=',\n    }\n    this.controller = FormViewCtrl\n    this.controllerAs = 'FormView'\n    this.bindToController = true\n  }\n\n  /**\n   * @see https://docs.angularjs.org/api/ng/service/$compile#-link-\n   * @param {ng.IScope} scope - scope\n   * @param {JQLite} element - element\n   * @param {ng.IAttributes} attrs - attributes\n   * @param {FormViewCtrl} ctrl - this instance controller\n   * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)\n   */\n  link(scope, element, attrs, ctrl) {\n    ctrl.init()\n  }\n}\n\nexport { FormView }\n","class InputItemCtrl {\n  /**\n   * @ngInject\n   * @param {import('../../utils/utils.service').Utils} Utils\n   * @param {JQLite} $element\n   */\n  constructor(Utils, $element) {\n    this.Element = $element\n\n    this.item = Utils.extend(this.item || {}, {\n      config: {\n        type: 'text',\n      },\n    })\n  }\n}\n\nexport { InputItemCtrl }\n","import { InputItemCtrl } from './input-item.controller'\nimport InputItemTemplate from './input-item.tpl.html'\n\n/**\n * @implements {ng.IDirective}\n */\nclass InputItem {\n  /**\n   * @ngInject\n   */\n  constructor() {\n    this.restrict = 'E'\n    this.template = InputItemTemplate\n    this.scope = {\n      item: '=',\n    }\n    this.controller = InputItemCtrl\n    this.controllerAs = 'Input'\n    this.bindToController = true\n  }\n}\n\nexport { InputItem }\n","class InputViewCtrl {\n  /**\n   * @ngInject\n   * @param {import('../../utils/utils.service').Utils} Utils\n   */\n  constructor(Utils) {\n    this.Utils = Utils\n    this.formItem = {}\n  }\n\n  init() {\n    this.Utils.extend(this.formItem, {\n      config: {},\n    })\n  }\n}\n\nexport { InputViewCtrl }\n","import { InputViewCtrl } from './input-view.controller'\nimport InputViewTemplate from './input-view.tpl.html'\n\n/**\n * @implements {ng.IDirective}\n */\nclass InputView {\n  /**\n   * @ngInject\n   * @param {ng.ITimeoutService} $timeout\n   */\n  constructor($timeout) {\n    this.$timeout = $timeout\n    this.restrict = 'E'\n    this.template = InputViewTemplate\n    this.scope = {\n      formItem: '=',\n      form: '=',\n    }\n    this.controller = InputViewCtrl\n    this.controllerAs = 'InputView'\n    this.bindToController = true\n  }\n\n  /**\n   * @see https://docs.angularjs.org/api/ng/service/$compile#-link-\n   * @param {ng.IScope} scope - scope\n   * @param {JQLite} element - element\n   * @param {ng.IAttributes} attrs - attributes\n   * @param {FormItemCtrl} ctrl - this instance controller\n   * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)\n   */\n  link(scope, elem, attrs, ctrl) {\n    //this timeout is placed here in order to make sure that the creator directive of this view is finished its work\n    this.$timeout(function () {\n      ctrl.init()\n    }, 50)\n  }\n}\n\nexport { InputView }\n","class LabelItemCtrl {\n  /**\n   * @ngInject\n   * @param {JQLite} $element\n   */\n  constructor($element) {\n    this.Element = $element\n  }\n}\n\nexport { LabelItemCtrl }\n","import { LabelItemCtrl } from './label-item.controller'\nimport LabelItemTemplate from './label-item.tpl.html'\n\n/**\n * @implements {ng.IDirective}\n */\nclass LabelItem {\n  constructor() {\n    this.restrict = 'E'\n    this.template = LabelItemTemplate\n    this.scope = {\n      item: '=',\n    }\n    this.controller = LabelItemCtrl\n    this.controllerAs = 'Label'\n    this.bindToController = true\n  }\n}\n\nexport { LabelItem }\n","class LabelViewCtrl {\n  /**\n   * @ngInject\n   * @param {import('../../utils/utils.service').Utils} Utils\n   */\n  constructor(Utils) {\n    this.Utils = Utils\n  }\n\n  init() {\n    this.Utils.extend(this.formItem, {})\n  }\n}\n\nexport { LabelViewCtrl }\n","import { LabelViewCtrl } from './label-view.controller'\nimport LabelViewTemplate from './label-view.tpl.html'\n\n/**\n * @implements {ng.IDirective}\n */\nclass LabelView {\n  /**\n   * @ngInject\n   * @param {ng.ITimeoutService} $timeout\n   */\n  constructor($timeout) {\n    this.$timeout = $timeout\n    this.restrict = 'E'\n    this.template = LabelViewTemplate\n    this.scope = {\n      formItem: '=',\n      form: '=',\n    }\n    this.controller = LabelViewCtrl\n    this.controllerAs = 'LabelView'\n    this.bindToController = true\n  }\n\n  /**\n   * @see https://docs.angularjs.org/api/ng/service/$compile#-link-\n   * @param {ng.IScope} scope - scope\n   * @param {JQLite} element - element\n   * @param {ng.IAttributes} attrs - attributes\n   * @param {LabelViewCtrl} ctrl - this instance controller\n   * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)\n   */\n  link(scope, elem, attrs, ctrl) {\n    //this timeout is placed here in order to make sure that the creator directive of this view is finished its work\n    this.$timeout(function () {\n      ctrl.init()\n    }, 50)\n  }\n}\n\nexport { LabelView }\n","class MatrixItemCtrl {\n  /**\n   * @ngInject\n   * @param {import('../../utils/utils.service').Utils} Utils\n   * @param {ng.IDocumentService} $document\n   */\n  constructor(Utils, $document) {\n    this.RowContainer = angular.element(\n      $document[0].querySelector('.rowContainer')\n    )\n    this.ColumnContainer = angular.element(\n      $document[0].querySelector('.columnContainer')\n    )\n\n    this.item = Utils.extend(this.item || {}, {\n      config: {\n        rows: [\n          {\n            value: '',\n          },\n        ],\n        columns: [\n          {\n            value: '',\n          },\n        ],\n      },\n    })\n  }\n\n  /**\n   *\n   * @param {number} index\n   */\n  deleteRow(index) {\n    this.item.config.rows.splice(index, 1)\n  }\n\n  addRow() {\n    this.item.config.rows.push({\n      value: '',\n    })\n\n    setTimeout(\n      function () {\n        const options = this.RowContainer.find('input')\n        const addedOption = options[options.length - 1]\n        addedOption.focus()\n      }.bind(this),\n      0\n    )\n  }\n\n  /**\n   *\n   * @param {number} index\n   */\n  deleteColumn(index) {\n    this.item.config.columns.splice(index, 1)\n  }\n\n  addColumn() {\n    this.item.config.columns.push({\n      value: '',\n    })\n\n    setTimeout(() => {\n      const options = this.ColumnContainer.find('input')\n      const addedOption = options[options.length - 1]\n      addedOption.focus()\n    }, 0)\n  }\n}\n\nexport { MatrixItemCtrl }\n","import { MatrixItemCtrl } from './matrix-item.controller'\nimport MatrixItemTemplate from './matrix-item.tpl.html'\n\n/**\n * @implements {ng.IDirective}\n */\nclass MatrixItem {\n  /**\n   * @ngInject\n   */\n  constructor() {\n    this.restrict = 'E'\n    this.template = MatrixItemTemplate\n    this.scope = {\n      item: '=',\n    }\n    this.controller = MatrixItemCtrl\n    this.controllerAs = 'Matrix'\n    this.bindToController = true\n  }\n}\nexport { MatrixItem }\n","class MatrixViewCtrl {\n  /**\n   * @ngInject\n   * @param {ng.IScope} $scope\n   * @param {import('../../utils/utils.service').Utils} Utils\n   */\n  constructor($scope, Utils) {\n    this.Scope = $scope\n    this.Utils = Utils\n    this.isValid = true\n    this.formItem = {}\n  }\n\n  init() {\n    this.formItem = this.Utils.extend(this.formItem, {\n      config: {\n        rows: [],\n        columns: [],\n      },\n    })\n\n    this._updateValidity()\n    if (this.isPreview()) {\n      this._enableWatchers()\n    }\n  }\n\n  _updateValidity() {\n    let valid = true\n    if (this.formItem.config.required) {\n      valid = !this.formItem.config.rows.some(\n        (row) => typeof row['selected'] === 'undefined'\n      )\n      //   for (let i = 0; i < this.formItem.config.rows.length; i++) {\n      //     if (typeof this.formItem.config.rows[i]['selected'] === 'undefined') {\n      //       valid = false\n      //       break\n      //     }\n      //   }\n    }\n\n    this.isValid = valid\n    this.form.$setValidity('required', this.isValid)\n  }\n\n  _enableWatchers() {\n    this.Scope.$watchGroup(\n      [\n        'MatrixView.formItem.config.required',\n        'MatrixView.formItem.config.rows.length',\n      ],\n      (newVal) => {\n        if (newVal !== undefined) {\n          this._updateValidity()\n        }\n      }\n    )\n  }\n}\nexport { MatrixViewCtrl }\n","import MatrixViewTemplate from './matrix-view.tpl.html'\nimport { MatrixViewCtrl } from './matrix-view.controller'\n\n/**\n * @implements {ng.IDirective}\n */\n\nclass MatrixView {\n  /**\n   * @ngInject\n   * @param {ng.ITimeoutService} $timeout\n   */\n  constructor($timeout) {\n    this.$timeout = $timeout\n    this.restrict = 'E'\n    this.template = MatrixViewTemplate\n    this.scope = {\n      formItem: '=',\n      isPreview: '&',\n      form: '=',\n    }\n    this.controller = MatrixViewCtrl\n    this.controllerAs = 'MatrixView'\n    this.bindToController = true\n  }\n\n  /**\n   * @see https://docs.angularjs.org/api/ng/service/$compile#-link-\n   * @param {ng.IScope} scope - scope\n   * @param {JQLite} element - element\n   * @param {ng.IAttributes} attrs - attributes\n   * @param {MatrixViewCtrl} ctrl - this instance controller\n   * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)\n   */\n  link(scope, elem, attrs, ctrl) {\n    //this timeout is placed here in order to make sure that the creator directive of this view is finished its work\n    this.$timeout(function () {\n      ctrl.init()\n    }, 50)\n  }\n}\n\nexport { MatrixView }\n","class RadioButtonItemCtrl {\n  /**\n   * @ngInject\n   * @param {import('../../utils/utils.service').Utils} Utils\n   * @param {JQLite} $element\n   */\n  constructor(Utils, $element) {\n    this.Element = $element\n    this.item = Utils.extend(this.item || {}, {\n      config: {},\n      options: [\n        {\n          value: '',\n        },\n      ],\n    })\n  }\n\n  deleteOption(index) {\n    this.item.options.splice(index, 1)\n  }\n\n  addOption() {\n    this.item.options.push({\n      value: '',\n    })\n\n    setTimeout(() => {\n      const options = this.Element.find('input')\n      const addedOption = options[options.length - 1]\n      addedOption.focus()\n    }, 0)\n  }\n}\n\nexport { RadioButtonItemCtrl }\n","import { RadioButtonItemCtrl } from './radio-button-item.controller'\nimport RadioButtonTemplate from './radio-button-item.tpl.html'\n\n/**\n * @implements {ng.IDirective}\n */\n\nclass RadioButtonItem {\n  /**\n   * @ngInject\n   */\n  constructor() {\n    this.restrict = 'E'\n    this.template = RadioButtonTemplate\n    this.scope = {\n      item: '=',\n    }\n    this.controller = RadioButtonItemCtrl\n    this.controllerAs = 'RadioButton'\n    this.bindToController = true\n  }\n}\n\nexport { RadioButtonItem }\n","class RadioButtonViewCtrl {\n  /**\n   * @ngInject\n   * @param {import('../../utils/utils.service').Utils} Utils\n   */\n  constructor(Utils) {\n    this.Utils = Utils\n    this.formItem = {}\n  }\n\n  init() {\n    this.formItem = this.Utils.extend(this.formItem, {\n      config: {},\n      options: [],\n    })\n  }\n}\n\nexport { RadioButtonViewCtrl }\n","import { RadioButtonViewCtrl } from './radio-button-view.controller'\nimport RadioButtonViewTemplate from './radio-button-view.tpl.html'\n\nclass RadioButtonView {\n  /**\n   * @ngInject\n   * @param {ng.ITimeoutService} $timeout\n   */\n  constructor($timeout) {\n    this.$timeout = $timeout\n    this.restrict = 'E'\n    this.template = RadioButtonViewTemplate\n    this.scope = {\n      formItem: '=',\n      isPreview: '&',\n      form: '=',\n    }\n    this.controller = RadioButtonViewCtrl\n    this.controllerAs = 'RadioButtonView'\n    this.bindToController = true\n  }\n\n  /**\n   * @see https://docs.angularjs.org/api/ng/service/$compile#-link-\n   * @param {ng.IScope} scope - scope\n   * @param {JQLite} element - element\n   * @param {ng.IAttributes} attrs - attributes\n   * @param {RadioButtonViewCtrl} ctrl - this instance controller\n   * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)\n   */\n  link(scope, elem, attrs, ctrl) {\n    //this timeout is placed here in order to make sure that the creator directive of this view is finished its work\n    this.$timeout(function () {\n      ctrl.init()\n    }, 50)\n  }\n}\n\nexport { RadioButtonView }\n","class SelectItemCtrl {\n  /**\n   * @ngInject\n   * @param {import('../../utils/utils.service').Utils} Utils\n   * @param {JQLite} $element\n   */\n  constructor(Utils, $element) {\n    this.Element = $element\n    this.item = Utils.extend(this.item || {}, {\n      config: {},\n      options: [\n        {\n          value: '',\n        },\n      ],\n    })\n  }\n\n  /**\n   *\n   * @param {number} index\n   */\n  deleteOption(index) {\n    this.item.options.splice(index, 1)\n  }\n\n  addOption() {\n    this.item.options.push({\n      value: '',\n    })\n\n    setTimeout(() => {\n      const options = this.Element.find('input')\n      const addedOption = options[options.length - 1]\n      addedOption.focus()\n    }, 0)\n  }\n}\n\nexport { SelectItemCtrl }\n","import SelectTemplate from './select-item.tpl.html'\nimport { SelectItemCtrl } from './select-item.controller'\n\n/**\n * @implements {ng.IDirective}\n */\nclass SelectItem {\n  /**\n   * @ngInject\n   */\n  constructor() {\n    this.restrict = 'E'\n    this.template = SelectTemplate\n    this.scope = {\n      item: '=',\n    }\n    this.controller = SelectItemCtrl\n    this.controllerAs = 'Select'\n    this.bindToController = true\n  }\n}\n\nexport { SelectItem }\n","class SelectViewCtrl {\n  /**\n   * @ngInject\n   * @param {import('../../utils/utils.service').Utils} Utils\n   */\n  constructor(Utils) {\n    this.Utils = Utils\n    this.formItem = {}\n  }\n\n  init() {\n    this.formItem = this.Utils.extend(this.formItem, {\n      config: {},\n      options: [],\n    })\n  }\n}\n\nexport { SelectViewCtrl }\n","import SelectViewTemplate from './select-view.tpl.html'\nimport { SelectViewCtrl } from './select-view.controller'\n\n/**\n * @implements {ng.IDirective}\n */\nclass SelectView {\n  /**\n   * @ngInject\n   * @param {ng.ITimeoutService} $timeout\n   */\n  constructor($timeout) {\n    this.$timeout = $timeout\n\n    this.restrict = 'E'\n    this.template = SelectViewTemplate\n    this.scope = {\n      formItem: '=',\n      isPreview: '&',\n      form: '=',\n    }\n    this.controller = SelectViewCtrl\n    this.controllerAs = 'SelectView'\n    this.bindToController = true\n  }\n\n  /**\n   * @see https://docs.angularjs.org/api/ng/service/$compile#-link-\n   * @param {ng.IScope} scope - scope\n   * @param {JQLite} element - element\n   * @param {ng.IAttributes} attrs - attributes\n   * @param {SelectViewCtrl} ctrl - this instance controller\n   * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)\n   */\n  link(scope, elem, attrs, ctrl) {\n    //this timeout is placed here in order to make sure that the creator directive of this view is finished its work\n    this.$timeout(function () {\n      ctrl.init()\n    }, 50)\n  }\n}\n\nexport { SelectView }\n","class TextareaItemCtrl {\n  /**\n   * @ngInject\n   * @param {import('../../utils/utils.service').Utils} Utils\n   * @param {JQLite} $element\n   */\n  constructor(Utils, $element) {\n    this.Element = $element\n\n    this.item = Utils.extend(this.item || {}, {\n      config: {},\n    })\n  }\n}\n\nexport { TextareaItemCtrl }\n","import { TextareaItemCtrl } from './textarea-item.controller'\nimport TextareaItemTemplate from './textarea-item.tpl.html'\n\n/**\n * @implements {ng.IDirective}\n */\nclass TextareaItem {\n  /**\n   * @ngInject\n   */\n  constructor() {\n    this.restrict = 'E'\n    this.template = TextareaItemTemplate\n    this.scope = {\n      item: '=',\n    }\n    this.controller = TextareaItemCtrl\n    this.controllerAs = 'Textarea'\n    this.bindToController = true\n  }\n}\n\nexport { TextareaItem }\n","class TextareaViewCtrl {\n  /**\n   * @ngInject\n   * @param {import('../../utils/utils.service').Utils} Utils\n   */\n  constructor(Utils) {\n    this.Utils = Utils\n    this.formItem = {}\n  }\n\n  init() {\n    this.formItem = this.Utils.extend(this.formItem, {\n      config: {},\n    })\n  }\n}\n\nexport { TextareaViewCtrl }\n","import { TextareaViewCtrl } from './textarea-view.controller'\nimport TextareaViewTemplate from './textarea-view.tpl.html'\n\n/**\n * @implements {ng.IDirective}\n */\n\nclass TextareaView {\n  /**\n   * @ngInject\n   * @param {ng.ITimeoutService} $timeout\n   */\n  constructor($timeout) {\n    this.$timeout = $timeout\n    this.scope = {\n      formItem: '=',\n      form: '=',\n    }\n    this.restrict = 'E'\n    this.template = TextareaViewTemplate\n    this.controller = TextareaViewCtrl\n    this.controllerAs = 'TextareaView'\n    this.bindToController = true\n  }\n\n  /**\n   * @see https://docs.angularjs.org/api/ng/service/$compile#-link-\n   * @param {ng.IScope} scope - scope\n   * @param {JQLite} element - element\n   * @param {ng.IAttributes} attrs - attributes\n   * @param {TextareaViewCtrl} ctrl - this instance controller\n   * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)\n   */\n  link(scope, elem, attrs, ctrl) {\n    //this timeout is placed here in order to make sure that the creator directive of this view is finished its work\n    this.$timeout(function () {\n      ctrl.init()\n    }, 50)\n  }\n}\n\nexport { TextareaView }\n","class UploadItemCtrl {\n  /**\n   * @ngInject\n   *\n   * @param {import('../../utils/utils.service').Utils} Utils\n   * @param {JQLite} $element\n   */\n  constructor(Utils, $element) {\n    this.Element = $element\n    this.item = Utils.extend(this.item || {}, {\n      config: {},\n      options: [],\n    })\n  }\n}\n\nexport { UploadItemCtrl }\n","import UploadItemTemplate from './upload-item.tpl.html'\nimport { UploadItemCtrl } from './upload-item.controller'\n\n/**\n * @implements {ng.IDirective}\n */\nclass UploadItem {\n  /**\n   * @ngInject\n   */\n  constructor() {\n    this.restrict = 'E'\n    this.template = UploadItemTemplate\n    this.scope = {\n      item: '=',\n    }\n    this.controller = UploadItemCtrl\n    this.controllerAs = 'Upload'\n    this.bindToController = true\n  }\n}\n\nexport { UploadItem }\n","class UploadViewCtrl {\n  /**\n   * @ngInject\n   * @param {ng.IScope} $scope\n   * @param {import('../../utils/utils.service').Utils} Utils\n   * @param {JQLite} $element\n   */\n  constructor($scope, Utils, $element) {\n    this.Scope = $scope\n    this.Element = $element\n    this.Utils = Utils\n    this.formItem = {}\n  }\n  init() {\n    this.isMultiple = false\n    this.showAllowed = false\n    this.formItem = this.Utils.extend(this.formItem || {}, {\n      config: {\n        size: 10,\n        uploadFileButtonLabel: 'Add files',\n      },\n      options: [],\n    })\n    if (this.isPreview()) {\n      this._enableWatchers()\n    }\n  }\n  _updateMultiple() {\n    this.isMultiple = !!this.formItem.config.multipleUpload\n    const input = angular.element(\n      this.Element[0].querySelector('input[type=file]')\n    )\n    if (input) {\n      this.formItem.options = []\n      if (this.isMultiple) {\n        input.attr('multiple', 'multiple')\n      } else {\n        input.removeAttr('multiple')\n      }\n    }\n  }\n\n  _updateAccept() {\n    this.showAllowed = !!this.formItem.config.showAccept\n    const input = angular.element(\n      this.Element[0].querySelector('input[type=file]')\n    )\n    if (input) {\n      if (this.showAllowed) {\n        input[0].setAttribute('accept', this.formItem.config.accept)\n      } else {\n        input[0].removeAttribute('accept')\n        delete this.formItem.config.accept\n      }\n    }\n  }\n\n  _enableWatchers() {\n    this.Scope.$watch('UploadView.formItem.config.multipleUpload', (newVal) => {\n      if (newVal !== undefined) {\n        this._updateMultiple()\n      }\n    })\n\n    this.Scope.$watch('UploadView.formItem.config.showAccept', (newVal) => {\n      if (newVal !== undefined) {\n        this._updateAccept()\n      }\n    })\n\n    this.Scope.$watch('UploadView.formItem.config.accept', (newVal) => {\n      if (newVal !== undefined) {\n        this._updateAccept()\n      }\n    })\n  }\n\n  removeItem(index) {\n    this.formItem.options.splice(index, 1)\n  }\n}\nexport { UploadViewCtrl }\n","import { UploadViewCtrl } from './upload-view.controller'\nimport UploadViewTemplate from './upload-view.tpl.html'\n\nconst MB = 1024 * 1024\n\nclass UploadView {\n  /**\n   * @ngInject\n   * @param {ng.ITimeoutService} $timeout\n   */\n  constructor($timeout) {\n    this.$timeout = $timeout\n    this.template = UploadViewTemplate\n    this.restrict = 'E'\n    this.scope = {\n      formItem: '=',\n      isPreview: '&',\n      form: '=',\n    }\n    this.controller = UploadViewCtrl\n    this.controllerAs = 'UploadView'\n    this.bindToController = true\n  }\n\n  /**\n   * @see https://docs.angularjs.org/api/ng/service/$compile#-link-\n   * @param {ng.IScope} scope - scope\n   * @param {JQLite} element - element\n   * @param {ng.IAttributes} attrs - attributes\n   * @param {UploadViewCtrl} ctrl - this instance controller\n   * @param {ng.ITranscludeFunction} transcludeFn - transclude function ($transclude)\n   */\n  link(scope, element, attrs, ctrl) {\n    //this timeout is placed here in order to make sure that the creator directive of this view is finished its work\n    this.$timeout(function () {\n      ctrl.init()\n    }, 50)\n\n    const button = angular.element(element[0].querySelector('.upload-button'))\n    const input = angular.element(element[0].querySelector('input[type=file]'))\n    const label = angular.element(element[0].querySelector('label'))\n\n    if (label.length) {\n      label.css('display', 'none')\n    }\n\n    button.on('click', () => {\n      label.css('display', 'none')\n      typeof input.trigger === 'function'\n        ? input.trigger('click')\n        : input[0].click()\n    })\n\n    input.on('change', (e) => {\n      scope.$apply(function () {\n        /**\n         * @type {File[]}\n         */\n        const files = Array.from(e.target.files)\n        // Max allowed size in MB\n        const maxSizeMB = ctrl.formItem.config.size * MB\n        const exceedsSize = files.some((file) => file.size >= maxSizeMB)\n        if (exceedsSize) {\n          label.css('display', 'block')\n          label.text(ctrl.formItem.config.sizeErrMessage)\n          ctrl.formItem.options = []\n        } else {\n          ctrl.formItem.options = files.map((file) => {\n            const { name, size, type } = file\n            return { name, size, type, file }\n          })\n        }\n      })\n    })\n  }\n}\n\nexport { UploadView }\n","import './index.scss'\nimport { UploadItem } from './directives/upload-item/upload-item.directive'\nimport { UploadView } from './directives/upload-item/upload-view.directive'\nimport { AgreementItem } from './directives/agreement-item/agreement-item.directive'\nimport { AgreementView } from './directives/agreement-item/agreement-view.directive'\nimport { MainController } from './main/main.controller'\nimport { Utils } from './utils/utils.service'\nimport { CheckboxesItem } from './directives/checkboxes-item/checkboxes-item.directive'\nimport { CheckboxesView } from './directives/checkboxes-item/checkboxes-view.directive'\nimport { FormItem } from './directives/form-item/form-item.directive'\nimport { FormItemsContainer } from './directives/form-items-container/form-items-container.directive'\nimport { FormView } from './directives/form-view/form-view.directive'\nimport { InputItem } from './directives/input-item/input-item.directive'\nimport { InputView } from './directives/input-item/input-view.directive'\nimport { LabelItem } from './directives/label-item/label-item.directive'\nimport { LabelView } from './directives/label-item/label-view.directive'\nimport { MatrixItem } from './directives/matrix-item/matrix-item.directive'\nimport { MatrixView } from './directives/matrix-item/matrix-view.directive'\nimport { RadioButtonItem } from './directives/radio-button-item/radio-button-item.directive'\nimport { RadioButtonView } from './directives/radio-button-item/radio-button-view.directive'\nimport { SelectView } from './directives/select-item/select-view.directive'\nimport { SelectItem } from './directives/select-item/select-item.directive'\nimport { TextareaItem } from './directives/textarea-item/textarea-item.directive'\nimport { TextareaView } from './directives/textarea-item/textarea-view.directive'\n\nexport default angular\n  .module('angularMaterialFormBuilder', [\n    'ngMaterial',\n    'angular-sortable-view',\n    'ngMessages',\n  ])\n  .service('Utils', Utils)\n  .controller('MainController', MainController)\n  .directive('uploadItem', UploadItem)\n  .directive('uploadView', UploadView)\n  .directive('agreementItem', AgreementItem)\n  .directive('agreementView', AgreementView)\n  .directive('checkboxesItem', CheckboxesItem)\n  .directive('checkboxesView', CheckboxesView)\n  .directive('formItem', FormItem)\n  .directive('formItemsContainer', FormItemsContainer)\n  .directive('formView', FormView)\n  .directive('inputItem', InputItem)\n  .directive('inputView', InputView)\n  .directive('labelItem', LabelItem)\n  .directive('labelView', LabelView)\n  .directive('matrixItem', MatrixItem)\n  .directive('matrixView', MatrixView)\n  .directive('radioButtonItem', RadioButtonItem)\n  .directive('radioButtonView', RadioButtonView)\n  .directive('selectItem', SelectItem)\n  .directive('selectView', SelectView)\n  .directive('textareaItem', TextareaItem)\n  .directive('textareaView', TextareaView)\n","/**\n * @typedef {{type:string}} Item\n * @typedef {{items: Item[]}} FormConfig\n */\n\nclass MainController {\n  /**\n   * @ngInject\n   */\n  constructor() {\n    /**\n     * @type {FormConfig}\n     */\n    this.form = {\n      items: [],\n    }\n  }\n\n  /**\n   * Add new Item\n   * @param {string} type\n   */\n  addItem(type) {\n    this.form.items.push({\n      type,\n    })\n  }\n\n  /**\n   * Remove item at index\n   * @param {Item} item\n   * @param {number} index\n   */\n  delete(item, index) {\n    this.form.items.splice(index, 1)\n  }\n\n  /**\n   * insert before (bounded)\n   * Pops out latest element (wanted?)\n   * @param {Item} item\n   * @param {number} index\n   */\n  up(item, index) {\n    if (index !== 0) {\n      const prevItem = this.form.items[index - 1]\n      this.form.items[index] = prevItem\n      this.form.items[index - 1] = item\n    }\n  }\n\n  /**\n   * insert after (bounded)\n   * Pops out latest element (wanted?)\n   * @param {Item} item\n   * @param {number} index\n   */\n  down(item, index) {\n    if (index !== this.form.items.length - 1) {\n      const nextItem = this.form.items[index + 1]\n      this.form.items[index] = nextItem\n      this.form.items[index + 1] = item\n    }\n  }\n}\n\nexport { MainController }\n","class Utils {\n  /**\n   * Recursively extend object properties\n   * @param {Object} dest\n   * @param {Object} src\n   * @returns {Object}\n   */\n  extend(dest, src) {\n    return Object.keys(src).reduce(\n      (result, key) => {\n        if (typeof result[key] === 'undefined') {\n          result[key] = src[key]\n        } else if (typeof src[key] === 'object') {\n          result[key] = this.extend(result[key], src[key])\n        }\n        return result\n      },\n      typeof dest === 'undefined' ? {} : dest\n    )\n  }\n}\n\nexport { Utils }\n","export default \"<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\";","export default \"<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\";","export default \"<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\";","export default \"<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\";","export default \"<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\";","export default \"<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\\\">{{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\";","export default \"<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\";","export default \"<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\";","export default \"<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\";","export default \"<md-input-container class=\\\"md-block\\\">\\n  <md-content flex layout-padding layout=\\\"row\\\" layout-align=\\\"center center\\\">\\n    <pre>\\n      <span class=\\\"formItem-content\\\">{{LabelView.formItem.value}}</span>\\n    </pre>\\n  </md-content>\\n</md-input-container>\\n\";","export default \"<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\";","export default \"<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\";","export default \"<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\";","export default \"<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\";","export default \"<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\";","export default \"<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\";","export default \"<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\";","export default \"<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\";","export default \"<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\";","export default \"<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\";","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(\"./src/lib/index.module.js\");\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"sourceRoot":""}