(function(n){n.visionLiveConfig={},function(){}(n.visionLiveConfig)})(window),function(n,t){"use strict";var u,r,i;n.visionLiveConfig.flexibleComponent=n.visionLiveConfig.flexibleComponent||{serverURL:""};n.viCurrentModule.requires.push("vi.fe.componentbuilder.widget");u=t.module("vi.fe.componentbuilder.widget",["blockUI","viAppVisionLiveFlexibleComponentFields","vi.frontend.list.module"]);r=t.extend({apiEndPoint:""},n.visionLiveConfig||{});r.apiEndPoint=n.visionLiveConfig.flexibleComponent.serverURL;i=r.apiEndPoint;r.apiEndPoint=i.lastIndexOf("/")==i.length-1?i.substring(0,i.length-1)+"/":i+"/";u.constant("builderConfig",r)}(window,angular),function(n,t){"use strict";var i=t.module("vi.fe.componentbuilder.widget");i.controller("flexComponentWidgetController",["viFrontendListService","flexComponentService","$scope","$http","fieldTypeManager","$filter",function(i,r,u,f,e){u.sysConfig={TemplateUrl:"",Thumbnail:{ShowImageLink:"",ShowThumbnailLink:"",ConvertToString:function(n,t){return n?t===!0?this.ShowThumbnailLink.replace("id=0","id="+n):this.ShowImageLink.replace("id=0","id="+n):""}},Phone:{PhoneAndFaxNumberFormatting:"",ConvertToString:function(n){return n==null?"":$.viFormatPhone(n,this.PhoneAndFaxNumberFormatting.replace(/9/g,"0"))}},DateTime:{TimeAMFormat:"",TimePMFormat:"",ConvertToString:function(t){return t?kendo.toString(kendo.parseDate(t),n.visionApps.cms_core.DateFormat+" "+n.visionApps.cms_core.TimeFormat).replace(/am/ig,this.TimeAMFormat).replace(/pm/ig,this.TimePMFormat):""}},DetailUrl:{DefaultLink:"",FlexComponentUrl:"",FlexListUrl:"",NavUrl:"",NavId:0,HrefLink:function(n){return this.DefaultLink.replace("ContentID",n)}},Email:{AsciiEncode:function(n){return n}}};u.detail={};u.detailInit={init:function(n,f){var h=t.element("#flexible-ext-data-"+f).text(),o=JSON.parse(h),c=JSON.parse(t.element("#flexible-data-"+f).text()),s;t.merge(u.sysConfig,o);s={id:c.itemId,componentGuid:n.componentGuid,listUniqueName:n.listUniqueName,dataPromise:r.loadDetailInfo};u.detail=i.detail(s);u.detail.fieldTypeManager=e;u.detail.fieldTypeManager.init({fieldOptions:{relativeTemplatePath:o.TemplateUrl}})}};u.builder={};u.builderInit={init:function(n,f){var l=this,c=t.element("#flexible-ext-data-"+f).text(),o=JSON.parse(c),s,h;t.merge(u.sysConfig,o);s=JSON.parse(t.element("#flexible-data-"+f).text());h={listViewInfo:s,componentGuid:n.componentGuid,listUniqueName:n.listUniqueName,dataPromise:r.loadListInfo,setupData:function(n){var t=u.sysConfig.DetailUrl;t.DefaultLink=t.DefaultLink.replace(t.FlexComponentUrl,n.componentInfo.componentUrl);t.DefaultLink=t.DefaultLink.replace(t.FlexListUrl,n.componentInfo.listUrl);t.DefaultLink=t.DefaultLink.replace(t.NavUrl,t.NavId?t.NavId:"");u.sysConfig.DetailUrl=t}};u.builder=i.builder(h);u.builder.fieldTypeManager=e;u.builder.fieldTypeManager.init({fieldOptions:{relativeTemplatePath:o.TemplateUrl}})}}}])}(window,angular),function(n,t){"use strict";function i(n,t){function i(i){var r=t.apiEndPoint+"api/FeFlexComponent/GetDetail";return n({method:"POST",url:r,data:i})}function r(i){var r=t.apiEndPoint+"api/FeFlexComponent/Get";return n({method:"POST",url:r,data:i})}return{loadDetailInfo:i,loadListInfo:r}}var r=t.module("vi.fe.componentbuilder.widget");r.factory("flexComponentService",i);i.$inject=["$http","builderConfig"]}(window,angular),function(n,t){t.module("viAppVisionLiveFlexibleComponentFields",[])}(window,angular),function(n,t){function u(){}function f(){this._items={};this._baseType=u;this._options={fieldOptions:{}};this._fieldTypes=[];this.fieldTypeDataList=FIELDTYPEDATALIST}function i(n){return t.isUndefined(n)||n===""||n===null||n!==n||typeof n==undefined}function r(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 e=t.module("viAppVisionLiveFlexibleComponentFields");FIELDVALUETYPES={NUMBER:1,STRING:2,HTML:3,DATETIME:4,TIME:5,FLOAT:6,BIT:7};FIELDTYPEDATALIST=[{id:1,name:"SingleLineText",displayName:"Single Line Text",css:"single-line-icon",order:1,advanced:!1,sortable:!0,listShown:!0},{id:2,name:"ParagraphText",displayName:"Paragraph Text",css:"paragraph-icon",order:2,advanced:!1,sortable:!0,listShown:!0},{id:3,name:"SingleDropdown",displayName:"Single Dropdown",css:"single-dropdown-icon",order:3,advanced:!1,sortable:!0,listShown:!0},{id:5,name:"Number",displayName:"Number",css:"number-icon",order:5,advanced:!1,sortable:!0,listShown:!0},{id:8,name:"RichHtml",displayName:"Rich-text Editor (HTML)",css:"editor-icon",order:8,advanced:!1,sortable:!0,listShown:!1},{id:21,name:"DateTime",displayName:"Date/Time",css:"date-time-icon",order:21,advanced:!0,sortable:!0,listShown:!0},{id:23,name:"Phone",displayName:"Phone",css:"phone-icon",order:23,advanced:!0,sortable:!0,listShown:!0},{id:25,name:"Website",displayName:"Website",css:"website-icon",order:25,advanced:!0,sortable:!0,listShown:!0},{id:26,name:"Email",displayName:"Email",css:"email-icon",order:26,advanced:!0,sortable:!0,listShown:!0},{id:27,name:"Thumbnail",displayName:"Thumbnail",css:"thumbnail-icon",order:27,advanced:!0,sortable:!1,listShown:!0},];PATTERNS={numberPattern:"[0-9]+",uniqueNamePattern:"[a-zA-Z][a-zA-Z0-9_]*",emailPattern:"([\\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})"};u.prototype={_seed:new Date,_name:"fieldTypeBase",_options:{relativeTemplatePath:""},uniqueNameValidator:"fieldSettingUniqueName, fieldSettingUniqueNameAllow",_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,PATTERNS);t.extend(this._options,n||{})},_mergeDefaultFieldMeta:function(n){var i=t.extend({allowSearch:!1,allowDuplicate:!0,valueType:FIELDVALUETYPES.STRING},n);return this._redefineProperties(i),i},_makeNameUnique:function(n){typeof n.id!="undefined"&&n.id||(n.uniqueName=(n._label||"").replace(/[^0-9a-z_]+/ig,""))},_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);Object.defineProperty(n,"label",{get:function(){return this._label},set:function(n){this._label=n;t._makeNameUnique(this)}})},createFieldMeta:function(){return{}},initFieldMeta:function(n){var i=this.createFieldMeta();n.meta.setting&&(i.settingObj=t.fromJson(n.meta.setting));n.meta=t.extend(i,n.meta);n.meta.errorMessages={flexComponentFieldDuplicate:"This field value already exists."};n.meta.requiredErrorMessage&&(n.meta.errorMessages.required=n.meta.requiredErrorMessage);this.initAdditionalErrorMesssages(n)},saveFieldMeta:function(n){n.meta.settingObj!=undefined&&(n.meta.setting=t.toJson(n.meta.settingObj))},initFieldData:function(n,t){var i=!t||t.id<=0;n.data=n.data||{fieldMetaID:n.meta.id};i&&(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=n.meta.defaultValueDatetime),n.data.valueTime||(n.data.valueTime=n.meta.defaultValueTime),n.data.valueBit||(n.data.valueBit=n.meta.defaultValueBit));this.initAdditionalFieldData(n,i)},initAdditionalFieldData:function(){},initAdditionalErrorMesssages:function(){},formatGridData:function(n){return{value:n!=null?n.toString():n,isHtml:!1}},getBuilderSettingSrc:function(){return this._getSrc("FieldBuSetting/")},getBuilderDisplaySrc:function(){return this._getSrc("FieldBuDisplay/")},getBackendEditSrc:function(){return this._getSrc("FieldBeEdit/")},getBackendDisplaySrc:function(){return this._getSrc("FieldBeDisplay/")},getFrontendDisplaySrc:function(){return this._getSrc("FieldFeDisplay/")},getFrontendListDisplaySrc:function(){return this._getSrc("FieldFeLiDisplay/")},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}}};f.prototype={_defineClass:function(n,i,r){i&&t.extend(n.prototype,i.prototype);r&&t.extend(n.prototype,r)},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,t,i){var f=this._baseType,r,u;return t&&this._items[t]!=undefined&&(f=this._items[t]),r=function(){},this._defineClass(r,f,i),u=Enumerable.From(FIELDTYPEDATALIST).Where('$.name=="'+n+'"').FirstOrDefault(),r.prototype._name=n,r.prototype.className=n.toLocaleLowerCase(),r.prototype.data=u,r.prototype.sortable=u?u.sortable:!0,this._items[n]=r,r},getFieldTypes:function(){return this._fieldTypes},getFieldType:function(n){var t=Enumerable.From(FIELDTYPEDATALIST).Where("$.id == "+n).Select("$.name").FirstOrDefault();return this._fieldTypes[t]}};e.factory("fieldTypeManager",["$http","jsonDataUtil",function(u,e){var o=new f;return e.init(),o.defineFieldType("SingleLineText",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FIELDVALUETYPES.STRING,label:"Single Line Text",listIsSortable:!0,settingObj:{rangeMin:0,rangeMax:50,rangeErrorMessage:null,regex:null,regexErrorMessage: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.settingObj.regexErrorMessage&&(n.meta.errorMessages.pattern=n.meta.settingObj.regexErrorMessage)},validateField:function(n,t){var f=this.validateFieldBase(n,t),u;return i(n)||t.setting&&(u=JSON.parse(t.setting),u.rangeMin>0&&n.length<u.rangeMin&&(f.valid=!1,f.message+=u.rangeErrorMessage?u.rangeErrorMessage:t.uniqueName+" should not be less than "+u.rangeMin+" character(s).",f.message+="\n"),n.length>u.rangeMax&&(f.valid=!1,f.message+=u.rangeErrorMessage?u.rangeErrorMessage:t.uniqueName+" should not be more than "+u.rangeMax+" characters.",f.message+="\n"),u.regex&&(f.valid=n.match(r(u.regex)),f.valid||(f.message+=u.regexErrorMessage?u.regexErrorMessage:"Invalid "+t.uniqueName+".",f.message+="\n"))),f}}),o.defineFieldType("Number",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FIELDVALUETYPES.NUMBER,label:"Number",listIsSortable:!0,settingObj:{rangeMin:0,rangeMax:50,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.pattern="This field is a number."},validateField:function(n,t){var u=this.validateFieldBase(n,t),e,f;return i(n)||(e=parseInt(n),(isNaN(e)||!n.match(/^\d+$/))&&(u.valid=!1,u.message+="Invalid "+t.uniqueName,u.message+="\n"),e&&t.setting&&(f=JSON.parse(t.setting),(e<f.rangeMin||e>f.rangeMax)&&(u.valid=!1,u.message+=f.rangeErrorMessage?f.rangeErrorMessage:t.uniqueName+" should be between "+f.rangeMin+" and "+f.rangeMax+".",u.message+="\n"),f.regex&&(u.valid=e.match(r(f.regex)),u.valid||(u.message+=f.regexErrorMessage?f.regexErrorMessage:"Invalid "+t.uniqueName+" format.",u.message+="\n")))),u}}),o.defineFieldType("SingleDropdown",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FIELDVALUETYPES.STRING,label:"Single Dropdown",maxID:0,includeInBeList:!1,listIsSortable:!0,settingObj:{selectedValue:"",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(){var n=0,t;this.maxID=0;for(t in this.settingObj.customSource)this.indexes[n++]=this.maxID++},addItem:function(n,i){var r=t.element(n.target).scope(),u;r&&r.scrollSticky&&r.scrollSticky();u={value:" ",text:""};this.settingObj.customSource.splice(i+1,0,u);this.indexes.splice(i+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?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,t){t&&!n.data.valueString&&n.meta.settingObj&&n.meta.settingObj.selectedValue&&(n.data.valueString=n.meta.settingObj.selectedValue)},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 == '"+n+"'").FirstOrDefault();break;case"1":r=Enumerable.From(e.states).Where("$.Country == 'US' && $.Abbreviation == '"+n+"'").FirstOrDefault();break;case"2":r=Enumerable.From(e.states).Where("$.Country == 'CA' && $.Abbreviation == '"+n+"'").FirstOrDefault()}r||(u.valid=!1,u.message+="Invalid "+t.uniqueName+".\n")}return u}}),o.defineFieldType("Address",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FIELDVALUETYPES.STRING,label:"Address"})}}),o.defineFieldType("FullName",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FIELDVALUETYPES.STRING,label:"Full Name"})}}),o.defineFieldType("Website",null,{createFieldMeta:function(){var n=this._mergeDefaultFieldMeta({valueType:FIELDVALUETYPES.STRING,label:"Website",listIsSortable:!0,settingObj:{allowExternal:!1,allowExternalErrorMessage:null}});return Object.defineProperty(n,"urlpattern",{get:function(){return this.settingObj&&this.settingObj.allowExternal==!0?PATTERNS.urlPattern:PATTERNS.internalUrlPattern},set:function(){}}),n},initAdditionalErrorMesssages:function(n){n.meta.settingObj&&n.meta.settingObj.allowExternalErrorMessage&&(n.meta.errorMessages.pattern=n.meta.settingObj.allowExternalErrorMessage)},validateField:function(n,t){var f="Invalid "+t.uniqueName+" format.\n",r=this.validateFieldBase(n,t),u;return i(n)||(u=JSON.parse(t.setting),u.allowExternal?(r.valid=$.isUrl(n)||$.isIntranetUrl(n),r.valid||(r.message+=f)):(r.valid=$.isIntranetUrl(n),r.valid?$.isUrl(n)&&(r.valid=!1,r.message+=u.allowExternalErrorMessage?u.allowExternalErrorMessage:f):r.message+=f)),r}}),o.defineFieldType("RichHtml",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FIELDVALUETYPES.HTML,listIsSortable:!1,label:"Rich-text Editor"})}}),o.defineFieldType("DateTime",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FIELDVALUETYPES.DATETIME,label:"Date and Time",listIsSortable:!0,settingObj:{datetimeRangeMin:new Date(1970,0,1),datetimeRangeMax:new Date(2100,0,1),datetimeRangeErrorMessage:null}})},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)},formatGridData:function(n,t){var i=n?kendo.toString(kendo.parseDate(n),t.ShortDateFormatString+" "+t.ShortTimeFormatStringWithoutSecond):null;return i&&t.TimeAMFormat&&(i=i.replace(/am/ig,t.TimeAMFormat).replace(/pm/ig,t.TimePMFormat)),{value:i,isHtml:!1}},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 "+u.datetimeRangeMax,r.message+="\n"))}catch(e){r.valid=!1;r.valid||(r.message+="Invalid "+t.uniqueName+".\n")}return r}}),o.defineFieldType("ParagraphText",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FIELDVALUETYPES.STRING,label:"Paragraph Text",listIsSortable:!0,settingObj:{rangeMin:0,rangeMax:500,rangeErrorMessage:null,regex:null,regexErrorMessage: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.settingObj.regexErrorMessage&&(n.meta.errorMessages.pattern=n.meta.settingObj.regexErrorMessage)},validateField:function(n,t){var f=this.validateFieldBase(n,t),u;return i(n)||t.setting&&(u=JSON.parse(t.setting),u.rangeMin>0&&n.length<u.rangeMin&&(f.valid=!1,f.message+=u.rangeErrorMessage?u.rangeErrorMessage:t.uniqueName+" should not be less than "+u.rangeMin+" character(s).",f.message+="\n"),n.length>u.rangeMax&&(f.valid=!1,f.message+=u.rangeErrorMessage?u.rangeErrorMessage:t.uniqueName+" should not be more than "+u.rangeMax+" characters.",f.message+="\n"),u.regex&&(f.valid=n.match(r(u.regex)),f.valid||(f.message+=u.regexErrorMessage?u.regexErrorMessage:"Invalid "+t.uniqueName+".",f.message+="\n"))),f}}),o.defineFieldType("Email",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FIELDVALUETYPES.STRING,listIsSortable:!0,label:"Email"})},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}}),o.defineFieldType("Phone",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FIELDVALUETYPES.STRING,listIsSortable:!0,label:"Phone",format:n.visionApps.cms_core.PhoneFormat})},formatGridData:function(n,t){return{value:$.viFormatPhone(n,t.PhoneFormatString),isHtml:!1}},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}}),o.defineFieldType("Thumbnail",null,{createFieldMeta:function(){return this._mergeDefaultFieldMeta({valueType:FIELDVALUETYPES.NUMBER,listIsSortable:!1,label:"Thumbnail"})},formatGridData:function(n,t){return{value:'<img src="'+t.imgBaseUrl+"?id="+n+'" alt=""/>',isHtml:!0}}}),o}])}(window,angular),function(n,t){var i=t.module("viAppVisionLiveFlexibleComponentFields");i.factory("jsonDataUtil",["$http","$q",function(t){function r(){u()}function u(){t({method:"GET",url:n.visionOptions.cmsAdminEndPoint+"Components/Scripts/app/jsondata/states.json"}).then(function(n){i.states=n.data})}var i={init:r,states:[]};return i}])}(window,angular)