1"use strict";function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i]}return arr2}function _iterableToArrayLimit(arr,i){if(typeof Symbol==="undefined"||!(Symbol.iterator in Object(arr)))return;var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}/** 2 * FIELDS 3 */ //completed: 4var isDateSupported=function isDateSupported(){var input=document.createElement("input");var value="a";input.setAttribute("type","date");input.setAttribute("value",value);return input.value!==value};//completed: 5var useOnClickOutside=function useOnClickOutside(ref,handler){React.useEffect(function(){var listener=function listener(event){// Do nothing if clicking ref's element or descendent elements 6if(!ref.current||ref.current.contains(event.target)){return}handler(event)};document.addEventListener("mousedown",listener);document.addEventListener("touchstart",listener);return function(){document.removeEventListener("mousedown",listener);document.removeEventListener("touchstart",listener)}},[ref,handler])};//completed: 7var deviceType=function deviceType(){var userAgent=navigator.userAgent||navigator.vendor||window.opera;if(/windows phone/i.test(userAgent)){return"Windows Phone"}if(/android/i.test(userAgent)){return"Android"}if(/blackberry/i.test(userAgent)){return"Blackberry"}if(/opera mini/i.test(userAgent)){return"Opera Mini"}// iOS detection from: http://stackoverflow.com/a/9039885/177710 8if(/iPad|iPhone|iPod/.test(userAgent)&&!window.MSStream){return"iOS"}return"Desktop"};//completed: 9var isMobile=function isMobile(){return deviceType()!=="Desktop"};var isIos=function isIos(){return deviceType()==="iOS"};//completed: 10var groupOptions=function groupOptions(options,idPath,displayPath,groupPath){var missingGroupingValue=arguments.length>4&&arguments[4]!==undefined?arguments[4]:"Other";var newOptions=[];var ungroupedOptions=[];var groupedOptions={};var groupingIsRequired=Boolean(_.size(groupPath));_.each(options,function(option){if(groupingIsRequired){var groupName=Boolean(_.size(_.get(option,groupPath)))?_.get(option,groupPath):missingGroupingValue;if(_.isUndefined(groupedOptions[groupName]))groupedOptions[groupName]=[];groupedOptions[groupName].push({value:_.get(option,idPath),displayValue:_.get(option,displayPath),label:_.get(option,displayPath)})}else{ungroupedOptions.push({value:_.get(option,idPath),displayValue:_.get(option,displayPath),label:_.get(option,displayPath)})}});if(groupingIsRequired){var missingGroupingValueOptions=groupedOptions[missingGroupingValue];delete groupedOptions[missingGroupingValue];_.each(groupedOptions,function(options,groupName){newOptions.push({group:groupName,options:options})});if(_.size(missingGroupingValueOptions)){newOptions.push({group:missingGroupingValue,options:missingGroupingValueOptions})}}else{newOptions.push({group:"_ungrouped_",options:ungroupedOptions})}return newOptions};var useAjaxLoader=function useAjaxLoader(url,idPath,displayPath,groupPath){var missingGroupingValue=arguments.length>4&&arguments[4]!==undefined?arguments[4]:"Other";var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),isLoading=_React$useState2[0],setIsLoading=_React$useState2[1];var _React$useState3=React.useState([]),_React$useState4=_slicedToArray(_React$useState3,2),options=_React$useState4[0],setOptions=_React$useState4[1];var prevUrl=React.useRef(null);var fetchOptions=React.useCallback(function(url){setIsLoading(true);fetch(url).then(function(res){return res.json()}).then(function(result){var parsedOptions=groupOptions(result.records,"".concat(result.metaData.record,".").concat(idPath),"".concat(result.metaData.record,".").concat(displayPath),groupPath?"".concat(result.metaData.record,".").concat(groupPath):null,missingGroupingValue);setOptions(parsedOptions);setIsLoading(false)})},[]);React.useEffect(function(){if(url!==prevUrl.current){if(url)fetchOptions(url);if(!url)setOptions([])}prevUrl.current=url},[url]);return[isLoading,options]};//completed: 11var TextField=React.memo(function TextField(props){var type=props.type,required=props.required,name=props.name,value=props.value,placeholder=props.placeholder,minValue=props.minValue,maxValue=props.maxValue,minLength=props.minLength,maxLength=props.maxLength,step=props.step,onChange=props.onChange;var textFieldRef=React.useRef(null);var change=React.useCallback(function(event){onChange(name,event.target.value)},[name,onChange]);React.useEffect(function(){textFieldRef.current.setCustomValidity("");if(minLength&&_.size(value)<minLength){textFieldRef.current.setCustomValidity("Min length for this field is ".concat(minLength," characters"))}if(maxLength&&_.size(value)>maxLength){textFieldRef.current.setCustomValidity("Max length for this field is ".concat(maxLength," characters"))}},[value]);//useRenderDebug('TextField', {props}); 12return/*#__PURE__*/React.createElement("input",{ref:textFieldRef,type:type,required:required,value:value||"",placeholder:placeholder||"",min:minValue,max:maxValue,step:step,onChange:change})});TextField.propTypes={type:PropTypes.oneOf(["text","date","time","number","email"]).isRequired,required:PropTypes.bool,name:PropTypes.string,value:Pro
12pTypes.string,placeholder:PropTypes.string,min:PropTypes.string,max:PropTypes.string,step:PropTypes.number,minLength:PropTypes.number,maxLength:PropTypes.number,onChange:PropTypes.func.isRequired};TextField.defaultProps={type:"text",required:false,name:null,value:null,placeholder:null,min:null,max:null,step:null,minLength:null,maxLength:null,onChange:function onChange(name,value){}};//completed: 13var TextAreaField=React.memo(function TextAreaField(props){var required=props.required,name=props.name,value=props.value,placeholder=props.placeholder,rows=props.rows,minLength=props.minLength,maxLength=props.maxLength,onChange=props.onChange;var textAreaRef=React.useRef(null);var change=React.useCallback(function(event){onChange(name,event.target.value)},[name,onChange]);React.useEffect(function(){textAreaRef.current.setCustomValidity("");if(minLength&&_.size(value)<minLength){textAreaRef.current.setCustomValidity("Min length for this field is ".concat(minLength," characters"))}if(maxLength&&_.size(value)>maxLength){textAreaRef.current.setCustomValidity("Max length for this field is ".concat(maxLength," characters"))}},[value]);//useRenderDebug('TextAreaField', {props}); 14return/*#__PURE__*/React.createElement("textarea",{ref:textAreaRef,required:required,value:value||"",placeholder:placeholder||"",rows:rows,onChange:change})});TextAreaField.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,rows:PropTypes.number,minLength:PropTypes.number,maxLength:PropTypes.number,onChange:PropTypes.func};TextAreaField.defaultProps={required:false,name:null,value:null,placeholder:null,rows:null,minLength:null,maxLength:null,onChange:function onChange(name,value){}};//completed: 15var HtmlEditorField=React.memo(function HtmlEditorField(props){var required=props.required,name=props.name,value=props.value,placeholder=props.placeholder,rows=props.rows,browserSpellcheck=props.browserSpellcheck,minLength=props.minLength,maxLength=props.maxLength,onChange=props.onChange;var textAreaRef=React.useRef(null);var _React$useState5=React.useState(null),_React$useState6=_slicedToArray(_React$useState5,2),editorInstance=_React$useState6[0],setEditorInstance=_React$useState6[1];React.useEffect(function(){if(editorInstance){editorInstance.off("keyup").on("keyup",function(){onChange(name,editorInstance.getContent())})}},[editorInstance,onChange]);React.useEffect(function(){if(editorInstance){editorInstance.on("focus",function(){editorInstance.container.classList.add("focused")});editorInstance.on("blur",function(){editorInstance.container.classList.remove("focused")})}},[editorInstance]);React.useEffect(function(){textAreaRef.current.setCustomValidity("");if(minLength&&_.size(value)<minLength){textAreaRef.current.setCustomValidity("Min length for this field is ".concat(minLength," characters"))}if(maxLength&&_.size(value)>maxLength){textAreaRef.current.setCustomValidity("Max length for this field is ".concat(maxLength," characters"))}if(required&&!_.size(value)){textAreaRef.current.setCustomValidity("This field is required")}},[value,minLength,maxLength,required]);React.useEffect(function(){tinymce.init({selector:"textarea.html-editor-".concat(_.kebabCase(name)),width:"100%",autoresize:true,min_height:300,menubar:false,statusbar:false,valid_elements:"strong/b,i/em,a[href|target=_self|style|title],span[style],p[style],div[style],code[style],blockquote[style],br[style],"+"ul[style],ol[style],li[style],"+"h1[style],h2[style],h3[style],h4[style],h5[style],h6[style],img[*]",relative_urls:false,remove_trailing_brs:true,//plugins: 'autoresize autolink directionality link advlist lists', 16plugins:"autoresize autolink directionality link advlist lists paste code hr image anchor charmap media",toolbar:"formatselect | bold italic strikethrough forecolor backcolor | link | alignleft aligncenter alignright al
16ignjustify | numlist bullist | removeformat",toolbar_drawer:"floating",autoresize_bottom_margin:20,mobile:{theme:"silver",toolbar:"bold italic strikethrough forecolor backcolor | link"},paste_data_images:true,//smart_paste: false, 17browser_spellcheck:browserSpellcheck,contextmenu:browserSpellcheck?false:"link",setup:function setup(editor){setEditorInstance(editor)}})},[]);//useRenderDebug('HtmlEditorField', {props}); 18return/*#__PURE__*/React.createElement("textarea",{ref:textAreaRef,className:"html-editor-".concat(_.kebabCase(name)),required:required,value:value||"",placeholder:placeholder||"",rows:rows,style:{minHeight:300}})});HtmlEditorField.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,rows:PropTypes.number,browserSpellcheck:PropTypes.bool,minLength:PropTypes.number,maxLength:PropTypes.number,onChange:PropTypes.func};HtmlEditorField.defaultProps={required:false,name:null,value:null,placeholder:null,rows:null,browserSpellcheck:true,minLength:null,maxLength:null,onChange:function onChange(name,value){}};//completed: 19var DateField=React.memo(function DateField(props){var required=props.required,name=props.name,value=props.value,minValue=props.minValue,maxValue=props.maxValue,onChange=props.onChange;var inputRef=React.useRef(null);var change=React.useCallback(function(event){if(isDateSupported()){onChange(name,event.target.value)}},[name,onChange]);React.useEffect(function(){if(!isDateSupported()){var picker=new Pikaday({field:inputRef.current,format:"MM/DD/YYYY",parse:"YYYY-MM-DD",minDate:minValue?moment(minValue).toDate():null,maxDate:maxValue?moment(maxValue).toDate():null,onSelect:function onSelect(){onChange(name,picker.getMoment().format("YYYY-MM-DD"))}})}}
19,[name,minValue,maxValue]);//useRenderDebug('DateField', {props}); 20return/*#__PURE__*/React.createElement("input",{ref:inputRef,type:"date",required:required,value:isDateSupported()?value||"":value?moment(value).format("MM/DD/YYYY"):"",placeholder:isDateSupported()?null:"mm/dd/yyyy",min:isDateSupported()?minValue:null,max:isDateSupported()?maxValue:null,onChange:change})});DateField.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,minValue:PropTypes.string,maxValue:PropTypes.string,onChange:PropTypes.func};DateField.defaultProps={required:false,name:null,value:null,minValue:null,maxValue:null,onChange:function onChange(name,value){}};//completed: 21var CheckboxField=React.memo(function CheckboxField(props){var required=props.required,name=props.name,boxLabel=props.boxLabel,checked=props.checked,isInsideCheckboxGroup=props.isInsideCheckboxGroup,customValidationError=props.customValidationError,style=props.style,onChange=props.onChange;var inputRef=React.useRef(null);var change=React.useCallback(function(event){onChange(name,!!event.target.checked)},[name,onChange]);var HtmlTag="div";if(boxLabel)HtmlTag="label";React.useEffect(function(){inputRef.current.setCustomValidity(customValidationError)},[customValidationError]);React.useEffect(function(){if(checked&&!isInsideCheckboxGroup){onChange(name,true)}},[]);//useRenderDebug('CheckboxField', {props}); 22return/*#__PURE__*/React.createElement(HtmlTag,{className:"label",style:style||{}},/*#__PURE__*/React.createElement("input",{ref:inputRef,name:name,type:"checkbox",required:required,checked:checked,title:customValidationError?customValidationError:null,onChange:change}),boxLabel&&/*#__PURE__*/React.createElement("span",{dangerouslySetInnerHTML:{__html:boxLabel}}))});CheckboxField.propTypes={required:PropTypes.bool,name:PropTypes.string,boxLabel:PropTypes.string,checked:PropTypes.bool,customValidationError:PropTypes.string,style:PropTypes.object,isInsideCheckboxGroup:PropTypes.bool,onChange:PropTypes.func};CheckboxField.defaultProps={required:false,name:null,boxLabel:null,checked:false,isInsideCheckboxGroup:false,customValidationError:"",onChange:function onChange(name,value){}};//completed: 23var CheckboxGroupField=React.memo(function CheckboxGroupField(props){var required=props.required,multiMin=props.multiMin,multiMax=props.multiMax,name=props.name,value=props.value,options=props.options,autoFlex=props.autoFlex,columns=props.columns,datagroupAlias=props.datagroupAlias,enableCollapsibleGroups=props.enableCollapsibleGroups,onChange=props.onChange;var rootRef=React.useRef(null);var _React$useState7=React.useState(required),_React$useState8=_slicedToArray(_React$useState7,2),isRequired=_React$useState8[0],setIsRequired=_React$useState8[1];var _React$useState9=React.useState(null),_React$useState10=_slicedToArray(_React$useState9,2),minMaxError=_React$useState10[0],setMinMaxError=_React$useState10[1];var _React$useState11=React.useState([]),_React$useState12=_slicedToArray(_React$useState11,2),expanded=_React$useState12[0],setExpanded=_React$useState12[1];var toggleGroup=React.useCallback(function(groupName){return function(event){setExpanded(function(current){var expanded=_.clone(current);if(_.includes(expanded,groupName)){_.remove(expanded,function(val){return val===groupName})}else{expanded.push(groupName)}return expanded})}},[]);var change=React.useCallback(function(valueId){return function(cbName,checked){var values=_.clone(value);if(checked&&!_.includes(values,valueId)){values.push(valueId)}else{_.remove(values,function(value){return value===valueId})}onChange(name,values)}},[name,value]);React.useEffect(function(){rootRef.current.dispatchEvent(new Event("parentchange"))},[value]);React.useEffect(function(){if(required&&!_.size(value)){setIsRequired(true)}else if(parseInt(multiMin)&&_.size(value)>0&&_.size(value)<parseInt(multiMin)){setMinMaxError("You need to select at least ".concat(multiMin," options"))}else if(parseInt(multiMax)&&_.size(value)>0&&_.size(value)>parseInt(multiMax)){setMinMaxError("You need to select maximum ".concat(multiMax," options"))}else{setIsRequired(false);setMinMaxError("")}},[required,value,multiMin,multiMax]);var checkboxes=[];_.each(options,function(group,index){var groupName=group.group;var groupCollapseIcon=null;if(enableCollapsibleGroups&&_.includes(expanded,groupName)){groupCollapseIcon=/*#__PURE__*/React.createElement("i",{className:"fa fa-chevron-up collapse-icon","aria-hidden":"true"})}if(enableCollapsibleGroups&&!_.includes(expanded,groupName)){groupCollapseIcon=/*#__PURE__*/React.createElement("i",{className:"fa fa-chevron-down collapse-icon","aria-hidden":"true"})}var groupOptions=[];var groupItemCount=0;_.each(group.options,function(option,index){groupOptions.push(/*#__PURE__*/React.createElement(CheckboxField,{key:"radio-".concat(index),name:"".concat(name,"-").concat(index),required:isRequired,customValidationError:minMaxError,checked:_.indexOf(value,option.value)>-1,isInsideCheckboxGroup:true,boxLabel:option.label,onChange:change(option.value)}));groupItemCount++;
23if(!autoFlex&&groupItemCount===columns){groupItemCount=0;groupOptions.push(/*#__PURE__*/React.createElement("div",{key:"break-".concat(index),className:"break"}))}});checkboxes.push(/*#__PURE__*/React.createElement("div",{className:"checkbox-radio-group-section",key:"group-".concat(groupName)},Boolean(groupName!=="_ungrouped_")&&/*#__PURE__*/React.createElement("div",{className:"checkbox-radio-group-title ".concat(enableCollapsibleGroups?"clickable":""),onClick:toggleGroup(groupName)},groupCollapseIcon,groupName),/*#__PURE__*/React.createElement("div",{className:"checkbox-radio-group-options ".concat(enableCollapsibleGroups&&!_.includes(expanded,groupName)?"collapsed":"")},groupOptions)))});//useRenderDebug('CheckboxGroupField', {props}); 24return/*#__PURE__*/React.createElement("div",{ref:rootRef,className:"checkbox-radio-group ".concat(autoFlex?"stack-auto":"stack-left"," columns-").concat(columns),"data-value":value,"data-datagroup-alias":datagroupAlias},checkboxes)});CheckboxGroupField.propTypes={required:PropTypes.bool,multiMin:PropTypes.number,multiMax:PropTypes.number,name:PropTypes.string.isRequired,value:PropTypes.array,options:PropTypes.arrayOf(PropTypes.shape({value:Pro
24pTypes.oneOfType([PropTypes.string,PropTypes.bool]),label:PropTypes.string})),autoFlex:PropTypes.bool,columns:PropTypes.number,datagroupAlias:PropTypes.string,enableCollapsibleGroups:PropTypes.bool,onChange:PropTypes.func};CheckboxGroupField.defaultProps={required:false,multiMin:null,multiMax:null,name:null,value:[],options:[],autoFlex:false,columns:0,datagroupAlias:null,enableCollapsibleGroups:false,onChange:function onChange(name,value){}};//completed: 25var RadioField=React.memo(function RadioField(props){var required=props.required,name=props.name,boxLabel=props.boxLabel,checked=props.checked,value=props.value,style=props.style,onChange=props.onChange;var change=React.useCallback(function(event){onChange(name,value)},[name,value,onChange]);//useRenderDebug('RadioField', {props}); 26return/*#__PURE__*/React.createElement("label",{className:"label",style:style||{}},/*#__PURE__*/React.createElement("input",{type:"radio",name:name,required:required,checked:checked,value:value,onChange:change}),boxLabel&&/*#__PURE__*/React.createElement("span",{dangerouslySetInnerHTML:{__html:boxLabel}}))});RadioField.propTypes={required:PropTypes.bool,name:PropTypes.string.isRequired,boxLabel:PropTypes.string,checked:PropTypes.bool,value:PropTypes.oneOfType([PropTypes.number,PropTypes.string,PropTypes.bool]),style:PropTypes.object,onChange:PropTypes.func};RadioField.defaultProps={required:false,name:null,boxLabel:null,checked:false,value:null,onChange:function onChange(name,value){}};//completed: 27var RadioGroupField=React.memo(function RadioGroupField(props){var required=props.required,name=props.name,value=props.value,options=props.options,autoFlex=props.autoFlex,columns=props.columns,datagroupAlias=props.datagroupAlias,enableCollapsibleGroups=props.enableCollapsibleGroups,onChange=props.onChange;var rootRef=React.useRef(null);var _React$useState13=React.useState([]),_React$useState14=_slicedToArray(_React$useState13,2),expanded=_React$useState14[0],setExpanded=_React$useState14[1];var toggleGroup=React.useCallback(function(groupName){return function(event){setExpanded(function(current){var expanded=_.clone(current);if(_.includes(expanded,groupName)){_.remove(expanded,function(val){return val===groupName})}else{expanded.push(groupName)}return expanded})}},[]);React.useEffect(function(){rootRef.current.dispatchEvent(new Event("parentchange"))},[value]);var radios=[];_.each(options,function(group,index){var groupName=group.group;var groupCollapseIcon=null;if(enableCollapsibleGroups&&_.includes(expanded,groupName)){groupCollapseIcon=/*#__PURE__*/React.createElement("i",{className:"fa fa-chevron-up collapse-icon","aria-hidden":"true"})}if(enableCollapsibleGroups&&!_.includes(expanded,groupName)){groupCollapseIcon=/*#__PURE__*/React.createElement("i",{className:"fa fa-chevron-down collapse-icon","aria-hidden":"true"})}var groupOptions=[];var groupItemCount=0;_.each(group.options,function(option,index){groupOptions.push(/*#__PURE__*/React.createElement(RadioField,{key:"radio-".concat(index),required:required,name:name,checked:value===option.value,value:option.value,boxLabel:option.label,onChange:onChange}));groupItemCount++;if(!autoFlex&&groupItemCount===columns){groupItemCount=0;groupOptions.push(/*#__PURE__*/React.createElement("div",{key:"break-".concat(index),className:"break"}))}});radios.push(/*#__PURE__*/React.createElement("div",{className:"checkbox-radio-group-section",key:"group-".concat(groupName)},Boolean(groupName!=="_ungrouped_")&&/*#__PURE__*/React.createElement("div",{className:"checkbox-radio-group-title ".concat(enableCollapsibleGroups?"clickable":""),onClick:toggleGroup(groupName)},groupCollapseIcon,groupName),/*#__PURE__*/React.createElement("div",{className:"checkbox-radio-group-options ".concat(enableCollapsibleGroups&&!_.includes(expanded,groupName)?"collapsed":"")},groupOptions)))});//useRenderDebug('RadioGroupField', {props}); 28return/*#__PURE__*/React.createElement("div",{ref:rootRef,className:"checkbox-radio-group ".concat(autoFlex?"stack-auto":"stack-left"," columns-").concat(columns),"data-value":value,"data-datagroup-alias":datagroupAlias},radios)});RadioGroupField.propTypes={required:PropTypes.bool,name:PropTypes.string.isRequired,value:Pro
28pTypes.oneOfType([PropTypes.number,PropTypes.string,PropTypes.bool]),options:PropTypes.arrayOf(PropTypes.shape({value:PropTypes.oneOfType([PropTypes.number,PropTypes.string,PropTypes.bool]),label:PropTypes.string})),autoFlex:PropTypes.bool,columns:PropTypes.number,datagroupAlias:PropTypes.string,enableCollapsibleGroups:PropTypes.bool,onChange:PropTypes.func};RadioGroupField.defaultProps={required:false,name:null,value:null,options:[],autoFlex:false,columns:0,datagroupAlias:null,enableCollapsibleGroups:false,onChange:function onChange(name,value){}};//completed: 29var SelectField=React.memo(function SelectField(props){var isLoading=props.isLoading,required=props.required,name=props.name,value=props.value,placeholder=props.placeholder,emptyListText=props.emptyListText,showEmptyOption=props.showEmptyOption,options=props.options,datagroupAlias=props.datagroupAlias,onChange=props.onChange;var rootRef=React.useRef(null);var change=React.useCallback(function(event){onChange(name,event.target.value)},[name,onChange]);React.useEffect(function(){setTimeout(function(){if(rootRef.current)rootRef.current.dispatchEvent(new Event("parentchange"))},300)},[value]);React.useEffect(function(){var allOptions=[];_.each(options,function(options){allOptions=_.concat(allOptions,options.options)});if(_.size(allOptions)&&!_.includes(_.map(allOptions,"value"),value)){onChange(name,"")}},[value,options]);var selectOptions=[];if(isLoading){selectOptions.push(/*#__PURE__*/React.createElement("option",{key:"loading",disabled:true,value:"",style:{display:"none"}},"Loading..."))}if(placeholder){selectOptions.push(/*#__PURE__*/React.createElement("option",{key:"placeholder",disabled:true,value:"",style:{display:"none"}},placeholder))}if(showEmptyOption&&_.size(options)){selectOptions.push(/*#__PURE__*/React.createElement("option",{key:"blank",value:""}))}if(emptyListText&&!_.size(options)){selectOptions.push(/*#__PURE__*/React.createElement("option",{key:"empty-text",disabled:true,value:""},emptyListText))}_.each(options,function(group,index){var groupName=group.group;if(groupName==="_ungrouped_"){_.each(group.options,function(option,index){selectOptions.push(/*#__PURE__*/React.createElement("option",{key:"option-".concat(index),disabled:option.disabled||false,value:option.value},option.displayValue))})}else{var _groupOptions=[];_.each(group.options,function(option,index){_groupOptions.push(/*#__PURE__*/React.createElement("option",{key:"option-".concat(groupName,"-").concat(index),disabled:option.disabled||false,value:option.value},option.displayValue))});selectOptions.push(/*#__PURE__*/React.createElement("optgroup",{key:"group-".concat(groupName),label:groupName,style:{fontWeight:"bold"}},_groupOptions))}});//useRenderDebug('SelectField', {props}); 30return/*#__PURE__*/React.createElement("select",{ref:rootRef,disabled:isLoading,required:required,value:value||"",placeholder:placeholder||"",onChange:change,"data-value":value,"data-datagroup-alias":datagroupAlias},selectOptions)});SelectField.propTypes={isLoading:PropTypes.bool,required:PropTypes.bool,name:PropTypes.string,value:PropTypes.oneOfType([PropTypes.number,PropTypes.string,PropTypes.bool,PropTypes.array]),placeholder:PropTypes.string,emptyListText:PropTypes.string,datagroupAlias:PropTypes.string,showEmptyOption:PropTypes.bool,options:PropTypes.arrayOf(PropTypes.shape({value:Pro
30pTypes.oneOfType([PropTypes.number,PropTypes.string,PropTypes.bool]),displayValue:PropTypes.string,disabled:PropTypes.bool,group:PropTypes.string})),onChange:PropTypes.func.isRequired};SelectField.defaultProps={isLoading:false,required:false,name:null,value:null,placeholder:null,emptyListText:"No options available",showEmptyOption:true,options:[],datagroupAlias:null,onChange:function onChange(name,value){}};//completed: 31var MultiSelectField=React.memo(function MultiSelectField(props){var isLoading=props.isLoading,required=props.required,name=props.name,multiMin=props.multiMin,multiMax=props.multiMax,value=props.value,placeholder=props.placeholder,emptyListText=props.emptyListText,optionsFromProps=props.options,datagroupAlias=props.datagroupAlias,onChange=props.onChange;var multiselectRef=React.useRef(null);var selectRef=React.useRef(null);var inputRef=React.useRef(null);var _React$useState15=React.useState(optionsFromProps),_React$useState16=_slicedToArray(_React$useState15,2),options=_React$useState16[0],setOptions=_React$useState16[1];var _React$useState17=React.useState(optionsFromProps),_React$useState18=_slicedToArray(_React$useState17,2),visibleOptions=_React$useState18[0],setVisibleOptions=_React$useState18[1];var _React$useState19=React.useState(false),_React$useState20=_slicedToArray(_React$useState19,2),optionListIsOpen=_React$useState20[0],setOptionListIsOpen=_React$useState20[1];var _React$useState21=React.useState(null),_React$useState22=_slicedToArray(_React$useState21,2),hoveredOptionValue=_React$useState22[0],setHoveredOptionValue=_React$useState22[1];var _React$useState23=React.useState(""),_React$useState24=_slicedToArray(_React$useState23,2),validationError=_React$useState24[0],setValidationError=_React$useState24[1];var _React$useState25=React.useState([]),_React$useState26=_slicedToArray(_React$useState25,2),allOptions=_React$useState26[0],setAllOptions=_React$useState26[1];var _React$useState27=React.useState([]),_React$useState28=_slicedToArray(_React$useState27,2),allVisibleOptions=_React$useState28[0],setAllVisibleOptions=_React$useState28[1];var handleChange=React.useCallback(function(event){var values=[];var options=event.target.options;for(var i=0,length=options.length;i<length;i++){if(options[i].selected){values.push(options[i].value)}}onChange(name,values)},[onChange,name]);var handleCustomChange=React.useCallback(function(selectedValue){return function(event){var values=_.clone(value);if(_.indexOf(values,selectedValue)<0){values.push(selectedValue)}else{_.remove(values,function(value){return value===selectedValue})}onChange(name,values)}},[onChange,value,name]);var handleRemove=React.useCallback(function(valueToRemove){return function(event){var values=_.clone(value);_.remove(values,function(value){return value===valueToRemove});onChange(name,values);event.stopPropagation();event.preventDefault();return false}},[onChange,value,name]);var hoverOption=React.useCallback(function(direction){setHoveredOptionValue(function(hoveredOption){var nextIndex=null;if(!hoveredOption){if(direction==="next")nextIndex=0;if(direction==="prev")nextIndex=_.size(allVisibleOptions)-1}else{if(direction==="next"){nextIndex=_.findIndex(allVisibleOptions,{value:hoveredOption})+1;if(nextIndex===_.size(allVisibleOptions))nextIndex=0}if(direction==="prev"){nextIndex=_.findIndex(allVisibleOptions,{value:hoveredOption})-1;if(nextIndex<0)nextIndex=_.size(allVisibleOptions)-1}}return allVisibleOptions[nextIndex].value})},[allVisibleOptions]);var onInputClick=React.useCallback(function(event){setOptionListIsOpen(function(optionListIsOpen){return!optionListIsOpen})},[]);var onInputKeyDown=React.useCallback(function(event){switch(event.which){case 27://Tab 32if(optionListIsOpen)setOptionListIsOpen(false);return;case 9://Esc 33if(optionListIsOpen)setOptionListIsOpen(false);return;case 38://Up 34if(!optionListIsOpen)setOptionListIsOpen(true);if(optionListIsOpen)hoverOption("prev");event.preventDefault();return;case 40://Down 35if(!optionListIsOpen)setOptionListIsOpen(true);if(optionListIsOpen)hoverOption("next");event.preventDefault();return;case 32://Space 36if(optionListIsOpen&&hoveredOptionValue){handleCustomChange(hoveredOptionValue)();event.preventDefault()}return;case 13://Enter 37if(optionListIsOpen&&hoveredOptionValue){handleCustomChange(hoveredOptionValue)();event.preventDefault()}return;default:return;}},[optionListIsOpen,hoveredOptionValue,hoverOption]);var onSearchInputKeyDown=React.useCallback(function(event){switch(event.which){case 27://Esc 38if(optionListIsOpen)setOptionListIsOpen(false);return;case 9://Tab 39if(optionListIsOpen){inputRef.current.focus();hoverOption("next")}event.preventDefault();return;default:return;}},[optionListIsOpen]);var onSearchInputKeyUp=React.useCallback(function(event){var keyword=event.target.value.toLowerCase();if(Boolean(keyword.length)){var filteredOptionsObject={};_.each(options,function(_ref){var groupName=_ref.group,groupOptions=_ref.options;_.each(groupOptions,function(option){if(_.includes(groupName.toLowerCase(),keyword)||_.includes(option.displayValue.toLowerCase(),keyword)){if(!filteredOptionsObject[groupName]){filteredOptionsObject[groupName]=[]}filteredOptionsObject[groupName].push(option)}})});var filteredOptions=[];_.each(filteredOptionsObject,function(groupOptions,groupName){filteredOptions.push({group:groupName,options:groupOptions})});setVisibleOptions(filteredOptions)}else{setVisibleOptions(options)}},[optionListIsOpen,options]);var onOptionHover=React.useCallback(function(optionValue){return function(event){setHoveredOptionValue(optionValue)}},[]);useOnClickOutside(multiselectRef,function(){return setOptionListIsOpen(false)});React.useEffect(function(){setOptions(optionsFromProps);setVisibleOptions(optionsFromProps)},[optionsFromProps]);React.useEffect(function(){selectRef.current.dispatchEvent(new Event("parentchange"))},[value]);React.useEffect(function(){var validationError="";if(required&&!_.size(value)){validationError="Please select an item in the list"}else if(multiMin&&_.size(value)&&_.size(value)<multiMin){validationError="You need to select at least ".concat(multiMin," options")}else if(multiMax&&_.size(value)&&_.size(value)>multiMax){validationError="You need to select maximum ".concat(multiMax," options")}setValidationError(validationError);selectRef.current.setCustomValidity(validationError)},[required,value,multiMin,multiMax]);React.useEffect(function(){var tmp=[];_.each(options,function(options){tmp=_.concat(tmp,options.options)});setAllOptions(tmp)},[options]);React.useEffect(function(){var tmp=[];_.each(visibleOptions,function(options){tmp=_.concat(tmp,options.options)});setAllVisibleOptions(tmp)},[visibleOptions]);var placeholderText=null;var nativeOptions=[];var customOptions=[];if(placeholder){placeholderText=placeholder}if(isLoading){placeholderText="Loading..."}if(_.size(value)){placeholderText=null}if(emptyListText&&!_.size(allOptions)){nativeOptions.push(/*#__PURE__*/React.createElement("option",{key:"empty-text",disabled:true,value:""},emptyListText))}_.each(visibleOptions,function(group,index){var groupName=group.group;if(groupName==="_ungrouped_"){_.each(group.options,function(option,index){nativeOptions.push(/*#__PURE__*/React.createElement("option",{key:"option-".concat(index),disabled:option.disabled||false,value:option.value},option.displayValue));customOptions.push(/*#__PURE__*/React.createElement("div",{className:"option ".concat(_.indexOf(value,option.value)>-1?"checked":""," ").concat(hoveredOptionValue===option.value?"hovered":""),key:"option-".concat(index),onClick:handleCustomChange(option.value),onMouseEnter:onOptionHover(option.value),onMouseLeave:onOptionHover(null)},/*#__PURE__*/React.createElement("span",{className:"checkbox"}),/*#__PURE__*/React.createElement("span",{className:"text"},option.displayValue)))})}else{var groupNativeOptions=[];var groupCustomOptions=[];_.each(group.options,function(option,index){groupNativeOptions.push(/*#__PURE__*/React.createElement("option",{key:"option-".concat(groupName,"-").concat(index),disabled:option.disabled||false,value:option.value},option.displayValue));groupCustomOptions.push(/*#__PURE__*/React.createElement("div",{className:"option ".concat(_.indexOf(value,option.value)>-1?"checked":""," ").concat(hoveredOptionValue===option.value?"hovered":""),key:"option-".concat(groupName,"-").concat(index),onClick:handleCustomChange(option.value),onMouseEnter:onOptionHover(option.value),onMouseLeave:onOptionHover(null)},/*#__PURE__*/React.createElement("span",{className:"checkbox"}),/*#__PURE__*/React.createElement("span",{className:"text"},option.displayValue)))});nativeOptions.push(/*#__PURE__*/React.createElement("optgroup",{key:"group-".concat(groupName),label:groupName,style:{fontWeight:"bold"}},groupNativeOptions));customOptions.push(/*#__PURE__*/React.createElement("div",{className:"option-group",key:"group-".concat(groupName)},/*#__PURE__*/React.createElement("div",{className:"option-group-title"},groupName),groupCustomOptions))}});var optionTags=[];_.each(value,function(val){var selectedTag=_.find(allOptions,function(option){return option.value===val});if(selectedTag){optionTags.push(/*#__PURE__*/React.createElement("div",{key:"selected-option-value-".concat(val),className:"option"},/*#__PURE__*/React.createElement("span",{className:"text"},selectedTag.displayValue),/*#__PURE__*/React.createElement("span",{className:"remove",onClick:handleRemove(val)})))}});var showSearchField=_.size(allOptions)>20;//useRenderDebug('MultiSelectField', {props, optionListIsOpen, hoveredOptionValue, validationError, handleChange, handleCustomChange, handleRemove, hoverOption, onInputClick, onInputKeyDown, onOptionHover}); 40return/*#__PURE__*/React.createElement("div",{className:["multiselect",_.size(validationError)?"invali
40d":""].join(" "),ref:multiselectRef},/*#__PURE__*/React.createElement("select",{ref:selectRef,className:isIos()?"selectable":"",tabIndex:"-1",multiple:true,disabled:isLoading,required:required,value:value||"","data-value":value,"data-datagroup-alias":datagroupAlias,onChange:handleChange},nativeOptions),/*#__PURE__*/React.createElement("input",{ref:inputRef,type:"text",placeholder:placeholderText,disabled:isLoading,readOnly:true,onKeyDown:onInputKeyDown,onClick:onInputClick,title:validationError.length>0?validationError:null}),/*#__PURE__*/React.createElement("div",{className:"selected-options"},optionTags),!isIos()&&/*#__PURE__*/React.createElement("div",{className:"option-list ".concat(optionListIsOpen?"open":"")},showSearchField&&/*#__PURE__*/React.createElement("div",{className:"option-search"},/*#__PURE__*/React.createElement("input",{type:"text",onKeyDown:onSearchInputKeyDown,onKeyUp:onSearchInputKeyUp})),customOptions))});MultiSelectField.propTypes={isLoading:PropTypes.bool,required:PropTypes.bool,name:PropTypes.string,multiMin:PropTypes.number,multiMax:PropTypes.number,value:PropTypes.array,placeholder:PropTypes.string,emptyListText:PropTypes.string,options:PropTypes.arrayOf(PropTypes.shape({value:Pro
40pTypes.string,displayValue:PropTypes.string,disabled:PropTypes.bool,group:PropTypes.string})),datagroupAlias:PropTypes.string,onChange:PropTypes.func.isRequired};MultiSelectField.defaultProps={isLoading:false,required:false,name:null,multiMin:null,multiMax:null,value:[],placeholder:null,emptyListText:"No options available",options:[],datagroupAlias:null,onChange:function onChange(name,value){}};//======================================================================= 41// FIELD TYPES ========================================================== 42//======================================================================= 43//completed: 44var TaskFormFieldTypeText=React.memo(function TaskFormFieldTypeText(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,minLength=props.minLength,maxLength=props.maxLength,onChange=props.onChange;//useRenderDebug('TaskFormFieldTypeText', {props}); 45return/*#__PURE__*/React.createElement(TextField,{type:"text",required:required,name:name,value:value,placeholder:placeholder,minLength:minLength,maxLength:maxLength,onChange:onChange})});TaskFormFieldTypeText.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,minLength:PropTypes.number,maxLength:PropTypes.number,onChange:PropTypes.func};TaskFormFieldTypeText.defaultProps={required:false,name:"",value:"",placeholder:null,minLength:null,maxLength:null,onChange:function onChange(name,value){}};TaskFormFieldTypeText.displayName="FieldType: Text";//completed: 46var TaskFormFieldTypeCheckbox=React.memo(function TaskFormFieldTypeCheckbox(props){var required=props.required,name=props.name,checked=props.checked,boxLabel=props.boxLabel,onChange=props.onChange;//useRenderDebug('TaskFormFieldTypeCheckbox', {props}); 47return/*#__PURE__*/React.createElement(CheckboxField,{required:required,name:name,checked:checked,boxLabel:boxLabel,onChange:onChange})});TaskFormFieldTypeCheckbox.propTypes={name:PropTypes.string,required:PropTypes.bool,checked:PropTypes.bool,boxLabel:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypeCheckbox.defaultProps={name:"",required:false,checked:false,boxLabel:null,onChange:function onChange(name,value){}};TaskFormFieldTypeCheckbox.displayName="FieldType: Checkbox";//completed: 48var TaskFormFieldTypeBoolean=React.memo(function TaskFormFieldTypeBoolean(props){var required=props.required,name=props.name,value=props.value,onChange=props.onChange,yesLabel=props.yesLabel,noLabel=props.noLabel,indexFromParent=props.indexFromParent;var options=React.useRef([{group:"_ungrouped_",options:[{value:true,label:yesLabel},{value:false,label:noLabel}]}]);//useRenderDebug('TaskFormFieldTypeBoolean', {props}); 49return/*#__PURE__*/React.createElement(RadioGroupField,{required:required,name:indexFromParent?"".concat(name,"-").concat(indexFromParent):name,value:value,onChange:onChange,options:options.current})});TaskFormFieldTypeBoolean.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.bool,yesLabel:PropTypes.string,noLabel:PropTypes.string,indexFromParent:PropTypes.number,onChange:PropTypes.func};TaskFormFieldTypeBoolean.defaultProps={required:false,name:"",value:null,yesLabel:"Yes",noLabel:"No",indexFromParent:null,onChange:function onChange(name,value){}};TaskFormFieldTypeBoolean.displayName="FieldType: Boolean";//completed: 50var TaskFormFieldTypeYesNo=React.memo(function TaskFormFieldTypeYesNo(props){var required=props.required,name=props.name,value=props.value,yesLabel=props.yesLabel,noLabel=props.noLabel,showYesExplanation=props.showYesExplanation,showNoExplanation=props.showNoExplanation,yesExplanationLabel=props.yesExplanationLabel,noExplanationLabel=props.noExplanationLabel,yesExplanationRequired=props.yesExplanationRequired,noExplanationRequired=props.noExplanationRequired,yesMaxChars=props.yesMaxChars,noMaxChars=props.noMaxChars,indexFromParent=props.indexFromParent,onChange=props.onChange;var onOptionChange=React.useCallback(function(n,v){var newValue=_.clone(value);_.set(newValue,"option",v);_.set(newValue,"explanation",value.option===v?value.explanation:"");onChange(name,newValue)},[name,value]);var onExplanationChange=React.useCallback(function(n,v){var newValue=_.clone(value);_.set(newValue,"explanation",v);onChange(name,newValue)},[name,value]);var explanationField=null;if(value.option!==null&&(value.option===1&&showYesExplanation||value.option===0&&showNoExplanation)){explanationField=/*#__PURE__*/React.createElement(TextAreaField,{required:value.option===1?yesExplanationRequired:value.option===0?noExplanationRequired:null,name:"".concat(name,"_explanation"),value:value.explanation,placeholder:value.option===1?yesExplanationLabel:noExplanationLabel,rows:4,maxLength:value.option===1?yesMaxChars:value.option===0?noMaxChars:null,onChange:onExplanationChange})}var options=React.useRef({group:"_ungrouped_",options:[{value:1,label:yesLabel},{value:0,label:noLabel}]});//useRenderDebug('TaskFormFieldTypeYesNo', {props}); 51return/*#__PURE__*/React.createElement("div",{className:"yes-no-field"},/*#__PURE__*/React.createElement(RadioGroupField,{required:required,name:indexFromParent?"".concat(name,"-").concat(indexFromParent,"-option"):"".concat(name,"-option"),value:value.option,onChange:onOptionChange,options:options.current}),explanationField)});TaskFormFieldTypeYesNo.propTypes={required:PropTypes.bool,name:PropTypes.string,value:Pro
51pTypes.object,yesLabel:PropTypes.string,noLabel:PropTypes.string,showYesExplanation:PropTypes.bool,showNoExplanation:PropTypes.bool,yesExplanationLabel:PropTypes.string,noExplanationLabel:PropTypes.string,yesExplanationRequired:PropTypes.bool,noExplanationRequired:PropTypes.bool,yesMaxChars:PropTypes.number,noMaxChars:PropTypes.number,indexFromParent:PropTypes.number,onChange:PropTypes.func};TaskFormFieldTypeYesNo.defaultProps={required:false,name:"",value:{option:null,explanation:""},yesLabel:"Yes",noLabel:"No",showYesExplanation:false,showNoExplanation:false,yesExplanationLabel:"Explain",noExplanationLabel:"Explain",yesExplanationRequired:false,noExplanationRequired:false,yesMaxChars:null,noMaxChars:null,indexFromParent:null,onChange:function onChange(name,value){}};TaskFormFieldTypeYesNo.displayName="FieldType: YesNo";//completed: 52var TaskFormFieldTypeDate=React.memo(function TaskFormFieldTypeDate(props){var required=props.required,name=props.name,value=props.value,placeholder=props.placeholder,minValue=props.minValue,maxValue=props.maxValue,onChange=props.onChange;//useRenderDebug('TaskFormFieldTypeDate', {props}); 53return/*#__PURE__*/React.createElement(DateField,{required:required,name:name,placeholder:placeholder,value:value,minValue:minValue,maxValue:maxValue,onChange:onChange})});TaskFormFieldTypeDate.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,minValue:PropTypes.string,maxValue:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypeDate.defaultProps={required:false,name:"",value:"",placeholder:null,minValue:null,maxValue:null,onChange:function onChange(name,value){}};TaskFormFieldTypeDate.displayName="FieldType: Date";//completed: 54var TaskFormFieldTypeTime=React.memo(function TaskFormFieldTypeTime(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,minValue=props.minValue,maxValue=props.maxValue,onChange=props.onChange;//useRenderDebug('TaskFormFieldTypeTime', {props}); 55return/*#__PURE__*/React.createElement(TextField,{type:"time",required:required,name:name,value:value,placeholder:placeholder,minValue:minValue,maxValue:maxValue,onChange:onChange})});TaskFormFieldTypeTime.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,minValue:PropTypes.string,maxValue:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypeTime.defaultProps={required:false,name:"",value:"",placeholder:null,minValue:null,maxValue:null,onChange:function onChange(name,value){}};TaskFormFieldTypeTime.displayName="FieldType: Time";//completed: 56var TaskFormFieldTypeDecimal=React.memo(function TaskFormFieldTypeDecimal(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,minValue=props.minValue,maxValue=props.maxValue,step=props.step,onChange=props.onChange;//useRenderDebug('TaskFormFieldTypeDecimal', {props}); 57return/*#__PURE__*/React.createElement(TextField,{type:"number",required:required,name:name,value:value,placeholder:placeholder,minValue:minValue,maxValue:maxValue,step:step,onChange:onChange})});TaskFormFieldTypeDecimal.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,minValue:PropTypes.number,maxValue:PropTypes.number,step:PropTypes.number,onChange:PropTypes.func};TaskFormFieldTypeDecimal.defaultProps={required:false,name:"",value:"",placeholder:null,minValue:null,maxValue:null,step:0.1,onChange:function onChange(name,value){}};TaskFormFieldTypeDecimal.displayName="FieldType: Decimal";//completed: 58var TaskFormFieldTypeNumber=React.memo(function TaskFormFieldTypeNumber(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,minValue=props.minValue,maxValue=props.maxValue,step=props.step,onChange=props.onChange;//useRenderDebug('TaskFormFieldTypeNumber', {props}); 59return/*#__PURE__*/React.createElement(TextField,{type:"number",required:required,name:name,value:value,placeholder:placeholder,minValue:minValue,maxValue:maxValue,step:step,onChange:onChange})});TaskFormFieldTypeNumber.propTypes={required:PropTypes.bool,name:PropTypes.string,value:Pro
59pTypes.string,placeholder:PropTypes.string,minValue:PropTypes.number,maxValue:PropTypes.number,step:PropTypes.number,onChange:PropTypes.func};TaskFormFieldTypeNumber.defaultProps={required:false,name:"",value:"",placeholder:null,minValue:null,maxValue:null,step:1,onChange:function onChange(name,value){}};TaskFormFieldTypeNumber.displayName="FieldType: Number";//completed: 60var TaskFormFieldTypeTextArea=React.memo(function TaskFormFieldTypeTextArea(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,minLength=props.minLength,maxLength=props.maxLength,rows=props.rows,onChange=props.onChange;//useRenderDebug('TaskFormFieldTypeTextArea', {props}); 61return/*#__PURE__*/React.createElement(TextAreaField,{type:"text",required:required,name:name,value:value,placeholder:placeholder,minLength:minLength,maxLength:maxLength,rows:rows,onChange:onChange})});TaskFormFieldTypeTextArea.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,minLength:PropTypes.number,maxLength:PropTypes.number,rows:PropTypes.number,onChange:PropTypes.func};TaskFormFieldTypeTextArea.defaultProps={required:false,name:"",value:"",placeholder:null,minLength:null,maxLength:null,rows:4,onChange:function onChange(name,value){}};TaskFormFieldTypeTextArea.displayName="FieldType: TextArea";//completed: 62var TaskFormFieldTypeHtml=React.memo(function TaskFormFieldTypeHtml(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,maxLength=props.maxLength,rows=props.rows,browserSpellcheck=props.browserSpellcheck,onChange=props.onChange;//useRenderDebug('TaskFormFieldTypeHtml', {props}); 63return/*#__PURE__*/React.createElement(HtmlEditorField,{required:required,name:name,value:value,placeholder:placeholder,maxLength:maxLength,browserSpellcheck:browserSpellcheck,rows:rows,onChange:onChange})});TaskFormFieldTypeHtml.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,maxLength:PropTypes.number,rows:PropTypes.number,browserSpellcheck:PropTypes.bool,onChange:PropTypes.func};TaskFormFieldTypeHtml.defaultProps={required:false,name:"",value:"",placeholder:null,maxLength:null,rows:4,browserSpellcheck:true,onChange:function onChange(name,value){}};TaskFormFieldTypeHtml.displayName="FieldType: Html";//completed: 64var TaskFormFieldTypeTextBox=React.memo(function TaskFormFieldTypeTextBox(props){var value=props.value;//useRenderDebug('TaskFormFieldTypeTextBox', {props}); 65if(!value)return null;return/*#__PURE__*/React.createElement("div",{dangerouslySetInnerHTML:{__html:value}})});TaskFormFieldTypeTextBox.propTypes={value:PropTypes.string};TaskFormFieldTypeTextBox.defaultProps={value:null};TaskFormFieldTypeTextBox.displayName="FieldType: Text Box";//completed: 66var TaskFormFieldTypeSelect=React.memo(function TaskFormFieldTypeSelect(props){var renderAs=props.renderAs,url=props.url,store=props.store,required=props.required,name=props.name,value=props.value,idPath=props.idPath,displayPath=props.displayPath,groupPath=props.groupPath,missingGroupingValue=props.missingGroupingValue,enableCollapsibleGroups=props.enableCollapsibleGroups,placeholder=props.placeholder,emptyListText=props.emptyListText,columns=props.columns,autoFlexColumns=props.autoFlexColumns,isMulti=props.isMulti,multiMin=props.multiMin,multiMax=props.multiMax,onChange=props.onChange;var _useAjaxLoader=useAjaxLoader(url,idPath,displayPath,groupPath,missingGroupingValue),_useAjaxLoader2=_slicedToArray(_useAjaxLoader,2),isLoading=_useAjaxLoader2[0],options=_useAjaxLoader2[1];var FieldClass=SelectField;if(renderAs==="multiselect")FieldClass=MultiSelectField;if(renderAs==="radiogroup")FieldClass=RadioGroupField;if(renderAs==="checkboxgroup")FieldClass=CheckboxGroupField;var parsedValue=value;if(_.includes(["multiselect","checkboxgroup"],renderAs)){parsedValue=_.filter(parsedValue,function(val){return val!==null})}//useRenderDebug('TaskFormFieldTypeSelect', {props}); 67if(store){var parsedStore=groupOptions(store,idPath,displayPath,groupPath,missingGroupingValue);return/*#__PURE__*/React.createElement(FieldClass,{name:name,required:required,value:parsedValue,placeholder:placeholder,emptyListText:emptyListText,columns:columns,autoFlex:autoFlexColumns,multiMin:isMulti&&_.isNumber(multiMin)?multiMin:null,multiMax:isMulti&&_.isNumber(multiMax)?multiMax:null,enableCollapsibleGroups:enableCollapsibleGroups,options:parsedStore,onChange:onChange})}return/*#__PURE__*/React.createElement(FieldClass,{name:name,required:required,value:parsedValue,placeholder:placeholder,emptyListText:emptyListText,columns:columns,autoFlex:autoFlexColumns,multiMin:isMulti&&_.isNumber(multiMin)?multiMin:null,multiMax:isMulti&&_.isNumber(multiMax)?multiMax:null,onChange:onChange,enableCollapsibleGroups:enableCollapsibleGroups,options:options,isLoading:isLoading})});TaskFormFieldTypeSelect.propTypes={renderAs:PropTypes.oneOf(["select","combo","multiselect","radiogroup","checkboxgroup"]),url:PropTypes.string,
67store:PropTypes.array,required:PropTypes.bool,name:PropTypes.string,value:PropTypes.any,idPath:PropTypes.string.isRequired,displayPath:PropTypes.string.isRequired,groupPath:PropTypes.string,missingGroupingValue:PropTypes.string,enableCollapsibleGroups:PropTypes.bool,placeholder:PropTypes.string,emptyListText:PropTypes.string,columns:PropTypes.number,autoFlexColumns:PropTypes.bool,isMulti:PropTypes.bool,multiMin:PropTypes.number,multiMax:PropTypes.number,onChange:PropTypes.func};TaskFormFieldTypeSelect.defaultProps={renderAs:"select",url:null,store:null,required:false,name:"",value:"",idPath:"id",displayPath:null,groupPath:null,missingGroupingValue:"Other",enableCollapsibleGroups:false,emptyListText:"No Records",placeholder:null,columns:null,autoFlexColumns:true,isMulti:false,multiMin:null,multiMax:null,onChange:function onChange(name,value){}};TaskFormFieldTypeSelect.displayName="FieldType: Select";//completed: 68var TaskFormFieldTypeDatagroup=React.memo(function TaskFormFieldTypeDatagroup(props){var renderAs=props.renderAs,required=props.required,value=props.value,name=props.name,idPath=props.idPath,displayPath=props.displayPath,groupPath=props.groupPath,placeholder=props.placeholder,emptyListText=props.emptyListText,datagroupAlias=props.datagroupAlias,datagroupParentAlias=props.datagroupParentAlias,parentFilterBy=props.parentFilterBy,orderBy=props.orderBy,orderDirection=props.orderDirection,columns=props.columns,autoFlexColumns=props.autoFlexColumns,isMulti=props.isMulti,multiMin=props.multiMin,multiMax=props.multiMax,indexFromParent=props.indexFromParent,onChange=props.onChange;var _React$useState29=React.useState(null),_React$useState30=_slicedToArray(_React$useState29,2),url=_React$useState30[0],setUrl=_React$useState30[1];var _React$useState31=React.useState(null),_React$useState32=_slicedToArray(_React$useState31,2),parentDatagroup=_React$useState32[0],setParentDatagroup=_React$useState32[1];var _React$useState33=React.useState(null),_React$useState34=_slicedToArray(_React$useState33,2),parentDatagroupValue=_React$useState34[0],setParentDatagroupValue=_React$useState34[1];var _useAjaxLoader3=useAjaxLoader(url,idPath,displayPath,groupPath),_useAjaxLoader4=_slicedToArray(_useAjaxLoader3,2),isLoading=_useAjaxLoader4[0],options=_useAjaxLoader4[1];var onParentChange=React.useCallback(function(event){var value=Boolean(event.target.dataset.value)?event.target.dataset.value:null;setParentDatagroupValue(value)},[onChange]);React.useEffect(function(){var url=["/p/Datagroups/admin/DatagroupValues/getAll.json?datagroup_alias=".concat(datagroupAlias,"&deleted=0&normalize=1")];if(orderBy){var order=JSON.stringify([{property:orderBy,direction:orderDirection}]);url.push("sort=".concat(order))}if(parentFilterBy){var filter=JSON.stringify([{property:parentFilterBy,value:_.split(parentDatagroupValue,",")}]);url.push("filter=".concat(filter))}if(parentFilterBy&&!Boolean(parentDatagroupValue)){url=null}if(url)url=_.join(url,"&");setUrl(url)},[datagroupAlias,orderBy,orderDirection,parentFilterBy,parentDatagroup,parentDatagroupValue]);React.useEffect(function(){if(datagroupParentAlias){var el=document.querySelector("*[data-datagroup-alias=\"".concat(datagroupParentAlias,"-").concat(indexFromParent,"\"]"));setParentDatagroup(el);if(el){// Seed the parent value from the element right away: a hidden parent 69// (value carried by a stub element) never fires `parentchange`, and a 70// visible one only fires it after mounting. 71setParentDatagroupValue(Boolean(el.dataset.value)?el.dataset.value:null);el.addEventListener("parentchange",onParentChange);return function(){el.removeEventListener("parentchange",onParentChange)}}}},[datagroupParentAlias]);var FieldClass=SelectField;if(renderAs==="multiselect")FieldClass=MultiSelectField;if(renderAs==="radiogroup")FieldClass=RadioGroupField;if(renderAs==="checkboxgroup")FieldClass=CheckboxGroupField;var parsedValue=value;if(_.includes(["multiselect","checkboxgroup"],renderAs)){parsedValue=_.filter(parsedValue,function(val){return val!==null})}// useRenderDebug(`TaskFormFieldTypeDatagroup|${name}`, {props, url, parentDatagroup, parentDatagroupValue, isLoading, options}); 72return/*#__PURE__*/React.createElement(FieldClass,{name:indexFromParent?"".concat(name,"-").concat(indexFromParent):name,required:required,value:parsedValue,placeholder:placeholder,emptyListText:emptyListText,columns:columns,autoFlex:autoFlexColumns,multiMin:isMulti&&_.isNumber(multiMin)?multiMin:null,multiMax:isMulti&&_.isNumber(multiMax)?multiMax:null,datagroupAlias:"".concat(datagroupAlias,"-").concat(indexFromParent),onChange:onChange,options:options,isLoading:isLoading})});TaskFormFieldTypeDatagroup.propTypes={renderAs:PropTypes.oneOf(["combo","multiselect","radiogroup","checkboxgroup"]),required:PropTypes.bool,name:PropTypes.string,value:Pro
72pTypes.any,idPath:PropTypes.string.isRequired,displayPath:PropTypes.string.isRequired,groupPath:PropTypes.string,placeholder:PropTypes.string,emptyListText:PropTypes.string,datagroupAlias:PropTypes.string.isRequired,datagroupParentAlias:PropTypes.string,parentFilterBy:PropTypes.string,orderBy:PropTypes.string,orderDirection:PropTypes.oneOf(["asc","desc"]),columns:PropTypes.number,autoFlexColumns:PropTypes.bool,isMulti:PropTypes.bool,multiMin:PropTypes.number,multiMax:PropTypes.number,indexFromParent:PropTypes.number,onChange:PropTypes.func};TaskFormFieldTypeDatagroup.defaultProps={renderAs:"combo",required:false,name:"",value:"",idPath:"id",displayPath:null,groupPath:null,emptyListText:"No Records",datagroupAlias:null,datagroupParentAlias:null,parentFilterBy:null,orderBy:null,orderDirection:"asc",placeholder:null,columns:null,autoFlexColumns:true,isMulti:false,multiMin:null,multiMax:null,indexFromParent:null,onChange:function onChange(name,value){}};TaskFormFieldTypeDatagroup.displayName="FieldType: Datagroup";//completed: 73var TaskFormFieldTypeEmail=React.memo(function TaskFormFieldTypeEmail(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,onChange=props.onChange;//useRenderDebug('TaskFormFieldTypeEmail', {props}); 74return/*#__PURE__*/React.createElement(TextField,{type:"email",required:required,name:name,value:value,placeholder:placeholder,onChange:onChange})});TaskFormFieldTypeEmail.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypeEmail.defaultProps={required:false,name:"",value:"",placeholder:null,onChange:function onChange(name,value){}};TaskFormFieldTypeEmail.displayName="FieldType: Email";//completed: 75var TaskFormFieldTypeBirthday=React.memo(function TaskFormFieldTypeBirthday(props){var required=props.required,name=props.name,value=props.value,placeholder=props.placeholder,minValue=props.minValue,maxValue=props.maxValue,onChange=props.onChange;//useRenderDebug('TaskFormFieldTypeBirthday', {props}); 76return/*#__PURE__*/React.createElement(DateField,{required:required,name:name,placeholder:placeholder,value:value,minValue:minValue,maxValue:maxValue,onChange:onChange})});TaskFormFieldTypeBirthday.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,minValue:PropTypes.string,maxValue:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypeBirthday.defaultProps={required:false,name:"",value:"",placeholder:null,minValue:null,maxValue:null,onChange:function onChange(name,value){}};TaskFormFieldTypeBirthday.displayName="FieldType: Birthday";//completed: 77var TaskFormFieldTypeGender=React.memo(function TaskFormFieldTypeGender(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,onChange=props.onChange;var options=React.useRef([{group:"_ungrouped_",options:[{value:"m",displayValue:"Male"},{value:"f",displayValue:"Female"}]}]);//useRenderDebug('TaskFormFieldTypeGender', {props}); 78return/*#__PURE__*/React.createElement(SelectField,{required:required,name:name,value:value,placeholder:placeholder,options:options.current,onChange:onChange})});TaskFormFieldTypeGender.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypeGender.defaultProps={required:false,name:"",value:"",placeholder:null,onChange:function onChange(name,value){}};TaskFormFieldTypeGender.displayName="FieldType: Gender";//completed: 79var TaskFormFieldTypeEmailType=React.memo(function TaskFormFieldTypePhoneType(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,onChange=props.onChange;var _useAjaxLoader5=useAjaxLoader("/p/People/admin/PersonEmailTypes/getAll.json","id","label"),_useAjaxLoader6=_slicedToArray(_useAjaxLoader5,2),isLoading=_useAjaxLoader6[0],options=_useAjaxLoader6[1];//useRenderDebug('TaskFormFieldTypePhoneType', {props}); 80return/*#__PURE__*/React.createElement(SelectField,{required:required,name:name,value:value,placeholder:placeholder,emptyListText:"No email types available",onCh
80ange:onChange,options:options,isLoading:isLoading})});TaskFormFieldTypeEmailType.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.any,placeholder:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypeEmailType.defaultProps={required:false,name:"",value:"",placeholder:null,onChange:function onChange(name,value){}};TaskFormFieldTypeEmailType.displayName="FieldType: Email Type";//completed: 81var TaskFormFieldTypeAddressCountry=React.memo(function TaskFormFieldTypeAddressCountry(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,onChange=props.onChange;var _useAjaxLoader7=useAjaxLoader("/p/Locations/admin/LocationCountries/getAll.json?sort=name","id","name"),_useAjaxLoader8=_slicedToArray(_useAjaxLoader7,2),isLoading=_useAjaxLoader8[0],options=_useAjaxLoader8[1];//useRenderDebug('TaskFormFieldTypeAddressCountry', {props, isLoading, options}); 82return/*#__PURE__*/React.createElement(SelectField,{required:required,name:name,value:value,placeholder:placeholder,emptyListText:"No countries available",onChange:onChange,options:options,isLoading:isLoading})});TaskFormFieldTypeAddressCountry.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.any,placeholder:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypeAddressCountry.defaultProps={required:false,name:"",value:"",placeholder:null,onChange:function onChange(name,value){}};TaskFormFieldTypeAddressCountry.displayName="FieldType: Address Country";//completed: 83var TaskFormFieldTypeAddressState=React.memo(function TaskFormFieldTypeAddressState(props){var countryId=props.countryId,required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,onChange=props.onChange;var previousCountryId=React.useRef(countryId);var _useAjaxLoader9=useAjaxLoader(countryId?"/p/Locations/admin/LocationStates/getAll.json?sort=name&location_country_id=".concat(countryId):null,"id","name"),_useAjaxLoader10=_slicedToArray(_useAjaxLoader9,2),isLoading=_useAjaxLoader10[0],options=_useAjaxLoader10[1];React.useEffect(function(){if(!countryId){onChange(name,previousCountryId.current!==null&&previousCountryId.current!==countryId?null:value)}if(countryId!==previousCountryId.current){previousCountryId.current=countryId}},[countryId]);//useRenderDebug('TaskFormFieldTypeAddressState', {props}); 84return/*#__PURE__*/React.createElement(SelectField,{required:required,name:name,value:value,placeholder:placeholder,emptyListText:countryId?"No states available for selected country":"Select a country to load states",onChange:onChange,options:options,isLoading:isLoading})});TaskFormFieldTypeAddressState.propTypes={countryId:PropTypes.any,required:PropTypes.bool,name:PropTypes.string,value:PropTypes.any,placeholder:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypeAddressState.defaultProps={countryId:null,required:false,name:"",value:"",placeholder:null,onChange:function onChange(name,value){}};TaskFormFieldTypeAddressState.displayName="FieldType: Address State";//completed: 85var TaskFormFieldTypeAddressType=React.memo(function TaskFormFieldTypeAddressType(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,onChange=props.onChange;var _useAjaxLoader11=useAjaxLoader("/p/People/admin/PersonAddressTypes/getAll.json","id","label"),_useAjaxLoader12=_slicedToArray(_useAjaxLoader11,2),isLoading=_useAjaxLoader12[0],options=_useAjaxLoader12[1];//useRenderDebug('TaskFormFieldTypeAddressType', {props}); 86return/*#__PURE__*/React.createElement(SelectField,{required:required,name:name,value:value,placeholder:placeholder,emptyListText:"No address types available",onChange:onChange,options:options,isLoading:isLoading})});TaskFormFieldTypeAddressType.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.any,placeholder:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypeAddressType.defaultProps={required:false,name:"",value:"",placeholder:null,onChange:function onChange(name,value){}};TaskFormFieldTypeAddressType.displayName="FieldType: Address Type";//completed: 87var TaskFormFieldTypePhoneDefault=React.memo(function TaskFormFieldTypePhoneDefault(props){var required=props.required,value=props.value,
87name=props.name,placeholder=props.placeholder,onChange=props.onChange;var change=React.useCallback(function(n,v){onChange(name,v==="1")},[onChange,name]);var options=React.useRef([{group:"_ungrouped_",options:[{value:"1",displayValue:"Yes"},{value:"0",displayValue:"No"}]}]);//useRenderDebug('TaskFormFieldTypePhoneDefault', {props}); 88return/*#__PURE__*/React.createElement(SelectField,{required:required,name:name,value:value===true?"1":value===false?"0":"",placeholder:placeholder,showEmptyOption:false,options:options.current,onChange:change})});TaskFormFieldTypePhoneDefault.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.any,placeholder:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypePhoneDefault.defaultProps={required:false,name:"",value:"",placeholder:null,onChange:function onChange(name,value){}};TaskFormFieldTypePhoneDefault.displayName="FieldType: Phone Default";//completed: 89var TaskFormFieldTypePhoneType=React.memo(function TaskFormFieldTypePhoneType(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,onChange=props.onChange;var _useAjaxLoader13=useAjaxLoader("/p/People/admin/PersonPhoneTypes/getAll.json","id","label"),_useAjaxLoader14=_slicedToArray(_useAjaxLoader13,2),isLoading=_useAjaxLoader14[0],options=_useAjaxLoader14[1];//useRenderDebug('TaskFormFieldTypePhoneType', {props}); 90return/*#__PURE__*/React.createElement(SelectField,{required:required,name:name,value:value,placeholder:placeholder,emptyListText:"No phone types available",onChange:onChange,options:options,isLoading:isLoading})});TaskFormFieldTypePhoneType.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.any,placeholder:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypePhoneType.defaultProps={required:false,name:"",value:"",placeholder:null,onChange:function onChange(name,value){}};TaskFormFieldTypePhoneType.displayName="FieldType: Phone Type";//completed: 91var TaskFormFieldTypeInstantMessengerType=React.memo(function TaskFormFieldTypeInstantMessengerType(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,onChange=props.onChange;var _useAjaxLoader15=useAjaxLoader("/p/People/admin/PersonInstantMessengerTypes/getAll.json","id","label"),_useAjaxLoader16=_slicedToArray(_useAjaxLoader15,2),isLoading=_useAjaxLoader16[0],options=_useAjaxLoader16[1];//useRenderDebug('TaskFormFieldTypeInstantMessengerType', {props}); 92return/*#__PURE__*/React.createElement(SelectField,{required:required,name:name,value:value,placeholder:placeholder,emptyListText:"No instant messenger types available",onChange:onChange,options:options,isLoading:isLoading})});TaskFormFieldTypeInstantMessengerType.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypeInstantMessengerType.defaultProps={required:false,name:"",value:"",placeholder:null,onChange:function onChange(name,value){}};TaskFormFieldTypeInstantMessengerType.displayName="FieldType: Instant Messenger Type";//completed: 93var TaskFormFieldTypeSocialNetworkType=React.memo(function TaskFormFieldTypeSocialNetworkType(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,onChange=props.onChange;var _useAjaxLoader17=useAjaxLoader("/p/People/admin/PersonSocialMediaTypes/getAll.json","id","label"),_useAjaxLoader18=_slicedToArray(_useAjaxLoader17,2),isLoading=_useAjaxLoader18[0],options=_useAjaxLoader18[1];//useRenderDebug('TaskFormFieldTypeSocialNetworkType', {props}); 94return/*#__PURE__*/React.createElement(SelectField,{required:required,name:name,value:value,placeholder:placeholder,emptyListText:"No social media types available",onChange:onChange,options:options,isLoading:isLoading})});TaskFormFieldTypeSocialNetworkType.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypeSocialNetworkType.defaultProps={required:false,name:"",value:"",placeholder:null,onChange:function onChange(name,value){}};TaskFormFieldTypeSocialNetworkType.displayName="FieldType: Social Network Type";//completed: 95var TaskFormFieldTypeHouseholdMember=React.memo(function TaskFormFieldTypeHouseholdMember(props){var required=props.required,value=props.value,
95name=props.name,placeholder=props.placeholder,onChange=props.onChange;var _useAjaxLoader19=useAjaxLoader("/p/People/People/getHouseholdMembers.json","id","fullname"),_useAjaxLoader20=_slicedToArray(_useAjaxLoader19,2),isLoading=_useAjaxLoader20[0],options=_useAjaxLoader20[1];//useRenderDebug('TaskFormFieldTypeSocialNetworkType', {props}); 96return/*#__PURE__*/React.createElement(SelectField,{required:required,name:name,value:value,placeholder:placeholder,emptyListText:"No members in your household",onChange:onChange,options:options,isLoading:isLoading})});TaskFormFieldTypeHouseholdMember.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.string,placeholder:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypeHouseholdMember.defaultProps={required:false,name:"",value:"",placeholder:null,onChange:function onChange(name,value){}};TaskFormFieldTypeHouseholdMember.displayName="FieldType: Household Member";var SearchableSelectField=React.memo(function SearchableSelectField(props){var name=props.name,value=props.value,url=props.url,placeholder=props.placeholder,required=props.required,onChange=props.onChange,minChars=props.minChars,debounceTimeout=props.debounceTimeout,emptyListText=props.emptyListText,displayValueRenderer=props.displayValueRenderer,optionRenderer=props.optionRenderer,urlParams=props.urlParam
96s;var _React$useState35=React.useState(null),_React$useState36=_slicedToArray(_React$useState35,2),selectedRecord=_React$useState36[0],setSelectedRecord=_React$useState36[1];var _React$useState37=React.useState(""),_React$useState38=_slicedToArray(_React$useState37,2),query=_React$useState38[0],setQuery=_React$useState38[1];var _React$useState39=React.useState([]),_React$useState40=_slicedToArray(_React$useState39,2),options=_React$useState40[0],setOptions=_React$useState40[1];var _React$useState41=React.useState(false),_React$useState42=_slicedToArray(_React$useState41,2),isLoading=_React$useState42[0],setIsLoading=_React$useState42[1];var _React$useState43=React.useState(false),_React$useState44=_slicedToArray(_React$useState43,2),isOpen=_React$useState44[0],setIsOpen=_React$useState44[1];var rootRef=React.useRef(null);useOnClickOutside(rootRef,function(){setQuery("");setOptions([]);setIsOpen(false)});var fetchSelectedRecord=React.useCallback(function(value){fetch("".concat(url,"?id=").concat(value,"&").concat(urlParams)).then(function(res){return res.ok?res.json():Promise.reject(res)}).then(function(data){var records=(data.records||[]).map(function(record){return record.Person});setSelectedRecord(records[0])})["catch"](function(error){return console.error("Failed to fetch data:",error)})["finally"](function(){return setIsLoading(false)})},[url,urlParams]);var fetchRecords=React.useCallback(_.debounce(function(query){var queryParams="query=".concat(encodeURIComponent(query),"&").concat(urlParams);setIsLoading(true);fetch("".concat(url,"?").concat(queryParams)).then(function(res){return res.ok?res.json():Promise.reject(res)}).then(function(data){var records=(data.records||[]).map(function(record){return record.Person});setOptions(records)})["catch"](function(error){return console.error("Failed to fetch data:",error)})["finally"](function(){return setIsLoading(false)})},debounceTimeout),[url,urlParams,debounceTimeout]);React.useEffect(function(){if(value){fetchSelectedRecord(value)}},[value,fetchSelectedRecord]);var handleInputChange=function handleInputChange(event){var newQuery=event.target.value;setQuery(newQuery);if(!newQuery.length){fetchRecords("")}else if(newQuery.length>minChars){fetchRecords(newQuery)}};var handleInputFocus=React.useCallback(function(event){fetchRecords("");setIsOpen(true)},[]);var handleOptionClick=React.useCallback(function(option){setQuery("");setSelectedRecord(option);setIsOpen(false);onChange(name,option.id)},[name,onChange]);return/*#__PURE__*/React.createElement("div",{className:"searchable-select",ref:rootRef},/*#__PURE__*/React.createElement("input",{type:"text",value:isOpen?query:selectedRecord?displayValueRenderer(selectedRecord):"",required:required,onChange:handleInputChange,onFocus:handleInputFocus,placeholder:placeholder,autoComplete:"off"}),isOpen&&/*#__PURE__*/React.createElement("ul",{className:"options-list"},isLoading&&/*#__PURE__*/React.createElement("li",{className:"loading"},"Loading..."),!isLoading&&!options.length&&/*#__PURE__*/React.createElement("li",{className:"no-options"},emptyListText),options.map(function(option){return/*#__PURE__*/React.createElement("li",{key:option.id,onMouseDown:function onMouseDown(){return handleOptionClick(option)}},optionRenderer(option))})))});SearchableSelectField.propTypes={name:PropTypes.string.isRequired,value:PropTypes.oneOfType([PropTypes.string,PropTypes.number]),url:PropTypes.string.isRequired,urlParams:PropTypes.string,placeholder:PropTypes.string,emptyListText:PropTypes.string,required:PropTypes.bool,minChars:PropTypes.number,debounceTimeout:PropTypes.number,onChange:PropTypes.func.isRequired,displayValueRenderer:PropTypes.func.isRequired,optionRenderer:PropTypes.func.isRequired};SearchableSelectField.defaultProps={value:"",placeholder:"Search...",emptyListText:"No results found",required:false,minChars:2,debounceTimeout:300,urlParam
96s:""};//completed: 97var TaskFormFieldTypePerson=React.memo(function TaskFormFieldTypePerson(props){var required=props.required,value=props.value,name=props.name,placeholder=props.placeholder,onChange=props.onChange;var displayValueRenderer=React.useCallback(function(person){return"".concat(person.fullname).concat(person.email?" [".concat(person.email,"]"):"")},[]);var optionRenderer=React.useCallback(function(person){return/*#__PURE__*/React.createElement("span",null,person.fullname,person.email&&/*#__PURE__*/React.createElement("span",{style:{fontSize:"0.8em",color:"#888",marginLeft:"8px"}},"[",person.email,"]"))},[]);return/*#__PURE__*/React.createElement(SearchableSelectField,{required:required,name:name,value:value,placeholder:placeholder||"Search for a person...",onChange:onChange,url:"/p/People/People/getList.json",urlParams:"limit=20",displayValueRenderer:displayValueRenderer,optionRenderer:optionRenderer})});// The rest of the file remains the same 98TaskFormFieldTypePerson.propTypes={required:PropTypes.bool,name:PropTypes.string,value:PropTypes.oneOfType([PropTypes.string,PropTypes.number]),placeholder:PropTypes.string,onChange:PropTypes.func};TaskFormFieldTypePerson.defaultProps={required:false,name:"",value:"",placeholder:null,onChange:function onChange(){}};TaskFormFieldTypePerson.displayName="FieldType: Person"; 99 100//# sourceMappingURL=TaskFormFieldTypes.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.