(function(n,t){var u,i,r;n.coreComponentFormConfig.apiEndPoint=n.coreComponentFormConfig.apiEndPoint||"";u=t.module("viSDK.coreComponentFormBuilder",["vi.common","ngSanitize"]);i=t.extend({apiEndPoint:""},n.coreComponentFormConfig||{});i.apiEndPoint=n.coreComponentFormConfig.apiEndPoint;r=i.apiEndPoint;i.apiEndPoint=r.lastIndexOf("/")==r.length-1?r.substring(0,r.length-1)+"/":r+"/";u.constant("coreComponentFormSDKConfig",i);u.factory("viCoreComponentFormAPIClient",["$http","viFrontendCoreService",function(n,t){var u=Object.getPrototypeOf(t),r=Object.create(u);return r._coreConfig={cmsEndPoint:i.apiEndPoint},r._http=n,r}])})(window,window.angular),function(n,t){n.viCurrentModule&&n.viCurrentModule.requires.push("viAppCoreComponentFormBuilderFieldTypes");t.module("viAppCoreComponentFormBuilderFieldTypes",["vi.ui","ui.mask","vi.common","vi.fe.common"])}(window,angular),function(){window.viCurrentModule&&window.viCurrentModule.requires.push("viAppCoreComponentFormBuilderDownload");var n=angular.module("viAppCoreComponentFormBuilderDownload",["ngAnimate","ngCookies","ngSanitize","toastr","blockUI","viSDK.coreComponentFormBuilder"])}(),function(n,t){var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFormFieldDuplicateValidator",["$compile","$q","$timeout","viCoreComponentFormAPIClient",function(n,i,r,u){return u.registerClass("api.feformbuilder.hasDuplicate"),{restrict:"A",require:"ngModel",link:function(n,r,f,e){var o=u.getService(),s=n.$eval(f.viFormFieldDuplicateValidator),h=f.ngModel.split(".").pop();e.$asyncValidators.formBuilderFieldDuplicate=function(r){if(s)return i.resolve(!0);var u=t.extend({},n.field.data);return u[h]=r,o.api.feformbuilder.hasDuplicate({field:u}).then(function(n){return n&&!n.data.result?i.resolve(!0):i.reject(!1)})}}}}])}(window,angular),function(n,t){var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("formConditionalLogicsDisplay",["$compile","$q","formFieldTypeManager",function(){return{restrict:"AE",require:"ngModel",template:'<div class="form-cl-item-display" ng-repeat="item in field.conditionalLogicObjs | orderBy:order"><b class="cl-title">Condition #{{$index+1}}: <\/b>{{item.toDescription()}}<\/div>',scope:{field:"=ngModel"},link:function(){}}}])}(window,angular),function(n,t){var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFormFormatPhone",["$compile",function(){return{restrict:"EA",template:'<span ng-if="showTitle" title="{{FormattedValue}}">{{FormattedValue}}<\/span><span ng-if="!showTitle">{{FormattedValue}}<\/span>',scope:{curVal:"=",showTitle:"="},link:function(t){var f=n.visionApps.cms_core,u=f.PhoneFormat.replace(/9/g,"0"),r,i;$.viFormatPhone||$.extend($,{viFormatPhone:function(n,t){if(n){var u=(""+n).replace(/\D/g,""),i=u.match(/^(\d{3})(\d{3})(\d{4})$/),r=t.replace("{0:","").replace("}","").replace(/\\/g,"");return i?r?r.indexOf("9")>=0?r.replace("999",i[1]).replace("999",i[2]).replace("9999",i[3]):r.replace("000",i[1]).replace("000",i[2]).replace("0000",i[3]):"("+i[1]+") "+i[2]+"-"+i[3]:""}return""}});t.FormattedValue=t.curVal?$.viFormatPhone(t.curVal,u):"";t.curVal&&t.curVal.meta&&t.curVal.meta.childrenArr&&(r=t.curVal.meta.uniqueName,i=t.curVal.meta.childrenArr,i.length&&(t.curVal.meta.children={Number:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+r+"_Number'").First(),Extension:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+r+"_Extension'").First()}),t.curVal.children=t.curVal.meta.children);t.curVal&&t.curVal.children&&(t.curVal.children.Number.data&&(t.FormattedValue=t.curVal.children.Number.data.valueString?$.viFormatPhone(t.curVal.children.Number.data.valueString,u):""),t.curVal.meta.settingObj.enableExtension&&t.curVal.children.Extension.data&&t.curVal.children.Extension.data.valueString&&(t.FormattedValue+=" ext. "+t.curVal.children.Extension.data.valueString))}}}])}(window,window.angular,jQuery),function(n,t){var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viMatch",["$compile","$q","$timeout",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){var u=t.attr("vi-match");n.$watch(i.viMatch,function(){r.$validate()});r.$validators.vimatch=function(t,i){var r=n.$eval(u);return r?i===r:!i}}}}])}(window,angular),function(n,t){var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viGenerateid",["$compile",function(){return{restrict:"EA",require:"?ngModel",link:function(n,t,i){var r=$(t),u=i.viGenerateid;r.attr("id",u)}}}])}(window,angular),function(n,t){function e(){}function o(){this._items={};this._baseType=e;this._options={fieldOptions:{}};this._fieldTypes={};this.fieldTypeDataList=FORMFIELDTYPEDATALIST}function i(n){return t.isUndefined(n)||n===""||n===null||n!==n||typeof n==undefined}function u(n){var i="^",r="$",t=n;return n.indexOf(i)!=0&&(t=i+t),n.indexOf(r)!=n.length-1&&(t=t+r),t}var f=t.module("viAppCoreComponentFormBuilderFieldTypes"),r;n.FORMFIELDVALUETYPES={NONE:0,NUMBER:1,STRING:2,HTML:3,DATETIME:4,TIME:5,FLOAT:6,BIT:7,DICT:8,ARRAY:9};FORMFIELDTYPEFEATURES={NONE:0,ANALYZABLE:1,VALUE:2,PAYMENT:4,NONEXPORTABLE:8};FORMFIELDFEETYPE={TAX:"0",ADDITIONALFEE:"1"};FORMFIELDAMOUNTTYPE={PERCENTAGE:"0",FIXEDAMOUNT:"1"};FORMFIELDTYPEDATALIST=[{id:1,name:"SingleLineText",displayName:"Single Line Text",css:"single-line-icon",order:1,type:"standard",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:2,name:"ParagraphText",displayName:"Paragraph Text",css:"paragraph-icon",order:2,type:"standard",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:3,name:"SingleDropdown",displayName:"Single Dropdown",css:"single-dropdown-icon",order:3,type:"standard",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:4,name:"GeneralNumber",displayName:"General Number",css:"general-number-icon",order:4,type:"standard",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:5,name:"Number",displayName:"Number",css:"number-icon",order:5,type:"standard",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:6,name:"CheckBoxList",displayName:"Check Box List",css:"check-boxes-icon",order:6,type:"standard",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:7,name:"RadioButtonList",displayName:"Radio Button List",css:"radio-button-icon",order:7,type:"standard",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:50,name:"FullName",displayName:"Full Name",css:"fullname-icon",order:20,type:"advanced",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:51,name:"DateTime",displayName:"Date/Time",css:"date-time-icon",order:21,type:"advanced",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:53,name:"Phone",displayName:"Phone",css:"phone-icon",order:23,type:"advanced",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:54,name:"FullAddress",displayName:"Full Address",css:"full-address-icon",order:24,type:"advanced",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:55,name:"Website",displayName:"Website",css:"website-icon",order:25,type:"advanced",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:56,name:"Email",displayName:"Email",css:"email-icon",order:26,type:"advanced",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:59,name:"Attachment",displayName:"Attachment",css:"attachment-icon",order:29,type:"advanced",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:60,name:"DigitalSignature",displayName:"Digital Signature",css:"digital-signature-icon",order:30,type:"advanced",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!1},{id:101,name:"Heading",displayName:"Heading",css:"heading-icon",order:1,type:"format",sortable:!1,hasLabel:!1,editTemplateUseDirective:!0,displayTemplateUseDirective:!0},{id:102,name:"SubHeading",displayName:"Sub-Heading",css:"sub-heading-icon",order:2,type:"format",sortable:!1,hasLabel:!1,editTemplateUseDirective:!0,displayTemplateUseDirective:!0},{id:103,name:"PageBreak",displayName:"Page Break",css:"page-break-icon",order:3,type:"format",sortable:!1,hasLabel:!1},{id:104,name:"SectionBreak",displayName:"Section Break",css:"section-break-icon",order:4,type:"format",sortable:!1,hasLabel:!1,editTemplateUseDirective:!0,displayTemplateUseDirective:!0},{id:105,name:"ReadonlyText",displayName:"Read-Only Text",css:"text-icon",order:5,type:"format",sortable:!1,hasLabel:!1,updateUniqueName:!1,editTemplateUseDirective:!0,displayTemplateUseDirective:!0},{id:106,name:"ReadonlyContent",displayName:"Read-Only Content",css:"editor-icon",order:6,type:"format",sortable:!1,hasLabel:!1,updateUniqueName:!1,editTemplateUseDirective:!0,displayTemplateUseDirective:!0},{id:201,name:"PaymentSingleItem",displayName:"Payment - Single Item",css:"payment-single-item-icon",order:1,type:"payment",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:202,name:"PaymentRadio",displayName:"Payment - Radio Button",css:"payment-radio-icon",order:2,type:"payment",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:203,name:"PaymentCheckbox",displayName:"Payment - Checkbox",css:"payment-checkbox-icon",order:3,type:"payment",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:204,name:"PaymentDropdown",displayName:"Payment - Dropdown",css:"payment-dropdown-icon",order:4,type:"payment",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:205,name:"PaymentDonation",displayName:"Payment - Donation",css:"payment-donation-icon",order:5,type:"payment",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0},{id:206,name:"PaymentTotal",displayName:"Payment - Total",css:"payment-total-icon",order:6,type:"payment",sortable:!0,editTemplateUseDirective:!0,displayTemplateUseDirective:!0,summaryTemplateUseDirective:!0}];FORMPATTERNS={numberPattern:"[0-9]+",floatPattern:"[\\+\\-]?([0-9]*[\\.])?[0-9]+",uniqueNamePattern:"[a-zA-Z][a-zA-Z0-9_]*",emailPattern:"([\\w\\-\\.]+)(\\+([\\w]+))*@(([[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w\\-]+\\.)+))([a-zA-Z]{1,4}|[0-9]{1,3})(]?)",urlPattern:"(((http|ftp|https)://)?[\\w-]+(\\.[\\w-]+)+([\\w.,@?^=%&amp;:\\/~+#-]*[\\w@?^=%&amp;\\/~+#-])?)|((\\/?[\\w-]+)(\\/[\\w-]+)*\\/?)",internalUrlPattern:"(\\/?[\\w-]+)(\\/[\\w-?&=]+)*\\/?",cssClassNamePattern:"([a-zA-Z0-9\\-_]+)( [a-zA-Z0-9\\-_]+)?",phonePattern:"(\\d{3})(\\d{3})(\\d{4})"};r={PhoneFormat:"",DateTimeFormat:"",MaxFileSize:5};n.visionApps&&n.visionApps.cms_core&&n.visionApps.cms_core.PhoneFormat&&(r.PhoneFormat=n.visionApps.cms_core.PhoneFormat);n.visionApps&&n.visionApps.cms_core&&n.visionApps.cms_core.DateFormat&&n.visionApps.cms_core.TimeFormat&&(r.DateTimeFormat=n.visionApps.cms_core.DateFormat+" "+n.visionApps.cms_core.TimeFormat);e.prototype={_seed:new Date,_name:"fieldTypeBase",_options:{relativeTemplatePath:""},uniqueNameValidator:"fieldSettingUniqueName, fieldSettingUniqueNameAllow, fieldSettingUniqueNameLength",_getSrc:function(n){return this._options.relativeTemplatePath+n+this._name+".tpl?t="+this._seed.getMilliseconds()},init:function(n){this._seed=new Date;t.extend(this,FORMPATTERNS);t.extend(this._options,n||{})},_mergeDefaultFieldMeta:function(n){var i=t.extend({allowDuplicate:!0,uniqueField:!1,valueType:FORMFIELDVALUETYPES.STRING,labelMaxLength:280},n);return this._redefineProperties(i),i},_makeNameUnique:function(n){typeof n.id!="undefined"&&n.id||this.data.updateUniqueName==!1&&n.uniqueName||(n.uniqueName=(n._label||"").replace(/[^0-9a-z_]+/ig,"").substring(0,150))},_redefineProperties:function(n){var t=this;Object.defineProperty(n,"checkForDuplicates",{get:function(){return!this.allowDuplicate},set:function(n){this.allowDuplicate=!n}});n._label=n.label;t._makeNameUnique(n);t._options.displayFieldName&&Object.defineProperty(n,"label",{get:function(){return this._label},set:function(n){this._label=n;t._makeNameUnique(this)}})},createFieldMeta:function(){return{}},initField:function(n,i,r){this.initFieldMeta(n);this.initFieldData(n,i);this.__template=this.getBuilderEditTemplate(n);r.initField(n);n.children={};t.forEach(n.meta.children,function(t,u){var o=t.fieldTypeID===undefined?t.fieldTypeId:t.fieldTypeID,f=r.getFieldType(o),e={data:{},meta:t,type:f,disabled:n.disabled};n.children[u]=e;f.initField(e,i,r)})},initFieldMeta:function(n){var i=this.createFieldMeta();i.settingObj=i.settingObj||{};n.meta.labelMaxLength=280;n.meta.setting&&t.extend(i.settingObj,t.fromJson(n.meta.setting));n.meta=t.extend(i,n.meta);(typeof n.conditionalLogicObjs=="undefined"||n.conditionalLogicObjs==null)&&(n.conditionalLogicObjs=[]);n.meta.errorMessages={formBuilderFieldDuplicate:"This field value already exists."};n.meta.errorMessages.required=n.meta.requiredErrorMessage?n.meta.requiredErrorMessage:"The "+n.meta.label+" field is a required field and cannot be left blank.";this.initAdditionalErrorMesssages(n)},savingFieldMeta:function(n){n.meta.settingObj!=undefined&&(n.meta.setting=t.toJson(n.meta.settingObj));n.meta.defaultValueArrayObj!=undefined&&(n.meta.defaultValueArray=t.toJson(n.meta.defaultValueArrayObj));this.savingFieldMetaInternal(n);this.setTaxOrFeeLabel(n);var i=[];return t.forEach(n.conditionalLogicObjs,function(n){i.push(n.savingData())}),{meta:n.meta,conditionalLogics:i}},savingFieldMetaInternal:function(){},setTaxOrFeeLabel:function(n){var f=n.meta.typeFeature&FORMFIELDTYPEFEATURES.PAYMENT==FORMFIELDTYPEFEATURES.PAYMENT,r,t,u,i;f&&(r=Enumerable.From(FORMFIELDTYPEDATALIST).Where("$.name=='PaymentTotal'").FirstOrDefault(),t=Enumerable.From(n.page.fields).Where("c => c.meta.fieldTypeID=="+r.id).FirstOrDefault(),t?(u=t.meta.settingObj,i=Enumerable.From(t.meta._additionalFeesTypeSource).Where("c => c.value=="+u.additionalFeesType).FirstOrDefault()||t.meta._additionalFeesTypeSource[0],n.meta.children&&(n.meta.children.Tax&&(n.meta.children.Tax.label=i.text),n.meta.children.AdditionalFee&&(n.meta.children.AdditionalFee.label=i.text))):n.meta.children&&n.meta.children.Tax&&(n.meta.children.Tax.display=!1))},savingField:function(n){var i=[];return n.data.valueArrayObj&&n.data.valueArrayObj.length==0&&(n.data.valueArrayObj=null),n.data.valueArray=n.data.valueArrayObj!=undefined&&n.data.valueArrayObj.length>0?t.toJson(n.data.valueArrayObj):null,n.data.fieldMetaID=n.meta.id,n.meta.display&&i.push(n.data),i=i.concat(this.savingFieldInternal(n)),t.forEach(n.children,function(n){n.type&&(i=i.concat(n.type.savingField(n)))}),i},savingFieldInternal:function(){return[]},initFieldData:function(n,i){function u(n){if(n&&n.indexOf("T")>-1){var t=new Date(n),i=$.datepicker.formatDate("mm/dd/yy",t),r=$.datepicker.formatTime("hh:mm TT",{hour:t.getHours(),minute:t.getMinutes()},{});return i+" "+r}return n}var r=!i||i.guid==null||i.guid==""||!i.entry;n.data=n.data||{fieldMetaID:n.meta.id};n.meta.defaultValueArray&&(n.meta.defaultValueArrayObj=t.fromJson(n.meta.defaultValueArray));r&&(n.data.valueNumber||(n.data.valueNumber=n.meta.defaultValueNumber),n.data.valueString||(n.data.valueString=n.meta.defaultValueString),n.data.valueHTML||(n.data.valueHTML=n.meta.defaultValueHTML),n.data.valueFloat||(n.data.valueFloat=n.meta.defaultValueFloat),n.data.valueDatetime||(n.data.valueDatetime=u(n.meta.defaultValueDatetime)),n.data.valueTime||(n.data.valueTime=n.meta.defaultValueTime),n.data.valueBit||(n.data.valueBit=n.meta.defaultValueBit),n.data.valueDictionary||(n.data.valueDictionary=n.meta.defaultValueDictionary),n.data.valueArrayObj=n.data.valueArrayObj||[],n.data.valueArrayObj.length==0&&n.meta.defaultValueArray&&(n.data.valueArrayObj=t.fromJson(n.meta.defaultValueArray)),(typeof n.conditionalLogicObjs=="undefined"||n.conditionalLogicObjs==null)&&(n.conditionalLogicObjs=[]));this.initAdditionalFieldData(n,r)},initAdditionalFieldData:function(){},initAdditionalErrorMesssages:function(){},getFieldSummaryModel:function(n){this._options.apiClient.registerClass("admin.api.form.getFieldDefaultSummary");var t=this._options.apiClient.getService();return t.admin.api.form.getFieldDefaultSummary(n).then(function(n){return n.data})},getBuilderSettingTemplate:function(){return this.getBuilderSettingInputTemplate()},getBuilderDisplayTemplate:function(){return this.getBuilderDisplayLabelTemplate()+this.getBuilderDisplayInputTemplate()},getBuilderEditTemplate:function(n){return this.getBuilderEditLabelTemplate()+this.getBuilderEditInputTemplate()+this.getBuilderEditTemplateConditionalLogicDisplay(n)},getBuilderSummaryTemplate:function(){return this.getBuilderSummaryInputTemplate()},getBuilderEditTemplateConditionalLogicDisplay:function(n){return n.page&&!n.page.submitable?'<form-conditional-logics-display ng-model="field" ng-if="field.type.data.allowConditionalLogic"><\/form-conditional-logics-display>':""},getBuilderSettingInputTemplate:function(){return'<ng-include src="field.type.getBuilderSettingInputSrc()"><\/ng-include>'},getBuilderDisplayInputTemplate:function(){var n="",t;return this.data.displayTemplateUseDirective==!0?(t="vi-field-"+this._name.toLocaleLowerCase()+"-display",n="<"+t+' vi-model="field"><\/'+t+">"):n='<ng-include src="field.type.getBuilderDisplayInputSrc()"><\/ng-include>','<div class="field-input-display">'+n+"<\/div>"},getBuilderEditInputTemplate:function(){var n="",t;return this.data.editTemplateUseDirective==!0?(t="vi-field-"+this._name.toLocaleLowerCase()+"-edit",n="<"+t+' vi-model="field"><\/'+t+">"):n='<ng-include src="field.type.getBuilderEditInputSrc()"><\/ng-include>',n},getBuilderSummaryInputTemplate:function(){var n="",t;return this.data.summaryTemplateUseDirective==!0?(t="vi-field-"+this._name.toLocaleLowerCase()+"-summary",n="<"+t+"><\/"+t+">"):n='<ng-include src="field.type.getBuilderSummaryInputSrc()"><\/ng-include>',n},getBuilderSettingInputSrc:function(){return this._getSrc("FieldSetting/")},getBuilderDisplayInputSrc:function(){return this._getSrc("FieldDisplay/")},getBuilderEditInputSrc:function(){return this._getSrc("FieldEdit/")},getBuilderSummarySrc:function(){return this._getSrc("FieldSummary/")},getBuilderDisplayLabelTemplate:function(){return this.data.hasLabel!=!1?this.getBuilderDefaultLabelTemplate():""},getBuilderEditLabelTemplate:function(){return this.data.hasLabel!=!1?this.getBuilderDefaultLabelTemplate():""},getBuilderDefaultLabelTemplate:function(){return'<span class="form-field-required" ng-if="field.meta.isRequired">*<\/span><label class="field-label" for="{{field.meta.uniqueName}}">{{ field.page.form.enableQuestionNumbering ? field.pIndex + "." : ""}} {{field.meta.label}}<span aria-label="{{field.meta.instructions}}" role="tooltip"  tabindex="0" class="instruction-text" ng-if="field.meta.instructions != \'\' && field.meta.instructions != null" title="{{field.meta.instructions}}" vi-fe-poshytip><\/span><\/label>'},getBuilderDefaultSpanTemplate:function(){return'<span class="form-field-required" ng-if="field.meta.isRequired">*<\/span><span class="field-span" id="{{field.meta.uniqueName}}_label">{{ field.page.form.enableQuestionNumbering ? field.pIndex + "." : ""}} {{field.meta.label}}<span aria-label="{{field.meta.instructions}}" role="tooltip"  tabindex="0" class="instruction-text" ng-if="field.meta.instructions != \'\' && field.meta.instructions != null" title="{{field.meta.instructions}}" vi-fe-poshytip><\/span><\/span>'},validateField:function(n,t){return this.validateFieldBase(n,t)},validateFieldBase:function(n,t){var r=!0,u="";return t.isRequired&&i(n)&&(r=!1,u+=t.requiredErrorMessage?t.requiredErrorMessage:t.uniqueName+" is required."),{valid:r,message:u}},isPageBreak:function(){return!1}};o.prototype={_seed:new Date,_defineClass:function(n,i,r){i&&t.extend(n.prototype,i.prototype);r&&t.extend(n.prototype,r)},formatStr:null,init:function(n){var i=this;t.extend(i._options,n||{});t.forEach(i._items,function(n,t){var r=new n;r.init(i._options.fieldOptions);i._fieldTypes[t]=r})},defineFieldType:function(n,i,r,u){var s=this._baseType,f,e,o;if(i&&this._items[i]!=undefined&&(s=this._items[i]),f=function(){},this._defineClass(f,s,r),e=Enumerable.From(FORMFIELDTYPEDATALIST).Where('$.name=="'+n+'"').FirstOrDefault(),e==null&&u!=null&&(o=Enumerable.From(FORMFIELDTYPEDATALIST).Where('$.id =="'+u.id+'"').FirstOrDefault(),o!=null)){console.error("sorry, can't define a new field type with duplicate id with existing field types.",o);return}return e=t.extend(e||{},u||{}),f.prototype._name=n,f.prototype.className=n.toLocaleLowerCase(),f.prototype.data=e,f.prototype.sortable=e?e.sortable:!0,this._items[n]=f,f},getFieldTypes:function(){return this._fieldTypes},getFieldType:function(n){var t=Enumerable.From(FORMFIELDTYPEDATALIST).Where("$.id == "+n).Select("$.name").FirstOrDefault();return this._fieldTypes[t]},extendFieldTypeData:function(n,i){t.forEach(this.fieldTypeDataList,function(r){r.name==n&&t.extend(r,i)})},extendFieldTypeDatas:function(n){var i=this;t.forEach(n,function(n){i.extendFieldTypeData(n.name,n.options)})},initField:function(){}};f.service("formFieldTypeManager",["$http","formJsonDataUtil","ngDialog",function(f,e,s){var h=new o;return e.init(),h.defineFieldType("Heading",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.NONE,typeFeature:FORMFIELDTYPEFEATURES.NONE|FORMFIELDTYPEFEATURES.NONEXPORTABLE,label:"Heading",settingObj:{}})}}),h.defineFieldType("SubHeading",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.NONE,typeFeature:FORMFIELDTYPEFEATURES.NONE|FORMFIELDTYPEFEATURES.NONEXPORTABLE,label:"Sub-Heading",settingObj:{}})}}),h.defineFieldType("PageBreak",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.NONE,typeFeature:FORMFIELDTYPEFEATURES.NONE|FORMFIELDTYPEFEATURES.NONEXPORTABLE,label:"Page Break",settingObj:{}})},isPageBreak:function(){return!0}}),h.defineFieldType("SectionBreak",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.NONE,typeFeature:FORMFIELDTYPEFEATURES.NONE|FORMFIELDTYPEFEATURES.NONEXPORTABLE,label:"Section Break",settingObj:{}})}}),h.defineFieldType("ReadonlyText",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.NONE,typeFeature:FORMFIELDTYPEFEATURES.NONE|FORMFIELDTYPEFEATURES.NONEXPORTABLE,label:"Read-Only Text",settingObj:{}})}}),h.defineFieldType("ReadonlyContent",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.NONE,typeFeature:FORMFIELDTYPEFEATURES.NONE|FORMFIELDTYPEFEATURES.NONEXPORTABLE,label:"Read-Only Content",defaultValueHtml:"Read-Only Content",settingObj:{rangeMin:0,rangeMax:4e3,rangeErrorMessage:null},openEditor:function(n,i){var u=t.element(i.target).scope(),r=s.open({template:"form-bulder-field-readyonly-content",closeByDocument:!1,width:960,data:{dataHtml:this.defaultValueHtml,uniqueName:this.uniqueName},controller:["$scope",function(n){n.htmlContent=n.ngDialogData.dataHtml;n.save=function(n){var f=$(n.target),i=f.closest(".RadEditorField"),e=i.find("[data-editor-id]").attr("data-editor-id"),t;$find&&(t=$find(e),t&&(u.field.meta.defaultValueHtml=maskTextToStore(t.get_html(!0)),t.dispose()));i.remove();r.close()};n.close=function(){r.close()}}]})}})}}),h.defineFieldType("SingleLineText",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Single Line Text",sensitive:!1,settingObj:{rangeMin:0,rangeMax:200,rangeErrorMessage:null}})},initAdditionalErrorMesssages:function(n){n.meta.settingObj.rangeErrorMessage?(n.meta.errorMessages.minlength=n.meta.settingObj.rangeErrorMessage,n.meta.errorMessages.maxlength=n.meta.settingObj.rangeErrorMessage):(n.meta.errorMessages.minlength="This field length should not be smaller than {{field.meta.settingObj.rangeMin}} character(s).",n.meta.errorMessages.maxlength="This field length should not be larger than {{field.meta.settingObj.rangeMax}} characters.");n.meta.settingObj.regexErrorMessage&&(n.meta.errorMessages.pattern=n.meta.settingObj.regexErrorMessage)},validateField:function(n,t){var f=this.validateFieldBase(n,t),r;return i(n)||t.setting&&(r=JSON.parse(t.setting),r.rangeMin>0&&n.length<r.rangeMin&&(f.valid=!1,f.message+=r.rangeErrorMessage?r.rangeErrorMessage:t.uniqueName+" should not be less than "+r.rangeMin+" character(s).",f.message+="\n"),n.length>r.rangeMax&&(f.valid=!1,f.message+=r.rangeErrorMessage?r.rangeErrorMessage:t.uniqueName+" should not be more than "+r.rangeMax+" characters.",f.message+="\n"),r.regex&&(f.valid=n.match(u(r.regex)),f.valid||(f.message+=r.regexErrorMessage?r.regexErrorMessage:"Invalid "+t.uniqueName+".",f.message+="\n"))),f}}),h.defineFieldType("Number",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.NUMBER,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Number",settingObj:{rangeMin:null,rangeMax:null,rangeErrorMessage:null}})},initAdditionalErrorMesssages:function(n){n.meta.settingObj.rangeErrorMessage?(n.meta.errorMessages.min=n.meta.settingObj.rangeErrorMessage,n.meta.errorMessages.max=n.meta.settingObj.rangeErrorMessage):(n.meta.errorMessages.min="This field should not be smaller than {{field.meta.settingObj.rangeMin}}.",n.meta.errorMessages.max="This field should not be larger than {{field.meta.settingObj.rangeMax}}.");n.meta.errorMessages.pattern="This field is a number."},validateField:function(n,t){var r=this.validateFieldBase(n,t),e,f;return i(n)||(e=parseInt(n),(isNaN(e)||!n.match(/^\d+$/))&&(r.valid=!1,r.message+="Invalid "+t.uniqueName,r.message+="\n"),e&&t.setting&&(f=JSON.parse(t.setting),(e<f.rangeMin||e>f.rangeMax)&&(r.valid=!1,r.message+=f.rangeErrorMessage?f.rangeErrorMessage:t.uniqueName+" should be between "+f.rangeMin+" and "+f.rangeMax+".",r.message+="\n"),f.regex&&(r.valid=e.match(u(f.regex)),r.valid||(r.message+=f.regexErrorMessage?f.regexErrorMessage:"Invalid "+t.uniqueName+" format.",r.message+="\n")))),r}}),h.defineFieldType("SingleDropdown",null,{createFieldMeta:function(){var n=this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Single Dropdown",maxID:0,settingObj:{markOtherRequired:!1,sourceTypeID:"0",customSource:[{value:"Option 1",text:"Option 1"},{value:"Option 2",text:"Option 2"},{value:"Option 3",text:"Option 3"}]},_sourceTypes:[{id:"0",name:"Custom"},{id:"1",name:"U.S. States"},{id:"2",name:"Canadian Provinces"}],_dataSource:e.states,indexes:[],initDatasource:function(){this.maxID=0;for(var n=0;n<this.settingObj.customSource.length;n++)this.indexes[n]=this.maxID++},addItem:function(n,t){this.settingObj.customSource.splice(t+1,0,{value:"",text:""});this.indexes.splice(t+1,0,this.maxID++)},removeItem:function(n){this.settingObj.customSource.splice(n,1);this.indexes.splice(n,1)},sort:function(n,t){var i=n,r=t.next!=undefined?i>t.next?t.next:t.next-1:this.settingObj.customSource.length-1;this.settingObj.customSource.splice(r,0,this.settingObj.customSource.splice(i,1)[0])},setValueString:function(n){typeof n.data!="undefined"&&(n.data.valueString2=="cms6IsOtherItemChecked"?(n.data.isOther=!0,n.data.valueString="Other: "+(n.meta.otherItemValue||"")):(n.data.isOther=!1,n.data.valueString=n.data.valueString2,n.meta.otherItemValue=""))},setValueString2:function(n){typeof n.data!="undefined"&&(n.data.valueString2=n.data.isOther?"cms6IsOtherItemChecked":n.data.valueString)}});return n.initDatasource(),n},initAdditionalFieldData:function(n,t){t&&!n.data.valueString&&n.meta.settingObj&&n.meta.defaultValueString&&(n.data.valueString=n.meta.defaultValueString)},validateField:function(n,t){var u=this.validateFieldBase(n,t),f,r;if(!i(n)){f=JSON.parse(t.setting);r=null;switch(f.sourceTypeID){case"0":r=Enumerable.From(f.customSource).Where("$.value.toLocaleLowerCase() == '"+n.toLocaleLowerCase()+"'").FirstOrDefault();r&&(u.value=r.value);break;case"1":r=Enumerable.From(e.states).Where("$.Country == 'US' && $.Name.toLocaleLowerCase() == '"+n.toLocaleLowerCase()+"'").FirstOrDefault();r&&(u.value=r.Name);break;case"2":r=Enumerable.From(e.states).Where("$.Country == 'CA' && $.Name.toLocaleLowerCase() == '"+n.toLocaleLowerCase()+"'").FirstOrDefault();r&&(u.value=r.Name)}r||(u.valid=!1,u.message+="Invalid "+t.uniqueName+".\n")}return u},savingFieldMetaInternal:function(n){if(n.meta.defaultValueString){var r=n.meta.defaultValueString,u=JSON.parse(n.meta.setting),t=null,i=null;switch(u.sourceTypeID){case"0":t=Enumerable.From(u.customSource).Where("$.value.toLocaleLowerCase() == '"+r.toLocaleLowerCase()+"'").FirstOrDefault();t&&(i=t.value);break;case"1":t=Enumerable.From(e.states).Where("$.Country == 'US' && $.Name.toLocaleLowerCase() == '"+r.toLocaleLowerCase()+"'").FirstOrDefault();t&&(i=t.Name);break;case"2":t=Enumerable.From(e.states).Where("$.Country == 'CA' && $.Name.toLocaleLowerCase() == '"+r.toLocaleLowerCase()+"'").FirstOrDefault();t&&(i=t.Name)}n.meta.defaultValueString=i}},getFieldSummaryModel:function(n,i){this._options.apiClient.registerClass("admin.api.form.getFieldChartSummary");var r=this._options.apiClient.getService();return r.admin.api.form.getFieldChartSummary(n).then(function(n){var r=n.data,u=JSON.parse(i.meta.setting),c=$.grep(r.viModel.items,function(n){return n.isOther}),f,e,s,o,h;if(r.viModel.items=$.grep(r.viModel.items,function(n){return!n.isOther}),i.meta&&i.meta.allowOther&&r.viModel.items.push({answer:"Other",isOther:!0,count:Enumerable.From(c).Sum("$.count")}),t.forEach(r.viModel.items,function(n){n.responses=(n.count*1/r.viModel.answered).toFixed(4)}),u&&u.customSource&&u.sourceTypeID=="0"){for(f=[],e=0;e<u.customSource.length;e++){for(s=!1,o=0;o<r.viModel.items.length;o++)if(u.customSource[e].value==r.viModel.items[o].answer){s=!0;f.push(r.viModel.items[o]);break}s||f.push({answer:u.customSource[e].value,count:0,responses:0})}h=$.grep(r.viModel.items,function(n){return n.isOther});h.length&&f.push(h[0]);r.viModel.items=f}return r})}}),h.defineFieldType("FullName",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Full Name",settingObj:{},children:{Title:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Title",fieldTypeId:1,display:!0,order:1},FirstName:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"First Name",fieldTypeId:1,display:!0,order:2},MiddleInitial:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"M.I.",fieldTypeId:1,display:!0,order:3},LastName:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Last Name",fieldTypeId:1,display:!0,order:4},Suffix:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Suffix",fieldTypeId:1,display:!0,order:5}}})},initAdditionalErrorMesssages:function(n){n.hiddenValue=function(){return n.children.FirstName.data.valueString&&n.children.LastName.data.valueString?"hasvalue":""};n.xssValue=function(){return n.children.Title.data.valueString+" "+n.children.FirstName.data.valueString+" "+n.children.MiddleInitial.data.valueString+" "+n.children.LastName.data.valueString+" "+n.children.Suffix.data.valueString}},savingFieldMetaInternal:function(n){n.meta.children.FirstName.isRequired=n.meta.isRequired;n.meta.children.LastName.isRequired=n.meta.isRequired;n.meta.children.Title.isRequired=!1;n.meta.children.Suffix.isRequired=!1;n.meta.children.Title.isRequired=!1;t.forEach(n.meta.children,function(t){t.sensitive=n.meta.sensitive})},getBuilderDefaultLabelTemplate:function(){return this.getBuilderDefaultSpanTemplate()},getFieldSummaryModel:function(n,t){this._options.apiClient.registerClass("admin.api.form.getFieldDefaultSummary");var i=this._options.apiClient.getService();return i.admin.api.form.getFieldDefaultSummary(n).then(function(n){for(var r=n.data.viModel.items,i=0;i<r.length;i++)if(r[i].children&&r[i].children.length!=0){var e=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.Title.id).value,o=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.FirstName.id).value,f=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.MiddleInitial.id).value,s=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.LastName.id).value,h=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.Suffix.id).value,u=[];e&&u.push(e+" ");o&&u.push(o+" ");f&&u.push(f+(f.indexOf(".")>-1?" ":". "));s&&u.push(s);h&&u.push(", "+h);r[i].answer=u.join("")}return n.data})}}),h.defineFieldType("FullAddress",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Full Address",sensitive:!1,settingObj:{},children:{Address1:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Street Number and Name",fieldTypeId:1,display:!0,order:1},Address2:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Unit Number",fieldTypeId:1,display:!0,order:2},City:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"City",fieldTypeId:1,display:!0,order:3},State:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"State/Province/Region",fieldTypeId:1,display:!0,order:4},PostalCode:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Postal/ZIP Code",fieldTypeId:1,display:!0,order:5},Country:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Country",fieldTypeId:1,display:!0,order:6}}})},initAdditionalErrorMesssages:function(n){n.hiddenValue=function(){return(n.children.Address1.data.valueString||!n.meta.children.Address1.display)&&(n.children.City.data.valueString||!n.meta.children.City.display)&&(n.children.State.data.valueString||!n.meta.children.State.display)&&(n.children.PostalCode.data.valueString||!n.meta.children.PostalCode.display)&&(n.children.Country.data.valueString||!n.meta.children.Country.display)?"hasvalue":""};n.xssValue=function(){return(n.meta.children.Address1.display?n.children.Address1.data.valueString:"")+" "+(n.meta.children.Address2.display?n.children.Address2.data.valueString:"")+" "+(n.meta.children.City.display?n.children.City.data.valueString:"")+" "+(n.meta.children.State.display?n.children.State.data.valueString:"")+" "+(n.meta.children.PostalCode.display?n.children.PostalCode.data.valueString:"")+" "+(n.meta.children.Country.display?n.children.Country.data.valueString:"")}},getBuilderDefaultLabelTemplate:function(){return this.getBuilderDefaultSpanTemplate()},savingFieldMetaInternal:function(n){t.forEach(n.meta.children,function(t){t.isRequired=n.meta.isRequired;t.sensitive=n.meta.sensitive})},getFieldSummaryModel:function(n,t){this._options.apiClient.registerClass("admin.api.form.getFieldDefaultSummary");var i=this._options.apiClient.getService();return i.admin.api.form.getFieldDefaultSummary(n).then(function(n){for(var r=n.data.viModel.items,i=0;i<r.length;i++)if(r[i].children&&r[i].children.length!=0){var f=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.Address1.id).value,e=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.Address2.id).value,o=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.City.id).value,s=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.State.id).value,h=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.PostalCode.id).value,c=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.Country.id).value,u=[];f&&u.push(f);e&&u.push(e);o&&u.push(o);s&&u.push(s);h&&u.push(h);c&&u.push(c);r[i].answer=u.join(", ")}return n.data})}}),h.defineFieldType("Website",null,{createFieldMeta:function(){var n=this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Website",settingObj:{allowExternal:!1,allowExternalErrorMessage:null}});return Object.defineProperty(n,"websitePattern",{get:function(){return this.settingObj&&this.settingObj.allowExternal==!0?FORMPATTERNS.urlPattern:FORMPATTERNS.internalUrlPattern},set:function(){}}),n},initAdditionalErrorMesssages:function(t){var i=n.location.origin;t.meta.errorMessages.pattern=t.meta.settingObj&&t.meta.settingObj.allowExternalErrorMessage?t.meta.settingObj.allowExternalErrorMessage:'Internal URL error: " '+i+'/ URLs only." '},validateField:function(t,r){var e="Invalid "+r.uniqueName+" format.\n",u=this.validateFieldBase(t,r),f;return i(t)||(f=JSON.parse(r.setting),f.allowExternal?(u.valid=$.isUrl(t)||$.isIntranetUrl(n.visionOptions.virtualApplicationPath+t),u.valid||(u.message+=e)):(u.valid=$.isIntranetUrl(n.visionOptions.virtualApplicationPath+t),u.valid?$.isUrl(t)&&(u.valid=!1,u.message+=f.allowExternalErrorMessage?f.allowExternalErrorMessage:e):u.message+=e)),u}}),h.defineFieldType("DateTime",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.DATETIME,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Date and Time",settingObj:{datetimeRangeMin:null,datetimeRangeMax:null,datetimeRangeErrorMessage:null,datetimeUseDateOnly:!1,enableTime:!0},minDateTimeFrom:function(){return"1/1/1800 12:00 AM"},maxDateTimeTo:function(){return"12/31/2099 12:00 AM"},minDateTime:function(){return this.settingObj.datetimeRangeMin||"1/1/1800 12:00 AM"},maxDateTime:function(){return this.settingObj.datetimeRangeMax||"12/31/2099 12:00 AM"}})},initAdditionalErrorMesssages:function(n){n.meta.settingObj&&n.meta.settingObj.datetimeRangeErrorMessage&&(n.meta.errorMessages.datetimerange=n.meta.settingObj.datetimeRangeErrorMessage);n.meta.requiredErrorMessage&&(n.meta.errorMessages.required=n.meta.requiredErrorMessage)},validateField:function(n,t){var r=this.validateFieldBase(n,t),f,u;if(!i(n))try{f=Date.parse(n);isNaN(f)?(r.valid=!1,r.valid||(r.message+="Invalid "+t.uniqueName+".\n")):f&&t.setting&&(u=JSON.parse(t.setting),(f>Date.parse(u.datetimeRangeMax)||f<Date.parse(u.datetimeRangeMin))&&(r.valid=!1,r.message+=u.datetimeRangeErrorMessage?u.datetimeRangeErrorMessage:t.uniqueName+" should be between "+u.datetimeRangeMin+" and "+$.formatDate($.parseDate(u.datetimeRangeMax),"MM/dd/yyyy hh:mm tt"),r.message+="\n"))}catch(e){r.valid=!1;r.valid||(r.message+="Invalid "+t.uniqueName+".\n")}return r},formatStr:r.DateTimeFormat}),h.defineFieldType("ParagraphText",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Paragraph Text",sensitive:!1,settingObj:{rangeMin:0,rangeMax:500,rangeErrorMessage:null},errorMessages:{max:"The field must be a number between 1-2500"}})},initAdditionalErrorMesssages:function(n){n.meta.settingObj.rangeErrorMessage?(n.meta.errorMessages.minlength=n.meta.settingObj.rangeErrorMessage,n.meta.errorMessages.maxlength=n.meta.settingObj.rangeErrorMessage):(n.meta.errorMessages.minlength="This field length should not be smaller than {{field.meta.settingObj.rangeMin}} character(s).",n.meta.errorMessages.maxlength="This field length should not be larger than {{field.meta.settingObj.rangeMax}} characters.");n.meta.settingObj.regexErrorMessage&&(n.meta.errorMessages.pattern=n.meta.settingObj.regexErrorMessage);n.meta.errorMessages.max="The field must be a number between 1-2500"},validateField:function(n,t){var f=this.validateFieldBase(n,t),r;return i(n)||t.setting&&(r=JSON.parse(t.setting),r.rangeMin>0&&n.length<r.rangeMin&&(f.valid=!1,f.message+=r.rangeErrorMessage?r.rangeErrorMessage:t.uniqueName+" should not be less than "+r.rangeMin+" character(s).",f.message+="\n"),n.length>r.rangeMax&&(f.valid=!1,f.message+=r.rangeErrorMessage?r.rangeErrorMessage:t.uniqueName+" should not be more than "+r.rangeMax+" characters.",f.message+="\n"),r.regex&&(f.valid=n.match(u(r.regex)),f.valid||(f.message+=r.regexErrorMessage?r.regexErrorMessage:"Invalid "+t.uniqueName+".",f.message+="\n"))),f},initAdditionalFieldData:function(n){(n.meta.settingObj.rangeMax>2500||n.meta.settingObj.rangeMax===0)&&(n.meta.settingObj.rangeMax=2500)}}),h.defineFieldType("Email",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Email",sensitive:!1})},initAdditionalErrorMesssages:function(n){n.meta.errorMessages.vimatch=n.meta.settingObj&&n.meta.settingObj.mismatchErrorMessage?n.meta.settingObj.mismatchErrorMessage:"Email addresses must match.";n.meta.errorMessages.pattern="This field does not match the email format, Example: name@email.com."},validateField:function(n,t){var r=this.validateFieldBase(n,t);return i(n)||(r.valid=n.match(this.emailPattern),r.valid||(r.message+="Invalid "+t.uniqueName+".\n")),r},savingFieldMetaInternal:function(n){n.meta.settingObj&&(n.meta.settingObj.emailConfirmation?n.conditionalLogicObjs=[]:n.meta.settingObj.mismatchErrorMessage=null)}}),h.defineFieldType("Phone",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Phone",format:r.PhoneFormat,settingObj:{enableExtension:!0},children:{Number:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Number",fieldTypeId:1,display:!0,order:1},Extension:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Extension",fieldTypeId:1,display:!0,order:2}}})},initAdditionalErrorMesssages:function(n){n.meta.errorMessages.pattern="This field is a number"},validateField:function(n,t){var r=this.validateFieldBase(n,t);return i(n)||(r.valid=n.match(this.phonePattern)&&n.length==10,r.valid||(r.message+="Invalid "+t.uniqueName+".\n")),r},getBuilderDefaultLabelTemplate:function(){return this.getBuilderDefaultSpanTemplate()},formatStr:r.PhoneFormat,savingFieldMetaInternal:function(n){n.meta.children.Extension&&(n.meta.children.Extension.display=n.meta.settingObj.enableExtension)}}),h.defineFieldType("RadioButtonList",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Radio Button List",maxID:0,settingObj:{markOtherRequired:!1,customSource:[{value:"Option 1",text:"Option 1"},{value:"Option 2",text:"Option 2"},{value:"Option 3",text:"Option 3"}]},indexes:[],initDatasource:function(){this.maxID=0;for(var n=0;n<this.settingObj.customSource.length;n++)this.indexes[n]=this.maxID++},addItem:function(n,t){this.settingObj.customSource.splice(t+1,0,{value:"",text:""});this.indexes.splice(t+1,0,this.maxID++)},removeItem:function(n){this.settingObj.customSource.splice(n,1);this.indexes.splice(n,1)},sort:function(n,t){var i=n,r=t.next!=undefined?i>t.next?t.next:t.next-1:this.settingObj.customSource.length-1;this.settingObj.customSource.splice(r,0,this.settingObj.customSource.splice(i,1)[0])}})},initAdditionalFieldData:function(n){var i=!1,t;if(n.data&&n.data.isOther&&n.data.valueString)i=!0;else for(t=0;t<n.meta.settingObj.customSource.length;t++)if(n.meta.settingObj.customSource[t].value==n.data.valueString){i=!0;break}i||(n.data.valueString=null)},validateField:function(){return!0},getBuilderDefaultLabelTemplate:function(){return this.getBuilderDefaultSpanTemplate()},getFieldSummaryModel:function(n,i){this._options.apiClient.registerClass("admin.api.form.getFieldChartSummary");var r=this._options.apiClient.getService();return r.admin.api.form.getFieldChartSummary(n).then(function(n){var r=n.data,u=JSON.parse(i.meta.setting),c=$.grep(r.viModel.items,function(n){return n.isOther}),f,e,s,o,h;if(r.viModel.items=$.grep(r.viModel.items,function(n){return!n.isOther}),i.meta&&i.meta.allowOther&&r.viModel.items.push({answer:"Other",isOther:!0,count:Enumerable.From(c).Sum("$.count")}),t.forEach(r.viModel.items,function(n){n.responses=(n.count*1/r.viModel.answered).toFixed(4)}),u&&u.customSource){for(f=[],e=0;e<u.customSource.length;e++){for(s=!1,o=0;o<r.viModel.items.length;o++)if(u.customSource[e].value==r.viModel.items[o].answer){s=!0;f.push(r.viModel.items[o]);break}s||f.push({answer:u.customSource[e].value,count:0,responses:0})}h=$.grep(r.viModel.items,function(n){return n.isOther});i.meta&&i.meta.allowOther&&h.length&&f.push(h[0]);r.viModel.items=f}return r})}}),h.defineFieldType("CheckBoxList",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.ARRAY,defaultValueArrayObj:[],typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Check Box List",maxID:0,settingObj:{markOtherRequired:!1,allowSelectAll:!1,customSource:[{value:"Option 1",text:"Option 1"},{value:"Option 2",text:"Option 2"},{value:"Option 3",text:"Option 3"}],maxSelection:-1},maxSelectSource:function(){for(var i=this.settingObj.customSource.length,t=[{value:-1,text:"Unlimited"}],n=1;n<=i;n++)t.push({value:n,text:""+n});return t},maxSelectionInit:function(){this.settingObj.maxSelection!=-1?this.maxSelectionObj=this.maxSelectSource()[this.settingObj.maxSelection]:this.maxSelectionObj||(this.maxSelectionObj=this.maxSelectSource()[0])},maxSelectionObj:null,maxSelectionChanged:function(){var n=this,t=$.grep(n.settingObj.customSource,function(n){return n.defaultValueChecked});n.maxSelectionObj.value>0&&n.maxSelectionObj.value<t.length&&(alert("The default selection count has reached allowed max selection count, please set the default select again."),$.each(n.settingObj.customSource,function(n,t){t.defaultValueChecked=!1}));n.settingObj.maxSelection=n.maxSelectionObj.value;n.settingObj.maxSelection!=-1&&(n.settingObj.allowSelectAll=!1)},indexes:[],initDatasource:function(){this.maxID=0;for(var n=0;n<this.settingObj.customSource.length;n++)this.indexes[n]=this.maxID++;this.redefineProperties()},checkMaxSelection:function(n){var t=this,i=$.grep(t.settingObj.customSource,function(n){return n.defaultValueChecked});i.length>t.settingObj.maxSelection&&t.settingObj.maxSelection!=-1&&(alert("Reached the max number of selections."),n.defaultValueChecked=!1)},addItem:function(n,t){this.settingObj.customSource.splice(t+1,0,{value:"",text:""});this.indexes.splice(t+1,0,this.maxID++);this.redefineProperties()},removeItem:function(n){this.settingObj.customSource.splice(n,1);this.indexes.splice(n,1)},sort:function(n,t){var i=n,r=t.next!=undefined?i>t.next?t.next:t.next-1:this.settingObj.customSource.length-1;this.settingObj.customSource.splice(r,0,this.settingObj.customSource.splice(i,1)[0])},redefineProperties:function(){var n=this;t.forEach(n.settingObj.customSource,function(t){t.hasOwnProperty("defaultValueChecked")||Object.defineProperty(t,"defaultValueChecked",{get:function(){return $.inArray(t.value,n.defaultValueArrayObj)>-1},set:function(i){if(i==!0)$.inArray(t.value,n.defaultValueArrayObj)==-1&&n.defaultValueArrayObj.push(t.value);else{var r=n.defaultValueArrayObj.indexOf(t.value);n.defaultValueArrayObj.splice(r,1)}}})})},checkAllOptions:function(n,i){if(this.settingObj.allowSelectAll==!0){var r=i.currentTarget.checked;n.data.valueArrayObj=[];r==!0&&t.forEach(this.settingObj.customSource,function(t){n.data.valueArrayObj.push(t.value)});n.meta.allowOther&&(n.data.isOther=r,n.meta.setOtherInfo(n))}},checkedValue:function(){var t=$.grep(this.settingObj.customSource,function(n){return n.checked}),n=$.map(t,function(n){return n.value});return this.isOtherCopy&&n.push("Other:"),n.join(", ")},setOtherInfo:function(n){var i=[],r;for(t.forEach(this.settingObj.customSource,function(n){n.checked&&i.push(n.value)}),n.data.isOther&&i.push("Other: "+(n.meta.otherItemValue||"")),n.data.valueArrayObj.splice(0,n.data.valueArrayObj.length),r=0;r<i.length;r++)n.data.valueArrayObj.push(i[r]);n.meta.isOtherCopy=n.data.isOther},redefineDataProperties:function(n){var i=this;n.data.valueArrayObj=n.data.valueArrayObj||[];t.forEach(i.settingObj.customSource,function(t){Object.defineProperty(t,"checked",{get:function(){return n.data.valueArrayObj=n.data.valueArrayObj||[],$.inArray(t.value,n.data.valueArrayObj)>-1},set:function(i){if(i==!0)$.inArray(t.value,n.data.valueArrayObj)==-1&&(n.data.isOther?n.data.valueArrayObj.splice(n.data.valueArrayObj.length-1,0,t.value):n.data.valueArrayObj.push(t.value),n.data.valueArrayObj=n.data.valueArrayObj.sort());else{var r=n.data.valueArrayObj.indexOf(t.value);n.data.valueArrayObj.splice(r,1)}}})})}})},initAdditionalFieldData:function(n,i){i&&!n.data.valueArrayObj&&n.meta.defaultValueArray&&(n.data.valueArrayObj=t.toJson(n.meta.defaultValueArray));n.meta.redefineDataProperties(n)},initAdditionalErrorMesssages:function(n){n.meta.settingObj.maxSelection!=-1&&(n.meta.errorMessages.checkboxlistMaxSelection="You cannot select more than "+n.meta.settingObj.maxSelection+" choice(s)")},validateField:function(){return!0},getBuilderDefaultLabelTemplate:function(){return this.getBuilderDefaultSpanTemplate()},getFieldSummaryModel:function(n,t){this._options.apiClient.registerClass("admin.api.form.getFieldChartSummary");var i=this._options.apiClient.getService();return i.admin.api.form.getFieldChartSummary(n).then(function(n){var r=n.data,e=JSON.parse(t.meta.setting),o,f,a,s,i,v,u,y;if(e&&e.customSource){var p=r.viModel.items.slice(),c=[],l=[],h=0;for(i=0;i<p.length;i++)if(o=p[i],f=JSON.parse(o.answer),f&&f.length!=0)for(u=0;u<f.length;u++)o.isOther&&f[u].indexOf("Other:")>-1?l.push(f[u]):(c.push({answer:f[u],isOther:!1,count:o.count}),h+=o.count);for(t.meta&&t.meta.allowOther&&(c.push({answer:"Other",isOther:!0,count:l.length}),h+=l.length),r.viModel.total=h+" ("+r.viModel.answered+" answered)",a=Enumerable.From(c).GroupBy("$.answer",null,function(n,t){return{answer:n,isOther:t.Sum("$.isOther")==1,count:t.Sum("$.count"),responses:(t.Sum("$.count")*1/h).toFixed(4)}}).ToArray();r.viModel.items.length>0;)r.viModel.items.pop();for(i=0;i<a.length;i++)r.viModel.items.push(a[i]);for(s=[],i=0;i<e.customSource.length;i++){for(v=!1,u=0;u<r.viModel.items.length;u++)if(e.customSource[i].value==r.viModel.items[u].answer){v=!0;s.push(r.viModel.items[u]);break}v||s.push({answer:e.customSource[i].value,count:0,responses:0})}y=$.grep(r.viModel.items,function(n){return n.isOther});t.meta&&t.meta.allowOther&&y.length&&s.push(y[0]);r.viModel.items=s}return r})}}),h.defineFieldType("Attachment",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.ARRAY,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Attachment",settingObj:{fileTypes:[{allowed:!0,value:".gif"},{allowed:!0,value:".jpg"},{allowed:!0,value:".jpeg"},{allowed:!0,value:".png"},{allowed:!0,value:".doc"},{allowed:!0,value:".docx"},{allowed:!0,value:".xls"},{allowed:!0,value:".xlsx"},{allowed:!0,value:".rtf"},{allowed:!0,value:".pdf"},{allowed:!0,value:".txt"}],selectAllTypes:!0,maxNum:1,maxSize:5},_files:[],allowedTypes:function(){var n=$.grep(this.settingObj.fileTypes,function(n){return n.allowed}),t=$.map(n,function(n){return n.value});return t.join(", ")},selectAll:function(){var n=this.settingObj.selectAllTypes;t.forEach(this.settingObj.fileTypes,function(t){t.allowed=n})},addItem:function(n){var t=this.createEmptyFile();this._files.splice(n+1,0,t)},removeItem:function(n){this._files.splice(n,1)},createEmptyFile:function(){var n="f"+Math.floor(Math.random()*1e5);return{id:n}}})},initAdditionalFieldData:function(){},initAdditionalErrorMesssages:function(n){n.meta.errorMessages.attachmentSizeValidator=n.meta.settingObj.fileSizeErrorMessage||"The file is too large.";n.meta.errorMessages.attachmentExtensionValidator=n.meta.settingObj.fileTypeErrorMessage||"The file type is not allowed."},getBuilderDefaultLabelTemplate:function(){return this.getBuilderDefaultSpanTemplate()}}),h.defineFieldType("DigitalSignature",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Digital Signature",sensitive:!1,uniqueField:!0,isRequired:!0,settingObj:{customizeNote:"Note: Upon completion of this web form a signature page will automatically generate. It is here that you will be required to provide the final legally binding signature.",showInResponseList:["Name","Email"],testMode:!0},children:{Name:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Signer Name",fieldTypeId:1,order:1},Email:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"Signer Email",fieldTypeId:1,type:{emailPattern:this.emailPattern},order:2},eDocumentInfo:{valueType:FORMFIELDVALUETYPES.DICT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.NONEXPORTABLE,label:"eDocument Info",fieldTypeId:1},Provider:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.NONEXPORTABLE,label:"Provider",fieldTypeId:1}}})},initAdditionalErrorMesssages:function(n){n.hiddenValue=function(){return n.children.Name.data.valueString&&n.children.Email.data.valueString?"hasvalue":""}},savingFieldMetaInternal:function(n){t.forEach(n.meta.children,function(t){t.isRequired=n.meta.isRequired;t.sensitive=n.meta.sensitive})},getBuilderDefaultLabelTemplate:function(){return'<span class="form-field-required" ng-if="field.meta.isRequired">*<\/span><span class="test-mode-label" ng-if="field.meta.settingObj.testMode || field.forceTestMode">{{ field.page.form.enableQuestionNumbering ? field.pIndex : "" }}. (CURRENTLY IN TEST MODE) <\/span><span class="field-span">{{ field.page.form.enableQuestionNumbering && !(field.meta.settingObj.testMode || field.forceTestMode) ? field.pIndex + "." : "" }} {{field.meta.label}}<span aria-label="{{field.meta.instructions}}" role="tooltip"  tabindex="0" class="instruction-text" ng-if="field.meta.instructions != \'\' && field.meta.instructions != null" title="{{field.meta.instructions}}" vi-fe-poshytip><\/span><\/span>'}}),h.defineFieldType("PaymentSingleItem",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Single Item Payment",settingObj:{price:0,enableQuantityField:!1,isNonTaxableItem:!1,rangeMin:null,rangeMax:null,rangeErrorMessage:null,quantityDecimalFormat:"^[0-9]+([.]{1}[0-9]{2})?$"},children:{Price:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Price",fieldTypeId:5,display:!0,order:1},Quantity:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Quantity",fieldTypeId:5,display:!1,order:2},Tax:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Tax",fieldTypeId:5,display:!0,order:3}},quantityDecimalFormatDataSource:[{text:"Only Whole Numbers",value:"^[0-9]+$"},{text:"1 - One Decimal",value:"^[0-9]+([.]{1}[0-9]{1})?$"},{text:"2 - Two Decimals",value:"^[0-9]+([.]{1}[0-9]{2})?$"},{text:"3 - Three Decimals",value:"^[0-9]+([.]{1}[0-9]{3})?$"}]})},initAdditionalErrorMesssages:function(n){n.meta.settingObj.rangeErrorMessage?(n.meta.errorMessages.min=n.meta.settingObj.rangeErrorMessage,n.meta.errorMessages.max=n.meta.settingObj.rangeErrorMessage):(n.meta.errorMessages.min="This field should not be smaller than {{field.meta.settingObj.rangeMin}}.",n.meta.errorMessages.max="This field should not be larger than {{field.meta.settingObj.rangeMax}}.")},initAdditionalFieldData:function(n,i){n.getCalculatableItems=function(){var n=this,t=n.children.Price.data&&n.children.Price.data.valueFloat||n.meta.settingObj.price,i=n.children.Quantity&&n.children.Quantity.data&&n.children.Quantity.data.valueFloat&&n.children.Quantity.data.valueFloat>0;return i?[{label:n.meta.label,price:t,showQuantity:n.meta.settingObj.enableQuantityField,quantity:n.children.Quantity.data.valueFloat,nonTax:n.meta.settingObj.isNonTaxableItem,subTotal:n.meta.settingObj.enableQuantityField?t*n.children.Quantity.data.valueFloat:t}]:[]};n.checkData=function(n){var t=[];return n.meta.settingObj.enableQuantityField&&(!n.children.Quantity.data.valueFloat||n.children.Quantity.data.valueFloat==0)&&t.push(n.children.Price.meta.id),n.children.Tax.data.valueFloat&&n.children.Tax.data.valueFloat!=0||t.push(n.children.Tax.meta.id),t};n.calculateTax=function(n,i,r){var u=this,f=u.children.Price.data&&u.children.Price.data.valueFloat||u.meta.settingObj.price,e=u.children.Quantity&&u.children.Quantity.data&&u.children.Quantity.data.valueFloat?u.children.Quantity.data.valueFloat:u.meta.settingObj.enableQuantityField?0:1,o=u.meta.settingObj.enableQuantityField?f*e:f,s=u.meta.settingObj.isNonTaxableItem,h=s||i.value==FORMFIELDAMOUNTTYPE.FIXEDAMOUNT?0:o*n/100;t.merge(u.children,{Tax:{data:{valueFloat:h},meta:{label:r.text}}});u.meta.children.Tax.label=r.text};n.registerWatch=function(n,t){var i=this;n.$watch(function(){return i.children.Quantity&&i.children.Quantity.data?i.children.Quantity.data.valueFloat:null},t)};i&&(n.meta.children.Quantity.defaultValueFloat=n.meta.defaultValueFloat)},getBuilderDefaultLabelTemplate:function(){return this.getBuilderDefaultSpanTemplate()},savingFieldMetaInternal:function(n){n.meta.children.Quantity&&n.meta.children.Tax&&(n.meta.children.Quantity.display=n.meta.settingObj.enableQuantityField,n.meta.children.Tax.display=!n.meta.settingObj.isNonTaxableItem)},getFieldSummaryModel:function(n,t){this._options.apiClient.registerClass("admin.api.form.getFieldDefaultSummary");var i=this._options.apiClient.getService();return i.admin.api.form.getFieldDefaultSummary(n).then(function(n){for(var r=n.data.viModel.items,i=0;i<r.length;i++)if(r[i].children&&r[i].children.length!=0){var u=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.Price.id).value,f=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.Quantity.id).value,e=f?u*f:u*1;r[i].answer=e.toFixed(2)}return n.data})}}),h.defineFieldType("PaymentRadio",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Radio Button Payment",settingObj:{customSource:[{label:"Option 1",price:1},{label:"Option 2",price:2},{label:"Option 3",price:3}],enableQuantityField:!1,isNonTaxableItem:!1,rangeMin:null,rangeMax:null,rangeErrorMessage:null,displayPriceValue:!0,quantityDecimalFormat:"^[0-9]+([.]{1}[0-9]{2})?$"},children:{Selection:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Selection",fieldTypeId:1,display:!0,order:1},Price:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Price",fieldTypeId:5,display:!0,order:2},Quantity:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Quantity",fieldTypeId:5,display:!1,order:3},Tax:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Tax",fieldTypeId:5,display:!0,order:4}},quantityDecimalFormatDataSource:[{text:"Only Whole Numbers",value:"^[0-9]+$"},{text:"1 - One Decimal",value:"^[0-9]+([.]{1}[0-9]{1})?$"},{text:"2 - Two Decimals",value:"^[0-9]+([.]{1}[0-9]{2})?$"},{text:"3 - Three Decimals",value:"^[0-9]+([.]{1}[0-9]{3})?$"}],indexes:[],initDatasource:function(){this.maxID=0;for(var n=0;n<this.settingObj.customSource.length;n++)this.indexes[n]=this.maxID++},addItem:function(n,t){this.settingObj.customSource.splice(t+1,0,{label:"",price:0});this.indexes.splice(t+1,0,this.maxID++)},removeItem:function(n){this.settingObj.customSource.splice(n,1);this.indexes.splice(n,1)},sort:function(n,t){var i=n,r=t.next!=undefined?i>t.next?t.next:t.next-1:this.settingObj.customSource.length-1;this.settingObj.customSource.splice(r,0,this.settingObj.customSource.splice(i,1)[0])},getPrice:function(n){var r=this,t=0,i=$.grep(r.settingObj.customSource,function(t){return t.label==n});return i.length&&(t=i[0].price),t}})},initAdditionalErrorMesssages:function(n){n.meta.settingObj.rangeErrorMessage?(n.meta.errorMessages.min=n.meta.settingObj.rangeErrorMessage,n.meta.errorMessages.max=n.meta.settingObj.rangeErrorMessage):(n.meta.errorMessages.min="This field should not be smaller than {{field.meta.settingObj.rangeMin}}.",n.meta.errorMessages.max="This field should not be larger than {{field.meta.settingObj.rangeMax}}.")},initAdditionalFieldData:function(n){n.getCalculatableItems=function(){var n=this,t=n.children.Price.data&&n.children.Price.data.valueFloat||n.meta.getPrice(n.children.Selection.data&&n.children.Selection.data.valueString||null),i=n.children.Quantity&&n.children.Quantity.data&&n.children.Quantity.data.valueFloat&&n.children.Quantity.data.valueFloat>0,r=n.children.Selection&&n.children.Selection.data&&n.children.Selection.data.valueString;return i&&r?[{label:n.children.Selection.data.valueString,price:t,showQuantity:n.meta.settingObj.enableQuantityField,quantity:n.children.Quantity.data.valueFloat,nonTax:n.meta.settingObj.isNonTaxableItem,subTotal:n.meta.settingObj.enableQuantityField?t*n.children.Quantity.data.valueFloat:t}]:[]};n.calculateTax=function(n,i,r){var u=this,f=u.children.Price.data&&u.children.Price.data.valueFloat||u.meta.settingObj.price,e=u.children.Quantity&&u.children.Quantity.data&&u.children.Quantity.data.valueFloat?u.children.Quantity.data.valueFloat:u.meta.settingObj.enableQuantityField?0:1,o=u.meta.settingObj.enableQuantityField?f*e:f,s=u.meta.settingObj.isNonTaxableItem,h=s||i.value==FORMFIELDAMOUNTTYPE.FIXEDAMOUNT?0:o*n/100;t.merge(u.children,{Tax:{data:{valueFloat:h},meta:{label:r.text}}});u.meta.children.Tax.label=r.text};n.checkData=function(n){var t=[];return n.meta.settingObj.enableQuantityField&&(!n.children.Quantity.data.valueFloat||n.children.Quantity.data.valueFloat==0)?(t.push(n.children.Selection.meta.id),t.push(n.children.Price.meta.id)):n.children.Price.data||n.children.Price.data.valueFloat||t.push(n.children.Price.meta.id),(n.children.Tax.data||n.children.Tax.data.valueFloat)&&n.children.Tax.data.valueFloat!=0||t.push(n.children.Tax.meta.id),t};n.getCurrentPrice=function(n){var t=this;return t.meta.getPrice(n)};n.registerWatch=function(n,t){var i=this;n.$watch(function(){return i.children.Selection.data.valueString+i.children.Quantity.data.valueFloat},t)}},validateField:function(n,t){return this.validateFieldBase(n,t)},getBuilderDefaultLabelTemplate:function(){return this.getBuilderDefaultSpanTemplate()},savingFieldMetaInternal:function(n){n.meta.children.Quantity&&n.meta.children.Tax&&(n.meta.children.Quantity.display=n.meta.settingObj.enableQuantityField,n.meta.children.Tax.display=!n.meta.settingObj.isNonTaxableItem)},getFieldSummaryModel:function(n,i){this._options.apiClient.registerClass("admin.api.form.getFieldParentChildChartSummary");var r=this._options.apiClient.getService();return r.admin.api.form.getFieldParentChildChartSummary(n).then(function(n){var e=n.data,f=JSON.parse(i.meta.setting),c,o,l,a,s,r,v,h,u;if(t.forEach(e.viModel.items,function(n){n.responses=(n.count*1/e.viModel.answered).toFixed(4)}),f&&f.customSource){var y=f.displayPriceValue,p=e.viModel.items.slice(),w=[];for(r=0;r<p.length;r++)if(c=p[r],o=c.children,o.length!=0){for(l=1,a=0,u=0;u<o.length;u++)o[u].label=="Quantity"&&(l=parseFloat(o[u].value||1)),o[u].label=="Price"&&(a=parseFloat(o[u].value||0));w.push({answer:c.answer,price:Math.round(a*100)/100,count:Math.round(l*100)/100})}for(s=Enumerable.From(w).GroupBy("$.answer + '|' +$.price",null,function(n,t){return{answer:n.split("|")[0],price:parseFloat(n.split("|")[1]),count:t.Sum("$.count")}}).ToArray(),e.viModel.items=[],r=0;r<f.customSource.length;r++){if(v=!1,h=$.grep(s,function(n){return n.answer==f.customSource[r].label&&n.price==f.customSource[r].price}),h.length)for(v=!0,e.viModel.items.push({answer:f.customSource[r].label+(y?" ($"+(f.customSource[r].price||0).toFixed(2)+")":""),count:h[0].count,price:f.customSource[r].price||0,responses:h[0].count*1/e.viModel.answered}),u=0;u<s.length;u++)s[u].answer==h[0].answer&&s[u].price==h[0].price&&s.splice(u,1);v||e.viModel.items.push({answer:f.customSource[r].label+(y?" ($"+(f.customSource[r].price||0).toFixed(2)+")":""),count:0,price:f.customSource[r].price||0,responses:0})}}return e})}}),h.defineFieldType("PaymentDropdown",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Single Dropdown Payment",maxID:0,settingObj:{customSource:[{label:"Option 1",price:1},{label:"Option 2",price:2},{label:"Option 3",price:3}],enableQuantityField:!1,isNonTaxableItem:!1,rangeMin:null,rangeMax:null,rangeErrorMessage:null,displayPriceValue:!0,quantityDecimalFormat:"^[0-9]+([.]{1}[0-9]{2})?$"},children:{Selection:{valueType:FORMFIELDVALUETYPES.STRING,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Selection",fieldTypeId:1,display:!0,order:1},Price:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Price",fieldTypeId:5,display:!0,order:2},Quantity:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Quantity",fieldTypeId:5,display:!1,order:3},Tax:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Tax",fieldTypeId:5,display:!0,order:4}},quantityDecimalFormatDataSource:[{text:"Only Whole Numbers",value:"^[0-9]+$"},{text:"1 - One Decimal",value:"^[0-9]+([.]{1}[0-9]{1})?$"},{text:"2 - Two Decimals",value:"^[0-9]+([.]{1}[0-9]{2})?$"},{text:"3 - Three Decimals",value:"^[0-9]+([.]{1}[0-9]{3})?$"}],indexes:[],initDatasource:function(){this.maxID=0;for(var n=0;n<this.settingObj.customSource.length;n++)this.indexes[n]=this.maxID++},addItem:function(n,t){this.settingObj.customSource.splice(t+1,0,{label:"",price:0});this.indexes.splice(t+1,0,this.maxID++)},removeItem:function(n){this.settingObj.customSource.splice(n,1);this.indexes.splice(n,1)},sort:function(n,t){var i=n,r=t.next!=undefined?i>t.next?t.next:t.next-1:this.settingObj.customSource.length-1;this.settingObj.customSource.splice(r,0,this.settingObj.customSource.splice(i,1)[0])},getPrice:function(n){var i=this,t=$.grep(i.settingObj.customSource,function(t){return t.label==n});return t.length?t[0].price:0}})},initAdditionalErrorMesssages:function(n){n.meta.settingObj.rangeErrorMessage?(n.meta.errorMessages.min=n.meta.settingObj.rangeErrorMessage,n.meta.errorMessages.max=n.meta.settingObj.rangeErrorMessage):(n.meta.errorMessages.min="This field should not be smaller than {{field.meta.settingObj.rangeMin}}.",n.meta.errorMessages.max="This field should not be larger than {{field.meta.settingObj.rangeMax}}.")},initAdditionalFieldData:function(n){n.getCalculatableItems=function(){var n=this,r=[],t,i;return n&&n.children.Selection&&n.children.Selection.data.valueString&&(t=n.meta.getPrice(n.children.Selection.data&&n.children.Selection.data.valueString||null),n.children.Price?n.children.Price.data.valueFloat=t:n.children.Price={data:{valueFloat:t}},i=n.children.Quantity&&n.children.Quantity.data&&n.children.Quantity.data.valueFloat?n.children.Quantity.data.valueFloat:n.children.Selection&&n.children.Selection.data.valueString&&!n.meta.settingObj.enableQuantityField?1:0,r.push({label:n.children.Selection.data.valueString,price:t,showQuantity:n.meta.settingObj.enableQuantityField,quantity:i,nonTax:n.meta.settingObj.isNonTaxableItem,subTotal:n.meta.settingObj.enableQuantityField?t*i:t})),r};n.calculateTax=function(n,i,r){var u=this,f=u.children.Price.data&&u.children.Price.data.valueFloat||u.meta.settingObj.price,e=u.children.Quantity&&u.children.Quantity.data&&u.children.Quantity.data.valueFloat?u.children.Quantity.data.valueFloat:u.meta.settingObj.enableQuantityField?0:1,o=u.meta.settingObj.enableQuantityField?f*e:f,s=u.meta.settingObj.isNonTaxableItem,h=s||i.value==FORMFIELDAMOUNTTYPE.FIXEDAMOUNT?0:o*n/100;t.merge(u.children,{Tax:{data:{valueFloat:h},meta:{label:r.text}}});u.meta.children.Tax.label=r.text};n.getCurrentPrice=function(n){var t=this;return t.meta.getPrice(n)};n.checkData=function(n){var t=[];return n.meta.settingObj.enableQuantityField&&(!n.children.Quantity.data.valueFloat||n.children.Quantity.data.valueFloat==0)&&(t.push(n.children.Selection.meta.id),t.push(n.children.Price.meta.id)),n.children.Tax.data.valueFloat&&n.children.Tax.data.valueFloat!=0||t.push(n.children.Tax.meta.id),t};n.registerWatch=function(n,t){var i=this;n.$watch(function(){var n="";return i.children.Selection&&(n=n+i.children.Selection.data.valueString,i.children.Quantity&&(n=n+i.children.Quantity.data.valueFloat)),n},t)}},savingFieldMetaInternal:function(n){n.meta.children.Quantity&&n.meta.children.Tax&&(n.meta.children.Quantity.display=n.meta.settingObj.enableQuantityField,n.meta.children.Tax.display=!n.meta.settingObj.isNonTaxableItem)},getFieldSummaryModel:function(n,i){this._options.apiClient.registerClass("admin.api.form.getFieldParentChildChartSummary");var r=this._options.apiClient.getService();return r.admin.api.form.getFieldParentChildChartSummary(n).then(function(n){var e=n.data,f=JSON.parse(i.meta.setting),c,o,l,a,s,r,v,h,u;if(t.forEach(e.viModel.items,function(n){n.responses=(n.count*1/e.viModel.answered).toFixed(4)}),f&&f.customSource){var y=f.displayPriceValue,p=e.viModel.items.slice(),w=[];for(r=0;r<p.length;r++)if(c=p[r],o=c.children,o.length!=0){for(l=1,a=0,u=0;u<o.length;u++)o[u].label=="Quantity"&&(l=parseFloat(o[u].value||1)),o[u].label=="Price"&&(a=parseFloat(o[u].value||0));w.push({answer:c.answer,price:a,count:l})}for(s=Enumerable.From(w).GroupBy("$.answer + '|' +$.price",null,function(n,t){return{answer:n.split("|")[0],price:parseFloat(n.split("|")[1]),count:t.Sum("$.count")}}).ToArray(),e.viModel.items=[],r=0;r<f.customSource.length;r++){if(v=!1,h=$.grep(s,function(n){return n.answer==f.customSource[r].label&&n.price==f.customSource[r].price}),h.length)for(v=!0,e.viModel.items.push({answer:f.customSource[r].label+(y?" ($"+(f.customSource[r].price||0).toFixed(2)+")":""),count:h[0].count,price:f.customSource[r].price||0,responses:h[0].count*1/e.viModel.answered}),u=0;u<s.length;u++)s[u].answer==h[0].answer&&s[u].price==h[0].price&&s.splice(u,1);v||e.viModel.items.push({answer:f.customSource[r].label+(y?" ($"+(f.customSource[r].price||0).toFixed(2)+")":""),count:0,price:f.customSource[r].price||0,responses:0})}}return e})}}),h.defineFieldType("PaymentCheckbox",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Check Box Payment",defaultValueArrayObj:[],maxID:0,settingObj:{customSource:[{label:"Option 1",price:1},{label:"Option 2",price:2},{label:"Option 3",price:3}],enableQuantityField:!1,isNonTaxableItem:!1,rangeMin:null,rangeMax:null,rangeErrorMessage:null,displayPriceValue:!0,quantityDecimalFormat:"^[0-9]+([.]{1}[0-9]{2})?$"},children:{Selection:{valueType:FORMFIELDVALUETYPES.ARRAY,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Selection",fieldTypeId:6,display:!0,order:1},Price:{valueType:FORMFIELDVALUETYPES.ARRAY,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Price",fieldTypeId:6,display:!0,order:2},Quantity:{valueType:FORMFIELDVALUETYPES.ARRAY,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Quantity",fieldTypeId:6,display:!1,order:3},Tax:{valueType:FORMFIELDVALUETYPES.ARRAY,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Tax",fieldTypeId:6,display:!0,order:4}},taxes:[],quantityDecimalFormatDataSource:[{text:"Only Whole Numbers",value:"^[0-9]+$"},{text:"1 - One Decimal",value:"^[0-9]+([.]{1}[0-9]{1})?$"},{text:"2 - Two Decimals",value:"^[0-9]+([.]{1}[0-9]{2})?$"},{text:"3 - Three Decimals",value:"^[0-9]+([.]{1}[0-9]{3})?$"}],indexes:[],initDatasource:function(){this.maxID=0;for(var n=0;n<this.settingObj.customSource.length;n++)this.indexes[n]=this.maxID++;this.redefineProperties()},addItem:function(n,t){this.settingObj.customSource.splice(t+1,0,{label:"",price:0});this.indexes.splice(t+1,0,this.maxID++);this.redefineProperties()},removeItem:function(n){this.settingObj.customSource.splice(n,1);this.indexes.splice(n,1)},sort:function(n,t){var i=n,r=t.next!=undefined?i>t.next?t.next:t.next-1:this.settingObj.customSource.length-1;this.settingObj.customSource.splice(r,0,this.settingObj.customSource.splice(i,1)[0])},getPrice:function(n){var i=this,t=$.grep(i.settingObj.customSource,function(t){return t.label==n});return t.length?t[0].price:0},getQuantity:function(n){var i=this,t=$.grep(i.settingObj.customSource,function(t){return t.label==n});return t.length?t[0].quantity||0:1},getTotal:function(){for(var i,n=this,r=[],t=0;t<n.settingObj.customSource.length;t++)n.settingObj.customSource[t].checked&&r.push({label:n.settingObj.customSource[t].label,quantity:n.settingObj.enableQuantityField?n.settingObj.customSource[t].quantity:1});return i=0,$.each(r,function(t,r){i+=n.getPrice(r.label)*(r.quantity||0)}),i},redefineProperties:function(){var n=this;t.forEach(n.settingObj.customSource,function(t){t.hasOwnProperty("defaultValueChecked")||Object.defineProperty(t,"defaultValueChecked",{get:function(){return $.inArray(t.label,n.defaultValueArrayObj)>-1},set:function(i){if(i==!0)$.inArray(t.label,n.defaultValueArrayObj)==-1&&n.defaultValueArrayObj.push(t.label);else{var r=$.inArray(t.label,n.defaultValueArrayObj);n.defaultValueArrayObj.splice(r,1)}}})})},checkedValue:null,redefineDataProperties:function(n){var i=this;n.data.valueArrayObj=n.data.valueArrayObj||[];t.forEach(i.settingObj.customSource,function(t){Object.defineProperty(t,"checked",{get:function(){return $.inArray(t.label,n.data.valueArrayObj)>-1},set:function(r){if(r==!0)$.inArray(t.label,n.data.valueArrayObj)==-1&&(n.data.valueArrayObj.push(t.label),i.checkedValue=r);else{var u=$.inArray(t.label,n.data.valueArrayObj);n.data.valueArrayObj.splice(u,1);n.data.valueArrayObj.length||(i.checkedValue=null)}}})})}})},initAdditionalErrorMesssages:function(n){n.meta.settingObj.rangeErrorMessage?(n.meta.errorMessages.min=n.meta.settingObj.rangeErrorMessage,n.meta.errorMessages.max=n.meta.settingObj.rangeErrorMessage):(n.meta.errorMessages.min="This field should not be smaller than {{field.meta.settingObj.rangeMin}}.",n.meta.errorMessages.max="This field should not be larger than {{field.meta.settingObj.rangeMax}}.")},initAdditionalFieldData:function(n){n.meta.redefineDataProperties(n);n.getCalculatableItems=function(){var n=this,f=[],r,e,t,i,u;if(n.data.valueArrayObj)for(r=0;r<n.data.valueArrayObj.length;r++)e=n.data.valueArrayObj[r],t=e,t&&(i=n.meta.getPrice(t),u=n.meta.getQuantity(t),i>0&&u>0&&f.push({label:t,price:i,showQuantity:n.meta.settingObj.enableQuantityField,quantity:u,nonTax:n.meta.settingObj.isNonTaxableItem,subTotal:n.meta.settingObj.enableQuantityField?i*u:i}));return f};n.calculateTax=function(n,i,r){var u=this,f;u.meta.taxes=[];f=u.data&&u.data.valueArrayObj?u.data.valueArrayObj:[];t.forEach(f,function(t){var r=u.meta.getPrice(t),f=u.meta.getQuantity(t),e=u.meta.settingObj.enableQuantityField?r*f:r,o=u.meta.settingObj.isNonTaxableItem,s=o||i.value==FORMFIELDAMOUNTTYPE.FIXEDAMOUNT?0:e*n/100;u.meta.taxes.push(s)});u.meta.children.Tax.label=r.text};n.registerWatch=function(n,t){var i=this;n.$watch(function(){var r="",t,u,n,f,e;if(i.data.valueArrayObj)for(t=0;t<i.data.valueArrayObj.length;t++)u=i.data.valueArrayObj[t],n=u,n&&(f=i.meta.getPrice(n),e=i.meta.getQuantity(n),r=r+n+f+e);return r},t)}},savingFieldMetaInternal:function(n){n.meta.children.Quantity&&n.meta.children.Tax&&(n.meta.children.Quantity.display=n.meta.settingObj.enableQuantityField,n.meta.children.Tax.display=!n.meta.settingObj.isNonTaxableItem)},savingField:function(n){for(var u,f,o,r=[],e=n.data.valueArrayObj||[],i=0;i<e.length;i++)u=e[i],f=n.meta.getQuantity(u),f>0&&(n.children.Selection.data.valueArrayObj.push(u),n.children.Price.data.valueArrayObj.push(n.meta.getPrice(u)),n.children.Quantity.data.valueArrayObj.push(f),n.meta.taxes[i]&&n.children.Tax.data.valueArrayObj.push(n.meta.taxes[i]));return n.children.Selection.data.valueArrayObj!=undefined&&n.children.Selection.data.valueArrayObj.length>0?t.forEach(n.children,function(n){n.data.valueArray=t.toJson(n.data.valueArrayObj)}):t.forEach(n.children,function(n){n.data.valueArray=null}),o=this,t.forEach(n.children,function(t,i){t.data.fieldMetaID=n.meta.children[i].id;t.data.valueArrayObj.length>0&&(r.push(t.data),r=r.concat(o.savingFieldInternal(t)))}),r},getBuilderDefaultLabelTemplate:function(){return this.getBuilderDefaultSpanTemplate()},getFieldSummaryModel:function(n,i){this._options.apiClient.registerClass("admin.api.form.getFieldParentChildChartSummary");var r=this._options.apiClient.getService();return r.admin.api.form.getFieldParentChildChartSummary(n).then(function(n){var o=n.data,f=JSON.parse(i.meta.setting),k,c,a,l,s,u,p,h,e,r;if(t.forEach(o.viModel.items,function(n){n.responses=(n.count*1/o.viModel.answered).toFixed(4)}),f&&f.customSource){var v=f.displayPriceValue,w=o.viModel.items.slice(),b=[];for(r=0;r<w.length;r++)if(k=w[r],c=k.children,c.length!=0){var y=[],d=[],g=[];for(e=0;e<c.length;e++){a=JSON.parse(c[e].value);switch(c[e].label){case"Selection":y=a;break;case"Price":d=a;break;case"Quantity":g=a}}for(l=$.map(y,function(n,t){return{label:y[t],price:d[t],quantity:g[t]||0}}),s=0;s<l.length;s++)b.push({answer:l[s].label,count:l[s].quantity||1,price:l[s].price||0})}for(u=Enumerable.From(b).GroupBy("$.answer + '|' +$.price",null,function(n,t){return{answer:n.split("|")[0],price:parseFloat(n.split("|")[1]),count:t.Sum("$.count")}}).ToArray(),o.viModel.items=[],r=0;r<f.customSource.length;r++){if(p=!1,h=$.grep(u,function(n){return n.answer==f.customSource[r].label&&n.price==f.customSource[r].price}),h.length)for(p=!0,o.viModel.items.push({answer:f.customSource[r].label+(v?" ($"+(f.customSource[r].price||0).toFixed(2)+")":""),count:h[0].count,price:f.customSource[r].price||0,responses:h[0].count*1/o.viModel.answered}),e=0;e<u.length;e++)u[e].answer==h[0].answer&&u[e].price==h[0].price&&u.splice(e,1);p||o.viModel.items.push({answer:f.customSource[r].label+(v?" ($"+(f.customSource[r].price||0).toFixed(2)+")":""),count:0,price:f.customSource[r].price||0,responses:0})}if(u.length>0)for(r=0;r<u.length;r++)o.viModel.items.push({answer:u[r].answer+(v?" ($"+(u[r].price||0).toFixed(2)+")":""),count:u[r].count,price:u[r].price||0,responses:u[r].count*1/o.viModel.answered})}return o})}}),h.defineFieldType("PaymentDonation",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Donation Payment",settingObj:{isNonTaxableItem:!1,quantityDecimalFormat:"^[0-9]+([.][0-9]{0,2})?$"},children:{Price:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Price",fieldTypeId:5,display:!0,order:1},Tax:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Tax",fieldTypeId:5,display:!0,order:2}}})},initAdditionalErrorMesssages:function(n){n.meta.settingObj.rangeErrorMessage?(n.meta.errorMessages.min=n.meta.settingObj.rangeErrorMessage,n.meta.errorMessages.max=n.meta.settingObj.rangeErrorMessage):(n.meta.errorMessages.min="This field should not be smaller than {{field.meta.settingObj.rangeMin}}.",n.meta.errorMessages.max="This field should not be larger than {{field.meta.settingObj.rangeMax}}.");n.meta.errorMessages.pattern="This is a number with a maximum of 2 decimal places."},initAdditionalFieldData:function(n){n.getCalculatableItems=function(){var n=this;return[{label:n.meta.label,price:n.children.Price.data&&n.children.Price.data.valueFloat||0,showQuantity:!1,quantity:1,nonTax:n.meta.settingObj.isNonTaxableItem,subTotal:n.children.Price.data&&n.children.Price.data.valueFloat||0}]};n.calculateTax=function(n,i,r){var u=this,f=u.children.Price.data&&u.children.Price.data.valueFloat||u.meta.settingObj.price,e=u.children.Quantity&&u.children.Quantity.data&&u.children.Quantity.data.valueFloat?u.children.Quantity.data.valueFloat:u.meta.settingObj.enableQuantityField?0:1,o=u.meta.settingObj.enableQuantityField?f*e:f,s=u.meta.settingObj.isNonTaxableItem,h=s||i.value==FORMFIELDAMOUNTTYPE.FIXEDAMOUNT?0:o*n/100;t.merge(u.children,{Tax:{data:{valueFloat:h},meta:{label:r.text}}});u.meta.children.Tax.label=r.text};n.checkData=function(n){var t=[];return(n.children.Price.data||n.children.Price.data.valueFloat)&&n.children.Price.data.valueFloat!=0||t.push(n.children.Price.meta.id),n.children.Tax.data.valueFloat&&n.children.Tax.data.valueFloat!=0||t.push(n.children.Tax.meta.id),t};n.registerWatch=function(n,t){var i=this;n.$watch(function(){return i.children.Price.data&&i.children.Price.data.valueFloat},t)}},getBuilderDefaultLabelTemplate:function(){return this.getBuilderDefaultSpanTemplate()},savingFieldMetaInternal:function(n){n.meta.children.Tax&&(n.meta.children.Tax.display=!n.meta.settingObj.isNonTaxableItem)},getFieldSummaryModel:function(n,t){this._options.apiClient.registerClass("admin.api.form.getFieldDefaultSummary");var i=this._options.apiClient.getService();return i.admin.api.form.getFieldDefaultSummary(n).then(function(n){for(var u,f,r=n.data.viModel.items,i=0;i<r.length;i++)r[i].children&&r[i].children.length!=0&&(u=Enumerable.From(r[i].children).FirstOrDefault({value:""},"$.metaID == "+t.meta.children.Price.id).value,f=u*1,r[i].answer=f.toFixed(2));return n.data})}}),h.defineFieldType("PaymentTotal",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Total Payment",settingObj:{additionalFeesType:FORMFIELDFEETYPE.TAX,additionalFeesAmount:0,additionalFeesAmountType:FORMFIELDAMOUNTTYPE.PERCENTAGE,summaryText:""},children:{SubTotal:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Sub Total",fieldTypeId:5,display:!0,order:1},AdditionalFee:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Additional Fee",fieldTypeId:5,display:!0,order:2},GrandTotal:{valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE|FORMFIELDTYPEFEATURES.PAYMENT,label:"Grand Total",fieldTypeId:5,display:!0,order:3}},_additionalFeesTypeSource:[{value:FORMFIELDFEETYPE.TAX,text:"Tax"},{value:FORMFIELDFEETYPE.ADDITIONALFEE,text:"Additional Fee"}],_additionalFeesAmountTypeSource:[{value:FORMFIELDAMOUNTTYPE.PERCENTAGE,text:"% - Percent"},{value:FORMFIELDAMOUNTTYPE.FIXEDAMOUNT,text:"$"}]})},getBuilderDefaultLabelTemplate:function(){return this.getBuilderDefaultSpanTemplate()},getFieldSummaryModel:function(n){this._options.apiClient.registerClass("admin.api.form.getFieldParentChildChartSummary");var t=this._options.apiClient.getService();return n.AnswerLabel="Grand Total",t.admin.api.form.getFieldParentChildChartSummary(n).then(function(n){return n.data})}}),h.defineFieldType("GeneralNumber",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FORMFIELDVALUETYPES.FLOAT,typeFeature:FORMFIELDTYPEFEATURES.ANALYZABLE|FORMFIELDTYPEFEATURES.VALUE,label:"General Number",settingObj:{rangeMin:null,rangeMax:null,rangeErrorMessage:null,decimalPointer:null,isCommaSeparated:!1,getCommaSeparatedValue:function(n){return this.decimalPointer=this.decimalPointer==null?2:this.decimalPointer,n=parseFloat(n),this.isCommaSeparated==!1?n.toFixed(this.decimalPointer):n.toLocaleString("en-us",{minimumFractionDigits:this.decimalPointer,maximumFractionDigits:this.decimalPointer})}}})},initAdditionalErrorMesssages:function(n){n.meta.settingObj.rangeErrorMessage?(n.meta.errorMessages.min=n.meta.settingObj.rangeErrorMessage,n.meta.errorMessages.max=n.meta.settingObj.rangeErrorMessage):(n.meta.errorMessages.min="This field should not be smaller than {{field.meta.settingObj.rangeMin}}.",n.meta.errorMessages.max="This field should not be larger than {{field.meta.settingObj.rangeMax}}.");n.meta.errorMessages.pattern="This field is a decimal number."},validateField:function(n,t){var r=this.validateFieldBase(n,t),e,f;return i(n)||(e=parseFloat(n),(isNaN(e)||!n.match(/^[\\+\\-]?([0-9]*[\\.])?[0-9]+$/))&&(r.valid=!1,r.message+="Invalid "+t.uniqueName,r.message+="\n"),e&&t.setting&&(f=JSON.parse(t.setting),(e<f.rangeMin||e>f.rangeMax)&&(r.valid=!1,r.message+=f.rangeErrorMessage?f.rangeErrorMessage:t.uniqueName+" should be between "+f.rangeMin+" and "+f.rangeMax+".",r.message+="\n"),f.regex&&(r.valid=e.match(u(f.regex)),r.valid||(r.message+=f.regexErrorMessage?f.regexErrorMessage:"Invalid "+t.uniqueName+" format.",r.message+="\n")))),r}}),h}]);f.service("formFieldTypeInitializer",["$http",function(){var n=[],i=1e4,r=t.element(document.querySelector("[ng-app]")).injector().get;t.forEach(f._invokeQueue,function(t){if(t.length>=3&&t[0]=="$provide"&&t[1]=="service"&&(t[2][0].endsWith("FormFieldService")||t[2][0].endsWith("FormTypeService")))try{var u=r(t[2][0]);u.register&&(typeof u.order=="undefined"&&(u.order=i++),n.push(u))}catch(f){console.log(f)}});n=n.sort(function(n,t){return n.order<t.order?-1:n.order>t.order?1:0});t.forEach(n,function(n){n.register()})}]);$("body").on("keyup","span.instruction-text",t=>{var i=$(t.target);t.code.toLowerCase()=="tab"&&(i.poshytip({showTimeout:100,alignTo:"target"}),i.mouseenter());t.code.toLowerCase()=="escape"&&i.mouseleave();t.code.toLowerCase()=="enter"&&(i.poshytip({showTimeout:100,alignTo:"target"}),i.mouseenter());n.addEventListener("click",function r(){n.removeEventListener("click",r);i.mouseleave()})});$("body").on("keydown","span.instruction-text",n=>{var t=$(n.target);n.code.toLowerCase()=="tab"&&t.mouseleave()})}(window,angular),function(n,t){function s(n,t,i){this._manager=n;this._field=t;this.selectedActionType=i;this.selectedActionType!=null&&(this.actionData=this.selectedActionType.createModel(this._field))}function b(n){this._enum=n;this.title=n.title;this.typeID=n.typeID}function h(n,t,i){this._manager=n;this._field=t;var r=this._manager.getAllowedExpressionTypeEnums(this._field),u=i?i._enum:r[0];this.selectedExpressionTypeIDStr=u.typeID.toString();this.allowedExpressionTypeEnums=r;this.changeExpressionType()}function k(n){this._enum=n}function c(n){this._manager=n}function d(){var n=this;this._allowedFieldNames=[];t.forEach(f,function(t){n._allowedFieldNames.push(t)});this._actionTypes={};this._defaultActionType=null;this._expressionTypes={};this._expressionTypeModelOptionsList={};this._excludeExpressionTypeEnumsByFieldType={};this._init()}var p=t.module("viAppCoreComponentFormBuilderFieldTypes"),w=1e4,l=-1e4,u="(Other:)",e="Other",g={UNKNOWN:0,FILLING:1,SUBMITTING:2,SUBMITTED:3,REVIEWING:4,SIGNPENDING:16,SIGNED:31,PAYING:32,PAIED:47},f={SingleLineText:"SingleLineText",ParagraphText:"ParagraphText",Number:"Number",Email:"Email",Website:"Website",DateTime:"DateTime",SingleDropdown:"SingleDropdown",CheckBoxList:"CheckBoxList",RadioButtonList:"RadioButtonList",GeneralNumber:"GeneralNumber"},r={BranchPage:{typeID:4097,name:"BranchPage",title:"Branch Page"},SkipAnswer:{typeID:4098,name:"SkipAnswer",title:"Skip Answer"},RedirectURL:{typeID:4099,name:"RedirectURL",title:"Redirect"},EmailAlert:{typeID:8193,name:"EmailAlert",title:"Email Alert"},EmailSummary:{typeID:8194,name:"EmailSummary",title:"Email Summary"},EmailPDF:{typeID:8195,name:"EmailPDF",title:"Email PDF Attachment"},CustomScript:{typeID:8196,name:"CustomScript",title:"Run Script"}},i={Constant:{typeID:0,title:"Constant",allowCarryOverValues:!1},Not:{typeID:2,title:"Not",allowCarryOverValues:!1},And:{typeID:3,title:"And",allowCarryOverValues:!1},Or:{typeID:4,title:"Or",allowCarryOverValues:!1},Equals:{typeID:65537,title:"Is Equal to"},NotEqual:{typeID:65538,title:"Does NOT Equal"},HasAnyValue:{typeID:65539,title:"Has Any Value",allowCarryOverValues:!1,needValue:!1},Empty:{typeID:65540,title:"Is Blank",allowCarryOverValues:!1,needValue:!1},NumberSmallerThan:{typeID:4097,title:"Is Less Than"},NumberSmallerAndEqualThan:{typeID:4098,title:"Is Less Than or Equal To"},NumberLargerThan:{typeID:4099,title:"Is Greater Than"},NumberLargerAndEqualThan:{typeID:4100,title:"Is Greater Than or Equal To"},StringContains:{typeID:8193,title:"Contains"},StringNotContains:{typeID:8194,title:"Does NOT Contain"},HTMLContains:{typeID:12289,title:"Contains"},HTMLNotContains:{typeID:12290,title:"Does NOT Contain"},DateTimeIsBefore:{typeID:16385,title:"Is Before"},DateTimeIsAfter:{typeID:16386,title:"Is After"},FloatSmallerThan:{typeID:24577,title:"Is Less Than"},FloatSmallerAndEqualThan:{typeID:24578,title:"Is Less Than or Equal To"},FloatLargerThan:{typeID:24579,title:"Is Greater Than"},FloatLargerAndEqualThan:{typeID:24580,title:"Is Greater Than or Equal To"},ArrayIncludes:{typeID:36865,title:"Contains"},ArrayNotIncludes:{typeID:36866,title:"Does NOT Contain"}},o,a,v,y;s.prototype={_field:null,selectedActionType:null,actionData:null,toDescription:function(){return this.actionData!=null?this.actionData.toDescription():""},savingData:function(){return this.actionData.savingData()},initDataFromDB:function(n){this.actionData.initDataFromDB(n)},copyDataFrom:function(n){this._field=n._field;this.selectedActionType=n.selectedActionType;this.actionData=t.copy(n.actionData);this.actionData.resetInfoAfterCopied(n.actionData)}};b.prototype={title:null,typeID:null,execute:function(){},createModel:function(){}};h.prototype={_manager:null,_field:null,selectedExpressionType:null,selectedExpressionTypeIDStr:null,expressionData:{},allowedExpressionTypeEnums:[],changeExpressionType:function(n){var i,r;n=n||this.selectedExpressionTypeIDStr;this.selectedExpressionType=this._manager.getExpressionTypeByID(parseInt(n));i={};typeof this.expressionData.getCarryOverValues!="undefined"&&(i=this.expressionData.getCarryOverValues());this.expressionData=this.selectedExpressionType.createModel(this._field,i);r=this._manager.getExpressionTypeModelOptions(this._field.type.data.name,this.selectedExpressionType._enum);t.extend(this.expressionData,r)},initDataFromDB:function(n){this.expressionData.initDataFromDB(n)},copyDataFrom:function(n){this.expressionData=t.copy(n.expressionData);this._field=n._field;this.allowedExpressionTypeEnums=n.allowedExpressionTypeEnums;this.selectedExpressionTypeIDStr=n.selectedExpressionTypeIDStr;this.selectedExpressionType=n.selectedExpressionType;this.expressionData=t.copy(n.expressionData);this.expressionData.resetInfoAfterCopied(n.expressionData)},toDescription:function(){return this.expressionData!=null?this.expressionData.toDescription():""},savingData:function(){return this.expressionData.savingData()}};k.prototype={execute:function(){},createModel:function(n,r){var u=this,f={settingTemplate:'<input class="form-cl-item-line" ng-if="expression.displayValue()" type="text" ng-model="expression.value"/>',__t:u,_field:n,id:0,formID:n.meta.formID,fieldMeta:n.meta,type:u._enum.typeID.toString(),value:"",left:null,right:null,getWatchableObject:function(){var n=this;return{type:n.type,value:n.value,left:n.left,right:n.right,_enum:n._enum}},getCarryOverValues:function(){var n=this;return{right:n.right,value:n.value,id:n.id}},displayValue:function(){return u._enum.needValue!=!1},toDescription:function(){return"the answer "+(u._enum.title||"").toLocaleLowerCase()+(this.displayValue()?" "+(this.valueDesc()||"____"):"")},valueDesc:function(){return this.value},toValue:function(){},fromValue:function(){},initDataFromDB:function(n){this.id=n.id;this.formID=n.formID;this.type=n.type.toString();this.displayValue()&&n!=null&&(this.value=n.right!=null?n.right.leftValue:null,this.fromValue());this.left=n.left;this.right=n.right},resetInfoAfterCopied:function(){this.id=0;this.right&&(this.right.resetInfoAfterCopied?this.right.resetInfoAfterCopied():this.right.id=0);this.left&&(this.left.resetInfoAfterCopied?this.left.resetInfoAfterCopied():this.left.id=0)},savingData:function(){var r=null,u;return this.toValue(),this.displayValue()&&(u=n.meta.valueType,r=t.extend({id:0,formID:this.formID},this.right||{},{leftFieldMetaID:null,leftValue:this.value,type:i.Constant.typeID.toString(),returnType:u,left:null,right:null})),{id:this.id,formID:this.formID,leftFieldMetaID:this.fieldMeta.id,leftValue:null,type:this.type,returnType:FORMFIELDVALUETYPES.BIT,left:null,right:r}}};return u._enum.allowCarryOverValues!=!1&&(f=t.extend(f,r)),f}};c.prototype={_manager:null,_expressionType:null,_field:null,actionEditor:{toDescription:function(){}},expressionEditor:{toDescription:function(){}},id:0,formID:0,field:null,fieldMetaID:null,order:-1,type:{Sequential:1,Parallel:2}.Sequential,toDescription:function(){return"If "+this.expressionEditor.toDescription()+", then "+this.actionEditor.toDescription()+"."},copyDataFrom:function(n){this._field=n._field;this.formID=this._field.meta.formID;this.fieldMetaID=this._field.meta.id;this.order=-1;this.actionEditor=new s(this._manager,this._field);this.actionEditor.copyDataFrom(n.actionEditor);this.expressionEditor=new h(this._manager,this._field);this.expressionEditor.copyDataFrom(n.expressionEditor)},initDataForNew:function(n,t){this._field=n;this.formID=this._field.meta.formID;this.fieldMetaID=this._field.meta.id;this.order=-1;this.actionEditor=new s(this._manager,this._field,t);this.expressionEditor=new h(this._manager,this._field)},initDataFromDB:function(n,t){var i,r;this._field=n;this.id=t.id;this.formID=t.formID;this.fieldMetaID=t.fieldMetaID;this.order=t.order;this.type=t.type;i=this._manager.getActionTypeByID(t.action.actionType);this.actionEditor=new s(this._manager,this._field,i);this.actionEditor.initDataFromDB(t.action);r=this._manager.getExpressionTypeByID(t.expression.type);this.expressionEditor=new h(this._manager,this._field,r);this.expressionEditor.initDataFromDB(t.expression)},savingData:function(){return{id:this.id,formID:this.formID,fieldMetaID:this.fieldMetaID,order:this.order,type:this.type,action:this.actionEditor.savingData(),expression:this.expressionEditor.savingData()}}};d.prototype={_init:function(){this.registerDefaultActionTypes();this._defaultActionType=this._actionTypes[r.EmailAlert.typeID];this.registerDefaultExpressionTypes()},convertConditionalLogicDataFromDB:function(n,i){var u=this,r=[];return t.forEach(i,function(t){var i=new c(u);i.initDataFromDB(n,t);r.push(i)}),r},getActionTypes:function(){return this._actionTypes},getActionTypeByID:function(n){return this._actionTypes[n]},registerActionType:function(n,i){return this._actionTypes[n.typeID]=t.extend(new b(n),i||{}),this._actionTypes[n.typeID]},registerDefaultActionTypes:function(){var n=function(){this.id=0;this.branchPage=null;this.redirectUrl=null;this.skipAnswers=[]},u,i,f,e,o,s,h,c;n.prototype={resetInfoAfterCopied:function(){this.id=0;this.nextAction&&(this.nextAction.resetInfoAfterCopied?this.nextAction.resetInfoAfterCopied():this.nextAction.id=0);this.parentAction&&(this.parentAction.resetInfoAfterCopied?this.parentAction.resetInfoAfterCopied():this.parentAction.id=0)},initDataFromDB:function(n){this.id=n.id;this.formID=n.formID;this.nextAction=null;this.parentAction=null;this.settingObj=t.fromJson(n.setting);this.branchPage=n.branchPage||{};this.redirectUrl=n.redirectUrl||{};n.skipAnswers&&n.skipAnswers.length>0&&(this.skipAnswers=n.skipAnswers||{})},savingData:function(){return{id:this.id,formID:this.formID,setting:t.toJson(this.settingObj),actionType:this.__t.typeID,branchPage:this.branchPage||{},redirectUrl:this.redirectUrl||{},skipAnswers:this.skipAnswers||{}}},getWatchableObject:function(){return{settingObj:this.settingObj,actionType:this.__t.typeID,branchPage:this.branchPage,redirectUrl:this.redirectUrl,skipAnswers:this.skipAnswers}}};u='<span class="form-cl-item-line">then {{action.__t.settingDescription}}:<\/span><input class="form-cl-item-line" name="actionSettingObjEmails[{{actionIndex}}]" type="text" vi-multiple-emails ng-model="action.settingObj.emails" /><div class="errors-message" ng-if="form.$submitted"><span ng-show="form.actionSettingObjEmails[{{actionIndex}}].$error.multipleEmails">This field contains invalid email address.<\/span><\/div>';i={createModel:function(i){var r=this,f=new n,e={settingTemplate:u,formID:i.meta.formID,__t:r,settingObj:{emails:""},toDescription:function(){return this.__t.displayDescription+" "+(this.settingObj.emails||"____")}};return t.extend(f,e)}};this.registerActionType(r.EmailAlert,t.extend(i,{settingDescription:"send email alert to",displayDescription:"an alert email will be sent to"}));this.registerActionType(r.EmailSummary,t.extend(i,{settingDescription:"send summary email to",displayDescription:"a summary email will be sent to"}));this.registerActionType(r.EmailPDF,t.extend(i,{settingDescription:"send email with PDF to",displayDescription:"an email with PDF will be sent to"}));f='<span class="form-cl-item-line">Then {{action.__t.settingDescription}}:<\/span><div class="skip-answer-panel" ng-repeat="skipAnswer in action.skipAnswers | orderBy:\'order\' "><select class="skip-answer-select" name="action.skipAnswers[$index]" vi-unique-item="\'fieldUniqueName\'" vi-source-items="action.skipAnswers" ng-model="action.skipAnswers[$index]" ng-options="item.displayTitle for item in action.getFieldList(action.skipAnswers, $index) track by item.fieldUniqueName" > <\/select><input type="hidden" ng-model="skipAnswer.order" ng-value="{{$index}}"/><a class="addlink" ng-click="action.addSkipAnswer($index)" href="javascript:void(0)" title="Add Skip Answer"><\/a><a ng-if="action.skipAnswers.length>1" class="deletelink" ng-click="action.deleteSkipAnswer(skipAnswer, $index)" href="javascript:void(0)" title="Delete Skip Answer"><\/a><\/div>';e={createModel:function(i){var u=this,e=new n,o={__t:u,settingTemplate:f,formID:i.meta.formID,settingObj:{},deleteSkipAnswer:function(n,t){this.skipAnswers.splice(t,1)},addSkipAnswer:function(n){this.skipAnswers.splice(n+1,0,[{fieldUniqueName:"",order:0,fieldMetaID:null}])},reorderSkipAnswers:function(){t.forEach(this.skipAnswers,function(n,t){n.order=t})},toDescription:function(){var n=this,u="",r="";return n.skipAnswers&&(t.forEach(n.skipAnswers,function(n){n!=null&&((typeof n.displayTitle=="undefined"||n.displayTitle=="")&&n.fieldUniqueName&&t.forEach(i.page.fields,function(t){n.fieldUniqueName==t.meta.uniqueName&&(n.displayTitle=t.meta.label)}),r&&(r+=", "),typeof n.displayTitle!="undefined"&&(r+=n.displayTitle))}),n.skipAnswers.length>1&&(u="s")),n.__t.displayDescription+u+" "+(r||"____")},getFieldList:function(n,r){var f=this,u=[];return t.forEach(i.page.fields,function(t){var f=Enumerable.From(n).Where("c => c.fieldMetaID == "+t.meta.id).Any(),e=n[r].fieldMetaID==t.meta.id;(!f||e)&&t.meta.order>i.meta.order&&u.push({fieldMetaID:t.meta.id,fieldUniqueName:t.meta.uniqueName,displayTitle:t.meta.label})}),u}},r=t.extend(e,o);return r.skipAnswers&&r.skipAnswers.length!=0||(r.skipAnswers=[{fieldUniqueName:"",order:0,fieldMetaID:null}]),r}};this.registerActionType(r.SkipAnswer,t.extend(e,{settingDescription:"skip field(s)",displayDescription:"skip field"}));o='<span class="form-cl-item-line">Then {{action.__t.settingDescription + ((action.branchPage!=null && action.branchPage.pageID!=-1)?" page":"")}}:<\/span><select ng-model="action.branchPage" ng-options="item.displayTitle for item in action.getPageList() track by item.pageID" > <\/select>';s={createModel:function(i){var r=this,u=new n,f={settingTemplate:o,formID:i.meta.formID,__t:r,settingObj:{},getPageList:function(){var n=[];return t.forEach(i.page.form.pages,function(t){t.order>i.page.order+1&&n.push({pageID:t.id,pageUniqueTitle:t.title,displayTitle:"Page "+(t.order+1)+": "+t.title})}),n.push({pageID:-1,pageUniqueTitle:"___Submit",displayTitle:"Submit"}),n},toDescription:function(){var n=this,r=null;return n.branchPage!=null&&(typeof n.branchPage.displayTitle!=undefined&&n.branchPage.displayTitle&&n.branchPage.displayTitle!=""||(n.branchPage.pageID>0?t.forEach(i.page.form.pages,function(t){t.id==n.branchPage.pageID&&(n.branchPage.displayTitle="Page "+(t.order+1)+": "+t.title+" when clicking to the next page")}):n.branchPage.pageID==-1&&(n.branchPage.displayTitle="Submit")),r=n.branchPage.displayTitle),n.__t.displayDescription+" "+(r||"____ when clicking to the next page")}};return t.extend(u,f)}};this.registerActionType(r.BranchPage,t.extend(s,{settingDescription:"jump to",displayDescription:"jump to"}));h='<span class="form-cl-item-line">Then {{action.__t.settingDescription}}:<\/span><input type="text" class="form-cl-item-line" name="conditionalLogics[{{actionIndex}}]" required vi-redirect-url="{appendToBody:false, allowScroll:false}" current-value="{ value: \'{{action.redirectUrl.url}}\' }" ng-model="action.redirectUrl.url"/><div class="errors-message" ng-show="form.$submitted || form.conditionalLogics[{{actionIndex}}].$touched"><span ng-show="form.conditionalLogics[{{actionIndex}}].$error.validateRedirectUrl">The url format is invalid.<\/span><\/div>';c={createModel:function(i){var r=this,u=new n,f={settingTemplate:h,formID:i.meta.formID,__t:r,settingObj:{},toDescription:function(){var n=this,t=null;return n.redirectUrl!=null&&(t=n.redirectUrl.url+" when clicking to submit"),n.__t.displayDescription+" "+(t||"___ when clicking to submit")}};return t.extend(u,f)}};this.registerActionType(r.RedirectURL,t.extend(c,{settingDescription:"redirect to",displayDescription:"redirect to"}))},getAllowedExpressionTypeEnums:function(n){var s=this,u=n.meta.valueType,f=4096*u,h=4096*(u+1),r=[],c=[],e=[],o=s._excludeExpressionTypeEnumsByFieldType[n.type.data.name]||[];return t.forEach(i,function(n){n.typeID>0&&(n.typeID<4096?c.push(n):(n.typeID&65536)==65536?e.push(n):n.typeID<h&&(n.typeID&f)==f&&o.indexOf(n)<0&&r.push(n))}),t.forEach(e,function(n){o.indexOf(n)<0&&r.push(n)}),r},getExpressionType:function(n){return this.getExpressionTypeByID(n.typeID)},getExpressionTypeByID:function(n){return this._expressionTypes[n]},registerExpressionType:function(n,i){return this._expressionTypes[n.typeID]=t.extend(new k(n),i||{}),this._expressionTypes[n.typeID]},registerExpressionTypeModelOptions:function(n,t,i){this._expressionTypeModelOptionsList[n]=this._expressionTypeModelOptionsList[n]||{};this._expressionTypeModelOptionsList[n][t.typeID]=i},excludeExpressionTypeEnums:function(n,t){this._excludeExpressionTypeEnumsByFieldType[n]=t},getExpressionTypeModelOptions:function(n,t){var i=this._expressionTypeModelOptionsList[n];return i?i[t.typeID]:{}},registerDefaultExpressionTypes:function(){var n=this,c,s,l,h,a,r,o;t.forEach(i,function(t){n.registerExpressionType(t)});c='<select ng-if="expression._field.meta.settingObj.sourceTypeID == \'0\'" class="form-cl-item-line" ng-model="expression.value"><option ng-repeat="exprItem in expression._field.meta.settingObj.customSource" value="{{exprItem.value}}">{{exprItem.text}}<\/option><option ng-if="expression._field.meta.allowOther" value="'+u+'">'+e+'<\/option><\/select><select ng-if="expression._field.meta.settingObj.sourceTypeID == \'1\'" class="form-cl-item-line" ng-model="expression.value"><option ng-repeat="exprItem in expression._field.meta._dataSource | filter:{Country:\'US\'}" value="{{exprItem.Name}}">{{exprItem.Name}}<\/option><option ng-if="expression._field.meta.allowOther" value="'+u+'">'+e+'<\/option><\/select><select ng-if="expression._field.meta.settingObj.sourceTypeID == \'2\'" class="form-cl-item-line" ng-model="expression.value"><option ng-repeat="exprItem in expression._field.meta._dataSource | filter:{Country:\'CA\'}" value="{{exprItem.Name}}">{{exprItem.Name}}<\/option><option ng-if="expression._field.meta.allowOther" value="'+u+'">'+e+"<\/option><\/select>";s={settingTemplate:c,valueDesc:function(){var n=this.value||"";return n===u?e:n.replace("cms6ExpressionAllowOtherValue",e)},toValue:function(){this.value=(this.value||"").replace(u,"cms6ExpressionAllowOtherValue")},fromValue:function(){this.value=(this.value||"").replace("cms6ExpressionAllowOtherValue",u)}};n.registerExpressionTypeModelOptions(f.SingleDropdown,i.Equals,s);n.registerExpressionTypeModelOptions(f.SingleDropdown,i.NotEqual,s);n.excludeExpressionTypeEnums(f.SingleDropdown,[i.StringContains,i.StringNotContains]);l='<select class="form-cl-item-line" ng-model="expression.value"><option ng-repeat="exprItem in expression._field.meta.settingObj.customSource" value="{{exprItem.value}}">{{exprItem.text}}<\/option><option ng-if="expression._field.meta.allowOther" value="'+u+'">'+e+"<\/option><\/select>";h={settingTemplate:l,valueDesc:function(){var n=this.value||"";return n===u?e:n.replace("cms6ExpressionAllowOtherValue",e)},toValue:function(){this.value=(this.value||"").replace(u,"cms6ExpressionAllowOtherValue")},fromValue:function(){this.value=(this.value||"").replace("cms6ExpressionAllowOtherValue",u)}};n.registerExpressionTypeModelOptions(f.RadioButtonList,i.Equals,h);n.registerExpressionTypeModelOptions(f.RadioButtonList,i.NotEqual,h);n.excludeExpressionTypeEnums(f.RadioButtonList,[i.StringContains,i.StringNotContains]);a='<div class="form-cl-item-line"><fieldset class="checkboxlist-area" ng-init="expression.setWatch(this)"><div class="checkbox-item" ng-repeat="item in expression._field.meta.settingObj.customSource" sort-data="{{$index}}"><input type="checkbox" id="{{expression._field.meta.uniqueName}}_cl_{{actionIndex}}_{{$index}}" name="{{expression._field.meta.uniqueName}}_cl_{{actionIndex}}" ng-checked="expression.isChecked(item.value)" ng-click="expression.toggleOption(item.value, $event)"/><label for="{{expression._field.meta.uniqueName}}_cl_{{actionIndex}}_{{$index}}">{{item.text}}<\/label><\/div><div class="checkbox-item" ng-if="expression._field.meta.allowOther" sort-data="{{$index}}"><input type="checkbox" id="{{expression._field.meta.uniqueName}}_cl_AllowOther" name="{{expression._field.meta.uniqueName}}_cl_AllowOther" ng-checked="expression.isChecked(\''+u+"')\" ng-change=\"expression.toggleOption('"+u+'\')" ng-model="expression.allowOtherChecked"/><label for="{{expression._field.meta.uniqueName}}_cl_AllowOther">'+e+'<\/label><\/div><\/fieldset><input ng-if="expression._field.meta.settingObj.allowSelectAll" type="checkbox" id="{{expression._field.meta.uniqueName}}{{expression._field.meta.id}}_cl_allowSelectAll" name="{{expression._field.meta.uniqueName}}_cl_allowSelectAll" ng-click="expression.checkAllOptions($event)" ng-model="expression.selectAll"/><label ng-if="expression._field.meta.settingObj.allowSelectAll" class="select-all-label" for="{{expression._field.meta.uniqueName}}{{expression._field.meta.id}}_cl_allowSelectAll" >Select All<\/label><input id="hidden_cl_{{expression._field.meta.uniqueName}}" name="hidden_cl_{{expression._field.meta.uniqueName}}" type="hidden" ng-model-options="{ getterSetter: true }" ng-model="expression._field.meta.checkedValue"/><\/div>';r={settingTemplate:a,valueArrayObj:[],isChecked:function(n){var t=this,r=n,f=t.valueArrayObj.indexOf(r),i=f>=0;return n==u&&(t.allowOtherChecked=i||t.selectAll),i},valueDesc:function(){return(this.value||"").replace("cms6ExpressionAllowOtherValue",e)},toValue:function(){this.value=t.toJson(this.valueArrayObj).replace(u,"cms6ExpressionAllowOtherValue")},fromValue:function(){this.valueArrayObj=t.fromJson((this.value||"").replace("cms6ExpressionAllowOtherValue",u))},toggleOption:function(n,t){var i=this,f=n,r=i.valueArrayObj.indexOf(f);(n==u?i.allowOtherChecked:t.target.checked)?r<0&&i.valueArrayObj.push(f):r>=0&&i.valueArrayObj.splice(r,1);i.validateValueArray();i.toValue()},checkAllOptions:function(n){var i=this;i.valueArrayObj=[];n.target.checked==!0&&(t.forEach(i._field.meta.settingObj.customSource,function(n){i.valueArrayObj.push(n.value)}),i._field.meta.allowOther&&(i.allowOtherChecked=!0));i.toValue()},setWatch:function(n){var i=n,t=this;i.$watch(function(){return t._field.meta.settingObj.customSource},function(){t.validateValueArray();t.toValue()},!0)},validateValueArray:function(){var n=this,i=[];t.forEach(n.valueArrayObj,function(r){var f=!1;t.forEach(n._field.meta.settingObj.customSource,function(n){if(r==n.value)return f=!0,!0});n._field.meta.allowOther&&r===u&&(f=!0);f==!0&&i.push(r)});n.valueArrayObj=i}};n.registerExpressionTypeModelOptions(f.CheckBoxList,i.Equals,r);n.registerExpressionTypeModelOptions(f.CheckBoxList,i.NotEqual,r);n.registerExpressionTypeModelOptions(f.CheckBoxList,i.ArrayIncludes,r);n.registerExpressionTypeModelOptions(f.CheckBoxList,i.ArrayNotIncludes,r);o='<input class="form-cl-item-line" vi-datetimepicker ng-if="expression.displayValue()" type="text" ng-model="expression.value"/>';n.registerExpressionTypeModelOptions(f.DateTime,i.Equals,{settingTemplate:o});n.registerExpressionTypeModelOptions(f.DateTime,i.NotEqual,{settingTemplate:o});n.registerExpressionTypeModelOptions(f.DateTime,i.DateTimeIsBefore,{settingTemplate:o});n.registerExpressionTypeModelOptions(f.DateTime,i.DateTimeIsAfter,{settingTemplate:o})},getAllowedFieldNames:function(){return this._allowedFieldNames},getPageMinMaxOrdersForDragDrop:function(n){var u=l,i=w,f={};return t.forEach(n.form.pages,function(n){f[n.title]=n.order}),t.forEach(n.form.pages,function(e){(e.order<n.order||e.id==n.id)&&t.forEach(e.fields,function(o){o.conditionalLogicObjs!=null&&t.forEach(o.conditionalLogicObjs,function(t){var o,h,s;if(t.actionEditor!=null&&t.actionEditor.actionData.__t.typeID==r.BranchPage.typeID&&t.actionEditor.actionData.branchPage!=null){if(o=t.actionEditor.actionData.branchPage,o==null)return;h=o.pageID;s=o.pageUniqueTitle;e.id==n.id?h==-1?i=n.order:s!=n.title&&(i=Math.min(i,f[s]-1)):h==-1||s==n.title&&(u=Math.max(u,e.order))}})})}),{min:u,max:i}},getFieldMetaMinMaxOrdersForDragDrop:function(n,i){var u=l,f=w,e={};return t.forEach(i.fields,function(n){e[n.meta.uniqueName]=n.meta.order}),t.forEach(n.page.fields,function(n){e[n.meta.uniqueName]=n.meta.order}),t.forEach(n.page.fields,function(o){(o.meta.order<n.meta.order||o.meta.id==n.meta.id)&&o.conditionalLogicObjs!=null&&t.forEach(o.conditionalLogicObjs,function(s){s.actionEditor!=null&&s.actionEditor.actionData.__t.typeID==r.SkipAnswer.typeID&&s.actionEditor.actionData.skipAnswers!=null&&t.forEach(s.actionEditor.actionData.skipAnswers,function(t){if(t!=null&&typeof e[t.fieldUniqueName]!="undefined"){var r=e[t.fieldUniqueName];i.id==n.page.id?o.meta.id==n.meta.id?f=Math.min(f,r-1):t.fieldUniqueName==n.meta.uniqueName&&(u=Math.max(u,o.meta.order)):(o.meta.id==n.meta.id||t.fieldUniqueName==n.meta.uniqueName)&&(u=f=l)}})})}),{min:u,max:f}}};p.service("conditionalLogicFormTypeService",["$http","$q","formFieldTypeManager",function(n,i,r){return{order:100,register:function(){t.extend(r,{conditionalLogicManager:new d,getFieldSettingConditionalLogicTemplate:function(){return this._options.fieldOptions.relativeTemplatePath+"FieldSettingConditionalLogicSection.tpl?t="+this._seed.getMilliseconds()}});t.forEach(r.fieldTypeDataList,function(n){r.conditionalLogicManager.getAllowedFieldNames().indexOf(n.name)>=0&&t.extend(n,{allowConditionalLogic:!0,conditionalLogicActionTypes:r.conditionalLogicManager.getActionTypes()})});t.forEach(r._items,function(n,i){r.conditionalLogicManager.getAllowedFieldNames().indexOf(i)>=0&&t.extend(n.prototype,{newConditionalLogic:function(n,t){var i=new c(r.conditionalLogicManager);return i.initDataForNew(n,t),i},copyConditionalLogic:function(n,t){var i=new c(r.conditionalLogicManager);return i.copyDataFrom(t),i}})});var n=r.initField;r.initField=function(t){var i=t.conditionalLogics;t.conditionalLogicObjs=r.conditionalLogicManager.convertConditionalLogicDataFromDB(t,i);n.call(r,t)}}}}]);o=function(n,t){this._valueType=n;this._value=this._chanageType(t,n)};o.prototype={_chanageType:function(n,i){if(n==null)return null;if(typeof n=="object")return n;if(typeof n=="string"){var r=n.toString();switch(i){case FORMFIELDVALUETYPES.NUMBER:return parseInt(r);case FORMFIELDVALUETYPES.STRING:return r;case FORMFIELDVALUETYPES.HTML:return r;case FORMFIELDVALUETYPES.DATETIME:return Date.parse(r);case FORMFIELDVALUETYPES.TIME:return Date.parse("2001-01-01 "+r);case FORMFIELDVALUETYPES.BIT:return r.toLocaleLowerCase()=="false";case FORMFIELDVALUETYPES.DICT:return t.fromJson(r);case FORMFIELDVALUETYPES.ARRAY:return t.fromJson(r);case FORMFIELDVALUETYPES.FLOAT:return parseFloat(r);default:case FORMFIELDVALUETYPES.NONE:return n.toString()}}},hasValueType:function(n){return this._valueType==n},equals:function(n){var i=this,u,f,r;if(n==null)return!1;if(typeof n=="object"){if(n._valueType==conditionalExpressionValueConstants.ANY._valueType&&n._value==conditionalExpressionValueConstants.ANY._value&&i._value!=null&&i._value!="")return!0;if(n._valueType==conditionalExpressionValueConstants.EMPTY._valueType&&n._value==conditionalExpressionValueConstants.EMPTY._value){if(i._value==null||i._value==""||i._value.toString()=="NULL"&&i._valueType==FORMFIELDVALUETYPES.NONE)return!0;if(i._valueType==FORMFIELDVALUETYPES.ARRAY)return i._value==null||i._value.length==0;if(i._valueType==FORMFIELDVALUETYPES.STRING)return i._value==null||i._value==""}return n._valueType==FORMFIELDVALUETYPES.NONE?!1:i._value==null?!1:i._valueType==n._valueType?i._valueType==FORMFIELDVALUETYPES.ARRAY?i._value==null||n._value==null?!1:(u=i._value,f=n._value,u.length!=f.length)?!1:(r=!0,t.forEach(u,function(n){var i=!1;t.forEach(f,function(t){if(n==t){i=!0;return}});r=r&&i}),r):i._value==n._value:!1}return!1}};conditionalExpressionValueConstants={NULL:new o(FORMFIELDVALUETYPES.NONE,"NULL"),ANY:new o(FORMFIELDVALUETYPES.NONE,"ANY"),EMPTY:new o(FORMFIELDVALUETYPES.NONE,"EMPTY"),TRUE:new o(FORMFIELDVALUETYPES.BIT,!0),FALSE:new o(FORMFIELDVALUETYPES.BIT,!1)};a=function(){};a.prototype={conditionalExpression:null,allConditionalExpressionsOfTheEntry:[],allFieldsOfTheEntry:[],allFieldMetasOfTheEntry:[]};v=function(){};v.prototype={calculateLeft:function(n){var l=this,r,u,f,h,e,s,c;if(n.conditionalExpression.leftFieldMetaID){if(r=null,t.forEach(n.allFieldMetasOfTheEntry,function(t){if(t.id==n.conditionalExpression.leftFieldMetaID){r=t;return}}),u=null,r!=null)if(f=[],t.forEach(n.allFieldMetasOfTheEntry,function(n){n.parentMetaID==r.id&&f.push(n)}),f.length>0)h=null,t.forEach(n.allFieldsOfTheEntry,function(n){t.forEach(f,function(t){if(t.id==n.fieldMetaID){h.push(n);return}})}),t.forEach(h,function(n){return u=l.getFieldValue(n,r.valueType),u!=null?new o(r.valueType,u):void 0});else return e=null,t.forEach(n.allFieldsOfTheEntry,function(t){if(t.fieldMetaID==n.conditionalExpression.leftFieldMetaID){e=t;return}}),e!=null&&(u=l.getFieldValue(e,r.valueType)),new o(r.valueType,u);return conditionalExpressionValueConstants.NULL}return n.conditionalExpression.type==i.Constant.typeID?new o(n.conditionalExpression.returnType,n.conditionalExpression.leftValue):n.ConditionalExpression.left!=null&&n.ConditionalExpression.left.id!=null&&(s=null,t.forEach(n.allConditionalExpressionsOfTheEntry,function(t){if(t.id==n.conditionalExpression.left.id){s=t;return}}),s!=null)?(c=t.copy(n),c.conditionalExpression=s,this.calculate(c)):conditionalExpressionValueConstants.NULL},calculateRight:function(n){var i,r;return n.conditionalExpression.right!=null&&n.conditionalExpression.right.id!=null&&(i=null,t.forEach(n.allConditionalExpressionsOfTheEntry,function(t){if(t.id==n.conditionalExpression.right.id){i=t;return}}),i!=null)?(r=t.copy(n),r.conditionalExpression=i,this.calculate(r)):conditionalExpressionValueConstants.NULL},isTrue:function(n){return typeof n=="boolean"?n===!0:typeof n=="object"?n._valueType==FORMFIELDVALUETYPES.BIT&&n._value==!0:!1},calculate:function(n){var u=this.calculateLeft(n),r=this.calculateRight(n),c,f,e;switch(n.conditionalExpression.type){case i.Constant.typeID:return u;case i.Empty.typeID:return u.equals(conditionalExpressionValueConstants.EMPTY);case i.HasAnyValue.typeID:return u.equals(conditionalExpressionValueConstants.ANY);case i.Not.typeID:return u.equals(conditionalExpressionValueConstants.FALSE);case i.And.typeID:return u.equals(conditionalExpressionValueConstants.true)&&r.equals(conditionalExpressionValueConstants.true);case i.Or.typeID:return u.equals(conditionalExpressionValueConstants.true)||r.equals(conditionalExpressionValueConstants.true);case i.Equals.typeID:return u.equals(r);case i.NotEqual.typeID:return!u.equals(r);case i.StringContains.typeID:var o=u.hasValueType(FORMFIELDVALUETYPES.STRING)&&r.hasValueType(FORMFIELDVALUETYPES.STRING),s=(u._value||"").toString(),h=(r._value||"").toString();return o&&u._value!=null&&r._value!=null&&s.indexOf(h)>=0;case i.StringNotContains.typeID:var o=u.hasValueType(FORMFIELDVALUETYPES.STRING)&&r.hasValueType(FORMFIELDVALUETYPES.STRING),s=(u._value||"").toString(),h=(r._value||"").toString();return o&&(u._value==null||r._value==null||s.indexOf(h)<0);case i.HTMLContains.typeID:var o=u.hasValueType(FORMFIELDVALUETYPES.HTML)&&r.hasValueType(FORMFIELDVALUETYPES.HTML),s=(u._value||"").toString(),h=(r._value||"").toString();return o&&u._value!=null&&r._value!=null&&s.indexOf(h)>=0;case i.HTMLNotContains.typeID:var o=u.hasValueType(FORMFIELDVALUETYPES.HTML)&&r.hasValueType(FORMFIELDVALUETYPES.HTML),s=(u._value||"").toString(),h=(r._value||"").toString();return o&&(u._value==null||r._value==null||s.indexOf(h)<0);case i.NumberLargerAndEqualThan.typeID:return u.hasValueType(FORMFIELDVALUETYPES.NUMBER)&&r.hasValueType(FORMFIELDVALUETYPES.NUMBER)&&u._value!=null&&r._value!=null&&u._value>=r._value;case i.NumberLargerThan.typeID:return u.hasValueType(FORMFIELDVALUETYPES.NUMBER)&&r.hasValueType(FORMFIELDVALUETYPES.NUMBER)&&u._value!=null&&r._value!=null&&u._value>r._value;case i.NumberSmallerAndEqualThan.typeID:return u.hasValueType(FORMFIELDVALUETYPES.NUMBER)&&r.hasValueType(FORMFIELDVALUETYPES.NUMBER)&&u._value!=null&&r._value!=null&&u._value<=r._value;case i.NumberSmallerThan.typeID:return u.hasValueType(FORMFIELDVALUETYPES.NUMBER)&&r.hasValueType(FORMFIELDVALUETYPES.NUMBER)&&u._value!=null&&r._value!=null&&u._value<r._value;case i.DateTimeIsBefore.typeID:return u.hasValueType(FORMFIELDVALUETYPES.DATETIME)&&r.hasValueType(FORMFIELDVALUETYPES.DATETIME)&&u._value!=null&&r._value!=null&&u._value<r._value;case i.DateTimeIsAfter.typeID:return u.hasValueType(FORMFIELDVALUETYPES.DATETIME)&&r.hasValueType(FORMFIELDVALUETYPES.DATETIME)&&u._value!=null&&r._value!=null&&u._value>r._value;case i.ArrayIncludes.typeID:return u.hasValueType(FORMFIELDVALUETYPES.ARRAY)?!r.hasValueType(FORMFIELDVALUETYPES.ARRAY)&&!r.hasValueType(FORMFIELDVALUETYPES.STRING)?!1:(c=u._value||[],f=[],r.hasValueType(FORMFIELDVALUETYPES.STRING)?f.push((r._value||"").toString()):f=r._value||[],e=!0,f.length==0?e=!0:t.forEach(f,function(n){var i=!1;t.forEach(c,function(t){if(t==n){i=!0;return}});e=e&&i}),e):!1;case i.ArrayNotIncludes.typeID:return u.hasValueType(FORMFIELDVALUETYPES.ARRAY)?!r.hasValueType(FORMFIELDVALUETYPES.ARRAY)&&!r.hasValueType(FORMFIELDVALUETYPES.STRING)?!1:(c=u._value||[],f=[],r.hasValueType(FORMFIELDVALUETYPES.STRING)?f.push((r._value||"").toString()):f=r._value||[],e=!0,f.length==0?e=!0:t.forEach(f,function(n){var i=!1;t.forEach(c,function(t){if(t==n){i=!0;return}});e=e&&i}),!e):!1;case i.FloatLargerAndEqualThan.typeID:return u.hasValueType(FORMFIELDVALUETYPES.FLOAT)&&r.hasValueType(FORMFIELDVALUETYPES.FLOAT)&&u._value!=null&&r._value!=null&&u._value>=r._value;case i.FloatLargerThan.typeID:return u.hasValueType(FORMFIELDVALUETYPES.FLOAT)&&r.hasValueType(FORMFIELDVALUETYPES.FLOAT)&&u._value!=null&&r._value!=null&&u._value>r._value;case i.FloatSmallerAndEqualThan.typeID:return u.hasValueType(FORMFIELDVALUETYPES.FLOAT)&&r.hasValueType(FORMFIELDVALUETYPES.FLOAT)&&u._value!=null&&r._value!=null&&u._value<=r._value;case i.FloatSmallerThan.typeID:return u.hasValueType(FORMFIELDVALUETYPES.FLOAT)&&r.hasValueType(FORMFIELDVALUETYPES.FLOAT)&&u._value!=null&&r._value!=null&&u._value<r._value}return conditionalExpressionValueConstants.EMPTY},getFieldValue:function(n,t){var r,i;if(n.isOther)return t==FORMFIELDVALUETYPES.ARRAY&&n.valueArrayObj&&n.valueArrayObj.length!=0?(r=n.valueArrayObj[n.valueArrayObj.length-1],r.startsWith("Other:")?(i=n.valueArrayObj.slice(0,n.valueArrayObj.length-1),i.push("cms6ExpressionAllowOtherValue"),i):n.valueArrayObj):t==FORMFIELDVALUETYPES.STRING&&n.valueString?"cms6ExpressionAllowOtherValue":null;switch(t){case FORMFIELDVALUETYPES.ARRAY:return n.valueArrayObj;case FORMFIELDVALUETYPES.BIT:return n.valueBit;case FORMFIELDVALUETYPES.DATETIME:return n.valueDatetime;case FORMFIELDVALUETYPES.DICT:return n.valueDictionary;case FORMFIELDVALUETYPES.FLOAT:return n.valueFloat;case FORMFIELDVALUETYPES.HTML:return n.valueHtml;case FORMFIELDVALUETYPES.NUMBER:return n.valueNumber;case FORMFIELDVALUETYPES.TIME:return n.valueTime;case FORMFIELDVALUETYPES.STRING:default:return n.valueString}}};y=function(n){this._timeout=n};y.prototype={init:function(n,i,u,f){var e=this,o;this._fieldTypeManager=n;this._formSubmitViewModel=i;this._expressionCalculator=new v;this._formSubmitService=f;e.allConditionalExpressionsOfTheEntry=[];e.allFieldsOfTheEntry=[];e.allFieldMetasOfTheEntry=[];e.conditionalLogicTimeout=null;o={};t.forEach(e._formSubmitViewModel.originalPages,function(n){n.isBranched=!1;n.isBranchedByRedirectUrl=!1;t.forEach(n.fields,function(i){i.isSkipped=!1;e.allFieldsOfTheEntry.push(i.data);e.allFieldMetasOfTheEntry.push(i.meta);t.forEach(i.meta.children,function(n){e.allFieldMetasOfTheEntry.push(n)});t.forEach(i.conditionalLogics,function(n){t.forEach(e.getExpressions(n.expression),function(n){e.allConditionalExpressionsOfTheEntry.push(n)});(n.action.actionType==r.SkipAnswer.typeID||n.action.actionType==r.RedirectURL.typeID||n.action.actionType==r.BranchPage.typeID)&&(o[i.meta.id.toString()]=!0);n.action.actionType==r.SkipAnswer.typeID&&n.action.skipAnswers&&t.forEach(n.action.skipAnswers,function(n){o[n.fieldMetaID.toString()]=!0})});u.$watch(function(){return i.data},function(){e.conditionalLogicTimeout&&e._timeout.cancel(e.conditionalLogicTimeout);e.conditionalLogicTimeout=e._timeout(function(){e.executeOnPage(n,i)},300)},!0)});u.$watch(function(){return u.viewModel.activePage},function(){e.conditionalLogicTimeout&&e._timeout.cancel(e.conditionalLogicTimeout);e.conditionalLogicTimeout=e._timeout(function(){e.executeOnPage(u.viewModel.activePage)},300)},!1)});t.forEach(e._formSubmitViewModel.originalPages,function(n){t.forEach(n.fields,function(n){n.needsRunConditionalLogic=typeof o[n.meta.id.toString()]!="undefined"&&o[n.meta.id.toString()]==!0?!0:!1})});e._formSubmitViewModel.pages=e._formSubmitViewModel.originalPages},resetQuestionNumber:function(){var i=this,n=1;t.forEach(i._formSubmitViewModel.originalPages,function(i){i.isBranched||t.forEach(i.fields,function(t){t.isSkipped||t.pIndex==0||(t.pIndex=n,n++)})})},getExpressions:function(n){var i=[];return i.push(n),n.left!=null&&t.forEach(this.getExpressions(n.left),function(n){i.push(n)}),n.right!=null&&t.forEach(this.getExpressions(n.right),function(n){i.push(n)}),i},executeOnPage:function(n,i){var u=this,f,e,o;u._formSubmitViewModel&&u._formSubmitViewModel.submitStatus==g.FILLING&&(typeof n=="undefined"&&(n=u._formSubmitViewModel.activePage),typeof n!="undefined")&&(typeof i!="object"||i.needsRunConditionalLogic!=!1)&&(f=!1,e=!1,n.redirectUrl=null,t.forEach(u._formSubmitViewModel.originalPages,function(i){i.order>n.order&&(i.isBranched=!1);i.order>n.order&&(i.isBranchedByRedirectUrl=!1);(i.order>n.order||i.id==n.id)&&t.forEach(i.fields,function(n){n.isSkipped=!1})}),o=function(i){i.action.actionType==r.SkipAnswer.typeID&&i.action.skipAnswers!=null&&t.forEach(i.action.skipAnswers,function(i){var r=null;t.forEach(n.fields,function(n){r==null&&n.meta.id==i.fieldMetaID&&(r=n,n.__saveRequired&&(r.meta.isRequired=r.meta.__isRequired,delete r.__saveRequired))})})},t.forEach(n.fields,function(i){i.isSkipped!=!0&&t.forEach(i.conditionalLogics,function(s){var l,v,y,c,h;if(s.action.actionType==r.BranchPage.typeID||s.action.actionType==r.SkipAnswer.typeID||s.action.actionType==r.RedirectURL.typeID){if(l=new a,t.extend(l,{conditionalExpression:s.expression,allConditionalExpressionsOfTheEntry:u.allConditionalExpressionsOfTheEntry,allFieldsOfTheEntry:u.allFieldsOfTheEntry,allFieldMetasOfTheEntry:u.allFieldMetasOfTheEntry}),v=u._expressionCalculator.calculate(l),y=u._expressionCalculator.isTrue(v),y==!1){o(s);return}if(s.action.actionType==r.BranchPage.typeID&&s.action.branchPage!=null){if(e)return;h=n.order;c=1e5;s.action.branchPage.pageID>0&&(c=-1,t.forEach(u._formSubmitViewModel.originalPages,function(n){n.id==s.action.branchPage.pageID&&(c=n.order)}));t.forEach(u._formSubmitViewModel.originalPages,function(n){n.order>h&&n.order<c&&(n.isBranched=!0,e=!0)})}else if(s.action.actionType==r.RedirectURL.typeID&&s.action.redirectUrl&&s.action.redirectUrl.url){if(f)return;if(n.redirectUrl)return;h=n.order;n.redirectUrl=s.action.redirectUrl.url;t.forEach(u._formSubmitViewModel.originalPages,function(n){n.order>h&&(n.isBranchedByRedirectUrl=!0,f=!0)})}else s.action.actionType==r.SkipAnswer.typeID&&s.action.skipAnswers!=null&&t.forEach(s.action.skipAnswers,function(r){var u=null;t.forEach(n.fields,function(n){u==null&&n.meta.id==r.fieldMetaID&&(u=n)});u!=null&&u.meta.order>i.meta.order&&(u.isSkipped=!0,u.__saveRequired=!0,u.meta.isRequired=!1)})}})}),u._formSubmitViewModel.pages=[],t.forEach(u._formSubmitViewModel.originalPages,function(n){n.isBranched==!1&&n.isBranchedByRedirectUrl==!1&&u._formSubmitViewModel.pages.push(n)}),u.resetQuestionNumber(),u._formSubmitService.actionsHandler.rebindActions())}};p.service("conditionalLogicExecutorService",["$http","$q","$timeout",function(n,t,i){return new y(i)}])}(window,angular),function(n,t){var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.service("formJsonDataUtil",["$http","$q",function(t){function r(){i._initialized==!1&&u()}function u(){t({method:"GET",url:n.visionOptions.cmsAdminEndPoint+"Components/Scripts/app/jsondata/states.json"}).then(function(n){i.states=n.data;i._initialized=!0})}var i={_initialized:!1,init:r,states:[]};return i}])}(window,angular),function(n,t){var i=t.module("viAppCoreComponentFormBuilderDownload");i.directive("formBuilderDownload",["$compile","$parse","coreComponentFormSDKConfig","$http",function(t,i,r,u){return{restrict:"A",replace:!0,scope:{autoTrigger:"=",fileName:"=",fileType:"=",fileCode:"="},link:function(t,i){var f=function(){u({method:"GET",url:r.apiEndPoint+"api/feformbuilder/download",params:{code:t.fileCode},responseType:"arraybuffer"}).then(function(i){var e=i.data,a=i.status,r=i.headers,f,s,h;if(e=="No Permission"){alert("You don't have permission to view the document.");return}r=r();var o=t.fileName,c=t.fileType||r["content-type"],u=document.createElement("a");try{f=new Blob([e],{type:c});s=n.URL.createObjectURL(f);u.setAttribute("href",s);u.setAttribute("download",o);navigator.msSaveBlob?navigator.msSaveBlob(f,o):(h=new MouseEvent("click",{view:n,bubbles:!0,cancelable:!1}),u.dispatchEvent(h))}catch(l){console.log(l)}}).catch(function(n){console.log(n.data)})};t.autoTrigger&&f();i.click(function(n){f();n.preventDefault()})}}}])}(window,angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldAttachmentDisplay",["$compile","currentUser",function(i,r){return{restrict:"EA",link:function(u,f){var e="",s=(!u.field.data||!u.field.data.valueArray)&&!(u.field.data&&u.field.data.valueArrayObj&&u.field.data.valueArrayObj.length>0),a;if(s)e='<span class="response-field-skipped">**SKIPPED**<\/span>';else{var o=t.fromJson(u.field.data==null?"[]":u.field.data.valueArray||"[]"),h=n.visionOptions.loggedIn,c=r.profile().loggedIn(),l=r.profile().userID;u.forPdf?(u.files=o,u.onlyName=u.attachmentEmailLinks?!1:!0):c?(u.files=[],t.forEach(o,function(n){n.websiteUserID?n.websiteUserID==l?u.files.push(n):(u.files.push(n),u.onlyName=!0):(u.files.push(n),u.onlyName=!0)})):h?u.files=o:(u.files=o,u.onlyName=!0);u.onlyName?e=u.isBackend?'<div ng-repeat="file in files">{{file.name}}<\/div>':'<div ng-repeat="file in field.meta._files">{{file.name}}<\/div><div ng-if="files" ng-repeat="file in files">{{file.name}}<\/div>':u.forPdf?(a=u.attachmentBaseUrl,e='<div ng-repeat="file in field.meta._files">{{file.name}}<\/div><div ng-if="files" ng-repeat="file in files"><a target="_blank" rel="noopener" href="{{attachmentBaseUrl}}?code={{file.code}}&name={{file.name}}">{{file.name}}<\/a><\/div>'):e=u.isBackend?'<div ng-repeat="file in files"><a href="javascript:void(0)" form-builder-download file-code="file.code" file-name="file.name">{{file.name}}<\/a><\/div>':'<div ng-repeat="file in field.meta._files">{{file.name}}<\/div><div ng-if="files" ng-repeat="file in files"><a href="javascript:void(0)" form-builder-download file-code="file.code" file-name="file.name">{{file.name}}<\/a><\/div>'}f.append(e);i(f.contents())(u)}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldAttachmentEdit",["currentUser",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}" class="field-input form-attachment" role="group" aria-labelledby="{{field.meta.uniqueName}}_label">    <div ng-repeat="file in field.meta._files" validateinput validateinput-target=".form-attachment-item" validateinput-field-name="hidden{{field.meta.uniqueName}}{{file.id}}"  validateinput-error-messages-expr="field.meta.errorMessages">    <div class="form-attachment-item">        <div class="file_input_item_container">            <div class="file_input_item">                <label for="{{field.meta.uniqueName}}_fileInput{{$index}}_cus" class="hide-text-indent wcag_only">Click button for uploading file<\/label>                <input type="text" id="{{field.meta.uniqueName}}_fileInput{{$index}}_cus" ng-disabled="field.disabled" name="fileInput{{$index}}_cus" autocomplete="off" value="" tabindex="-1" class="file_input_cus" />                <input type="file" id="{{field.meta.uniqueName}}_fileInput{{$index}}" data-file-index="{{$index}}" data-file-id="{{file.id}}" ng-disabled="field.disabled" name="fileInput{{$index}}" class="file_input_ori" accept="{{field.meta.allowedTypes()}}" title="Use browse button to fill in" />                <input type="button" value="Browse..." tabindex="-1" class="file_input_cusbtn" />            <\/div>            <a href="javascript:void(0);" class="command form_button cancel_upload_file">Clear<\/a>        <\/div>        <div class="mutil-buttons" ng-show="field.meta.settingObj.maxNum > 1">            <a href="javascript:void(0);" title="Add a file" class="addlink" ng-disabled="field.disabled" ng-show="field.meta._files.length < field.meta.settingObj.maxNum" ng-click="field.meta.addItem($index)"><\/a>            <a href="javascript:void(0);" title="Remove the file" ng-disabled="field.disabled" class="deletelink" ng-show="field.meta._files.length > 1" ng-click="field.meta.removeItem($index)"><\/a>        <\/div>    <\/div>    <input id="hidden{{field.meta.uniqueName}}{{file.id}}" name="hidden{{field.meta.uniqueName}}{{file.id}}" type="hidden" ng-model="field.meta._files[$index].hiddenValue" attachment-size-validator attachment-extension-validator ng-required="field.meta.isRequired" /><\/div>    <div class="form-attachment-tips">        <div class="max-size">Maximum size allowed: {{field.meta.settingObj.maxSize}} MB<\/div>        <div class="max-num" ng-show="field.meta.settingObj.maxNum > 1">Maximum number of files allowed: {{field.meta.settingObj.maxNum}}<\/div>        <div class="allowed-types">Allowed types: {{field.meta.allowedTypes()}}<\/div>    <\/div><\/div>',link:function(n){n.field.meta._files.length==0&&n.field.meta._files.push(n.field.meta.createEmptyFile());n.field.data||(n.field.data={});n.field.data.valueArrayObj=[]}}}]);i.directive("viFieldAttachmentEditFake",["currentUser",function(n){return{restrict:"EA",template:'<div class="field-input form-attachment form-attachment-fake">    <div validateinput validateinput-target=".form-attachment-item" validateinput-field-name="hidden{{field.meta.uniqueName}}" validateinput-error-messages-expr="field.meta.errorMessages">    <div class="form-attachment-item">        <div class="file_input_item_container">            <div class="file_input_item">                <label for="fileInput_cus" class="hide-text-indent wcag_only">Click button for uploading file<\/label>                <input type="text" id="fileInput_cus" name="fileInput_cus" ng-click="loginFn(false)" autocomplete="off" value="" tabindex="-1" class="file_input_cus" />                <input type="button" value="Log In" class="file_input_cusbtn" ng-click="loginFn(true)" />            <\/div>        <\/div>    <\/div>    <input id="hidden{{field.meta.uniqueName}}" name="hidden{{field.meta.uniqueName}}" type="hidden" ng-model="field.meta._files[0].hiddenValue" ng-required="field.meta.isRequired" /><\/div>    <div class="form-attachment-tips">        <div class="max-size">Maximum size allowed: {{field.meta.settingObj.maxSize}} MB<\/div>        <div class="max-num" ng-show="field.meta.settingObj.maxNum > 1">Maximum number of files allowed: {{field.meta.settingObj.maxNum}}<\/div>        <div class="allowed-types">Allowed types: {{field.meta.allowedTypes()}}<\/div>        <div class="attachment-note">Note: Login required in order to add an attachment to form response.<\/div>    <\/div><\/div>',replace:!0,link:function(t){t.loginFn=function(i){i?n.popupLogin(function(){t.$apply(function(){})},!1):n.popupLogin(function(){t.$apply(function(){})},!0,"Please login to your account or create a new one to support attachment.")}}}}]);i.directive("attachmentSizeValidator",["$compile",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){r.$validators.attachmentSizeValidator=function(t){if(t){var i=JSON.parse(t).size;if(i||i==0)return i<=n.field.meta.settingObj.maxSize*1048576}return!0}}}}]);i.directive("attachmentExtensionValidator",["$compile",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){r.$validators.attachmentExtensionValidator=function(t){var r,u,i,f;if(t&&(r=JSON.parse(t).ext,r)){for(u=!1,i=0;i<n.field.meta.settingObj.fileTypes.length;i++)f=n.field.meta.settingObj.fileTypes[i],f.allowed&&f.value.toLowerCase()=="."+r.toLowerCase()&&(u=!0);return u}return!0}}}}]);i.directive("formAttachmentItem",["$compile",function(n){return{restrict:"C",link:function(t,i){i.on("click",".file_input_cus",function(n){$(this).next("input.file_input_ori").click();n.preventDefault()});i.on("focus",".file_input_cus",function(n){$(this).blur();n.preventDefault()});i.on("change",".file_input_ori",function(n){var u=$(this).val(),f=u.lastIndexOf("\\");f>=0&&(u=u.substring(f+1));$(this).prev("input.file_input_cus").val(u);var i=n.target.files,r=$(this).attr("data-file-index"),e=$(this).attr("data-file-id");i&&i.length==1&&t.$apply(function(){r&&t.field.meta._files.length>r&&(t.field.meta._files[r].data=i[0],t.field.meta._files[r].metaID=t.field.meta.id,t.field.meta._files[r].name=i[0].name,t.field.meta._files[r].size=i[0].size,t.field.meta._files[r].type=i[0].type,t.field.meta._files[r].hiddenValue=JSON.stringify({size:i[0].size,ext:i[0].name.split(".").pop()}),t.field.data.valueArrayObj.push({name:i[0].name}),t[t.formName]["hidden"+t.field.meta.uniqueName+e].$setDirty())});n.preventDefault()});i.on("click",".file_input_cusbtn",function(n){$(this).prev("input.file_input_ori").click();$(this).blur();n.preventDefault()});i.on("click","a.cancel_upload_file",function(i){var r=$(this).siblings(".file_input_item");r.html(r.html());n(r.contents())(t);r.find(".file_input_cus").val("");var f=$(this).siblings(".file_input_item").find('[type="file"]'),u=f.attr("data-file-index"),e=f.attr("data-file-id");t.$apply(function(){u&&t.field.meta._files.length>u&&(t.field.meta._files[u]=t.field.meta.createEmptyFile(),t[t.formName]["hidden"+t.field.meta.uniqueName+e].$setDirty());t.field.data.valueArrayObj=[]});i.preventDefault()})}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldCheckboxlistDisplay",function(){return{restrict:"EA",template:'<div ng-if="hasValue" ng-repeat="item in checkedValues" sort-data="{{$index}}">{{item}}<\/div><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.hasValue=n.field.data&&n.field.data.valueArray||n.field.data&&n.field.data.valueArrayObj;var t=JSON.parse(n.field.data&&n.field.data.valueArray?n.field.data.valueArray:"[]");n.checkedValues=n.field.data&&n.field.data.valueArrayObj&&n.field.data.valueArrayObj.length>0?n.field.data.valueArrayObj:t}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldCheckboxlistEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}" class="field-input" validateinput validateinput-target=".checkboxlist-area" validateinput-field-name="hidden{{field.meta.uniqueName}}" ng-click="checkboxlistClick()" validateinput-error-messages-expr="field.meta.errorMessages"><div class="checkboxlist-area" role="group" aria-labelledby="{{field.meta.uniqueName}}_label"><div class="checkbox-item" ng-repeat="item in field.meta.settingObj.customSource" sort-data="{{$index}}"><input type="checkbox" ng-disabled="field.disabled" id="{{field.meta.uniqueName}}{{$index}}" name="{{field.meta.uniqueName}}{{$index}}" ng-model="item.checked"/><label for="{{field.meta.uniqueName}}{{$index}}">{{item.text}}<\/label><\/div><div class="checkbox-item width-half" ng-if="field.meta.allowOther"><input type="checkbox" ng-disabled="field.disabled" id="{{field.meta.uniqueName}}OtherCheckBox" name="{{field.meta.uniqueName}}OtherCheckBox" ng-model="field.data.isOther" ng-change="field.meta.otherItemValue=\'\';field.meta.setOtherInfo(field);"/><label for="{{field.meta.uniqueName}}OtherCheckBox">Other<\/label><input type="text" class="other-option ng-dirty ng-invalid" ng-if="field.data.isOther" ng-required="field.meta.settingObj.markOtherRequired" ng-disabled="field.disabled" id="{{field.meta.uniqueName}}OtherTextBox" name="{{field.meta.uniqueName}}OtherTextBox" ng-model="field.meta.otherItemValue" ng-change="field.meta.setOtherInfo(field)" ng-maxlength="200" maxlength="200"/><span class="overlay-text width-full" ng-if="field.data.isOther">{{field.meta.otherItemValue | lengthCountLeft : 200}}  characters<\/span><span role="alert" ng-messages ng-if="field.data.isOther && field.meta.settingObj.markOtherRequired" ng-show="!field.meta.otherItemValue.length">"Other" text box is required!<\/span><\/div><\/div><input type="checkbox" id="{{field.meta.uniqueName}}{{field.meta.id}}_allowSelectAll" ng-disabled="field.disabled" name="{{field.meta.uniqueName}}allowSelectAll" ng-if="field.meta.settingObj.allowSelectAll" ng-click="field.meta.checkAllOptions(field, $event)" /><label for="{{field.meta.uniqueName}}{{field.meta.id}}_allowSelectAll" ng-if="field.meta.settingObj.allowSelectAll" >Select All<\/label><input id="hidden{{field.meta.uniqueName}}" name="hidden{{field.meta.uniqueName}}" type="hidden" ng-model-options="{ getterSetter: true }" ng-model="field.meta.checkedValue" checkboxlist-max-selection ng-required="field.meta.isRequired" /><\/div>',link:function(n){n.checkboxlistClick=function(){if(n.field.disabled)return!1;n[n.formName]["hidden"+n.field.meta.uniqueName]&&n[n.formName]["hidden"+n.field.meta.uniqueName].$setDirty()}}}});i.directive("checkboxlistMaxSelection",["$compile",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){r.$validators.checkboxlistMaxSelection=function(){return n.field.meta.settingObj.maxSelection==-1?!0:n.field.data.valueArrayObj&&n.field.data.valueArrayObj.length<=n.field.meta.settingObj.maxSelection}}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldDatetimeDisplay",function(){return{restrict:"EA",template:'<vi-sys-format-date ng-if="hasValue" setting-obj="field.meta.settingObj" cur-val="field.data.valueDatetime" ><\/vi-sys-format-date><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.hasValue=n.field.data&&n.field.data.valueDatetime}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldDatetimeEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}-field-input" class="field-input" validateinput validateinput-field-name="field.meta.uniqueName" validateinput-error-messages-expr="field.meta.errorMessages" ><div class="field-input datetimepicker width-half" ng-if="!field.meta.settingObj.datetimeUseDateOnly"><input type="text" vi-datetimepicker="{ minDate: field.meta.minDateTime(), maxDate: field.meta.maxDateTime() }"vi-generateid=\'{{field.meta.uniqueName}}\' name=\'{{field.meta.uniqueName}}\' ng-model="field.data.valueDatetime" ng-disabled="field.disabled" ng-required="field.meta.isRequired"error-messages-expr="field.meta.errorMessages"/><i tabindex="0" class="calendar-icon"><\/i><\/div><div class="field-input datetimepicker width-half" ng-if="field.meta.settingObj.datetimeUseDateOnly"><input type="text"vi-datepicker="{ minDate: field.meta.minDateTime(), maxDate: field.meta.maxDateTime() }"vi-generateid=\'{{field.meta.uniqueName}}\'name=\'{{field.meta.uniqueName}}\'ng-model="field.data.valueDatetime"ng-disabled="field.disabled"ng-required="field.meta.isRequired"error-messages-expr="field.meta.errorMessages"/><i tabindex="0" class="calendar-icon"><\/i><\/div><\/div>',link:function(n,t){let i=null,r="";$(t).on("click keydown",".calendar-icon, :input",function(n){(n.type==="click"||n.type==="keydown"&&n.key==="Enter")&&$(t).find(":text").focus()});$(t).on("focus",":text",function(){i=this;setTimeout(function(){const n=$("#ui-datepicker-div");if(n.is(":visible")&&$(document.activeElement).is(i)){n.find("a.ui-datepicker-prev.ui-corner-all , a.ui-datepicker-next.ui-corner-all").off("keydown").on("keydown",function(n){(n.key==="Enter"||n.keycode===13)&&(n.preventDefault(),$(this).trigger("click"))});n.find("a.ui-state-default, button.ui-datepicker-close").off("keydown").on("keydown",function(t){(t.key==="Enter"||t.keycode===13)&&(t.preventDefault(),t.target.tagName.toLowerCase()==="button"?n.hide():$(this).trigger("click"),i&&i.focus())});n.find("button.ui-datepicker-current").off("keydown").on("keydown",function(n){(n.key==="Enter"||n.keycode===13)&&($(this).trigger("click"),r="ui-state-highlight",$(t).closest(".calendar-icon").trigger("click"))});const u=n.find(":input:visible, .ui-datepicker-prev:not([disabled]), .ui-datepicker-next:not([disabled]), .ui-state-default"),f=u.first()[0],e=u.last()[0];u.each(function(n){$(this).addClass("unique-class-"+n)});u.on("click change",function(){let n=$(this).attr("class");if(n){let i=n.split(" "),t=i.find(function(n){return n.startsWith("unique-class-")});t&&(r=t)}});f&&r==""?f.focus():$("."+r).focus();n.off("keydown").on("keydown",function(t){t.key==="Tab"&&(t.shiftKey&&document.activeElement===f?(t.preventDefault(),e.focus()):t.shiftKey||document.activeElement!==e||(t.preventDefault(),f.focus()));t.key==="Escape"&&(n.hide(),i&&i.focus())})}},10)})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldDigitalsignatureDisplay",function(){return{restrict:"EA",template:'<div ng-if="hasValue"><div>{{field.children.Name.meta.label}}:{{field.children.Name.data.valueString}}<\/div><div>{{field.children.Email.meta.label}}:{{field.children.Email.data.valueString}}<\/div><div>{{field.children.eDocumentInfo.meta.label}}: <a target="_blank" rel="noopener" ng-if="field.children.eDocumentInfoJson.SignatureID"href="{{eSignatureViewHref}}?signatureID={{field.children.eDocumentInfoJson.SignatureID}}&provider={{field.children.Provider.data.valueString}}">View Signature<\/a><span ng-if="!field.children.eDocumentInfoJson.SignatureID || !field.children.Provider">Incomplete<\/span><\/div><\/div><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(i){if(i.hasValue=i.field.meta.childrenArr&&Enumerable.From(i.field.meta.childrenArr).Any("c => c.data"),i.field.meta.childrenArr){var u=i.field.meta.uniqueName,f=i.field.meta.childrenArr,r=Enumerable.From(f).Where("c => c.meta.uniqueName == '"+u+"_eDocumentInfo'").First();i.field.meta.children={Name:Enumerable.From(f).Where("c => c.meta.uniqueName == '"+u+"_Name'").First(),Email:Enumerable.From(f).Where("c => c.meta.uniqueName == '"+u+"_Email'").First(),eDocumentInfo:r,eDocumentInfoJson:r&&r.data&&r.data.valueDictionary&&t.fromJson(r.data.valueDictionary),Provider:Enumerable.From(f).Where("c => c.meta.uniqueName == '"+u+"_Provider'").First()};i.field.children=i.field.meta.children;i.eSignatureViewHref=n.visionOptions.eSignatureView}i.$watch(function(){i.field.children&&(i.field.children.Name.data.valueString||i.field.children.Email.data.valueString)&&(i.hasValue=!0)})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldDigitalsignatureEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}" class="field-input width-full"><div class="display-block"><span class="field-column-item width-half" validateinput validate-hide-message><input type="text" name="{{field.meta.children.Name.uniqueName}}" id="{{field.meta.children.Name.uniqueName}}"ng-model="field.children.Name.data.valueString"ng-disabled="field.disabled"ng-required="field.meta.isRequired"/><label for="{{field.meta.children.Name.uniqueName}}">{{field.meta.children.Name.label}}<\/label><\/span><span class="field-column-item width-half" validateinput validate-hide-message><input type="email" autocomplete="email" name="{{field.meta.children.Email.uniqueName}}" id="{{field.meta.children.Email.uniqueName}}"ng-model="field.children.Email.data.valueString"ng-disabled="field.disabled"ng-required="field.meta.isRequired"/><label for="{{field.meta.children.Email.uniqueName}}">{{field.meta.children.Email.label}}<\/label><\/span><\/div><div validateinput validateinput-error-messages-expr="field.meta.errorMessages" validateinput-field-name="hidden{{field.meta.uniqueName}}"><input id="hidden{{field.meta.uniqueName}}" name="hidden{{field.meta.uniqueName}}" type="hidden" ng-model-options="{ getterSetter: true }" ng-model="field.hiddenValue" ng-required="field.meta.isRequired" /><\/div><p class=""><i>{{field.meta.settingObj.customizeNote}}<\/i><\/p><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldEmailDisplay",function(){return{restrict:"EA",template:'<span ng-if="hasValue">{{field.data.valueString}}<\/span><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.hasValue=n.field.data&&n.field.data.valueString}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldEmailEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}_parent" class="field-input width-half" validateinput=""><input type="email" autocomplete="email" id="{{field.meta.uniqueName}}"name="{{field.meta.uniqueName}}"ng-model="field.data.valueString"ng-disabled="field.disabled"ng-required="field.meta.isRequired"ng-pattern="field.type.emailPattern"vi-form-field-duplicate-validator="field.meta.allowDuplicate"  ng-model-options="{ updateOn: \'default blur\', debounce: {\'*\': 300, \'blur\': 0} }"error-messages-expr="field.meta.errorMessages"  /><\/div><div ng-if="field.meta.settingObj.emailConfirmation" id="{{field.meta.uniqueName}}Confirmation_parent"   class="field-input width-half" validateinput=""><label for="{{field.meta.uniqueName}}Confirmation">Confirm email address<\/label><input type="text" autocomplete="off"id="{{field.meta.uniqueName}}Confirmation"name="{{field.meta.uniqueName}}Confirmation"ng-model="field.data.valueStringConfirmation"ng-disabled="field.disabled"ng-pattern="field.type.emailPattern"vi-match="field.data.valueString"error-messages-expr="field.meta.errorMessages" /><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldFulladdressDisplay",function(){return{restrict:"EA",template:'<span ng-if="hasValue"><div ng-if="field.meta.children.Address1.display">{{field.children.Address1.data.valueString}}<\/div><div ng-if="field.meta.children.Address2.display">{{field.children.Address2.data.valueString}}<\/div><div ng-if="field.meta.children.City.display || field.meta.children.State.display"><span ng-if="field.meta.children.City.display">{{field.children.City.data.valueString}} <\/span><span ng-if="field.meta.children.State.display">{{field.children.State.data.valueString}} <\/span><span ng-if="field.meta.children.PostalCode.display">{{field.children.PostalCode.data.valueString}}<\/span><\/div><div ng-if="field.meta.children.Country.display">{{field.children.Country.data.valueString}}<\/div><\/span><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){if(n.hasValue=n.field.meta.childrenArr&&Enumerable.From(n.field.meta.childrenArr).Any("c => c.data"),n.field.meta.childrenArr){var t=n.field.meta.uniqueName,i=n.field.meta.childrenArr;n.field.meta.children={Address1:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Address1'").FirstOrDefault(),Address2:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Address2'").FirstOrDefault(),City:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_City'").FirstOrDefault(),State:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_State'").FirstOrDefault(),PostalCode:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_PostalCode'").FirstOrDefault(),Country:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Country'").FirstOrDefault()};n.field.children=n.field.meta.children}n.$watch(function(){n.hasValue=n.field.children&&(n.field.meta.children.Address1.display&&n.field.children.Address1.data.valueString||n.field.meta.children.Address2.display&&n.field.children.Address2.data.valueString||n.field.meta.children.City.display&&n.field.children.City.data.valueString||n.field.meta.children.State.display&&n.field.children.State.data.valueString||n.field.meta.children.PostalCode.display&&n.field.children.PostalCode.data.valueString||n.field.meta.children.Country.display&&n.field.children.Country.data.valueString)})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldFulladdressEdit",function(){return{restrict:"EA",template:'<div  id="{{field.meta.uniqueName}}" class="field-input" role="group" aria-labelledby="{{field.meta.uniqueName}}_label"><span class="field-column-item width-full" ng-if="field.meta.children.Address1.display"  validateinput validate-hide-message><input type="text" autocomplete="address-line1" name="{{field.meta.children.Address1.uniqueName}}" id="{{field.meta.children.Address1.uniqueName}}"ng-model="field.children.Address1.data.valueString"ng-model-options="{ allowInvalid: true}"vi-check-xss="true"ng-disabled="field.disabled"ng-required="field.meta.isRequired"/><label for="{{field.meta.children.Address1.uniqueName}}">{{field.meta.children.Address1.label}}<\/label><\/span><span class="field-column-item width-full display-block" ng-if="field.meta.children.Address2.display"  validateinput validate-hide-message><input type="text" autocomplete="address-line2" name="{{field.meta.children.Address2.uniqueName}}"  id="{{field.meta.children.Address2.uniqueName}}"ng-model="field.children.Address2.data.valueString"ng-model-options="{ allowInvalid: true}"vi-check-xss="true"ng-disabled="field.disabled"/><label for="{{field.meta.children.Address2.uniqueName}}">{{field.meta.children.Address2.label}}<\/label><\/span><span class="display-block"><span class="field-column-item width-half" ng-if="field.meta.children.City.display"  validateinput validate-hide-message><input type="text" autocomplete="address-level2" name="{{field.meta.children.City.uniqueName}}" id="{{field.meta.children.City.uniqueName}}"ng-model="field.children.City.data.valueString"ng-model-options="{ allowInvalid: true}"vi-check-xss="true"ng-disabled="field.disabled"ng-required="field.meta.isRequired"/><label for="{{field.meta.children.City.uniqueName}}">{{field.meta.children.City.label}}<\/label><\/span><span class="field-column-item width-half" ng-if="field.meta.children.State.display"  validateinput validate-hide-message><input type="text" autocomplete="address-level1" name="{{field.meta.children.State.uniqueName}}" id="{{field.meta.children.State.uniqueName}}"ng-model="field.children.State.data.valueString"ng-disabled="field.disabled"ng-model-options="{ allowInvalid: true}"vi-check-xss="true"ng-required="field.meta.isRequired"/><label for="{{field.meta.children.State.uniqueName}}">{{field.meta.children.State.label}}<\/label><\/span><\/span><span class="field-column-item width-half"  ng-if="field.meta.children.PostalCode.display"  validateinput validate-hide-message><input type="text" autocomplete="postal-code" name="{{field.meta.children.PostalCode.uniqueName}}" id="{{field.meta.children.PostalCode.uniqueName}}"ng-model="field.children.PostalCode.data.valueString"ng-model-options="{ allowInvalid: true}"vi-check-xss="true"ng-disabled="field.disabled"ng-required="field.meta.isRequired"/><label for="{{field.meta.children.PostalCode.uniqueName}}">{{field.meta.children.PostalCode.label}}<\/label><\/span><span class="field-column-item width-half"  ng-if="field.meta.children.Country.display"  validateinput validate-hide-message><input type="text" autocomplete="country-name" name="{{field.meta.children.Country.uniqueName}}" id="{{field.meta.children.Country.uniqueName}}"ng-model="field.children.Country.data.valueString"ng-model-options="{ allowInvalid: true}"vi-check-xss="true"ng-disabled="field.disabled"ng-required="field.meta.isRequired"/><label for="{{field.meta.children.Country.uniqueName}}">{{field.meta.children.Country.label}}<\/label><\/span><div validateinput validateinput-error-messages-expr="field.meta.errorMessages" validateinput-field-name="hidden{{field.meta.uniqueName}}"><input id="hidden{{field.meta.uniqueName}}" name="hidden{{field.meta.uniqueName}}" type="hidden" ng-model-options="{ getterSetter: true }" ng-model="field.hiddenValue" ng-required="field.meta.isRequired" /><\/div><div validateinput validateinput-error-messages-expr="field.meta.errorMessages" validateinput-field-name="xss{{field.meta.uniqueName}}"><input id="xss{{field.meta.uniqueName}}" name="xss{{field.meta.uniqueName}}" type="hidden" ng-model-options="{ getterSetter: true, allowInvalid: true }" ng-model="field.xssValue" vi-check-xss="true" /><\/div><\/div>',link:function(n){n.$watch(function(){var t=n[n.formName][n.field.meta.children.Address1.uniqueName],i=n[n.formName][n.field.meta.children.Address2.uniqueName],r=n[n.formName][n.field.meta.children.City.uniqueName],u=n[n.formName][n.field.meta.children.State.uniqueName],f=n[n.formName][n.field.meta.children.PostalCode.uniqueName],e=n[n.formName][n.field.meta.children.Country.uniqueName],o=n.field.meta.children.Address1.display,s=n.field.meta.children.Address2.display,h=n.field.meta.children.City.display,c=n.field.meta.children.State.display,l=n.field.meta.children.PostalCode.display,a=n.field.meta.children.Country.display;return o&&t&&t.$dirty&&!t.$valid||s&&i&&i.$dirty&&!i.$valid||h&&r&&r.$dirty&&!r.$valid||c&&u&&u.$dirty&&!u.$valid||l&&f&&f.$dirty&&!f.$valid||a&&e&&e.$dirty&&!e.$valid},function(t){t?n[n.formName]["xss"+n.field.meta.uniqueName].$setDirty():n[n.formName]["xss"+n.field.meta.uniqueName].$setPristine()});n.$watch(function(){var t=n[n.formName][n.field.meta.children.Address1.uniqueName],i=n[n.formName][n.field.meta.children.City.uniqueName],r=n[n.formName][n.field.meta.children.State.uniqueName],u=n[n.formName][n.field.meta.children.PostalCode.uniqueName],f=n[n.formName][n.field.meta.children.Country.uniqueName],e=n.field.meta.children.Address1.display,o=n.field.meta.children.City.display,s=n.field.meta.children.State.display,h=n.field.meta.children.PostalCode.display,c=n.field.meta.children.Country.display,l=n[n.formName]["xss"+n.field.meta.uniqueName];return(e&&t&&t.$dirty&&!t.$valid||o&&i&&i.$dirty&&!i.$valid||s&&r&&r.$dirty&&!r.$valid||h&&u&&u.$dirty&&!u.$valid||c&&f&&f.$dirty&&!f.$valid)&&!l.$dirty},function(t){t?n[n.formName]["hidden"+n.field.meta.uniqueName].$setDirty():n[n.formName]["hidden"+n.field.meta.uniqueName].$setPristine()})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldFullnameDisplay",function(){return{restrict:"EA",template:'<span ng-if="hasValue"><span>{{field.fullName}}<\/span><\/span><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){if(n.hasValue=n.field.meta.childrenArr&&Enumerable.From(n.field.meta.childrenArr).Any("c => c.data"),n.field.meta.childrenArr){var t=n.field.meta.uniqueName,i=n.field.meta.childrenArr;n.field.meta.children={Title:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Title'").FirstOrDefault(),FirstName:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_FirstName'").FirstOrDefault(),MiddleInitial:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_MiddleInitial'").FirstOrDefault(),LastName:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_LastName'").FirstOrDefault(),Suffix:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Suffix'").FirstOrDefault()};n.field.children=n.field.meta.children}n.$watch(function(){n.field.fullName="";n.field.children?(n.field.meta.children.Title.display&&n.field.children.Title.data.valueString&&(n.field.fullName+=n.field.children.Title.data.valueString+" "),n.field.children.FirstName.data.valueString&&(n.field.fullName+=n.field.children.FirstName.data.valueString+" "),n.field.meta.children.MiddleInitial.display&&n.field.children.MiddleInitial.data.valueString&&(n.field.fullName+=n.field.children.MiddleInitial.data.valueString+(n.field.children.MiddleInitial.data.valueString.indexOf(".")>-1?" ":". ")),n.field.children.LastName.data.valueString&&(n.field.fullName+=n.field.children.LastName.data.valueString),n.field.meta.children.Suffix.display&&n.field.children.Suffix.data.valueString&&(n.field.fullName+=", "+n.field.children.Suffix.data.valueString),n.hasValue=n.field.fullName):n.hasValue=!1})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldFullnameEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}" class="field-input width-full" role="group" aria-labelledby="{{field.meta.uniqueName}}_label"><span class="field-column-item min" ng-if="field.meta.children.Title.display"><input type="text" autocomplete="organization" name="{{field.meta.children.Title.uniqueName}}" id="{{field.meta.children.Title.uniqueName}}"ng-model="field.children.Title.data.valueString"ng-model-options="{ allowInvalid: true}"vi-check-xss="true"ng-disabled="field.disabled"/><label for="{{field.meta.children.Title.uniqueName}}">{{field.meta.children.Title.label}}<\/label><\/span><span class="field-column-item" validateinput validate-hide-message><input type="text" autocomplete="given-name" name="{{field.meta.children.FirstName.uniqueName}}" id="{{field.meta.children.FirstName.uniqueName}}"ng-model="field.children.FirstName.data.valueString"ng-model-options="{ allowInvalid: true}"vi-check-xss="true"ng-disabled="field.disabled"ng-required="field.meta.children.FirstName.isRequired"/><label for="{{field.meta.children.FirstName.uniqueName}}">{{field.meta.children.FirstName.label}}<\/label><\/span><span class="field-column-item min" ng-if="field.meta.children.MiddleInitial.display"><input type="text"name="{{field.meta.children.MiddleInitial.uniqueName}}" id="{{field.meta.children.MiddleInitial.uniqueName}}"ng-model="field.children.MiddleInitial.data.valueString"ng-model-options="{ allowInvalid: true}"vi-check-xss="true"ng-disabled="field.disabled"/><label for="{{field.meta.children.MiddleInitial.uniqueName}}">{{field.meta.children.MiddleInitial.label}}<\/label><\/span><span class="field-column-item" validateinput validate-hide-message><input type="text" autocomplete="family-name" name="{{field.meta.children.LastName.uniqueName}}" id="{{field.meta.children.LastName.uniqueName}}"ng-model="field.children.LastName.data.valueString"ng-model-options="{ allowInvalid: true}"vi-check-xss="true"ng-disabled="field.disabled"ng-required="field.meta.children.LastName.isRequired"/><label for="{{field.meta.children.LastName.uniqueName}}">{{field.meta.children.LastName.label}}<\/label><\/span><span class="field-column-item min" ng-if="field.meta.children.Suffix.display"><input type="text"name="{{field.meta.children.Suffix.uniqueName}}" id="{{field.meta.children.Suffix.uniqueName}}"ng-model="field.children.Suffix.data.valueString"ng-model-options="{ allowInvalid: true}"vi-check-xss="true"ng-disabled="field.disabled"/><label for="{{field.meta.children.Suffix.uniqueName}}">{{field.meta.children.Suffix.label}}<\/label><\/span><div validateinput validateinput-error-messages-expr="field.meta.errorMessages" validateinput-field-name="hidden{{field.meta.uniqueName}}"><input id="hidden{{field.meta.uniqueName}}" name="hidden{{field.meta.uniqueName}}" type="hidden" ng-model-options="{ getterSetter: true }" ng-model="field.hiddenValue" ng-required="field.meta.isRequired" /><\/div><div validateinput validateinput-error-messages-expr="field.meta.errorMessages" validateinput-field-name="xss{{field.meta.uniqueName}}"><input id="xss{{field.meta.uniqueName}}" name="xss{{field.meta.uniqueName}}" type="hidden"  ng-model-options="{ getterSetter: true, allowInvalid: true }" ng-model="field.xssValue" vi-check-xss="true" /><\/div><\/div>',link:function(n,t){function i(){n.field.meta.children.Title.display&&n.field.meta.children.Suffix.display&&n.field.meta.children.MiddleInitial.display?t.addClass("fullname1"):n.field.meta.children.Title.display&&n.field.meta.children.Suffix.display&&!n.field.meta.children.MiddleInitial.display?t.addClass("fullname2"):!n.field.meta.children.Title.display||n.field.meta.children.Suffix.display||n.field.meta.children.MiddleInitial.display?n.field.meta.children.Title.display||!n.field.meta.children.Suffix.display||n.field.meta.children.MiddleInitial.display?t.addClass("fullname4"):t.addClass("fullname3"):t.addClass("fullname3")}t=$(t).find(".field-input");n.$watch(function(){return n.field.meta.children},function(){i()});n.$watch(function(){var t=n[n.formName][n.field.meta.children.FirstName.uniqueName],i=n[n.formName][n.field.meta.children.LastName.uniqueName],r=n[n.formName][n.field.meta.children.Title.uniqueName],u=n[n.formName][n.field.meta.children.MiddleInitial.uniqueName],f=n[n.formName][n.field.meta.children.Suffix.uniqueName];return t&&t.$dirty&&!t.$valid||i&&i.$dirty&&!i.$valid||r&&r.$dirty&&!r.$valid||u&&u.$dirty&&!u.$valid||f&&f.$dirty&&!f.$valid},function(t){t?n[n.formName]["xss"+n.field.meta.uniqueName].$setDirty():n[n.formName]["xss"+n.field.meta.uniqueName].$setPristine()});n.$watch(function(){var t=n[n.formName][n.field.meta.children.FirstName.uniqueName],i=n[n.formName][n.field.meta.children.LastName.uniqueName],r=n[n.formName]["xss"+n.field.meta.uniqueName];return(t&&t.$dirty&&!t.$valid||i&&i.$dirty&&!i.$valid)&&!r.$dirty},function(t){t?n[n.formName]["hidden"+n.field.meta.uniqueName].$setDirty():n[n.formName]["hidden"+n.field.meta.uniqueName].$setPristine()})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldGeneralnumberDisplay",function(){return{restrict:"EA",template:'<span ng-if="hasValue">{{ field.meta.settingObj.getCommaSeparatedValue(field.data.valueFloat)}}<\/span><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.hasValue=n.field.data&&n.field.data.valueFloat}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldGeneralnumberEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}_parent" class="field-input width-half" validateinput=""><input type="text"id="{{field.meta.uniqueName}}"name="{{field.meta.uniqueName}}"ng-model="field.data.valueFloat"ng-required="field.meta.isRequired"ng-disabled="field.disabled"ng-pattern="field.type.floatPattern"ng-max="field.meta.settingObj.rangeMax"ng-min="field.meta.settingObj.rangeMin" number-type="float" error-messages-expr="field.meta.errorMessages" /><\/div> '}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldHeadingDisplay",function(){return{restrict:"EA",template:"<h2>{{field.meta.label}}<\/h2>",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldHeadingEdit",function(){return{restrict:"EA",template:"<h2>{{field.meta.label}}<\/h2>",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldNumberDisplay",function(){return{restrict:"EA",template:'<span ng-if="hasValue">{{field.data.valueNumber | number}}<\/span><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.hasValue=n.field.data&&n.field.data.valueNumber}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldNumberEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}_parent" class="field-input width-half" validateinput=""><input type="text"id="{{field.meta.uniqueName}}"name="{{field.meta.uniqueName}}"ng-model="field.data.valueNumber"ng-required="field.meta.isRequired"ng-disabled="field.disabled"ng-pattern="field.type.numberPattern"ng-max="field.meta.settingObj.rangeMax"ng-min="field.meta.settingObj.rangeMin" error-messages-expr="field.meta.errorMessages" /><\/div>'}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldParagraphtextDisplay",function(){return{restrict:"EA",template:'<span ng-if="hasValue">{{field.data.valueString}}<\/span><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.hasValue=n.field.data&&n.field.data.valueString}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldParagraphtextEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}_parent" class="width-full field-input overlay-input-text" validateinput=""><textarea id="{{field.meta.uniqueName}}" name="{{field.meta.uniqueName}}" ng-model="field.data.valueString" ng-disabled="field.disabled" ng-trim="false" ng-required="field.meta.isRequired" ng-minlength="field.meta.settingObj.rangeMin" ng-maxlength="field.meta.settingObj.rangeMax" maxlength="{{field.meta.settingObj.rangeMax ? field.meta.settingObj.rangeMax : 2500}}" ng-pattern="field.meta.settingObj.regex" vi-check-xss="true"error-messages-expr="field.meta.errorMessages"placeholder="{{field.meta.settingObj.rangeMax ? field.meta.settingObj.rangeMax : 2500}} Character limit"><\/textarea> <span class="overlay-text width-full" ng-if="field.meta.settingObj.rangeMax > 0">{{field.data.valueString | lengthCountLeft : field.meta.settingObj.rangeMax}}  characters<\/span><label for="{{field.meta.uniqueName}}" class="field-label" ng-if="field.meta.settingObj.instructionPlacement == \'3\'">{{field.meta.label}}<\/label><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentcheckboxDisplay",function(){return{restrict:"EA",template:'<div ng-if="hasValue" class="field-input calculatable-payment-field"><div ng-repeat="item in selectedItems" sort-data="{{$index}}">{{item.label}} <span ng-if="field.meta.settingObj.displayPriceValue">({{item.price | currency:"$":2}})<\/span><span ng-if="field.meta.settingObj.enableQuantityField && item.checked" class="alignright"> - Quantity: {{item.quantity}}<\/span><div ng-if="!field.meta.settingObj.enableQuantityField" ng-init="item.quantity = 1"><\/div><\/div><div ng-if="checkedItem" class="subtotal alignright"><b>Subtotal:<\/b> {{ getTotal() | currency:"$":2 }}<\/div><\/div><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){var i,r,u,f,e;n.hasValue=n.field.meta.childrenArr&&Enumerable.From(n.field.meta.childrenArr).Any("c => c.data");i=n.field.data!=null&&n.field.data.valueArrayObj!=null?n.field.data.valueArrayObj:[];n.field.meta.childrenArr&&(r=n.field.meta.uniqueName,u=n.field.meta.childrenArr,n.field.meta.children={Selection:Enumerable.From(u).Where("c => c.meta.uniqueName == '"+r+"_Selection'").First(),Price:Enumerable.From(u).Where("c => c.meta.uniqueName == '"+r+"_Price'").First(),Quantity:Enumerable.From(u).Where("c => c.meta.uniqueName == '"+r+"_Quantity'").First(),Tax:Enumerable.From(u).Where("c => c.meta.uniqueName == '"+r+"_Tax'").First()},n.field.children=n.field.meta.children,n.field.children.Selection&&n.field.children.Selection.data&&(i=JSON.parse(n.field.children.Selection.data.valueArray),f=n.field.children&&n.field.children.Price.data?JSON.parse(n.field.children.Price.data.valueArray):[],e=n.field.children&&n.field.children.Quantity.data?JSON.parse(n.field.children.Quantity.data.valueArray):[],t.forEach(i,function(i,r){var u=i,o=f?f[r]:null,h=e?e[r]:1,s=!1;t.forEach(n.field.meta.settingObj.customSource,function(n){n.label==u&&(n.checked=!0,o&&(n.price=o),n.quantity=h||1,s=!0)});s||n.field.meta.settingObj.customSource.push({label:u,price:f?f[r]:0,quantity:e?e[r]:1,checked:!0})})));n.checkedVals=i;n.checkedItem=n.field.children.Selection&&n.field.children.Selection.data&&n.field.children.Selection.data.valueArray||null;n.selectedItems=$.grep(n.field.meta.settingObj.customSource,function(n){return $.inArray(n.label,i)>-1});n.getPrice=function(t){var i=$.grep(n.field.meta.settingObj.customSource,function(n){return n.label==t});return i.length?i[0].price:0};n.getQuantity=function(t){var i=$.grep(n.field.meta.settingObj.customSource,function(n){return n.label==t});return i.length?i[0].quantity:0};n.getTotal=function(){if(i.length){var t=0;return $.each(i,function(i,r){t+=n.getPrice(r)*n.getQuantity(r)}),t}return 0};n.$watch(function(){n.hasValue=n.field.children&&n.getTotal()>0})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentcheckboxEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}" class="field-input calculatable-payment-field payment-checkbox-field" validateinput validateinput-field-name="hidden{{field.meta.uniqueName}}" validateinput-target=".checkboxlist-area" ng-click="checkboxlistClick()" validateinput-error-messages-expr="field.meta.errorMessages"><div class="checkboxlist-area" role="group" aria-labelledby="{{field.meta.uniqueName}}_label"><div class="checkbox-item" ng-repeat="item in field.meta.settingObj.customSource" sort-data="{{$index}}"><input type="checkbox" id="{{field.meta.uniqueName}}{{$index}}" ng-disabled="field.disabled" name="{{field.meta.uniqueName}}{{$index}}" ng-model="item.checked" /><label for="{{field.meta.uniqueName}}{{$index}}">{{item.label}} <span ng-if="field.meta.settingObj.displayPriceValue">({{item.price | currency:"$":2}})<\/span><\/label><div ng-if="field.meta.settingObj.enableQuantityField && item.checked" class="payment-field-quantity" validateinput validateinput-error-messages-expr="field.meta.errorMessages"><label for="{{field.meta.uniqueName}}{{field.meta.id}}_{{$index}}_quantity">Quantity: <\/label><input type="number" ng-disabled="field.disabled" id="{{field.meta.uniqueName}}{{field.meta.id}}_{{$index}}_quantity" name="{{field.meta.uniqueName}}{{field.meta.id}}_{{$index}}_quantity" ng-pattern="field.meta.settingObj.quantityDecimalFormat" ng-model="item.quantity" ng-required="field.meta.isRequired" ng-min="{{field.meta.settingObj.rangeMin}}" ng-max="{{field.meta.settingObj.rangeMax}}" /><\/div><input type="hidden" ng-if="!field.meta.settingObj.enableQuantityField" ng-init="item.quantity=1;" ng-model="item.quantity" /><\/div><\/div><div class="subtotal alignright width-full"><b>Subtotal:<\/b> {{ field.meta.getTotal() | currency:"$":2 }}<\/div><input id="hidden{{field.meta.uniqueName}}" name="hidden{{field.meta.uniqueName}}" type="hidden" ng-model="field.meta.checkedValue" ng-required="field.meta.isRequired" /><\/div>',link:function(n){var i=n.field.meta.settingObj.enableQuantityField;t.forEach(n.field.meta.settingObj.customSource,function(t){t.checked&&(n.field.meta.checkedValue=!0);i&&(t.quantity=0)});n.checkboxlistClick=function(){if(n.field.disabled)return!1;n[n.formName]["hidden"+n.field.meta.uniqueName]&&n[n.formName]["hidden"+n.field.meta.uniqueName].$setDirty()}}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentdonationDisplay",function(){return{restrict:"EA",template:'<div ng-if="hasValue" class="field-input calculatable-payment-field"><div>{{field.children.Price.data.valueFloat | currency:"$":2}}<\/div><div ng-if="checkedItem" class="subtotal alignright"><b>Subtotal:<\/b> {{ (field.children.Price.data.valueFloat || 0) | currency:"$":2 }}<\/div><\/div><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){if(n.hasValue=n.field.meta.childrenArr&&Enumerable.From(n.field.meta.childrenArr).Any("c => c.data"),n.field.meta.childrenArr){var t=n.field.meta.uniqueName,i=n.field.meta.childrenArr;n.field.meta.children={Price:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Price'").First(),Tax:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Tax'").First()};n.field.children=n.field.meta.children}n.checkedItem=n.field.children.Price&&n.field.children.Price.data&&n.field.children.Price.data.valueFloat||null;n.$watch(function(){n.hasValue=n.field.children&&n.checkedItem})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentdonationEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}_parent" class="field-input calculatable-payment-field payment-donation-field"><div validateinput="" class="payment-field-quantity"><label for="{{field.meta.uniqueName}}">Amount: <\/label>$ <input type="number" id="{{field.meta.uniqueName}}" name="{{field.meta.uniqueName}}" ng-model="field.children.Price.data.valueFloat" ng-disabled="field.disabled" ng-pattern="field.meta.settingObj.quantityDecimalFormat" ng-required="field.meta.isRequired" ng-max="field.meta.settingObj.rangeMax" ng-min="field.meta.settingObj.rangeMin" error-messages-expr="field.meta.errorMessages" + aria-labelledby="{{field.meta.uniqueName}}_label" /><\/div><\/div>',link:function(n){n.field.data&&n.field.data.valueFloat&&(n.field.children.Price.data.valueFloat=n.field.data.valueFloat)}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentdropdownDisplay",function(){return{restrict:"EA",template:'<div ng-if="checkedItem && hasValue" class="field-input calculatable-payment-field"><div>{{checkedItem}} {{checkedItem ? "(" : ""}}{{getPrice(checkedItem) | currency:"$":2}}{{checkedItem ? ")" : ""}} <span ng-if="field.meta.settingObj.enableQuantityField"> - Quantity: {{ quantity }}<\/span><\/div><div class="subtotal alignright"><b>Subtotal:<\/b> {{ getTotal() | currency:"$":2 }}<\/div><\/div><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){if(n.hasValue=n.field.meta.childrenArr&&Enumerable.From(n.field.meta.childrenArr).Any("c => c.data"),n.field.meta.childrenArr){var t=n.field.meta.uniqueName,i=n.field.meta.childrenArr;n.field.meta.children={Selection:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Selection'").First(),Price:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Price'").First(),Quantity:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Quantity'").First(),Tax:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Tax'").First()};n.field.children=n.field.meta.children;!n.field.children.Quantity||n.field.children.Quantity.data||n.field.meta.settingObj.enableQuantityField||(n.field.children.Quantity.data={valueFloat:1})}n.checkedItem=n.field.children.Selection&&n.field.children.Selection.data&&n.field.children.Selection.data.valueString||null;n.quantity=n.field.children.Quantity&&n.field.children.Quantity.data&&n.field.children.Quantity.data.valueFloat?n.field.children.Quantity.data.valueFloat:n.field.meta.settingObj.enableQuantityField?0:1;n.getPrice=function(t){var i=$.grep(n.field.meta.settingObj.customSource,function(n){return n.label==t});return i.length?i[0].price:0};n.getTotal=function(){return n.field.children.Selection&&n.field.children.Selection.data?n.getPrice(n.field.children.Selection.data.valueString)*n.quantity:0};n.$watch(function(){n.hasValue=n.field.children&&n.getTotal()>0})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentdropdownEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}_parent" class="field-input calculatable-payment-field payment-dropdown-field"><div><div validateinput validateinput-error-messages-expr="field.meta.errorMessages"><select id="{{field.meta.uniqueName}}" class="width-half" placeholder="(Choose an option)" ng-disabled="field.disabled" ng-required="field.meta.isRequired" name="{{field.meta.uniqueName}}" ng-model="field.children.Selection.data.valueString" ng-change="updatePrice()"><option value="">(Choose an option)<\/option><option ng-if="field.meta.settingObj.displayPriceValue" ng-repeat="item in field.meta.settingObj.customSource" sort-data="{{$index}}" value="{{item.label}}">{{item.label}} ({{item.price | currency:"$":2}})<\/option><option ng-if="!field.meta.settingObj.displayPriceValue" ng-repeat="item in field.meta.settingObj.customSource" sort-data="{{$index}}" value="{{item.label}}">{{item.label}}<\/option><\/select><\/div><div class="payment-field-quantity" ng-if="field.meta.settingObj.enableQuantityField" validateinput ><label for="{{field.meta.uniqueName}}{{field.meta.id}}_quantity">Quantity:<\/label><input type="number" ng-disabled="field.disabled" id="{{field.meta.uniqueName}}{{field.meta.id}}_quantity" name="{{field.meta.uniqueName}}{{field.meta.id}}_quantity" ng-pattern="field.meta.settingObj.quantityDecimalFormat" ng-model="field.children.Quantity.data.valueFloat" ng-required="field.meta.isRequired" error-messages-expr="field.meta.errorMessages" ng-min="{{field.meta.settingObj.rangeMin}}" ng-max="{{field.meta.settingObj.rangeMax}}" /><\/div><\/div><div class="subtotal alignright width-full"><b>Subtotal:<\/b> {{ field.meta.getPrice(field.children.Selection.data.valueString) * (!field.meta.settingObj.enableQuantityField ? 1 : (field.children.Quantity ? field.children.Quantity.data.valueFloat : 0)) | currency:"$":2 }}<\/div><\/div>',link:function(n){n.field.children&&n.field.children.Price&&n.field.children.Price.data||t.extend(n.field,{children:{Price:{data:{}},Selection:{data:{}},Quantity:{data:{valueFloat:n.field.meta.settingObj.enableQuantityField?0:1}}}});n.field.children.Selection&&n.field.children.Selection.data&&(n.field.children.Selection.data=t.extend(n.field.children.Selection.data,{valueString:n.field.data?n.field.data.valueString:""}));n.updatePrice=function(){n.field.getCurrentPrice&&(n.field.children.Price.data.valueFloat=n.field.getCurrentPrice(n.field.children.Selection.data.valueString))}}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentradioDisplay",function(){return{restrict:"EA",template:'<div ng-if="hasValue" class="field-input calculatable-payment-field"><div ng-repeat="item in selectedItems">{{item.label}}  <span ng-if="field.meta.settingObj.displayPriceValue">({{item.price | currency:"$":2}})<\/span><span class="alignright" ng-if="field.meta.settingObj.enableQuantityField && field.children.Selection.data.valueString == item.label"> - Quantity: {{quantity}}<\/span><\/div><div ng-if="checkedItem" class="subtotal alignright"><b>Subtotal:<\/b> {{ getTotal() | currency:"$":2 }}<\/div><\/div><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){var i,r,u,f;n.hasValue=n.field.meta.childrenArr&&Enumerable.From(n.field.meta.childrenArr).Any("c => c.data");n.field.meta.childrenArr&&(i=n.field.meta.uniqueName,r=n.field.meta.childrenArr,n.field.meta.children={Selection:Enumerable.From(r).Where("c => c.meta.uniqueName == '"+i+"_Selection'").First(),Price:Enumerable.From(r).Where("c => c.meta.uniqueName == '"+i+"_Price'").First(),Quantity:Enumerable.From(r).Where("c => c.meta.uniqueName == '"+i+"_Quantity'").First(),Tax:Enumerable.From(r).Where("c => c.meta.uniqueName == '"+i+"_Tax'").First()},n.field.children=n.field.meta.children,!n.field.children.Quantity||n.field.children.Quantity.data||n.field.meta.settingObj.enableQuantityField||(n.field.children.Quantity.data={valueFloat:1}));u=n.field.children&&n.field.children.Selection&&n.field.children.Selection.data?n.field.children.Selection.data.valueString:"";t.forEach(n.field.meta.settingObj.customSource,function(n){n.checked=u==n.label?!0:!1});n.checkedItem=n.field.children.Selection&&n.field.children.Selection.data&&n.field.children.Selection.data.valueString||null;n.selectedItems=$.grep(n.field.meta.settingObj.customSource,function(n){return n.checked});n.quantity=n.field.children.Quantity&&n.field.children.Quantity.data&&n.field.children.Quantity.data.valueFloat?n.field.children.Quantity.data.valueFloat:!n.field.meta.settingObj.enableQuantityField&&u?1:0;n.getPrice=function(t){var i=$.grep(n.field.meta.settingObj.customSource,function(n){return n.label==t});return i.length?i[0].price:0};f=(n.field.children&&n.field.children.Price&&n.field.children.Price.data?n.field.children.Price.data.valueFloat:0)||n.getPrice(n.field.children.Selection.data?n.field.children.Selection.data.valueString:"");n.getTotal=function(){return n.field.meta.settingObj.enableQuantityField?f*(n.quantity||0):f};n.$watch(function(){n.hasValue=n.field.children&&n.getTotal()>0})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentradioEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}" role="radiogroup" aria-labelledby="{{field.meta.uniqueName}}_label" class="field-input radiobuttonlist-area calculatable-payment-field payment-radio-field" validateinput validateinput-target=".radiobuttonlist-area" validateinput-error-messages-expr="field.meta.errorMessages"><div class="radiobuttonlist-area"><div class="radiobox-item" ng-repeat="item in field.meta.settingObj.customSource" sort-data="{{$index}}"><input role="radio" type="radio" ng-required="field.meta.isRequired" id="{{field.meta.uniqueName}}{{$index}}" ng-disabled="field.disabled" name="{{field.meta.uniqueName}}" ng-model="field.children.Selection.data.valueString" ng-value="item.label" ng-change="updatePrice()" /><label for="{{field.meta.uniqueName}}{{$index}}" id="{{field.meta.uniqueName}}{{$index}}_label">{{item.label}} <span ng-if="field.meta.settingObj.displayPriceValue">({{item.price | currency:"$":2}})<\/span><\/label><div class="width-full payment-field-quantity" validateinput validateinput-error-messages-expr="field.meta.errorMessages" ng-if="field.meta.settingObj.enableQuantityField && field.children.Selection.data.valueString == item.label"><label class="{{field.meta.uniqueName}}{{field.meta.id}}_quantity" for="{{field.meta.uniqueName}}{{field.meta.id}}_quantity">Quantity: <\/label><input type="number" ng-disabled="field.disabled" id="{{field.meta.uniqueName}}{{field.meta.id}}_quantity" name="{{field.meta.uniqueName}}{{field.meta.id}}_quantity" ng-pattern="field.meta.settingObj.quantityDecimalFormat" ng-model="field.children.Quantity.data.valueFloat" ng-required="field.meta.isRequired" error-messages-expr="field.meta.errorMessages" ng-min="{{field.meta.settingObj.rangeMin}}" ng-max="{{field.meta.settingObj.rangeMax}}" /><\/div><\/div><\/div><span ng-if="!field.meta.settingObj.enableQuantityField && !field.children.Quantity.data.valueFloat" ng-init="field.children.Quantity.data.valueFloat = 1;"><\/span><div class="subtotal alignright width-full"><b>Subtotal:<\/b> {{ ((field.meta.getPrice(field.children.Selection.data.valueString) * field.children.Quantity.data.valueFloat)) || 0 | currency:"$":2 }}<\/div><\/div>',link:function(n){n.field.children&&n.field.children.Price&&n.field.children.Price.data||t.extend(n.field,{children:{Price:{data:{}},Selection:{data:{}},Quantity:{data:{}}}});n.field.children.Selection&&n.field.children.Selection.data&&(n.field.children.Selection.data=t.extend(n.field.children.Selection.data,{valueString:n.field.data?n.field.data.valueString:""}));n.updatePrice=function(){n.field.getCurrentPrice&&(n.field.children.Price.data.valueFloat=n.field.getCurrentPrice(n.field.children.Selection.data.valueString))};n.field.children.Selection&&n.field.children.Selection.data&&n.updatePrice()}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentsingleitemDisplay",function(){return{restrict:"EA",template:'<div ng-if="hasValue" class="field-input calculatable-payment-field"><div>{{price | currency:"$":2}}<span ng-if="field.meta.settingObj.enableQuantityField">   - Quantity: {{quantity}}<\/span><\/div><div class="subtotal alignright"><b>Subtotal:<\/b> {{ getTotal() | currency:"$":2 }}<\/div><\/div><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){if(n.hasValue=n.field.meta.childrenArr&&Enumerable.From(n.field.meta.childrenArr).Any("c => c.data"),n.field.meta.childrenArr){var t=n.field.meta.uniqueName,i=n.field.meta.childrenArr;n.field.meta.children={Price:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Price'").First(),Quantity:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Quantity'").First(),Tax:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Tax'").First()};n.field.children=n.field.meta.children;!n.field.children.Quantity||n.field.children.Quantity.data||n.field.meta.settingObj.enableQuantityField||(n.field.children.Quantity.data={valueFloat:1})}n.price=n.field.children&&n.field.children.Price&&n.field.children.Price.data&&n.field.children.Price.data.valueFloat?n.field.children.Price.data.valueFloat:n.field.meta.settingObj?n.field.meta.settingObj.price:0;n.quantity=n.field.children&&n.field.children.Quantity&&n.field.children.Quantity.data&&n.field.children.Quantity.data.valueFloat?n.field.children.Quantity.data.valueFloat:n.field.meta.settingObj.enableQuantityField?0:1;n.getTotal=function(){return n.field.meta.settingObj.enableQuantityField?n.price*n.quantity:n.price};n.$watch(function(){n.hasValue=n.field.children&&n.getTotal()>0})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentsingleitemEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}" class="field-input calculatable-payment-field payment-singleitem-field"><input aria-label = "{{field.meta.settingObj.price | currency:"$":2 }}" type="hidden" id="{{field.meta.uniqueName}}_Price" name="{{field.meta.uniqueName}}_Price" ng-model="field.children.Price.data.valueFloat" ng-init="field.children.Price.data.valueFloat = field.meta.settingObj.price" /><div validateinput="">{{field.meta.settingObj.price | currency:"$":2 }} <div ng-if="field.meta.settingObj.enableQuantityField" class="payment-field-quantity" aria-labelledby="{{field.meta.uniqueName}}_label"><label for="{{field.meta.uniqueName}}_Quantity">Quantity: <\/label><input type="text" id="{{field.meta.uniqueName}}_Quantity" name="{{field.meta.uniqueName}}" aria-labelledby="{{field.meta.uniqueName}}_label"ng-model="field.children.Quantity.data.valueFloat" ng-disabled="field.disabled" ng-pattern="field.meta.settingObj.quantityDecimalFormat" vi-quantity-format="field.meta.settingObj.quantityDecimalFormat" ng-required="field.meta.isRequired" ng-max="field.meta.settingObj.rangeMax" ng-min="field.meta.settingObj.rangeMin" error-messages-expr="field.meta.errorMessages" /><\/div><span ng-if="!field.meta.settingObj.enableQuantityField && !field.children.Quantity.data.valueFloat" ng-init="field.children.Quantity.data.valueFloat = 1;"><\/span><div class="subtotal alignright width-full"><b>Subtotal:<\/b> {{ getTotal() | currency:"$":2 }}<\/div><\/div><\/div>',link:function(n){n.getTotal=function(){return n.field.meta.settingObj.enableQuantityField&&n.field.children.Quantity?n.field.children.Price.data.valueFloat*(n.field.children.Quantity.data.valueFloat||0):n.field.children.Price.data.valueFloat}}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymenttotalDisplay",["$timeout",function(n){return{restrict:"EA",template:'<div ng-if="hasValue" class="field-input payment-total-field"><p>{{field.meta.settingObj.summaryText}}<\/p><table class="{{isBackend ? \'\' : \'listtable\'}}"><thead><tr><th class="item-label">Item<\/th><th class="price">Price<\/th><th class="quantity">Quantity<\/th><th class="subtotal">Subtotal<\/th><\/tr><\/thead><tbody><tr ng-repeat="item in paymentItems"><td class="item-label">{{item.label}}<\/td><td class="price">{{item.price | currency:"$":2}}<\/td><td class="quantity">{{item.quantity}}<\/td><td class="subtotal">{{item.subTotal | currency:"$":2}}<\/td><\/tr><\/tbody><\/table><div class="additional-fee-panel" ng-show="paymentTotal.additionalFees"><span class="additional-fees-label">{{paymentTotal.additionalFeesLabel}}<\/span><span class="amount">{{paymentTotal.additionalFees | currency:"$":2 }}<span><\/div><div class="grand-total-panel"><span class="grand-total-label">{{paymentTotal.grandTotalLabel}}<\/span><span class="amount">{{paymentTotal.grandTotal | currency:"$":2 }}<\/span><\/div><\/div><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(i){n(function(){function u(){var n=[],u=i.field.meta.settingObj,f=Enumerable.From(i.field.meta._additionalFeesAmountTypeSource).Where("c => c.value=="+u.additionalFeesAmountType).FirstOrDefault()||i.field.meta._additionalFeesAmountTypeSource[0],e=Enumerable.From(i.field.meta._additionalFeesTypeSource).Where("c => c.value=="+u.additionalFeesType).FirstOrDefault()||i.field.meta._additionalFeesTypeSource[0];t.forEach(r,function(t){var i=t.field.getCalculatableItems();t.field.calculateTax(u.additionalFeesAmount,f,e);n=Enumerable.From(n).Union(Enumerable.From(i)).ToArray()});i.paymentItems=Enumerable.From(n).Where("c => c.subTotal > 0").ToArray();var o=Enumerable.From(n).Sum("c => c.subTotal"),h=Enumerable.From(n).Where("c => !c.nonTax").Sum("c => c.subTotal"),s=f.value==FORMFIELDAMOUNTTYPE.PERCENTAGE?h*u.additionalFeesAmount/100:u.additionalFeesAmount;i.paymentTotal={additionalFeesLabel:e.text+":",additionalFees:s,grandTotalLabel:"Grand Total:",grandTotal:o+s};t.merge(i.field,{children:{SubTotal:{data:{valueFloat:o}},AdditionalFee:{data:{valueFloat:i.paymentTotal.additionalFees}},GrandTotal:{data:{valueFloat:i.paymentTotal.grandTotal}}}})}var n=[],r;i.showPaymentTotals=!0;i.isBackend?t.element(".individual-responses").length!=0?(n=t.element(".individual-responses .calculatable-payment-field"),i.showPaymentTotals=i.field.meta.childrenArr&&Enumerable.From(i.field.meta.childrenArr).Any("c => c.data")):t.element(".transaction_container").length!=0?n=t.element(".transaction_container .calculatable-payment-field"):t.element(".esign-responses").length!=0&&(n=t.element(".esign-responses .calculatable-payment-field")):n=t.element(".form-builder-dashboard-review").length!=0?t.element(".form-builder-dashboard-review .calculatable-payment-field"):t.element(".esign-pdf-review").length!=0?t.element(".esign-pdf-review .calculatable-payment-field"):t.element('form[name="'+i.formName+'"] .form-review-section .calculatable-payment-field');r=$.map(n,function(n){return $(n).scope()});i.hasValue=r.length>0&&i.showPaymentTotals;i.field.meta._additionalFeesTypeSource=[{value:FORMFIELDFEETYPE.TAX,text:"Tax"},{value:FORMFIELDFEETYPE.ADDITIONALFEE,text:"Additional Fee"}];i.field.meta._additionalFeesAmountTypeSource=[{value:FORMFIELDAMOUNTTYPE.PERCENTAGE,text:"% - Percent"},{value:FORMFIELDAMOUNTTYPE.FIXEDAMOUNT,text:"$"}];u()},100);i.$watch(function(){i.hasValue=i.showPaymentTotals&&i.field.children&&i.paymentTotal&&i.paymentTotal.grandTotal>0})}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymenttotalEdit",["$timeout",function(n){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}" class="field-input payment-total-field"><p>{{field.meta.settingObj.summaryText}}<\/p><table class="{{isBackend ? \'\' : \'listtable\'}}"><thead><tr><th class="itemlabel">Item<\/th><th class="price">Price<\/th><th class="quantity">Quantity<\/th><th class="subtotal">Subtotal<\/th><\/tr><\/thead><tbody><tr ng-repeat="item in paymentItems"><td class="itemlabel">{{item.label}}<\/td><td class="price">{{item.price | currency:"$":2}}<\/td><td class="quantity">{{item.quantity}}<\/td><td class="subtotal">{{item.subTotal | currency:"$":2}}<\/td><\/tr><\/tbody><\/table><div class="additional-fee-panel" ng-show="paymentTotal.additionalFees"><span class="additional-fees-label">{{paymentTotal.additionalFeesLabel}}<\/span><span class="amount">{{paymentTotal.additionalFees | currency:"$":2 }}<span><\/div><div class="grand-total-panel"><span class="grand-total-label">{{paymentTotal.grandTotalLabel}}<\/span><span class="amount">{{paymentTotal.grandTotal | currency:"$":2 }}<\/span><\/div><\/div>',link:function(i){n(function(){function e(){var r=[],u=i.field.meta.settingObj,f=Enumerable.From(i.field.meta._additionalFeesAmountTypeSource).Where("c => c.value=="+u.additionalFeesAmountType).FirstOrDefault()||i.field.meta._additionalFeesAmountTypeSource[0],e=Enumerable.From(i.field.meta._additionalFeesTypeSource).Where("c => c.value=="+u.additionalFeesType).FirstOrDefault()||i.field.meta._additionalFeesTypeSource[0];t.forEach(n,function(n){var t=n.field.getCalculatableItems();n.field.calculateTax(u.additionalFeesAmount,f,e);r=Enumerable.From(r).Union(Enumerable.From(t)).ToArray()});i.paymentItems=Enumerable.From(r).Where("c => c.subTotal > 0").ToArray();var o=Enumerable.From(r).Sum("c => c.subTotal"),h=Enumerable.From(r).Where("c => !c.nonTax").Sum("c => c.subTotal"),s=f.value==FORMFIELDAMOUNTTYPE.PERCENTAGE?h*u.additionalFeesAmount/100:u.additionalFeesAmount;i.paymentTotal={additionalFeesLabel:e.text+":",additionalFees:s,grandTotalLabel:"Grand Total:",grandTotal:o+s};t.merge(i.field,{children:{SubTotal:{data:{valueFloat:o}},AdditionalFee:{data:{valueFloat:i.paymentTotal.additionalFees}},GrandTotal:{data:{valueFloat:i.paymentTotal.grandTotal}}}})}for(var u,f=t.element('form[name="'+i.formName+'"] .form-submit-section .calculatable-payment-field'),n=$.map(f,function(n){return $(n).scope()}),r=0;r<n.length;r++)u=n[r],u.field.registerWatch&&u.field.registerWatch(i,e)},0)}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPhoneDisplay",function(){return{restrict:"EA",template:'<vi-form-format-phone ng-if="hasValue" cur-val="field"><\/vi-form-format-phone><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){if(n.hasValue=n.children&&n.children.Extension.data&&n.children.Number.data,n.field.meta.childrenArr){var t=n.field.meta.uniqueName,i=n.field.meta.childrenArr;n.field.meta.children={Number:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Number'").FirstOrDefault(),Extension:Enumerable.From(i).Where("c => c.meta.uniqueName == '"+t+"_Extension'").FirstOrDefault()};n.field.children=n.field.meta.children}n.$watch(function(){n.hasValue=n.field.children&&(n.field.children.Number.data.valueString||n.field.meta.children.Extension.display&&n.field.children.Extension.data.valueString)})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPhoneEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}" class="field-input" role="group" aria-labelledby="{{field.meta.uniqueName}}_label"><span class="field-column-item width-half phone-item" validateinput=""><label class="wcag_only" for="{{field.meta.uniqueName}}_Number">Phone<\/label><input type="tel" autocomplete="tel-national" id="{{field.meta.uniqueName}}_Number"name="{{field.meta.uniqueName}}_Number"ng-model="field.children.Number.data.valueString"ng-disabled="field.disabled"ng-required="field.meta.isRequired"ui-mask="{{field.meta.format}}"aria-label="This is a phone number field."error-messages-expr="field.meta.errorMessages"/><\/span><span ng-if="field.meta.settingObj.enableExtension" class="field-column-item width-half phone-item" validateinput=""><label class="phone-ext-label" for="{{field.meta.uniqueName}}_Extension">ext.<\/label><input type="text" autocomplete="tel-national" class="phone-ext-text"maxlength="5"ng-pattern="field.type.numberPattern"id="{{field.meta.uniqueName}}_Extension"name="{{field.meta.uniqueName}}_Extension"ng-model="field.children.Extension.data.valueString"aria-label="This is a phone extension field."ng-disabled="field.disabled"error-messages-expr="field.meta.errorMessages"/><\/span><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldRadiobuttonlistDisplay",function(){return{restrict:"EA",template:'<div ng-if="hasValue" ng-repeat="item in checkedValues">{{item.text}}<\/div><div ng-if="hasValue && field.data.isOther">{{field.data.valueString}}<\/div><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){var i=n.field.data!=null?n.field.data.valueString:"";n.hasValue=!visionOptions.loggedIn||n.field.data&&n.field.data.valueString;t.forEach(n.field.meta.settingObj.customSource,function(n){n.checked=i==n.value?!0:!1});n.checkedValues=$.grep(n.field.meta.settingObj.customSource,function(n){return n.checked})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldRadiobuttonlistEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}" class="field-input" validateinput validateinput-target=".radiobuttonlist-area" validateinput-field-name="hidden{{field.meta.uniqueName}}" validateinput-error-messages-expr="field.meta.errorMessages" ><div class="radiobuttonlist-area" role="radiogroup" aria-labelledby="{{field.meta.uniqueName}}_label"><div class="radiobox-item" ng-repeat="item in field.meta.settingObj.customSource" sort-data="{{$index}}"><input type="radio" id="{{field.meta.uniqueName}}{{$index}}" ng-disabled="field.disabled" name="{{field.meta.uniqueName}}" ng-model="field.data.valueString" ng-value="item.value" ng-click="field.data.isOther=false;" /><label for="{{field.meta.uniqueName}}{{$index}}">{{item.text}}<\/label><\/div><div class="radiobox-item width-half" ng-if="field.meta.allowOther"><input type="radio" ng-disabled="field.disabled" id="{{field.meta.uniqueName}}OtherRadioButton" name="{{field.meta.uniqueName}}" ng-model="field.data.isOther" ng-value="true"/><label for="{{field.meta.uniqueName}}OtherRadioButton">Other<\/label><input type="text" class="other-option ng-dirty ng-invalid" ng-if="field.data.isOther" ng-required="field.meta.settingObj.markOtherRequired" ng-init="field.meta.otherItemValue=\'\';field.data.valueString=\'Other: \';" ng-disabled="field.disabled" id="{{field.meta.uniqueName}}OtherTextBox" name="{{field.meta.uniqueName}}OtherTextBox" ng-model="field.meta.otherItemValue" ng-maxlength="200" maxlength="200" ng-change="field.data.valueString=\'Other: \'+(field.meta.otherItemValue || \'\');"/><span class="overlay-text width-full" ng-if="field.data.isOther">{{field.meta.otherItemValue | lengthCountLeft : 200}}  characters<\/span><span role="alert" ng-messages ng-if="field.data.isOther && field.meta.settingObj.markOtherRequired" ng-show="!field.meta.otherItemValue.length">"Other" text box is required!<\/span><\/div><\/div><input id="hidden{{field.meta.uniqueName}}" name="hidden{{field.meta.uniqueName}}" type="hidden" ng-model="field.data.valueString" ng-required="field.meta.isRequired" /><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldReadonlycontentDisplay",["$filter",function(){return{restrict:"EA",template:'<ng-bind-html ng-bind-html="field.meta.defaultValueHtml | maskText | to_trusted"><\/ng-bind-html>',link:function(){}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldReadonlycontentEdit",["$filter",function(){return{restrict:"EA",template:'<div ng-if="isEditMode" class="form-readonly-content" ng-bind-html="field.meta.defaultValueHtml | disableAllLinks | maskText | to_trusted"><\/div><div ng-if="!isEditMode" class="form-readonly-content" ng-bind-html="field.meta.defaultValueHtml | maskText | to_trusted"><\/div>',link:function(n){n.isEditMode=visionOptions.loggedIn?location.href.toLowerCase().indexOf("formbuilder/formbuilder/formsubmit")>=0:!1}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldReadonlytextDisplay",["$filter",function(){return{restrict:"EA",template:'<p class="form-readonly-text" ng-bind-html="field.meta.label|textToHtml"><\/p>',link:function(){}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldReadonlytextEdit",["$filter",function(){return{restrict:"EA",template:'<p class="form-readonly-text" ng-bind-html="field.meta.label|textToHtml"><\/p>',link:function(){}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldSectionbreakDisplay",function(){return{restrict:"EA",template:'<hr class="form-section-break width-full"/>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldSectionbreakEdit",function(){return{restrict:"EA",template:'<hr class="form-section-break width-full"/>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldSingledropdownDisplay",function(){return{restrict:"EA",template:'<span ng-if="hasValue"><div ng-if="field.meta.settingObj.sourceTypeID == \'0\'">{{selectedValue}}<\/div><div ng-if="field.meta.settingObj.sourceTypeID != \'0\'">{{selectedValue}}<\/div><\/span><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){if(n.hasValue=n.field.data&&n.field.data.valueString,n.field.data&&n.field.data.valueString){var r=n.field.data.valueString,u=JSON.parse(n.field.meta.setting),t=null,i=null;switch(u.sourceTypeID){case"0":t=Enumerable.From(u.customSource).Where("escape($.value.toLocaleLowerCase()) == '"+escape(r.toLocaleLowerCase())+"'").FirstOrDefault();t&&(i=t.text);break;case"1":t=Enumerable.From(n.field.meta._dataSource).Where("$.Country == 'US' && $.Abbreviation == '"+r.toLocaleUpperCase()+"'").FirstOrDefault();t&&(i=t.Name);break;case"2":t=Enumerable.From(n.field.meta._dataSource).Where("$.Country == 'CA' && $.Abbreviation == '"+r.toLocaleUpperCase()+"'").FirstOrDefault();t&&(i=t.Name)}n.selectedValue=i!=null?i:r}}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldSingledropdownEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}_parent" class="field-input width-half" validateinput validateinput-field-name="field.meta.uniqueName" validateinput-error-messages-expr="field.meta.errorMessages"><select class="width-full" error-target ng-if="field.meta.settingObj.sourceTypeID == \'0\'" ng-model="field.data.valueString2" ng-init="field.meta.setValueString2(field);" ng-change="field.meta.setValueString(field)" ng-disabled="field.disabled" name="{{field.meta.uniqueName}}" id="{{field.meta.uniqueName}}" ng-required="field.meta.isRequired"><option value=""><\/option><option ng-repeat="item in field.meta.settingObj.customSource" value="{{item.value}}">{{item.text}}<\/option><option ng-if="field.meta.allowOther" value="cms6IsOtherItemChecked">Other<\/option><\/select><select class="width-half" error-target ng-if="field.meta.settingObj.sourceTypeID == \'1\'" ng-model="field.data.valueString2" ng-init="field.meta.setValueString2(field);" ng-change="field.meta.setValueString(field)" ng-disabled="field.disabled" name="{{field.meta.uniqueName}}" id="{{field.meta.uniqueName}}" ng-required="field.meta.isRequired"><option value=""><\/option><option ng-repeat="item in field.meta._dataSource | filter:{Country:\'US\'}" value="{{item.Name}}">{{item.Name}}<\/option><option ng-if="field.meta.allowOther" value="cms6IsOtherItemChecked">Other<\/option><\/select><select class="width-half" error-target ng-if="field.meta.settingObj.sourceTypeID == \'2\'" ng-model="field.data.valueString2" ng-init="field.meta.setValueString2(field);" ng-change="field.meta.setValueString(field)" ng-disabled="field.disabled" name="{{field.meta.uniqueName}}" id="{{field.meta.uniqueName}}" ng-required="field.meta.isRequired"><option value=""><\/option><option ng-repeat="item in field.meta._dataSource | filter:{Country:\'CA\'}" value="{{item.Name}}">{{item.Name}}<\/option><option ng-if="field.meta.allowOther" value="cms6IsOtherItemChecked">Other<\/option><\/select><input class="width-half single-dropdown-other ng-dirty ng-invalid" ng-if="field.meta.allowOther && field.data.valueString2 == \'cms6IsOtherItemChecked\'" ng-required = "field.meta.settingObj.markOtherRequired" type="text" ng-disabled="field.disabled" id="{{field.meta.uniqueName}}OtherTextBox" name="{{field.meta.uniqueName}}OtherTextBox" ng-model="field.meta.otherItemValue" ng-change="field.meta.setValueString(field)" ng-maxlength="200" maxlength="200"/><span class="overlay-text width-full" ng-if="field.data.isOther">{{field.meta.otherItemValue | lengthCountLeft : 200}}  characters<\/span><span role="alert" ng-messages ng-if="field.data.isOther && field.meta.settingObj.markOtherRequired" ng-show="!field.meta.otherItemValue.length">"Other" text box is required!<\/span>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldSinglelinetextDisplay",function(){return{restrict:"EA",template:'<span ng-if="hasValue">{{field.data.valueString}}<\/span><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.hasValue=n.field.data&&n.field.data.valueString}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldSinglelinetextEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}_parent" class="field-input overlay-input-text width-full" validateinput=""><input type="text" id="{{field.meta.uniqueName}}" name="{{field.meta.uniqueName}}" ng-model="field.data.valueString" ng-disabled="field.disabled" ng-trim="false" ng-required="field.meta.isRequired" ng-maxlength="field.meta.settingObj.rangeMax" maxlength="{{field.meta.settingObj.rangeMax}}" ng-minlength="field.meta.settingObj.rangeMin" ng-pattern="field.meta.settingObj.regex" vi-check-xss="true"error-messages-expr="field.meta.errorMessages" /><span class="overlay-text width-full" ng-if="field.meta.settingObj.rangeMax > 0">{{field.data.valueString | lengthCountLeft : field.meta.settingObj.rangeMax}}  characters<\/span><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldSubheadingDisplay",function(){return{restrict:"EA",template:"<h3>{{field.meta.label}}<\/h3>",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldSubheadingEdit",function(){return{restrict:"EA",template:"<h3>{{field.meta.label}}<\/h3>",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldWebsiteDisplay",function(){return{restrict:"EA",template:'<span ng-if="hasValue"><a href="{{answerHref}}">{{field.data.valueString}}<\/a><\/span><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){if(n.hasValue=n.field.data&&n.field.data.valueString,n.answerHref="javascript:void(0);",n.field&&n.field.data&&n.field.data.valueString){var t=n.field.data.valueString;n.answerHref=t&&!t.startsWith("http://")&&!t.startsWith("https://")&&n.field.meta.settingObj.allowExternal?"http://"+t:t}}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldWebsiteEdit",function(){return{restrict:"EA",template:'<div id="{{field.meta.uniqueName}}_parent" class="field-input width-half" validateinput=""><input type="text"name="{{field.meta.uniqueName}}"id="{{field.meta.uniqueName}}"ng-model="field.data.valueString"ng-disabled="field.disabled"ng-required="field.meta.isRequired"ng-pattern="field.meta.websitePattern"vi-check-xss="true"error-messages-expr="field.meta.errorMessages" /><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFormFieldEdit",["$compile","formFieldTypeManager",function(n){return{restrict:"EA",scope:{field:"=viModel",disabled:"=viDisabled",isBackend:"="},transclude:!0,replace:!0,terminal:!0,compile:function(){return function(i,r,u){var h=i.field.type.getBuilderEditTemplate(i.field),s,e,f,o;r.html(h);r.addClass("fieldtype-"+i.field.type.className);s=i.$eval(u.viDisabled||"false");i.field.disabled=s;e=t.element(r).closest("form");e?(f=e.attr("name"),i.formName=f,o=e.scope(),o&&o[f]&&typeof i[f]=="undefined"&&(i[f]=o[f],n(r.contents())(i))):n(r.contents())(i)}},link:function(n){!n.field}}}]);i.directive("viFormFieldDisplay",["$compile","formFieldTypeManager",function(n){return{restrict:"EA",scope:{field:"=viModel",disabled:"=viDisabled",isBackend:"=",forPdf:"=",attachmentBaseUrl:"=",attachmentEmailLinks:"=",canViewSensitive:"="},transclude:!0,replace:!0,terminal:!0,compile:function(){return function(i,r,u){var f,h,o,e,s;i.isBackend&&i.field.meta.sensitive&&!i.canViewSensitive?(f=i.field.type.getBuilderDisplayLabelTemplate()+"<div>*****<\/div>",r.html(f)):!i.isBackend&&i.field.meta.sensitive?(f=i.field.type.getBuilderDisplayLabelTemplate()+"<div>*****<\/div>",r.html(f)):(f=i.field.type.getBuilderDisplayTemplate(),r.html(f));h=i.$eval(u.viDisabled||"false");i.field.disabled=h;o=t.element(r).closest("form");o&&(e=o.attr("name"),i.formName=e,s=o.scope(),s&&s[e]&&typeof i[e]=="undefined"&&(i[e]=s[e]));n(r.contents())(i)}},link:function(n){!n.field}}}]);i.directive("viFormFieldSetting",["$compile","formFieldTypeManager",function(n){return{restrict:"EA",scope:{field:"=viModel"},compile:function(){return function(i,r){var o,f,u,e;i.field&&(o=i.field.type.getBuilderSettingTemplate(),r.html(o),f=t.element(r).closest("form"),f&&(u=f.attr("name"),e=f.scope(),e&&e[u]&&typeof i[u]=="undefined"&&(i[u]=e[u])),n(r.contents())(i))}},link:function(n){!n.field}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldAttachmentResponseReview",function(){return{restrict:"EA",template:'<span ng-if="value">{{AttachmentFormattedValue}}<\/span><span ng-if="!value" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.value=n.item[n.columnInfo.uniqueName];var i=$.map(t.fromJson(n.value)||[],function(n){return n.name});n.AttachmentFormattedValue=i.join(", ")}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldCheckboxlistResponseReview",function(){return{restrict:"EA",template:'<span ng-if="value"><span ng-if="childProperty==\'\'" title="{{FormattedValue}}" >{{ FormattedValue }}<\/span><span ng-if="childProperty==\'Selection\'" title="{{FormattedValue}}" >{{ FormattedValue }}<\/span><span ng-if="childProperty==\'Price\'" ng-repeat="sItem in arrValue track by  $index" >{{ sItem | currency:"$":2}}{{ $last ? "" : "; "}}<\/span><span ng-if="childProperty==\'Tax\'" ng-repeat="sItem in arrValue track by  $index">{{ sItem | currency:"$":2}}{{ $last ? "" : "; "}}<\/span><span ng-if="childProperty==\'Quantity\'" ng-repeat="sItem in arrValue track by  $index">{{sItem | number : fractionSize}}{{ $last ? "" : "; "}}<\/span><\/span><span ng-if="!value" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){var r,u,i;n.value=n.item[n.columnInfo.uniqueName];r=t.fromJson(n.value)||[];n.arrValue=r;u=/(\[0\-9\]){1}\{(0,){0,1}([0-9])+\}/ig;n.childProperty=n.columnInfo.parentUniqueName?n.columnInfo.uniqueName.substring(n.columnInfo.parentUniqueName.length+1):"";i=u.exec(n.columnInfo.settingObj.quantityDecimalFormat);n.fractionSize=0;i&&i[3]&&(n.fractionSize=parseInt(i[3]));n.FormattedValue=r.join("; ")}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldDatetimeResponseReview",function(){return{restrict:"EA",template:'<vi-sys-format-date setting-obj="settingObj" ng-if="value" cur-val="value" show-title="true" ><\/vi-sys-format-date><span ng-if ="isSensitive && !canViewSensitive ">{{value}}<\/span><span ng-if="!value" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.value=n.item[n.columnInfo.uniqueName];n.isSensitive=n.columnInfo.sensitive;n.canViewSensitive=!1;var i=t.element("#canViewSensitive").val();i!=""&&(n.canViewSensitive=!0)}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldDigitalsignatureResponseReview",function(){return{restrict:"EA",template:'<span ng-if="eDocumentInfoText"><a target="_blank" rel="noopener" ng-if="eDocumentInfoJson.SignatureID && Provider" href="{{eSignatureViewHref}}?signatureID={{eDocumentInfoJson.SignatureID }}&provider={{ Provider }}"  title="View Signature" >View<\/a><span ng-if="!eDocumentInfoJson.SignatureID || !Provider">Incomplete<\/span><\/span><span ng-if="!eDocumentInfoText" class="response-field-skipped">**SKIPPED**<\/span>',link:function(i){i.eDocumentInfoText=i.item[i.columnInfo.uniqueName+"_eDocumentInfo"];i.Provider=i.item[i.columnInfo.uniqueName+"_Provider"];i.eDocumentInfoJson=i.eDocumentInfoText?t.fromJson(i.eDocumentInfoText):{};i.eSignatureViewHref=n.visionOptions.eSignatureView}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldEmailResponseReview",function(){return{restrict:"EA",template:'<span ng-if="value">{{item[columnInfo.uniqueName]}}<\/span><span ng-if="!value" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.value=n.item[n.columnInfo.uniqueName]}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldFulladdressResponseReview",function(){return{restrict:"EA",template:'<span ng-if="value">{{item[columnInfo.uniqueName]}}<\/span><span ng-if="!value" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.value=n.item[n.columnInfo.uniqueName]}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldFullnameResponseReview",function(){return{restrict:"EA",template:'<span ng-if="hasValue"><span ng-if="settingObj.includeTitle">{{item[columnInfo.uniqueName + "_Title"]}}<\/span> {{item[columnInfo.uniqueName + "_FirstName"]}} <span ng-if="settingObj.includeMiddleInitial">{{item[columnInfo.uniqueName + "_MiddleInitial"]}}<\/span> {{item[columnInfo.uniqueName + "_LastName"]}} <span ng-if="settingObj.includeSuffix">{{item[columnInfo.uniqueName + "_Suffix"]}}<\/span><\/span><span ng-if="!hasValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.settingObj=n.columnInfo.settingObj;n.hasValue=n.item[n.columnInfo.uniqueName+"_FirstName"]||n.item[n.columnInfo.uniqueName+"_LastName"]}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldGeneralnumberResponseReview",function(){return{restrict:"EA",template:'<span ng-if="currentValue"><span ng-if="childProperty==\'\'">{{ getCurrentValue() }}<\/span><span ng-if="isMoney">{{ currentValue | currency:"$":2}}<\/span><span ng-if="childProperty==\'Tax\'">{{ currentValue | currency:"$":2}}<\/span><span ng-if="childProperty==\'Quantity\'">{{currentValue | number : fractionSize}}<\/span><\/span><span ng-if="!currentValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){var r,u,f,i;n.currentValue=n.item[n.columnInfo.uniqueName];n.childProperty="";n.isSensitive=n.columnInfo.sensitive;n.canViewSensitive=!1;r=t.element("#canViewSensitive").val();r!=""&&(n.canViewSensitive=!0);n.getCurrentValue=function(){var t=n.columnInfo.settingObj.decimalPointer==null?2:n.columnInfo.settingObj.decimalPointer,i;return n.isSensitive&&!n.canViewSensitive?n.currentValue:(i=parseFloat(n.currentValue),n.columnInfo.settingObj.isCommaSeparated==!1?i.toFixed(t):i.toLocaleString("en-us",{minimumFractionDigits:t,maximumFractionDigits:t}))};n.fractionSize=0;n.columnInfo.settingObj&&n.columnInfo.parentValueType&&(u=n.columnInfo.parentValueType&FORMFIELDTYPEFEATURES.PAYMENT,u&&(n.columnInfo.settingObj.quantityDecimalFormat&&(f=/(\[0\-9\]){1}\{(0,){0,1}([0-9])+\}/ig,i=f.exec(n.columnInfo.settingObj.quantityDecimalFormat),i&&i[3]&&(n.fractionSize=parseInt(i[3]))),n.childProperty=n.columnInfo.uniqueName.substring(n.columnInfo.parentUniqueName.length+1)));n.isMoney=["Price","SubTotal","AdditionalFee","GrandTotal"].indexOf(n.childProperty)>=0}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldNumberResponseReview",function(){return{restrict:"EA",template:'<span ng-if="currentValue"><span ng-if="childProperty==\'\'">{{currentValue}}<\/span><span ng-if="isMoney">{{ currentValue | currency:"$":2}}<\/span><span ng-if="childProperty==\'Tax\'">{{ currentValue | currency:"$":2}}<\/span><span ng-if="childProperty==\'Quantity\'">{{currentValue | number : fractionSize}}<\/span><\/span><span ng-if="!currentValue" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){var i,r,t;n.currentValue=n.item[n.columnInfo.uniqueName];n.childProperty="";n.fractionSize=0;n.columnInfo.settingObj&&n.columnInfo.parentValueType&&(i=n.columnInfo.parentValueType&FORMFIELDTYPEFEATURES.PAYMENT,i&&(n.columnInfo.settingObj.quantityDecimalFormat&&(r=/(\[0\-9\]){1}\{(0,){0,1}([0-9])+\}/ig,t=r.exec(n.columnInfo.settingObj.quantityDecimalFormat),t&&t[3]&&(n.fractionSize=parseInt(t[3]))),n.childProperty=n.columnInfo.uniqueName.substring(n.columnInfo.parentUniqueName.length+1)));n.isMoney=["Price","SubTotal","AdditionalFee","GrandTotal"].indexOf(n.childProperty)>=0}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldParagraphtextResponseReview",function(){return{restrict:"EA",template:'<span ng-if="value" title="{{item[columnInfo.uniqueName]}}">{{item[columnInfo.uniqueName]}}<\/span><span ng-if="!value" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.value=n.item[n.columnInfo.uniqueName]}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentcheckboxResponseReview",function(){return{restrict:"EA",template:"{{FormattedValue}}",link:function(n){var i=n.item[n.columnInfo.uniqueName],r=t.fromJson(i)||[],u=$.map(r,function(n){return n.label});n.FormattedValue=u.join(", ")}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentdonationResponseReview",function(){return{restrict:"EA",template:"{{item[columnInfo.uniqueName]}}",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentdropdownResponseReview",function(){return{restrict:"EA",template:"{{FormattedValue}}",link:function(n){var i=n.item[n.columnInfo.uniqueName],r=t.fromJson(i)||[],u=$.map(r,function(n){return n.label});n.FormattedValue=u.join(", ")}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentradioResponseReview",function(){return{restrict:"EA",template:"{{FormattedValue}}",link:function(n){var i=n.item[n.columnInfo.uniqueName],r=t.fromJson(i)||[],u=$.map(r,function(n){return n.label});n.FormattedValue=u.join(", ")}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentsingleitemResponseReview",function(){return{restrict:"EA",template:"{{item[columnInfo.uniqueName]}}",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymenttotalResponseReview",function(){return{restrict:"EA",template:'{{total | currency:"$":2}}',link:function(n){if(n.item&&n.columnInfo&&n.columnInfo.uniqueName){var t=n.item[n.columnInfo.uniqueName];n.total=t}}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPhoneResponseReview",function(){return{restrict:"EA",template:'<vi-form-format-phone cur-val="value" ng-if="value"><\/vi-form-format-phone><span ng-if="!value" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.value=n.item[n.columnInfo.uniqueName]}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldRadiobuttonlistResponseReview",function(){return{restrict:"EA",template:'<span title="{{value}}" ng-if="value">{{value}}<\/span><span ng-if="!value" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.value=n.item[n.columnInfo.uniqueName]}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldSingledropdownResponseReview",function(){return{restrict:"EA",template:'<span title="{{value}}" ng-if="value">{{value}}<\/span><span ng-if="!value" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.value=n.item[n.columnInfo.uniqueName]}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldSinglelinetextResponseReview",function(){return{restrict:"EA",template:'<span ng-if="value" title="{{value}}">{{value}}<\/span><span ng-if="!value" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){n.value=n.item[n.columnInfo.uniqueName]}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldWebsiteResponseReview",function(){return{restrict:"EA",template:'<span ng-if="value"><a href="{{answerHref}}" target="_blank" rel="noopener">{{item[columnInfo.uniqueName]}}<\/a><\/span><span ng-if="!value" class="response-field-skipped">**SKIPPED**<\/span>',link:function(n){if(n.answerHref="javascript:void(0);",n.value=n.item[n.columnInfo.uniqueName],n.item&&n.columnInfo&&n.settingObj){var t=n.value;n.answerHref=t&&!t.startsWith("http://")&&!t.startsWith("https://")&&n.settingObj.allowExternal?"http://"+t:t}}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viPaymentOrderDetail",["viCoreComponentFormAPIClient","$filter","formFieldTypeManager",function(n,i,r){return{restrict:"EA",template:"<div class='individual-responses' ng-class='{questionNumbering: enableQuestionNumbering}' ><div class='printcontent'><div class='form-pagination' ng-repeat='page in viewDetail.pages | orderBy:\"order\"'><div ng-if='!paymentsOnly' class='form-pagination-header'>{{page.title}}<\/div><div ng-repeat='field in page.fields | orderBy : \"meta.order\"'><vi-form-field-display vi-model='field' is-backend='true' can-view-sensitive=\"canViewSensitive\" ng-class='field.meta.className'><\/vi-form-field-display><\/div><\/div><\/div><\/div>",scope:{entryId:"=",formId:"=",paymentsOnly:"="},link:function(u){n.registerClass("admin.api.form.GetDetailResponse");var f=n.getService();f.admin.api.form.GetDetailResponse({formID:u.formId,entryID:u.entryId,paymentsOnly:u.paymentsOnly|!1}).then(function(n){u.viewDetail=n.data;var f={guid:n.data.guid,formName:n.data.title,title:n.data.title,description:n.data.description,enablePrevPageNavigation:n.data.enablePrevPageNavigation,enableQuestionNumbering:n.data.enableQuestionNumbering},e=1;t.forEach(u.viewDetail.pages,function(n){n.form=f;var u=n.fields;t.forEach(i("orderBy")(u,"meta.order"),function(t){t.type=r.getFieldType(t.meta.fieldTypeID);t.type.initField(t,n.form,r);t.tid=t.meta.id;t.pIndex=t.type.data.type=="format"?0:e++;t.page=n})})}).then(function(){})}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viSharedListResponseReview",["formFieldTypeManager","$compile",function(n,i){return{restrict:"EA",scope:{item:"=",allColumnInfo:"="},link:function(r,u,f){var e=f.id;r.columnInfo=e?Enumerable.From(r.allColumnInfo).Where("c => c.id=="+e).FirstOrDefault():t.fromJson(f.columnInfo);r.settingObj=r.columnInfo.settingObj;var s=r.columnInfo.useParentFieldTypeID?r.columnInfo.parentFieldTypeID:r.columnInfo.fieldTypeID,o=Enumerable.From(n.fieldTypeDataList).Where("c => c.id=="+s).FirstOrDefault().name.toLowerCase(),h="<vi-field-"+o+"-response-review><\/vi-field-"+o+"-response-review>";u.html(h);i(u.contents())(r)}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldAttachmentSummary",["$compile",function(){return{restrict:"EA",template:'<div class="summary"><vi-shared-summary-head><\/vi-shared-summary-head><div class="summary-list-wrapper collapsed" collapsable><div class="collapsable-trigger" ng-show="viModel.answered != 0"><a class="toggle" title="Show all answers"><\/a><\/div><div ng-if="!field.meta.sensitive || canViewSensitive" class="summary-list collapsable-target" ng-show="viModel.answered != 0"><div ng-repeat="item in viModel.items" class="summary-list-item"><div class="item-answer"><span ng-repeat="file in item.files"><a href="javascript:void(0)" form-builder-download file-code="file.code" file-name="file.name">{{file.name}}<\/a>&nbsp;&nbsp;<\/span><\/div><div class="item-date"><vi-sys-format-date cur-val="item.datetime.toString()"><\/vi-sys-format-date><\/div><\/div><\/div><vi-shared-summary-message ng-if="field.meta.sensitive && !canViewSensitive"><\/vi-shared-summary-message><\/div>',link:function(n){for(var r,u,i=0;i<n.viModel.items.length;i++)r=n.viModel.items[i],u=t.fromJson(r.answer||"[]"),r.files=u}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldCheckboxlistSummary",function(){return{restrict:"EA",template:'<div class="summary"><vi-shared-summary-head><\/vi-shared-summary-head><vi-shared-summary-barchart ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-barchart><vi-shared-summary-table ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-table><vi-shared-summary-message ng-if="field.meta.sensitive && !canViewSensitive"><\/vi-shared-summary-message><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldDatetimeSummary",["viUIDateTimeConverter",function(n){return{restrict:"EA",template:"<vi-shared-summary><\/vi-shared-summary>",link:function(i){var f=i.field.meta.settingObj||t.fromJson(i.field.meta.setting||'""'),r,u;if(i.viModel.items)for(r=0;r<i.viModel.items.length;r++)try{u=i.viModel.items[r].answer;i.viModel.items[r].answer=u?f&&f.datetimeUseDateOnly?n.dateToString(null,n.stringToDate(null,u,!0)):n.dateTimeToString(null,n.stringToDateTime(null,u," ",!0)," "):""}catch(e){}}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldDigitalsignatureSummary",function(){return{restrict:"EA",template:"<vi-shared-summary><\/vi-shared-summary>",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldEmailSummary",function(){return{restrict:"EA",template:"<vi-shared-summary><\/vi-shared-summary>",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldFulladdressSummary",function(){return{restrict:"EA",template:"<vi-shared-summary><\/vi-shared-summary>",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldFullnameSummary",function(){return{restrict:"EA",template:"<vi-shared-summary><\/vi-shared-summary>",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldGeneralnumberSummary",function(){return{restrict:"EA",template:"<vi-shared-summary><\/vi-shared-summary>",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldNumberSummary",function(){return{restrict:"EA",template:"<vi-shared-summary><\/vi-shared-summary>",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldParagraphtextSummary",["$timeout",function(){return{restrict:"EA",template:'<div class="summary"><vi-shared-summary-head><\/vi-shared-summary-head><vi-shared-summary-cloudchart ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-cloudchart><vi-shared-summary-list ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-list><vi-shared-summary-message ng-if="field.meta.sensitive && !canViewSensitive"><\/vi-shared-summary-message><\/div>',link:function(){}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentcheckboxSummary",function(){return{restrict:"EA",template:'<div class="summary"><vi-shared-summary-head><\/vi-shared-summary-head><vi-shared-summary-barchart ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-barchart><vi-shared-summary-payment ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-payment><vi-shared-summary-message ng-if="field.meta.sensitive && canViewSensitive"><\/vi-shared-summary-message><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentdonationSummary",function(){return{restrict:"EA",template:"<vi-shared-summary><\/vi-shared-summary>",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentdropdownSummary",function(){return{restrict:"EA",template:'<div class="summary"><vi-shared-summary-head><\/vi-shared-summary-head><vi-shared-summary-piechart ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-piechart><vi-shared-summary-payment ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-payment><vi-shared-summary-message ng-if="field.meta.sensitive && !canViewSensitive"><\/vi-shared-summary-message><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentradioSummary",function(){return{restrict:"EA",template:'<div class="summary"><vi-shared-summary-head><\/vi-shared-summary-head><vi-shared-summary-piechart ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-piechart><vi-shared-summary-payment ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-payment><vi-shared-summary-message ng-if="field.meta.sensitive && !canViewSensitive"><\/vi-shared-summary-message><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymentsingleitemSummary",function(){return{restrict:"EA",template:"<vi-shared-summary><\/vi-shared-summary>",link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPaymenttotalSummary",function(){return{restrict:"EA",template:"<vi-shared-summary><\/vi-shared-summary>",link:function(n){n.viModel&&n.viModel.items.length>0&&t.forEach(n.viModel.items,function(n){n.answer||(n.answer="0.00")})}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldPhoneSummary",function(){return{restrict:"EA",template:"<vi-shared-summary><\/vi-shared-summary>",link:function(i){var f,r,e,u;if(i.viModel.items)for(f=n.visionApps.cms_core.PhoneFormat,r=0;r<i.viModel.items.length;r++)try{i.viModel.items[r].children&&i.viModel.items[r].children.length>0?(e="",u=null,t.forEach(i.viModel.items[r].children,function(n){n.label=="Number"&&(e=n.value);n.label=="Extension"&&(u=n.value)}),i.viModel.items[r].answer=$.viFormatPhone(e,f),i.field.meta.settingObj.enableExtension&&u&&(i.viModel.items[r].answer+=" ext. "+u)):i.viModel.items[r].answer=$.viFormatPhone(i.viModel.items[r].answer,f)}catch(o){}}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldRadiobuttonlistSummary",function(){return{restrict:"EA",template:'<div class="summary"><vi-shared-summary-head><\/vi-shared-summary-head><vi-shared-summary-piechart ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-piechart><vi-shared-summary-table ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-table><vi-shared-summary-message ng-if="field.meta.sensitive && !canViewSensitive"><\/vi-shared-summary-message><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldSingledropdownSummary",function(){return{restrict:"EA",template:'<div class="summary"><vi-shared-summary-head><\/vi-shared-summary-head><vi-shared-summary-piechart ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-piechart><vi-shared-summary-table ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-table><vi-shared-summary-message ng-if="field.meta.sensitive && !canViewSensitive"><\/vi-shared-summary-message><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldSinglelinetextSummary",["$timeout",function(){return{restrict:"EA",template:'<div class="summary"><vi-shared-summary-head><\/vi-shared-summary-head><vi-shared-summary-cloudchart ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-cloudchart><vi-shared-summary-list ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-list><vi-shared-summary-message ng-if="field.meta.sensitive && !canViewSensitive"><\/vi-shared-summary-message><\/div>',link:function(){}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFieldWebsiteSummary",function(){return{restrict:"EA",template:'<div class="summary"><vi-shared-summary-head><\/vi-shared-summary-head><div class="summary-list-wrapper collapsed" collapsable><div class="collapsable-trigger" ng-show="viModel.answered != 0"><a class="toggle" title="Show all answers"><\/a><\/div><div ng-if="!field.meta.sensitive || canViewSensitive" class="summary-list collapsable-target" ng-show="viModel.answered != 0"><div ng-repeat="item in viModel.items" class="summary-list-item"><div class="item-answer"><a href="{{item.answerHref}}" target="_blank" title="{{item.answer}}">{{item.answer}}<\/a><\/div><div class="item-date"><vi-sys-format-date cur-val="item.datetime.toString()"><\/vi-sys-format-date><\/div><\/div><\/div><vi-shared-summary-message ng-if="field.meta.sensitive && !canViewSensitive"><\/vi-shared-summary-message><\/div>',link:function(n){for(var t,i=0;i<n.viModel.items.length;i++)t=n.viModel.items[i],t.answerHref="javascript:void(0);",t.answerHref=t.answer&&!t.answer.startsWith("http://")&&!t.answer.startsWith("https://")&&n.field.meta.settingObj.allowExternal?"http://"+t.answer:t.answer}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viFormFieldSummary",["$compile",function(n){return{restrict:"EA",scope:{viModel:"=",field:"=",viIndex:"=",canViewSensitive:"="},link:function(t,i){var r=t.field.type.getBuilderSummaryTemplate();i.html(r);n(i.contents())(t)}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viSharedSummary",function(){return{restrict:"EA",replace:!0,template:'<div class="summary"><vi-shared-summary-head><\/vi-shared-summary-head><vi-shared-summary-list ng-if="!field.meta.sensitive || canViewSensitive"><\/vi-shared-summary-list><vi-shared-summary-message ng-if="field.meta.sensitive && !canViewSensitive"><\/vi-shared-summary-message><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viSharedSummaryBarchart",function(){var n=1,t=12,i=5,r=function(r,u){var a=this,c=Math.max(Math.abs(u),Math.abs(r)),l=Math.floor(Math.log(c)/Math.LN10),e=Math.pow(10,l),o=Math.ceil(u/e)*e,s=Math.floor(r/e)*e,h=o-s,f;for(n=s,t=o,f=2;f<=5;++f)Math.round(h/f)==h/f&&(i=f)};return{restrict:"EA",template:'<div class="summary-chart" ng-show="viModel.answered != 0"><vi-google-chart chart="chartData"><\/vi-google-chart><\/div>',link:function(u){var f=[];$.each(u.viModel.items,function(i,r){f.push({c:[{v:r.answer},{v:r.count}]});t=t<r.count?r.count:t;n=n>r.count?r.count:n});r(n,t);u.chartData={type:"BarChart",options:{legend:{position:"bottom"},width:500,height:300,tooltip:{ignoreBounds:!0,isHtml:!0},hAxis:{minValue:n,maxValue:t,gridlines:i}},data:{cols:[{label:"Answer",type:"string"},{label:"Responses",type:"number"}],rows:f}}}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viSharedSummaryCloudchart",["$timeout",function(){var t=/^(i|me|my|myself|we|us|our|ours|ourselves|you|your|yours|yourself|yourselves|he|him|his|himself|she|her|hers|herself|it|its|itself|they|them|their|theirs|themselves|what|which|who|whom|whose|this|that|these|those|am|is|are|was|were|be|been|being|have|has|had|having|do|does|did|doing|will|would|should|can|could|ought|i'm|you're|he's|she's|it's|we're|they're|i've|you've|we've|they've|i'd|you'd|he'd|she'd|we'd|they'd|i'll|you'll|he'll|she'll|we'll|they'll|isn't|aren't|wasn't|weren't|hasn't|haven't|hadn't|doesn't|don't|didn't|won't|wouldn't|shan't|shouldn't|can't|cannot|couldn't|mustn't|let's|that's|who's|what's|here's|there's|when's|where's|why's|how's|a|an|the|and|but|if|or|because|as|until|while|of|at|by|for|with|about|against|between|into|through|during|before|after|above|below|to|from|up|upon|down|in|out|on|off|over|under|again|further|then|once|here|there|when|where|why|how|all|any|both|each|few|more|most|other|some|such|no|nor|not|only|own|same|so|than|too|very|say|says|said|shall)$/,i=new RegExp("[!-#%-*,-/:;?@\\[-\\]_{}¡§«¶·»¿;·՚-՟։֊־׀׃׆׳״؉؊،؍؛؞؟٪-٭۔܀-܍߷-߹࠰-࠾࡞।॥॰૰෴๏๚๛༄-༒༔༺-༽྅࿐-࿔࿙࿚၊-၏჻፠-፨᐀᙭᙮᚛᚜᛫-᛭᜵᜶។-៖៘-៚᠀-᠊᥄᥅᨞᨟᪠-᪦᪨-᪭᭚-᭠᯼-᯿᰻-᰿᱾᱿᳀-᳇᳓‐-‧‰-⁃⁅-⁑⁓-⁞⁽⁾₍₎〈〉❨-❵⟅⟆⟦-⟯⦃-⦘⧘-⧛⧼⧽⳹-⳼⳾⳿⵰⸀-⸮⸰-⸻、-〃〈-】〔-〟〰〽゠・꓾꓿꘍-꘏꙳꙾꛲-꛷꡴-꡷꣎꣏꣸-꣺꤮꤯꥟꧁-꧍꧞꧟꩜-꩟꫞꫟꫰꫱꯫﴾﴿︐-︙︰-﹒﹔-﹡﹣﹨﹪﹫！-＃％-＊，-／：；？＠［-］＿｛｝｟-･]","g"),r=/[ \f\n\r\t\v\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\u3031-\u3035\u309b\u309c\u30a0\u30fc\uff70]+/g,u=/^(@|https?:|\/\/)/;return{restrict:"EA",template:'<div class="summary-chart cloud-chart" ng-show="displayCloud"><div id="WordCloud{{field.meta.id}}" style="width: 500px; height: 300px;"><\/div><\/div>',link:function(f){function v(n){for(var t=0;t<e.length;t++)e[t].key==n.key&&(e[t].value=n.value)}function c(n){var f=a?n.split(""):n.split(r);$(f).each(function(n,r){if($.trim(r)!=""&&!u.test(r)){if(r=r.replace(i," "),r==" ")return;if(r.split(" ").length>1)c($.trim(r));else if(!t.test(r.toLowerCase())){r=r.substr(0,l);r=r.toLowerCase();var f=$.grep(e,function(n){return n.key==r});f.length>0?(f[0].value=f[0].value+1,v(f[0])):e.push({key:r,value:1})}}})}for(var h=[],o=[],e=[],l=30,a=!1,s=0;s<f.viModel.items.length;s++)h.push(f.viModel.items[s].answer);$(h).each(function(n,t){c($.trim(t))});e=e.sort(function(n,t){return t.value-n.value});$(e).each(function(n,t){o.push([t.key,t.value])});setTimeout(function(){if("WordCloud"in n&&o.length>0){var t=$("#WordCloud"+f.field.meta.id)[0],i=$(t).width(),r=e[0].value;WordCloud(t,{list:o,gridSize:10,weightFactor:function(n){return n*i/(r*6)},fontFamily:"Impact",fontWeight:"bold",rotateRatio:0,rotationSteps:0,backgroundColor:"#ffffff"})}},50);f.$watch(function(){f.displayCloud=o.length>0})}}}])}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viSharedSummaryHead",function(){return{restrict:"EA",replace:!0,template:'<div class="summary-head"><div class="head-label">{{viIndex+1}}. {{viModel.label}}<\/div><div class="head-content"><span class="answered">Answered: {{viModel.answered}}<\/span><span class="skipped">Skipped: {{viModel.skipped}}<\/span><span class="left-blank">Left Blank: {{viModel.leftBlank}}<\/span><\/div><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viSharedSummaryList",function(){return{restrict:"EA",replace:!0,template:'<div class="summary-list-wrapper collapsed" collapsable><div class="collapsable-trigger" ng-show="viModel.answered != 0"><a class="toggle" title="Show all answers"><\/a><\/div><div class="summary-list collapsable-target" ng-show="viModel.answered != 0"><div ng-repeat="item in viModel.items" class="summary-list-item"><div class="item-answer">{{item.answer || "&nbsp;"}}<\/div><div class="item-date"><vi-sys-format-date cur-val="item.datetime.toString()"><\/vi-sys-format-date><\/div><\/div><\/div><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viSharedSummaryMessage",function(){return{restrict:"EA",replace:!0,template:'<div class="summary-sensitive-msg">Answers not visible due to sensitive information.<\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.filter("totalSumPriceQty",["$filter",function(){return function(n,i,r){if(t.isUndefined(n)||t.isUndefined(i)||t.isUndefined(r))return 0;var u=0;return t.forEach(n,function(n){u=u+parseFloat(n[i],10)*parseFloat(n[r],10)}),u}}]);i.filter("totalQuantity",["$filter",function(){return function(n,i){if(t.isUndefined(n)||t.isUndefined(i))return 0;var r=0;return t.forEach(n,function(n){r=r+parseFloat(n[i],10)}),r}}]);i.directive("viSharedSummaryPayment",function(){return{restrict:"EA",replace:!0,template:'<div class="summary-table" ng-show="viModel.answered != 0"><table class="summary-table"><thead><tr><th>ANSWER CHOICES<\/th><th>ITEMIZED COST<\/th><th>QUANTITY<\/th><th>REVENUE<\/th><\/tr><\/thead><tbody><tr ng-repeat="item in viModel.items"><td>{{ item.answer }}<\/td><td>{{ item.price | currency : "$" : 2 }}<\/td><td>{{ item.count }}<\/td><td>{{ item.count * item.price | currency : "$" : 2}}<\/td><\/tr><\/tbody><tfoot><tr><th colspan="2">TOTAL<\/th><th>{{ viModel.items | totalQuantity:"count" | number : 2 }}<\/th><th>{{viModel.items | totalSumPriceQty:"count":"price" | currency : "$" : 2}}<\/th><\/tr><\/tfoot><\/table><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.directive("viSharedSummaryPiechart",function(){return{restrict:"EA",template:'<div class="summary-chart" ng-show="viModel.answered != 0"><vi-google-chart chart="chartData"><\/vi-google-chart><\/div>',link:function(n){var t=[];$.each(n.viModel.items,function(n,i){t.push({c:[{v:i.answer},{v:i.count}]})});n.chartData={type:"PieChart",options:{width:500,height:300,chartArea:{left:0,height:250,width:500},tooltip:{ignoreBounds:!0,isHtml:!0}},data:{cols:[{label:"Answer",type:"string"},{label:"Responses",type:"number"}],rows:t}}}}})}(window,window.angular,jQuery),function(n,t){"use strict";var i=t.module("viAppCoreComponentFormBuilderFieldTypes");i.filter("percentage",["$filter",function(n){return function(t,i){return n("number")(t*100,i)+"%"}}]);i.directive("viSharedSummaryTable",function(){return{restrict:"EA",replace:!0,template:'<div class="summary-table" ng-show="viModel.answered != 0"><table class="summary-table"><thead><tr><th>ANSWER CHOICES<\/th><th>RESPONSES<\/th><th><\/th><\/tr><\/thead><tbody><tr ng-repeat="item in viModel.items"><td>{{ item.answer }}<\/td><td>{{ item.responses | percentage: 2 }}<\/td><td>{{ item.count }}<\/td><\/tr><\/tbody><tfoot><tr><th colspan="2">TOTAL<\/th><th>{{ viModel.total }}<\/th><\/tr><\/tfoot><\/table><\/div>',link:function(){}}})}(window,window.angular,jQuery),function(n,t){var i=t.module("viAppCoreComponentFormBuilderFieldTypes")}(window,angular),function(n){n.visionFormBuilder={forms:[],pushForm:function(){}}}(window,angular),function(){window.viCurrentModule&&window.viCurrentModule.requires.push("vi.fe.core.formbuilder.submit");var n=angular.module("vi.fe.core.formbuilder.submit",["ngAnimate","ngCookies","ngSanitize","ngDialog","toastr","blockUI","viAppCoreComponentFormBuilderFieldTypes","vi.common","vi.fe.common","viSDK.coreComponentFormBuilder","ngMessages","viValidation","validation","validation.rule","vcRecaptcha","viAppCoreComponentFormBuilderDownload"])}();angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.accordion","ui.bootstrap.collapse","ui.bootstrap.tabindex","ui.bootstrap.pagination","ui.bootstrap.paging"]);angular.module("ui.bootstrap.tpls",["uib/template/accordion/accordion-group.html","uib/template/accordion/accordion.html","uib/template/pagination/pagination.html"]);angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse","ui.bootstrap.tabindex"]).constant("uibAccordionConfig",{closeOthers:!0}).controller("UibAccordionController",["$scope","$attrs","uibAccordionConfig",function(n,t,i){this.groups=[];this.closeOthers=function(r){var u=angular.isDefined(t.closeOthers)?n.$eval(t.closeOthers):i.closeOthers;u&&angular.forEach(this.groups,function(n){n!==r&&(n.isOpen=!1)})};this.addGroup=function(n){var t=this;this.groups.push(n);n.$on("$destroy",function(){t.removeGroup(n)})};this.removeGroup=function(n){var t=this.groups.indexOf(n);t!==-1&&this.groups.splice(t,1)}}]).directive("uibAccordion",function(){return{controller:"UibAccordionController",controllerAs:"accordion",transclude:!0,templateUrl:function(n,t){return t.templateUrl||"uib/template/accordion/accordion.html"}}}).directive("uibAccordionGroup",function(){return{require:"^uibAccordion",transclude:!0,restrict:"A",templateUrl:function(n,t){return t.templateUrl||"uib/template/accordion/accordion-group.html"},scope:{heading:"@",panelClass:"@?",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(n){this.heading=n}},link:function(n,t,i,r){t.addClass("panel");r.addGroup(n);n.openClass=i.openClass||"panel-open";n.panelClass=i.panelClass||"panel-default";n.$watch("isOpen",function(i){t.toggleClass(n.openClass,!!i);i&&r.closeOthers(n)});n.toggleOpen=function(t){n.isDisabled||t&&t.which!==32||(n.isOpen=!n.isOpen)};var u="accordiongroup-"+n.$id+"-"+Math.floor(Math.random()*1e4);n.headingId=u+"-tab";n.panelId=u+"-panel"}}}).directive("uibAccordionHeading",function(){return{transclude:!0,template:"",replace:!0,require:"^uibAccordionGroup",link:function(n,t,i,r,u){r.setHeading(u(n,angular.noop))}}}).directive("uibAccordionTransclude",function(){function n(){return"uib-accordion-header,data-uib-accordion-header,x-uib-accordion-header,uib\\:accordion-header,[uib-accordion-header],[data-uib-accordion-header],[x-uib-accordion-header]"}return{require:"^uibAccordionGroup",link:function(t,i,r,u){t.$watch(function(){return u[r.uibAccordionTransclude]},function(t){if(t){var r=angular.element(i[0].querySelector(n()));r.html("");r.append(t)}})}}});angular.module("ui.bootstrap.collapse",[]).directive("uibCollapse",["$animate","$q","$parse","$injector",function(n,t,i,r){var u=r.has("$animateCss")?r.get("$animateCss"):null;return{link:function(r,f,e){function b(){h=!!("horizontal"in e);h?(s={width:""},o={width:"0"}):(s={height:""},o={height:"0"});r.$eval(e.uibCollapse)||f.addClass("in").addClass("collapse").attr("aria-expanded",!0).attr("aria-hidden",!1).css(s)}function c(n){return h?{width:n.scrollWidth+"px"}:{height:n.scrollHeight+"px"}}function k(){f.hasClass("collapse")&&f.hasClass("in")||t.resolve(v(r)).then(function(){f.removeClass("collapse").addClass("collapsing").attr("aria-expanded",!0).attr("aria-hidden",!1);u?u(f,{addClass:"in",easing:"ease",css:{overflow:"hidden"},to:c(f[0])}).start()["finally"](a):n.addClass(f,"in",{css:{overflow:"hidden"},to:c(f[0])}).then(a)},angular.noop)}function a(){f.removeClass("collapsing").addClass("collapse").css(s);y(r)}function d(){if(!f.hasClass("collapse")&&!f.hasClass("in"))return l();t.resolve(p(r)).then(function(){f.css(c(f[0])).removeClass("collapse").addClass("collapsing").attr("aria-expanded",!1).attr("aria-hidden",!0);u?u(f,{removeClass:"in",to:o}).start()["finally"](l):n.removeClass(f,"in",{to:o}).then(l)},angular.noop)}function l(){f.css(o);f.removeClass("collapsing").addClass("collapse");w(r)}var v=i(e.expanding),y=i(e.expanded),p=i(e.collapsing),w=i(e.collapsed),h=!1,s={},o={};b();r.$watch(e.uibCollapse,function(n){n?d():k()})}}}]);angular.module("ui.bootstrap.tabindex",[]).directive("uibTabindexToggle",function(){return{restrict:"A",link:function(n,t,i){i.$observe("disabled",function(n){i.$set("tabindex",n?-1:null)})}}});angular.module("ui.bootstrap.pagination",["ui.bootstrap.paging","ui.bootstrap.tabindex"]).controller("UibPaginationController",["$scope","$attrs","$parse","uibPaging","uibPaginationConfig",function(n,t,i,r,u){function e(n,t,i){return{number:n,text:t,active:i}}function v(n,t){var u=[],i=1,r=t,c=angular.isDefined(f)&&f<t,s,v,y,p,w,b,k,d;for(c&&(h?(i=Math.max(n-Math.floor(f/2),1),r=i+f-1,r>t&&(r=t,i=r-f+1)):(i=(Math.ceil(n/f)-1)*f+1,r=Math.min(i+f-1,t))),s=i;s<=r;s++)v=e(s,a(s),s===n),u.push(v);return c&&f>0&&(!h||l||o)&&(i>1&&((!o||i>3)&&(y=e(i-1,"...",!1),u.unshift(y)),o&&(i===3&&(p=e(2,"2",!1),u.unshift(p)),w=e(1,"1",!1),u.unshift(w))),r<t&&((!o||r<t-2)&&(b=e(r+1,"...",!1),u.push(b)),o&&(r===t-2&&(k=e(t-1,t-1,!1),u.push(k)),d=e(t,t,!1),u.push(d)))),u}var s=this,f=angular.isDefined(t.maxSize)?n.$parent.$eval(t.maxSize):u.maxSize,h=angular.isDefined(t.rotate)?n.$parent.$eval(t.rotate):u.rotate,l=angular.isDefined(t.forceEllipses)?n.$parent.$eval(t.forceEllipses):u.forceEllipses,o=angular.isDefined(t.boundaryLinkNumbers)?n.$parent.$eval(t.boundaryLinkNumbers):u.boundaryLinkNumbers,a=angular.isDefined(t.pageLabel)?function(i){return n.$parent.$eval(t.pageLabel,{$page:i})}:angular.identity,c;n.boundaryLinks=angular.isDefined(t.boundaryLinks)?n.$parent.$eval(t.boundaryLinks):u.boundaryLinks;n.directionLinks=angular.isDefined(t.directionLinks)?n.$parent.$eval(t.directionLinks):u.directionLinks;t.$set("role","menu");r.create(this,n,t);t.maxSize&&s._watchers.push(n.$parent.$watch(i(t.maxSize),function(n){f=parseInt(n,10);s.render()}));c=this.render;this.render=function(){c();n.page>0&&n.page<=n.totalPages&&(n.pages=v(n.page,n.totalPages))}}]).constant("uibPaginationConfig",{itemsPerPage:10,boundaryLinks:!1,boundaryLinkNumbers:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0,forceEllipses:!1}).directive("uibPagination",["$parse","uibPaginationConfig",function(n,t){return{scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@",ngDisabled:"="},require:["uibPagination","?ngModel"],restrict:"A",controller:"UibPaginationController",controllerAs:"pagination",templateUrl:function(n,t){return t.templateUrl||"uib/template/pagination/pagination.html"},link:function(n,i,r,u){i.addClass("pagination");var e=u[0],f=u[1];f&&e.init(f,t)}}}]);angular.module("ui.bootstrap.paging",[]).factory("uibPaging",["$parse",function(n){return{create:function(t,i,r){t.setNumPages=r.numPages?n(r.numPages).assign:angular.noop;t.ngModelCtrl={$setViewValue:angular.noop};t._watchers=[];t.init=function(n,u){t.ngModelCtrl=n;t.config=u;n.$render=function(){t.render()};r.itemsPerPage?t._watchers.push(i.$parent.$watch(r.itemsPerPage,function(n){t.itemsPerPage=parseInt(n,10);i.totalPages=t.calculateTotalPages();t.updatePage()})):t.itemsPerPage=u.itemsPerPage;i.$watch("totalItems",function(n,r){(angular.isDefined(n)||n!==r)&&(i.totalPages=t.calculateTotalPages(),t.updatePage())})};t.calculateTotalPages=function(){var n=t.itemsPerPage<1?1:Math.ceil(i.totalItems/t.itemsPerPage);return Math.max(n||0,1)};t.render=function(){i.page=parseInt(t.ngModelCtrl.$viewValue,10)||1};i.selectPage=function(n,r){r&&r.preventDefault();var u=!i.ngDisabled||!r;u&&i.page!==n&&n>0&&n<=i.totalPages&&(r&&r.target&&r.target.blur(),t.ngModelCtrl.$setViewValue(n),t.ngModelCtrl.$render())};i.getText=function(n){return i[n+"Text"]||t.config[n+"Text"]};i.noPrevious=function(){return i.page===1};i.noNext=function(){return i.page===i.totalPages};t.updatePage=function(){t.setNumPages(i.$parent,i.totalPages);i.page>i.totalPages?i.selectPage(i.totalPages):t.ngModelCtrl.$render()};i.$on("$destroy",function(){while(t._watchers.length)t._watchers.shift()()})}}}]);angular.module("uib/template/accordion/accordion-group.html",[]).run(["$templateCache",function(n){n.put("uib/template/accordion/accordion-group.html",'<div role="tab" id="{{::headingId}}" aria-selected="{{isOpen}}" class="panel-heading" ng-keypress="toggleOpen($event)">\n  <h4 class="panel-title">\n    <a role="button" data-toggle="collapse" href aria-expanded="{{isOpen}}" aria-controls="{{::panelId}}" tabindex="0" class="accordion-toggle" ng-click="toggleOpen()" uib-accordion-transclude="heading" ng-disabled="isDisabled" uib-tabindex-toggle><span uib-accordion-header ng-class="{\'text-muted\': isDisabled}">{{heading}}<\/span><\/a>\n  <\/h4>\n<\/div>\n<div id="{{::panelId}}" aria-labelledby="{{::headingId}}" aria-hidden="{{!isOpen}}" role="tabpanel" class="panel-collapse collapse" uib-collapse="!isOpen">\n  <div class="panel-body" ng-transclude><\/div>\n<\/div>\n')}]);angular.module("uib/template/accordion/accordion.html",[]).run(["$templateCache",function(n){n.put("uib/template/accordion/accordion.html",'<div role="tablist" class="panel-group" ng-transclude><\/div>')}]);angular.module("uib/template/pagination/pagination.html",[]).run(["$templateCache",function(n){n.put("uib/template/pagination/pagination.html",'<li role="menuitem" ng-if="::boundaryLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-first"><a href ng-click="selectPage(1, $event)" ng-disabled="noPrevious()||ngDisabled" uib-tabindex-toggle>{{::getText(\'first\')}}<\/a><\/li>\n<li role="menuitem" ng-if="::directionLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-prev"><a href ng-click="selectPage(page - 1, $event)" ng-disabled="noPrevious()||ngDisabled" uib-tabindex-toggle>{{::getText(\'previous\')}}<\/a><\/li>\n<li role="menuitem" ng-repeat="page in pages track by $index" ng-class="{active: page.active,disabled: ngDisabled&&!page.active}" class="pagination-page"><a href ng-click="selectPage(page.number, $event)" ng-disabled="ngDisabled&&!page.active" uib-tabindex-toggle>{{page.text}}<\/a><\/li>\n<li role="menuitem" ng-if="::directionLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-next"><a href ng-click="selectPage(page + 1, $event)" ng-disabled="noNext()||ngDisabled" uib-tabindex-toggle>{{::getText(\'next\')}}<\/a><\/li>\n<li role="menuitem" ng-if="::boundaryLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-last"><a href ng-click="selectPage(totalPages, $event)" ng-disabled="noNext()||ngDisabled" uib-tabindex-toggle>{{::getText(\'last\')}}<\/a><\/li>\n')}]),function(n,t){"use strict";n.viCurrentModule&&n.viCurrentModule.requires.push("vi.fe.formfinder.widget");var i=t.module("vi.fe.formfinder.widget",["ngSanitize","ui.bootstrap","vi.common"])}(window,angular),function(n,t){var i=t.module("vi.fe.core.formbuilder.submit");i.controller("formBuilderDashboardReviewController",["$scope","blockUI","viCoreComponentFormAPIClient","formFieldTypeManager","toastr","$filter",function(n,i,r,u,f,e){r.registerClass("api.feformbuilder.GetDashboardReviewDetail");var o=r.getService();n.dataLoaded=!1;n.init=function(i){u.init();o.api.feformbuilder.GetDashboardReviewDetail(i).then(function(r){var f={guid:r.data.guid,formName:r.data.title,title:r.data.title,description:r.data.description,enablePrevPageNavigation:r.data.enablePrevPageNavigation,enableQuestionNumbering:r.data.enableQuestionNumbering},o=1;t.forEach(r.data.pages,function(n){n.form=f;var r=n.fields;t.forEach(e("orderBy")(r,"meta.order"),function(t){t.type=u.getFieldType(t.meta.fieldTypeID);t.type.initField(t,n.form,u);t.tid=t.meta.id;t.pIndex=t.type.data.type!="format"&&(i.isPaymentEnabled||t.type.data.type!="payment")?o++:0;t.page=n});n.fields=$.grep(r,function(n){var t=!0;return i.isDigitalSignatureFeatureEnabled||(t=t&&n.type.data.name!=="DigitalSignature"),t})});n.viewDetail=r.data;n.dataLoaded=!0})}}])}(window,angular),function(){var n=angular.module("vi.fe.core.formbuilder.submit");n.controller("formBuilderESignController",["$scope","$q","$timeout","$filter","toastr","blockUI","formJsonDataUtil","formFieldTypeManager","formBuilderESignService",function(n,t,i,r,u,f,e,o,s){var h={init:function(t,r){var f=this;f.formGuid=t;f.paymentEnabled=r;s.getform({guid:f.formGuid,securityInput:{guid:f.formGuid,ignoreVerify:!0}}).then(function(t){var e=f,u=t.data.pages;angular.forEach(u,function(n){n.form=f;var t=n.fields,i=1;angular.forEach(t,function(t){t.type=o.getFieldType(t.meta.fieldTypeID);t.type.initField(t,n.form,o);t.tid=t.meta.id;t.pIndex=t.type.data.type=="format"?0:i++;t.page=n});n.fields=$.grep(t,function(n){return r?n:n.type.data.type!=="payment"})});f.guid=t.data.guid;f.formName=t.data.title;f.title=t.data.title;f.description=t.data.description;f.enablePrevPageNavigation=t.data.enablePrevPageNavigation;f.enableQuestionNumbering=t.data.enableQuestionNumbering;n.enableQuestionNumbering=t.data.enableQuestionNumbering;f.pages=u;f.activePageIndex=0;f.activePage=f.pages[f.activePageIndex];i(function(){self.angularInited=!0})},function(){u.error("Get form failed.")})}};n.viewModel=h;n.initFormDetail=function(t,i){n.getDetailResponse(t,i)};n.getDetailResponse=function(t,u){s.getdetailresponse({formGuid:t,entryGuid:u}).then(function(t){n.viewDetail=t.data;var u={guid:t.data.guid,formName:t.data.title,title:t.data.title,description:t.data.description,enablePrevPageNavigation:t.data.enablePrevPageNavigation,enableQuestionNumbering:t.data.enableQuestionNumbering},f=1;angular.forEach(n.viewDetail.pages,function(n){n.form=u;var t=n.fields;angular.forEach(r("orderBy")(t,"meta.order"),function(t){t.type=o.getFieldType(t.meta.fieldTypeID);t.type.initField(t,n.form,o);t.tid=t.meta.id;t.pIndex=t.type.data.type=="format"?0:f++;t.page=n})});i(function(){self.angularExecuted=!0})}).then(function(){})}}])}(),function(){var n=angular.module("vi.fe.core.formbuilder.submit");n.controller("formBuilderReviewController",["$scope","$http","$timeout","formBuilderReviewService","formFieldTypeInitializer",function(n,t){n.init=function(t,i){n.formGuid=t;n.entryGuid=i;n.tipMessage="Preparing data...";$("body").css("margin",0);n.generatePdf()};n.generatePdf=function(){var f=window.visionOptions.virtualApplicationPath+"Shared/PdfExists",u={type:"attachment",entryGuid:n.entryGuid,guid:n.formGuid},i=null,r=null;t({method:"POST",url:f,params:u}).then(function(f){var s=$("#Container"),e="100%",o="99.5%";f.data.Result==!1?(i=$("<iframe frameborder='0' />").attr("src",f.data.URL),i.css("width",e),i.css("height",o),i.hide(),i.appendTo($(document.body)),i.load(function(){var f=function(){var f=i[0].contentWindow||i,h=!1,a=1e4,c=0,l=200,v=window.setInterval(function(){if(c>=a||h)return window.clearInterval(v),!1;if(!f.angularExecuted||!f.angularInited)return c+=l,!1;h=!0;n.tipMessage="Generating the pdf file...";var y=(i[0].contentDocument||i[0].contentWindow.document).documentElement.outerHTML;t({method:"POST",url:window.visionOptions.virtualApplicationPath+"Shared/PdfGenerate",params:u,data:{html:y}}).then(function(t){t.data.Result==!0?(i.remove(),i=null,n.tipMessage=null,s.hide(),r=$("<iframe frameborder='0' />").attr("src",t.data.URL),r.appendTo($(document.body)),r.css("width",e),r.css("height",o)):console.error("Sorry, generating PDF something wrong.",t)},function(n){i.remove();i=null;console.error("Sorry, generating PDF failed.",n)})},l)};f()})):(n.tipMessage=null,s.hide(),i=$("<iframe frameborder='0' />").attr("src",f.data.URL),i.css("width",e),i.css("height",o),i.appendTo($(document.body)))},function(n){console.error("Sorry, checking PDF exists failed.",n)})}}])}(),function(){var n=angular.module("vi.fe.core.formbuilder.submit");n.controller("formBuilderSubmitController",["$scope","toastr","blockUI","formJsonDataUtil","formBuilderSubmitService","formBuilderSecurityService","viFrontendCoreService","formFieldTypeInitializer","formFieldTypeManager","vcRecaptchaService","currentUser",function(n,t,i,r,u,f,e,o,s){e.registerClass("Home.Core.FormBuilder.FormBuilderFrontend.GetHandleOrderAndPayment");e.registerClass("Home.Core.FormBuilder.FormBuilderFrontend.FrontendESign");e.registerClass("Home.Core.FormBuilder.FormBuilderFrontend.SendSignatureEmail");var h=e.getService();n.security=f;n.__currentForm=null;n.viewModel={id:0,name:"",pages:[]};n.init=function(t){n.isEditable=t.isEditable||!1;n.paymentEnabled=t.paymentEnabled||!1;n.signatureInfo=t.signatureInfo||{};n.isReview=t.isReview||!1;n.recaptchaKeyObj=t.recaptchaKeyObj;n.digitalSignatureFieldType=Enumerable.From(FORMFIELDTYPEDATALIST).Where("c => c.name=='DigitalSignature'").FirstOrDefault()};n.initFormSubmitService=function(t,i,r,f,e,o){visionApps&&visionApps.token&&(visionApps.tokenAtMilsecond=(new Date).getTime());i&&(n.formName=i.formName);t?(t.init(i),n.$apply(function(){n.viewModel=t.viewModel;n.fieldService=t.fieldService;n.actionsHandler=t.actionsHandler;n.fieldTypeManager=s})):(n.__currentForm=r[i.formName],u.init(i,n.actionWrapper,n.paymentEnabled,n.signatureInfo,n.isReview,f,n),n.viewModel=u.viewModel,n.captcha=u.captcha,n.actionsHandler=u.actionsHandler,n.fieldTypeManager=s,r.$watch(i.formName+".$dirty",function(n){u.formDirtyChange(n)}));n.viewModel.receiptEmail=e;n.viewModel.websiteUserID=o};n.actionWrapper=function(i,r){n.__currentForm&&(n.__currentForm.$valid?(i(),n.__currentForm.$setPristine(),n.__currentForm.$submitted=!1):(r(),n.__currentForm.$setDirty(),n.__currentForm.$setSubmitted(),t.error("Please correct the validation errors first.",{target:".toast_error"})))};n.frontendPaymentInit=function(){if(n.paymentEnabled&&(n.viewModel.entryID&&n.viewModel.entryID>0||n.viewModel.entryGuid)&&n.viewModel.needToPay){var t={formGuid:n.viewModel.guid,entryGuid:n.viewModel.entryGuid,entryID:n.viewModel.entryID,receiptEmail:n.viewModel.receiptEmail};h.Home.Core.FormBuilder.FormBuilderFrontend.GetHandleOrderAndPayment(t).then(function(t){angular.element("form[name='"+n.formName+"'] + div .form-builder-payment").html(t.data);n.viewModel.ready=!0})}};n.loadSignature=function(){if(n.viewModel.needToSign)if(n.viewModel.entryID>0||n.viewModel.entryGuid){var t={formGuid:n.viewModel.guid,entryGuid:n.viewModel.entryGuid,name:n.viewModel.signer.name,email:n.viewModel.signer.email,signatureID:n.viewModel.signatureID,testMode:n.viewModel.signer.testMode};h.Home.Core.FormBuilder.FormBuilderFrontend.FrontendESign(t).then(function(t){angular.element(document.body).append(t.data);n.viewModel.submitStatus=3;n.viewModel.ready=!0}).catch(function(){n.viewModel.submitStatus=3;console.log("Unable to do signature")})}else console.log("You need to sign, but form service has problem, no form submission yet."),n.viewModel.submitStatus=3;else n.viewModel.submitStatus=3};n.updateSignature=function(t,i,r){r=r||!1;n.viewModel.signatureID=t;n.viewModel.provider=i;var f={formGuid:n.viewModel.guid,entryGuid:n.viewModel.entryGuid,signatureID:t,provider:n.viewModel.provider,testMode:n.viewModel.signer.testMode||!1,updateStatus:r};u.updateSignature(f).then(function(t){r&&(h.Home.Core.FormBuilder.FormBuilderFrontend.SendSignatureEmail(),n.viewModel.submitStatus=t.data.status,n.viewModel.submitStatus==32&&(n.viewModel.needToPay=!0))})};n.handleRedirectUrl=function(){var t=angular.element("form[name='"+n.formName+"']").parent().find(".redirect-url"),i=t.attr("href").replace("entryGuid=entryGuid","entryGuid="+n.viewModel.entryGuid);window.location.href=i}}])}(),function(n,t,i){var r=t.module("vi.fe.core.formbuilder.submit");r.directive("formBuilderFieldsSortable",["$compile","$parse","$timeout",function(n,r){return{restrict:"A",link:function(n,u,f){var e=n.$eval(f.sortable)||{};u.sortable(i.extend({placeholder:"sort-placehoder",connectWith:".form-pagination-body",change:function(i,r){var e=t.element(r.item),w=e.parent().children(),u=-1,v=!1,c,k,a,f,l,h,p;t.forEach(w,function(n,i){t.element(n).hasClass("sort-placehoder")?u=v?i-1:i:u==-1&&e.attr("sort-data")==t.element(n).attr("sort-data")&&(v=!0)});var b=n.$eval(e.attr("drag-data")),y=n.$eval(e.attr("sort-data")),d=n.$eval(e.next().attr("sort-data")),o=e.closest(".form-pagination-body").scope(),s=t.element(r.placeholder);if(s.hasClass("disabled")&&s.removeClass("disabled"),c=s.closest(".form-pagination-body").scope(),y&&typeof o!="undefined"&&o&&o.page&&c&&c.page){if(k=o.page,a=c.page,b)return;if(f=o.$parent,f&&f.fieldService&&f.fieldTypeManager&&f.fieldTypeManager.conditionalLogicManager)if(l=f.fieldService.getField(y.tid),h=f.fieldTypeManager.conditionalLogicManager.getFieldMetaMinMaxOrdersForDragDrop(l,a),l.page.id==a.id){if(p=l.meta.order,u==p)return;(u>h.max||u<=h.min)&&s.addClass("disabled")}else(u>h.max||u<=h.min)&&s.addClass("disabled")}},stop:function(n,r){t.element(r.placeholder).hasClass("disabled")&&t.element(r.placeholder).parent()[0]!=this&&i(this).sortable("cancel")},update:function(i,u){var e=t.element(u.item),c=n.$eval(e.attr("drag-data")),s=n.$eval(e.attr("sort-data")),l=n.$eval(e.next().attr("sort-data")),o=e.closest(".form-pagination-body").scope(),a=t.element(u.placeholder),h;a.hasClass("disabled")||s&&typeof o!="undefined"&&o&&o.page&&(c&&e.remove(),h=o.page,s.pid!=h.pid&&e.remove(),n.$apply(function(){r(f.onUpdate)(n,{data:s,pos:{next:l},page:h})}))}},e))}}}]);r.directive("formBuilderPagesSortable",["$compile","$parse","$timeout",function(n,r){return{restrict:"A",link:function(n,u,f){var e=n.$eval(f.sortable)||{};u.sortable(i.extend({placeholder:"sort-placehoder",handle:".form-pagination-header",change:function(i,r){var f=t.element(r.item),v=f.parent().children(),o=-1,c=!1,p,u,a,h;t.forEach(v,function(n,i){t.element(n).hasClass("sort-placehoder")?o=c?i-1:i:o==-1&&f.attr("sort-data")==t.element(n).attr("sort-data")&&(c=!0)});var y=n.$eval(f.attr("drag-data")),l=n.$eval(f.attr("sort-data")),w=n.$eval(f.next().attr("sort-data")),e=f.closest(".form-pagination").scope(),s=t.element(r.placeholder);if(s.hasClass("disabled")&&s.removeClass("disabled"),l&&typeof e!="undefined"&&e&&e.page){if(p=e.page,y)return;u=e.$parent;u&&u.fieldService&&u.fieldTypeManager&&u.fieldTypeManager.conditionalLogicManager&&(a=u.fieldService.getPage(l.pid),h=u.fieldTypeManager.conditionalLogicManager.getPageMinMaxOrdersForDragDrop(a),(o>h.max||o<=h.min)&&s.addClass("disabled"))}},stop:function(n,r){t.element(r.placeholder).hasClass("disabled")&&t.element(r.placeholder).parent()[0]!=this&&i(this).sortable("cancel")},update:function(i,u){var e=t.element(u.item),h=e.next(),v=e.scope(),c=e.attr("sort-data"),o=n.$eval(c),l=n.$eval(h.attr("sort-data")),s=e.closest(".form-paginations").scope(),a=t.element(u.placeholder);a.hasClass("disabled")||o&&typeof s!="undefined"&&s&&n.$apply(function(){r(f.onUpdate)(n,{curData:o,nextData:l})})}},e))}}}])}(window,angular,jQuery),function(n,t){"use strict";var i=t.module("vi.fe.core.formbuilder.submit");i.directive("formBuilderList",["$compile","formBuilderWidgetListService",function(n,i){var r=function(){return"<div ng-init='formBuilderList.init()'><div class='data-loading' ng-show='!listBuilder.dataBag.dataLoaded'>Loading Data<\/div><table class='listtable responsive-table-data-mb' ng-show='listBuilder.records.length > 0' ><thead><tr><th ng-repeat='header in headers'><span ng-if='!header.sortable'>{{ header.title=='' ? '&nbsp;' : header.title }}<\/span><a id='{{header.id}}' href='{{header.url}}' class='{{header.cssClass}}' title='Click to Sort by {{header.sortDirection}}' ng-if='header.sortable'>{{header.title}}<\/a><\/th><\/tr><\/thead><tbody><tr ng-repeat='form in listBuilder.records' class='field-fe-li-display'><td data-th='Form' ng-if='form.status==\"Open\" && editMode'><a href='{{form.detailUrl}}' ng-click='$event.preventDefault()'>{{form.title}}<\/a><\/td><td data-th='Form' ng-if='form.status==\"Open\" && !editMode'><a href='{{form.detailUrl}}'>{{form.title}}<\/a><\/td><td data-th='Form' ng-if='form.status!=\"Open\"'>{{form.title}}<\/td><td data-th='Status' ng-show='showStatusColumn'>{{form.status}}<\/td><\/tr><\/tbody><\/table><\/div>"};return{restrict:"EA",replace:!0,scope:!0,link:function(u,f,e){var o=JSON.parse(t.element("#formbuilder-data-"+e.widgetId).text()),s,h;u.listBuilder={dataBag:{dataLoaded:!1}};u.showStatusColumn=o.showStatusColumn;u.headers=o.headers;s=i.builder(o);t.extend(u.listBuilder,s);u.listBuilder.init();u.editMode=o.editMode;h=r();f.html(h);n(f.contents())(u)}}}]);i.directive("formBuilderListEmpty",[function(){return{restrict:"EA",replace:!0,scope:{builder:"="},template:"<div class='content_area no-padding-left'>No results found.<\/div>",link:function(){}}}])}(window,angular,jQuery),function(n,t){"use strict";var i=t.module("vi.fe.core.formbuilder.submit");i.directive("formBuilderListFilter",["$compile",function(n){var i=function(){return'<div class=\'list-filter\'><select ng-repeat=\'filter in filters\' title=\'{{filter.title}}\' onchange = "return RedirectAfterDropDownListSelectedChanged(this);"><option ng-repeat="opt in filter.item" value="{{opt.Value}}" ng-selected="{{opt.Selected}}" ng-model="selectedItem" data-url="{{opt.Value}}" ng-change="redirect()" >{{opt.Text}}<\/option><\/select><\/div>'};return{restrict:"E",replace:!0,scope:!0,link:function(r,u,f){var o=JSON.parse(t.element("#formbuilder-data-"+f.widgetId).text()),e;r.filters=o.filters;e=i();u.html(e);n(u.contents())(r)}}}])}(window,angular,jQuery),function(n,t,i){var r=t.module("vi.fe.core.formbuilder.submit");r.directive("formBuilderSubmitActions",["$compile","$parse","$timeout",function(){return{restrict:"AE",scope:{viewModel:"=viViewModel",actionsHandler:"=viActionsHandler",formName:"=viFormName",displayRunningTotal:"=viDisplayRunningTotal"},template:'<div class="form-actions"><span ng-if="showRunningTotal"><b>Current Total: <\/b>{{allPageSubtotal | currency:"$":2}}<\/span><a ng-repeat="action in actionsHandler.actions | orderBy: \'order\' | filter:{display:true}" class="form-action {{action.cssClass}}" ng-click="action.click(actionsHandler);" href="javascript:void(0);" ng-disabled="action.enabled==false" ng-attr-tabindex={{action.enabled?0:-1}} ng-attr-aria-disabled="{{!action.enabled}}" ng-attr-title="{{action.tooltip}}"  >{{action.text}}<\/a><\/div>',link:function(n,r){if(n.formScope=t.element(r.closest("form")).scope()[r.closest("form").attr("name")],n.showRunningTotal=n.displayRunningTotal===!0,n.showRunningTotal){var u=function(r){function o(){var f=[],e,i;t.forEach(u,function(n){var t=n.field.getCalculatableItems();f=Enumerable.From(f).Union(Enumerable.From(t)).ToArray()});e=Enumerable.From(f).Sum("c => c.subTotal");r.allSubtotal=e;i=0;t.forEach(n.viewModel.pages,function(n){i=i+(n.allSubtotal||0)});n.allPageSubtotal=i}for(var e,s=t.element('form[name="'+n.formName+'"] .form-submit-section .form-page-'+r.id+" .calculatable-payment-field"),u=i.map(s,function(n){return i(n).scope()}),f=0;f<u.length;f++)e=u[f],e.field.registerWatch&&e.field.registerWatch(n,o);o()};n.$watch(function(){return n.viewModel.dataLoaded},function(){n.viewModel.dataLoaded&&t.forEach(n.viewModel.pages,function(t){n.$watch(function(){return t.allowToShow},function(){t.allowToShow&&!t.allSubtotalCalculated&&(u(t),t.allSubtotalCalculated=!0)})})})}}}}])}(window,angular,jQuery),function(n,t){var i=t.module("vi.fe.core.formbuilder.submit");i.directive("formBuilderSubmitPagination",["$compile","$parse","$timeout",function(){return{restrict:"AE",scope:{viewModel:"=viViewModel",actionsHandler:"=viActionsHandler"},template:'<div ng-repeat="page in viewModel.pages" class="form-pagination form-page-{{page.id}}" ng-if="page.allowToShow" ng-show="$index == viewModel.activePageIndex"><div ng-repeat="field in viewModel.pages[$index].fields  | filter: {isSkipped:false} | orderBy: \'order\'" class="form-field"><vi-form-field-edit vi-model="field" ng-class="field.meta.className" vi-options="options"><\/vi-form-field-edit><\/div><\/div>',link:function(){}}}])}(window,angular,jQuery),function(n,t){var i=t.module("vi.fe.core.formbuilder.submit");i.directive("formBuilderSubmitPaginationsNavigation",["$compile","$parse","$timeout",function(){return{restrict:"AE",scope:{viewModel:"=viViewModel",actionsHandler:"=viActionsHandler"},template:'<div class="form-pagination-navs" ng-if="viewModel.originalPages.length > 1"><div ng-repeat="page in viewModel.originalPages | orderBy: \'order\'" class="form-pagination" ng-class="{\'form-pagination-active\':page==viewModel.activePage}">{{page.title}}<\/div><\/div>',link:function(){}}}])}(window,angular,jQuery),function(n,t){var i=t.module("vi.fe.core.formbuilder.submit");i.directive("formBuilderSubmitReview",["$compile","$parse","$timeout",function(){return{restrict:"AE",scope:{viewModel:"=viViewModel",actionsHandler:"=viActionsHandler"},template:'<div class="form-builder-submit-review" ng-class="{questionNumbering:viewModel.enableQuestionNumbering}"><div ng-repeat="page in viewModel.pages | orderBy: \'order\'" class="form-pagination"><div class="form-pagination-header" ng-if="viewModel.pages.length > 1">{{page.title}}<\/div><div class="form-pagination-body"><div ng-repeat="field in page.fields | filter: {isSkipped:false} | orderBy: \'order\'" class="form-field"><vi-form-field-display vi-model="field" ng-class="field.meta.className"><\/vi-form-field-display><\/div><\/div><\/div><\/div>',link:function(){}}}])}(window,angular,jQuery),function(n,t){var i=t.module("vi.fe.core.formbuilder.submit");i.directive("formBuilderSubmitSecurity",["$compile","$parse","$timeout",function(){return{restrict:"EA",template:'<div class="form-builder-submit-security"><h3 ng-if="security.options.showtitle">{{security.options.title}}<\/h3><div class="security-message" ng-if="security.data.output.failedResult.message" ng-show="!security.data.output.next.editTemplateSrc" ng-bind-html="security.data.output.failedResult.message"><\/div><div class="security-ui" ng-if="security.data.output.next.editTemplateSrc" form-builder-submit-security-ui><\/div><\/div>',link:function(){}}}])}(window,angular,jQuery),function(n,t){var i=t.module("vi.fe.core.formbuilder.submit");i.directive("formBuilderSubmitSecurityPassword",["$compile","$parse","$timeout","formBuilderSecurityService",function(){return{restrict:"EA",replace:!0,template:'<div class="security-password" ng-class="{\'has-error\': security.data.output.failedResult.extraData.passwordNotMatched}"><form novalidate name="passwordForm"><div><label for="formPassword">Password:<\/label><\/div><div><input id="formPassword" name="formPassword" ng-model="security.data.curItem.data" type="password"/><\/div><div class="error-message">Your password is incorrect.<\/div><div class="command-box"><a class="command primary" href="javascript:void(0);" ng-click="security.submit()">Submit<\/a><\/div><\/form><\/div>',link:function(){}}}])}(window,angular,jQuery),function(n,t){var i=t.module("vi.fe.core.formbuilder.submit");i.directive("formBuilderSubmitSecurityUi",["$compile","$parse","$timeout",function(n){return{restrict:"EA",link:function(t,i){var r=t.security.data.output.next.editTemplateSrc;i.html("<"+r+"><\/"+r+">");n(i.contents())(t)}}}])}(window,angular,jQuery),function(){"use strict";var n=angular.module("vi.fe.core.formbuilder.submit");n.service("formBuilderESignService",["$http","$q","viCoreComponentFormAPIClient","formFieldTypeManager","viFrontendCoreService",function(n,t,i,r){var u,f;return i.registerClass("api.feformbuilder.getform").registerClass("api.feformbuilder.getdetailresponse"),u=i.getService(),r.init({fieldOptions:{relativeTemplatePath:""}}),f=function(){},f.prototype={getform:u.api.feformbuilder.getform,getdetailresponse:u.api.feformbuilder.getdetailresponse},new f}])}(),function(){"use strict";var n=angular.module("vi.fe.core.formbuilder.submit");n.service("formBuilderReviewService",["$http","$q","toastr","blockUI",function(){var n=function(){};return n.prototype={init:function(){}},new n}])}(),function(){"use strict";var n=angular.module("vi.fe.core.formbuilder.submit");n.service("formBuilderSecurityService",["$http","$q","viCoreComponentFormAPIClient","$cookies",function(n,t,i,r){function u(){}i.registerClass("api.feformbuilder.checkSecurities");var f=i.getService();return u.prototype={data:{input:{guid:"",securityKey:"",securityCacheMinutes:30,extendFormTimeout:!1,inputs:[],cookies:[]},output:{securityKey:"",failedResult:{pass:!1,message:""},next:{id:0,editTemplateSrc:""}},curItem:{}},_cookiePrefix:"FORMSECURITY_",options:{},init:function(n){var t=this,i;t.options=n;n!=undefined&&(t.data.input.guid=n.guid);i=r.getAll();t.data.input.cookies.splice(0,this.data.input.cookies.length);angular.forEach(i,function(n,i){if(i.indexOf(t._cookiePrefix)==0){var r=i.substring(t._cookiePrefix.length);t.data.input.cookies.push({name:r,value:n})}});t.checkSecurities()},submit:function(){var n=this.data,i,t;if(n.curItem.id>0){for(i=!1,t=0;t<n.input.inputs.length;t++)if(n.input.inputs[t].id==n.curItem.id){n.input.inputs[t].data=n.curItem.data;i=!0;break}i||n.input.inputs.push(n.curItem);this.checkSecurities()}},promptFormTimeout:function(n,t){window.focus();var i=$.format(Vision.Resources.FrontEndSessionTimeout_SessionTip,t,n),r=window.confirm(i);r&&this.extendFormTimeout(function(){})},setTimerForFormExpiration:function(n,t){var r=this,u=window.parseInt(n)*6e4-window.parseInt(t)*6e4,i;r.timeoutIDForFormExpirationAtFrontEnd!=null&&(clearTimeout(window.timeoutIDForFormExpirationAtFrontEnd),r.timeoutIDForFormExpirationAtFrontEnd=null);r.timeoutIDForFormExpirationAtFrontEnd=window.setTimeout(function(){r.promptFormTimeout(n,t)},u-1e4);i=$.frontendSessionManager();i._window._timeoutIDForSessionExpirationAtFrontEnd!=null&&(i._window.clearTimeout(i._window._timeoutIDForSessionExpirationAtFrontEnd),i._window._timeoutIDForSessionExpirationAtFrontEnd=null)},checkSecurities:function(){var i=this,n=this.data,t=n.input;return t.securityCacheMinutes=window.visionOptions.sessionTimeoutInMinutes,$.frontendSessionManager().extendSessionTimeout(function(){}),f.api.feformbuilder.checkSecurities(t).then(function(r){n.input.securityKey=r.data.securityKey;n.output.securityKey=r.data.securityKey;r.data.failedResult?(n.output.failedResult.pass=r.data.failedResult.pass,n.output.failedResult.message=r.data.failedResult.message,n.output.failedResult.extraData=r.data.failedResult.extraData,n.output.failedResult.message=n.output.failedResult.message.replace(/\n/g,"<br/>").replace(/\r/g,"")):(n.output.failedResult.pass=!0,n.output.failedResult.message="",r.data.anySecurities&&i.setTimerForFormExpiration(t.securityCacheMinutes,window.visionOptions.timeToAlertBeforeSessionTimeoutInMinutes),n.output.failedResult.extraData={});r.data.next?(n.output.next.id=r.data.next.id,n.output.next.editTemplateSrc=r.data.next.editTemplateSrc=="formPasswordSecurityTemplate.html"?"form-builder-submit-security-password":r.data.next.editTemplateSrc,n.curItem.id=r.data.next.id,n.curItem.data=null):(n.output.next.id=0,n.output.next.editTemplateSrc="")})},extendFormTimeout:function(){var n=this.data,t=n.input;t.extendFormTimeout=!0;this.checkSecurities()},gotoSecurityIfFailed:function(n){var t,i,u;if(n.failedResult&&!n.failedResult.pass&&(this.data.output.failedResult.pass=n.failedResult.pass,this.data.output.failedResult.message=n.failedResult.message),n.securityCookies&&n.securityCookies.length!=0)for(t=new Date,t.setYear(t.getFullYear()+100),i=0;i<n.securityCookies.length;i++)u=n.securityCookies[i],u&&r.put(this._cookiePrefix+u.name,u.value,{expires:t})}},new u}])}(),function(){"use strict";var n=angular.module("vi.fe.core.formbuilder.submit");n.service("formBuilderSubmitService",["$http","$q","toastr","blockUI","viCoreComponentFormAPIClient","formFieldTypeManager","formBuilderSecurityService","coreComponentFormSDKConfig","viFrontendCoreService","conditionalLogicExecutorService","currentUser","$timeout","vcRecaptchaService",function(n,t,i,r,u,f,e,o,s,h,c,l,a){var p,v,k;u.registerClass("api.feformbuilder.getform").registerClass("api.feformbuilder.submit").registerClass("api.feformbuilder.view").registerClass("api.feformbuilder.updateSignature");p=u.getService();s.registerClass("Home.Core.FormBuilder.FormBuilderFrontend.SendSubmissionEmails").registerClass("Home.Core.FormBuilder.FormBuilderFrontend.SendSignatureEmail").registerClass("Home.Core.FormBuilder.FormBuilderFrontend.IsSignatureAvailable").registerClass("Home.Core.FormBuilder.FormBuilderFrontend.ValidateRecaptcha");var w=s.getService(),y={UNKNOWN:0,FILLING:1,SUBMITTING:2,SUBMITTED:3,REVIEWING:4,SIGNPENDING:16,SIGNED:31,PAYING:32,PAIED:47},b={None:0,Signature:1,Payment:2};return f.init({fieldOptions:{relativeTemplatePath:""}}),v=this,v.scope=null,k=function(){},k.prototype={_externalActionWrapper:null,blockUIInstance:null,formGuid:null,viewable:!1,submitable:!1,tracking:{view:null,clientViewDate:null,clientSubmissionStartDateTime:null},viewModel:{originalPages:[],pages:[],activePageIndex:-1,activePage:{},activeField:{},fieldTypes:[],guid:null,title:"",description:"",enablePrevPageNavigation:!1,enableQuestionNumbering:!1,enableSaveProgress:!1,submitStatus:y.UNKNOWN,completionMessage:"Congrats"},captcha:{key:null,size:null,type:null,required:!0,response:null,widgetId:null,init:function(n,t,i){this.key=n;this.type=t;this.size=i},setResponse:function(n){this.response=n;v.scope.actionsHandler.rebindActions()},setWidgetId:function(n){if(this.widgetId=n,this.type=="GoogleInvisibleReCaptCha"&&(document.querySelector("body").setActive&&document.querySelector("body").setActive(),v.scope.__currentForm.$error.recaptcha))if(v.scope.__currentForm.$error.required.length==1)v.scope.__currentForm.$error={};else{var t=Enumerable.From(v.scope.__currentForm.$error.required).Where("c => c.$modelValue == null").FirstOrDefault(),i=v.scope.__currentForm.$error.required.indexOf(t);delete v.scope.__currentForm.$error.recaptcha;v.scope.__currentForm.$error.required.splice(i,1)}},cbExpiration:function(){console.warn("Captcha expired. Resetting response object");a.reload(this.widgetId);this.response=null}},actionsHandler:{_service:null,actions:[{enabled:!1,display:!1,text:"Logged in as",tooltip:"Logged in as",cssClass:"display",click:function(){},rebindActions:function(){var n=c.profile();this.enabled=!1;this.text=this.tooltip="Logged in as "+n.name;this.display=v.hasSignature()&&(n.loggedIn()||!1)}},{enabled:!1,display:!1,text:"Previous",tooltip:"Go to previous page.",click:function(n){this.enabled&&(n._service.executePrevious(),n.rebindActions(),n.wcagReFocusElement())},rebindActions:function(n){this.display=n.viewModel.enablePrevPageNavigation&&n.viewModel.activePageIndex>0&&n.viewModel.submitStatus==y.FILLING;this.enabled=n.viewModel.submitStatus==y.FILLING}},{enabled:!0,display:!0,text:"Next",tooltip:"Go to next page. Answer questions before proceeding.",click:function(n){this.enabled&&(n._service.executeNext(),n.rebindActions(),n.wcagReFocusElement())},rebindActions:function(n){this.display=n.viewModel.activePageIndex<n.viewModel.pages.length-1;this.enabled=n.viewModel.submitStatus==y.FILLING}},{enabled:!1,display:!1,text:"Review",tooltip:"Review all form answers.",click:function(n){this.enabled&&(n._service.executeReview(),n.rebindActions(),n.wcagReFocusReviewElement())},rebindActions:function(n){this.display=n.submitable&&n.viewModel.activePageIndex==n.viewModel.pages.length-1&&n.viewModel.submitStatus==y.FILLING;this.enabled=n.viewModel.submitStatus==y.FILLING}},{enabled:!1,display:!1,text:"Cancel",tooltip:"Cancel review form.",click:function(n){this.enabled&&(n._service.viewModel.submitStatus=y.FILLING,n.rebindActions(),n.wcagReFocusElement())},rebindActions:function(n){this.display=n.submitable&&n.viewModel.activePageIndex==n.viewModel.pages.length-1&&n.viewModel.submitStatus==y.REVIEWING;this.enabled=n.viewModel.submitStatus==y.REVIEWING}},{enabled:!1,display:!1,text:"Login",tooltip:"Login",click:function(n){this.enabled&&v.hasSignature()&&c.popupLogin(function(){v.scope.$apply(function(){n.rebindActions()})})},rebindActions:function(n){var t=c.profile(),i=n.submitable&&n.viewModel.activePageIndex==n.viewModel.pages.length-1;this.enabled=!0;this.display=v.hasSignature()&&!t.loggedIn()&&!i}},{enabled:!1,display:!1,text:"Submit",tooltip:"Complete and submit form response.",click:function(n){var r=c.profile(),t=this,i;v.hasSignature()&&!r.loggedIn()?t.enabled&&c.popupLogin(function(){!v.isReview&&t.enabled&&v.scope.$apply(function(){n.rebindActions()})}):!v.isReview&&t.enabled&&(i=n._service.executeSubmit(),i&&n.rebindActions())},rebindActions:function(n){var i=this,u=c.profile(),r=r=n.submitable&&n.viewModel.activePageIndex==n.viewModel.pages.length-1,t;i.display=r;i.text=v.hasSignature()&&!u.loggedIn()?"Login to Submit":"Submit";t=v.isReview?!1:n.viewModel.submitStatus==y.FILLING||n.viewModel.submitStatus==y.REVIEWING;n.captcha.type=="GoogleReCAPTCHAV2"&&(t=t&&n.captcha.response!=null);i.enabled=t}}],_init:function(n){this._service=n;this.rebindActions()},rebindActions:function(){var n=this;angular.forEach(n.actions,function(t){t.rebindActions(n._service)})},wcagReFocusElement:function(){l(function(){var u=$("form-builder-submit-pagination .form-pagination:not(.ng-hide)"),y,i,o,s,p,w;if(u.length){var b=u.find(".form-field").first(),c=u.find("input.ng-dirty.ng-invalid"),f=v.scope.viewModel.activePage.fields,l=u.find(".form-field"),e=$("form-builder-submit-actions").children().find("a")[0],r=e,a=f.length;if(a>0)if(c.length)c.focus();else{for(y=["Read-Only Content","Sub-Heading","Section Break","Read-Only Text","Heading","Payment - Total"],i=0;i<a;i++){if(o=f[i].meta._label,s=l[i].children[0].querySelectorAll("a"),o=="Read-Only Content"&&s.length>0){r=s[0];break}if(p=y.indexOf(o)>-1,!p){var h=f[i],k=h.meta._label,t=h.meta.uniqueName,n=null;switch(k){case"Phone":n="#"+t+"_Number";break;case"Radio Button Payment":case"Check Box List":case"Radio Button List":case"Check Box Payment":n="#"+t+"0";break;case"Full Address":n="#"+t+"_Address1";break;case"Attachment":n="#"+t+"_fileInput0";break;case"Single Dropdown":case"Single Dropdown Payment":case"Paragraph Text":n="#"+t;break;case"Single Item Payment":w=h.meta.settingObj.enableQuantityField;n=w?"input[id='"+t+"_Quantity']":"input[id='"+t+"']";break;case"Total Payment":break;default:n="input[type!=hidden]"}if(r=l.find(n)[0],r!=null)break}}r?r.focus():e.focus();b[0].scrollIntoView({block:"end"})}else e.focus()}},200)},wcagReFocusReviewElement:function(){l(function(){$("form-builder-submit-review").length==1&&$("form-builder-submit-actions").children().find("a")[0].focus()},200)}},init:function(n,t,i,u,o,s,c){var a=this;v.signatureInfo=u;v.displaySignatureField=function(n){var t=!1;return u.isSignatureFeatureEnabled&&n!=null&&(t=u.forceTestMode||n.meta.settingObj.testMode?!0:u.isSignatureActive?!0:!1),t};v.scope=c;v.isReview=o||!1;v.signatureField=null;v.hasSignature=function(){return v.signatureField!=null&&!v.signatureField.isSkipped&&!v.signatureField.page.isBranched&&v.displaySignatureField(v.signatureField)};a.conditionalEmailParams=s;a.viewModel.submitStatus=y.FILLING;a.blockUIInstance=r.instances.get("body");a.blockUIInstance.start("Loading ...");window.visionOptions.loggedIn||(window.onbeforeunload=function(){return"Did you submit your form data?"});a._externalActionWrapper=t;a.formGuid=n.guid;a.entryGuid=n.entryGuid;a.viewable=n.viewable||!1;a.submitable=n.submitable||!1;p.api.feformbuilder.getform({guid:a.formGuid,entryGuid:a.entryGuid,securityInput:e.data.input}).then(function(n){var t,u,s,r,c,o;e.gotoSecurityIfFailed(n.data);t=a.viewModel;n.data.captchaType=="GoogleInvisibleReCaptCha"?a.captcha.init(v.scope.recaptchaKeyObj.recaptchaInvisibleKey,n.data.captchaType,"invisible"):n.data.captchaType=="GoogleReCAPTCHAV2"&&a.captcha.init(v.scope.recaptchaKeyObj.recaptchaV2Key,n.data.captchaType,"normal");t.guid=n.data.guid;t.formName=n.data.title;t.completionMessage=n.data.completionMessage;t.title=n.data.title;t.description=n.data.description;t.enablePrevPageNavigation=n.data.enablePrevPageNavigation;t.enableQuestionNumbering=n.data.enableQuestionNumbering;u=n.data.pages;s=1;angular.forEach(u,function(n){n.form=t;n.submitable=a.submitable;n.isBranched=!1;n.isBranchedByRedirectUrl=!1;var r=n.fields;angular.forEach(r,function(t){t.isSkipped=!1;t.type=f.getFieldType(t.meta.fieldTypeID);t.type.initField(t,n.form,f);t.meta.__isRequired=t.meta.isRequired;t.tid=t.meta.id;t.pIndex=t.type.data.type!="format"&&(i||t.type.data.type!="payment")?s++:0;t.type.data.name=="DigitalSignature"&&(v.signatureField=t,t.forceTestMode=v.signatureInfo.forceTestMode);t.page=n});n.fields=$.grep(r,function(n){var t=!0;return i||(t=n.type.data.type!=="payment"),v.displaySignatureField(v.signatureField)||(t=t&&n.type.data.name!=="DigitalSignature"),t})});t.originalPages=u;t.pages=u;t.activePageIndex=0;t.activePage=t.pages[t.activePageIndex];t.activePage.allowToShow=!0;t.activePage.fields.length==0||(t.activeField=t.activePage.fields[0]);a.actionsHandler._init(a);a.viewable&&p.api.feformbuilder.view({guid:a.formGuid}).then(function(n){a.tracking.view=n.data;a.tracking.clientViewDate=new Date},function(){});r=function(){l(function(){t.ready=!0},1e3)};a.submitable&&(h.init(f,t,v.scope,a),l(function(){h.executeOnPage()},500));n.data.entry&&n.data.entry.guid?(t.entryID=0,t.signer=t.signer||{},t.signer.name=n.data.entry.signerName,t.signer.email=n.data.entry.signerEmail,t.signer.testMode=n.data.entry.testMode,t.entryGuid=n.data.entry.guid,t.signatureID=n.data.entry.signatureID,t.submitStatus=n.data.entry.status,t.entryFeatures=n.data.entry.features,c=(t.entryFeatures&b.Signature)==b.Signature,o=(t.entryFeatures&b.Payment)==b.Payment,v.signatureInfo.isSignatureFeatureEnabled?c&&(t.submitStatus==y.SUBMITTED&&(t.submitStatus=y.SIGNPENDING),t.submitStatus==y.SIGNPENDING?t.needToSign=!0:t.submitStatus==y.SIGNED&&(o?(t.submitStatus=y.PAYING,t.needToPay=!0):r())):(t.submitStatus==y.SIGNPENDING||t.submitStatus==y.SIGNED)&&(t.submitStatus=y.SUBMITTED),o&&(t.submitStatus==y.SUBMITTED&&(t.submitStatus=y.PAYING),t.submitStatus==y.PAYING?t.needToPay=!0:t.submitStatus==y.PAIED&&r())):r();r();a.blockUIInstance.stop();a.viewModel.dataLoaded=!0},function(){a.blockUIInstance.stop()})},executePrevious:function(){var n=this;n.captcha.required=!0;n.captcha.type=="GoogleInvisibleReCaptCha"&&n.captcha.response==null&&a.execute(n.captcha.widgetId);n.validForm(function(){n.viewModel.activePageIndex--;n.viewModel.activePage=n.viewModel.pages[n.viewModel.activePageIndex]},function(){})},executeNext:function(){var n=this;n.captcha.required=!0;n.validForm(function(){n.viewModel.activePageIndex++;n.viewModel.activePage=n.viewModel.pages[n.viewModel.activePageIndex];n.viewModel.activePage.allowToShow=!0;n.viewModel.activePageIndex==n.viewModel.pages.length-1&&n.captcha.response!=null&&n.captcha.setResponse(null)},function(){})},executeReview:function(){var n=this;if(n.viewModel.submitStatus!=y.FILLING){console.warn("Can't review a form with status: "+n.viewModel.submitStatus);return}n.captcha.required=!0;n.captcha.type=="GoogleInvisibleReCaptCha"&&n.captcha.response==null&&a.execute(n.captcha.widgetId);n.validForm(function(){n.viewModel.submitStatus=y.REVIEWING;window.scrollTo(0,0)},function(){})},executeSubmit:function(){var n=this;if(n.viewModel.needToSign&&v.singatureField!=null&&v.signatureInfo.isSignatureFeatureEnabled&&!v.signatureInfo.forceTestMode&&!v.singatureField.meta.settingObj.testMode)w.Home.Core.FormBuilder.FormBuilderFrontend.IsSignatureAvailable(params).then(function(t){return t.data.isSignatureAvailable||angular.forEach(n.viewModel.originalPages,function(n){var t=n.fields;n.fields=$.grep(t,function(n){return n.type.data.name!=="DigitalSignature"})}),n.executeSubmit2()});else return n.executeSubmit2()},executeSubmit2:function(){function u(){r.validForm(function(){var k,g,it,rt,nt,u,h,ut;r.blockUIInstance.start("Submitting ...");k=r.viewModel.submitStatus;r.viewModel.submitStatus!=y.REVIEWING&&(r.viewModel.submitStatus=y.SUBMITTING);var f=[],s=[],c=0,d=0,tt=!1,l=[],a=[],b=null;for(angular.forEach(r.viewModel.originalPages,function(n){n.redirectUrl&&(b=n.redirectUrl);n.isBranched&&l.push(n.id);n.isBranchedByRedirectUrl&&a.push(n.id)}),angular.forEach(r.viewModel.pages,function(n){if(n.redirectUrl&&(b=n.redirectUrl),n.isBranched==!0){l.indexOf(n.id)<0&&l.push(n.id);return}if(n.isBranchedByRedirectUrl){a.indexOf(n.id)<0&&a.push(n.id);return}angular.forEach(n.fields,function(n){var l,t,i,o,u,a,e,h;if(n.isSkipped!=!0){if(l=n.type.savingField(n),angular.forEach(l,function(n){var t={};angular.forEach(n,function(n,i){n&&i!="valueArrayObj"&&(t[i]=n)});f.push(t)}),n.type.data.name=="DigitalSignature"&&(tt=!0,r.viewModel.signer={name:n.children.Name.data.valueString,email:n.children.Email.data.valueString,eDocumentInfo:n.children.eDocumentInfo.data.valueDictionary,testMode:n.meta.settingObj.testMode||v.signatureInfo.forceTestMode||!1}),n.meta._files&&n.meta._files.length!=0)for(t=0;t<n.meta._files.length;t++)i=n.meta._files[t],i&&i.data&&s.push(i);if(n.type.data.type=="payment"&&n.getCalculatableItems){for(o=n.getCalculatableItems(),u=0;u<o.length;u++)a=o[u],c+=a.subTotal;if(n.meta.taxes)for(e=0;e<n.meta.taxes.length;e++)d+=n.meta.taxes[e];else n.children&&n.children.Tax&&n.children.Tax.data&&(d+=n.children.Tax.data.valueFloat)}n.type.data.type=="payment"&&n.checkData&&(h=n.checkData(n),h&&angular.forEach(h,function(n){angular.forEach(f,function(t,i){t.fieldMetaID==n&&f.splice(i,1)})}))}})}),r.viewModel.needToSign=tt,r.viewModel.needToPay=c&&c>0?!0:!1,g=null,r.tracking.view&&r.tracking.clientViewDate&&r.tracking.clientSubmissionStartDateTime&&(it=new Date(r.tracking.view.viewDateUtc),rt=r.tracking.clientSubmissionStartDateTime.getTime()-r.tracking.clientViewDate.getTime(),g=new Date(it.getTime()+rt)),nt=[],u=0;u<s.length;u++)h=new FormData,h.append("data",s[u].data),h.append("metaID",s[u].metaID),h.append("name",s[u].name),h.append("size",s[u].size),h.append("type",s[u].type),ut=n({url:o.apiEndPoint+"api/feformbuilder/uploadFile",method:"POST",data:h,transformRequest:angular.identity,headers:{"Content-Type":undefined}}).then(function(n){return n.data}),nt.push(ut);t.all(nt).then(function(n){function tt(n){var t=(new Date).getTime(),i=visionApps.tokenAtMilsecond?(t-visionApps.tokenAtMilsecond)/1e3:0;if(i>600)w.Home.Core.FormBuilder.FormBuilderFrontend.RegenareteFrontendToken().then(function(t){return window.visionApps.token=t.data.token,v(n)},function(){return console.error("Cannot re-generate the token"),v(n)});else return v(n)}function v(n){p.api.feformbuilder.submit(h).then(function(t){if(e.gotoSecurityIfFailed(t.data),t.data.recaptchaFailed)return i.error(t.data.failedMessage||"Recaptcha validation failed."),!1;if(r.blockUIInstance.stop(),t.data.result==!0){if(r.viewModel.submitStatus=s,r.viewModel.completionMessage=t.data.completionMessage||"",r.viewModel.entryID=t.data.entryID,r.viewModel.entryGuid=t.data.entryGuid,r.viewModel.receiptEmail){var u={voterEmail:r.viewModel.receiptEmail,entryID:r.viewModel.entryID};try{w.Home.Core.FormBuilder.FormBuilderFrontend.SendSubmissionEmails(u)}catch(f){console.error("Answer email failed to send.",f)}}return window.onbeforeunload=null,r.viewModel.completionMessage=r.viewModel.completionMessage.replace(/\n/g,"<br/>").replace(/\r/g,""),window.scrollTo(0,0),!0}return r.viewModel.completionMessage=t.data.message||"",i.error(t.data.message),r.viewModel.submitStatus=n,!1},function(t){console.error(t);var u=t&&t.data&&t.data.errorMessage?t.data.errorMessage:"There is an unexpected error when submit. Please reload the form then resubmit.";return r.blockUIInstance.stop(),window.onbeforeunload=null,i.error(u),r.viewModel.submitStatus=n,!1})}for(var t,nt,s,h,o=Enumerable.From(n).Select("$.metaID").Distinct().ToArray(),u=0;u<o.length;u++)for(t=0;t<f.length;t++)f[t].fieldMetaID==o[u]&&(nt=Enumerable.From(n).Where("$.metaID == "+o[u]).ToArray(),f[t].valueArray=JSON.stringify(nt));s=r.viewModel.needToSign?y.SIGNPENDING:r.viewModel.hasPayment?y.PAYING:y.SUBMITTED;h={currentPageID:null,guid:r.viewModel.guid,submissionStartDateUtc:g,fields:f,view:r.tracking.view,emailParams:r.conditionalEmailParams,entryStatus:s,websiteUserID:r.viewModel.websiteUserID,securityInput:e.data.input,orderAmount:c+d,skippedPages:angular.toJson(l),skippedPagesByRedirectUrl:angular.toJson(a),recaptchaResponse:r.captcha.response,redirectUrl:b};r.viewModel.redirectUrl=b;r.viewModel.signer&&r.viewModel.signer.testMode&&(h.testMode=r.viewModel.signer.testMode);r.captcha.type?w.Home.Core.FormBuilder.FormBuilderFrontend.ValidateRecaptcha({response:r.captcha.response,captchaType:r.captcha.type}).then(function(n){n.data.result&&tt(k)}):tt(k)})},function(){})}var r=this;if(r.viewModel.submitStatus!=y.FILLING&&r.viewModel.submitStatus!=y.REVIEWING)return console.warn("Can't submit a form with status: "+r.viewModel.submitStatus),!1;if(r.captcha.required=!0,r.captcha.type=="GoogleInvisibleReCaptCha"&&r.captcha.response==null)a.execute(r.captcha.widgetId),setTimeout(function(){return r.captcha.response!=null?u():!1},500);else return u()},validForm:function(n,t){return this._externalActionWrapper(n,t)},formDirtyChange:function(n){n&&!this.tracking.clientSubmissionStartDateTime&&(this.tracking.clientSubmissionStartDateTime=new Date)},updateSignature:function(n){var t=Enumerable.From(f.fieldTypeDataList).Where("c => c.name=='DigitalSignature'").FirstOrDefault().id;return angular.extend(n,{fieldTypeID:t}),p.api.feformbuilder.updateSignature(n)}},new k}])}(),function(n,t){var i=t.module("vi.fe.core.formbuilder.submit");i.service("formBuilderWidgetListService",["$http","$q","blockUI","toastr","$timeout","viUtils","viCoreComponentFormAPIClient",function(n,i,r,u,f,e,o){o.registerClass("api.feformbuilder.getforms");var h=o.getService(),s=function(){};return s.prototype={builder:function(n){var i={init:function(){var t=this;t.loadListInfo(n)},dataBag:{dataLoaded:!1},loadListInfo:function(){var i=this,r={ids:n.forms};i.records=[];h.api.feformbuilder.getforms(r).then(function(r){var u=r.data;t.forEach(n.forms,function(t){var r=Enumerable.From(u).Where("c=> c.id=='"+t+"'").FirstOrDefault(),f=n.detailUrl;r&&(r.detailUrl=f.replace("{guid}",r.guid),i.records.push(r))});i.dataBag.dataLoaded=!0}).catch(function(){i.dataBag.dataLoaded=!0})}};return i.init(),i}},new s}])}(window,window.angular),function(n,t){"use strict";var i=t.module("vi.fe.formfinder.widget");i.filter("phone",function(){return function(n){return n==null?"":$.viFormatPhone(n,"".replace(/9/g,"0"))}});i.directive("clickOutside",["$document",function(n){return{restrict:"A",scope:{clickOutside:"&"},link:function(t,i){n.on("click",function(n){i===n.target||i[0].contains(n.target)||t.$apply(function(){t.$eval(t.clickOutside)})})}}}]);i.directive("collapseToggler",function(){return{restrict:"A",link:function(n,t){t.on("click",function(){$(this).toggleClass("active");$(this).siblings(".collapse").toggleClass("in")});t.bind("keydown keypress",function(n){n.which===13&&($(this).toggleClass("active"),$(this).siblings(".collapse").toggleClass("in"),n.preventDefault())})}}});i.directive("ffEnter",function(){return function(n,t,i){t.bind("keydown keypress",function(t){t.which===13?n.$apply(function(){n.$eval(i.ffEnter)}):t.shiftKey&&t.which===9?n.$apply(function(){n.$eval(i.ffShiftTab)}):t.which===9&&n.$apply(function(){n.$eval(i.ffTab)})})}})}(window,angular),function(n,t){"use strict";function i(n,i,r,u,f){function e(n){var e=t.fromJson(t.element("."+n.scriptClass).text()),o={title:"viFormFinder",hasLogin:e.hasLogin,visionOptions:visionOptions,visionApps:visionApps,config:e,pageSize:e.pageSize,totalItemToDisplay:e.totalItemToDisplay,currentPage:1,total:0,isCategoryCollapsed:!0,isDepartmentCollapsed:!0,isTagCollapsed:!0,filterItems:[],searchText:"",sortBy:e.sortBy||1,defaultSortBy:e.defaultSortBy||1,viewMode:t.isUndefined(r.search().viewmode)?e.defaultView||"1":r.search().viewmode,changePage:function(n){n!=this.currentPage&&this.getForms(n,"changePage")},paramsForFormList:function(t){var i=Enumerable.From(n.filterItems).Where("c => c.selected && c.type == 1").Select("s => s.id").ToArray(),r=Enumerable.From(n.filterItems).Where("c => c.selected && c.type == 2").Select("s => s.id").ToArray(),u=Enumerable.From(n.filterItems).Where("c => c.selected && c.type == 3").Select("s => s.id").ToArray();return{cats:i.length>0?i.join(","):null,deps:r.length>0?r.join(","):null,tags:u.length>0?u.join(","):null,sortBy:n.sortBy,pageSize:n.pageSize,pageNumber:t||n.currentPage,defaultStatusIDs:n.config.defaultStatusIDs.join(","),searchText:n.searchText,totalItemToDisplay:n.totalItemToDisplay}},getForms:function(t){var i=this;n.currentPage=t;f.callFunc(n.config.getFormsUrl,{input:i.paramsForFormList(t)}).then(function(t){t.data.code==="success"?(n.forms=t.data.items,n.total=t.data.total,n.currentPage=t.data.page_number,n.pageSize=t.data.page_size,n.pages=t.data.total):console.error("Error",t.data)}).catch(function(n){console.error(n)})},getCats:function(){var t=[];return n.config.categoryConstraintType==0?n.config.categorySelectAll||(t=n.config.defaultCategoryIDs.join(",")):n.config.excludeCategorySelectAll||(t=n.config.excludeCategoryIDs.join(",")),t},renderDetailUrl:function(t){var i=n.config.moreLink&&n.config.moreLink.length>0?"/"+n.config.moreLink.replace("?navid=",""):n.config.defaultMoreLink&&n.config.defaultMoreLink.length>0?"/"+n.config.defaultMoreLink.replace("?navid=",""):"";return visionOptions.virtualApplicationPath+"Home/Components/FormBuilder/FormBuilder/"+t.guid+i},gotoDetail:function(t,i){if(!n.hasLogin&&i){var r=n.renderDetailUrl(t);u.open(r,"_self")}},init:function(){i.post(e.getFormFiltersUrl,{cats:n.getCats(),categoryConstraintType:n.config.categoryConstraintType,deps:n.config.departmentSelectAll?null:n.config.defaultDepartmentIDs.join(",")}).then(function(t){var i=t.data.categories.map(function(n){return n.type=1,n.selected=!1,n}),r=t.data.departments.map(function(n){return n.type=2,n.selected=!1,n}),u=t.data.tags.map(function(n){return n.type=3,n.selected=!1,n});n.filterItems=i.concat(r).concat(u)})}};t.extend(n,o);n.init();n.reset=function(){n.searchText="";n.filterSearchText=n.searchText;n.hasFilter()?t.forEach(n.filterItems,function(n){n.selected=!1}):n.getForms(1)};n.isTabOpeningClosing=!1;n.openCloseTab=function(t,i){n.isTabOpeningClosing=!0;t===1?(n.isCategoryCollapsed=i?!i:!n.isCategoryCollapsed,n.isDepartmentCollapsed=!0,n.isTagCollapsed=!0):t===2?(n.isCategoryCollapsed=!0,n.isDepartmentCollapsed=i?!i:!n.isDepartmentCollapsed,n.isTagCollapsed=!0):t===3&&(n.isCategoryCollapsed=!0,n.isDepartmentCollapsed=!0,n.isTagCollapsed=i?!i:!n.isTagCollapsed);setTimeout(function(){n.isTabOpeningClosing=!1},100)};n.receiveEnter=function(t){n.tabId=t;n.isTabOpeningClosing||n.openCloseTab(t)};n.toggleTabContent=function(t){n.tabId=t;n.isTabOpeningClosing||setTimeout(n.openCloseTab(t),500)};n.closeTabs=function(){n.isTabOpeningClosing=!0;n.isCategoryCollapsed=!0;n.isDepartmentCollapsed=!0;n.isTagCollapsed=!0;setTimeout(function(){n.isTabOpeningClosing=!1},100)};n.lostFocus=function(){n.closeTabs()};n.ClearAll=function(i){t.forEach(n.filterItems,function(n){n.type===i&&(n.selected=!1)})};n.removeSearchText=function(){n.searchText="";n.filterSearchText=n.searchText;n.getForms(1)};n.hasFilter=function(){return n.filterSearchText&&n.filterSearchText.length>0?!0:Enumerable.From(n.filterItems).Where("c => c.selected").ToArray().length>0?!0:!1};n.Search=function(){n.filterSearchText=n.searchText;n.getForms(1)};n.setViewMode=function(t){n.viewMode=t;r.search("viewmode",n.viewMode)};n.$watch("filterItems",function(t,i){t!==i&&n.getForms(1)},!0)}return{link:e,restrict:"EA",templateUrl:function(n,t){return t.templateUrl||visionOptions.mainFolderPath+"scripts/FormFinder/formFinder.tpl.html"},scope:{scriptClass:"@config"}}}var r=t.module("vi.fe.formfinder.widget");r.directive("viFormFinder",i);i.$inject=["$filter","$http","$location","$window","formFinderService"]}(window,angular),function(n,t){"use strict";function i(n){function t(t,i){return n({method:"POST",url:t,data:i})}return{callFunc:t}}var r=t.module("vi.fe.formfinder.widget");r.factory("formFinderService",i);i.$inject=["$http"]}(window,angular);;
