df-ae-forms-package 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -7,5 +7,5 @@
7
7
  *
8
8
  * This source code is licensed under the MIT license found in the
9
9
  * LICENSE file in the root directory of this source tree.
10
- */"production"===process.env.NODE_ENV?l.exports=function(){if(e)return c;e=1;var s=t,n=Symbol.for("react.element"),i=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,r=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function l(e,t,s){var i,l={},c=null,d=null;for(i in void 0!==s&&(c=""+s),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(d=t.ref),t)a.call(t,i)&&!o.hasOwnProperty(i)&&(l[i]=t[i]);if(e&&e.defaultProps)for(i in t=e.defaultProps)void 0===l[i]&&(l[i]=t[i]);return{$$typeof:n,type:e,key:c,ref:d,props:l,_owner:r.current}}return c.Fragment=i,c.jsx=l,c.jsxs=l,c}():l.exports=(d||(d=1,"production"!==process.env.NODE_ENV&&function(){var e,s=t,n=Symbol.for("react.element"),i=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),c=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),h=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),b=Symbol.for("react.offscreen"),g=Symbol.iterator,v=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function x(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),n=1;n<t;n++)s[n-1]=arguments[n];!function(e,t,s){var n=v.ReactDebugCurrentFrame.getStackAddendum();""!==n&&(t+="%s",s=s.concat([n]));var i=s.map(function(e){return String(e)});i.unshift("Warning: "+t),Function.prototype.apply.call(console[e],console,i)}("error",e,s)}function y(e){return e.displayName||"Context"}function j(e){if(null==e)return null;if("number"==typeof e.tag&&x("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),"function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case a:return"Fragment";case i:return"Portal";case o:return"Profiler";case r:return"StrictMode";case m:return"Suspense";case p:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case c:return y(e)+".Consumer";case l:return y(e._context)+".Provider";case d:return function(e,t,s){var n=e.displayName;if(n)return n;var i=t.displayName||t.name||"";return""!==i?s+"("+i+")":s}(e,e.render,"ForwardRef");case h:var t=e.displayName||null;return null!==t?t:j(e.type)||"Memo";case f:var s=e,n=s._payload,u=s._init;try{return j(u(n))}catch(e){return null}}return null}e=Symbol.for("react.module.reference");var C,N,S,w,k,E,$,T=Object.assign,A=0;function I(){}I.__reactDisabledLog=!0;var R,D=v.ReactCurrentDispatcher;function L(e,t,s){if(void 0===R)try{throw Error()}catch(e){var n=e.stack.trim().match(/\n( *(at )?)/);R=n&&n[1]||""}return"\n"+R+e}var F,V=!1,O="function"==typeof WeakMap?WeakMap:Map;function M(e,t){if(!e||V)return"";var s,n=F.get(e);if(void 0!==n)return n;V=!0;var i,a=Error.prepareStackTrace;Error.prepareStackTrace=void 0,i=D.current,D.current=null,function(){if(0===A){C=console.log,N=console.info,S=console.warn,w=console.error,k=console.group,E=console.groupCollapsed,$=console.groupEnd;var e={configurable:!0,enumerable:!0,value:I,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}A++}();try{if(t){var r=function(){throw Error()};if(Object.defineProperty(r.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(r,[])}catch(e){s=e}Reflect.construct(e,[],r)}else{try{r.call()}catch(e){s=e}e.call(r.prototype)}}else{try{throw Error()}catch(e){s=e}e()}}catch(t){if(t&&s&&"string"==typeof t.stack){for(var o=t.stack.split("\n"),l=s.stack.split("\n"),c=o.length-1,d=l.length-1;c>=1&&d>=0&&o[c]!==l[d];)d--;for(;c>=1&&d>=0;c--,d--)if(o[c]!==l[d]){if(1!==c||1!==d)do{if(c--,--d<0||o[c]!==l[d]){var u="\n"+o[c].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),"function"==typeof e&&F.set(e,u),u}}while(c>=1&&d>=0);break}}}finally{V=!1,D.current=i,function(){if(0===--A){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:T({},e,{value:C}),info:T({},e,{value:N}),warn:T({},e,{value:S}),error:T({},e,{value:w}),group:T({},e,{value:k}),groupCollapsed:T({},e,{value:E}),groupEnd:T({},e,{value:$})})}A<0&&x("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}(),Error.prepareStackTrace=a}var m=e?e.displayName||e.name:"",p=m?L(m):"";return"function"==typeof e&&F.set(e,p),p}function q(e,t,s){if(null==e)return"";if("function"==typeof e)return M(e,!(!(n=e.prototype)||!n.isReactComponent));var n;if("string"==typeof e)return L(e);switch(e){case m:return L("Suspense");case p:return L("SuspenseList")}if("object"==typeof e)switch(e.$$typeof){case d:return M(e.render,!1);case h:return q(e.type,t,s);case f:var i=e,a=i._payload,r=i._init;try{return q(r(a),t,s)}catch(e){}}return""}F=new O;var P=Object.prototype.hasOwnProperty,z={},_=v.ReactDebugCurrentFrame;function W(e){if(e){var t=e._owner,s=q(e.type,e._source,t?t.type:null);_.setExtraStackFrame(s)}else _.setExtraStackFrame(null)}var B=Array.isArray;function U(e){return B(e)}function J(e){return""+e}function H(e){if(function(e){try{return J(e),!1}catch(e){return!0}}(e))return x("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",function(e){return"function"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object"}(e)),J(e)}var G,Y,X,K=v.ReactCurrentOwner,Z={key:!0,ref:!0,__self:!0,__source:!0};function Q(e,t,s,i,a){var r,o={},l=null,c=null;for(r in void 0!==s&&(H(s),l=""+s),function(e){if(P.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return void 0!==e.key}(t)&&(H(t.key),l=""+t.key),function(e){if(P.call(e,"ref")){var t=Object.getOwnPropertyDescriptor(e,"ref").get;if(t&&t.isReactWarning)return!1}return void 0!==e.ref}(t)&&(c=t.ref,function(e,t){if("string"==typeof e.ref&&K.current&&t&&K.current.stateNode!==t){var s=j(K.current.type);X[s]||(x('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',j(K.current.type),e.ref),X[s]=!0)}}(t,a)),t)P.call(t,r)&&!Z.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps){var d=e.defaultProps;for(r in d)void 0===o[r]&&(o[r]=d[r])}if(l||c){var u="function"==typeof e?e.displayName||e.name||"Unknown":e;l&&function(e,t){var s=function(){G||(G=!0,x("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};s.isReactWarning=!0,Object.defineProperty(e,"key",{get:s,configurable:!0})}(o,u),c&&function(e,t){var s=function(){Y||(Y=!0,x("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};s.isReactWarning=!0,Object.defineProperty(e,"ref",{get:s,configurable:!0})}(o,u)}return function(e,t,s,i,a,r,o){var l={$$typeof:n,type:e,key:t,ref:s,props:o,_owner:r,_store:{}};return Object.defineProperty(l._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(l,"_self",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.defineProperty(l,"_source",{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.freeze&&(Object.freeze(l.props),Object.freeze(l)),l}(e,l,c,a,i,K.current,o)}X={};var ee,te=v.ReactCurrentOwner,se=v.ReactDebugCurrentFrame;function ne(e){if(e){var t=e._owner,s=q(e.type,e._source,t?t.type:null);se.setExtraStackFrame(s)}else se.setExtraStackFrame(null)}function ie(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}function ae(){if(te.current){var e=j(te.current.type);if(e)return"\n\nCheck the render method of `"+e+"`."}return""}ee=!1;var re={};function oe(e,t){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var s=function(e){var t=ae();if(!t){var s="string"==typeof e?e:e.displayName||e.name;s&&(t="\n\nCheck the top-level render call using <"+s+">.")}return t}(t);if(!re[s]){re[s]=!0;var n="";e&&e._owner&&e._owner!==te.current&&(n=" It was passed a child from "+j(e._owner.type)+"."),ne(e),x('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',s,n),ne(null)}}}function le(e,t){if("object"==typeof e)if(U(e))for(var s=0;s<e.length;s++){var n=e[s];ie(n)&&oe(n,t)}else if(ie(e))e._store&&(e._store.validated=!0);else if(e){var i=function(e){if(null===e||"object"!=typeof e)return null;var t=g&&e[g]||e["@@iterator"];return"function"==typeof t?t:null}(e);if("function"==typeof i&&i!==e.entries)for(var a,r=i.call(e);!(a=r.next()).done;)ie(a.value)&&oe(a.value,t)}}function ce(e){var t,s=e.type;if(null!=s&&"string"!=typeof s){if("function"==typeof s)t=s.propTypes;else{if("object"!=typeof s||s.$$typeof!==d&&s.$$typeof!==h)return;t=s.propTypes}if(t){var n=j(s);!function(e,t,s,n,i){var a=Function.call.bind(P);for(var r in e)if(a(e,r)){var o=void 0;try{if("function"!=typeof e[r]){var l=Error((n||"React class")+": "+s+" type `"+r+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[r]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw l.name="Invariant Violation",l}o=e[r](t,r,n,s,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(e){o=e}!o||o instanceof Error||(W(i),x("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",n||"React class",s,r,typeof o),W(null)),o instanceof Error&&!(o.message in z)&&(z[o.message]=!0,W(i),x("Failed %s type: %s",s,o.message),W(null))}}(t,e.props,"prop",n,e)}else void 0===s.PropTypes||ee||(ee=!0,x("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",j(s)||"Unknown"));"function"!=typeof s.getDefaultProps||s.getDefaultProps.isReactClassApproved||x("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}var de={};function ue(t,s,i,u,g,v){var y=function(t){return"string"==typeof t||"function"==typeof t||t===a||t===o||t===r||t===m||t===p||t===b||"object"==typeof t&&null!==t&&(t.$$typeof===f||t.$$typeof===h||t.$$typeof===l||t.$$typeof===c||t.$$typeof===d||t.$$typeof===e||void 0!==t.getModuleId)}(t);if(!y){var C="";(void 0===t||"object"==typeof t&&null!==t&&0===Object.keys(t).length)&&(C+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var N,S=function(e){return void 0!==e?"\n\nCheck your code at "+e.fileName.replace(/^.*[\\\/]/,"")+":"+e.lineNumber+".":""}(g);C+=S||ae(),null===t?N="null":U(t)?N="array":void 0!==t&&t.$$typeof===n?(N="<"+(j(t.type)||"Unknown")+" />",C=" Did you accidentally export a JSX literal instead of a component?"):N=typeof t,x("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",N,C)}var w=Q(t,s,i,g,v);if(null==w)return w;if(y){var k=s.children;if(void 0!==k)if(u)if(U(k)){for(var E=0;E<k.length;E++)le(k[E],t);Object.freeze&&Object.freeze(k)}else x("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else le(k,t)}if(P.call(s,"key")){var $=j(t),T=Object.keys(s).filter(function(e){return"key"!==e}),A=T.length>0?"{key: someKey, "+T.join(": ..., ")+": ...}":"{key: someKey}";de[$+A]||(x('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',A,$,T.length>0?"{"+T.join(": ..., ")+": ...}":"{}",$),de[$+A]=!0)}return t===a?function(e){for(var t=Object.keys(e.props),s=0;s<t.length;s++){var n=t[s];if("children"!==n&&"key"!==n){ne(e),x("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",n),ne(null);break}}null!==e.ref&&(ne(e),x("Invalid attribute `ref` supplied to `React.Fragment`."),ne(null))}(w):ce(w),w}var me=function(e,t,s){return ue(e,t,s,!1)},pe=function(e,t,s){return ue(e,t,s,!0)};u.Fragment=a,u.jsx=me,u.jsxs=pe}()),u);var m=l.exports;class p{constructor(){}static getInstance(){return p.instance||(p.instance=new p),p.instance}getAvailableComponentsForConditional(e,t){if(!e||!Array.isArray(e))return[];return e.filter(e=>!t||e.id!==t).map(e=>({id:e.id,label:e.basic?.label||e.id,type:e.name,key:e.id})).sort((e,t)=>e.label.localeCompare(t.label))}getApplicableOperators(e){switch(e){case"text-input":case"email-input":case"textarea":return["equals","notEquals","contains","notContains","isEmpty","isNotEmpty"];case"number-input":case"date-picker":case"datetime-picker":return["equals","notEquals","greaterThan","lessThan","greaterThanOrEqual","lessThanOrEqual","isEmpty","isNotEmpty"];case"select":case"radio":case"segment":default:return["equals","notEquals","isEmpty","isNotEmpty"];case"checkbox":return["contains","notContains","isEmpty","isNotEmpty"]}}validateConditionalLogic(e,t){const s=[];return e?(["show","hide","always"].includes(e.action)||s.push("Invalid conditional action"),["all","any"].includes(e.when)||s.push("Invalid when condition"),e.conditions&&0!==e.conditions.length?e.conditions.forEach((e,n)=>{const i=t.find(t=>t.id===e.when);if(!i)return void s.push(`Condition ${n+1}: Component not found`);this.getApplicableOperators(i.name).includes(e.operator)||s.push(`Condition ${n+1}: Operator not applicable for component type`),this.isValidConditionValue(e.value,i.name,e.operator)||s.push(`Condition ${n+1}: Invalid condition value`)}):s.push("At least one condition is required"),{isValid:0===s.length,errors:s}):{isValid:!0,errors:[]}}evaluateConditionalLogic(e,t,s){if("always"===e.action)return{shouldShow:!0,evaluatedConditions:[]};if(!e||!e.conditions||0===e.conditions.length)return{shouldShow:!0,evaluatedConditions:[]};const n=e.conditions.map(e=>{const n=this.getComponentValue(e.when,t,s);return{condition:e,result:this.evaluateCondition(e,n),componentValue:n}});return{shouldShow:this.determineFinalResult(e,n),evaluatedConditions:n}}getComponentValue(e,t,s){if(s&&void 0!==s[e])return s[e];const n=t.find(t=>t.id===e);return n&&"defaultValue"in n.basic?n.basic.defaultValue:void 0}evaluateCondition(e,t){const{operator:s,value:n}=e;if("checked"===n||"notChecked"===n)return this.evaluateCheckboxCondition(t,n);switch(s){case"equals":return this.isEqual(t,n);case"notEquals":return!this.isEqual(t,n);case"isEmpty":return this.isEmpty(t);case"isNotEmpty":return!this.isEmpty(t);case"contains":return this.contains(t,n);case"notContains":return!this.contains(t,n);case"greaterThan":return this.isGreaterThan(t,n);case"lessThan":return this.isLessThan(t,n);case"greaterThanOrEqual":return this.isGreaterThanOrEqual(t,n);case"lessThanOrEqual":return this.isLessThanOrEqual(t,n);default:return!1}}evaluateCheckboxCondition(e,t){const s=this.isCheckboxChecked(e);return"checked"===t?s:"notChecked"===t&&!s}isCheckboxChecked(e){return null!=e&&("boolean"==typeof e?e:"string"==typeof e?"true"===e.toLowerCase()||"1"===e:Array.isArray(e)?e.length>0:"number"==typeof e&&e>0)}determineFinalResult(e,t){let s,n;return s="all"===e.when?t.every(e=>e.result):"any"===e.when&&t.some(e=>e.result),n="show"===e.action?s:"hide"===e.action?!s:(e.action,!0),n}isEqual(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((e,s)=>this.isEqual(e,t[s]));if("object"==typeof e&&"object"==typeof t){const s=Object.keys(e),n=Object.keys(t);return s.length===n.length&&s.every(s=>this.isEqual(e[s],t[s]))}return!1}isEmpty(e){return null==e||void 0===e||("string"==typeof e?""===e.trim():Array.isArray(e)?0===e.length:"object"==typeof e&&0===Object.keys(e).length)}contains(e,t){return null!=e&&null!=t&&("string"==typeof e?e.toLowerCase().includes(String(t).toLowerCase()):!!Array.isArray(e)&&e.some(e=>this.isEqual(e,t)))}isGreaterThan(e,t){const s=Number(e),n=Number(t);return!isNaN(s)&&!isNaN(n)&&s>n}isLessThan(e,t){const s=Number(e),n=Number(t);return!isNaN(s)&&!isNaN(n)&&s<n}isGreaterThanOrEqual(e,t){const s=Number(e),n=Number(t);return!isNaN(s)&&!isNaN(n)&&s>=n}isLessThanOrEqual(e,t){const s=Number(e),n=Number(t);return!isNaN(s)&&!isNaN(n)&&s<=n}isValidConditionValue(e,t,s){if(null==e)return["isEmpty","isNotEmpty"].includes(s);switch(t){case"number-input":return!isNaN(Number(e))||["isEmpty","isNotEmpty"].includes(s);case"date-picker":case"datetime-picker":return!isNaN(Date.parse(e))||["isEmpty","isNotEmpty"].includes(s);case"checkbox":return Array.isArray(e)||"string"==typeof e||"number"==typeof e;default:return!0}}createDefaultConditionalLogic(){return{action:"show",when:"all",conditions:[]}}getOperatorDisplayText(e){return{equals:"Is Equal To",notEquals:"Is Not Equal To",contains:"Contains",notContains:"Does Not Contain",isEmpty:"Is Empty",isNotEmpty:"Is Not Empty",greaterThan:"Is Greater Than",lessThan:"Is Less Than",greaterThanOrEqual:"Is Greater Than Or Equal To",lessThanOrEqual:"Is Less Than Or Equal To"}[e]||e}getActionDisplayText(e){return{show:"Show this field when",hide:"Hide this field when",always:"Always show this field"}[e]||e}getConditionalLogicSummary(e,t){if(!e||0===e.conditions.length)return"No conditions";if("always"===e.action)return"Always show";const s=this.getActionDisplayText(e.action),n=e.conditions.map(e=>{const s=t.find(t=>t.id===e.when);return`${s?.basic.label||"Unknown component"} ${this.getOperatorDisplayText(e.operator)} ${this.formatConditionValue(e.value)}`}),i="all"===e.when?" and ":" or ";return`${s} ${n.join(i)}`}formatConditionValue(e){return null==e?"empty":Array.isArray(e)?`[${e.join(", ")}]`:"string"==typeof e?`"${e}"`:String(e)}}const h=p.getInstance();const f=new class{constructor(){this.toasts=[],this.listeners=[],this.defaultDuration=3e3,this.timeouts={}}generateId(){return Date.now().toString(36)+Math.random().toString(36).substr(2)}notifyListeners(){this.listeners.forEach(e=>e([...this.toasts]))}addToast(e){try{this.toasts.push(e),this.notifyListeners(),this.timeouts[e.id]=setTimeout(()=>{this.removeToast(e.id)},e.duration||this.defaultDuration)}catch(e){console.error("Error displaying toast message:",e)}}removeToast(e){this.timeouts[e]&&(clearTimeout(this.timeouts[e]),delete this.timeouts[e]),this.toasts=this.toasts.filter(t=>t.id!==e),this.notifyListeners()}showSuccess(e,t=3e3){const s={id:this.generateId(),message:e,type:"success",duration:t};this.addToast(s)}showError(e,t=5e3){const s={id:this.generateId(),message:e,type:"danger",duration:t};this.addToast(s)}showWarning(e,t){const s={id:this.generateId(),message:e,type:"warning",duration:t};this.addToast(s)}showInfo(e,t){const s={id:this.generateId(),message:e,type:"info",duration:t};this.addToast(s)}show(e,t="success",s){const n={id:this.generateId(),message:e,type:t,duration:s};this.addToast(n)}clearAll(){Object.values(this.timeouts).forEach(e=>clearTimeout(e)),this.timeouts={},this.toasts=[],this.notifyListeners()}subscribe(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}getToasts(){return[...this.toasts]}},b=({validationErrors:e,fieldId:t,touchedFields:s,formSubmitted:n,properties:i,localValidation:a,isTouched:r,mode:o})=>{const l=e=>{const t=i.basic.label||"This field",s=i.validation.customValidationMessage;if(s)return s;const n=i.name||"",a="date-picker"===n||"datetime-picker"===n?i.basic?.dateTimeMode||("datetime-picker"===n?"datetime":"date"):null;switch(e){case"required":return`${t} is required`;case"invalidDate":return"time"===a?"Please select a valid time":"datetime"===a?"Please select a valid date and time":"date"===a?"Please select a valid date":`${t} is invalid`;case"minLength":return`${t} must be at least ${i.validation.minLength} characters long`;case"maxLength":return`${t} must be no more than ${i.validation.maxLength} characters long`;case"min":return`${t} must be at least ${i.validation.min}`;case"max":return`${t} must be no more than ${i.validation.max}`;case"lowerLimit":const e=i.validation,s=e?.lowerLimit;return`You are under the limit. ${t} must be at least ${s}`;case"upperLimit":const n=i.validation,r=n?.upperLimit;return`You crossed the limit. ${t} must be no more than ${r}`;case"pattern":return`${t} format is invalid`;case"email":return`${t} must be a valid email address`;default:return`${t} is invalid`}},c=(()=>{if("test"!==o)return"";if(!(r||s[t]||n))return"";if(a&&a.isValid)return"";if(a&&!a.isValid&&Object.keys(a.errors).length>0){const e=Object.keys(a.errors);if(e.length>0){const t=e[0];return l(t)}}const c=e[t];if(c&&"string"==typeof c&&""!==c.trim()){const e=i.name||"";if(("date-picker"===e||"datetime-picker"===e)&&c.includes("valid date")){const t=i.basic?.dateTimeMode||("datetime-picker"===e?"datetime":"date");if("time"===t)return"Please select a valid time";if("datetime"===t)return"Please select a valid date and time"}return c}return""})();return c?m.jsx("div",{className:"form-error-msg",children:c}):null};var g;!function(e){e.OPEN="Open",e.IN_PROGRESS="In-Progress",e.REJECTED="Rejected",e.RESOLVE="Resolve"}(g||(g={}));const v=({isOpen:e,onClose:i,onSuccess:a,component:r,formTemplateId:o,notes:l="",attachments:c=null,issue:d=null,onCreateIssue:u,onUpdateIssue:p,user:h,availableUsers:b=["Priya Das","Maria Garcia","John Smith","Sarah Johnson"]})=>{const[v,x]=t.useState(""),[y,j]=t.useState(""),[C,N]=t.useState(""),[S,w]=t.useState(""),[k,E]=t.useState("Medium"),[$,T]=t.useState(g.OPEN),[A,I]=t.useState(""),[R,D]=t.useState(""),[L,F]=t.useState(!1),V=!!d;t.useEffect(()=>{if(e)if(d){x(d.title||""),j(d.description||""),N(d.workOrderNumber||""),w(d.assetNumber||""),E(d.priority||"Medium");const e=d.status||g.OPEN,t=e===g.OPEN||e===g.IN_PROGRESS||e===g.REJECTED||e===g.RESOLVE?e:g.OPEN;T(t),I(d.assignee||""),D(d.comments||"")}else if(r){const e=r.basic?.label||"Component";x(`${e} - Issue`);let t=`Issue raised for component: ${e}`;r.basic&&"value"in r.basic&&r.basic.value&&(t+=`\nComponent Value: ${r.basic.value}`),l&&(t+=`\nNotes: ${l}`),j(t),D(l||"")}},[e,r,l,d]);const O=async e=>{if(d){F(!0);try{const t={title:String(v||"").trim(),description:String(y||"").trim(),workOrderNumber:String(C||"").trim()||"",assetNumber:String(S||"").trim()||"",formTemplateId:d.formTemplateId||"",component:d.component||{},priority:k,assignee:String(A||"").trim()||void 0,status:e,comments:String(R||"").trim()||""};p&&d._id&&await p(d._id,t),T(e);const s={[g.IN_PROGRESS]:"Issue accepted and moved to In-Progress",[g.RESOLVE]:"Issue resolved successfully",[g.REJECTED]:"Issue rejected"};f.showSuccess(s[e]||"Issue status updated successfully"),a&&a(),i()}catch(e){const t=e?.message||e?.error?.message||"Failed to update issue status. Please try again.";f.showError(t)}finally{F(!1)}}};if(!e)return null;const M=m.jsx("div",{className:"raise-issue-modal-overlay",onClick:i,children:m.jsxs("div",{className:"raise-issue-modal",onClick:e=>e.stopPropagation(),children:[m.jsxs("div",{className:"raise-issue-modal-header",children:[m.jsxs("div",{className:"raise-issue-modal-header-left",children:[m.jsx(s.AlertTriangle,{className:"raise-issue-modal-icon",size:20}),m.jsx("div",{className:"raise-issue-modal-header-text",children:m.jsx("div",{className:"raise-issue-modal-title-main",children:"Issue Details"})})]}),m.jsx("button",{className:"raise-issue-modal-close",onClick:i,"aria-label":"Close",children:m.jsx(s.X,{size:18})})]}),m.jsx("div",{className:"raise-issue-modal-content",children:m.jsxs("div",{className:"raise-issue-fields-grid",children:[V&&d?.issueNumber&&m.jsxs("div",{className:"raise-issue-field",children:[m.jsx("label",{className:"raise-issue-field-label",children:"Issue ID"}),m.jsx("input",{type:"text",className:"raise-issue-field-input raise-issue-field-readonly",value:d.issueNumber,readOnly:!0})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Title ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsx("input",{type:"text",className:"raise-issue-field-input "+(V?"raise-issue-field-readonly":""),value:v,onChange:e=>x(e.target.value),placeholder:"Enter issue title",readOnly:V})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Work Order ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsx("input",{type:"text",className:"raise-issue-field-input "+(V?"raise-issue-field-readonly":""),value:C,onChange:e=>N(e.target.value),placeholder:"N/A",readOnly:V})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Asset Number ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsx("input",{type:"text",className:"raise-issue-field-input "+(V?"raise-issue-field-readonly":""),value:S,onChange:e=>w(e.target.value),placeholder:"Enter asset number",readOnly:V})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsx("label",{className:"raise-issue-field-label",children:"Raised By"}),m.jsxs("div",{className:"raise-issue-field-value-with-icon",children:[m.jsx(s.User,{size:16}),m.jsx("span",{children:h&&`${h.firstName||""} ${h.lastName||""}`.trim()||"User"})]})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsx("label",{className:"raise-issue-field-label",children:"Created On"}),m.jsxs("div",{className:"raise-issue-field-value-with-icon",children:[m.jsx(s.Calendar,{size:16}),m.jsx("span",{children:V&&d?.createdAt?new Date(d.createdAt).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!0}):(new Date).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!0})})]})]}),m.jsxs("div",{className:"raise-issue-field raise-issue-field-full-width",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Description ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsx("textarea",{className:"raise-issue-field-textarea "+(V?"raise-issue-field-readonly":""),value:y,onChange:e=>j(e.target.value),placeholder:"Enter issue description",rows:4,readOnly:V})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Status ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsxs("select",{className:"raise-issue-field-select "+(V?"":"raise-issue-field-readonly"),value:$,onChange:e=>T(e.target.value),disabled:!V,children:[m.jsx("option",{value:g.OPEN,children:g.OPEN}),m.jsx("option",{value:g.IN_PROGRESS,children:g.IN_PROGRESS}),m.jsx("option",{value:g.REJECTED,children:g.REJECTED}),m.jsx("option",{value:g.RESOLVE,children:g.RESOLVE})]})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Assignee ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsxs("select",{className:"raise-issue-field-select",value:A,onChange:e=>I(e.target.value),children:[m.jsx("option",{value:"",children:"Unassigned"}),b.map(e=>m.jsx("option",{value:e,children:e},e))]})]}),m.jsxs("div",{className:"raise-issue-field raise-issue-field-full-width",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Priority ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsxs("div",{className:"raise-issue-priority-buttons",children:[m.jsx("button",{type:"button",className:"priority-button priority-low "+("Low"===k?"active":""),onClick:()=>E("Low"),children:"Low"}),m.jsx("button",{type:"button",className:"priority-button priority-medium "+("Medium"===k?"active":""),onClick:()=>E("Medium"),children:"Medium"}),m.jsx("button",{type:"button",className:"priority-button priority-high "+("High"===k?"active":""),onClick:()=>E("High"),children:"High"})]})]}),m.jsxs("div",{className:"raise-issue-field raise-issue-field-full-width",children:[m.jsxs("label",{className:"raise-issue-field-label-with-icon",children:[m.jsx(s.MessageSquare,{size:16}),m.jsx("span",{children:"Comments"})]}),!R&&m.jsx("div",{className:"raise-issue-no-comments",children:"No comments yet"}),m.jsx("textarea",{className:"raise-issue-field-textarea raise-issue-comments-textarea "+(V?"raise-issue-field-readonly":""),value:R,onChange:e=>D(e.target.value),placeholder:"Add a comment...",rows:4,readOnly:V})]})]})}),m.jsx("div",{className:"raise-issue-modal-actions",children:m.jsxs("div",{className:"raise-issue-modal-actions-buttons",children:[V&&d&&m.jsxs(m.Fragment,{children:[$===g.OPEN&&m.jsx("button",{className:"raise-issue-modal-button raise-issue-modal-button-accept",onClick:async()=>{await O(g.IN_PROGRESS)},disabled:L,children:L?"Processing...":"Accept"}),$===g.IN_PROGRESS&&m.jsx("button",{className:"raise-issue-modal-button raise-issue-modal-button-resolve",onClick:async()=>{await O(g.RESOLVE)},disabled:L,children:L?"Processing...":"Resolve"}),$===g.OPEN&&m.jsx("button",{className:"raise-issue-modal-button raise-issue-modal-button-reject",onClick:async()=>{await O(g.REJECTED)},disabled:L,children:L?"Processing...":"Reject"})]}),!V&&m.jsx("button",{className:"raise-issue-modal-button raise-issue-modal-button-save",onClick:async()=>{if(String(v||"").trim())if(String(y||"").trim()){F(!0);try{if(V&&d){const e={title:String(v||"").trim(),description:String(y||"").trim(),workOrderNumber:String(C||"").trim()||"",assetNumber:String(S||"").trim()||void 0,formTemplateId:d.formTemplateId||"",component:d.component||{},priority:k,assignee:String(A||"").trim()||void 0,status:$,comments:String(R||"").trim()||""};p&&d._id&&await p(d._id,e),f.showSuccess("Issue updated successfully"),a&&a(),i()}else{if(!r)return f.showError("Component is required"),void F(!1);if(!o||""===String(o||"").trim())return f.showError("Form template is required"),void F(!1);const e={...r,basic:{...r.basic,comments:String(l||"")}},t={title:String(v||"").trim(),workOrderNumber:String(C||"").trim()||void 0,assetNumber:String(S||"").trim()||void 0,component:e,description:String(y||"").trim(),formTemplateId:o,assignee:String(A||"").trim()||void 0,priority:k,status:$,comments:String(R||"").trim()||""};let s;u&&(s=await u(t,c||[])),f.showSuccess("Issue raised successfully"),a&&a(s),i()}}catch(e){const t=e?.message||e?.error?.message||(V?"Failed to update issue. Please try again.":"Failed to raise issue. Please try again.");f.showError(t)}finally{F(!1)}}else f.showError("Description is required");else f.showError("Title is required")},disabled:L||!String(v||"").trim()||!String(y||"").trim(),children:L?"Saving...":"Save Changes"})]})})]})});return n.createPortal(M,document.body)},x=({component:e,condition:n,currentValue:i,thresholdValue:a,formTemplateId:r,onIssueRaised:o,isIssueRaised:l=!1})=>{const[c,d]=t.useState(!1),[u,p]=t.useState(null),[h,b]=t.useState(!1),[g,x]=t.useState(!1);t.useEffect(()=>{l&&x(!0)},[l]),t.useEffect(()=>{x(!1)},[n?.id]);const y=t.useCallback(async()=>{if(l||g){if(u)return void d(!0);b(!0);try{p(null),d(!0)}catch(e){console.error("Error fetching issue:",e),f.showError("Failed to load issue details")}finally{b(!1)}}else p(null),d(!0)},[l,g,r,e,u]),j=t.useCallback(()=>{d(!1),l||g||p(null)},[l,g]),C=t.useCallback(e=>{d(!1),p(e||null),x(!0),o&&n?.id&&o(n.id)},[o,n]);return l||g?m.jsxs(m.Fragment,{children:[m.jsx("div",{className:"threshold-issue-indicator",children:m.jsxs("div",{className:"threshold-issue-indicator-content",children:[m.jsx(s.CheckCircle2,{className:"threshold-issue-indicator-icon",size:16}),m.jsx("span",{className:"threshold-issue-indicator-text",children:"Issue raised for this threshold condition"}),m.jsx("button",{type:"button",onClick:y,className:"threshold-issue-indicator-view-btn",disabled:h,children:h?"Loading...":"View Issue"})]})}),c&&m.jsx(v,{isOpen:c,onClose:j,onSuccess:C,component:e,formTemplateId:r,notes:"",attachments:null,issue:u})]}):m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"threshold-alert threshold-alert-unresolved",children:[m.jsx("div",{className:"threshold-alert-border"}),m.jsxs("div",{className:"threshold-alert-content",children:[m.jsx("div",{className:"threshold-alert-header",children:m.jsxs("div",{className:"threshold-alert-title-group",children:[m.jsx(s.AlertTriangle,{className:"threshold-alert-icon",size:20}),m.jsx("span",{className:"threshold-alert-title",children:"Threshold Condition Met - Action Required"})]})}),m.jsxs("div",{className:"threshold-alert-message",children:[(()=>{const t={greaterThan:">",lessThan:"<",greaterThanOrEqual:"≥",lessThanOrEqual:"≤",equals:"=",notEquals:"≠"}[s=n.operator]||s;var s;return`${e.basic?.label||"Value"}: Value ${i} exceeds threshold ${t} ${a}`})(),m.jsx("span",{className:"threshold-alert-warning",children:" You must raise an issue before submitting the form."})]}),m.jsx("div",{className:"threshold-alert-buttons",children:m.jsx("button",{type:"button",onClick:y,className:"threshold-alert-raise-issue-btn",children:"Raise Issue Now"})})]})]}),c&&m.jsx(v,{isOpen:c,onClose:j,onSuccess:C,component:e,formTemplateId:r,notes:"",attachments:null,issue:u})]})},y=({id:e,properties:s,validationErrors:n={},formValue:i="",inputType:a="text",readonly:r=!1,disabled:o=!1,touchedFields:l={},formSubmitted:c=!1,mode:d="test",onValueChange:u,onBlur:p,onFocus:h,className:f="",hideLabel:g=!1,formTemplateId:v,onThresholdIssueRaised:y,raisedThresholdIssues:j=new Set})=>{const C=e=>null==e?"":"string"==typeof e?e:"number"==typeof e||"boolean"==typeof e?String(e):"object"==typeof e?Array.isArray(e)?"":"value"in e?C(e.value):"label"in e?C(e.label):"":String(e||""),N=t.useRef(e);t.useEffect(()=>{e!==N.current&&(console.warn(`[DfFormInput] Component ID changed from ${N.current} to ${e}`),N.current=e)},[e]);const S=C(i||s?.basic?.defaultValue||""),[w,k]=t.useState(S),[E,$]=t.useState(!1),[T,A]=t.useState(!1),[I,R]=t.useState(new Set),[D,L]=t.useState(S),F=()=>{if(a)return a;const e=s?.name;return"text-input"===e?"text":"number-input"===e?"number":"email-input"===e?"email":"text"},V=t.useCallback(e=>{const t=(()=>{const e={};if(s?.validation?.required&&(e.required=!0),"email"===F()&&(e.email=!0),"text"===F()){const t=s.validation;t?.minLength&&(e.minLength=t.minLength),t?.maxLength&&(e.maxLength=t.maxLength)}if("number"===F()){const t=s.validation;t?.min&&(e.min=t.min),t?.max&&(e.max=t.max),void 0!==t?.lowerLimit&&(e.lowerLimit=t.lowerLimit),void 0!==t?.upperLimit&&(e.upperLimit=t.upperLimit)}return e})(),n={};let i=!0;if(!t.required||e&&""!==e.trim()||(n.required=!0,i=!1),t.email&&e&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(e)&&(n.email=!0,i=!1),t.minLength&&e&&e.length<t.minLength&&(n.minLength=!0,i=!1),t.maxLength&&e&&e.length>t.maxLength&&(n.maxLength=!0,i=!1),"number"===F()&&e){const s=parseFloat(e);isNaN(s)?(n.pattern=!0,i=!1):(void 0!==t.min&&s<t.min&&(n.min=!0,i=!1),void 0!==t.max&&s>t.max&&(n.max=!0,i=!1),void 0!==t.lowerLimit&&s<t.lowerLimit&&(n.lowerLimit=!0,i=!1),void 0!==t.upperLimit&&s>t.upperLimit&&(n.upperLimit=!0,i=!1))}return{isValid:i,errors:n}},[s,F]),O=t.useCallback(t=>{if(k(t),u){const s=V(t),n=N.current,i={id:n,value:t,isValid:s.isValid,errors:s.errors};n!==e&&console.error(`[DfFormInput] ID mismatch in handleValueChange! ref: ${n}, prop: ${e}`),u(i)}},[e,u,V,N]);t.useEffect(()=>{E&&(l[e]=!0)},[E,e,l]),t.useEffect(()=>{if("edit"===d){$(!1);k(s?.basic?.defaultValue||"")}else"test"===d&&($(!1),k(""))},[d,s?.basic?.defaultValue]),t.useEffect(()=>{const t=N.current,n=C(i||s?.basic?.defaultValue||"");n===w||T||""===n&&""!==String(w||"").trim()?""===n&&String(w||"").trim():null!=i&&(t===e?k(n):console.error(`[DfFormInput] ID mismatch! componentIdRef: ${t}, prop id: ${e}`))},[i,w,T,s?.basic?.defaultValue,e]),t.useEffect(()=>{c&&$(!0)},[c]),t.useEffect(()=>{"test"!==d&&k("")},[d]);const M=t.useCallback((e,t)=>{if(!t||""===t)return!1;const s="string"==typeof t?parseFloat(t):t,n="string"==typeof e.value?parseFloat(e.value):e.value;if(isNaN(s)||isNaN(n))return!1;switch(e.operator){case"greaterThan":return s>n;case"lessThan":return s<n;case"greaterThanOrEqual":return s>=n;case"lessThanOrEqual":return s<=n;case"equals":return s===n;case"notEquals":return s!==n;default:return!1}},[]),q=t.useMemo(()=>s?.condition?.conditions||[],[s?.condition]);t.useEffect(()=>{w!==D&&(R(new Set),L(w))},[w,D]);const P=t.useMemo(()=>{if("test"!==d||!w||""===w)return null;const e=q.filter(e=>M(e,w));if(0===e.length)return null;for(const t of e)if(!I.has(t.id))return t;return null},[w,q,I,d,M,j]),z=t.useCallback(e=>{R(t=>new Set(t).add(e))},[]),_=F(),W=o||r||s?.validation?.readonly;return m.jsxs("div",{className:`form-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!g&&s.basic.label&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("input",{type:_,id:e,value:w,onChange:e=>{const t=e.target.value;O(t)},onFocus:()=>{A(!0),h&&h()},onBlur:()=>{if(A(!1),$(!0),"test"===d&&u){const t=V(w),s={id:e,value:w,isValid:t.isValid,errors:t.errors};u(s)}p&&p()},placeholder:s.basic.placeholder,disabled:W,readOnly:r||s?.validation?.readonly,className:(()=>{const t="form-control";if("test"===d){const s=!V(w).isValid&&E,i=n[e]&&(E||c);return`${t} ${s||i?"is-invalid":""} ${f}`.trim()}return`${t} ${f}`.trim()})()}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:l,formSubmitted:c,properties:s,localValidation:V(w),isTouched:E,mode:d}),P&&"test"===d&&(()=>{const e=j?.has(P.id)||!1;return m.jsx(x,{component:s,condition:P,currentValue:w,thresholdValue:P.value,formTemplateId:v,onDismiss:()=>z(P.id),onIssueRaised:y,isIssueRaised:e},`${P.id}-${e}`)})()]})]})},j=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,v]=t.useState(i),[x,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let n=!0;return!s?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),s?.validation?.minLength&&e&&e.length<s.validation.minLength&&(t.minLength=!0,n=!1),s?.validation?.maxLength&&e&&e.length>s.validation.maxLength&&(t.maxLength=!0,n=!1),{isValid:n,errors:t}},[s]),C=t.useCallback(t=>{if(v(t),d){const s=j(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,j]);t.useEffect(()=>{x&&(o[e]=!0)},[x,e,o]),t.useEffect(()=>{""===g&&""!==i&&v(i)},[i]),t.useEffect(()=>{l&&y(!0)},[l]),t.useEffect(()=>{"test"!==c&&v("")},[c]);const N=r||a||s?.validation?.readonly,S=s?.validation?.rows||4;return m.jsxs("div",{className:`form-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!f&&s.basic.label&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("textarea",{id:e,value:g,onChange:e=>{const t=e.target.value;C(t)},onFocus:()=>{p&&p()},onBlur:()=>{y(!0),u&&u()},placeholder:s.basic.placeholder,disabled:N,readOnly:a||s?.validation?.readonly,rows:S,className:`form-textarea ${!j(g).isValid&&x?"is-invalid":""} ${h}`.trim()}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:j(g),isTouched:x,mode:c})]})]})},C=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,v]=t.useState(i),[x,y]=t.useState(!1),j=s?.validation?.multiple||!1,C=t.useCallback(e=>{const t={};let n=!0;return s?.validation?.required&&(j?Array.isArray(e)&&0!==e.length||(t.required=!0,n=!1):(!e||"string"==typeof e&&""===e.trim())&&(t.required=!0,n=!1)),{isValid:n,errors:t}},[s,j]),N=t.useCallback(t=>{if(v(t),d){const s=C(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,C]);t.useEffect(()=>{x&&(o[e]=!0)},[x,e,o]),t.useEffect(()=>{JSON.stringify(i)!==JSON.stringify(g)&&v(i)},[i,g]),t.useEffect(()=>{l&&y(!0)},[l]);const S=r||a||s?.validation?.readonly;return m.jsxs("div",{className:`form-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!f&&s.basic.label&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsxs("select",{id:e,value:g,onChange:e=>{if(j){const t=Array.from(e.target.selectedOptions,e=>e.value);N(t)}else N(e.target.value)},onFocus:()=>{p&&p()},onBlur:()=>{y(!0),u&&u()},disabled:S,multiple:j,className:`form-select ${!C(g).isValid&&x?"is-invalid":""} ${h}`.trim(),children:[!j&&m.jsx("option",{value:"",children:s.basic.placeholder||"Select an option"}),(s.options||[]).map((e,t)=>m.jsx("option",{value:e.value,disabled:e.disabled,children:e.label},t))]}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:C(g),isTouched:x,mode:c})]})]})},N=({id:e,properties:s,validationErrors:n={},formValue:i=[],readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,v]=t.useState(!1),x=Array.isArray(i)?i:[],y=t.useCallback(e=>{const t={};let n=!0;return s?.validation?.required&&0===e.length&&(t.required=!0,n=!1),{isValid:n,errors:t}},[s]),j=t.useCallback(t=>{if(d){const s=y(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,y,x]),C=(e,t)=>{let s;s=t?[...x,e]:x.filter(t=>t!==e),j(s)},N=()=>{p&&p()},S=()=>{v(!0),u&&u()};t.useEffect(()=>{g&&(o[e]=!0)},[g,e,o]),t.useEffect(()=>{},[i,e,x]),t.useEffect(()=>{l&&v(!0)},[l]);const w=r||a||s?.validation?.readonly;return m.jsx(m.Fragment,{children:m.jsx("div",{className:`form-group checkbox-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${s?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${h}`,children:!f&&s.basic.label?m.jsxs(m.Fragment,{children:[m.jsxs("label",{className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("div",{className:"mt-2 "+(s?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(s.options||[]).map((t,s)=>m.jsxs("div",{className:"form-check",children:[m.jsx("input",{type:"checkbox",id:`${e}-${s}`,name:e,value:t.value,checked:x.includes(t.value),onChange:e=>{C(t.value,e.target.checked)},onFocus:N,onBlur:S,disabled:w||t.disabled,className:"form-check-input"}),m.jsx("label",{htmlFor:`${e}-${s}`,className:"form-check-label",children:t.label})]},s))}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:y(x),isTouched:g,mode:c})]})]}):m.jsxs("div",{className:"input-wrapper",children:[m.jsx("div",{className:"mt-2 "+(s?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(s.options||[]).map((t,s)=>m.jsxs("div",{className:"form-check",children:[m.jsx("input",{type:"checkbox",id:`${e}-${s}`,name:e,value:t.value,checked:x.includes(t.value),onChange:e=>{C(t.value,e.target.checked)},onFocus:N,onBlur:S,disabled:w||t.disabled,className:"form-check-input"}),m.jsx("label",{htmlFor:`${e}-${s}`,className:"form-check-label",children:t.label})]},s))}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:y(x),isTouched:g,mode:c})]})})})},S=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,v]=t.useState(i),[x,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let n=!0;return!s?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[s]),C=t.useCallback(t=>{if(v(t),d){const s=j(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,j]),N=e=>{C(e)},S=()=>{p&&p()},w=()=>{y(!0),u&&u()};t.useEffect(()=>{x&&(o[e]=!0)},[x,e,o]),t.useEffect(()=>{i!==g&&v(i)},[i,g]),t.useEffect(()=>{l&&y(!0)},[l]);const k=r||a||s?.validation?.readonly;return m.jsx(m.Fragment,{children:m.jsx("div",{className:`form-group radio-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${s?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${h}`,children:!f&&s.basic.label?m.jsxs(m.Fragment,{children:[m.jsxs("label",{className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("div",{className:"mt-2 "+(s?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(s.options||[]).map((t,s)=>m.jsxs("div",{className:"form-check",children:[m.jsx("input",{type:"radio",id:`${e}-${s}`,name:e,value:t.value,checked:g===t.value,onChange:()=>N(t.value),onFocus:S,onBlur:w,disabled:k||t.disabled,className:"form-check-input"}),m.jsx("label",{htmlFor:`${e}-${s}`,className:"form-check-label",children:t.label})]},s))}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:j(g),isTouched:x,mode:c})]})]}):m.jsxs("div",{className:"input-wrapper",children:[m.jsx("div",{className:"mt-2 "+(s?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(s.options||[]).map((t,s)=>m.jsxs("div",{className:"form-check",children:[m.jsx("input",{type:"radio",id:`${e}-${s}`,name:e,value:t.value,checked:g===t.value,onChange:()=>N(t.value),onFocus:S,onBlur:w,disabled:k||t.disabled,className:"form-check-input"}),m.jsx("label",{htmlFor:`${e}-${s}`,className:"form-check-label",children:t.label})]},s))}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:j(g),isTouched:x,mode:c})]})})})},w=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,v]=t.useState(i),[x,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let n=!0;return!s?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[s]),C=t.useCallback(t=>{if(v(t),y(!0),d){const s=j(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,j]),N=()=>{p&&p()},S=()=>{y(!0),u&&u()};t.useEffect(()=>{x&&(o[e]=!0)},[x,e,o]),t.useEffect(()=>{i!==g&&v(i)},[i,g]),t.useEffect(()=>{l&&y(!0)},[l]);const w=()=>s?.basic?.inlineLayout?"inline-layout":"grid-layout",k=e=>{const t=e?.toLowerCase();return"pass"===t||"yes"===t?"pass":"fail"===t||"no"===t?"fail":"pass"},E=e=>{if(void 0!==e?.icon&&""!==e.icon)return e.icon;return"pass"===k(e?.value||e)?"✓":"×"},$=(e,t)=>e?.color||e?.backgroundColor?{color:t?"#ffffff":e.color||"#00814b",backgroundColor:t?e.color||"#00814b":e.backgroundColor||"#34bd4914",borderColor:e.color||"#00814b"}:{},T=e=>{if(e?.color||e?.backgroundColor)return"segment-button-label segment-button-custom";return"segment-button-label "+("pass"===k(e?.value||e)?"pass-button":"fail-button")},A=r||a||s?.validation?.readonly;return m.jsxs(m.Fragment,{children:[m.jsx("div",{className:`form-group segment-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${h}`,children:!f&&s.basic.label?m.jsxs(m.Fragment,{children:[m.jsxs("label",{className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsx("div",{className:"form-segment-wrapper",children:m.jsx("div",{className:`form-segment-container ${w()}`,children:(s.options||[]).map((t,s)=>{const n=g===t.value,i=$(t,n),a=T(t),r=E(t);return m.jsxs("div",{className:"form-segment-option "+(n?"selected":""),children:[m.jsx("input",{type:"radio",id:`${e}_option_${s}`,name:e,value:t.value,checked:n,onChange:()=>!A&&!t.disabled&&C(t.value),onFocus:N,onBlur:S,disabled:A||t.disabled,className:"form-segment-radio"}),m.jsxs("label",{htmlFor:`${e}_option_${s}`,className:a,style:Object.keys(i).length>0?i:void 0,children:[r&&m.jsx("span",{className:"segment-icon",children:r}),m.jsx("span",{className:"segment-text",children:t.value})]})]},s)})})})]}):m.jsx("div",{className:"form-segment-wrapper",children:m.jsx("div",{className:`form-segment-container ${w()}`,children:(s.options||[]).map((t,s)=>{const n=g===t.value,i=$(t,n),a=T(t),r=E(t);return m.jsxs("div",{className:"form-segment-option "+(n?"selected":""),children:[m.jsx("input",{type:"radio",id:`${e}_option_${s}`,name:e,value:t.value,checked:n,onChange:()=>!A&&!t.disabled&&C(t.value),onFocus:N,onBlur:S,disabled:A||t.disabled,className:"form-segment-radio"}),m.jsxs("label",{htmlFor:`${e}_option_${s}`,className:a,style:Object.keys(i).length>0?i:void 0,children:[r&&m.jsx("span",{className:"segment-icon",children:r}),m.jsx("span",{className:"segment-text",children:t.value})]})]},s)})})})}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:j(g),isTouched:x,mode:c})]})},k=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const g=t.useCallback(e=>{if(!e)return"";if("string"==typeof e){if(/^\d{4}-\d{2}-\d{2}$/.test(e))return e;if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/.test(e))return e;const t=new Date(e);if(!isNaN(t.getTime())){const e=s.name||"",n=s.basic?.dateTimeMode||("datetime-picker"===e?"datetime":"date");if("datetime"===n){return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}T${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}if("time"===n){return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}return e}if(e instanceof Date){if(isNaN(e.getTime()))return"";const t=s.name||"",n=s.basic?.dateTimeMode||("datetime-picker"===t?"datetime":"date");if("datetime"===n){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}T${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}if("time"===n){return`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}if("object"==typeof e&&null!==e){if("value"in e&&e.value)return g(e.value);if("date"in e&&e.date)return g(e.date);try{const t=String(e),s=new Date(t);if(!isNaN(s.getTime()))return g(s)}catch(e){}return""}return""},[s]),v=g(i),[x,y]=t.useState(v),[j,C]=t.useState(!1),[N,S]=t.useState(!1),w=t.useCallback(e=>{const t={};let n=!0;const i=s.name||"",a=s.basic?.dateTimeMode||("datetime-picker"===i?"datetime":"date"),r=e?String(e).trim():"";if(s?.validation?.required&&(!r||""===r))return t.required=!0,n=!1,{isValid:n,errors:t};if(r&&""!==r)if("time"===a){if(!/^([0-1][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$/.test(r))return t.invalidDate=!0,n=!1,{isValid:n,errors:t}}else if("datetime"===a){const e=new Date(r);if(isNaN(e.getTime()))return t.invalidDate=!0,n=!1,{isValid:n,errors:t};if(s?.validation?.minDate){const i=new Date(s.validation.minDate);e<i&&(t.minDate=!0,t.minDateMessage=`Date and time must be on or after ${i.toLocaleDateString()}`,n=!1)}if(s?.validation?.maxDate){const i=new Date(s.validation.maxDate);e>i&&(t.maxDate=!0,t.maxDateMessage=`Date and time must be on or before ${i.toLocaleDateString()}`,n=!1)}}else{const e=new Date(r);if(isNaN(e.getTime()))return t.invalidDate=!0,n=!1,{isValid:n,errors:t};if(s?.validation?.minDate){const i=new Date(s.validation.minDate);e<i&&(t.minDate=!0,t.minDateMessage=`Date must be on or after ${i.toLocaleDateString()}`,n=!1)}if(s?.validation?.maxDate){const i=new Date(s.validation.maxDate);e>i&&(t.maxDate=!0,t.maxDateMessage=`Date must be on or before ${i.toLocaleDateString()}`,n=!1)}}return{isValid:n,errors:t}},[s]),k=t.useCallback(t=>{if(y(t),d){const s=w(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,w]);t.useEffect(()=>{j&&(o[e]=!0)},[j,e,o]),t.useEffect(()=>{const e=g(i);e===x||N||y(e)},[i,x,N,g]),t.useEffect(()=>{l&&C(!0)},[l]);const E=r||a||s?.validation?.readonly,$=s.name||"",T=s.basic?.dateTimeMode||("datetime-picker"===$?"datetime":"date"),A=(()=>{switch(T){case"time":return"time";case"datetime":return"datetime-local";default:return"date"}})();return m.jsxs("div",{className:`form-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!f&&s.basic.label&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("input",{type:A,id:e,value:x,onChange:e=>{const t=e.target.value;k(t)},onFocus:()=>{S(!0),p&&p()},onBlur:()=>{if(S(!1),C(!0),d){const t=w(x),s={id:e,value:x,isValid:t.isValid,errors:t.errors};d(s)}u&&u()},disabled:E,readOnly:a||s?.validation?.readonly,min:s?.validation?.minDate,max:s?.validation?.maxDate,className:`form-date ${!w(x).isValid&&j?"is-invalid":""} ${h}`.trim()}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:w(x),isTouched:j,mode:c})]})]})},E=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const g=t.useRef(null),[v,x]=t.useState(!1),[y,j]=t.useState(!1),[C,N]=t.useState(i),[S,w]=t.useState(!1),k=t.useCallback(e=>{const t={};let n=!0;return!s?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[s]),E=t.useCallback(t=>{if(N(t),d){const s=k(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,k]),$=t.useCallback(()=>{const e=document.documentElement.classList.contains("dark")||"dark"===document.documentElement.getAttribute("data-theme");let t=getComputedStyle(document.documentElement).getPropertyValue("--df-color-fb-input-bg").trim();t||(t=e?"#2c2e34":"#ffffff");return{strokeColor:e?"#ffffff":"#000000",backgroundColor:t}},[]),T=t.useCallback(t=>{if(!t)return;const s=g.current;if(!s)return;const n=s.getContext("2d");if(!n)return;const i=new Image;i.onload=()=>{n.clearRect(0,0,s.width,s.height);const e=$();n.fillStyle=e.backgroundColor,n.fillRect(0,0,s.width,s.height);const t=s.width/s.height,a=i.width/i.height;let r=s.width,o=s.height,l=0,c=0;a>t?(o=s.width/a,c=(s.height-o)/2):(r=s.height*a,l=(s.width-r)/2),n.drawImage(i,l,c,r,o)},i.onerror=s=>{console.error("DfFormSignature: error loading image",{id:e,error:s,dataURL:t.substring(0,50)+"..."})},i.src=t},[$,e]),A=t.useCallback(()=>{const e=g.current;if(!e)return;const t=e.getContext("2d");if(!t)return;const s=e.getBoundingClientRect();e.width=s.width,e.height=s.height,e.style.width=s.width+"px",e.style.height=s.height+"px";const n=$();t.strokeStyle=n.strokeColor,t.lineWidth=2,t.lineCap="round",t.lineJoin="round",C?T(C):(t.fillStyle=n.backgroundColor,t.fillRect(0,0,e.width,e.height))},[C,$,T]),I=t.useCallback(()=>{setTimeout(()=>{A()},100)},[A]);t.useEffect(()=>{const e=()=>{I()},t=new MutationObserver(e=>{e.forEach(e=>{if("attributes"===e.type&&"class"===e.attributeName){const t=e.target;t.classList.contains("form-canvas-container")&&(t.classList.contains("mobile-view")||t.classList.contains("tablet-view")||t.classList.contains("desktop-view"))&&I()}})});return t.observe(document.body,{attributes:!0,attributeFilter:["class"],subtree:!0}),window.addEventListener("resize",e),()=>{t.disconnect(),window.removeEventListener("resize",e)}},[I]);const R=t.useCallback(e=>{const t=g.current;if(!t)return{x:0,y:0};const s=t.getBoundingClientRect(),n=t.width/s.width,i=t.height/s.height,a=e.type.includes("mouse")?e.clientX:e.touches[0].clientX,r=e.type.includes("mouse")?e.clientY:e.touches[0].clientY;return{x:(a-s.left)*n,y:(r-s.top)*i}},[]),D=e=>{if(a||r||s?.validation?.readonly)return;if(e.target.closest(".clear-signature-btn"))return;e.preventDefault(),e.stopPropagation(),x(!0),j(!0);const t=g.current;if(!t)return;const n=t.getContext("2d");if(!n)return;const{x:i,y:o}=R(e),l=$();n.strokeStyle=l.strokeColor,n.lineWidth=2,n.lineCap="round",n.lineJoin="round",n.beginPath(),n.moveTo(i,o)},L=e=>{if(!v)return;e.preventDefault(),e.stopPropagation();const t=g.current;if(!t)return;const s=t.getContext("2d");if(!s)return;const{x:n,y:i}=R(e);s.lineTo(n,i),s.stroke()},F=()=>{if(!v)return;x(!1),w(!0);const e=g.current;if(e){(e=>{const t=e.getContext("2d");if(!t)return!1;const s=t.getImageData(0,0,e.width,e.height).data;for(let e=0;e<s.length;e+=4){const t=s[e],n=s[e+1],i=s[e+2];if(s[e+3]>0&&(t<255||n<255||i<255))return!0}})(e);const t=e.toDataURL("image/png");N(t),E(t),setTimeout(()=>{w(!1)},100)}else w(!1)},V=t.useCallback(()=>{const e=g.current;if(!e)return;const t=e.getContext("2d");if(!t)return;const s=$();if(t.strokeStyle=s.strokeColor,C){const n=C,i=e.getBoundingClientRect();t.fillStyle=s.backgroundColor,t.fillRect(0,0,i.width,i.height),n&&T(n)}else{const n=e.getBoundingClientRect();t.fillStyle=s.backgroundColor,t.fillRect(0,0,n.width,n.height)}},[$,C,T]);t.useEffect(()=>{const e=new MutationObserver(e=>{e.forEach(e=>{"attributes"!==e.type||"class"!==e.attributeName&&"data-theme"!==e.attributeName||V()})});return e.observe(document.documentElement,{attributes:!0,attributeFilter:["class","data-theme"]}),()=>{e.disconnect()}},[V]);t.useEffect(()=>{y&&(o[e]=!0)},[y,e,o]),t.useEffect(()=>{if(!(i===C||v||S||""!==C&&""===i)){if(i===C)return;N(i),i&&T(i)}},[i,C,v,S]),t.useEffect(()=>{l&&j(!0)},[l]),t.useEffect(()=>{if("test"!==c){N("");const e=g.current;if(e){const t=e.getContext("2d");if(t){const s=e.getBoundingClientRect();e.width=s.width,e.height=s.height;const n=$();t.fillStyle=n.backgroundColor,t.fillRect(0,0,s.width,s.height)}}}},[c]),t.useEffect(()=>{A()},[c]);const O=r||a||s?.validation?.readonly;return m.jsxs("div",{className:`form-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!f&&s.basic.label&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsxs("div",{className:"signature-container",style:{position:"relative",width:"100%",maxWidth:"100%",overflow:"hidden"},children:[m.jsx("canvas",{ref:g,id:e,className:`form-signature ${!k(C).isValid&&y?"is-invalid":""} ${h}`.trim(),onMouseDown:D,onMouseMove:L,onMouseUp:F,onMouseLeave:F,onTouchStart:D,onTouchMove:L,onTouchEnd:F,onFocus:()=>{p&&p()},onBlur:()=>{u&&u()},style:{width:"100%",height:"150px",border:"2px solid var(--df-color-primary-border)",borderRadius:"6px",cursor:O?"not-allowed":"crosshair",backgroundColor:"var(--df-color-fb-input-bg)",touchAction:"none",userSelect:"none"}}),!O&&m.jsx("button",{type:"button",onClick:e=>(e=>{e?.preventDefault(),e?.stopPropagation();const t=g.current;if(!t)return;const s=t.getBoundingClientRect();t.width=s.width,t.height=s.height;const n=t.getContext("2d");if(!n)return;const i=$();n.fillStyle=i.backgroundColor,n.fillRect(0,0,s.width,s.height),n.strokeStyle=i.strokeColor,n.lineWidth=2,n.lineCap="round",n.lineJoin="round",N(""),E("")})(e),className:"clear-signature-btn",style:{position:"absolute",bottom:"8px",right:"8px",padding:"4px 8px",backgroundColor:"var(--df-color-error-primary)",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"0.75rem",fontWeight:"500",zIndex:10,transition:"all 0.2s ease",minWidth:"60px",minHeight:"28px"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="var(--df-color-error-dark, #dc2626)",e.currentTarget.style.transform="scale(1.05)"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="var(--df-color-error-primary)",e.currentTarget.style.transform="scale(1)"},children:"Clear"})]}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:k(C),isTouched:y,mode:c})]})]})},$=({id:e,properties:s,validationErrors:n={},formValue:i=null,readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="test",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,v]=t.useState([]),[x,y]=t.useState(!1),[j,C]=t.useState(!1),N=t.useRef(null),S=t.useCallback(t=>{if(!t)return[];const s=Array.isArray(t)?t:Array.from(t),n=[];return s.forEach((t,s)=>{let i,a,r=0,o="",l="";if(t instanceof File||t instanceof Blob){const e=t;if(r=e.size||0,o=e.type||"",l=e.name||`file-${s}`,a=e,o.startsWith("image/"))try{i=URL.createObjectURL(e)}catch(e){console.error("Error creating object URL:",e),i=void 0}}else if("string"==typeof t){const e=t;let n="";if(e.startsWith("data:")){const t=e.match(/filename=([^;]+)/i);if(t)n=decodeURIComponent(t[1]);else{const t=e.match(/data:([^;]+)/);if(t){const e=t[1];n=`file-${s+1}.${e.includes("image")?"png":e.includes("pdf")?"pdf":e.includes("word")?"doc":e.includes("excel")?"xls":"file"}`}else n=`file-${s+1}`}}else if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("blob:"))try{const t=new URL(e),i=t.pathname.split("/").pop()||"";if(i&&i.includes("."))n=decodeURIComponent(i);else{const e=t.searchParams.get("filename")||t.searchParams.get("name");n=e?decodeURIComponent(e):`file-${s+1}`}}catch(t){const i=e.lastIndexOf("/"),a=i>=0?e.substring(i+1):e,r=a.indexOf("?"),o=r>=0?a.substring(0,r):a;n=o&&o.includes(".")?decodeURIComponent(o):`file-${s+1}`}else n=`file-${s+1}`;if(l=n||`file-${s+1}`,e.startsWith("data:")){const t=e.indexOf(";");o=t>5?e.substring(5,t):"application/octet-stream"}else{const t=e.match(/\.(jpg|jpeg|png|gif|webp|svg|pdf|doc|docx|xls|xlsx|zip|rar)$/i)||l.match(/\.(jpg|jpeg|png|gif|webp|svg|pdf|doc|docx|xls|xlsx|zip|rar)$/i);if(t){o={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",pdf:"application/pdf",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",zip:"application/zip",rar:"application/x-rar-compressed"}[t[1].toLowerCase()]||"application/octet-stream"}else o="application/octet-stream"}(e.startsWith("data:image")||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("blob:"))&&(i=e),a=new File([],l,{type:o})}else{if(!t||"object"!=typeof t)return;{const e=t;if(l=e.name||e.fileName||`file-${s}`,r=e.size||e.fileSize||0,o=e.type||e.fileType||e.mimeType||"",e.url||e.path)i=e.url||e.path;else if(o.startsWith("image/")&&e.data){const t=e.data;i="string"==typeof t?t.startsWith("data:")?t:`data:${o};base64,${t}`:void 0}a=new File([],l,{type:o})}}n.push({file:a,id:`${e}-file-${s}`,size:r,type:o,name:l,preview:i})}),n},[e]),w=t.useCallback(()=>({isValid:!0,errors:{}}),[]),k=t.useCallback(t=>{if(a||r)return;const n=S(t),i=g.length>0?[...g,...n]:n,o=s?.validation?.maxFiles||1/0,l=i.slice(0,o);if(v(l),C(!0),d){const t=w(),s={id:e,value:l.map(e=>e.file),isValid:t.isValid,errors:t.errors};d(s)}},[g,s,a,r,d,w,S,e]),E=e=>{if(0===e)return"0 Bytes";const t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(2))+" "+["Bytes","KB","MB","GB"][t]},$=e=>e.startsWith("image/")?"🖼️":e.startsWith("video/")?"🎥":e.startsWith("audio/")?"🎵":e.includes("pdf")?"📄":e.includes("word")||e.includes("document")?"📝":e.includes("excel")||e.includes("spreadsheet")?"📊":e.includes("zip")||e.includes("rar")?"📦":"📁";t.useEffect(()=>{j&&(o[e]=!0)},[j,e,o]),t.useEffect(()=>{("edit"===c||"test"===c)&&C(!1)},[c]),t.useEffect(()=>{const e=S(i);v(e)},[i,S]),t.useEffect(()=>{l&&C(!0)},[l]),t.useEffect(()=>()=>{g.forEach(e=>{if(e.preview&&e.preview.startsWith("blob:"))try{URL.revokeObjectURL(e.preview)}catch(e){console.error("Error revoking object URL:",e)}})},[g]);const T=()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"},A=r||a||s?.validation?.readonly,I=s?.validation?.multiple||!1,R=s?.validation?.accept||"*/*",D=s?.validation?.maxFiles||1/0,L=g.length<D&&(I||D>1),F="edit"===c,V="preview"===c||"test"===c,O=g.filter(e=>e.type.startsWith("image/")),M=g.filter(e=>!e.type.startsWith("image/")),q=O.length>0;return V&&q?m.jsxs("div",{className:`form-group ${T()}`,children:[!f&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic?.label||"Attachments",s.validation?.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"file-upload-wrapper",children:[m.jsxs("div",{className:"file-image-display",children:[O.map(e=>m.jsxs("div",{className:"file-image-container",children:[e.preview&&m.jsx("img",{src:e.preview,alt:e.name,className:"file-image-preview"}),m.jsxs("div",{className:"file-image-info",children:[m.jsx("div",{className:"file-name",title:e.name,children:e.name}),m.jsx("div",{className:"file-size",children:E(e.size)})]})]},e.id)),M.length>0&&m.jsxs("div",{className:"file-other-files",children:[m.jsx("div",{className:"file-other-files-label",children:"Other Files:"}),M.map(e=>m.jsxs("div",{className:"file-item-minimal",children:[m.jsx("div",{className:"file-icon",children:$(e.type)}),m.jsxs("div",{className:"file-info",children:[m.jsx("div",{className:"file-name",title:e.name,children:e.name}),m.jsx("div",{className:"file-size",children:E(e.size)})]})]},e.id))]})]}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:w(),isTouched:j,mode:c})]})]}):m.jsxs("div",{className:`form-group ${T()}`,children:[!f&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic?.label||"Attachments",s.validation?.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"file-upload-wrapper",children:[m.jsxs("div",{className:`file-upload-area ${x?"drag-over":""} ${a?"readonly":""} ${r?"disabled":""} ${h}`.trim(),onDragOver:e=>{e.preventDefault(),a||r||y(!0)},onDragLeave:e=>{e.preventDefault(),y(!1)},onDrop:e=>{if(e.preventDefault(),y(!1),a||r)return;const t=e.dataTransfer.files;t.length>0&&k(t)},onClick:e=>{const t=e.target,s=null!==t.closest(".file-item"),n=null!==t.closest(".file-remove");!F||A||0!==g.length||s||n||N.current?.click()},onFocus:()=>{p&&p()},onBlur:()=>{if(C(!0),"test"===c&&d){const t=w(),s={id:e,value:g.map(e=>e.file),isValid:t.isValid,errors:t.errors};d(s)}u&&u()},tabIndex:A?-1:0,children:[m.jsx("input",{ref:N,type:"file",id:e,multiple:I,accept:R,onChange:e=>{const t=e.target.files;t&&t.length>0&&(k(t),e.target.value="")},disabled:A,style:{display:"none"}}),0===g.length?m.jsxs("div",{className:"upload-placeholder",onClick:e=>{e.stopPropagation(),F&&!A&&N.current?.click()},children:[m.jsx("div",{className:"upload-icon",children:"📁"}),m.jsx("div",{className:"upload-text",children:s.basic.placeholder&&m.jsx("p",{className:"upload-hint",children:s.basic.placeholder})})]}):m.jsx("div",{className:"file-list",children:g.map(t=>m.jsxs("div",{className:"file-item",children:[m.jsx("div",{className:"file-preview",children:t.preview?m.jsx("img",{src:t.preview,alt:t.name,className:"file-image"}):m.jsx("div",{className:"file-icon",children:$(t.type)})}),m.jsxs("div",{className:"file-info",children:[m.jsx("div",{className:"file-name",title:t.name,children:t.name}),m.jsx("div",{className:"file-size",children:E(t.size)})]}),F&&!A&&m.jsx("button",{type:"button",className:"file-remove",onClick:s=>{s.stopPropagation(),(t=>{if(a||r)return;const s=g.filter(e=>e.id!==t);if(v(s),C(!0),d){const t=w(),n={id:e,value:s.map(e=>e.file),isValid:t.isValid,errors:t.errors};d(n)}})(t.id)},"aria-label":`Remove ${t.name}`,children:"✕"})]},t.id))})]}),g.length>0&&L&&!A&&F&&m.jsxs("button",{type:"button",className:"file-add-more",onClick:e=>{e.stopPropagation(),!A&&N.current&&F&&(N.current.value="",N.current.click())},"aria-label":"Add more files",children:[m.jsx("svg",{className:"file-add-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:m.jsx("path",{d:"M12 5v14M5 12h14"})}),m.jsx("span",{className:"file-add-text",children:"Add More Files"})]}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:w(),isTouched:j,mode:c})]})]})},T=({id:e,properties:n,validationErrors:i={},formValue:a=null,readonly:r=!1,disabled:o=!1,touchedFields:l={},formSubmitted:c=!1,mode:d="test",onValueChange:u,onBlur:p,onFocus:h,className:f="",hideLabel:g=!1})=>{const[v,x]=t.useState(a),[y,j]=t.useState(!1),[C,N]=t.useState(""),[S,w]=t.useState(!1),[k,E]=t.useState(!1),[$,T]=t.useState({lat:40.7128,lng:-74.006}),[A,I]=t.useState(null),[R,D]=t.useState(10),[L,F]=t.useState(""),[V,O]=t.useState(!1),M=t.useRef(null),[q,P]=t.useState(!1),[z,_]=t.useState(null),[W,B]=t.useState(!1);t.useEffect(()=>{a?(x(a),a.latitude&&a.longitude&&(I({lat:a.latitude,lng:a.longitude,isCurrentLocation:!1}),T({lat:a.latitude,lng:a.longitude}))):(x(null),I(null))},[a]),t.useEffect(()=>{k&&40.7128===$.lat&&$.lng},[k,$]),t.useEffect(()=>{(r||o)&&(k&&E(!1),L&&F(""),q&&(P(!1),_(null)))},[r,o]);const U=t.useCallback(async(e,t)=>{B(!0);try{const s=await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${e}&lon=${t}&addressdetails=1&zoom=18`),n=await s.json();if(n&&n.address){const e=n.address;return{placeName:n.display_name||"",city:e.city||e.town||e.village||e.municipality||"",country:e.country||""}}}catch(e){console.error("Reverse geocoding failed:",e)}finally{B(!1)}return{placeName:"",city:"",country:""}},[]),J=t.useCallback(async(t,s,n)=>{const i=await U(t,s),a={latitude:t,longitude:s,timestamp:Date.now(),placeName:i.placeName,city:i.city,country:i.country,address:i.placeName,...n};if(x(a),I({lat:t,lng:s,isCurrentLocation:!1}),w(!0),u){u({id:e,value:a,isValid:!0,errors:{}})}},[U,e,u]),H=t.useCallback(()=>{if(r||o)return;if(!navigator.geolocation)return void N("Geolocation is not supported by this browser.");j(!0),N("");const e={enableHighAccuracy:n.validation?.enableHighAccuracy??!0,timeout:n.validation?.timeout??1e4,maximumAge:n.validation?.maximumAge??3e5};navigator.geolocation.getCurrentPosition(async e=>{const t=e.coords.latitude,s=e.coords.longitude;I({lat:t,lng:s,isCurrentLocation:!0}),T({lat:t,lng:s}),w(!0),await J(t,s,{accuracy:e.coords.accuracy,timestamp:e.timestamp}),j(!1)},e=>{j(!1);let t="Unable to retrieve your location.";switch(e.code){case e.PERMISSION_DENIED:t="Location access denied by user.";break;case e.POSITION_UNAVAILABLE:t="Location information is unavailable.";break;case e.TIMEOUT:t="Location request timed out."}N(t)},e)},[r,o,e,u,n]),G=t.useCallback(()=>{if(!r&&!o&&(x(null),I(null),N(""),w(!0),u)){u({id:e,value:null,isValid:!0,errors:{}})}},[r,o,e,u]),Y=t.useCallback(()=>{r||o||E(!k)},[r,o,k]),X=t.useCallback((e,t,s,n,i,a)=>{const r=e-i/2,o=t-a/2,l=156543.03392*Math.cos(s.lat*Math.PI/180)/Math.pow(2,n),c=r*l,d=o*l;return{lat:s.lat+d/111320,lng:s.lng+c/(111320*Math.cos(s.lat*Math.PI/180))}},[]),K=t.useCallback(e=>{r||o||!M.current||0===e.button&&(P(!0),_({x:e.clientX,y:e.clientY}),e.preventDefault())},[r,o]),Z=t.useCallback(e=>{if(!q||!z||!M.current)return;const t=e.clientX-z.x,s=e.clientY-z.y,n=156543.03392*Math.cos($.lat*Math.PI/180)/Math.pow(2,R),i=-s*n/111320,a=t*n/(111320*Math.cos($.lat*Math.PI/180));T({lat:$.lat+i,lng:$.lng+a}),_({x:e.clientX,y:e.clientY})},[q,z,$,R]),Q=t.useCallback(async e=>{if(!M.current)return;if(q&&z){const t=Math.abs(e.clientX-z.x),s=Math.abs(e.clientY-z.y);if(t>5||s>5)return P(!1),void _(null)}if(r||o)return P(!1),void _(null);const t=M.current.getBoundingClientRect(),s=e.clientX-t.left,n=e.clientY-t.top,{lat:i,lng:a}=X(s,n,$,R,t.width,t.height);await J(i,a),P(!1),_(null)},[r,o,M,$,R,X,J,q,z]),ee=t.useCallback(async t=>{if(t.trim()&&!r&&!o){O(!0),N("");try{const s=await fetch(`https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(t)}&limit=5&addressdetails=1`),n=await s.json();if(n&&n.length>0){const t=n[0],s=parseFloat(t.lat),i=parseFloat(t.lon),a=t.address||{},r={latitude:s,longitude:i,address:t.display_name,placeName:t.display_name,city:a.city||a.town||a.village||a.municipality||"",country:a.country||"",timestamp:Date.now()};if(x(r),I({lat:s,lng:i,isCurrentLocation:!1}),T({lat:s,lng:i}),w(!0),u){u({id:e,value:r,isValid:!0,errors:{}})}}else N("No locations found for your search.")}catch(e){N("Failed to search for location. Please try again.")}finally{O(!1)}}},[r,o,e,u]),te=()=>{h&&h()},se=()=>{w(!0),p&&p()},ne=o||r||n?.validation?.readonly,ie=n?.basic?.label||"Location",ae=n?.basic?.description||"";return m.jsxs("div",{className:`form-group ${g?"no-label":""} ${f}`,children:[!g&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[ie,n?.validation?.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),ae&&m.jsx("div",{className:"form-group-description",children:ae}),m.jsxs("div",{className:"location-wrapper",children:[!(r&&v)&&m.jsxs("div",{className:"location-controls",children:[m.jsx("button",{type:"button",className:"location-btn "+(y?"loading":""),onClick:H,disabled:ne||y,onFocus:te,onBlur:se,tabIndex:ne?-1:0,children:y?m.jsxs(m.Fragment,{children:[m.jsx(s.Loader2,{size:16,className:"loading-spinner"}),"Getting Location..."]}):m.jsxs(m.Fragment,{children:[m.jsx(s.Navigation,{size:16}),"Get Current Location"]})}),m.jsxs("button",{type:"button",className:"location-btn secondary",onClick:Y,disabled:ne,onFocus:te,onBlur:se,tabIndex:ne?-1:0,children:[m.jsx(s.MapPin,{size:16}),k?"Hide Map":"Choose on Map"]})]}),v&&m.jsxs("div",{className:"location-display",children:[!r&&m.jsx("button",{type:"button",className:"location-clear-btn",onClick:G,disabled:ne,title:"Clear location",children:m.jsx(s.X,{size:16})}),v.placeName&&m.jsxs("div",{className:"location-place-name",children:[m.jsx("strong",{children:"Place:"})," ",v.placeName]}),(v.city||v.country)&&m.jsxs("div",{className:"location-address",children:[m.jsx("strong",{children:"Address:"})," ",[v.city,v.country].filter(Boolean).join(", ")]}),m.jsxs("div",{className:"location-coordinates",children:[m.jsx("strong",{children:"Coordinates:"})," ",(oe=v.latitude,le=v.longitude,void 0===oe||void 0===le||isNaN(oe)||isNaN(le)?"":`${Number(oe).toFixed(6)}, ${Number(le).toFixed(6)}`)]}),v.accuracy&&m.jsxs("div",{className:"location-accuracy",children:[m.jsx("strong",{children:"Accuracy:"})," ",(re=v.accuracy,re?`±${Math.round(re)}m`:"")]}),v.timestamp&&m.jsxs("div",{className:"location-timestamp",children:[m.jsx("strong",{children:"Captured:"})," ",new Date(v.timestamp).toLocaleString()]})]}),k&&!r&&m.jsxs("div",{className:"location-map-container",children:[m.jsxs("div",{className:"location-map-header",children:[m.jsx("h4",{children:"Select Location on Map"}),m.jsx("p",{children:"Search for a place or click on the map to select a location"})]}),m.jsx("div",{className:"location-search",children:m.jsx("form",{onSubmit:e=>{e.preventDefault(),L.trim()&&ee(L)},className:"search-form",children:m.jsxs("div",{className:"search-input-group",children:[m.jsx("input",{type:"text",value:L,onChange:e=>{F(e.target.value)},placeholder:"Search for a place (e.g., New York, Paris, Tokyo)",className:"search-input",disabled:ne||V}),m.jsx("button",{type:"submit",className:"search-btn",disabled:ne||V||!L.trim(),children:V?m.jsx(s.Loader2,{size:16,className:"loading-spinner"}):"Search"})]})})}),m.jsxs("div",{ref:M,className:"location-map "+(q?"dragging":""),onMouseDown:K,onMouseMove:Z,onMouseUp:Q,onMouseLeave:()=>{P(!1),_(null)},style:{position:"relative",height:"400px",border:"2px solid var(--df-color-fb-border)",borderRadius:"8px",overflow:"hidden",cursor:q?"grabbing":"grab",background:`url(https://tile.openstreetmap.org/${R}/${Math.floor(($.lng+180)/360*Math.pow(2,R))}/${Math.floor((1-Math.log(Math.tan($.lat*Math.PI/180)+1/Math.cos($.lat*Math.PI/180))/Math.PI)/2*Math.pow(2,R))}.png) center/cover no-repeat`,userSelect:"none"},children:[A&&m.jsx("div",{className:"map-marker "+(A.isCurrentLocation?"current-location":"selected-location"),style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -100%)",zIndex:10},children:m.jsx(s.MapPin,{size:24})}),m.jsx("div",{className:"map-center-indicator",style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",width:"4px",height:"4px",backgroundColor:"var(--df-color-primary)",borderRadius:"50%",zIndex:5}}),m.jsxs("div",{className:"map-controls",children:[m.jsx("button",{type:"button",className:"map-zoom-btn",onClick:()=>D(e=>Math.min(18,e+1)),disabled:R>=18,children:"+"}),m.jsx("button",{type:"button",className:"map-zoom-btn",onClick:()=>D(e=>Math.max(1,e-1)),disabled:R<=1,children:"−"})]})]}),m.jsxs("div",{className:"location-map-instructions",children:[m.jsx("p",{children:m.jsx("strong",{children:"Instructions:"})}),m.jsxs("ul",{children:[m.jsx("li",{children:"Search for a place using the search box above"}),m.jsx("li",{children:"Click anywhere on the map to select a location"}),m.jsx("li",{children:"Drag the map to pan around"}),m.jsx("li",{children:"Use the zoom buttons (+/−) to zoom in/out"}),m.jsx("li",{children:'Use "Get Current Location" to automatically detect your position'})]})]}),W&&m.jsxs("div",{className:"location-loading",children:[m.jsx(s.Loader2,{size:16,className:"loading-spinner"}),m.jsx("span",{children:"Loading address details..."})]})]}),C&&m.jsx("div",{className:"location-error",children:C})]}),m.jsx(b,{validationErrors:i,fieldId:e,touchedFields:l,formSubmitted:c,properties:n,localValidation:{isValid:!0,errors:{}},isTouched:S,mode:d})]});var re,oe,le},A=({id:e,properties:t,className:s="",hideLabel:n=!1})=>{const i=t.styles?.level??t.basic.level??1,a=t.basic.label,r=()=>{const e={};return t?.styles?.fontSize&&(e.fontSize=t.styles.fontSize),t?.styles?.color&&(e.color=t.styles.color),e};return n?null:(()=>{const n={id:e,className:`form-heading h${i} ${t?.styles?.textAlign?`text-${t.styles.textAlign}`:""} ${s}`.trim(),style:r()};switch(i){case 1:default:return m.jsx("h1",{...n,children:a});case 2:return m.jsx("h2",{...n,children:a});case 3:return m.jsx("h3",{...n,children:a});case 4:return m.jsx("h4",{...n,children:a});case 5:return m.jsx("h5",{...n,children:a});case 6:return m.jsx("h6",{...n,children:a})}})()},I=({id:e,properties:n,mode:i="preview",onValueChange:a,className:r="",hideLabel:o=!1})=>{const[l,c]=t.useState(""),[d,u]=t.useState(n.validation?.listStyle||"numbers"),[p,h]=t.useState("#000000"),f=t.useRef(null),b=t.useRef(null),g=t.useRef(!1),v="edit"===i,x=t.useRef({instructions:[],listStyle:"numbers"}),y=t.useRef(i);t.useEffect(()=>{let e=[];n.basic?.instructions&&(Array.isArray(n.basic.instructions)?e=n.basic.instructions:"string"==typeof n.basic.instructions&&(e=[n.basic.instructions]));const t=n.validation?.listStyle||"numbers",s=JSON.stringify(e)!==JSON.stringify(x.current.instructions)||t!==x.current.listStyle,a=i!==y.current;if(s||a){const n=e.some(e=>"string"==typeof e&&/<[^>]+>/.test(e));let r="";if(e.length>0)if(n)r=e.join("");else{const s="numbers"===t?"ol":"bullets"===t?"ul":"div",n=e.filter(e=>e&&"string"==typeof e).map(e=>`<li>${e.replace(/\n/g,"<br>")}</li>`).join("");r="div"===s?e.filter(e=>e&&"string"==typeof e).map(e=>`<div>${e.replace(/\n/g,"<br>")}</div>`).join(""):`<${s}>${n}</${s}>`}u(t),c(r),v&&f.current&&(a||s&&f.current.innerHTML.trim()!==r.trim())&&(f.current.innerHTML=r),x.current={instructions:e,listStyle:t},y.current=i}},[n.basic?.instructions,n.validation?.listStyle,i,v]),t.useEffect(()=>{if(v&&f.current){const e=f.current.innerHTML.trim();l.trim()===e||g.current||(f.current.innerHTML=l)}if(g.current){const e=setTimeout(()=>{g.current=!1},200);return()=>clearTimeout(e)}},[l,v]);const j=t.useCallback(()=>{if(!f.current)return;g.current=!0;const t=f.current.innerHTML.trim();if(a){a({id:e,value:{instructions:t?[t]:[],listStyle:d},isValid:!0,errors:{}})}t!==l&&c(t)},[e,d,a,l]),C=t.useCallback(()=>{if(!f.current)return;const t=f.current.innerHTML.trim();if(a){a({id:e,value:{instructions:t?[t]:[],listStyle:d},isValid:!0,errors:{}})}c(t),g.current=!1},[e,d,a]),N=t.useCallback((e,t)=>{document.execCommand(e,!1,t),f.current?.focus(),j()},[j]),S=t.useCallback(()=>{N("bold")},[N]),w=t.useCallback(()=>{N("italic")},[N]),k=t.useCallback(e=>{const t=e.target.value;h(t),N("foreColor",t)},[N]),E=t.useCallback(t=>{if(u(t),!f.current)return;const s=window.getSelection(),n=s&&s.rangeCount>0?s.getRangeAt(0):null;let i=f.current.innerHTML;if("numbers"===t){if(i=i.replace(/<ul>/gi,"<ol>").replace(/<\/ul>/gi,"</ol>"),!i.includes("<ol>")&&!i.includes("<ul>")){const e=i.split(/<br\s*\/?>/i).filter(e=>e.trim());e.length>0&&(i="<ol>"+e.map(e=>`<li>${e}</li>`).join("")+"</ol>")}}else if("bullets"===t){if(i=i.replace(/<ol>/gi,"<ul>").replace(/<\/ol>/gi,"</ul>"),!i.includes("<ol>")&&!i.includes("<ul>")){const e=i.split(/<br\s*\/?>/i).filter(e=>e.trim());e.length>0&&(i="<ul>"+e.map(e=>`<li>${e}</li>`).join("")+"</ul>")}}else i=i.replace(/<\/?[ou]l>/gi,"").replace(/<li>/gi,"<div>").replace(/<\/li>/gi,"</div>");if(f.current.innerHTML=i,c(i),n&&s)try{s.removeAllRanges(),s.addRange(n)}catch(e){}if(j(),a){a({id:e,value:{instructions:i?[i]:[],listStyle:t},isValid:!0,errors:{}})}},[e,j,a]),$=t.useCallback(e=>{const t=e.target.files?.[0];if(!t||!t.type.startsWith("image/"))return;const s=new FileReader;s.onload=e=>{const t=e.target?.result;if(t&&f.current){const e=document.createElement("img");e.src=t,e.style.maxWidth="100%",e.style.height="auto";const s=window.getSelection();if(s&&s.rangeCount>0){const t=s.getRangeAt(0);t.deleteContents(),t.insertNode(e)}else f.current.appendChild(e);j()}},s.readAsDataURL(t),b.current&&(b.current.value="")},[j]),T=t.useCallback(e=>{e.preventDefault();const t=e.clipboardData.getData("text/plain"),s=window.getSelection();if(s&&s.rangeCount>0){const e=s.getRangeAt(0);e.deleteContents();const n=document.createTextNode(t);e.insertNode(n),e.setStartAfter(n),e.collapse(!0),s.removeAllRanges(),s.addRange(e)}j()},[j]),A=t.useCallback(e=>document.queryCommandState(e),[]);return m.jsxs("div",{className:`form-group instruction-group ${r}`,children:[!o&&m.jsx("label",{htmlFor:e,className:"instruction-label",children:"Instructions"}),v?m.jsxs("div",{className:"instruction-rich-editor",children:[m.jsxs("div",{className:"instruction-toolbar",children:[m.jsxs("div",{className:"toolbar-group",children:[m.jsx("button",{type:"button",className:"toolbar-btn "+(A("bold")?"active":""),onClick:S,title:"Bold","aria-label":"Bold",children:m.jsx(s.Bold,{size:16})}),m.jsx("button",{type:"button",className:"toolbar-btn "+(A("italic")?"active":""),onClick:w,title:"Italic","aria-label":"Italic",children:m.jsx(s.Italic,{size:16})})]}),m.jsx("div",{className:"toolbar-separator"}),m.jsx("div",{className:"toolbar-group",children:m.jsxs("div",{className:"color-picker-wrapper",children:[m.jsx("input",{type:"color",value:p,onChange:k,className:"color-picker-input",title:"Text Color"}),m.jsx("label",{className:"color-picker-label",title:"Text Color",children:m.jsx("span",{style:{color:p},children:"A"})})]})}),m.jsx("div",{className:"toolbar-separator"}),m.jsxs("div",{className:"toolbar-group",children:[m.jsx("button",{type:"button",className:"toolbar-btn "+("bullets"===d?"active":""),onClick:()=>E("bullets"),title:"Bullet List","aria-label":"Bullet List",children:m.jsx(s.List,{size:16})}),m.jsx("button",{type:"button",className:"toolbar-btn "+("numbers"===d?"active":""),onClick:()=>E("numbers"),title:"Numbered List","aria-label":"Numbered List",children:m.jsx(s.ListOrdered,{size:16})})]}),m.jsx("div",{className:"toolbar-separator"}),m.jsxs("div",{className:"toolbar-group",children:[m.jsx("button",{type:"button",className:"toolbar-btn",onClick:()=>b.current?.click(),title:"Insert Image","aria-label":"Insert Image",children:m.jsx(s.Image,{size:16})}),m.jsx("input",{ref:b,type:"file",accept:"image/*",onChange:$,style:{display:"none"}})]})]}),m.jsx("div",{ref:f,contentEditable:!0,className:"instruction-editor-content",onInput:j,onBlur:C,onPaste:T,"data-placeholder":"Enter instructions (press Enter for a new line)...",suppressContentEditableWarning:!0})]}):m.jsx("div",{className:"instruction-preview-wrapper "+("numbers"===d?"instruction-list-numbers":"bullets"===d?"instruction-list-bullets":""),children:l?m.jsx("div",{className:"instruction-preview-content",dangerouslySetInnerHTML:{__html:l}}):m.jsx("div",{className:"instruction-empty",children:m.jsx("p",{children:"No instructions provided"})})})]})},R=({attachments:e,onRemove:n})=>{const[i,a]=t.useState(new Map);return t.useEffect(()=>{if(!e)return void a(e=>(e.forEach(e=>URL.revokeObjectURL(e)),new Map));const t=new Map;return e.forEach((e,s)=>{if(e.type.startsWith("image/")){const n=URL.createObjectURL(e);t.set(s,n)}}),a(e=>(e.forEach((e,s)=>{t.has(s)||URL.revokeObjectURL(e)}),t)),()=>{t.forEach(e=>URL.revokeObjectURL(e))}},[e]),e&&0!==e.length?m.jsx("div",{className:"attachment-thumbnails-container",children:e.map((e,t)=>{const a=e.type.startsWith("image/"),r=i.get(t);return m.jsx("div",{className:"attachment-thumbnail",children:a&&r?m.jsxs(m.Fragment,{children:[m.jsx("img",{src:r,alt:e.name}),m.jsx("button",{type:"button",className:"thumbnail-remove-btn",onClick:()=>n(t),title:"Remove attachment",children:m.jsx(s.X,{size:14})})]}):m.jsxs(m.Fragment,{children:[m.jsx("div",{className:"file-icon-placeholder",children:m.jsx(s.Paperclip,{size:20})}),m.jsx("span",{className:"file-name",children:e.name}),m.jsx("button",{type:"button",className:"thumbnail-remove-btn",onClick:()=>n(t),title:"Remove attachment",children:m.jsx(s.X,{size:14})})]})},t)})}):null},D=({component:e,mode:n,formTemplateId:i,formValue:a,onNotesChange:r,onAttachmentChange:o,notes:l="",attachments:c=null,onThresholdActionCompletion:d,onThresholdIssueRaised:u,onBasicPropertyActionCompletion:p})=>{const[h,f]=t.useState(l||""),[b,g]=t.useState(c||null),[x,y]=t.useState(!1),[j,C]=t.useState(!1),[N,S]=t.useState(!1),[w,k]=t.useState(!1),[E,$]=t.useState(!1),T=t.useRef(null),A=t.useRef(a),I=t.useRef(!1),D=t.useRef(!1);t.useEffect(()=>{if(!I.current&&null!=l){const e="string"==typeof l?l:String(l||"");f(e),I.current=!0}},[l]),t.useEffect(()=>{D.current||void 0===c||(g(c),D.current=!0)},[c]),t.useEffect(()=>{if(I.current&&!x&&null!=l){const e="string"==typeof l?l:String(l||"");h&&""!==String(h||"").trim()||!e||""===e.trim()?e&&""!==e.trim()&&e!==h&&f(e):f(e)}},[l,x,h]),t.useEffect(()=>{D.current&&void 0!==c&&(!b||c&&c.length>0&&c!==b)&&g(c)},[c,b]),t.useEffect(()=>{const t=["select","radio","checkbox","segment"].includes(e.name||"");if(t){const t=A.current,s=a;let n=!1;if("checkbox"===e.name){const e=Array.isArray(t)?t:t?[t]:[],i=Array.isArray(s)?s:s?[s]:[];n=JSON.stringify(e.sort())!==JSON.stringify(i.sort())}else n=t!==s&&void 0!==t;if(n){S(!1),k(!1),C(!1),y(!1),$(!1);const e="string"==typeof l?l:String(l||"");e&&""!==e.trim()?f(e):f(""),c&&0!==c.length?g(c):g(null)}A.current=s}t||(A.current=a)},[a,e.name,l,c]);const L=t.useCallback((e,t)=>{const{operator:s,value:n}=e,i=String(t).toLowerCase(),a=String(n).toLowerCase();switch(s){case"equals":return i===a||String(t)===String(n);case"notEquals":return i!==a&&String(t)!==String(n);case"greaterThan":return Number(t)>Number(n);case"lessThan":return Number(t)<Number(n);case"greaterThanOrEqual":return Number(t)>=Number(n);case"lessThanOrEqual":return Number(t)<=Number(n);default:return!1}},[]),F=t.useCallback(()=>{if(!(null!=a&&""!==a&&!(Array.isArray(a)&&0===a.length)))return[];const t=e.condition;if(!t||!t.conditions||0===t.conditions.length)return[];const s=[];if("checkbox"===e.name&&Array.isArray(a))a.forEach(e=>{const n=t.conditions.find(t=>L(t,e));n&&!s.find(e=>e.id===n.id)&&s.push(n)});else{const e=t.conditions.find(e=>L(e,a));e&&s.push(e)}return s},[e,a,L]),V=t.useCallback(t=>{const s=t.target.value;f(s),r&&r(s);const n=F(),i=String(s||"").trim().length>0;n.forEach(e=>{!0===e.enableNotes&&d&&d(e.id,"notes",i)});const a=e.condition;!(a&&a.conditions&&a.conditions.length>0)&&p&&p("notes",i)},[r,F,d,e,p]),O=t.useCallback(()=>{if(r){const e="string"==typeof h?h:String(h||"");r(e),setTimeout(()=>{y(!1)},0)}else y(!1)},[h,r]),M=t.useCallback(()=>{O()},[O]),q=t.useCallback(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),O())},[O]),P=t.useCallback(()=>{y(!0)},[]),z=t.useCallback(()=>{y(!0)},[]),_=t.useCallback(()=>{T.current?.click()},[]),W=t.useCallback(t=>{const s=t.target.files;if(s&&s.length>0){const t=Array.from(s);g(t),o&&o(t);F().forEach(e=>{!0===e.enableAttachment&&d&&d(e.id,"attachments",!0)});const n=e.condition;!(n&&n.conditions&&n.conditions.length>0)&&p&&p("attachments",!0)}T.current&&(T.current.value="")},[o,F,d,e,p]),B=t.useCallback(t=>{if(b){const s=b.filter((e,s)=>s!==t);if(0===s.length){g(null),o&&o(null);F().forEach(e=>{!0===e.enableAttachment&&d&&d(e.id,"attachments",!1)});const t=e.condition;!(t&&t.conditions&&t.conditions.length>0)&&p&&p("attachments",!1)}else g(s),o&&o(s)}},[b,o,F,d,e,p]),U=t.useCallback(()=>{S(!0);F().forEach(e=>{!0===e.enableSendEmail&&d&&d(e.id,"email",!0)});const t=e.condition;!(t&&t.conditions&&t.conditions.length>0)&&p&&p("email",!0),setTimeout(()=>{S(!1)},3e3)},[F,d,e,p]),J=t.useCallback(()=>{C(!0)},[]),H=t.useCallback(()=>{C(!1)},[]),G=t.useCallback(()=>{C(!1),k(!0);const t=e.condition;if(t&&t.conditions&&t.conditions.length>0){F().forEach(e=>{!0===e.enableRaiseIssue&&u&&u(e.id)})}else p&&p("issue",!0)},[e,p,F,u]);if("test"!==n)return null;const Y=["select","radio","checkbox","segment"].includes(e.name||""),X=e.basic?.options||e.options||[];let K=!1,Z=!1,Q=!1,ee=!1,te=null;const se=null!=a&&""!==a&&!(Array.isArray(a)&&0===a.length),ne=e.condition,ie=ne&&ne.conditions&&ne.conditions.length>0;if(ie&&se)if("checkbox"===e.name&&Array.isArray(a)){const e=a;for(const t of e){const e=ne.conditions.find(e=>L(e,t));e&&(K=K||!0===e.enableNotes,Z=Z||!0===e.enableAttachment,Q=Q||!0===e.enableRaiseIssue,ee=ee||!0===e.enableSendEmail)}}else if(Y){const e=ne.conditions.find(e=>L(e,a));e&&(K=!0===e.enableNotes,Z=!0===e.enableAttachment,Q=!0===e.enableRaiseIssue,ee=!0===e.enableSendEmail)}else{const e=ne.conditions.find(e=>L(e,a));e&&(K=!0===e.enableNotes,Z=!0===e.enableAttachment,Q=!0===e.enableRaiseIssue,ee=!0===e.enableSendEmail)}if(!ie){const t=e.basic,s=!0===t?.enableNotes,n=!0===t?.enableAttachment,i=!0===t?.enableRaiseIssue,r=!0===t?.enableSendEmail;if(Y)if(se)if("checkbox"===e.name){(Array.isArray(a)?a:[a]).forEach(e=>{const t=X.find(t=>!(!t||!t.value)&&(t.value===e||(String(t.value)===String(e)||(t.label===e||String(t.label)===String(e)))));t&&(K=K||!0===t.enableNotes,Z=Z||!0===t.enableAttachment,Q=Q||!0===t.enableRaiseIssue,ee=ee||!0===t.enableSendEmail,te||(te=t))}),K=K||s,Z=Z||n,Q=Q||i,ee=ee||r}else if(te=X.find(e=>!(!e||!e.value)&&(e.value===a||(String(e.value)===String(a)||(e.label===a||String(e.label)===String(a))))),te){const e=!0===te.enableNotes,t=!0===te.enableAttachment,a=!0===te.enableRaiseIssue,o=!0===te.enableSendEmail;K=e||s,Z=t||n,Q=a||i,ee=o||r}else K=s,Z=n,Q=i,ee=r;else K=s,Z=n,Q=i,ee=r;else K=s,Z=n,Q=i,ee=r}if(!(K||Z||Q||ee))return null;const ae=F(),re=e.condition,oe=re&&re.conditions&&re.conditions.length>0,le=!!oe&&ae.some(e=>!0===e.enableNotes),ce=!!oe&&ae.some(e=>!0===e.enableAttachment),de=!!oe&&ae.some(e=>!0===e.enableSendEmail),ue=!!oe&&ae.some(e=>!0===e.enableRaiseIssue),me=String(h||"").trim().length>0,pe=b&&b.length>0,he=b?b.length:0;return m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"component-action-features",children:[m.jsxs("div",{className:"action-icons-toolbar",children:[K&&m.jsxs("button",{type:"button",className:`action-icon-button ${me?"active":""} ${le?"mandatory":""}`,onClick:P,title:"Add Notes",children:[m.jsx(s.MessageSquare,{size:14,fill:me?"currentColor":"none"}),le&&m.jsx("span",{className:"mandatory-indicator",children:"*"})]}),Z&&m.jsxs("button",{type:"button",className:`action-icon-button ${pe?"active":""} ${ce?"mandatory":""}`,onClick:_,title:"Add Attachment",children:[m.jsx(s.Paperclip,{size:14,fill:pe?"currentColor":"none"}),he>0&&m.jsx("span",{className:"attachment-count-badge",children:he}),ce&&m.jsx("span",{className:"mandatory-indicator",children:"*"})]}),ee&&m.jsxs("button",{type:"button",className:`action-icon-button ${N?"active sent":""} ${de?"mandatory":""}`,onClick:U,disabled:N,title:"Send Email",children:[N?m.jsx(m.Fragment,{children:m.jsx(s.Check,{size:14})}):m.jsx(s.Mail,{size:14,fill:N?"currentColor":"none"}),de&&m.jsx("span",{className:"mandatory-indicator",children:"*"})]}),Q&&m.jsxs("button",{type:"button",className:`action-icon-button ${w?"active":""} ${ue?"mandatory":""}`,onClick:J,title:"Raise an Issue",children:[m.jsx(s.AlertCircle,{size:14,fill:w?"currentColor":"none"}),ue&&m.jsx("span",{className:"mandatory-indicator",children:"*"})]}),(me&&K||pe&&Z)&&m.jsx("button",{type:"button",className:"action-icon-button accordion-toggle",onClick:()=>$(!E),title:E?"Collapse":"Expand",children:E?m.jsx(s.ChevronUp,{size:14}):m.jsx(s.ChevronDown,{size:14})})]}),x&&K&&m.jsxs("div",{className:"notes-input-overlay",children:[m.jsx("textarea",{className:"action-notes-textarea",value:h,onChange:V,onBlur:M,onKeyDown:q,placeholder:"Explain which protocols were not followed (Press Ctrl+Enter to save)",rows:4,autoFocus:!0}),m.jsxs("div",{className:"notes-input-actions",children:[m.jsx("button",{type:"button",className:"notes-save-button",onClick:O,title:"Save notes (Ctrl+Enter)",children:"Save"}),m.jsx("button",{type:"button",className:"notes-cancel-button",onClick:()=>{y(!1)},title:"Cancel",children:"Cancel"})]})]}),E&&m.jsxs("div",{className:"actions-content",children:[!x&&me&&K&&m.jsx("div",{className:"notes-summary-section",children:m.jsxs("div",{className:"notes-full-text",onClick:z,children:[m.jsx("span",{className:"notes-label",children:"Notes:"})," ",h]})}),pe&&Z&&m.jsx("div",{className:"attachments-section",children:m.jsx(R,{attachments:b,onRemove:B})})]}),Z&&m.jsx("input",{ref:T,type:"file",multiple:!0,accept:"image/*,.pdf",onChange:W,style:{display:"none"}})]}),j&&m.jsx(v,{isOpen:j,onClose:H,onSuccess:G,component:te?{...e,basic:{...e.basic,label:`${e.basic?.label||"Component"} - ${te.label||te.value}`,value:te.value||e.basic?.value||""}}:e,formTemplateId:i||"",notes:h,attachments:b})]})},L=({attachments:e})=>e&&0!==e.length?m.jsx("div",{className:"attachment-thumbnails-container",children:e.map((e,t)=>{const n=e.type?.startsWith("image/")||!1,i=n?(e=>e.data?e.data.startsWith("data:")?e.data:`data:${e.type||"image/png"};base64,${e.data}`:"")(e):"";return m.jsx("div",{className:"attachment-thumbnail",children:n&&i?m.jsx("img",{src:i,alt:e.name||`Attachment ${t+1}`}):m.jsxs("div",{className:"file-icon-placeholder",children:[m.jsx(s.Paperclip,{size:20}),m.jsx("span",{className:"file-name",children:e.name||`File ${t+1}`})]})},t)})}):null,F=({component:e})=>{const t=e.basic?.notes||"",s=e.basic?.attachments||[],n=t&&t.trim().length>0,i=s&&s.length>0;return n||i?m.jsx("div",{className:"component-submission-actions",children:m.jsxs("div",{className:"actions-content",children:[n&&m.jsx("div",{className:"notes-summary-section",children:m.jsxs("div",{className:"notes-full-text",children:[m.jsx("span",{className:"notes-label",children:"Notes:"})," ",t]})}),i&&m.jsx("div",{className:"attachments-section",children:m.jsx(L,{attachments:s})})]})}):null},V=({child:e,selectedChild:t,mode:n,onChildSelect:i,onChildDelete:o,renderFormComponent:l,isOverlay:c=!1,isChildrenEditMode:d=!1,formData:u={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>{const v=u[e.id],x="preview"===n&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0),{attributes:y,listeners:j,setNodeRef:C,transform:N,transition:S,isDragging:w,isSorting:k}=a.useSortable({id:e.id,disabled:c||"edit"!==n}),E={transform:r.CSS.Transform.toString(N),transition:S,opacity:w?.3:1,zIndex:w?1e3:"auto"};return m.jsxs("div",{ref:C,style:E,className:`form-component section-child ${t?.id===e.id?"selected":""} ${w?"dragging":""} ${k?"sorting":""} ${d?"children-edit-active":""}`,onClick:()=>!w&&i(e),role:"button",tabIndex:0,children:[("edit"===n||d)&&m.jsx("div",{className:"child-drag-handle",...j,...y,onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),children:m.jsx(s.GripVertical,{size:14})}),m.jsxs("div",{className:"form-component-content section-child-content",children:[("edit"===n||d)&&m.jsxs("div",{className:"component-actions child-actions",children:[m.jsx("button",{className:"btn edit-btn",onClick:t=>{t.stopPropagation(),i(e)},onMouseDown:e=>e.stopPropagation(),title:"Edit properties",children:m.jsx(s.Edit,{size:12})}),m.jsx("button",{className:"btn delete-btn",onClick:t=>o(e,t),onMouseDown:e=>e.stopPropagation(),title:"Delete component",children:m.jsx(s.Trash2,{size:12})})]}),m.jsxs("div",{className:"component-preview child-preview",children:[l(e),"test"===n&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&m.jsx(D,{component:e,mode:"test",formTemplateId:p,formValue:v,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b?t=>b(e.id,t):void 0,onAttachmentChange:g?t=>g(e.id,t):void 0}),x&&m.jsx(F,{component:e})]})]})]})},O=({id:e,properties:n,mode:r="edit",formData:o={},onValueChange:l,onSelect:c,isSelected:d=!1,className:u="",onSectionSelect:p,onChildSelect:h,onChildDelete:f,selectedChild:b,renderFormComponent:g,formTemplateId:v,onThresholdActionCompletion:x,onThresholdIssueRaised:w,onNotesChange:$,onAttachmentChange:T})=>{const[I,R]=t.useState(n.basic.collapsed),[D,L]=t.useState(!1),[F,O]=t.useState(!1),[M,q]=t.useState(n.basic.label),[P,z]=t.useState(n.basic.description),[_,W]=t.useState(n.children||[]),[B,U]=t.useState(!1);t.useEffect(()=>{W(n.children||[])},[n.children]),t.useEffect(()=>{q(n.basic.label),z(n.basic.description)},[n.basic.label,n.basic.description]);const{setNodeRef:J,isOver:H}=i.useDroppable({id:`section-${e}`,disabled:"edit"!==r}),G=!("preview"!==r&&"test"!==r||n.children&&n.children.length>0),Y=t.useCallback(t=>{q(t),l?.({id:e,value:{...n,basic:{...n.basic,label:t}}})},[e,n,l]),X=t.useCallback(t=>{z(t),l?.({id:e,value:{...n,basic:{...n.basic,description:t}}})},[e,n,l]),K=t.useCallback(e=>{h?.(e)},[h]),Z=t.useCallback((e,t)=>{t.stopPropagation();const s=_.filter(t=>t.id!==e.id);W(s),f?.(e.id)},[f,_,e]),Q=t.useCallback(()=>{p?.(n),c?.()},[p,c,n]),ee=t.useCallback(e=>{e.stopPropagation(),"edit"===r&&_.length>0&&U(!B)},[r,_.length,B]),te=t.useCallback(t=>{t.stopPropagation(),R(!I),l?.({id:e,value:{...n,basic:{...n.basic,collapsed:!I}}})},[I,e,n,l]),se=g||t.useCallback(e=>{const t={id:e.id,properties:e,validationErrors:{},formValue:"test"===r?o[e.id]||"defaultValue"in e.basic&&e.basic.defaultValue||"":"defaultValue"in e.basic&&e.basic.defaultValue||"",touchedFields:{},formSubmitted:!1,mode:r,onValueChange:l,onBlur:()=>{},onFocus:()=>{}};switch(e.name){case"text-input":case"email-input":case"number-input":return m.jsx(y,{...t,properties:e,inputType:"text-input"===e.name?"text":"number-input"===e.name?"number":"email",readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"textarea":return m.jsx(j,{...t,properties:e,readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"select":const s={...e,options:e.basic?.options||[]};return m.jsx(C,{...t,properties:s,disabled:"edit"===r||"preview"===r});case"checkbox":const n={...e,options:e.basic?.options||[]};return m.jsx(N,{...t,properties:n,formValue:[],disabled:"edit"===r||"preview"===r});case"radio":const i={...e,options:e.basic?.options||[]};return m.jsx(S,{...t,properties:i,readonly:"edit"===r||"preview"===r,disabled:"edit"===r||"preview"===r});case"date":case"date-picker":case"datetime-picker":return m.jsx(k,{...t,properties:e,readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"signature":return m.jsx(E,{...t,properties:e});case"heading":return m.jsx(A,{...t,properties:e});default:return m.jsx("div",{className:"form-group",children:m.jsxs("div",{className:"form-group-label",children:["Unsupported Component: ",e.name]})})}},[r,l,o]);if(G)return null;const ne={backgroundColor:n.styles.backgroundColor,borderColor:n.styles.borderColor,borderWidth:n.styles.borderWidth,borderRadius:n.styles.borderRadius,padding:n.styles.padding,margin:n.styles.margin};return m.jsxs("div",{ref:J,className:`df-form-section ${d?"selected":""} ${H?"drag-over":""} ${u}`,style:ne,children:[m.jsxs("div",{className:"section-header "+(B?"children-edit-mode":""),onClick:Q,onDoubleClick:ee,children:[m.jsx("div",{className:"section-header-content",children:m.jsxs("div",{className:"section-title",children:[m.jsx("span",{className:"section-toggle",title:I?"Expand section":"Collapse section",role:"button",tabIndex:0,onClick:e=>{e.stopPropagation(),te(e)},onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),te(e))},style:{marginRight:"8px",display:"inline-flex",alignItems:"center"},children:I?m.jsx(s.ChevronRight,{size:18}):m.jsx(s.ChevronDown,{size:18})}),"edit"===r&&D?m.jsx("input",{type:"text",value:M,onChange:e=>q(e.target.value),onBlur:()=>{L(!1),Y(M)},onKeyDown:e=>{"Enter"===e.key&&(L(!1),Y(M))},className:"section-title-input",autoFocus:!0}):m.jsx("h3",{className:"section-title-text",onDoubleClick:()=>"edit"===r&&L(!0),style:{display:"inline",margin:0},children:M||"Untitled Section"})]})}),(P||"edit"===r)&&m.jsx("div",{className:"section-description",children:"edit"===r&&F?m.jsx("textarea",{value:P,onChange:e=>z(e.target.value),onBlur:()=>{O(!1),X(P)},onKeyDown:e=>{"Enter"===e.key&&e.ctrlKey&&(O(!1),X(P))},className:"section-description-input",placeholder:"Section description (optional)",autoFocus:!0}):m.jsx("p",{className:"section-description-text",onDoubleClick:()=>"edit"===r&&O(!0),children:P||"Section description"})})]}),!I&&m.jsx("div",{className:`section-content ${H?"drag-over":""} ${0===_.length?"empty":"has-children"}`,onClick:e=>{e.target===e.currentTarget&&Q()},children:m.jsx(a.SortableContext,{items:_.map(e=>e.id),strategy:a.verticalListSortingStrategy,children:0===_.length?m.jsxs("div",{className:"section-empty-state",onClick:Q,style:{textAlign:"center",color:"#6b7280",fontSize:"14px",padding:"40px 20px",display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",cursor:"pointer",border:"2px dotted #d1d5db",borderRadius:"8px",backgroundColor:"var(--df-color-fb-container)",transition:"all 0.3s ease",margin:"16px 0"},children:[m.jsx("div",{style:{fontWeight:"500",color:H?"#3b82f6":"#374151"},children:H?"Drop components here":"Empty Section"}),m.jsx("div",{style:{fontSize:"12px",color:"#9ca3af"},children:"Drag and drop components here to create your section"})]}):_.map(e=>m.jsx(V,{child:e,selectedChild:b||null,mode:r,onChildSelect:K,onChildDelete:Z,renderFormComponent:se,isChildrenEditMode:B,formData:o,formTemplateId:v,onNotesChange:$,onAttachmentChange:T,onThresholdActionCompletion:x,onThresholdIssueRaised:w},e.id))})})]})},M=({component:e,selectedComponent:t,mode:n,onComponentSelect:i,onComponentDelete:o,onComponentEdit:l,renderFormComponent:c,isOverlay:d=!1,formData:u={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>{const v=u[e.id],x="preview"===n&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0),{attributes:y,listeners:j,setNodeRef:C,transform:N,transition:S,isDragging:w,isSorting:k}=a.useSortable({id:e.id,disabled:d}),E={transform:r.CSS.Transform.toString(N),transition:S,opacity:w?.3:1,zIndex:w?1e3:"auto"};return m.jsxs("div",{ref:C,style:{...E,border:t?.id===e.id?"2px solid #3b82f6":"1px solid var(--df-color-fb-border)",borderRadius:"8px",backgroundColor:"var(--df-color-fb-container)",padding:"12px",position:"relative",minHeight:"80px",transition:"all 0.2s ease",boxShadow:t?.id===e.id?"0 4px 12px rgba(59, 130, 246, 0.15)":"0 1px 3px rgba(0, 0, 0, 0.1)",cursor:"pointer"},className:`form-component grid-component ${t?.id===e.id?"selected":""} ${w?"dragging":""} ${k?"sorting":""}`,onClick:()=>!w&&i(e),role:"button",tabIndex:0,children:["edit"===n&&m.jsx("div",{className:"component-drag-handle",...j,...y,onClick:e=>e.stopPropagation(),style:{position:"absolute",top:"50%",left:"4px",transform:"translateY(-50%)",padding:"4px",backgroundColor:"#f3f4f6",borderRadius:"4px",cursor:"grab",opacity:1,zIndex:10,display:"flex",alignItems:"center",justifyContent:"center"},children:m.jsx(s.GripVertical,{size:12,color:"var(--df-color-text-light)"})}),m.jsxs("div",{className:"component-content",style:{paddingTop:"edit"===n?"24px":"0",paddingLeft:"edit"===n?"28px":"0",minHeight:"60px"},children:[c(e),"test"===n&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&m.jsx(D,{component:e,mode:"test",formTemplateId:p,formValue:v,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b?t=>b(e.id,t):void 0,onAttachmentChange:g?t=>g(e.id,t):void 0}),x&&m.jsx(F,{component:e})]}),"edit"===n&&m.jsxs("div",{className:"component-actions",style:{position:"absolute",top:"4px",right:"4px",display:"flex",gap:"4px",opacity:1,zIndex:10},children:[l&&m.jsx("button",{className:"component-edit-btn",onClick:t=>{t.stopPropagation(),l(e)},type:"button",title:"Edit Component",style:{padding:"4px",backgroundColor:"#3b82f6",color:"#ffffff",border:"none",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#2563eb"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#3b82f6"},children:m.jsx(s.Edit,{size:12})}),m.jsx("button",{className:"component-delete-btn",onClick:t=>{t.stopPropagation(),o(e,t)},type:"button",title:"Delete Component",style:{padding:"4px",backgroundColor:"#ef4444",color:"#ffffff",border:"none",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#dc2626"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#ef4444"},children:m.jsx(s.Trash2,{size:12})})]})]})},q=({gridComponents:e,mode:t,onComponentSelect:s,onComponentDelete:n,onComponentEdit:r,onComponentUpdate:o,selectedComponent:l,renderFormComponent:c,gridId:d,formData:u={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>{const{setNodeRef:v,isOver:x}=i.useDroppable({id:`grid-drop-zone-${d}`,disabled:"edit"!==t});return m.jsx("div",{ref:v,className:"grid-drop-zone",style:{border:x?"2px dashed #3b82f6":"2px dashed #d1d5db",borderRadius:"8px",padding:"16px",backgroundColor:x?"var(--df-color-primary-light)":"var(--df-color-fb-container)",minHeight:"120px",transition:"all 0.2s ease",position:"relative"},children:e.length>0?m.jsxs(m.Fragment,{children:[m.jsx(a.SortableContext,{items:e.map(e=>e.id),strategy:a.horizontalListSortingStrategy,children:m.jsx("div",{style:{display:"flex",flexDirection:"row",flexWrap:"nowrap",gap:"12px",alignItems:"start",marginBottom:e.length>0?"12px":"0",overflowX:"auto",width:"100%"},children:e.map(e=>m.jsx("div",{style:{flex:"1 1 0",minWidth:"200px",maxWidth:"100%"},children:m.jsx(M,{component:e,selectedComponent:l,mode:t,onComponentSelect:s,onComponentDelete:n,onComponentEdit:r,onComponentUpdate:o,renderFormComponent:c,formData:u,formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})},e.id))})}),m.jsx("div",{style:{border:x?"2px dashed #3b82f6":"1px dashed var(--df-color-fb-border)",borderRadius:"6px",padding:"12px",backgroundColor:x?"var(--df-color-primary-light)":"var(--df-color-fb-container)",textAlign:"center",color:"var(--df-color-text-light)",fontSize:"12px",transition:"all 0.2s ease",minHeight:"40px",display:"flex",alignItems:"center",justifyContent:"center"},children:x?m.jsx("span",{style:{color:"#3b82f6",fontWeight:"500"},children:"Drop component here to add to grid"}):m.jsx("span",{children:"+ Drop more components here"})})]}):m.jsxs("div",{style:{textAlign:"center",color:"var(--df-color-text-light)",fontSize:"14px",padding:"40px 20px",display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",backgroundColor:"var(--df-color-fb-container)",border:"1px dashed var(--df-color-fb-border)",borderRadius:"8px"},children:[m.jsx("div",{style:{fontWeight:"500",color:x?"var(--df-color-primary)":"var(--df-color-text-dark)"},children:x?"Drop components here":"Empty DataGrid"}),m.jsx("div",{style:{fontSize:"12px",color:"#9ca3af"},children:"Drag and drop components here to create your grid"})]})})},P=({templateComponents:e,dataEntries:t,renderFormComponent:s,renderComponent:n,mode:i="preview",allowAddRemoveEntries:a=!0,addAnotherText:r="Add Another",removeText:o="Remove",maxEntries:l=10,minEntries:c=1,displayAsGrid:d=!0,onAddEntry:u,onRemoveEntry:p,formData:h={},formTemplateId:f,onThresholdActionCompletion:b,onThresholdIssueRaised:g,onNotesChange:v,onAttachmentChange:x})=>0===e.length?m.jsxs("div",{style:{textAlign:"center",padding:"40px",color:"var(--df-color-text-light)",border:"1px dashed #d1d5db",borderRadius:"8px",backgroundColor:"var(--df-color-fb-container)"},children:["No components defined. Add components to see the ",d?"table":"list"," view."]}):d?m.jsxs("div",{className:"datagrid-table-view",style:{border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",overflow:"hidden",backgroundColor:"var(--df-color-fb-container)",maxWidth:"100%"},children:[m.jsx("div",{style:{position:"absolute",top:"8px",right:"8px",zIndex:10,fontSize:"12px",color:"var(--df-color-text-light)",backgroundColor:"var(--df-color-fb-container)",padding:"4px 8px",borderRadius:"4px",border:"1px solid var(--df-color-fb-border)",opacity:e.length>4?1:0,transition:"opacity 0.2s ease"},children:"← Scroll →"}),m.jsxs("div",{className:"table-scroll-container",style:{overflowX:"auto",overflowY:"hidden",maxWidth:"100%",scrollbarWidth:"thin",scrollbarColor:"var(--df-color-fb-border) var(--df-color-fb-icon-bg)",position:"relative"},children:[m.jsx("div",{className:"table-headers",style:{display:"grid",gridTemplateColumns:`repeat(${e.length}, minmax(150px, 1fr))`,backgroundColor:"var(--df-color-fb-container)",borderBottom:"2px solid var(--df-color-fb-border)",minWidth:150*e.length+"px"},children:e.map((t,s)=>m.jsx("div",{style:{padding:"12px 16px",fontWeight:"600",color:"var(--df-color-text-dark)",borderRight:s<e.length-1?"1px solid var(--df-color-fb-border)":"none",fontSize:"14px",minWidth:"150px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:t.basic?.label||`Column ${s+1}`},`header-${t.id}`))}),t.length>0?t.map((r,l)=>m.jsxs("div",{className:"table-row",style:{display:"grid",gridTemplateColumns:`repeat(${e.length}, minmax(150px, 1fr))`,borderBottom:l<t.length-1?"1px solid var(--df-color-fb-border)":"none",backgroundColor:l%2==0?"var(--df-color-fb-container)":"var(--df-color-fb-bg)",position:"relative",minWidth:150*e.length+"px"},children:[e.map((t,i)=>{let a=r.components?.[i];if(a)a={...a,id:a.id,basic:{...a.basic,showLabel:!1}};else{const e=`${t.id}-entry-${l}-${i}`;a={...t,id:e,basic:{...t.basic,showLabel:!1}}}return m.jsx("div",{style:{padding:"12px 16px",borderRight:i<e.length-1?"1px solid var(--df-color-fb-border)":"none",minHeight:"60px",minWidth:"150px",display:"flex",alignItems:"center",overflow:"hidden"},children:m.jsx("div",{style:{width:"100%",minWidth:"120px",overflow:"hidden"},children:n?n(a,!0):s(a,!0)})},`${r.id}-${i}`)}),"test"===i&&a&&t.length>c&&m.jsx("button",{onClick:()=>p?.(l),disabled:t.length<=c,style:{position:"absolute",top:"8px",right:"8px",padding:"4px 8px",backgroundColor:t.length<=c?"#f3f4f6":"#ef4444",color:t.length<=c?"#9ca3af":"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px",fontWeight:"500",cursor:t.length<=c?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",zIndex:10,minWidth:"24px",height:"24px",justifyContent:"center"},title:o,children:m.jsx("span",{style:{fontSize:"14px"},children:"×"})})]},r.id)):m.jsxs("div",{style:{padding:"40px",textAlign:"center",color:"var(--df-color-text-light)",backgroundColor:"var(--df-color-fb-container)",borderTop:"1px solid var(--df-color-fb-border)"},children:["No data entries. ","test"===i&&a?'Click "Add Another" to add entries.':"Use the properties panel to add entries."]})]}),"test"===i&&a&&m.jsx("div",{style:{padding:"16px",backgroundColor:"var(--df-color-fb-bg)",borderTop:"1px solid var(--df-color-fb-border)",display:"flex",justifyContent:"center",position:"sticky",bottom:0,zIndex:5},children:m.jsxs("button",{onClick:u,disabled:t.length>=l,style:{padding:"8px 16px",backgroundColor:t.length>=l?"#f3f4f6":"#10b981",color:t.length>=l?"#9ca3af":"#ffffff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"500",cursor:t.length>=l?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"6px"},children:[m.jsx("span",{style:{fontSize:"16px"},children:"+"}),r]})})]}):m.jsxs("div",{className:"datagrid-list-view",style:{display:"flex",flexDirection:"column",gap:"12px",backgroundColor:"var(--df-color-fb-container)"},children:[t.length>0?t.map((r,l)=>m.jsxs("div",{className:"list-entry",style:{border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",padding:"16px",backgroundColor:"var(--df-color-fb-container)",position:"relative",transition:"all 0.2s ease"},children:[m.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px",paddingBottom:"8px",borderBottom:"1px solid var(--df-color-fb-border)"},children:[m.jsxs("span",{style:{fontWeight:"600",color:"var(--df-color-text-dark)",fontSize:"14px"},children:["Entry #",l+1]}),"test"===i&&a&&t.length>1&&m.jsx("button",{onClick:()=>p?.(l),disabled:t.length<=c,style:{padding:"4px 8px",backgroundColor:t.length<=c?"#f3f4f6":"#ef4444",color:t.length<=c?"#9ca3af":"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px",fontWeight:"500",cursor:t.length<=c?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",minWidth:"24px",height:"24px",justifyContent:"center"},title:o,children:m.jsx("span",{style:{fontSize:"14px"},children:"×"})})]}),m.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px"},children:e.map((e,t)=>{let a=r.components?.[t];if(a||(a=r.components?.find(t=>t.name===e.name&&t.basic?.label===e.basic?.label)),a)a={...a,id:a.id,basic:{...a.basic,showLabel:!1}};else{const s=`${e.id}-entry-${l}-${t}`;a={...e,id:s,basic:{...e.basic,showLabel:!1}}}return m.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[m.jsx("label",{style:{fontSize:"12px",fontWeight:"500",color:"var(--df-color-text-light)",textTransform:"uppercase",letterSpacing:"0.05em"},children:e.basic?.label||`Field ${t+1}`}),m.jsxs("div",{style:{minHeight:"40px",display:"flex",alignItems:"center",flexDirection:"column",width:"100%"},children:[n?n(a):s(a),"test"===i&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(a.name)&&m.jsx(D,{component:a,mode:"test",formTemplateId:f,formValue:h[a.id],onThresholdActionCompletion:b,onThresholdIssueRaised:g,onNotesChange:v?e=>v(a.id,e):void 0,onAttachmentChange:x?e=>x(a.id,e):void 0}),"preview"===i&&(a.basic?.notes&&a.basic.notes.trim().length>0||a.basic?.attachments&&Array.isArray(a.basic.attachments)&&a.basic.attachments.length>0?m.jsx(F,{component:a}):null)]})]},`${r.id}-${t}`)})})]},r.id)):m.jsxs("div",{style:{padding:"40px",textAlign:"center",color:"var(--df-color-text-light)",backgroundColor:"var(--df-color-fb-container)",border:"1px dashed #d1d5db",borderRadius:"8px"},children:["No data entries. ","test"===i&&a?'Click "Add Another" to add entries.':"Use the properties panel to add entries."]}),"test"===i&&a&&m.jsx("div",{style:{padding:"16px",backgroundColor:"#f8f9fa",border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",display:"flex",justifyContent:"center"},children:m.jsxs("button",{onClick:u,disabled:t.length>=l,style:{padding:"8px 16px",backgroundColor:t.length>=l?"#f3f4f6":"#10b981",color:t.length>=l?"#9ca3af":"#ffffff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"500",cursor:t.length>=l?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"8px",transition:"all 0.2s ease"},onMouseEnter:e=>{t.length<l&&(e.currentTarget.style.backgroundColor="#059669")},onMouseLeave:e=>{t.length<l&&(e.currentTarget.style.backgroundColor="#10b981")},children:[m.jsx("span",{children:"+"}),r]})})]}),z=({id:e,properties:n,mode:i="edit",formData:a={},validationErrors:r={},touchedFields:o={},formSubmitted:l=!1,onValueChange:c,onSelect:d,isSelected:u=!1,className:p="",onDataGridSelect:h,onComponentSelect:f,onComponentDelete:b,onComponentEdit:g,onComponentUpdate:v,selectedComponent:x,renderFormComponent:w,onEntryAdd:$,onEntryRemove:T,formTemplateId:R,onThresholdActionCompletion:D,onThresholdIssueRaised:L,onNotesChange:F,onAttachmentChange:V})=>{const[O,M]=t.useState(!1),z=t.useRef(!1);let _=n.templateComponents||[];const W=n.entries||[];0===_.length&&W.length>0&&W[0].components&&(_=W[0].components.map(e=>({...e,id:e.id?.replace(/-entry-\d+$/,"")||e.id,basic:{...e.basic,showLabel:!0}}))),t.useEffect(()=>{if("edit"===i&&!n.templateComponents&&c&&z.current){const t={...n,templateComponents:[]};JSON.stringify(t)!==JSON.stringify(n)&&c({id:e,value:t})}z.current=!0},[n.templateComponents,e,c,n,i]),t.useEffect(()=>{if(_.length>0){if("test"===i&&0===W.length&&z.current){const t={id:`entry-${e}-0`,index:0,components:_.map((e,t)=>({...e,id:`${e.id}-entry-0-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}};if(c){const s={...n,entries:[t]};JSON.stringify(s)!==JSON.stringify(n)&&c({id:e,value:s})}return}if("edit"!==i||!z.current)return;if(W.some(e=>e.components?.some((t,s)=>{const n=`${_[s]?.id}-entry-${e.index}-${s}`;return t.id!==n}))&&c){const t=W.map(e=>({...e,components:e.components?.map((t,s)=>({...t,id:`${_[s]?.id}-entry-${e.index}-${s}`}))||[]})),s={...n,entries:t};return void(JSON.stringify(s)!==JSON.stringify(n)&&c({id:e,value:s}))}if(0===W.length&&"edit"===i){const t={id:`entry-${e}-0`,index:0,components:_.map((e,t)=>({...e,id:`${e.id}-entry-0-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}};if(c){const s={...n,entries:[t]};JSON.stringify(s)!==JSON.stringify(n)&&c({id:e,value:s})}}else if(W.length>0){if(W.some(e=>_.some((t,s)=>{const n=e.components?.[s];if(!n)return!0;const i=`${t.id}-entry-${e.index}-${s}`,a=n.id===i,r=JSON.stringify(n.basic?.options)!==JSON.stringify(t.basic?.options)||n.basic?.placeholder!==t.basic?.placeholder||n.basic?.defaultValue!==t.basic?.defaultValue||n.basic?.label!==t.basic?.label||n.validation?.required!==t.validation?.required;return!a||r}))&&c){const t=W.map(e=>{const t=_.map((t,s)=>{let n=e.components?.[s];n||(n=e.components?.find(e=>e.name===t.name&&e.basic?.label===t.basic?.label));const i=`${t.id}-entry-${e.index}-${s}`;if(n){return{...t,id:i,basic:{...t.basic,showLabel:!1,value:n.basic?.value||t.basic?.defaultValue||""}}}return{...t,id:i,basic:{...t.basic,showLabel:!1}}});return{...e,components:t}}),s={...n,entries:t};JSON.stringify(s)!==JSON.stringify(n)&&c({id:e,value:s})}}}},[_,W,e,c,n,i,n.templateComponents]);const B=t.useCallback(e=>{e.stopPropagation(),d?.(),h?.(n)},[d,h,n]),U=t.useCallback((t,s)=>{s.stopPropagation(),b&&b(t,s);const i=_.filter(e=>e.id!==t.id),a=W.map(e=>({...e,components:e.components?.filter(e=>!(e.name===t.name&&e.basic?.label===t.basic?.label))||[]}));c&&c({id:e,value:{...n,templateComponents:i,entries:a}})},[b,n,c,e,_,W]),J=t.useCallback((t,s)=>{v&&v(t,s);const i=_.map(e=>e.id===t?{...e,...s}:e);c&&c({id:e,value:{...n,templateComponents:i}})},[v,n,c,e,_]),H=t.useCallback(e=>{"test"===i&&c&&c({id:e.id,value:e.value})},[i,c]),G=t.useCallback(()=>{if(0===_.length)return void console.warn("Cannot add entry: No template components defined");const t=n.entries||[],s=t.length,i={id:`entry-${e}-${s}`,index:s,components:_.map((e,t)=>({...e,id:`${e.id}-entry-${s}-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}},a=[...t,i];c&&c({id:e,value:{...n,entries:a}}),$?.()},[n,c,e,$,_]),Y=t.useCallback(t=>{const s=n.entries.filter((e,s)=>s!==t).map((t,s)=>({...t,index:s,id:`entry-${e}-${s}`}));c&&c({id:e,value:{...n,entries:s}})},[n,c,e,T]),X=t.useCallback((e,t=!1)=>{const s="test"===i?a[e.id]||"defaultValue"in e.basic&&e.basic.defaultValue||"":"defaultValue"in e.basic&&e.basic.defaultValue||"",n={id:e.id,properties:e,validationErrors:r||{},formValue:s,touchedFields:o||{},formSubmitted:l||!1,mode:i,hideLabel:t,onValueChange:H,onBlur:()=>{},onFocus:()=>{}};switch(e.name){case"text-input":case"email-input":case"number-input":return m.jsx(y,{...n,properties:e,inputType:"text-input"===e.name?"text":"number-input"===e.name?"number":"email",readonly:"edit"===i||"preview"===i,disabled:"preview"===i,hideLabel:t});case"textarea":return m.jsx(j,{...n,properties:e,readonly:"edit"===i||"preview"===i,disabled:"preview"===i,hideLabel:t});case"select":const s={...e,options:e.basic?.options||[]};return m.jsx(C,{...n,properties:s,disabled:"edit"===i||"preview"===i,hideLabel:t});case"checkbox":const a={...e,options:e.basic?.options||[]};return m.jsx(N,{...n,properties:a,formValue:[],disabled:"edit"===i||"preview"===i,hideLabel:t});case"radio":const r={...e,options:e.basic?.options||[]};return m.jsx(S,{...n,properties:r,readonly:"edit"===i||"preview"===i,disabled:"edit"===i||"preview"===i,hideLabel:t});case"date":case"date-picker":case"datetime-picker":return m.jsx(k,{...n,properties:e,readonly:"edit"===i||"preview"===i,disabled:"preview"===i,hideLabel:t});case"signature":return m.jsx(E,{...n,properties:e,hideLabel:t});case"heading":return m.jsx(A,{...n,properties:e,hideLabel:t});case"instructions":return m.jsx(I,{...n,properties:e,hideLabel:t});default:return m.jsxs("div",{className:"unknown-component",children:["Unknown component: ",e.name]})}},[i,H,a,r,o,l]),K={backgroundColor:n.styles.backgroundColor||"var(--df-color-fb-container)",borderColor:n.styles.borderColor||"var(--df-color-fb-border)",borderWidth:n.styles.borderWidth||"2px",borderRadius:n.styles.borderRadius||"8px",padding:n.styles.padding||"16px",margin:n.styles.margin||"16px 0"};return m.jsxs("div",{className:`form-group df-form-datagrid ${u?"selected":""} ${p}`,onClick:B,style:K,children:[m.jsx("div",{className:"grid-header",children:m.jsx("div",{className:"grid-title",onClick:t=>{t.stopPropagation(),M(!O),c?.({id:e,value:{...n,basic:{...n.basic,collapsed:!O}}})},children:m.jsxs("div",{className:"title-content",style:{display:"flex",alignItems:"center",gap:"8px"},children:[O?m.jsx(s.ChevronRight,{size:16}):m.jsx(s.ChevronDown,{size:16}),m.jsx(s.Grid,{size:16}),m.jsx("span",{className:"grid-label",style:{fontWeight:"600"},children:n.basic.label}),n.validation.required&&m.jsx("span",{className:"required-indicator",style:{color:"#ef4444"},children:"*"})]})})}),n.basic.description&&!O&&m.jsx("div",{className:"grid-description",style:{marginTop:"8px",color:"var(--df-color-text-light)",fontSize:"14px"},children:n.basic.description}),!O&&m.jsx("div",{className:"grid-content",style:{marginTop:"16px"},children:"edit"===i?m.jsx(q,{gridComponents:_,mode:i,onComponentSelect:f||(()=>{}),onComponentDelete:U,onComponentEdit:g,onComponentUpdate:J,selectedComponent:x||null,renderFormComponent:w||X,gridId:e,formData:a,formTemplateId:R,onThresholdActionCompletion:D,onThresholdIssueRaised:L,onNotesChange:F,onAttachmentChange:V}):m.jsx(P,{templateComponents:_,dataEntries:W,renderFormComponent:w||X,mode:i,allowAddRemoveEntries:n.datagrid?.allowAddRemoveEntries??!0,addAnotherText:n.datagrid?.addAnotherText??"Add Entry",removeText:n.datagrid?.removeText??"Remove",maxEntries:n.datagrid?.maxEntries??10,minEntries:n.datagrid?.minEntries??1,displayAsGrid:n.datagrid?.displayAsGrid??!0,onAddEntry:$||G,onRemoveEntry:T||Y,formData:a,formTemplateId:R,onThresholdActionCompletion:D,onThresholdIssueRaised:L,onNotesChange:F,onAttachmentChange:V})})]})},_=t.lazy(()=>Promise.resolve().then(function(){return Y})),W=e=>e.id?e:{...e,id:o.v4()},B=({component:e,mode:t,renderFormComponent:s,formData:n={},formTemplateId:i,onThresholdActionCompletion:a,onThresholdIssueRaised:r,onNotesChange:o,onAttachmentChange:l})=>{const c=n[e.id],d="preview"===t&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0);return m.jsxs("div",{className:"simple-table-component",children:[s(e),"test"===t&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&m.jsx(D,{component:e,mode:"test",formTemplateId:i,formValue:c,onThresholdActionCompletion:a,onThresholdIssueRaised:r,onNotesChange:o?t=>o(e.id,t):void 0,onAttachmentChange:l?t=>l(e.id,t):void 0}),d&&m.jsx(F,{component:e})]})},U=({component:e,selectedComponent:t,mode:n,onComponentSelect:i,onComponentDelete:o,onComponentEdit:l,renderFormComponent:c,isOverlay:d=!1})=>{const{attributes:u,listeners:p,setNodeRef:h,transform:f,transition:b,isDragging:g,isSorting:v}=a.useSortable({id:e.id,disabled:d}),x={transform:r.CSS.Transform.toString(f),transition:b,opacity:g?.3:1,zIndex:g?1e3:"auto"};return m.jsxs("div",{ref:h,style:x,className:`form-component table-component ${t?.id===e.id?"selected":""} ${g?"dragging":""} ${v?"sorting":""}`,onClick:()=>!g&&i(e),role:"button",tabIndex:0,children:["edit"===n&&m.jsx("div",{className:"component-drag-handle",...p,...u,onClick:e=>e.stopPropagation(),style:{opacity:1},children:m.jsx(s.GripVertical,{size:14})}),m.jsx("div",{className:"component-content",children:c(e)}),"edit"===n&&m.jsxs("div",{className:"component-actions",style:{opacity:1},children:[l&&m.jsx("button",{className:"component-edit-btn",onClick:t=>{t.stopPropagation(),l(e)},type:"button",title:"Edit Component",children:m.jsx(s.Edit,{size:12})}),m.jsx("button",{className:"component-delete-btn",onClick:t=>{t.stopPropagation(),o(e,t)},type:"button",title:"Delete Component",children:m.jsx(s.Trash2,{size:12})})]})]})},J=({cell:e,mode:t,onComponentSelect:s,onComponentDelete:n,onComponentEdit:r,selectedComponent:l,renderFormComponent:c,formData:d={},formTemplateId:u,onThresholdActionCompletion:p,onThresholdIssueRaised:h,tableId:f,onNotesChange:b,onAttachmentChange:g})=>{const v=`table-cell-${f}-${e.row}-${e.column}`,{setNodeRef:x,isOver:y}=i.useDroppable({id:v,disabled:"edit"!==t,data:{type:"table-cell",tableId:f,cell:e,row:e.row,column:e.column}}),j={...e.styles,backgroundColor:y?"var(--df-color-primary-light)":e.styles?.backgroundColor||"transparent",minHeight:e.styles?.minHeight||"preview"===t||"test"===t?"40px":"60px",padding:(e.styles,"8px"),border:"preview"===t||"test"===t?"none":y?"2px dashed var(--df-color-primary)":e.styles?.borderColor?`1px solid ${e.styles.borderColor}`:"1px solid var(--df-color-fb-border)",borderRadius:"preview"===t||"test"===t?"0":"4px",position:"relative",verticalAlign:e.styles?.verticalAlign||"top"};return m.jsx("td",{ref:x,style:j,className:"table-cell "+(y?"drag-over":""),children:m.jsx("div",{className:"cell-content",children:e.components&&Array.isArray(e.components)&&e.components.length>0?"edit"===t?m.jsx(a.SortableContext,{items:e.components.map(e=>e.id||o.v4()),strategy:a.verticalListSortingStrategy,children:e.components.map(e=>{const i=W(e);return m.jsx(U,{component:i,selectedComponent:l,mode:t,onComponentSelect:s,onComponentDelete:n,onComponentEdit:r,renderFormComponent:c},i.id)})}):e.components.map(e=>{const s=W(e);return m.jsx(B,{component:s,mode:t,renderFormComponent:c,formData:d,formTemplateId:u,onThresholdActionCompletion:p,onThresholdIssueRaised:h,onNotesChange:b,onAttachmentChange:g},s.id)}):"edit"===t?m.jsx("div",{className:"empty-cell-placeholder",children:m.jsxs("div",{className:"cell-info",children:[m.jsx("span",{className:"drop-zone-text",children:"Drag and Drop a form component"}),m.jsxs("span",{className:"cell-coordinates",children:["Cell (",e.row+1,", ",e.column+1,")"]})]})}):m.jsx("div",{style:{minHeight:"20px",backgroundColor:"transparent",visibility:"hidden"},children:" "})})})},H=({id:e,properties:n,mode:i="edit",formData:a={},validationErrors:r={},touchedFields:o={},formSubmitted:l=!1,onValueChange:c,onSelect:d,isSelected:u=!1,className:p="",onTableSelect:h,onComponentSelect:f,onComponentDelete:b,onComponentEdit:g,selectedComponent:v,renderFormComponent:x,formTemplateId:w,onThresholdActionCompletion:$,onThresholdIssueRaised:T,onNotesChange:I,onAttachmentChange:R})=>{const[D,L]=t.useState(!1),F=n.cells?.some(e=>e.some(e=>e.components&&e.components.length>0))||!1;t.useEffect(()=>{const t=n.table?.rows||n.basic?.rows||3,s=n.table?.columns||n.basic?.columns||3,i=n.cells||[];if(0===i.length||i.length!==t||i.length>0&&i[0].length!==s){const a=[];for(let e=0;e<t;e++){const t=[];for(let n=0;n<s;n++){const s=`cell-${e}-${n}`;let a=[];i[e]&&i[e][n]&&(a=(i[e][n].components||[]).map(W)),t.push({id:s,row:e,column:n,components:a,styles:{}})}a.push(t)}c&&c({id:e,value:{...n,cells:a}})}},[n.table?.rows,n.table?.columns,n.basic?.rows,n.basic?.columns,n.cells,e,c]);const V=t.useCallback(e=>{e.stopPropagation(),d?.(),h?.(n)},[d,h,n]),O=t.useCallback((t,s)=>{s.stopPropagation();const i=n.cells.map(e=>e.map(e=>{if(e.components&&e.components.some(e=>e.id===t.id)){const s=e.components.filter(e=>e.id!==t.id);return{...e,components:s}}return e}));c&&c({id:e,value:{...n,cells:i}})},[b,n,c,e]),M=n.cells?n.cells.map((t,s)=>t.map((t,n)=>({...t,components:t.components&&Array.isArray(t.components)?t.components.map((t,i)=>{const a=t.id&&t.id.includes(`-table-${e}-`)?t.id:`${t.id||t.name||"component"}-table-${e}-row-${s}-cell-${n}-comp-${i}`;return{...t,id:a}}):[]}))):[];const q=t.useRef(!1),P=t.useRef("");t.useEffect(()=>{if(M.length>0){const t=JSON.stringify(M),s=t!==P.current&&t!==JSON.stringify(n.cells);(!q.current||s&&"edit"===i)&&("edit"===i&&(c?.({id:e,value:{...n,cells:M}}),P.current=t),q.current=!0)}},[i,e]);const z=x||t.useCallback(e=>{const t=W(e);let s=a[t.id];null==s&&(s="value"in t.basic&&void 0!==t.basic.value?t.basic.value:"defaultValue"in t.basic&&void 0!==t.basic.defaultValue?t.basic.defaultValue:"checkbox"===t.name||"select"===t.name?[]:"");const n={id:t.id,properties:t,validationErrors:r||{},formValue:s,touchedFields:o||{},formSubmitted:l||!1,mode:i,onValueChange:e=>{c?.(e)},onBlur:()=>{},onFocus:()=>{}};switch(t.name){case"text-input":case"email-input":case"number-input":return m.jsx(y,{...n,properties:t,inputType:"text-input"===t.name?"text":"number-input"===t.name?"number":"email",readonly:"edit"===i||"preview"===i,disabled:"preview"===i});case"textarea":return m.jsx(j,{...n,properties:t,readonly:"edit"===i||"preview"===i,disabled:"preview"===i});case"select":const e={...t,options:t.basic?.options||[]};return m.jsx(C,{...n,properties:e,disabled:"edit"===i||"preview"===i});case"checkbox":const s={...t,options:t.basic?.options||[]};return m.jsx(N,{...n,properties:s,formValue:[],disabled:"edit"===i||"preview"===i});case"radio":const a={...t,options:t.basic?.options||[]};return m.jsx(S,{...n,properties:a,readonly:"edit"===i||"preview"===i,disabled:"edit"===i||"preview"===i});case"date":case"date-picker":case"datetime-picker":return m.jsx(k,{...n,properties:t,readonly:"edit"===i||"preview"===i,disabled:"preview"===i});case"signature":return m.jsx(E,{...n,properties:t});case"heading":return m.jsx(A,{...n,properties:t});default:return m.jsxs("div",{className:"unknown-component",children:["Unknown component: ",t.name]})}},[i,a,c,r,o,l,e]),_={backgroundColor:n.styles?.backgroundColor||"var(--df-color-fb-container)",borderColor:n.styles?.borderColor||"var(--df-color-fb-border)",borderWidth:n.styles?.borderWidth||"2px",borderRadius:n.styles?.borderRadius||"8px",padding:n.styles?.padding||"16px",margin:n.styles?.margin||"16px 0"},B={width:"100%",minWidth:"600px",borderCollapse:"preview"===i||"test"===i?"separate":"collapse",tableLayout:"fixed",border:"preview"===i||"test"===i?"1px solid var(--df-color-fb-border)":"none"};return F||"preview"!==i?m.jsxs("div",{className:`form-group df-form-table ${u?"selected":""} ${"preview"===i?"preview-mode":"test"===i?"test-mode":""} ${p}`,onClick:V,style:_,children:[m.jsx("div",{className:"table-header",children:m.jsx("div",{className:"table-title",onClick:t=>{t.stopPropagation(),L(!D),c?.({id:e,value:{...n,basic:{...n.basic||{},collapsed:!D}}})},children:m.jsxs("div",{className:"title-content",children:[D?m.jsx(s.ChevronRight,{size:16}):m.jsx(s.ChevronDown,{size:16}),m.jsx(s.Table,{size:16}),m.jsx("span",{className:"table-label",children:n.basic?.label||"Table"}),n.validation?.required&&m.jsx("span",{className:"required-indicator",children:"*"})]})})}),n.basic?.description&&!D&&m.jsx("div",{className:"table-description",children:n.basic.description}),!D&&m.jsxs("div",{className:"table-content",children:[null,m.jsxs("table",{style:B,children:[n.table?.displayAsTable&&("edit"===i||n.table?.showColumns)&&m.jsx("thead",{children:m.jsx("tr",{className:"table-header-row",children:Array.from({length:n.table?.columns||n.basic?.columns||3},(e,t)=>{const s=(n.table?.columnNames?.split(",").map(e=>e.trim())||[])[t]||`Column ${t+1}`;return m.jsx("th",{className:"table-header-cell",style:{backgroundColor:(n.styles.headerBackgroundColor,"var(--df-color-fb-container)"),color:n.styles.headerTextColor||"var(--df-color-text-dark)",padding:"12px",border:"1px solid var(--df-color-fb-border)",fontWeight:"600",fontSize:"14px",textAlign:"center"},children:s},`header-${t}`)})})}),m.jsx("tbody",{children:n.cells?.map((t,s)=>m.jsx("tr",{className:"table-row",children:t.map(t=>m.jsx(J,{cell:t,mode:i,onComponentSelect:f||(()=>{}),onComponentDelete:O,onComponentEdit:g,selectedComponent:v||null,renderFormComponent:z,formData:a,formTemplateId:w,onThresholdActionCompletion:$,onThresholdIssueRaised:T,tableId:e,onNotesChange:I,onAttachmentChange:R},t.id))},s))})]})]})]}):null};var G,Y=Object.freeze({__proto__:null,DfFormTable:H,default:H});exports.ELabelAlignment=void 0,(G=exports.ELabelAlignment||(exports.ELabelAlignment={})).Top="top",G.Left="left",exports.ComponentActionFeatures=D,exports.ComponentSubmissionActions=F,exports.DfFormCheckbox=N,exports.DfFormComments=({comment:e="",onSave:s,placeholder:n="Enter your reason...",className:i="",disabled:a=!1})=>{const[r,o]=t.useState(!0),[l,c]=t.useState(e),[d,u]=t.useState(!1);t.useEffect(()=>{c(e),u(!1)},[e]);const p=t.useCallback(t=>{const s=t.target.value;c(s),u(s!==e)},[e]),h=t.useCallback(()=>{d&&s&&!a&&(s(l),u(!1))},[d,s,l,a]),f=t.useCallback(()=>{},[]),b=t.useCallback(()=>{a||o(!r)},[r,a]);return m.jsxs("div",{className:`df-form-comments ${i}`,children:[m.jsxs("div",{className:"df-form-comments__header",children:[m.jsx("h3",{className:"df-form-comments__title",children:"Comments"}),m.jsx("button",{className:"df-form-comments__toggle",type:"button",onClick:b,"aria-expanded":r,"aria-label":"Toggle comments section",disabled:a,children:r?m.jsx("span",{className:"df-form-comments__toggle-icon",children:"▼"}):m.jsx("span",{className:"df-form-comments__toggle-icon",children:"▶"})})]}),m.jsx("div",{className:"df-form-comments__content "+(r?"df-form-comments__content--expanded":""),children:m.jsx("div",{className:"df-form-comments__input-container",children:m.jsx("div",{className:"df-form-comments__input-line",children:m.jsx("input",{type:"text",id:"comment-input",className:"df-form-comments__input",value:l,onChange:p,onBlur:h,onFocus:f,placeholder:n,disabled:a})})})})]})},exports.DfFormDataGrid=z,exports.DfFormDateTime=k,exports.DfFormErrorMsg=b,exports.DfFormFileUpload=$,exports.DfFormHeading=A,exports.DfFormInput=y,exports.DfFormInstruction=I,exports.DfFormLocation=T,exports.DfFormPreview=({formComponents:e=[],currentDevice:s="desktop",isPreviewMode:n=!1,initialFormData:i=[],onSubmit:a,onFormDataChange:r,formTitle:o,formDescription:l,formTemplateId:c,onComponentSelect:d,onComponentDelete:u,onComponentEdit:p,onComponentUpdate:b,selectedComponent:g})=>{const[v,x]=t.useState({}),[R,L]=t.useState({}),[V,M]=t.useState(!1),[q,P]=t.useState({}),[W,B]=t.useState({}),[U,J]=t.useState(new Set),[H,G]=t.useState(new Map),[Y,X]=t.useState({isValid:!0});t.useEffect(()=>{Z()},[e,i]);const K=(e,t)=>{e.forEach(e=>{if(e.id&&("value"in e.basic&&void 0!==e.basic.value?t[e.id]=e.basic.value:"defaultValue"in e.basic&&void 0!==e.basic.defaultValue?t[e.id]=e.basic.defaultValue:"checkbox"===e.name||"select"===e.name?t[e.id]=[]:t[e.id]=""),e.cells&&Array.isArray(e.cells)&&e.cells.forEach((e,s)=>{Array.isArray(e)&&e.forEach((e,s)=>{e&&e.components&&Array.isArray(e.components)&&K(e.components,t)})}),e.entries&&Array.isArray(e.entries)&&e.entries.forEach((e,s)=>{e&&e.components&&Array.isArray(e.components)&&K(e.components,t)}),"file"===e.name&&e.basic){const s=e.basic.files||e.basic.attachments||e.basic.value;s&&(t[e.id]=s)}"instructions"===e.name&&e.basic&&(e.basic.instructions||(e.basic.instructions=[])),e.children&&Array.isArray(e.children)&&K(e.children,t)})},Z=t.useCallback(()=>{const t={},s=new Set,n=e=>{e.forEach(e=>{e.id&&(s.has(e.id)&&(console.error(`[DfFormPreview] Duplicate component ID detected: ${e.id}. Component:`,e),e.id=`${e.id}-duplicate-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,console.warn(`[DfFormPreview] Generated new unique ID: ${e.id}`)),s.add(e.id)),e.children&&Array.isArray(e.children)&&n(e.children),e.cells&&Array.isArray(e.cells)&&e.cells.forEach(e=>{Array.isArray(e)&&e.forEach(e=>{e&&e.components&&Array.isArray(e.components)&&n(e.components)})}),e.entries&&Array.isArray(e.entries)&&e.entries.forEach(e=>{e&&e.components&&Array.isArray(e.components)&&n(e.components)})})};e&&e.length>0&&n(e),i&&i.length>0&&n(i),i&&i.length>0&&K(i,t),e&&e.length>0&&K(e,t),x(t),ee()},[i,e]),Q=(t,s)=>{t.forEach(t=>{if(t.id)if("table"===t.name||"datagrid"===t.name)s[t.id]=!0;else if(t.conditional){const n=h.evaluateConditionalLogic(t.conditional,e,v);s[t.id]=n.shouldShow}else s[t.id]=!0;t.cells&&Array.isArray(t.cells)&&t.cells.forEach(e=>{e.forEach(e=>{e.components&&Array.isArray(e.components)&&Q(e.components,s)})}),t.entries&&Array.isArray(t.entries)&&t.entries.forEach(e=>{e.components&&Array.isArray(e.components)&&Q(e.components,s)}),t.children&&Array.isArray(t.children)&&Q(t.children,s)})},ee=t.useCallback(()=>{const t={};e&&e.length>0&&Q(e,t),B(t)},[e,v]),te=t.useCallback(t=>{const s=e.find(e=>e.id===t);if(s&&("table"===s.name||"datagrid"===s.name))return!0;return!1!==W[t]},[W,e]),se=t.useCallback(t=>{if(!t.id||"string"!=typeof t.id||""===t.id.trim())return void console.error("[DfFormPreview] Invalid component ID in onFormValueChange:",t);const s=e.filter(e=>e.id===t.id);if(s.length>1)return void console.error(`[DfFormPreview] ID COLLISION DETECTED! Multiple components share ID "${t.id}":`,s.map(e=>({id:e.id,name:e.name,label:e.basic?.label})));const i=v[t.id];void 0!==i&&i!==t.value&&console.log("[DfFormPreview] Updating form value:",{id:t.id,oldValue:i,newValue:t.value});const a={...v,[t.id]:t.value};x(a);const o=e.find(e=>e.id===t.id);if(o){const e=o?.threshold;e&&e.conditions&&e.conditions.length>0&&J(t=>{const s=new Set(t);return e.conditions.forEach(e=>{s.delete(e.id)}),s})}const l=e=>e.map(e=>e.id===t.id&&"defaultValue"in e.basic?{...e,basic:{...e.basic,value:t.value??e.basic.defaultValue,defaultValue:t.value}}:"section"===e.name&&e.children?{...e,children:l(e.children)}:"table"===e.name&&e.cells?{...e,cells:e.cells.map(e=>e.map(e=>{const t={...e};return t.components&&(t.components=l(t.components)),t}))}:"datagrid"===e.name&&e.entries?{...e,entries:e.entries.map(e=>{const t={...e};return t.components&&(t.components=l(t.components)),t})}:e),c=l(e);r?.(c),R[t.id]&&L(e=>({...e,[t.id]:""})),n||setTimeout(()=>{ie(t.id)},100),setTimeout(()=>{const t={};e.forEach(s=>{if("table"===s.name||"datagrid"===s.name)t[s.id]=!0;else if(s.conditional){const n=h.evaluateConditionalLogic(s.conditional,e,a);t[s.id]=n.shouldShow}else t[s.id]=!0}),B(t)},0)},[e,v,R,r]),ne=t.useCallback((e,t)=>{for(const s of e){if(s.id===t)return s;if("section"===s.name&&s.children){const e=ne(s.children,t);if(e)return e}if("table"===s.name&&s.cells)for(const e of s.cells)for(const s of e)if(s.components){const e=ne(s.components,t);if(e)return e}if("datagrid"===s.name&&s.entries)for(const e of s.entries)if(e.components){const s=ne(e.components,t);if(s)return s}}return null},[]),ie=t.useCallback(t=>{if(n)return;const s=ne(e,t);if(!s)return;const i=v[t]||"";let a=!1;a=Array.isArray(i)?i.length>0:"string"==typeof i?""!==i.trim():null!=i;let r="";if(s.validation.required&&!a){const e=s.validation.customValidationMessage,t=s.basic.label||"This field";r=e||`${t} is required`}else if("email-input"===s.name&&a&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(i)){const e=s.validation.customValidationMessage,t=s.basic.label||"This field";r=e||`${t} must be a valid email`}else if(s.validation.minLength&&a&&i.length<s.validation.minLength){const e=s.validation.customValidationMessage,t=s.basic.label||"This field";r=e||`${t} must be at least ${s.validation.minLength} characters`}else if(s.validation.maxLength&&a&&i.length>s.validation.maxLength){const e=s.validation.customValidationMessage,t=s.basic.label||"This field";r=e||`${t} must be no more than ${s.validation.maxLength} characters`}else if("number-input"===s.name&&a){const e=parseFloat(String(i));if(isNaN(e)){const e=s.validation.customValidationMessage,t=s.basic.label||"This field";r=e||`${t} must be a valid number`}else{const t=s.validation;if(void 0!==t.lowerLimit&&e<t.lowerLimit){const e=s.validation.customValidationMessage,n=s.basic.label||"This field";r=e||`You are under the limit. ${n} must be at least ${t.lowerLimit}`}else if(void 0!==t.upperLimit&&e>t.upperLimit){const e=s.validation.customValidationMessage,n=s.basic.label||"This field";r=e||`You crossed the limit. ${n} must be no more than ${t.upperLimit}`}}}L(e=>({...e,[t]:r}))},[e,n,v,ne]),ae=t.useCallback(e=>{P(t=>({...t,[e]:!0})),n||setTimeout(()=>{ie(e)},0)},[n,ie]),re=t.useCallback(e=>{R[e]&&L(t=>({...t,[e]:""}))},[R]),oe=t.useCallback(()=>e.every(e=>{const t=v[e.id]||"";let s=!1;return s=Array.isArray(t)?t.length>0:"string"==typeof t?""!==t.trim():null!=t,!(e.validation.required&&!s)}),[e,v]),le=t.useCallback((e,t)=>{if(Array.isArray(t))return t.some(t=>le(e,t));if(null==t||""===t)return!1;const s="string"==typeof t?parseFloat(t):t,n="string"==typeof e.value?parseFloat(e.value):e.value;if(!isNaN(s)&&!isNaN(n))switch(e.operator){case"greaterThan":return s>n;case"lessThan":return s<n;case"greaterThanOrEqual":return s>=n;case"lessThanOrEqual":return s<=n;case"equals":return s===n;case"notEquals":return s!==n;default:return!1}const i=String(t).toLowerCase(),a=String(e.value).toLowerCase();switch(e.operator){case"equals":return i===a||String(t)===String(e.value);case"notEquals":return i!==a&&String(t)!==String(e.value);default:return!1}},[]),ce=t.useCallback(()=>{if(n)return[];const t=[];return e.forEach(e=>{const s=e?.condition;if(!s||!s.conditions||0===s.conditions.length)return;const n=v[e.id];null!=n&&""!==n&&!(Array.isArray(n)&&0===n.length)&&s.conditions.forEach(s=>{le(s,n)&&t.push({componentId:e.id,condition:s,componentLabel:e.basic?.label||"Field"})})}),t},[e,v,n,le]),de=t.useCallback(()=>{if(n)return{isValid:!0};const e=ce();if(0===e.length)return{isValid:!0};for(const{condition:t,componentLabel:s}of e){const e=H.get(t.id)||{notesCompleted:!1,attachmentsCompleted:!1,emailSent:!1},n=[];if(!0!==t.enableRaiseIssue||U.has(t.id)||n.push("raise an issue"),!0!==t.enableNotes||e.notesCompleted||n.push("add notes"),!0!==t.enableAttachment||e.attachmentsCompleted||n.push("add attachments"),!0!==t.enableSendEmail||e.emailSent||n.push("send email"),n.length>0){return{isValid:!1,errorMessage:`Please ${1===n.length?n[0]:n.slice(0,-1).join(", ")+" and "+n[n.length-1]} for the threshold condition met in "${s}". You cannot submit the form until all required actions are completed.`}}}return{isValid:!0}},[n,ce,U,H]),ue=t.useCallback(e=>{e&&J(t=>{const s=new Set(t);return s.add(e),s})},[]),me=t.useCallback((e,t,s)=>{e&&G(n=>{const i=new Map(n),a=i.get(e)||{notesCompleted:!1,attachmentsCompleted:!1,emailSent:!1};return"notes"===t?i.set(e,{...a,notesCompleted:s}):"attachments"===t?i.set(e,{...a,attachmentsCompleted:s}):"email"===t&&i.set(e,{...a,emailSent:s}),i})},[]);t.useEffect(()=>{if(!n){const e=de();X(e)}},[v,U,H,n,de]);const pe=t.useCallback(()=>{if(n)return!0;let t=!0;M(!0);const s={};return e.forEach(e=>{const n=v[e.id]||"";let i=!1;if(i=Array.isArray(n)?n.length>0:"string"==typeof n?""!==n.trim():null!=n,e.validation.required&&!i){const n=e.validation.customValidationMessage,i=e.basic.label||"This field",a=n||`${i} is required`;s[e.id]=a,t=!1}else s[e.id]="";P(t=>({...t,[e.id]:!0}))}),L(s),t},[e,n,v]),he=t.useCallback(()=>{if(M(!0),!pe()){const t=e.find(e=>{const t=v[e.id]||"";let s=!1;return s=Array.isArray(t)?t.length>0:"string"==typeof t?""!==t.trim():null!=t,e.validation.required&&!s});if(t){const e=document.getElementById(t.id);e&&e.focus()}return}const t=de();if(!t.isValid){t.errorMessage&&f.showError(t.errorMessage);const e=ce().find(({condition:e})=>!U.has(e.id));if(e){const t=document.getElementById(e.componentId);t&&t.scrollIntoView({behavior:"smooth",block:"center"})}return}const s=e=>e.map(e=>{let t=v[e.id];"text-input"===e.name&&e.basic,void 0===t&&(t="value"in e.basic&&void 0!==e.basic.value?e.basic.value:"defaultValue"in e.basic&&void 0!==e.basic.defaultValue?e.basic.defaultValue:""),"text-input"===e.name&&e.basic;const n={...e,basic:{...e.basic,value:t,defaultValue:t}};return"section"===n.name&&n.children&&(n.children=s(n.children)),"table"===n.name&&n.cells&&(n.cells=n.cells.map(e=>e.map(e=>{const t={...e};return t.components&&(t.components=s(t.components)),t}))),"datagrid"===n.name&&n.entries&&(n.entries=n.entries.map(e=>{const t={...e};return t.components&&(t.components=s(t.components)),t})),n}),n=s(e);a?.(n)},[e,v,pe,a]),fe=t.useCallback(()=>({[`device-${s}`]:!0,readonly:n}),[s,n]),be=s=>{s.id&&"string"==typeof s.id&&""!==s.id.trim()||(console.error("[DfFormPreview] Component missing ID:",s),s.id=`generated-${s.name}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,console.warn("[DfFormPreview] Generated ID for component:",s.id));const i=s.id,a=v[i];if(void 0!==a){const t=e.filter(e=>e.id!==i&&v[e.id]===a);t.length>0&&console.warn(`[DfFormPreview] Component ${i} shares form value with other components:`,t.map(e=>e.id))}const o={id:i,validationErrors:R,formValue:a,touchedFields:q,formSubmitted:V,mode:n?"preview":"test",readonly:n,onValueChange:se,onBlur:()=>ae(i),onFocus:()=>re(i)};switch(s.name){case"text-input":case"number-input":case"email-input":return m.jsx(y,{...o,properties:s,inputType:"text-input"===s.name?"text":"number-input"===s.name?"number":"email",formTemplateId:c,onThresholdIssueRaised:ue,raisedThresholdIssues:U});case"textarea":return m.jsx(j,{...o,properties:s});case"select":const n={...s,options:s.basic?.options||[],basic:{...s.basic,comments:s.basic?.comments||""}};return m.jsx(C,{...o,properties:n});case"checkbox":const i={...s,options:s.basic?.options||[],basic:{...s.basic,comments:s.basic?.comments||""}};return m.jsx(N,{...o,properties:i});case"radio":const l={...s,options:s.basic?.options||[],basic:{...s.basic,comments:s.basic?.comments||""}};return m.jsx(S,{...o,properties:l});case"segment":const h={...s,options:s.basic?.options||[],basic:{...s.basic,comments:s.basic?.comments||""}};return m.jsx(w,{...o,properties:h});case"date":case"date-picker":case"datetime-picker":return m.jsx(k,{...o,properties:s});case"signature":return m.jsx(E,{...o,properties:s});case"heading":return m.jsx(A,{...o,properties:s});case"instructions":return m.jsx(I,{...o,properties:s});case"location":return m.jsx(T,{...o,properties:s});case"section":return m.jsx(O,{...o,properties:s,formData:v,formTemplateId:c,onThresholdActionCompletion:me,onThresholdIssueRaised:ue,renderFormComponent:e=>be(e)});case"table":return m.jsx(t.Suspense,{fallback:m.jsx("div",{children:"Loading table..."}),children:m.jsx(_,{...o,properties:s,formData:v,formTemplateId:c,mode:o.mode,validationErrors:R,touchedFields:q,formSubmitted:V,onThresholdActionCompletion:me,onThresholdIssueRaised:ue,onNotesChange:(t,n)=>{const i=e.map(e=>{if(e.id===s.id&&e.cells){const s=e.cells.map(e=>e.map(e=>{if(e.components){const s=e.components.map(e=>e.id===t?{...e,basic:{...e.basic,notes:n}}:e);return{...e,components:s}}return e}));return{...e,cells:s}}return e});r?.(i)},onAttachmentChange:(t,n)=>{const i=e.map(e=>{if(e.id===s.id&&e.cells){const s=e.cells.map(e=>e.map(e=>{if(e.components){const s=e.components.map(e=>e.id===t?{...e,basic:{...e.basic,attachments:n||[]}}:e);return{...e,components:s}}return e}));return{...e,cells:s}}return e});r?.(i)},renderFormComponent:e=>be(e)})});case"datagrid":return m.jsx(z,{...o,properties:s,formData:v,formTemplateId:c,mode:o.mode,validationErrors:R,touchedFields:q,formSubmitted:V,onThresholdActionCompletion:me,onThresholdIssueRaised:ue,onComponentSelect:d,onComponentDelete:u,onComponentEdit:p,onComponentUpdate:b,selectedComponent:g,onValueChange:t=>{if(t.id===s.id&&t.value&&"object"==typeof t.value&&"entries"in t.value){const n=e.map(e=>e.id===s.id?{...e,...t.value}:e);r?.(n)}else se(t)},onEntryAdd:()=>{const t=e.map(e=>{if(e.id===s.id&&e.entries){const t=e.templateComponents||[],s=e.entries||[],n={id:`entry-${e.id}-${s.length}`,index:s.length,components:t.map((e,t)=>({...e,id:`${e.id}-entry-${s.length}-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}};return{...e,entries:[...s,n]}}return e});r?.(t)},onEntryRemove:t=>{const n=e.map(e=>{if(e.id===s.id&&e.entries){const s=(e.entries||[]).filter((e,s)=>s!==t).map((t,s)=>({...t,index:s,id:`entry-${e.id}-${s}`,components:t.components?.map((e,t)=>{const n=(e.templateComponents||[])[t];return{...e,id:n?`${n.id}-entry-${s}-${t}`:e.id}})||[]}));return{...e,entries:s}}return e});r?.(n)},onNotesChange:(t,n)=>{const i=e.map(e=>{if(e.id===s.id&&e.entries){const s=e.entries.map(e=>{if(e.components){const s=e.components.map(e=>e.id===t?{...e,basic:{...e.basic,notes:n}}:e);return{...e,components:s}}return e});return{...e,entries:s}}return e});r?.(i)},onAttachmentChange:(t,n)=>{const i=e.map(e=>{if(e.id===s.id&&e.entries){const s=e.entries.map(e=>{if(e.components){const s=e.components.map(e=>e.id===t?{...e,basic:{...e.basic,attachments:n||[]}}:e);return{...e,components:s}}return e});return{...e,entries:s}}return e});r?.(i)},renderFormComponent:e=>be(e)});case"file":const f=a||s.basic?.files||s.basic?.attachments||s.basic?.value||null;return m.jsx($,{...o,properties:s,formValue:f});default:return m.jsx("div",{className:"form-group",children:m.jsxs("div",{className:"form-group-label",children:["Unsupported Component: ",s.name]})})}};return m.jsx("div",{className:"form-preview-container",children:m.jsx("div",{className:"form-preview-wrapper",children:m.jsxs("div",{className:`form-preview ${Object.entries(fe()).map(([e,t])=>t?e:"").join(" ")}`,children:[m.jsx("div",{className:"form-canvas-header"}),0===e.length?m.jsx("div",{className:"empty-state",children:m.jsx("div",{className:"empty-state-card",children:m.jsx("div",{className:"empty-state-preview-area",children:m.jsx("span",{className:"empty-state-placeholder",children:"Add components to see the form preview"})})})}):m.jsxs("form",{className:"form-preview-form",onSubmit:e=>{e.preventDefault(),he()},children:[(o||l)&&m.jsxs("div",{className:"form-header",children:[o&&m.jsx("h1",{className:"form-title",children:o}),l&&m.jsx("p",{className:"form-description",children:l})]}),e.map(t=>{const s=t.basic,i=v[t.id],a=["select","radio","checkbox","segment"].includes(t.name||""),o=t.options||s?.options||[],l=(()=>{const e=t?.styles?.column;return"section"===t.name||"table"===t.name||"datagrid"===t.name?"col-12":3===e?"col-3":6===e?"col-6":9===e?"col-9":"col-12"})();let d=!1;if(!n)if(a&&null!=i&&""!==i)if("checkbox"===t.name){d=(Array.isArray(i)?i:[i]).some(e=>{const t=o.find(t=>t.value===e);return t&&(t.enableNotes||t.enableAttachment||t.enableRaiseIssue||t.enableSendEmail)})}else{const e=o.find(e=>e.value===i);d=e&&(e.enableNotes||e.enableAttachment||e.enableRaiseIssue||e.enableSendEmail)}else d=s?.enableNotes||s?.enableAttachment||s?.enableRaiseIssue||s?.enableSendEmail;const u=n&&(t.basic?.notes&&t.basic.notes.trim().length>0||t.basic?.attachments&&Array.isArray(t.basic.attachments)&&t.basic.attachments.length>0);return m.jsxs("div",{className:`form-group ${l} ${d||u?"has-action-features":""}`,style:{display:te(t.id)?"block":"none"},children:[be(t),!n&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(t.name)&&m.jsx(D,{component:t,mode:n?"preview":"test",formTemplateId:c,formValue:i,onThresholdActionCompletion:me,onThresholdIssueRaised:ue,onNotesChange:s=>{const n=e.map(e=>e.id===t.id?{...e,basic:{...e.basic,notes:s||""}}:e);r?.(n)},onAttachmentChange:s=>{const n=e.map(e=>e.id===t.id?{...e,basic:{...e.basic,attachments:s||[]}}:e);r?.(n)},notes:t.basic?.notes||"",attachments:t.basic?.attachments||null}),n&&u&&m.jsx(F,{component:t})]},t.id)}),!n&&m.jsx("div",{className:"form-actions",children:m.jsx("button",{type:"submit",disabled:!oe()||!Y.isValid,className:"form-submit-button",title:Y.isValid?"":Y.errorMessage,children:"Submit"})})]})]})})})},exports.DfFormRadio=S,exports.DfFormSection=O,exports.DfFormSegment=w,exports.DfFormSelect=C,exports.DfFormSignature=E,exports.DfFormTable=H,exports.DfFormTextarea=j,exports.RaiseIssueModal=v,exports.ThresholdAlert=x,exports.conditionalLogicService=h,exports.toastService=f;
10
+ */"production"===process.env.NODE_ENV?l.exports=function(){if(e)return c;e=1;var s=t,n=Symbol.for("react.element"),i=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,r=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function l(e,t,s){var i,l={},c=null,d=null;for(i in void 0!==s&&(c=""+s),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(d=t.ref),t)a.call(t,i)&&!o.hasOwnProperty(i)&&(l[i]=t[i]);if(e&&e.defaultProps)for(i in t=e.defaultProps)void 0===l[i]&&(l[i]=t[i]);return{$$typeof:n,type:e,key:c,ref:d,props:l,_owner:r.current}}return c.Fragment=i,c.jsx=l,c.jsxs=l,c}():l.exports=(d||(d=1,"production"!==process.env.NODE_ENV&&function(){var e,s=t,n=Symbol.for("react.element"),i=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),c=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),h=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),b=Symbol.for("react.offscreen"),g=Symbol.iterator,x=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function v(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),n=1;n<t;n++)s[n-1]=arguments[n];!function(e,t,s){var n=x.ReactDebugCurrentFrame.getStackAddendum();""!==n&&(t+="%s",s=s.concat([n]));var i=s.map(function(e){return String(e)});i.unshift("Warning: "+t),Function.prototype.apply.call(console[e],console,i)}("error",e,s)}function y(e){return e.displayName||"Context"}function j(e){if(null==e)return null;if("number"==typeof e.tag&&v("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),"function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case a:return"Fragment";case i:return"Portal";case o:return"Profiler";case r:return"StrictMode";case m:return"Suspense";case p:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case c:return y(e)+".Consumer";case l:return y(e._context)+".Provider";case d:return function(e,t,s){var n=e.displayName;if(n)return n;var i=t.displayName||t.name||"";return""!==i?s+"("+i+")":s}(e,e.render,"ForwardRef");case h:var t=e.displayName||null;return null!==t?t:j(e.type)||"Memo";case f:var s=e,n=s._payload,u=s._init;try{return j(u(n))}catch(e){return null}}return null}e=Symbol.for("react.module.reference");var C,N,S,w,k,E,$,T=Object.assign,A=0;function I(){}I.__reactDisabledLog=!0;var D,R=x.ReactCurrentDispatcher;function L(e,t,s){if(void 0===D)try{throw Error()}catch(e){var n=e.stack.trim().match(/\n( *(at )?)/);D=n&&n[1]||""}return"\n"+D+e}var F,V=!1,O="function"==typeof WeakMap?WeakMap:Map;function M(e,t){if(!e||V)return"";var s,n=F.get(e);if(void 0!==n)return n;V=!0;var i,a=Error.prepareStackTrace;Error.prepareStackTrace=void 0,i=R.current,R.current=null,function(){if(0===A){C=console.log,N=console.info,S=console.warn,w=console.error,k=console.group,E=console.groupCollapsed,$=console.groupEnd;var e={configurable:!0,enumerable:!0,value:I,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}A++}();try{if(t){var r=function(){throw Error()};if(Object.defineProperty(r.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(r,[])}catch(e){s=e}Reflect.construct(e,[],r)}else{try{r.call()}catch(e){s=e}e.call(r.prototype)}}else{try{throw Error()}catch(e){s=e}e()}}catch(t){if(t&&s&&"string"==typeof t.stack){for(var o=t.stack.split("\n"),l=s.stack.split("\n"),c=o.length-1,d=l.length-1;c>=1&&d>=0&&o[c]!==l[d];)d--;for(;c>=1&&d>=0;c--,d--)if(o[c]!==l[d]){if(1!==c||1!==d)do{if(c--,--d<0||o[c]!==l[d]){var u="\n"+o[c].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),"function"==typeof e&&F.set(e,u),u}}while(c>=1&&d>=0);break}}}finally{V=!1,R.current=i,function(){if(0===--A){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:T({},e,{value:C}),info:T({},e,{value:N}),warn:T({},e,{value:S}),error:T({},e,{value:w}),group:T({},e,{value:k}),groupCollapsed:T({},e,{value:E}),groupEnd:T({},e,{value:$})})}A<0&&v("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}(),Error.prepareStackTrace=a}var m=e?e.displayName||e.name:"",p=m?L(m):"";return"function"==typeof e&&F.set(e,p),p}function q(e,t,s){if(null==e)return"";if("function"==typeof e)return M(e,!(!(n=e.prototype)||!n.isReactComponent));var n;if("string"==typeof e)return L(e);switch(e){case m:return L("Suspense");case p:return L("SuspenseList")}if("object"==typeof e)switch(e.$$typeof){case d:return M(e.render,!1);case h:return q(e.type,t,s);case f:var i=e,a=i._payload,r=i._init;try{return q(r(a),t,s)}catch(e){}}return""}F=new O;var P=Object.prototype.hasOwnProperty,z={},_=x.ReactDebugCurrentFrame;function W(e){if(e){var t=e._owner,s=q(e.type,e._source,t?t.type:null);_.setExtraStackFrame(s)}else _.setExtraStackFrame(null)}var B=Array.isArray;function U(e){return B(e)}function G(e){return""+e}function J(e){if(function(e){try{return G(e),!1}catch(e){return!0}}(e))return v("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",function(e){return"function"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object"}(e)),G(e)}var H,Y,X,K=x.ReactCurrentOwner,Z={key:!0,ref:!0,__self:!0,__source:!0};function Q(e,t,s,i,a){var r,o={},l=null,c=null;for(r in void 0!==s&&(J(s),l=""+s),function(e){if(P.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return void 0!==e.key}(t)&&(J(t.key),l=""+t.key),function(e){if(P.call(e,"ref")){var t=Object.getOwnPropertyDescriptor(e,"ref").get;if(t&&t.isReactWarning)return!1}return void 0!==e.ref}(t)&&(c=t.ref,function(e,t){if("string"==typeof e.ref&&K.current&&t&&K.current.stateNode!==t){var s=j(K.current.type);X[s]||(v('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',j(K.current.type),e.ref),X[s]=!0)}}(t,a)),t)P.call(t,r)&&!Z.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps){var d=e.defaultProps;for(r in d)void 0===o[r]&&(o[r]=d[r])}if(l||c){var u="function"==typeof e?e.displayName||e.name||"Unknown":e;l&&function(e,t){var s=function(){H||(H=!0,v("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};s.isReactWarning=!0,Object.defineProperty(e,"key",{get:s,configurable:!0})}(o,u),c&&function(e,t){var s=function(){Y||(Y=!0,v("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};s.isReactWarning=!0,Object.defineProperty(e,"ref",{get:s,configurable:!0})}(o,u)}return function(e,t,s,i,a,r,o){var l={$$typeof:n,type:e,key:t,ref:s,props:o,_owner:r,_store:{}};return Object.defineProperty(l._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(l,"_self",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.defineProperty(l,"_source",{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.freeze&&(Object.freeze(l.props),Object.freeze(l)),l}(e,l,c,a,i,K.current,o)}X={};var ee,te=x.ReactCurrentOwner,se=x.ReactDebugCurrentFrame;function ne(e){if(e){var t=e._owner,s=q(e.type,e._source,t?t.type:null);se.setExtraStackFrame(s)}else se.setExtraStackFrame(null)}function ie(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}function ae(){if(te.current){var e=j(te.current.type);if(e)return"\n\nCheck the render method of `"+e+"`."}return""}ee=!1;var re={};function oe(e,t){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var s=function(e){var t=ae();if(!t){var s="string"==typeof e?e:e.displayName||e.name;s&&(t="\n\nCheck the top-level render call using <"+s+">.")}return t}(t);if(!re[s]){re[s]=!0;var n="";e&&e._owner&&e._owner!==te.current&&(n=" It was passed a child from "+j(e._owner.type)+"."),ne(e),v('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',s,n),ne(null)}}}function le(e,t){if("object"==typeof e)if(U(e))for(var s=0;s<e.length;s++){var n=e[s];ie(n)&&oe(n,t)}else if(ie(e))e._store&&(e._store.validated=!0);else if(e){var i=function(e){if(null===e||"object"!=typeof e)return null;var t=g&&e[g]||e["@@iterator"];return"function"==typeof t?t:null}(e);if("function"==typeof i&&i!==e.entries)for(var a,r=i.call(e);!(a=r.next()).done;)ie(a.value)&&oe(a.value,t)}}function ce(e){var t,s=e.type;if(null!=s&&"string"!=typeof s){if("function"==typeof s)t=s.propTypes;else{if("object"!=typeof s||s.$$typeof!==d&&s.$$typeof!==h)return;t=s.propTypes}if(t){var n=j(s);!function(e,t,s,n,i){var a=Function.call.bind(P);for(var r in e)if(a(e,r)){var o=void 0;try{if("function"!=typeof e[r]){var l=Error((n||"React class")+": "+s+" type `"+r+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[r]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw l.name="Invariant Violation",l}o=e[r](t,r,n,s,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(e){o=e}!o||o instanceof Error||(W(i),v("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",n||"React class",s,r,typeof o),W(null)),o instanceof Error&&!(o.message in z)&&(z[o.message]=!0,W(i),v("Failed %s type: %s",s,o.message),W(null))}}(t,e.props,"prop",n,e)}else void 0===s.PropTypes||ee||(ee=!0,v("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",j(s)||"Unknown"));"function"!=typeof s.getDefaultProps||s.getDefaultProps.isReactClassApproved||v("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}var de={};function ue(t,s,i,u,g,x){var y=function(t){return"string"==typeof t||"function"==typeof t||t===a||t===o||t===r||t===m||t===p||t===b||"object"==typeof t&&null!==t&&(t.$$typeof===f||t.$$typeof===h||t.$$typeof===l||t.$$typeof===c||t.$$typeof===d||t.$$typeof===e||void 0!==t.getModuleId)}(t);if(!y){var C="";(void 0===t||"object"==typeof t&&null!==t&&0===Object.keys(t).length)&&(C+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var N,S=function(e){return void 0!==e?"\n\nCheck your code at "+e.fileName.replace(/^.*[\\\/]/,"")+":"+e.lineNumber+".":""}(g);C+=S||ae(),null===t?N="null":U(t)?N="array":void 0!==t&&t.$$typeof===n?(N="<"+(j(t.type)||"Unknown")+" />",C=" Did you accidentally export a JSX literal instead of a component?"):N=typeof t,v("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",N,C)}var w=Q(t,s,i,g,x);if(null==w)return w;if(y){var k=s.children;if(void 0!==k)if(u)if(U(k)){for(var E=0;E<k.length;E++)le(k[E],t);Object.freeze&&Object.freeze(k)}else v("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else le(k,t)}if(P.call(s,"key")){var $=j(t),T=Object.keys(s).filter(function(e){return"key"!==e}),A=T.length>0?"{key: someKey, "+T.join(": ..., ")+": ...}":"{key: someKey}";de[$+A]||(v('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',A,$,T.length>0?"{"+T.join(": ..., ")+": ...}":"{}",$),de[$+A]=!0)}return t===a?function(e){for(var t=Object.keys(e.props),s=0;s<t.length;s++){var n=t[s];if("children"!==n&&"key"!==n){ne(e),v("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",n),ne(null);break}}null!==e.ref&&(ne(e),v("Invalid attribute `ref` supplied to `React.Fragment`."),ne(null))}(w):ce(w),w}var me=function(e,t,s){return ue(e,t,s,!1)},pe=function(e,t,s){return ue(e,t,s,!0)};u.Fragment=a,u.jsx=me,u.jsxs=pe}()),u);var m=l.exports;class p{constructor(){}static getInstance(){return p.instance||(p.instance=new p),p.instance}getAvailableComponentsForConditional(e,t){if(!e||!Array.isArray(e))return[];return e.filter(e=>!t||e.id!==t).map(e=>({id:e.id,label:e.basic?.label||e.id,type:e.name,key:e.id})).sort((e,t)=>e.label.localeCompare(t.label))}getApplicableOperators(e){switch(e){case"text-input":case"email-input":case"textarea":return["equals","notEquals","contains","notContains","isEmpty","isNotEmpty"];case"number-input":case"date-picker":case"datetime-picker":return["equals","notEquals","greaterThan","lessThan","greaterThanOrEqual","lessThanOrEqual","isEmpty","isNotEmpty"];case"select":case"radio":case"segment":default:return["equals","notEquals","isEmpty","isNotEmpty"];case"checkbox":return["contains","notContains","isEmpty","isNotEmpty"]}}validateConditionalLogic(e,t){const s=[];return e?(["show","hide","always"].includes(e.action)||s.push("Invalid conditional action"),["all","any"].includes(e.when)||s.push("Invalid when condition"),e.conditions&&0!==e.conditions.length?e.conditions.forEach((e,n)=>{const i=t.find(t=>t.id===e.when);if(!i)return void s.push(`Condition ${n+1}: Component not found`);this.getApplicableOperators(i.name).includes(e.operator)||s.push(`Condition ${n+1}: Operator not applicable for component type`),this.isValidConditionValue(e.value,i.name,e.operator)||s.push(`Condition ${n+1}: Invalid condition value`)}):s.push("At least one condition is required"),{isValid:0===s.length,errors:s}):{isValid:!0,errors:[]}}evaluateConditionalLogic(e,t,s){if("always"===e.action)return{shouldShow:!0,evaluatedConditions:[]};if(!e||!e.conditions||0===e.conditions.length)return{shouldShow:!0,evaluatedConditions:[]};const n=e.conditions.map(e=>{const n=this.getComponentValue(e.when,t,s);return{condition:e,result:this.evaluateCondition(e,n),componentValue:n}});return{shouldShow:this.determineFinalResult(e,n),evaluatedConditions:n}}getComponentValue(e,t,s){if(s&&void 0!==s[e])return s[e];const n=t.find(t=>t.id===e);return n&&"defaultValue"in n.basic?n.basic.defaultValue:void 0}evaluateCondition(e,t){const{operator:s,value:n}=e;if("checked"===n||"notChecked"===n)return this.evaluateCheckboxCondition(t,n);switch(s){case"equals":return this.isEqual(t,n);case"notEquals":return!this.isEqual(t,n);case"isEmpty":return this.isEmpty(t);case"isNotEmpty":return!this.isEmpty(t);case"contains":return this.contains(t,n);case"notContains":return!this.contains(t,n);case"greaterThan":return this.isGreaterThan(t,n);case"lessThan":return this.isLessThan(t,n);case"greaterThanOrEqual":return this.isGreaterThanOrEqual(t,n);case"lessThanOrEqual":return this.isLessThanOrEqual(t,n);default:return!1}}evaluateCheckboxCondition(e,t){const s=this.isCheckboxChecked(e);return"checked"===t?s:"notChecked"===t&&!s}isCheckboxChecked(e){return null!=e&&("boolean"==typeof e?e:"string"==typeof e?"true"===e.toLowerCase()||"1"===e:Array.isArray(e)?e.length>0:"number"==typeof e&&e>0)}determineFinalResult(e,t){let s,n;return s="all"===e.when?t.every(e=>e.result):"any"===e.when&&t.some(e=>e.result),n="show"===e.action?s:"hide"===e.action?!s:(e.action,!0),n}isEqual(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((e,s)=>this.isEqual(e,t[s]));if("object"==typeof e&&"object"==typeof t){const s=Object.keys(e),n=Object.keys(t);return s.length===n.length&&s.every(s=>this.isEqual(e[s],t[s]))}return!1}isEmpty(e){return null==e||void 0===e||("string"==typeof e?""===e.trim():Array.isArray(e)?0===e.length:"object"==typeof e&&0===Object.keys(e).length)}contains(e,t){return null!=e&&null!=t&&("string"==typeof e?e.toLowerCase().includes(String(t).toLowerCase()):!!Array.isArray(e)&&e.some(e=>this.isEqual(e,t)))}isGreaterThan(e,t){const s=Number(e),n=Number(t);return!isNaN(s)&&!isNaN(n)&&s>n}isLessThan(e,t){const s=Number(e),n=Number(t);return!isNaN(s)&&!isNaN(n)&&s<n}isGreaterThanOrEqual(e,t){const s=Number(e),n=Number(t);return!isNaN(s)&&!isNaN(n)&&s>=n}isLessThanOrEqual(e,t){const s=Number(e),n=Number(t);return!isNaN(s)&&!isNaN(n)&&s<=n}isValidConditionValue(e,t,s){if(null==e)return["isEmpty","isNotEmpty"].includes(s);switch(t){case"number-input":return!isNaN(Number(e))||["isEmpty","isNotEmpty"].includes(s);case"date-picker":case"datetime-picker":return!isNaN(Date.parse(e))||["isEmpty","isNotEmpty"].includes(s);case"checkbox":return Array.isArray(e)||"string"==typeof e||"number"==typeof e;default:return!0}}createDefaultConditionalLogic(){return{action:"show",when:"all",conditions:[]}}getOperatorDisplayText(e){return{equals:"Is Equal To",notEquals:"Is Not Equal To",contains:"Contains",notContains:"Does Not Contain",isEmpty:"Is Empty",isNotEmpty:"Is Not Empty",greaterThan:"Is Greater Than",lessThan:"Is Less Than",greaterThanOrEqual:"Is Greater Than Or Equal To",lessThanOrEqual:"Is Less Than Or Equal To"}[e]||e}getActionDisplayText(e){return{show:"Show this field when",hide:"Hide this field when",always:"Always show this field"}[e]||e}getConditionalLogicSummary(e,t){if(!e||0===e.conditions.length)return"No conditions";if("always"===e.action)return"Always show";const s=this.getActionDisplayText(e.action),n=e.conditions.map(e=>{const s=t.find(t=>t.id===e.when);return`${s?.basic.label||"Unknown component"} ${this.getOperatorDisplayText(e.operator)} ${this.formatConditionValue(e.value)}`}),i="all"===e.when?" and ":" or ";return`${s} ${n.join(i)}`}formatConditionValue(e){return null==e?"empty":Array.isArray(e)?`[${e.join(", ")}]`:"string"==typeof e?`"${e}"`:String(e)}}const h=p.getInstance();const f=new class{constructor(){this.toasts=[],this.listeners=[],this.defaultDuration=3e3,this.timeouts={}}generateId(){return Date.now().toString(36)+Math.random().toString(36).substr(2)}notifyListeners(){this.listeners.forEach(e=>e([...this.toasts]))}addToast(e){try{this.toasts.push(e),this.notifyListeners(),this.timeouts[e.id]=setTimeout(()=>{this.removeToast(e.id)},e.duration||this.defaultDuration)}catch(e){console.error("Error displaying toast message:",e)}}removeToast(e){this.timeouts[e]&&(clearTimeout(this.timeouts[e]),delete this.timeouts[e]),this.toasts=this.toasts.filter(t=>t.id!==e),this.notifyListeners()}showSuccess(e,t=3e3){const s={id:this.generateId(),message:e,type:"success",duration:t};this.addToast(s)}showError(e,t=5e3){const s={id:this.generateId(),message:e,type:"danger",duration:t};this.addToast(s)}showWarning(e,t){const s={id:this.generateId(),message:e,type:"warning",duration:t};this.addToast(s)}showInfo(e,t){const s={id:this.generateId(),message:e,type:"info",duration:t};this.addToast(s)}show(e,t="success",s){const n={id:this.generateId(),message:e,type:t,duration:s};this.addToast(n)}clearAll(){Object.values(this.timeouts).forEach(e=>clearTimeout(e)),this.timeouts={},this.toasts=[],this.notifyListeners()}subscribe(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}getToasts(){return[...this.toasts]}},b=({validationErrors:e,fieldId:t,touchedFields:s,formSubmitted:n,properties:i,localValidation:a,isTouched:r,mode:o})=>{const l=e=>{const t=i.basic.label||"This field",s=i.validation.customValidationMessage;if(s)return s;const n=i.name||"",a="date-picker"===n||"datetime-picker"===n?i.basic?.dateTimeMode||("datetime-picker"===n?"datetime":"date"):null;switch(e){case"required":return`${t} is required`;case"invalidDate":return"time"===a?"Please select a valid time":"datetime"===a?"Please select a valid date and time":"date"===a?"Please select a valid date":`${t} is invalid`;case"minLength":return`${t} must be at least ${i.validation.minLength} characters long`;case"maxLength":return`${t} must be no more than ${i.validation.maxLength} characters long`;case"min":return`${t} must be at least ${i.validation.min}`;case"max":return`${t} must be no more than ${i.validation.max}`;case"lowerLimit":const e=i.validation,s=e?.lowerLimit;return`You are under the limit. ${t} must be at least ${s}`;case"upperLimit":const n=i.validation,r=n?.upperLimit;return`You crossed the limit. ${t} must be no more than ${r}`;case"pattern":return`${t} format is invalid`;case"email":return`${t} must be a valid email address`;default:return`${t} is invalid`}},c=(()=>{if("test"!==o)return"";if(!(r||s[t]||n))return"";if(a&&a.isValid)return"";if(a&&!a.isValid&&Object.keys(a.errors).length>0){const e=Object.keys(a.errors);if(e.length>0){const t=e[0];return l(t)}}const c=e[t];if(c&&"string"==typeof c&&""!==c.trim()){const e=i.name||"";if(("date-picker"===e||"datetime-picker"===e)&&c.includes("valid date")){const t=i.basic?.dateTimeMode||("datetime-picker"===e?"datetime":"date");if("time"===t)return"Please select a valid time";if("datetime"===t)return"Please select a valid date and time"}return c}return""})();return c?m.jsx("div",{className:"form-error-msg",children:c}):null};var g;!function(e){e.OPEN="Open",e.IN_PROGRESS="In-Progress",e.REJECTED="Rejected",e.RESOLVE="Resolve"}(g||(g={}));const x=({isOpen:e,onClose:i,onSuccess:a,component:r,formTemplateId:o,notes:l="",attachments:c=null,issue:d=null,onCreateIssue:u,onUpdateIssue:p,user:h,availableUsers:b=["Priya Das","Maria Garcia","John Smith","Sarah Johnson"]})=>{const[x,v]=t.useState(""),[y,j]=t.useState(""),[C,N]=t.useState(""),[S,w]=t.useState(""),[k,E]=t.useState("Medium"),[$,T]=t.useState(g.OPEN),[A,I]=t.useState(""),[D,R]=t.useState(""),[L,F]=t.useState(!1),V=!!d;t.useEffect(()=>{if(e)if(d){v(d.title||""),j(d.description||""),N(d.workOrderNumber||""),w(d.assetNumber||""),E(d.priority||"Medium");const e=d.status||g.OPEN,t=e===g.OPEN||e===g.IN_PROGRESS||e===g.REJECTED||e===g.RESOLVE?e:g.OPEN;T(t),I(d.assignee||""),R(d.comments||"")}else if(r){const e=r.basic?.label||"Component";v(`${e} - Issue`);let t=`Issue raised for component: ${e}`;r.basic&&"value"in r.basic&&r.basic.value&&(t+=`\nComponent Value: ${r.basic.value}`),l&&(t+=`\nNotes: ${l}`),j(t),R(l||"")}},[e,r,l,d]);const O=async e=>{if(d){F(!0);try{const t={title:String(x||"").trim(),description:String(y||"").trim(),workOrderNumber:String(C||"").trim()||"",assetNumber:String(S||"").trim()||"",formTemplateId:d.formTemplateId||"",component:d.component||{},priority:k,assignee:String(A||"").trim()||void 0,status:e,comments:String(D||"").trim()||""};p&&d._id&&await p(d._id,t),T(e);const s={[g.IN_PROGRESS]:"Issue accepted and moved to In-Progress",[g.RESOLVE]:"Issue resolved successfully",[g.REJECTED]:"Issue rejected"};f.showSuccess(s[e]||"Issue status updated successfully"),a&&a(),i()}catch(e){const t=e?.message||e?.error?.message||"Failed to update issue status. Please try again.";f.showError(t)}finally{F(!1)}}};if(!e)return null;const M=m.jsx("div",{className:"raise-issue-modal-overlay",onClick:i,children:m.jsxs("div",{className:"raise-issue-modal",onClick:e=>e.stopPropagation(),children:[m.jsxs("div",{className:"raise-issue-modal-header",children:[m.jsxs("div",{className:"raise-issue-modal-header-left",children:[m.jsx(s.AlertTriangle,{className:"raise-issue-modal-icon",size:20}),m.jsx("div",{className:"raise-issue-modal-header-text",children:m.jsx("div",{className:"raise-issue-modal-title-main",children:"Issue Details"})})]}),m.jsx("button",{className:"raise-issue-modal-close",onClick:i,"aria-label":"Close",children:m.jsx(s.X,{size:18})})]}),m.jsx("div",{className:"raise-issue-modal-content",children:m.jsxs("div",{className:"raise-issue-fields-grid",children:[V&&d?.issueNumber&&m.jsxs("div",{className:"raise-issue-field",children:[m.jsx("label",{className:"raise-issue-field-label",children:"Issue ID"}),m.jsx("input",{type:"text",className:"raise-issue-field-input raise-issue-field-readonly",value:d.issueNumber,readOnly:!0})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Title ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsx("input",{type:"text",className:"raise-issue-field-input "+(V?"raise-issue-field-readonly":""),value:x,onChange:e=>v(e.target.value),placeholder:"Enter issue title",readOnly:V})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Work Order ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsx("input",{type:"text",className:"raise-issue-field-input "+(V?"raise-issue-field-readonly":""),value:C,onChange:e=>N(e.target.value),placeholder:"N/A",readOnly:V})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Asset Number ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsx("input",{type:"text",className:"raise-issue-field-input "+(V?"raise-issue-field-readonly":""),value:S,onChange:e=>w(e.target.value),placeholder:"Enter asset number",readOnly:V})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsx("label",{className:"raise-issue-field-label",children:"Raised By"}),m.jsxs("div",{className:"raise-issue-field-value-with-icon",children:[m.jsx(s.User,{size:16}),m.jsx("span",{children:h&&`${h.firstName||""} ${h.lastName||""}`.trim()||"User"})]})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsx("label",{className:"raise-issue-field-label",children:"Created On"}),m.jsxs("div",{className:"raise-issue-field-value-with-icon",children:[m.jsx(s.Calendar,{size:16}),m.jsx("span",{children:V&&d?.createdAt?new Date(d.createdAt).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!0}):(new Date).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!0})})]})]}),m.jsxs("div",{className:"raise-issue-field raise-issue-field-full-width",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Description ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsx("textarea",{className:"raise-issue-field-textarea "+(V?"raise-issue-field-readonly":""),value:y,onChange:e=>j(e.target.value),placeholder:"Enter issue description",rows:4,readOnly:V})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Status ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsxs("select",{className:"raise-issue-field-select "+(V?"":"raise-issue-field-readonly"),value:$,onChange:e=>T(e.target.value),disabled:!V,children:[m.jsx("option",{value:g.OPEN,children:g.OPEN}),m.jsx("option",{value:g.IN_PROGRESS,children:g.IN_PROGRESS}),m.jsx("option",{value:g.REJECTED,children:g.REJECTED}),m.jsx("option",{value:g.RESOLVE,children:g.RESOLVE})]})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Assignee ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsxs("select",{className:"raise-issue-field-select",value:A,onChange:e=>I(e.target.value),children:[m.jsx("option",{value:"",children:"Unassigned"}),b.map(e=>m.jsx("option",{value:e,children:e},e))]})]}),m.jsxs("div",{className:"raise-issue-field raise-issue-field-full-width",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Priority ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsxs("div",{className:"raise-issue-priority-buttons",children:[m.jsx("button",{type:"button",className:"priority-button priority-low "+("Low"===k?"active":""),onClick:()=>E("Low"),children:"Low"}),m.jsx("button",{type:"button",className:"priority-button priority-medium "+("Medium"===k?"active":""),onClick:()=>E("Medium"),children:"Medium"}),m.jsx("button",{type:"button",className:"priority-button priority-high "+("High"===k?"active":""),onClick:()=>E("High"),children:"High"})]})]}),m.jsxs("div",{className:"raise-issue-field raise-issue-field-full-width",children:[m.jsxs("label",{className:"raise-issue-field-label-with-icon",children:[m.jsx(s.MessageSquare,{size:16}),m.jsx("span",{children:"Comments"})]}),!D&&m.jsx("div",{className:"raise-issue-no-comments",children:"No comments yet"}),m.jsx("textarea",{className:"raise-issue-field-textarea raise-issue-comments-textarea "+(V?"raise-issue-field-readonly":""),value:D,onChange:e=>R(e.target.value),placeholder:"Add a comment...",rows:4,readOnly:V})]})]})}),m.jsx("div",{className:"raise-issue-modal-actions",children:m.jsxs("div",{className:"raise-issue-modal-actions-buttons",children:[V&&d&&m.jsxs(m.Fragment,{children:[$===g.OPEN&&m.jsx("button",{className:"raise-issue-modal-button raise-issue-modal-button-accept",onClick:async()=>{await O(g.IN_PROGRESS)},disabled:L,children:L?"Processing...":"Accept"}),$===g.IN_PROGRESS&&m.jsx("button",{className:"raise-issue-modal-button raise-issue-modal-button-resolve",onClick:async()=>{await O(g.RESOLVE)},disabled:L,children:L?"Processing...":"Resolve"}),$===g.OPEN&&m.jsx("button",{className:"raise-issue-modal-button raise-issue-modal-button-reject",onClick:async()=>{await O(g.REJECTED)},disabled:L,children:L?"Processing...":"Reject"})]}),!V&&m.jsx("button",{className:"raise-issue-modal-button raise-issue-modal-button-save",onClick:async()=>{if(String(x||"").trim())if(String(y||"").trim()){F(!0);try{if(V&&d){const e={title:String(x||"").trim(),description:String(y||"").trim(),workOrderNumber:String(C||"").trim()||"",assetNumber:String(S||"").trim()||void 0,formTemplateId:d.formTemplateId||"",component:d.component||{},priority:k,assignee:String(A||"").trim()||void 0,status:$,comments:String(D||"").trim()||""};p&&d._id&&await p(d._id,e),f.showSuccess("Issue updated successfully"),a&&a(),i()}else{if(!r)return f.showError("Component is required"),void F(!1);if(!o||""===String(o||"").trim())return f.showError("Form template is required"),void F(!1);const e={...r,basic:{...r.basic,comments:String(l||"")}},t={title:String(x||"").trim(),workOrderNumber:String(C||"").trim()||void 0,assetNumber:String(S||"").trim()||void 0,component:e,description:String(y||"").trim(),formTemplateId:o,assignee:String(A||"").trim()||void 0,priority:k,status:$,comments:String(D||"").trim()||""};let s;u&&(s=await u(t,c||[])),f.showSuccess("Issue raised successfully"),a&&a(s),i()}}catch(e){const t=e?.message||e?.error?.message||(V?"Failed to update issue. Please try again.":"Failed to raise issue. Please try again.");f.showError(t)}finally{F(!1)}}else f.showError("Description is required");else f.showError("Title is required")},disabled:L||!String(x||"").trim()||!String(y||"").trim(),children:L?"Saving...":"Save Changes"})]})})]})});return n.createPortal(M,document.body)},v=({component:e,condition:n,currentValue:i,thresholdValue:a,formTemplateId:r,onIssueRaised:o,isIssueRaised:l=!1})=>{const[c,d]=t.useState(!1),[u,p]=t.useState(null),[h,b]=t.useState(!1),[g,v]=t.useState(!1);t.useEffect(()=>{l&&v(!0)},[l]),t.useEffect(()=>{v(!1)},[n?.id]);const y=t.useCallback(async()=>{if(l||g){if(u)return void d(!0);b(!0);try{p(null),d(!0)}catch(e){console.error("Error fetching issue:",e),f.showError("Failed to load issue details")}finally{b(!1)}}else p(null),d(!0)},[l,g,r,e,u]),j=t.useCallback(()=>{d(!1),l||g||p(null)},[l,g]),C=t.useCallback(e=>{d(!1),p(e||null),v(!0),o&&n?.id&&o(n.id)},[o,n]);return l||g?m.jsxs(m.Fragment,{children:[m.jsx("div",{className:"threshold-issue-indicator",children:m.jsxs("div",{className:"threshold-issue-indicator-content",children:[m.jsx(s.CheckCircle2,{className:"threshold-issue-indicator-icon",size:16}),m.jsx("span",{className:"threshold-issue-indicator-text",children:"Issue raised for this threshold condition"}),m.jsx("button",{type:"button",onClick:y,className:"threshold-issue-indicator-view-btn",disabled:h,children:h?"Loading...":"View Issue"})]})}),c&&m.jsx(x,{isOpen:c,onClose:j,onSuccess:C,component:e,formTemplateId:r,notes:"",attachments:null,issue:u})]}):m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"threshold-alert threshold-alert-unresolved",children:[m.jsx("div",{className:"threshold-alert-border"}),m.jsxs("div",{className:"threshold-alert-content",children:[m.jsx("div",{className:"threshold-alert-header",children:m.jsxs("div",{className:"threshold-alert-title-group",children:[m.jsx(s.AlertTriangle,{className:"threshold-alert-icon",size:20}),m.jsx("span",{className:"threshold-alert-title",children:"Threshold Condition Met - Action Required"})]})}),m.jsxs("div",{className:"threshold-alert-message",children:[(()=>{const t={greaterThan:">",lessThan:"<",greaterThanOrEqual:"≥",lessThanOrEqual:"≤",equals:"=",notEquals:"≠"}[s=n.operator]||s;var s;return`${e.basic?.label||"Value"}: Value ${i} exceeds threshold ${t} ${a}`})(),m.jsx("span",{className:"threshold-alert-warning",children:" You must raise an issue before submitting the form."})]}),m.jsx("div",{className:"threshold-alert-buttons",children:m.jsx("button",{type:"button",onClick:y,className:"threshold-alert-raise-issue-btn",children:"Raise Issue Now"})})]})]}),c&&m.jsx(x,{isOpen:c,onClose:j,onSuccess:C,component:e,formTemplateId:r,notes:"",attachments:null,issue:u})]})},y=({id:e,properties:s,validationErrors:n={},formValue:i="",inputType:a="text",readonly:r=!1,disabled:o=!1,touchedFields:l={},formSubmitted:c=!1,mode:d="test",onValueChange:u,onBlur:p,onFocus:h,className:f="",hideLabel:g=!1,formTemplateId:x,onThresholdIssueRaised:y,raisedThresholdIssues:j=new Set})=>{const C=e=>null==e?"":"string"==typeof e?e:"number"==typeof e||"boolean"==typeof e?String(e):"object"==typeof e?Array.isArray(e)?"":"value"in e?C(e.value):"label"in e?C(e.label):"":String(e||""),N=t.useRef(e);t.useEffect(()=>{e!==N.current&&(console.warn(`[DfFormInput] Component ID changed from ${N.current} to ${e}`),N.current=e)},[e]);const S=C(i||s?.basic?.defaultValue||""),[w,k]=t.useState(S),[E,$]=t.useState(!1),[T,A]=t.useState(!1),[I,D]=t.useState(new Set),[R,L]=t.useState(S),F=()=>{if(a)return a;const e=s?.name;return"text-input"===e?"text":"number-input"===e?"number":"email-input"===e?"email":"text"},V=t.useCallback(e=>{const t=(()=>{const e={};if(s?.validation?.required&&(e.required=!0),"email"===F()&&(e.email=!0),"text"===F()){const t=s.validation;t?.minLength&&(e.minLength=t.minLength),t?.maxLength&&(e.maxLength=t.maxLength)}if("number"===F()){const t=s.validation;t?.min&&(e.min=t.min),t?.max&&(e.max=t.max),void 0!==t?.lowerLimit&&(e.lowerLimit=t.lowerLimit),void 0!==t?.upperLimit&&(e.upperLimit=t.upperLimit)}return e})(),n={};let i=!0;if(!t.required||e&&""!==e.trim()||(n.required=!0,i=!1),t.email&&e&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(e)&&(n.email=!0,i=!1),t.minLength&&e&&e.length<t.minLength&&(n.minLength=!0,i=!1),t.maxLength&&e&&e.length>t.maxLength&&(n.maxLength=!0,i=!1),"number"===F()&&e){const s=parseFloat(e);isNaN(s)?(n.pattern=!0,i=!1):(void 0!==t.min&&s<t.min&&(n.min=!0,i=!1),void 0!==t.max&&s>t.max&&(n.max=!0,i=!1),void 0!==t.lowerLimit&&s<t.lowerLimit&&(n.lowerLimit=!0,i=!1),void 0!==t.upperLimit&&s>t.upperLimit&&(n.upperLimit=!0,i=!1))}return{isValid:i,errors:n}},[s,F]),O=t.useCallback(t=>{if(k(t),u){const s=V(t),n=N.current,i={id:n,value:t,isValid:s.isValid,errors:s.errors};n!==e&&console.error(`[DfFormInput] ID mismatch in handleValueChange! ref: ${n}, prop: ${e}`),u(i)}},[e,u,V,N]);t.useEffect(()=>{E&&(l[e]=!0)},[E,e,l]),t.useEffect(()=>{if("edit"===d){$(!1);k(s?.basic?.defaultValue||"")}else"test"===d&&($(!1),k(""))},[d,s?.basic?.defaultValue]),t.useEffect(()=>{const t=N.current,n=C(i||s?.basic?.defaultValue||"");n===w||T||""===n&&""!==String(w||"").trim()?""===n&&String(w||"").trim():null!=i&&(t===e?k(n):console.error(`[DfFormInput] ID mismatch! componentIdRef: ${t}, prop id: ${e}`))},[i,w,T,s?.basic?.defaultValue,e]),t.useEffect(()=>{c&&$(!0)},[c]),t.useEffect(()=>{"test"!==d&&k("")},[d]);const M=t.useCallback((e,t)=>{if(!t||""===t)return!1;const s="string"==typeof t?parseFloat(t):t,n="string"==typeof e.value?parseFloat(e.value):e.value;if(isNaN(s)||isNaN(n))return!1;switch(e.operator){case"greaterThan":return s>n;case"lessThan":return s<n;case"greaterThanOrEqual":return s>=n;case"lessThanOrEqual":return s<=n;case"equals":return s===n;case"notEquals":return s!==n;default:return!1}},[]),q=t.useMemo(()=>s?.condition?.conditions||[],[s?.condition]);t.useEffect(()=>{w!==R&&(D(new Set),L(w))},[w,R]);const P=t.useMemo(()=>{if("test"!==d||!w||""===w)return null;const e=q.filter(e=>M(e,w));if(0===e.length)return null;for(const t of e)if(!I.has(t.id))return t;return null},[w,q,I,d,M,j]),z=t.useCallback(e=>{D(t=>new Set(t).add(e))},[]),_=F(),W=o||r||s?.validation?.readonly;return m.jsxs("div",{className:`form-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!g&&s.basic.label&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("input",{type:_,id:e,value:w,onChange:e=>{const t=e.target.value;O(t)},onFocus:()=>{A(!0),h&&h()},onBlur:()=>{if(A(!1),$(!0),"test"===d&&u){const t=V(w),s={id:e,value:w,isValid:t.isValid,errors:t.errors};u(s)}p&&p()},placeholder:s.basic.placeholder,disabled:W,readOnly:r||s?.validation?.readonly,className:(()=>{const t="form-control";if("test"===d){const s=!V(w).isValid&&E,i=n[e]&&(E||c);return`${t} ${s||i?"is-invalid":""} ${f}`.trim()}return`${t} ${f}`.trim()})()}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:l,formSubmitted:c,properties:s,localValidation:V(w),isTouched:E,mode:d}),P&&"test"===d&&(()=>{const e=j?.has(P.id)||!1;return m.jsx(v,{component:s,condition:P,currentValue:w,thresholdValue:P.value,formTemplateId:x,onDismiss:()=>z(P.id),onIssueRaised:y,isIssueRaised:e},`${P.id}-${e}`)})()]})]})},j=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,x]=t.useState(i),[v,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let n=!0;return!s?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),s?.validation?.minLength&&e&&e.length<s.validation.minLength&&(t.minLength=!0,n=!1),s?.validation?.maxLength&&e&&e.length>s.validation.maxLength&&(t.maxLength=!0,n=!1),{isValid:n,errors:t}},[s]),C=t.useCallback(t=>{if(x(t),d){const s=j(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,j]);t.useEffect(()=>{v&&(o[e]=!0)},[v,e,o]),t.useEffect(()=>{""===g&&""!==i&&x(i)},[i]),t.useEffect(()=>{l&&y(!0)},[l]),t.useEffect(()=>{"test"!==c&&x("")},[c]);const N=r||a||s?.validation?.readonly,S=s?.validation?.rows||4;return m.jsxs("div",{className:`form-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!f&&s.basic.label&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("textarea",{id:e,value:g,onChange:e=>{const t=e.target.value;C(t)},onFocus:()=>{p&&p()},onBlur:()=>{y(!0),u&&u()},placeholder:s.basic.placeholder,disabled:N,readOnly:a||s?.validation?.readonly,rows:S,className:`form-textarea ${!j(g).isValid&&v?"is-invalid":""} ${h}`.trim()}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:j(g),isTouched:v,mode:c})]})]})},C=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,x]=t.useState(i),[v,y]=t.useState(!1),j=s?.validation?.multiple||!1,C=t.useCallback(e=>{const t={};let n=!0;return s?.validation?.required&&(j?Array.isArray(e)&&0!==e.length||(t.required=!0,n=!1):(!e||"string"==typeof e&&""===e.trim())&&(t.required=!0,n=!1)),{isValid:n,errors:t}},[s,j]),N=t.useCallback(t=>{if(x(t),d){const s=C(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,C]);t.useEffect(()=>{v&&(o[e]=!0)},[v,e,o]),t.useEffect(()=>{JSON.stringify(i)!==JSON.stringify(g)&&x(i)},[i,g]),t.useEffect(()=>{l&&y(!0)},[l]);const S=r||a||s?.validation?.readonly;return m.jsxs("div",{className:`form-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!f&&s.basic.label&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsxs("select",{id:e,value:g,onChange:e=>{if(j){const t=Array.from(e.target.selectedOptions,e=>e.value);N(t)}else N(e.target.value)},onFocus:()=>{p&&p()},onBlur:()=>{y(!0),u&&u()},disabled:S,multiple:j,className:`form-select ${!C(g).isValid&&v?"is-invalid":""} ${h}`.trim(),children:[!j&&m.jsx("option",{value:"",children:s.basic.placeholder||"Select an option"}),(s.options||[]).map((e,t)=>m.jsx("option",{value:e.value,disabled:e.disabled,children:e.label},t))]}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:C(g),isTouched:v,mode:c})]})]})},N=({id:e,properties:s,validationErrors:n={},formValue:i=[],readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,x]=t.useState(!1),v=Array.isArray(i)?i:[],y=t.useCallback(e=>{const t={};let n=!0;return s?.validation?.required&&0===e.length&&(t.required=!0,n=!1),{isValid:n,errors:t}},[s]),j=t.useCallback(t=>{if(d){const s=y(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,y,v]),C=(e,t)=>{let s;s=t?[...v,e]:v.filter(t=>t!==e),j(s)},N=()=>{p&&p()},S=()=>{x(!0),u&&u()};t.useEffect(()=>{g&&(o[e]=!0)},[g,e,o]),t.useEffect(()=>{},[i,e,v]),t.useEffect(()=>{l&&x(!0)},[l]);const w=r||a||s?.validation?.readonly;return m.jsx(m.Fragment,{children:m.jsx("div",{className:`form-group checkbox-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${s?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${h}`,children:!f&&s.basic.label?m.jsxs(m.Fragment,{children:[m.jsxs("label",{className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("div",{className:"mt-2 "+(s?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(s.options||[]).map((t,s)=>m.jsxs("div",{className:"form-check",children:[m.jsx("input",{type:"checkbox",id:`${e}-${s}`,name:e,value:t.value,checked:v.includes(t.value),onChange:e=>{C(t.value,e.target.checked)},onFocus:N,onBlur:S,disabled:w||t.disabled,className:"form-check-input"}),m.jsx("label",{htmlFor:`${e}-${s}`,className:"form-check-label",children:t.label})]},s))}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:y(v),isTouched:g,mode:c})]})]}):m.jsxs("div",{className:"input-wrapper",children:[m.jsx("div",{className:"mt-2 "+(s?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(s.options||[]).map((t,s)=>m.jsxs("div",{className:"form-check",children:[m.jsx("input",{type:"checkbox",id:`${e}-${s}`,name:e,value:t.value,checked:v.includes(t.value),onChange:e=>{C(t.value,e.target.checked)},onFocus:N,onBlur:S,disabled:w||t.disabled,className:"form-check-input"}),m.jsx("label",{htmlFor:`${e}-${s}`,className:"form-check-label",children:t.label})]},s))}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:y(v),isTouched:g,mode:c})]})})})},S=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,x]=t.useState(i),[v,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let n=!0;return!s?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[s]),C=t.useCallback(t=>{if(x(t),d){const s=j(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,j]),N=e=>{C(e)},S=()=>{p&&p()},w=()=>{y(!0),u&&u()};t.useEffect(()=>{v&&(o[e]=!0)},[v,e,o]),t.useEffect(()=>{i!==g&&x(i)},[i,g]),t.useEffect(()=>{l&&y(!0)},[l]);const k=r||a||s?.validation?.readonly;return m.jsx(m.Fragment,{children:m.jsx("div",{className:`form-group radio-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${s?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${h}`,children:!f&&s.basic.label?m.jsxs(m.Fragment,{children:[m.jsxs("label",{className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("div",{className:"mt-2 "+(s?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(s.options||[]).map((t,s)=>m.jsxs("div",{className:"form-check",children:[m.jsx("input",{type:"radio",id:`${e}-${s}`,name:e,value:t.value,checked:g===t.value,onChange:()=>N(t.value),onFocus:S,onBlur:w,disabled:k||t.disabled,className:"form-check-input"}),m.jsx("label",{htmlFor:`${e}-${s}`,className:"form-check-label",children:t.label})]},s))}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:j(g),isTouched:v,mode:c})]})]}):m.jsxs("div",{className:"input-wrapper",children:[m.jsx("div",{className:"mt-2 "+(s?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(s.options||[]).map((t,s)=>m.jsxs("div",{className:"form-check",children:[m.jsx("input",{type:"radio",id:`${e}-${s}`,name:e,value:t.value,checked:g===t.value,onChange:()=>N(t.value),onFocus:S,onBlur:w,disabled:k||t.disabled,className:"form-check-input"}),m.jsx("label",{htmlFor:`${e}-${s}`,className:"form-check-label",children:t.label})]},s))}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:j(g),isTouched:v,mode:c})]})})})},w=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,x]=t.useState(i),[v,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let n=!0;return!s?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[s]),C=t.useCallback(t=>{if(x(t),y(!0),d){const s=j(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,j]),N=()=>{p&&p()},S=()=>{y(!0),u&&u()};t.useEffect(()=>{v&&(o[e]=!0)},[v,e,o]),t.useEffect(()=>{i!==g&&x(i)},[i,g]),t.useEffect(()=>{l&&y(!0)},[l]);const w=()=>s?.basic?.inlineLayout?"inline-layout":"grid-layout",k=e=>{const t=e?.toLowerCase();return"pass"===t||"yes"===t?"pass":"fail"===t||"no"===t?"fail":"pass"},E=e=>{if(void 0!==e?.icon&&""!==e.icon)return e.icon;return"pass"===k(e?.value||e)?"✓":"×"},$=(e,t)=>e?.color||e?.backgroundColor?{color:t?"#ffffff":e.color||"#00814b",backgroundColor:t?e.color||"#00814b":e.backgroundColor||"#34bd4914",borderColor:e.color||"#00814b"}:{},T=e=>{if(e?.color||e?.backgroundColor)return"segment-button-label segment-button-custom";return"segment-button-label "+("pass"===k(e?.value||e)?"pass-button":"fail-button")},A=r||a||s?.validation?.readonly;return m.jsxs(m.Fragment,{children:[m.jsx("div",{className:`form-group segment-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${h}`,children:!f&&s.basic.label?m.jsxs(m.Fragment,{children:[m.jsxs("label",{className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsx("div",{className:"form-segment-wrapper",children:m.jsx("div",{className:`form-segment-container ${w()}`,children:(s.options||[]).map((t,s)=>{const n=g===t.value,i=$(t,n),a=T(t),r=E(t);return m.jsxs("div",{className:"form-segment-option "+(n?"selected":""),children:[m.jsx("input",{type:"radio",id:`${e}_option_${s}`,name:e,value:t.value,checked:n,onChange:()=>!A&&!t.disabled&&C(t.value),onFocus:N,onBlur:S,disabled:A||t.disabled,className:"form-segment-radio"}),m.jsxs("label",{htmlFor:`${e}_option_${s}`,className:a,style:Object.keys(i).length>0?i:void 0,children:[r&&m.jsx("span",{className:"segment-icon",children:r}),m.jsx("span",{className:"segment-text",children:t.value})]})]},s)})})})]}):m.jsx("div",{className:"form-segment-wrapper",children:m.jsx("div",{className:`form-segment-container ${w()}`,children:(s.options||[]).map((t,s)=>{const n=g===t.value,i=$(t,n),a=T(t),r=E(t);return m.jsxs("div",{className:"form-segment-option "+(n?"selected":""),children:[m.jsx("input",{type:"radio",id:`${e}_option_${s}`,name:e,value:t.value,checked:n,onChange:()=>!A&&!t.disabled&&C(t.value),onFocus:N,onBlur:S,disabled:A||t.disabled,className:"form-segment-radio"}),m.jsxs("label",{htmlFor:`${e}_option_${s}`,className:a,style:Object.keys(i).length>0?i:void 0,children:[r&&m.jsx("span",{className:"segment-icon",children:r}),m.jsx("span",{className:"segment-text",children:t.value})]})]},s)})})})}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:j(g),isTouched:v,mode:c})]})},k=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const g=t.useCallback(e=>{if(!e)return"";if("string"==typeof e){if(/^\d{4}-\d{2}-\d{2}$/.test(e))return e;if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/.test(e))return e;const t=new Date(e);if(!isNaN(t.getTime())){const e=s.name||"",n=s.basic?.dateTimeMode||("datetime-picker"===e?"datetime":"date");if("datetime"===n){return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}T${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}if("time"===n){return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}return e}if(e instanceof Date){if(isNaN(e.getTime()))return"";const t=s.name||"",n=s.basic?.dateTimeMode||("datetime-picker"===t?"datetime":"date");if("datetime"===n){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}T${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}if("time"===n){return`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}if("object"==typeof e&&null!==e){if("value"in e&&e.value)return g(e.value);if("date"in e&&e.date)return g(e.date);try{const t=String(e),s=new Date(t);if(!isNaN(s.getTime()))return g(s)}catch(e){}return""}return""},[s]),x=g(i),[v,y]=t.useState(x),[j,C]=t.useState(!1),[N,S]=t.useState(!1),w=t.useCallback(e=>{const t={};let n=!0;const i=s.name||"",a=s.basic?.dateTimeMode||("datetime-picker"===i?"datetime":"date"),r=e?String(e).trim():"";if(s?.validation?.required&&(!r||""===r))return t.required=!0,n=!1,{isValid:n,errors:t};if(r&&""!==r)if("time"===a){if(!/^([0-1][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$/.test(r))return t.invalidDate=!0,n=!1,{isValid:n,errors:t}}else if("datetime"===a){const e=new Date(r);if(isNaN(e.getTime()))return t.invalidDate=!0,n=!1,{isValid:n,errors:t};if(s?.validation?.minDate){const i=new Date(s.validation.minDate);e<i&&(t.minDate=!0,t.minDateMessage=`Date and time must be on or after ${i.toLocaleDateString()}`,n=!1)}if(s?.validation?.maxDate){const i=new Date(s.validation.maxDate);e>i&&(t.maxDate=!0,t.maxDateMessage=`Date and time must be on or before ${i.toLocaleDateString()}`,n=!1)}}else{const e=new Date(r);if(isNaN(e.getTime()))return t.invalidDate=!0,n=!1,{isValid:n,errors:t};if(s?.validation?.minDate){const i=new Date(s.validation.minDate);e<i&&(t.minDate=!0,t.minDateMessage=`Date must be on or after ${i.toLocaleDateString()}`,n=!1)}if(s?.validation?.maxDate){const i=new Date(s.validation.maxDate);e>i&&(t.maxDate=!0,t.maxDateMessage=`Date must be on or before ${i.toLocaleDateString()}`,n=!1)}}return{isValid:n,errors:t}},[s]),k=t.useCallback(t=>{if(y(t),d){const s=w(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,w]);t.useEffect(()=>{j&&(o[e]=!0)},[j,e,o]),t.useEffect(()=>{const e=g(i);e===v||N||y(e)},[i,v,N,g]),t.useEffect(()=>{l&&C(!0)},[l]);const E=r||a||s?.validation?.readonly,$=s.name||"",T=s.basic?.dateTimeMode||("datetime-picker"===$?"datetime":"date"),A=(()=>{switch(T){case"time":return"time";case"datetime":return"datetime-local";default:return"date"}})();return m.jsxs("div",{className:`form-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!f&&s.basic.label&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("input",{type:A,id:e,value:v,onChange:e=>{const t=e.target.value;k(t)},onFocus:()=>{S(!0),p&&p()},onBlur:()=>{if(S(!1),C(!0),d){const t=w(v),s={id:e,value:v,isValid:t.isValid,errors:t.errors};d(s)}u&&u()},disabled:E,readOnly:a||s?.validation?.readonly,min:s?.validation?.minDate,max:s?.validation?.maxDate,className:`form-date ${!w(v).isValid&&j?"is-invalid":""} ${h}`.trim()}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:w(v),isTouched:j,mode:c})]})]})},E=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const g=t.useRef(null),[x,v]=t.useState(!1),[y,j]=t.useState(!1),[C,N]=t.useState(i),[S,w]=t.useState(!1),k=t.useCallback(e=>{const t={};let n=!0;return!s?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[s]),E=t.useCallback(t=>{if(N(t),d){const s=k(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,k]),$=t.useCallback(()=>{const e=document.documentElement.classList.contains("dark")||"dark"===document.documentElement.getAttribute("data-theme");let t=getComputedStyle(document.documentElement).getPropertyValue("--df-color-fb-input-bg").trim();t||(t=e?"#2c2e34":"#ffffff");return{strokeColor:e?"#ffffff":"#000000",backgroundColor:t}},[]),T=t.useCallback(t=>{if(!t)return;const s=g.current;if(!s)return;const n=s.getContext("2d");if(!n)return;const i=new Image;i.onload=()=>{n.clearRect(0,0,s.width,s.height);const e=$();n.fillStyle=e.backgroundColor,n.fillRect(0,0,s.width,s.height);const t=s.width/s.height,a=i.width/i.height;let r=s.width,o=s.height,l=0,c=0;a>t?(o=s.width/a,c=(s.height-o)/2):(r=s.height*a,l=(s.width-r)/2),n.drawImage(i,l,c,r,o)},i.onerror=s=>{console.error("DfFormSignature: error loading image",{id:e,error:s,dataURL:t.substring(0,50)+"..."})},i.src=t},[$,e]),A=t.useCallback(()=>{const e=g.current;if(!e)return;const t=e.getContext("2d");if(!t)return;const s=e.getBoundingClientRect();e.width=s.width,e.height=s.height,e.style.width=s.width+"px",e.style.height=s.height+"px";const n=$();t.strokeStyle=n.strokeColor,t.lineWidth=2,t.lineCap="round",t.lineJoin="round",C?T(C):(t.fillStyle=n.backgroundColor,t.fillRect(0,0,e.width,e.height))},[C,$,T]),I=t.useCallback(()=>{setTimeout(()=>{A()},100)},[A]);t.useEffect(()=>{const e=()=>{I()},t=new MutationObserver(e=>{e.forEach(e=>{if("attributes"===e.type&&"class"===e.attributeName){const t=e.target;t.classList.contains("form-canvas-container")&&(t.classList.contains("mobile-view")||t.classList.contains("tablet-view")||t.classList.contains("desktop-view"))&&I()}})});return t.observe(document.body,{attributes:!0,attributeFilter:["class"],subtree:!0}),window.addEventListener("resize",e),()=>{t.disconnect(),window.removeEventListener("resize",e)}},[I]);const D=t.useCallback(e=>{const t=g.current;if(!t)return{x:0,y:0};const s=t.getBoundingClientRect(),n=t.width/s.width,i=t.height/s.height,a=e.type.includes("mouse")?e.clientX:e.touches[0].clientX,r=e.type.includes("mouse")?e.clientY:e.touches[0].clientY;return{x:(a-s.left)*n,y:(r-s.top)*i}},[]),R=e=>{if(a||r||s?.validation?.readonly)return;if(e.target.closest(".clear-signature-btn"))return;e.preventDefault(),e.stopPropagation(),v(!0),j(!0);const t=g.current;if(!t)return;const n=t.getContext("2d");if(!n)return;const{x:i,y:o}=D(e),l=$();n.strokeStyle=l.strokeColor,n.lineWidth=2,n.lineCap="round",n.lineJoin="round",n.beginPath(),n.moveTo(i,o)},L=e=>{if(!x)return;e.preventDefault(),e.stopPropagation();const t=g.current;if(!t)return;const s=t.getContext("2d");if(!s)return;const{x:n,y:i}=D(e);s.lineTo(n,i),s.stroke()},F=()=>{if(!x)return;v(!1),w(!0);const e=g.current;if(e){(e=>{const t=e.getContext("2d");if(!t)return!1;const s=t.getImageData(0,0,e.width,e.height).data;for(let e=0;e<s.length;e+=4){const t=s[e],n=s[e+1],i=s[e+2];if(s[e+3]>0&&(t<255||n<255||i<255))return!0}})(e);const t=e.toDataURL("image/png");N(t),E(t),setTimeout(()=>{w(!1)},100)}else w(!1)},V=t.useCallback(()=>{const e=g.current;if(!e)return;const t=e.getContext("2d");if(!t)return;const s=$();if(t.strokeStyle=s.strokeColor,C){const n=C,i=e.getBoundingClientRect();t.fillStyle=s.backgroundColor,t.fillRect(0,0,i.width,i.height),n&&T(n)}else{const n=e.getBoundingClientRect();t.fillStyle=s.backgroundColor,t.fillRect(0,0,n.width,n.height)}},[$,C,T]);t.useEffect(()=>{const e=new MutationObserver(e=>{e.forEach(e=>{"attributes"!==e.type||"class"!==e.attributeName&&"data-theme"!==e.attributeName||V()})});return e.observe(document.documentElement,{attributes:!0,attributeFilter:["class","data-theme"]}),()=>{e.disconnect()}},[V]);t.useEffect(()=>{y&&(o[e]=!0)},[y,e,o]),t.useEffect(()=>{if(!(i===C||x||S||""!==C&&""===i)){if(i===C)return;N(i),i&&T(i)}},[i,C,x,S]),t.useEffect(()=>{l&&j(!0)},[l]),t.useEffect(()=>{if("test"!==c){N("");const e=g.current;if(e){const t=e.getContext("2d");if(t){const s=e.getBoundingClientRect();e.width=s.width,e.height=s.height;const n=$();t.fillStyle=n.backgroundColor,t.fillRect(0,0,s.width,s.height)}}}},[c]),t.useEffect(()=>{A()},[c]);const O=r||a||s?.validation?.readonly;return m.jsxs("div",{className:`form-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!f&&s.basic.label&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsxs("div",{className:"signature-container",style:{position:"relative",width:"100%",maxWidth:"100%",overflow:"hidden"},children:[m.jsx("canvas",{ref:g,id:e,className:`form-signature ${!k(C).isValid&&y?"is-invalid":""} ${h}`.trim(),onMouseDown:R,onMouseMove:L,onMouseUp:F,onMouseLeave:F,onTouchStart:R,onTouchMove:L,onTouchEnd:F,onFocus:()=>{p&&p()},onBlur:()=>{u&&u()},style:{width:"100%",height:"150px",border:"2px solid var(--df-color-primary-border)",borderRadius:"6px",cursor:O?"not-allowed":"crosshair",backgroundColor:"var(--df-color-fb-input-bg)",touchAction:"none",userSelect:"none"}}),!O&&m.jsx("button",{type:"button",onClick:e=>(e=>{e?.preventDefault(),e?.stopPropagation();const t=g.current;if(!t)return;const s=t.getBoundingClientRect();t.width=s.width,t.height=s.height;const n=t.getContext("2d");if(!n)return;const i=$();n.fillStyle=i.backgroundColor,n.fillRect(0,0,s.width,s.height),n.strokeStyle=i.strokeColor,n.lineWidth=2,n.lineCap="round",n.lineJoin="round",N(""),E("")})(e),className:"clear-signature-btn",style:{position:"absolute",bottom:"8px",right:"8px",padding:"4px 8px",backgroundColor:"var(--df-color-error-primary)",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"0.75rem",fontWeight:"500",zIndex:10,transition:"all 0.2s ease",minWidth:"60px",minHeight:"28px"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="var(--df-color-error-dark, #dc2626)",e.currentTarget.style.transform="scale(1.05)"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="var(--df-color-error-primary)",e.currentTarget.style.transform="scale(1)"},children:"Clear"})]}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:k(C),isTouched:y,mode:c})]})]})},$=({id:e,properties:s,validationErrors:n={},formValue:i=null,readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="test",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,x]=t.useState([]),[v,y]=t.useState(!1),[j,C]=t.useState(!1),N=t.useRef(null),S=t.useCallback(t=>{if(!t)return[];const s=Array.isArray(t)?t:Array.from(t),n=[];return s.forEach((t,s)=>{let i,a,r=0,o="",l="";if(t instanceof File||t instanceof Blob){const e=t;if(r=e.size||0,o=e.type||"",l=e.name||`file-${s}`,a=e,o.startsWith("image/"))try{i=URL.createObjectURL(e)}catch(e){console.error("Error creating object URL:",e),i=void 0}}else if("string"==typeof t){const e=t,n=e.length>100&&/^[A-Za-z0-9+/=]+$/.test(e.replace(/\s/g,""))&&!e.startsWith("http")&&!e.startsWith("data:")&&!e.startsWith("blob:");let r=e;if(n){r=`data:${e.startsWith("/9j/")||e.startsWith("iVBORw0KGgo")?"image/jpeg":e.startsWith("iVBORw0KGgo")?"image/png":e.startsWith("R0lGOD")?"image/gif":"image/png"};base64,${e}`}let c="";if(r.startsWith("data:")){const e=r.match(/filename=([^;]+)/i);if(e)c=decodeURIComponent(e[1]);else{const e=r.match(/data:([^;]+)/);if(e){const t=e[1];c=`file-${s+1}.${t.includes("image")?t.includes("jpeg")?"jpg":"png":t.includes("pdf")?"pdf":t.includes("word")?"doc":t.includes("excel")?"xls":"file"}`}else c=`file-${s+1}`}}else if(r.startsWith("http://")||r.startsWith("https://")||r.startsWith("blob:"))try{const t=new URL(e),n=t.pathname.split("/").pop()||"";if(n&&n.includes("."))c=decodeURIComponent(n);else{const e=t.searchParams.get("filename")||t.searchParams.get("name");c=e?decodeURIComponent(e):`file-${s+1}`}}catch(t){const n=e.lastIndexOf("/"),i=n>=0?e.substring(n+1):e,a=i.indexOf("?"),r=a>=0?i.substring(0,a):i;c=r&&r.includes(".")?decodeURIComponent(r):`file-${s+1}`}else c=`file-${s+1}`;if(l=c||`file-${s+1}`,r.startsWith("data:")){const e=r.indexOf(";");o=e>5?r.substring(5,e):"application/octet-stream"}else{const e=r.match(/\.(jpg|jpeg|png|gif|webp|svg|pdf|doc|docx|xls|xlsx|zip|rar)$/i)||l.match(/\.(jpg|jpeg|png|gif|webp|svg|pdf|doc|docx|xls|xlsx|zip|rar)$/i);if(e){o={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",pdf:"application/pdf",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",zip:"application/zip",rar:"application/x-rar-compressed"}[e[1].toLowerCase()]||"application/octet-stream"}else o=n?"image/png":"application/octet-stream"}(r.startsWith("data:image")||r.startsWith("http://")||r.startsWith("https://")||r.startsWith("blob:"))&&(i=r),a=new File([],l,{type:o})}else{if(!t||"object"!=typeof t)return;{const e=t;if(l=e.name||e.fileName||`file-${s}`,r=e.size||e.fileSize||0,o=e.type||e.fileType||e.mimeType||"",e.url||e.path)i=e.url||e.path;else if(o.startsWith("image/")&&e.data){const t=e.data;i="string"==typeof t?t.startsWith("data:")?t:`data:${o};base64,${t}`:void 0}a=new File([],l,{type:o})}}n.push({file:a,id:`${e}-file-${s}`,size:r,type:o,name:l,preview:i})}),n},[e]),w=t.useCallback(()=>({isValid:!0,errors:{}}),[]),k=t.useCallback(t=>{if(a||r)return;const n=S(t),i=g.length>0?[...g,...n]:n,o=s?.validation?.maxFiles||1/0,l=i.slice(0,o);if(x(l),C(!0),d){const t=w(),s={id:e,value:l.map(e=>e.file),isValid:t.isValid,errors:t.errors};d(s)}},[g,s,a,r,d,w,S,e]),E=e=>{if(0===e)return"0 Bytes";const t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(2))+" "+["Bytes","KB","MB","GB"][t]},$=e=>e.startsWith("image/")?"🖼️":e.startsWith("video/")?"🎥":e.startsWith("audio/")?"🎵":e.includes("pdf")?"📄":e.includes("word")||e.includes("document")?"📝":e.includes("excel")||e.includes("spreadsheet")?"📊":e.includes("zip")||e.includes("rar")?"📦":"📁";t.useEffect(()=>{j&&(o[e]=!0)},[j,e,o]),t.useEffect(()=>{("edit"===c||"test"===c)&&C(!1)},[c]),t.useEffect(()=>{const e=S(i);x(e)},[i,S]),t.useEffect(()=>{l&&C(!0)},[l]),t.useEffect(()=>()=>{g.forEach(e=>{if(e.preview&&e.preview.startsWith("blob:"))try{URL.revokeObjectURL(e.preview)}catch(e){console.error("Error revoking object URL:",e)}})},[g]);const T=()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"},A=r||a||s?.validation?.readonly,I=s?.validation?.multiple||!1,D=s?.validation?.accept||"*/*",R=s?.validation?.maxFiles||1/0,L=g.length<R&&(I||R>1),F="edit"===c,V="preview"===c||"test"===c,O=g.filter(e=>e.type.startsWith("image/")),M=g.filter(e=>!e.type.startsWith("image/")),q=O.length>0;return V&&q?m.jsxs("div",{className:`form-group ${T()}`,children:[!f&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic?.label||"Attachments",s.validation?.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"file-upload-wrapper",children:[m.jsxs("div",{className:"file-image-display",children:[O.map(e=>m.jsxs("div",{className:"file-image-container",children:[e.preview&&m.jsx("img",{src:e.preview,alt:e.name,className:"file-image-preview"}),m.jsxs("div",{className:"file-image-info",children:[m.jsx("div",{className:"file-name",title:e.name,children:e.name}),m.jsx("div",{className:"file-size",children:E(e.size)})]})]},e.id)),M.length>0&&m.jsxs("div",{className:"file-other-files",children:[m.jsx("div",{className:"file-other-files-label",children:"Other Files:"}),M.map(e=>m.jsxs("div",{className:"file-item-minimal",children:[m.jsx("div",{className:"file-icon",children:$(e.type)}),m.jsxs("div",{className:"file-info",children:[m.jsx("div",{className:"file-name",title:e.name,children:e.name}),m.jsx("div",{className:"file-size",children:E(e.size)})]})]},e.id))]})]}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:w(),isTouched:j,mode:c})]})]}):m.jsxs("div",{className:`form-group ${T()}`,children:[!f&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic?.label||"Attachments",s.validation?.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"file-upload-wrapper",children:[m.jsxs("div",{className:`file-upload-area ${v?"drag-over":""} ${a?"readonly":""} ${r?"disabled":""} ${h}`.trim(),onDragOver:e=>{e.preventDefault(),a||r||y(!0)},onDragLeave:e=>{e.preventDefault(),y(!1)},onDrop:e=>{if(e.preventDefault(),y(!1),a||r)return;const t=e.dataTransfer.files;t.length>0&&k(t)},onClick:e=>{const t=e.target,s=null!==t.closest(".file-item"),n=null!==t.closest(".file-remove");!F||A||0!==g.length||s||n||N.current?.click()},onFocus:()=>{p&&p()},onBlur:()=>{if(C(!0),"test"===c&&d){const t=w(),s={id:e,value:g.map(e=>e.file),isValid:t.isValid,errors:t.errors};d(s)}u&&u()},tabIndex:A?-1:0,children:[m.jsx("input",{ref:N,type:"file",id:e,multiple:I,accept:D,onChange:e=>{const t=e.target.files;t&&t.length>0&&(k(t),e.target.value="")},disabled:A,style:{display:"none"}}),0===g.length?m.jsxs("div",{className:"upload-placeholder",onClick:e=>{e.stopPropagation(),F&&!A&&N.current?.click()},children:[m.jsx("div",{className:"upload-icon",children:"📁"}),m.jsx("div",{className:"upload-text",children:s.basic.placeholder&&m.jsx("p",{className:"upload-hint",children:s.basic.placeholder})})]}):m.jsx("div",{className:"file-list",children:g.map(t=>m.jsxs("div",{className:"file-item",children:[m.jsx("div",{className:"file-preview",children:t.preview?m.jsx("img",{src:t.preview,alt:t.name,className:"file-image"}):m.jsx("div",{className:"file-icon",children:$(t.type)})}),m.jsxs("div",{className:"file-info",children:[m.jsx("div",{className:"file-name",title:t.name,children:t.name}),m.jsx("div",{className:"file-size",children:E(t.size)})]}),F&&!A&&m.jsx("button",{type:"button",className:"file-remove",onClick:s=>{s.stopPropagation(),(t=>{if(a||r)return;const s=g.filter(e=>e.id!==t);if(x(s),C(!0),d){const t=w(),n={id:e,value:s.map(e=>e.file),isValid:t.isValid,errors:t.errors};d(n)}})(t.id)},"aria-label":`Remove ${t.name}`,children:"✕"})]},t.id))})]}),g.length>0&&L&&!A&&F&&m.jsxs("button",{type:"button",className:"file-add-more",onClick:e=>{e.stopPropagation(),!A&&N.current&&F&&(N.current.value="",N.current.click())},"aria-label":"Add more files",children:[m.jsx("svg",{className:"file-add-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:m.jsx("path",{d:"M12 5v14M5 12h14"})}),m.jsx("span",{className:"file-add-text",children:"Add More Files"})]}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:w(),isTouched:j,mode:c})]})]})},T=({id:e,properties:n,validationErrors:i={},formValue:a=null,readonly:r=!1,disabled:o=!1,touchedFields:l={},formSubmitted:c=!1,mode:d="test",onValueChange:u,onBlur:p,onFocus:h,className:f="",hideLabel:g=!1})=>{const[x,v]=t.useState(a),[y,j]=t.useState(!1),[C,N]=t.useState(""),[S,w]=t.useState(!1),[k,E]=t.useState(!1),[$,T]=t.useState({lat:40.7128,lng:-74.006}),[A,I]=t.useState(null),[D,R]=t.useState(10),[L,F]=t.useState(""),[V,O]=t.useState(!1),M=t.useRef(null),[q,P]=t.useState(!1),[z,_]=t.useState(null),[W,B]=t.useState(!1);t.useEffect(()=>{a?(v(a),a.latitude&&a.longitude&&(I({lat:a.latitude,lng:a.longitude,isCurrentLocation:!1}),T({lat:a.latitude,lng:a.longitude}))):(v(null),I(null))},[a]),t.useEffect(()=>{k&&40.7128===$.lat&&$.lng},[k,$]),t.useEffect(()=>{(r||o)&&(k&&E(!1),L&&F(""),q&&(P(!1),_(null)))},[r,o]);const U=t.useCallback(async(e,t)=>{B(!0);try{const s=await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${e}&lon=${t}&addressdetails=1&zoom=18`),n=await s.json();if(n&&n.address){const e=n.address;return{placeName:n.display_name||"",city:e.city||e.town||e.village||e.municipality||"",country:e.country||""}}}catch(e){console.error("Reverse geocoding failed:",e)}finally{B(!1)}return{placeName:"",city:"",country:""}},[]),G=t.useCallback(async(t,s,n)=>{const i=await U(t,s),a={latitude:t,longitude:s,timestamp:Date.now(),placeName:i.placeName,city:i.city,country:i.country,address:i.placeName,...n};if(v(a),I({lat:t,lng:s,isCurrentLocation:!1}),w(!0),u){u({id:e,value:a,isValid:!0,errors:{}})}},[U,e,u]),J=t.useCallback(()=>{if(r||o)return;if(!navigator.geolocation)return void N("Geolocation is not supported by this browser.");j(!0),N("");const e={enableHighAccuracy:n.validation?.enableHighAccuracy??!0,timeout:n.validation?.timeout??1e4,maximumAge:n.validation?.maximumAge??3e5};navigator.geolocation.getCurrentPosition(async e=>{const t=e.coords.latitude,s=e.coords.longitude;I({lat:t,lng:s,isCurrentLocation:!0}),T({lat:t,lng:s}),w(!0),await G(t,s,{accuracy:e.coords.accuracy,timestamp:e.timestamp}),j(!1)},e=>{j(!1);let t="Unable to retrieve your location.";switch(e.code){case e.PERMISSION_DENIED:t="Location access denied by user.";break;case e.POSITION_UNAVAILABLE:t="Location information is unavailable.";break;case e.TIMEOUT:t="Location request timed out."}N(t)},e)},[r,o,e,u,n]),H=t.useCallback(()=>{if(!r&&!o&&(v(null),I(null),N(""),w(!0),u)){u({id:e,value:null,isValid:!0,errors:{}})}},[r,o,e,u]),Y=t.useCallback(()=>{r||o||E(!k)},[r,o,k]),X=t.useCallback((e,t,s,n,i,a)=>{const r=e-i/2,o=t-a/2,l=156543.03392*Math.cos(s.lat*Math.PI/180)/Math.pow(2,n),c=r*l,d=o*l;return{lat:s.lat+d/111320,lng:s.lng+c/(111320*Math.cos(s.lat*Math.PI/180))}},[]),K=t.useCallback(e=>{r||o||!M.current||0===e.button&&(P(!0),_({x:e.clientX,y:e.clientY}),e.preventDefault())},[r,o]),Z=t.useCallback(e=>{if(!q||!z||!M.current)return;const t=e.clientX-z.x,s=e.clientY-z.y,n=156543.03392*Math.cos($.lat*Math.PI/180)/Math.pow(2,D),i=-s*n/111320,a=t*n/(111320*Math.cos($.lat*Math.PI/180));T({lat:$.lat+i,lng:$.lng+a}),_({x:e.clientX,y:e.clientY})},[q,z,$,D]),Q=t.useCallback(async e=>{if(!M.current)return;if(q&&z){const t=Math.abs(e.clientX-z.x),s=Math.abs(e.clientY-z.y);if(t>5||s>5)return P(!1),void _(null)}if(r||o)return P(!1),void _(null);const t=M.current.getBoundingClientRect(),s=e.clientX-t.left,n=e.clientY-t.top,{lat:i,lng:a}=X(s,n,$,D,t.width,t.height);await G(i,a),P(!1),_(null)},[r,o,M,$,D,X,G,q,z]),ee=t.useCallback(async t=>{if(t.trim()&&!r&&!o){O(!0),N("");try{const s=await fetch(`https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(t)}&limit=5&addressdetails=1`),n=await s.json();if(n&&n.length>0){const t=n[0],s=parseFloat(t.lat),i=parseFloat(t.lon),a=t.address||{},r={latitude:s,longitude:i,address:t.display_name,placeName:t.display_name,city:a.city||a.town||a.village||a.municipality||"",country:a.country||"",timestamp:Date.now()};if(v(r),I({lat:s,lng:i,isCurrentLocation:!1}),T({lat:s,lng:i}),w(!0),u){u({id:e,value:r,isValid:!0,errors:{}})}}else N("No locations found for your search.")}catch(e){N("Failed to search for location. Please try again.")}finally{O(!1)}}},[r,o,e,u]),te=()=>{h&&h()},se=()=>{w(!0),p&&p()},ne=o||r||n?.validation?.readonly,ie=n?.basic?.label||"Location",ae=n?.basic?.description||"";return m.jsxs("div",{className:`form-group ${g?"no-label":""} ${f}`,children:[!g&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[ie,n?.validation?.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),ae&&m.jsx("div",{className:"form-group-description",children:ae}),m.jsxs("div",{className:"location-wrapper",children:[!(r&&x)&&m.jsxs("div",{className:"location-controls",children:[m.jsx("button",{type:"button",className:"location-btn "+(y?"loading":""),onClick:J,disabled:ne||y,onFocus:te,onBlur:se,tabIndex:ne?-1:0,children:y?m.jsxs(m.Fragment,{children:[m.jsx(s.Loader2,{size:16,className:"loading-spinner"}),"Getting Location..."]}):m.jsxs(m.Fragment,{children:[m.jsx(s.Navigation,{size:16}),"Get Current Location"]})}),m.jsxs("button",{type:"button",className:"location-btn secondary",onClick:Y,disabled:ne,onFocus:te,onBlur:se,tabIndex:ne?-1:0,children:[m.jsx(s.MapPin,{size:16}),k?"Hide Map":"Choose on Map"]})]}),x&&m.jsxs("div",{className:"location-display",children:[!r&&m.jsx("button",{type:"button",className:"location-clear-btn",onClick:H,disabled:ne,title:"Clear location",children:m.jsx(s.X,{size:16})}),x.placeName&&m.jsxs("div",{className:"location-place-name",children:[m.jsx("strong",{children:"Place:"})," ",x.placeName]}),(x.city||x.country)&&m.jsxs("div",{className:"location-address",children:[m.jsx("strong",{children:"Address:"})," ",[x.city,x.country].filter(Boolean).join(", ")]}),m.jsxs("div",{className:"location-coordinates",children:[m.jsx("strong",{children:"Coordinates:"})," ",(oe=x.latitude,le=x.longitude,void 0===oe||void 0===le||isNaN(oe)||isNaN(le)?"":`${Number(oe).toFixed(6)}, ${Number(le).toFixed(6)}`)]}),x.accuracy&&m.jsxs("div",{className:"location-accuracy",children:[m.jsx("strong",{children:"Accuracy:"})," ",(re=x.accuracy,re?`±${Math.round(re)}m`:"")]}),x.timestamp&&m.jsxs("div",{className:"location-timestamp",children:[m.jsx("strong",{children:"Captured:"})," ",new Date(x.timestamp).toLocaleString()]})]}),k&&!r&&m.jsxs("div",{className:"location-map-container",children:[m.jsxs("div",{className:"location-map-header",children:[m.jsx("h4",{children:"Select Location on Map"}),m.jsx("p",{children:"Search for a place or click on the map to select a location"})]}),m.jsx("div",{className:"location-search",children:m.jsx("form",{onSubmit:e=>{e.preventDefault(),L.trim()&&ee(L)},className:"search-form",children:m.jsxs("div",{className:"search-input-group",children:[m.jsx("input",{type:"text",value:L,onChange:e=>{F(e.target.value)},placeholder:"Search for a place (e.g., New York, Paris, Tokyo)",className:"search-input",disabled:ne||V}),m.jsx("button",{type:"submit",className:"search-btn",disabled:ne||V||!L.trim(),children:V?m.jsx(s.Loader2,{size:16,className:"loading-spinner"}):"Search"})]})})}),m.jsxs("div",{ref:M,className:"location-map "+(q?"dragging":""),onMouseDown:K,onMouseMove:Z,onMouseUp:Q,onMouseLeave:()=>{P(!1),_(null)},style:{position:"relative",height:"400px",border:"2px solid var(--df-color-fb-border)",borderRadius:"8px",overflow:"hidden",cursor:q?"grabbing":"grab",background:`url(https://tile.openstreetmap.org/${D}/${Math.floor(($.lng+180)/360*Math.pow(2,D))}/${Math.floor((1-Math.log(Math.tan($.lat*Math.PI/180)+1/Math.cos($.lat*Math.PI/180))/Math.PI)/2*Math.pow(2,D))}.png) center/cover no-repeat`,userSelect:"none"},children:[A&&m.jsx("div",{className:"map-marker "+(A.isCurrentLocation?"current-location":"selected-location"),style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -100%)",zIndex:10},children:m.jsx(s.MapPin,{size:24})}),m.jsx("div",{className:"map-center-indicator",style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",width:"4px",height:"4px",backgroundColor:"var(--df-color-primary)",borderRadius:"50%",zIndex:5}}),m.jsxs("div",{className:"map-controls",children:[m.jsx("button",{type:"button",className:"map-zoom-btn",onClick:()=>R(e=>Math.min(18,e+1)),disabled:D>=18,children:"+"}),m.jsx("button",{type:"button",className:"map-zoom-btn",onClick:()=>R(e=>Math.max(1,e-1)),disabled:D<=1,children:"−"})]})]}),m.jsxs("div",{className:"location-map-instructions",children:[m.jsx("p",{children:m.jsx("strong",{children:"Instructions:"})}),m.jsxs("ul",{children:[m.jsx("li",{children:"Search for a place using the search box above"}),m.jsx("li",{children:"Click anywhere on the map to select a location"}),m.jsx("li",{children:"Drag the map to pan around"}),m.jsx("li",{children:"Use the zoom buttons (+/−) to zoom in/out"}),m.jsx("li",{children:'Use "Get Current Location" to automatically detect your position'})]})]}),W&&m.jsxs("div",{className:"location-loading",children:[m.jsx(s.Loader2,{size:16,className:"loading-spinner"}),m.jsx("span",{children:"Loading address details..."})]})]}),C&&m.jsx("div",{className:"location-error",children:C})]}),m.jsx(b,{validationErrors:i,fieldId:e,touchedFields:l,formSubmitted:c,properties:n,localValidation:{isValid:!0,errors:{}},isTouched:S,mode:d})]});var re,oe,le},A=({id:e,properties:t,className:s="",hideLabel:n=!1})=>{const i=t.styles?.level??t.basic.level??1,a=t.basic.label,r=()=>{const e={};return t?.styles?.fontSize&&(e.fontSize=t.styles.fontSize),t?.styles?.color&&(e.color=t.styles.color),e};return n?null:(()=>{const n={id:e,className:`form-heading h${i} ${t?.styles?.textAlign?`text-${t.styles.textAlign}`:""} ${s}`.trim(),style:r()};switch(i){case 1:default:return m.jsx("h1",{...n,children:a});case 2:return m.jsx("h2",{...n,children:a});case 3:return m.jsx("h3",{...n,children:a});case 4:return m.jsx("h4",{...n,children:a});case 5:return m.jsx("h5",{...n,children:a});case 6:return m.jsx("h6",{...n,children:a})}})()},I=({id:e,properties:n,mode:i="preview",formValue:a,onValueChange:r,className:o="",hideLabel:l=!1})=>{const[c,d]=t.useState(""),[u,p]=t.useState(n.validation?.listStyle||"numbers"),[h,f]=t.useState("#000000"),b=t.useRef(null),g=t.useRef(null),x=t.useRef(!1),v="edit"===i,y=t.useRef({instructions:[],listStyle:"numbers"}),j=t.useRef(i);t.useEffect(()=>{let e=[];null!=a&&("object"==typeof a&&a.instructions?Array.isArray(a.instructions)?e=a.instructions:"string"==typeof a.instructions&&(e=[a.instructions]):Array.isArray(a)?e=a:"string"==typeof a&&(e=[a])),0===e.length&&n.basic?.instructions&&(Array.isArray(n.basic.instructions)?e=n.basic.instructions:"string"==typeof n.basic.instructions&&(e=[n.basic.instructions]));const t=n.validation?.listStyle||"numbers",s=JSON.stringify(e)!==JSON.stringify(y.current.instructions)||t!==y.current.listStyle,r=i!==j.current;if(s||r){const n=e.some(e=>"string"==typeof e&&/<[^>]+>/.test(e));let a="";if(e.length>0)if(n)a=e.join("");else{const s="numbers"===t?"ol":"bullets"===t?"ul":"div",n=e.filter(e=>e&&"string"==typeof e).map(e=>`<li>${e.replace(/\n/g,"<br>")}</li>`).join("");a="div"===s?e.filter(e=>e&&"string"==typeof e).map(e=>`<div>${e.replace(/\n/g,"<br>")}</div>`).join(""):`<${s}>${n}</${s}>`}p(t),d(a),v&&b.current&&(r||s&&b.current.innerHTML.trim()!==a.trim())&&(b.current.innerHTML=a),y.current={instructions:e,listStyle:t},j.current=i}},[a,n.basic?.instructions,n.validation?.listStyle,i,v]),t.useEffect(()=>{if(v&&b.current){const e=b.current.innerHTML.trim();c.trim()===e||x.current||(b.current.innerHTML=c)}if(x.current){const e=setTimeout(()=>{x.current=!1},200);return()=>clearTimeout(e)}},[c,v]);const C=t.useCallback(()=>{if(!b.current)return;x.current=!0;const t=b.current.innerHTML.trim();if(r){r({id:e,value:{instructions:t?[t]:[],listStyle:u},isValid:!0,errors:{}})}t!==c&&d(t)},[e,u,r,c]),N=t.useCallback(()=>{if(!b.current)return;const t=b.current.innerHTML.trim();if(r){r({id:e,value:{instructions:t?[t]:[],listStyle:u},isValid:!0,errors:{}})}d(t),x.current=!1},[e,u,r]),S=t.useCallback((e,t)=>{document.execCommand(e,!1,t),b.current?.focus(),C()},[C]),w=t.useCallback(()=>{S("bold")},[S]),k=t.useCallback(()=>{S("italic")},[S]),E=t.useCallback(e=>{const t=e.target.value;f(t),S("foreColor",t)},[S]),$=t.useCallback(t=>{if(p(t),!b.current)return;const s=window.getSelection(),n=s&&s.rangeCount>0?s.getRangeAt(0):null;let i=b.current.innerHTML;if("numbers"===t){if(i=i.replace(/<ul>/gi,"<ol>").replace(/<\/ul>/gi,"</ol>"),!i.includes("<ol>")&&!i.includes("<ul>")){const e=i.split(/<br\s*\/?>/i).filter(e=>e.trim());e.length>0&&(i="<ol>"+e.map(e=>`<li>${e}</li>`).join("")+"</ol>")}}else if("bullets"===t){if(i=i.replace(/<ol>/gi,"<ul>").replace(/<\/ol>/gi,"</ul>"),!i.includes("<ol>")&&!i.includes("<ul>")){const e=i.split(/<br\s*\/?>/i).filter(e=>e.trim());e.length>0&&(i="<ul>"+e.map(e=>`<li>${e}</li>`).join("")+"</ul>")}}else i=i.replace(/<\/?[ou]l>/gi,"").replace(/<li>/gi,"<div>").replace(/<\/li>/gi,"</div>");if(b.current.innerHTML=i,d(i),n&&s)try{s.removeAllRanges(),s.addRange(n)}catch(e){}if(C(),r){r({id:e,value:{instructions:i?[i]:[],listStyle:t},isValid:!0,errors:{}})}},[e,C,r]),T=t.useCallback(e=>{const t=e.target.files?.[0];if(!t||!t.type.startsWith("image/"))return;const s=new FileReader;s.onload=e=>{const t=e.target?.result;if(t&&b.current){const e=document.createElement("img");e.src=t,e.style.maxWidth="100%",e.style.height="auto";const s=window.getSelection();if(s&&s.rangeCount>0){const t=s.getRangeAt(0);t.deleteContents(),t.insertNode(e)}else b.current.appendChild(e);C()}},s.readAsDataURL(t),g.current&&(g.current.value="")},[C]),A=t.useCallback(e=>{e.preventDefault();const t=e.clipboardData.getData("text/plain"),s=window.getSelection();if(s&&s.rangeCount>0){const e=s.getRangeAt(0);e.deleteContents();const n=document.createTextNode(t);e.insertNode(n),e.setStartAfter(n),e.collapse(!0),s.removeAllRanges(),s.addRange(e)}C()},[C]),I=t.useCallback(e=>document.queryCommandState(e),[]);return m.jsxs("div",{className:`form-group instruction-group ${o}`,children:[!l&&m.jsx("label",{htmlFor:e,className:"instruction-label",children:"Instructions"}),v?m.jsxs("div",{className:"instruction-rich-editor",children:[m.jsxs("div",{className:"instruction-toolbar",children:[m.jsxs("div",{className:"toolbar-group",children:[m.jsx("button",{type:"button",className:"toolbar-btn "+(I("bold")?"active":""),onClick:w,title:"Bold","aria-label":"Bold",children:m.jsx(s.Bold,{size:16})}),m.jsx("button",{type:"button",className:"toolbar-btn "+(I("italic")?"active":""),onClick:k,title:"Italic","aria-label":"Italic",children:m.jsx(s.Italic,{size:16})})]}),m.jsx("div",{className:"toolbar-separator"}),m.jsx("div",{className:"toolbar-group",children:m.jsxs("div",{className:"color-picker-wrapper",children:[m.jsx("input",{type:"color",value:h,onChange:E,className:"color-picker-input",title:"Text Color"}),m.jsx("label",{className:"color-picker-label",title:"Text Color",children:m.jsx("span",{style:{color:h},children:"A"})})]})}),m.jsx("div",{className:"toolbar-separator"}),m.jsxs("div",{className:"toolbar-group",children:[m.jsx("button",{type:"button",className:"toolbar-btn "+("bullets"===u?"active":""),onClick:()=>$("bullets"),title:"Bullet List","aria-label":"Bullet List",children:m.jsx(s.List,{size:16})}),m.jsx("button",{type:"button",className:"toolbar-btn "+("numbers"===u?"active":""),onClick:()=>$("numbers"),title:"Numbered List","aria-label":"Numbered List",children:m.jsx(s.ListOrdered,{size:16})})]}),m.jsx("div",{className:"toolbar-separator"}),m.jsxs("div",{className:"toolbar-group",children:[m.jsx("button",{type:"button",className:"toolbar-btn",onClick:()=>g.current?.click(),title:"Insert Image","aria-label":"Insert Image",children:m.jsx(s.Image,{size:16})}),m.jsx("input",{ref:g,type:"file",accept:"image/*",onChange:T,style:{display:"none"}})]})]}),m.jsx("div",{ref:b,contentEditable:!0,className:"instruction-editor-content",onInput:C,onBlur:N,onPaste:A,"data-placeholder":"Enter instructions (press Enter for a new line)...",suppressContentEditableWarning:!0})]}):m.jsx("div",{className:"instruction-preview-wrapper "+("numbers"===u?"instruction-list-numbers":"bullets"===u?"instruction-list-bullets":""),children:c?m.jsx("div",{className:"instruction-preview-content",dangerouslySetInnerHTML:{__html:c}}):m.jsx("div",{className:"instruction-empty",children:m.jsx("p",{children:"No instructions provided"})})})]})},D=({attachments:e,onRemove:n})=>{const[i,a]=t.useState(new Map);return t.useEffect(()=>{if(!e)return void a(e=>(e.forEach(e=>URL.revokeObjectURL(e)),new Map));const t=new Map;return e.forEach((e,s)=>{if(e.type.startsWith("image/")){const n=URL.createObjectURL(e);t.set(s,n)}}),a(e=>(e.forEach((e,s)=>{t.has(s)||URL.revokeObjectURL(e)}),t)),()=>{t.forEach(e=>URL.revokeObjectURL(e))}},[e]),e&&0!==e.length?m.jsx("div",{className:"attachment-thumbnails-container",children:e.map((e,t)=>{const a=e.type.startsWith("image/"),r=i.get(t);return m.jsx("div",{className:"attachment-thumbnail",children:a&&r?m.jsxs(m.Fragment,{children:[m.jsx("img",{src:r,alt:e.name}),m.jsx("button",{type:"button",className:"thumbnail-remove-btn",onClick:()=>n(t),title:"Remove attachment",children:m.jsx(s.X,{size:14})})]}):m.jsxs(m.Fragment,{children:[m.jsx("div",{className:"file-icon-placeholder",children:m.jsx(s.Paperclip,{size:20})}),m.jsx("span",{className:"file-name",children:e.name}),m.jsx("button",{type:"button",className:"thumbnail-remove-btn",onClick:()=>n(t),title:"Remove attachment",children:m.jsx(s.X,{size:14})})]})},t)})}):null},R=({component:e,mode:n,formTemplateId:i,formValue:a,onNotesChange:r,onAttachmentChange:o,notes:l="",attachments:c=null,onThresholdActionCompletion:d,onThresholdIssueRaised:u,onBasicPropertyActionCompletion:p})=>{const[h,f]=t.useState(l||""),[b,g]=t.useState(c||null),[v,y]=t.useState(!1),[j,C]=t.useState(!1),[N,S]=t.useState(!1),[w,k]=t.useState(!1),[E,$]=t.useState(!1),T=t.useRef(null),A=t.useRef(a),I=t.useRef(!1),R=t.useRef(!1);t.useEffect(()=>{if(!I.current&&null!=l){const e="string"==typeof l?l:String(l||"");f(e),I.current=!0}},[l]),t.useEffect(()=>{R.current||void 0===c||(g(c),R.current=!0)},[c]),t.useEffect(()=>{if(I.current&&!v&&null!=l){const e="string"==typeof l?l:String(l||"");h&&""!==String(h||"").trim()||!e||""===e.trim()?e&&""!==e.trim()&&e!==h&&f(e):f(e)}},[l,v,h]),t.useEffect(()=>{R.current&&void 0!==c&&(!b||c&&c.length>0&&c!==b)&&g(c)},[c,b]),t.useEffect(()=>{const t=["select","radio","checkbox","segment"].includes(e.name||"");if(t){const t=A.current,s=a;let n=!1;if("checkbox"===e.name){const e=Array.isArray(t)?t:t?[t]:[],i=Array.isArray(s)?s:s?[s]:[];n=JSON.stringify(e.sort())!==JSON.stringify(i.sort())}else n=t!==s&&void 0!==t;if(n){S(!1),k(!1),C(!1),y(!1),$(!1);const e="string"==typeof l?l:String(l||"");e&&""!==e.trim()?f(e):f(""),c&&0!==c.length?g(c):g(null)}A.current=s}t||(A.current=a)},[a,e.name,l,c]);const L=t.useCallback((e,t)=>{const{operator:s,value:n}=e,i=String(t).toLowerCase(),a=String(n).toLowerCase();switch(s){case"equals":return i===a||String(t)===String(n);case"notEquals":return i!==a&&String(t)!==String(n);case"greaterThan":return Number(t)>Number(n);case"lessThan":return Number(t)<Number(n);case"greaterThanOrEqual":return Number(t)>=Number(n);case"lessThanOrEqual":return Number(t)<=Number(n);default:return!1}},[]),F=t.useCallback(()=>{if(!(null!=a&&""!==a&&!(Array.isArray(a)&&0===a.length)))return[];const t=e.condition;if(!t||!t.conditions||0===t.conditions.length)return[];const s=[];if("checkbox"===e.name&&Array.isArray(a))a.forEach(e=>{const n=t.conditions.find(t=>L(t,e));n&&!s.find(e=>e.id===n.id)&&s.push(n)});else{const e=t.conditions.find(e=>L(e,a));e&&s.push(e)}return s},[e,a,L]),V=t.useCallback(t=>{const s=t.target.value;f(s),r&&r(s);const n=F(),i=String(s||"").trim().length>0;n.forEach(e=>{!0===e.enableNotes&&d&&d(e.id,"notes",i)});const a=e.condition;!(a&&a.conditions&&a.conditions.length>0)&&p&&p("notes",i)},[r,F,d,e,p]),O=t.useCallback(()=>{if(r){const e="string"==typeof h?h:String(h||"");r(e),setTimeout(()=>{y(!1)},0)}else y(!1)},[h,r]),M=t.useCallback(()=>{O()},[O]),q=t.useCallback(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),O())},[O]),P=t.useCallback(()=>{y(!0)},[]),z=t.useCallback(()=>{y(!0)},[]),_=t.useCallback(()=>{T.current?.click()},[]),W=t.useCallback(t=>{const s=t.target.files;if(s&&s.length>0){const t=Array.from(s);g(t),o&&o(t);F().forEach(e=>{!0===e.enableAttachment&&d&&d(e.id,"attachments",!0)});const n=e.condition;!(n&&n.conditions&&n.conditions.length>0)&&p&&p("attachments",!0)}T.current&&(T.current.value="")},[o,F,d,e,p]),B=t.useCallback(t=>{if(b){const s=b.filter((e,s)=>s!==t);if(0===s.length){g(null),o&&o(null);F().forEach(e=>{!0===e.enableAttachment&&d&&d(e.id,"attachments",!1)});const t=e.condition;!(t&&t.conditions&&t.conditions.length>0)&&p&&p("attachments",!1)}else g(s),o&&o(s)}},[b,o,F,d,e,p]),U=t.useCallback(()=>{S(!0);F().forEach(e=>{!0===e.enableSendEmail&&d&&d(e.id,"email",!0)});const t=e.condition;!(t&&t.conditions&&t.conditions.length>0)&&p&&p("email",!0),setTimeout(()=>{S(!1)},3e3)},[F,d,e,p]),G=t.useCallback(()=>{C(!0)},[]),J=t.useCallback(()=>{C(!1)},[]),H=t.useCallback(()=>{C(!1),k(!0);const t=e.condition;if(t&&t.conditions&&t.conditions.length>0){F().forEach(e=>{!0===e.enableRaiseIssue&&u&&u(e.id)})}else p&&p("issue",!0)},[e,p,F,u]);if("test"!==n)return null;const Y=["select","radio","checkbox","segment"].includes(e.name||""),X=e.basic?.options||e.options||[];let K=!1,Z=!1,Q=!1,ee=!1,te=null;const se=null!=a&&""!==a&&!(Array.isArray(a)&&0===a.length),ne=e.condition,ie=ne&&ne.conditions&&ne.conditions.length>0;if(ie&&se)if("checkbox"===e.name&&Array.isArray(a)){const e=a;for(const t of e){const e=ne.conditions.find(e=>L(e,t));e&&(K=K||!0===e.enableNotes,Z=Z||!0===e.enableAttachment,Q=Q||!0===e.enableRaiseIssue,ee=ee||!0===e.enableSendEmail)}}else if(Y){const e=ne.conditions.find(e=>L(e,a));e&&(K=!0===e.enableNotes,Z=!0===e.enableAttachment,Q=!0===e.enableRaiseIssue,ee=!0===e.enableSendEmail)}else{const e=ne.conditions.find(e=>L(e,a));e&&(K=!0===e.enableNotes,Z=!0===e.enableAttachment,Q=!0===e.enableRaiseIssue,ee=!0===e.enableSendEmail)}if(!ie){const t=e.basic,s=!0===t?.enableNotes,n=!0===t?.enableAttachment,i=!0===t?.enableRaiseIssue,r=!0===t?.enableSendEmail;if(Y)if(se)if("checkbox"===e.name){(Array.isArray(a)?a:[a]).forEach(e=>{const t=X.find(t=>!(!t||!t.value)&&(t.value===e||(String(t.value)===String(e)||(t.label===e||String(t.label)===String(e)))));t&&(K=K||!0===t.enableNotes,Z=Z||!0===t.enableAttachment,Q=Q||!0===t.enableRaiseIssue,ee=ee||!0===t.enableSendEmail,te||(te=t))}),K=K||s,Z=Z||n,Q=Q||i,ee=ee||r}else if(te=X.find(e=>!(!e||!e.value)&&(e.value===a||(String(e.value)===String(a)||(e.label===a||String(e.label)===String(a))))),te){const e=!0===te.enableNotes,t=!0===te.enableAttachment,a=!0===te.enableRaiseIssue,o=!0===te.enableSendEmail;K=e||s,Z=t||n,Q=a||i,ee=o||r}else K=s,Z=n,Q=i,ee=r;else K=s,Z=n,Q=i,ee=r;else K=s,Z=n,Q=i,ee=r}if(!(K||Z||Q||ee))return null;const ae=F(),re=e.condition,oe=re&&re.conditions&&re.conditions.length>0,le=!!oe&&ae.some(e=>!0===e.enableNotes),ce=!!oe&&ae.some(e=>!0===e.enableAttachment),de=!!oe&&ae.some(e=>!0===e.enableSendEmail),ue=!!oe&&ae.some(e=>!0===e.enableRaiseIssue),me=String(h||"").trim().length>0,pe=b&&b.length>0,he=b?b.length:0;return m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"component-action-features",children:[m.jsxs("div",{className:"action-icons-toolbar",children:[K&&m.jsxs("button",{type:"button",className:`action-icon-button ${me?"active":""} ${le?"mandatory":""}`,onClick:P,title:"Add Notes",children:[m.jsx(s.MessageSquare,{size:14,fill:me?"currentColor":"none"}),le&&m.jsx("span",{className:"mandatory-indicator",children:"*"})]}),Z&&m.jsxs("button",{type:"button",className:`action-icon-button ${pe?"active":""} ${ce?"mandatory":""}`,onClick:_,title:"Add Attachment",children:[m.jsx(s.Paperclip,{size:14,fill:pe?"currentColor":"none"}),he>0&&m.jsx("span",{className:"attachment-count-badge",children:he}),ce&&m.jsx("span",{className:"mandatory-indicator",children:"*"})]}),ee&&m.jsxs("button",{type:"button",className:`action-icon-button ${N?"active sent":""} ${de?"mandatory":""}`,onClick:U,disabled:N,title:"Send Email",children:[N?m.jsx(m.Fragment,{children:m.jsx(s.Check,{size:14})}):m.jsx(s.Mail,{size:14,fill:N?"currentColor":"none"}),de&&m.jsx("span",{className:"mandatory-indicator",children:"*"})]}),Q&&m.jsxs("button",{type:"button",className:`action-icon-button ${w?"active":""} ${ue?"mandatory":""}`,onClick:G,title:"Raise an Issue",children:[m.jsx(s.AlertCircle,{size:14,fill:w?"currentColor":"none"}),ue&&m.jsx("span",{className:"mandatory-indicator",children:"*"})]}),(me&&K||pe&&Z)&&m.jsx("button",{type:"button",className:"action-icon-button accordion-toggle",onClick:()=>$(!E),title:E?"Collapse":"Expand",children:E?m.jsx(s.ChevronUp,{size:14}):m.jsx(s.ChevronDown,{size:14})})]}),v&&K&&m.jsxs("div",{className:"notes-input-overlay",children:[m.jsx("textarea",{className:"action-notes-textarea",value:h,onChange:V,onBlur:M,onKeyDown:q,placeholder:"Explain which protocols were not followed (Press Ctrl+Enter to save)",rows:4,autoFocus:!0}),m.jsxs("div",{className:"notes-input-actions",children:[m.jsx("button",{type:"button",className:"notes-save-button",onClick:O,title:"Save notes (Ctrl+Enter)",children:"Save"}),m.jsx("button",{type:"button",className:"notes-cancel-button",onClick:()=>{y(!1)},title:"Cancel",children:"Cancel"})]})]}),E&&m.jsxs("div",{className:"actions-content",children:[!v&&me&&K&&m.jsx("div",{className:"notes-summary-section",children:m.jsxs("div",{className:"notes-full-text",onClick:z,children:[m.jsx("span",{className:"notes-label",children:"Notes:"})," ",h]})}),pe&&Z&&m.jsx("div",{className:"attachments-section",children:m.jsx(D,{attachments:b,onRemove:B})})]}),Z&&m.jsx("input",{ref:T,type:"file",multiple:!0,accept:"image/*,.pdf",onChange:W,style:{display:"none"}})]}),j&&m.jsx(x,{isOpen:j,onClose:J,onSuccess:H,component:te?{...e,basic:{...e.basic,label:`${e.basic?.label||"Component"} - ${te.label||te.value}`,value:te.value||e.basic?.value||""}}:e,formTemplateId:i||"",notes:h,attachments:b})]})},L=({attachments:e})=>e&&0!==e.length?m.jsx("div",{className:"attachment-thumbnails-container",children:e.map((e,t)=>{const n=e.type?.startsWith("image/")||!1,i=n?(e=>e.data?e.data.startsWith("data:")?e.data:`data:${e.type||"image/png"};base64,${e.data}`:"")(e):"";return m.jsx("div",{className:"attachment-thumbnail",children:n&&i?m.jsx("img",{src:i,alt:e.name||`Attachment ${t+1}`}):m.jsxs("div",{className:"file-icon-placeholder",children:[m.jsx(s.Paperclip,{size:20}),m.jsx("span",{className:"file-name",children:e.name||`File ${t+1}`})]})},t)})}):null,F=({component:e})=>{const t=e.basic?.notes||"",s=e.basic?.attachments||[],n=t&&t.trim().length>0,i=s&&s.length>0;return n||i?m.jsx("div",{className:"component-submission-actions",children:m.jsxs("div",{className:"actions-content",children:[n&&m.jsx("div",{className:"notes-summary-section",children:m.jsxs("div",{className:"notes-full-text",children:[m.jsx("span",{className:"notes-label",children:"Notes:"})," ",t]})}),i&&m.jsx("div",{className:"attachments-section",children:m.jsx(L,{attachments:s})})]})}):null},V=({child:e,selectedChild:t,mode:n,onChildSelect:i,onChildDelete:o,renderFormComponent:l,isOverlay:c=!1,isChildrenEditMode:d=!1,formData:u={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>{const x=u[e.id],v="preview"===n&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0),{attributes:y,listeners:j,setNodeRef:C,transform:N,transition:S,isDragging:w,isSorting:k}=a.useSortable({id:e.id,disabled:c||"edit"!==n}),E={transform:r.CSS.Transform.toString(N),transition:S,opacity:w?.3:1,zIndex:w?1e3:"auto"};return m.jsxs("div",{ref:C,style:E,className:`form-component section-child ${t?.id===e.id?"selected":""} ${w?"dragging":""} ${k?"sorting":""} ${d?"children-edit-active":""}`,onClick:()=>!w&&i(e),role:"button",tabIndex:0,children:[("edit"===n||d)&&m.jsx("div",{className:"child-drag-handle",...j,...y,onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),children:m.jsx(s.GripVertical,{size:14})}),m.jsxs("div",{className:"form-component-content section-child-content",children:[("edit"===n||d)&&m.jsxs("div",{className:"component-actions child-actions",children:[m.jsx("button",{className:"btn edit-btn",onClick:t=>{t.stopPropagation(),i(e)},onMouseDown:e=>e.stopPropagation(),title:"Edit properties",children:m.jsx(s.Edit,{size:12})}),m.jsx("button",{className:"btn delete-btn",onClick:t=>o(e,t),onMouseDown:e=>e.stopPropagation(),title:"Delete component",children:m.jsx(s.Trash2,{size:12})})]}),m.jsxs("div",{className:"component-preview child-preview",children:[l(e),"test"===n&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&m.jsx(R,{component:e,mode:"test",formTemplateId:p,formValue:x,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b?t=>b(e.id,t):void 0,onAttachmentChange:g?t=>g(e.id,t):void 0}),v&&m.jsx(F,{component:e})]})]})]})},O=({id:e,properties:n,mode:r="edit",formData:o={},onValueChange:l,onSelect:c,isSelected:d=!1,className:u="",onSectionSelect:p,onChildSelect:h,onChildDelete:f,selectedChild:b,renderFormComponent:g,formTemplateId:x,onThresholdActionCompletion:v,onThresholdIssueRaised:w,onNotesChange:$,onAttachmentChange:T})=>{const[I,D]=t.useState(n.basic.collapsed),[R,L]=t.useState(!1),[F,O]=t.useState(!1),[M,q]=t.useState(n.basic.label),[P,z]=t.useState(n.basic.description),[_,W]=t.useState(n.children||[]),[B,U]=t.useState(!1);t.useEffect(()=>{W(n.children||[])},[n.children]),t.useEffect(()=>{q(n.basic.label),z(n.basic.description)},[n.basic.label,n.basic.description]);const{setNodeRef:G,isOver:J}=i.useDroppable({id:`section-${e}`,disabled:"edit"!==r}),H=!("preview"!==r&&"test"!==r||n.children&&n.children.length>0),Y=t.useCallback(t=>{q(t),l?.({id:e,value:{...n,basic:{...n.basic,label:t}}})},[e,n,l]),X=t.useCallback(t=>{z(t),l?.({id:e,value:{...n,basic:{...n.basic,description:t}}})},[e,n,l]),K=t.useCallback(e=>{h?.(e)},[h]),Z=t.useCallback((e,t)=>{t.stopPropagation();const s=_.filter(t=>t.id!==e.id);W(s),f?.(e.id)},[f,_,e]),Q=t.useCallback(()=>{p?.(n),c?.()},[p,c,n]),ee=t.useCallback(e=>{e.stopPropagation(),"edit"===r&&_.length>0&&U(!B)},[r,_.length,B]),te=t.useCallback(t=>{t.stopPropagation(),D(!I),l?.({id:e,value:{...n,basic:{...n.basic,collapsed:!I}}})},[I,e,n,l]),se=g||t.useCallback(e=>{const t={id:e.id,properties:e,validationErrors:{},formValue:"test"===r?o[e.id]||"defaultValue"in e.basic&&e.basic.defaultValue||"":"defaultValue"in e.basic&&e.basic.defaultValue||"",touchedFields:{},formSubmitted:!1,mode:r,onValueChange:l,onBlur:()=>{},onFocus:()=>{}};switch(e.name){case"text-input":case"email-input":case"number-input":return m.jsx(y,{...t,properties:e,inputType:"text-input"===e.name?"text":"number-input"===e.name?"number":"email",readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"textarea":return m.jsx(j,{...t,properties:e,readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"select":const s={...e,options:e.basic?.options||[]};return m.jsx(C,{...t,properties:s,disabled:"edit"===r||"preview"===r});case"checkbox":const n={...e,options:e.basic?.options||[]};return m.jsx(N,{...t,properties:n,formValue:[],disabled:"edit"===r||"preview"===r});case"radio":const i={...e,options:e.basic?.options||[]};return m.jsx(S,{...t,properties:i,readonly:"edit"===r||"preview"===r,disabled:"edit"===r||"preview"===r});case"date":case"date-picker":case"datetime-picker":return m.jsx(k,{...t,properties:e,readonly:"edit"===r||"preview"===r,disabled:"preview"===r});case"signature":return m.jsx(E,{...t,properties:e});case"heading":return m.jsx(A,{...t,properties:e});default:return m.jsx("div",{className:"form-group",children:m.jsxs("div",{className:"form-group-label",children:["Unsupported Component: ",e.name]})})}},[r,l,o]);if(H)return null;const ne={backgroundColor:n.styles.backgroundColor,borderColor:n.styles.borderColor,borderWidth:n.styles.borderWidth,borderRadius:n.styles.borderRadius,padding:n.styles.padding,margin:n.styles.margin};return m.jsxs("div",{ref:G,className:`df-form-section ${d?"selected":""} ${J?"drag-over":""} ${u}`,style:ne,children:[m.jsxs("div",{className:"section-header "+(B?"children-edit-mode":""),onClick:Q,onDoubleClick:ee,children:[m.jsx("div",{className:"section-header-content",children:m.jsxs("div",{className:"section-title",children:[m.jsx("span",{className:"section-toggle",title:I?"Expand section":"Collapse section",role:"button",tabIndex:0,onClick:e=>{e.stopPropagation(),te(e)},onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),te(e))},style:{marginRight:"8px",display:"inline-flex",alignItems:"center"},children:I?m.jsx(s.ChevronRight,{size:18}):m.jsx(s.ChevronDown,{size:18})}),"edit"===r&&R?m.jsx("input",{type:"text",value:M,onChange:e=>q(e.target.value),onBlur:()=>{L(!1),Y(M)},onKeyDown:e=>{"Enter"===e.key&&(L(!1),Y(M))},className:"section-title-input",autoFocus:!0}):m.jsx("h3",{className:"section-title-text",onDoubleClick:()=>"edit"===r&&L(!0),style:{display:"inline",margin:0},children:M||"Untitled Section"})]})}),(P||"edit"===r)&&m.jsx("div",{className:"section-description",children:"edit"===r&&F?m.jsx("textarea",{value:P,onChange:e=>z(e.target.value),onBlur:()=>{O(!1),X(P)},onKeyDown:e=>{"Enter"===e.key&&e.ctrlKey&&(O(!1),X(P))},className:"section-description-input",placeholder:"Section description (optional)",autoFocus:!0}):m.jsx("p",{className:"section-description-text",onDoubleClick:()=>"edit"===r&&O(!0),children:P||"Section description"})})]}),!I&&m.jsx("div",{className:`section-content ${J?"drag-over":""} ${0===_.length?"empty":"has-children"}`,onClick:e=>{e.target===e.currentTarget&&Q()},children:m.jsx(a.SortableContext,{items:_.map(e=>e.id),strategy:a.verticalListSortingStrategy,children:0===_.length?m.jsxs("div",{className:"section-empty-state",onClick:Q,style:{textAlign:"center",color:"#6b7280",fontSize:"14px",padding:"40px 20px",display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",cursor:"pointer",border:"2px dotted #d1d5db",borderRadius:"8px",backgroundColor:"var(--df-color-fb-container)",transition:"all 0.3s ease",margin:"16px 0"},children:[m.jsx("div",{style:{fontWeight:"500",color:J?"#3b82f6":"#374151"},children:J?"Drop components here":"Empty Section"}),m.jsx("div",{style:{fontSize:"12px",color:"#9ca3af"},children:"Drag and drop components here to create your section"})]}):_.map(e=>m.jsx(V,{child:e,selectedChild:b||null,mode:r,onChildSelect:K,onChildDelete:Z,renderFormComponent:se,isChildrenEditMode:B,formData:o,formTemplateId:x,onNotesChange:$,onAttachmentChange:T,onThresholdActionCompletion:v,onThresholdIssueRaised:w},e.id))})})]})},M=({component:e,selectedComponent:t,mode:n,onComponentSelect:i,onComponentDelete:o,onComponentEdit:l,renderFormComponent:c,isOverlay:d=!1,formData:u={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>{const x=u[e.id],v="preview"===n&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0),{attributes:y,listeners:j,setNodeRef:C,transform:N,transition:S,isDragging:w,isSorting:k}=a.useSortable({id:e.id,disabled:d}),E={transform:r.CSS.Transform.toString(N),transition:S,opacity:w?.3:1,zIndex:w?1e3:"auto"};return m.jsxs("div",{ref:C,style:{...E,border:t?.id===e.id?"2px solid #3b82f6":"1px solid var(--df-color-fb-border)",borderRadius:"8px",backgroundColor:"var(--df-color-fb-container)",padding:"12px",position:"relative",minHeight:"80px",transition:"all 0.2s ease",boxShadow:t?.id===e.id?"0 4px 12px rgba(59, 130, 246, 0.15)":"0 1px 3px rgba(0, 0, 0, 0.1)",cursor:"pointer"},className:`form-component grid-component ${t?.id===e.id?"selected":""} ${w?"dragging":""} ${k?"sorting":""}`,onClick:()=>!w&&i(e),role:"button",tabIndex:0,children:["edit"===n&&m.jsx("div",{className:"component-drag-handle",...j,...y,onClick:e=>e.stopPropagation(),style:{position:"absolute",top:"50%",left:"4px",transform:"translateY(-50%)",padding:"4px",backgroundColor:"#f3f4f6",borderRadius:"4px",cursor:"grab",opacity:1,zIndex:10,display:"flex",alignItems:"center",justifyContent:"center"},children:m.jsx(s.GripVertical,{size:12,color:"var(--df-color-text-light)"})}),m.jsxs("div",{className:"component-content",style:{paddingTop:"edit"===n?"24px":"0",paddingLeft:"edit"===n?"28px":"0",minHeight:"60px"},children:[c(e),"test"===n&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&m.jsx(R,{component:e,mode:"test",formTemplateId:p,formValue:x,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b?t=>b(e.id,t):void 0,onAttachmentChange:g?t=>g(e.id,t):void 0}),v&&m.jsx(F,{component:e})]}),"edit"===n&&m.jsxs("div",{className:"component-actions",style:{position:"absolute",top:"4px",right:"4px",display:"flex",gap:"4px",opacity:1,zIndex:10},children:[l&&m.jsx("button",{className:"component-edit-btn",onClick:t=>{t.stopPropagation(),l(e)},type:"button",title:"Edit Component",style:{padding:"4px",backgroundColor:"#3b82f6",color:"#ffffff",border:"none",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#2563eb"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#3b82f6"},children:m.jsx(s.Edit,{size:12})}),m.jsx("button",{className:"component-delete-btn",onClick:t=>{t.stopPropagation(),o(e,t)},type:"button",title:"Delete Component",style:{padding:"4px",backgroundColor:"#ef4444",color:"#ffffff",border:"none",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#dc2626"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#ef4444"},children:m.jsx(s.Trash2,{size:12})})]})]})},q=({gridComponents:e,mode:t,onComponentSelect:s,onComponentDelete:n,onComponentEdit:r,onComponentUpdate:o,selectedComponent:l,renderFormComponent:c,gridId:d,formData:u={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>{const{setNodeRef:x,isOver:v}=i.useDroppable({id:`grid-drop-zone-${d}`,disabled:"edit"!==t});return m.jsx("div",{ref:x,className:"grid-drop-zone",style:{border:v?"2px dashed #3b82f6":"2px dashed #d1d5db",borderRadius:"8px",padding:"16px",backgroundColor:v?"var(--df-color-primary-light)":"var(--df-color-fb-container)",minHeight:"120px",transition:"all 0.2s ease",position:"relative"},children:e.length>0?m.jsxs(m.Fragment,{children:[m.jsx(a.SortableContext,{items:e.map(e=>e.id),strategy:a.horizontalListSortingStrategy,children:m.jsx("div",{style:{display:"flex",flexDirection:"row",flexWrap:"nowrap",gap:"12px",alignItems:"start",marginBottom:e.length>0?"12px":"0",overflowX:"auto",width:"100%"},children:e.map(e=>m.jsx("div",{style:{flex:"1 1 0",minWidth:"200px",maxWidth:"100%"},children:m.jsx(M,{component:e,selectedComponent:l,mode:t,onComponentSelect:s,onComponentDelete:n,onComponentEdit:r,onComponentUpdate:o,renderFormComponent:c,formData:u,formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})},e.id))})}),m.jsx("div",{style:{border:v?"2px dashed #3b82f6":"1px dashed var(--df-color-fb-border)",borderRadius:"6px",padding:"12px",backgroundColor:v?"var(--df-color-primary-light)":"var(--df-color-fb-container)",textAlign:"center",color:"var(--df-color-text-light)",fontSize:"12px",transition:"all 0.2s ease",minHeight:"40px",display:"flex",alignItems:"center",justifyContent:"center"},children:v?m.jsx("span",{style:{color:"#3b82f6",fontWeight:"500"},children:"Drop component here to add to grid"}):m.jsx("span",{children:"+ Drop more components here"})})]}):m.jsxs("div",{style:{textAlign:"center",color:"var(--df-color-text-light)",fontSize:"14px",padding:"40px 20px",display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",backgroundColor:"var(--df-color-fb-container)",border:"1px dashed var(--df-color-fb-border)",borderRadius:"8px"},children:[m.jsx("div",{style:{fontWeight:"500",color:v?"var(--df-color-primary)":"var(--df-color-text-dark)"},children:v?"Drop components here":"Empty DataGrid"}),m.jsx("div",{style:{fontSize:"12px",color:"#9ca3af"},children:"Drag and drop components here to create your grid"})]})})},P=({templateComponents:e,dataEntries:t,renderFormComponent:s,renderComponent:n,mode:i="preview",allowAddRemoveEntries:a=!0,addAnotherText:r="Add Another",removeText:o="Remove",maxEntries:l=10,minEntries:c=1,displayAsGrid:d=!0,onAddEntry:u,onRemoveEntry:p,formData:h={},formTemplateId:f,onThresholdActionCompletion:b,onThresholdIssueRaised:g,onNotesChange:x,onAttachmentChange:v})=>0===e.length?m.jsxs("div",{style:{textAlign:"center",padding:"40px",color:"var(--df-color-text-light)",border:"1px dashed #d1d5db",borderRadius:"8px",backgroundColor:"var(--df-color-fb-container)"},children:["No components defined. Add components to see the ",d?"table":"list"," view."]}):d?m.jsxs("div",{className:"datagrid-table-view",style:{border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",overflow:"hidden",backgroundColor:"var(--df-color-fb-container)",maxWidth:"100%"},children:[m.jsx("div",{style:{position:"absolute",top:"8px",right:"8px",zIndex:10,fontSize:"12px",color:"var(--df-color-text-light)",backgroundColor:"var(--df-color-fb-container)",padding:"4px 8px",borderRadius:"4px",border:"1px solid var(--df-color-fb-border)",opacity:e.length>4?1:0,transition:"opacity 0.2s ease"},children:"← Scroll →"}),m.jsxs("div",{className:"table-scroll-container",style:{overflowX:"auto",overflowY:"hidden",maxWidth:"100%",scrollbarWidth:"thin",scrollbarColor:"var(--df-color-fb-border) var(--df-color-fb-icon-bg)",position:"relative"},children:[m.jsx("div",{className:"table-headers",style:{display:"grid",gridTemplateColumns:`repeat(${e.length}, minmax(150px, 1fr))`,backgroundColor:"var(--df-color-fb-container)",borderBottom:"2px solid var(--df-color-fb-border)",minWidth:150*e.length+"px"},children:e.map((t,s)=>m.jsx("div",{style:{padding:"12px 16px",fontWeight:"600",color:"var(--df-color-text-dark)",borderRight:s<e.length-1?"1px solid var(--df-color-fb-border)":"none",fontSize:"14px",minWidth:"150px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:t.basic?.label||`Column ${s+1}`},`header-${t.id}`))}),t.length>0?t.map((r,l)=>m.jsxs("div",{className:"table-row",style:{display:"grid",gridTemplateColumns:`repeat(${e.length}, minmax(150px, 1fr))`,borderBottom:l<t.length-1?"1px solid var(--df-color-fb-border)":"none",backgroundColor:l%2==0?"var(--df-color-fb-container)":"var(--df-color-fb-bg)",position:"relative",minWidth:150*e.length+"px"},children:[e.map((t,i)=>{let a=r.components?.[i];if(a)a={...a,id:a.id,basic:{...a.basic,showLabel:!1}};else{const e=`${t.id}-entry-${l}-${i}`;a={...t,id:e,basic:{...t.basic,showLabel:!1}}}return m.jsx("div",{style:{padding:"12px 16px",borderRight:i<e.length-1?"1px solid var(--df-color-fb-border)":"none",minHeight:"60px",minWidth:"150px",display:"flex",alignItems:"center",overflow:"hidden"},children:m.jsx("div",{style:{width:"100%",minWidth:"120px",overflow:"hidden"},children:n?n(a,!0):s(a,!0)})},`${r.id}-${i}`)}),"test"===i&&a&&t.length>c&&m.jsx("button",{onClick:()=>p?.(l),disabled:t.length<=c,style:{position:"absolute",top:"8px",right:"8px",padding:"4px 8px",backgroundColor:t.length<=c?"#f3f4f6":"#ef4444",color:t.length<=c?"#9ca3af":"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px",fontWeight:"500",cursor:t.length<=c?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",zIndex:10,minWidth:"24px",height:"24px",justifyContent:"center"},title:o,children:m.jsx("span",{style:{fontSize:"14px"},children:"×"})})]},r.id)):m.jsxs("div",{style:{padding:"40px",textAlign:"center",color:"var(--df-color-text-light)",backgroundColor:"var(--df-color-fb-container)",borderTop:"1px solid var(--df-color-fb-border)"},children:["No data entries. ","test"===i&&a?'Click "Add Another" to add entries.':"Use the properties panel to add entries."]})]}),"test"===i&&a&&m.jsx("div",{style:{padding:"16px",backgroundColor:"var(--df-color-fb-bg)",borderTop:"1px solid var(--df-color-fb-border)",display:"flex",justifyContent:"center",position:"sticky",bottom:0,zIndex:5},children:m.jsxs("button",{onClick:u,disabled:t.length>=l,style:{padding:"8px 16px",backgroundColor:t.length>=l?"#f3f4f6":"#10b981",color:t.length>=l?"#9ca3af":"#ffffff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"500",cursor:t.length>=l?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"6px"},children:[m.jsx("span",{style:{fontSize:"16px"},children:"+"}),r]})})]}):m.jsxs("div",{className:"datagrid-list-view",style:{display:"flex",flexDirection:"column",gap:"12px",backgroundColor:"var(--df-color-fb-container)"},children:[t.length>0?t.map((r,l)=>m.jsxs("div",{className:"list-entry",style:{border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",padding:"16px",backgroundColor:"var(--df-color-fb-container)",position:"relative",transition:"all 0.2s ease"},children:[m.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px",paddingBottom:"8px",borderBottom:"1px solid var(--df-color-fb-border)"},children:[m.jsxs("span",{style:{fontWeight:"600",color:"var(--df-color-text-dark)",fontSize:"14px"},children:["Entry #",l+1]}),"test"===i&&a&&t.length>1&&m.jsx("button",{onClick:()=>p?.(l),disabled:t.length<=c,style:{padding:"4px 8px",backgroundColor:t.length<=c?"#f3f4f6":"#ef4444",color:t.length<=c?"#9ca3af":"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px",fontWeight:"500",cursor:t.length<=c?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",minWidth:"24px",height:"24px",justifyContent:"center"},title:o,children:m.jsx("span",{style:{fontSize:"14px"},children:"×"})})]}),m.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px"},children:e.map((e,t)=>{let a=r.components?.[t];if(a||(a=r.components?.find(t=>t.name===e.name&&t.basic?.label===e.basic?.label)),a)a={...a,id:a.id,basic:{...a.basic,showLabel:!1}};else{const s=`${e.id}-entry-${l}-${t}`;a={...e,id:s,basic:{...e.basic,showLabel:!1}}}return m.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[m.jsx("label",{style:{fontSize:"12px",fontWeight:"500",color:"var(--df-color-text-light)",textTransform:"uppercase",letterSpacing:"0.05em"},children:e.basic?.label||`Field ${t+1}`}),m.jsxs("div",{style:{minHeight:"40px",display:"flex",alignItems:"center",flexDirection:"column",width:"100%"},children:[n?n(a):s(a),"test"===i&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(a.name)&&m.jsx(R,{component:a,mode:"test",formTemplateId:f,formValue:h[a.id],onThresholdActionCompletion:b,onThresholdIssueRaised:g,onNotesChange:x?e=>x(a.id,e):void 0,onAttachmentChange:v?e=>v(a.id,e):void 0}),"preview"===i&&(a.basic?.notes&&a.basic.notes.trim().length>0||a.basic?.attachments&&Array.isArray(a.basic.attachments)&&a.basic.attachments.length>0?m.jsx(F,{component:a}):null)]})]},`${r.id}-${t}`)})})]},r.id)):m.jsxs("div",{style:{padding:"40px",textAlign:"center",color:"var(--df-color-text-light)",backgroundColor:"var(--df-color-fb-container)",border:"1px dashed #d1d5db",borderRadius:"8px"},children:["No data entries. ","test"===i&&a?'Click "Add Another" to add entries.':"Use the properties panel to add entries."]}),"test"===i&&a&&m.jsx("div",{style:{padding:"16px",backgroundColor:"#f8f9fa",border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",display:"flex",justifyContent:"center"},children:m.jsxs("button",{onClick:u,disabled:t.length>=l,style:{padding:"8px 16px",backgroundColor:t.length>=l?"#f3f4f6":"#10b981",color:t.length>=l?"#9ca3af":"#ffffff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"500",cursor:t.length>=l?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"8px",transition:"all 0.2s ease"},onMouseEnter:e=>{t.length<l&&(e.currentTarget.style.backgroundColor="#059669")},onMouseLeave:e=>{t.length<l&&(e.currentTarget.style.backgroundColor="#10b981")},children:[m.jsx("span",{children:"+"}),r]})})]}),z=({id:e,properties:n,mode:i="edit",formData:a={},validationErrors:r={},touchedFields:o={},formSubmitted:l=!1,onValueChange:c,onSelect:d,isSelected:u=!1,className:p="",onDataGridSelect:h,onComponentSelect:f,onComponentDelete:b,onComponentEdit:g,onComponentUpdate:x,selectedComponent:v,renderFormComponent:w,onEntryAdd:$,onEntryRemove:T,formTemplateId:D,onThresholdActionCompletion:R,onThresholdIssueRaised:L,onNotesChange:F,onAttachmentChange:V})=>{const[O,M]=t.useState(!1),z=t.useRef(!1);let _=n.templateComponents||[];const W=n.entries||[];0===_.length&&W.length>0&&W[0].components&&(_=W[0].components.map(e=>({...e,id:e.id?.replace(/-entry-\d+$/,"")||e.id,basic:{...e.basic,showLabel:!0}}))),t.useEffect(()=>{if("edit"===i&&!n.templateComponents&&c&&z.current){const t={...n,templateComponents:[]};JSON.stringify(t)!==JSON.stringify(n)&&c({id:e,value:t})}z.current=!0},[n.templateComponents,e,c,n,i]),t.useEffect(()=>{if(_.length>0){if("test"===i&&0===W.length&&z.current){const t={id:`entry-${e}-0`,index:0,components:_.map((e,t)=>({...e,id:`${e.id}-entry-0-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}};if(c){const s={...n,entries:[t]};JSON.stringify(s)!==JSON.stringify(n)&&c({id:e,value:s})}return}if("edit"!==i||!z.current)return;if(W.some(e=>e.components?.some((t,s)=>{const n=`${_[s]?.id}-entry-${e.index}-${s}`;return t.id!==n}))&&c){const t=W.map(e=>({...e,components:e.components?.map((t,s)=>({...t,id:`${_[s]?.id}-entry-${e.index}-${s}`}))||[]})),s={...n,entries:t};return void(JSON.stringify(s)!==JSON.stringify(n)&&c({id:e,value:s}))}if(0===W.length&&"edit"===i){const t={id:`entry-${e}-0`,index:0,components:_.map((e,t)=>({...e,id:`${e.id}-entry-0-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}};if(c){const s={...n,entries:[t]};JSON.stringify(s)!==JSON.stringify(n)&&c({id:e,value:s})}}else if(W.length>0){if(W.some(e=>_.some((t,s)=>{const n=e.components?.[s];if(!n)return!0;const i=`${t.id}-entry-${e.index}-${s}`,a=n.id===i,r=JSON.stringify(n.basic?.options)!==JSON.stringify(t.basic?.options)||n.basic?.placeholder!==t.basic?.placeholder||n.basic?.defaultValue!==t.basic?.defaultValue||n.basic?.label!==t.basic?.label||n.validation?.required!==t.validation?.required;return!a||r}))&&c){const t=W.map(e=>{const t=_.map((t,s)=>{let n=e.components?.[s];n||(n=e.components?.find(e=>e.name===t.name&&e.basic?.label===t.basic?.label));const i=`${t.id}-entry-${e.index}-${s}`;if(n){return{...t,id:i,basic:{...t.basic,showLabel:!1,value:n.basic?.value||t.basic?.defaultValue||""}}}return{...t,id:i,basic:{...t.basic,showLabel:!1}}});return{...e,components:t}}),s={...n,entries:t};JSON.stringify(s)!==JSON.stringify(n)&&c({id:e,value:s})}}}},[_,W,e,c,n,i,n.templateComponents]);const B=t.useCallback(e=>{e.stopPropagation(),d?.(),h?.(n)},[d,h,n]),U=t.useCallback((t,s)=>{s.stopPropagation(),b&&b(t,s);const i=_.filter(e=>e.id!==t.id),a=W.map(e=>({...e,components:e.components?.filter(e=>!(e.name===t.name&&e.basic?.label===t.basic?.label))||[]}));c&&c({id:e,value:{...n,templateComponents:i,entries:a}})},[b,n,c,e,_,W]),G=t.useCallback((t,s)=>{x&&x(t,s);const i=_.map(e=>e.id===t?{...e,...s}:e);c&&c({id:e,value:{...n,templateComponents:i}})},[x,n,c,e,_]),J=t.useCallback(e=>{"test"===i&&c&&c({id:e.id,value:e.value})},[i,c]),H=t.useCallback(()=>{if(0!==_.length)try{const t=n.entries||[],s=t.length,i={id:`entry-${e}-${s}`,index:s,components:_.map((e,t)=>({...e,id:`${e.id}-entry-${s}-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}},a=[...t,i];c&&c({id:e,value:{...n,entries:a}}),$&&setTimeout(()=>{try{$()}catch(e){console.error("[DfFormDataGrid] Error in onEntryAdd callback:",e)}},0)}catch(e){console.error("[DfFormDataGrid] Error adding entry:",e)}else console.warn("Cannot add entry: No template components defined")},[n,c,e,$,_]),Y=t.useCallback(t=>{const s=n.entries.filter((e,s)=>s!==t).map((t,s)=>({...t,index:s,id:`entry-${e}-${s}`}));c&&c({id:e,value:{...n,entries:s}})},[n,c,e,T]),X=t.useCallback((e,t=!1)=>{const s="test"===i?a[e.id]||"defaultValue"in e.basic&&e.basic.defaultValue||"":"defaultValue"in e.basic&&e.basic.defaultValue||"",n={id:e.id,properties:e,validationErrors:r||{},formValue:s,touchedFields:o||{},formSubmitted:l||!1,mode:i,hideLabel:t,onValueChange:J,onBlur:()=>{},onFocus:()=>{}};switch(e.name){case"text-input":case"email-input":case"number-input":return m.jsx(y,{...n,properties:e,inputType:"text-input"===e.name?"text":"number-input"===e.name?"number":"email",readonly:"test"!==i,disabled:"preview"===i,hideLabel:t});case"textarea":return m.jsx(j,{...n,properties:e,readonly:"test"!==i,disabled:"preview"===i,hideLabel:t});case"select":const s={...e,options:e.basic?.options||[]};return m.jsx(C,{...n,properties:s,disabled:"test"!==i,hideLabel:t});case"checkbox":const a={...e,options:e.basic?.options||[]};return m.jsx(N,{...n,properties:a,formValue:[],disabled:"test"!==i,hideLabel:t});case"radio":const r={...e,options:e.basic?.options||[]};return m.jsx(S,{...n,properties:r,readonly:"test"!==i,disabled:"test"!==i,hideLabel:t});case"date":case"date-picker":case"datetime-picker":return m.jsx(k,{...n,properties:e,readonly:"test"!==i,disabled:"preview"===i,hideLabel:t});case"signature":return m.jsx(E,{...n,properties:e,hideLabel:t});case"heading":return m.jsx(A,{...n,properties:e,hideLabel:t});case"instructions":return m.jsx(I,{...n,properties:e,hideLabel:t});default:return m.jsxs("div",{className:"unknown-component",children:["Unknown component: ",e.name]})}},[i,J,a,r,o,l]),K={backgroundColor:n.styles.backgroundColor||"var(--df-color-fb-container)",borderColor:n.styles.borderColor||"var(--df-color-fb-border)",borderWidth:n.styles.borderWidth||"2px",borderRadius:n.styles.borderRadius||"8px",padding:n.styles.padding||"16px",margin:n.styles.margin||"16px 0"};return m.jsxs("div",{className:`form-group df-form-datagrid ${u?"selected":""} ${p}`,onClick:B,style:K,children:[m.jsx("div",{className:"grid-header",children:m.jsx("div",{className:"grid-title",onClick:t=>{t.stopPropagation(),M(!O),c?.({id:e,value:{...n,basic:{...n.basic,collapsed:!O}}})},children:m.jsxs("div",{className:"title-content",style:{display:"flex",alignItems:"center",gap:"8px"},children:[O?m.jsx(s.ChevronRight,{size:16}):m.jsx(s.ChevronDown,{size:16}),m.jsx(s.Grid,{size:16}),m.jsx("span",{className:"grid-label",style:{fontWeight:"600"},children:n.basic.label}),n.validation.required&&m.jsx("span",{className:"required-indicator",style:{color:"#ef4444"},children:"*"})]})})}),n.basic.description&&!O&&m.jsx("div",{className:"grid-description",style:{marginTop:"8px",color:"var(--df-color-text-light)",fontSize:"14px"},children:n.basic.description}),!O&&m.jsx("div",{className:"grid-content",style:{marginTop:"16px"},children:"edit"===i?m.jsx(q,{gridComponents:_,mode:i,onComponentSelect:f||(()=>{}),onComponentDelete:U,onComponentEdit:g,onComponentUpdate:G,selectedComponent:v||null,renderFormComponent:w||X,gridId:e,formData:a,formTemplateId:D,onThresholdActionCompletion:R,onThresholdIssueRaised:L,onNotesChange:F,onAttachmentChange:V}):m.jsx(P,{templateComponents:_,dataEntries:W,renderFormComponent:w||X,mode:i,allowAddRemoveEntries:n.datagrid?.allowAddRemoveEntries??!0,addAnotherText:n.datagrid?.addAnotherText??"Add Entry",removeText:n.datagrid?.removeText??"Remove",maxEntries:n.datagrid?.maxEntries??10,minEntries:n.datagrid?.minEntries??1,displayAsGrid:n.datagrid?.displayAsGrid??!0,onAddEntry:$||H,onRemoveEntry:T||Y,formData:a,formTemplateId:D,onThresholdActionCompletion:R,onThresholdIssueRaised:L,onNotesChange:F,onAttachmentChange:V})})]})},_=t.lazy(()=>Promise.resolve().then(function(){return Y})),W=e=>e.id?e:{...e,id:o.v4()},B=({component:e,mode:t,renderFormComponent:s,formData:n={},formTemplateId:i,onThresholdActionCompletion:a,onThresholdIssueRaised:r,onNotesChange:o,onAttachmentChange:l})=>{const c=n[e.id],d="preview"===t&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0);return m.jsxs("div",{className:"simple-table-component",children:[s(e),"test"===t&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&m.jsx(R,{component:e,mode:"test",formTemplateId:i,formValue:c,onThresholdActionCompletion:a,onThresholdIssueRaised:r,onNotesChange:o?t=>o(e.id,t):void 0,onAttachmentChange:l?t=>l(e.id,t):void 0}),d&&m.jsx(F,{component:e})]})},U=({component:e,selectedComponent:t,mode:n,onComponentSelect:i,onComponentDelete:o,onComponentEdit:l,renderFormComponent:c,isOverlay:d=!1})=>{const{attributes:u,listeners:p,setNodeRef:h,transform:f,transition:b,isDragging:g,isSorting:x}=a.useSortable({id:e.id,disabled:d}),v={transform:r.CSS.Transform.toString(f),transition:b,opacity:g?.3:1,zIndex:g?1e3:"auto"};return m.jsxs("div",{ref:h,style:v,className:`form-component table-component ${t?.id===e.id?"selected":""} ${g?"dragging":""} ${x?"sorting":""}`,onClick:()=>!g&&i(e),role:"button",tabIndex:0,children:["edit"===n&&m.jsx("div",{className:"component-drag-handle",...p,...u,onClick:e=>e.stopPropagation(),style:{opacity:1},children:m.jsx(s.GripVertical,{size:14})}),m.jsx("div",{className:"component-content",children:c(e)}),"edit"===n&&m.jsxs("div",{className:"component-actions",style:{opacity:1},children:[l&&m.jsx("button",{className:"component-edit-btn",onClick:t=>{t.stopPropagation(),l(e)},type:"button",title:"Edit Component",children:m.jsx(s.Edit,{size:12})}),m.jsx("button",{className:"component-delete-btn",onClick:t=>{t.stopPropagation(),o(e,t)},type:"button",title:"Delete Component",children:m.jsx(s.Trash2,{size:12})})]})]})},G=({cell:e,mode:t,onComponentSelect:s,onComponentDelete:n,onComponentEdit:r,selectedComponent:l,renderFormComponent:c,formData:d={},formTemplateId:u,onThresholdActionCompletion:p,onThresholdIssueRaised:h,tableId:f,onNotesChange:b,onAttachmentChange:g})=>{const x=`table-cell-${f}-${e.row}-${e.column}`,{setNodeRef:v,isOver:y}=i.useDroppable({id:x,disabled:"edit"!==t,data:{type:"table-cell",tableId:f,cell:e,row:e.row,column:e.column}}),j={...e.styles,backgroundColor:y?"var(--df-color-primary-light)":e.styles?.backgroundColor||"transparent",minHeight:e.styles?.minHeight||"preview"===t||"test"===t?"40px":"60px",padding:(e.styles,"8px"),border:"preview"===t||"test"===t?"none":y?"2px dashed var(--df-color-primary)":e.styles?.borderColor?`1px solid ${e.styles.borderColor}`:"1px solid var(--df-color-fb-border)",borderRadius:"preview"===t||"test"===t?"0":"4px",position:"relative",verticalAlign:e.styles?.verticalAlign||"top"};return m.jsx("td",{ref:v,style:j,className:"table-cell "+(y?"drag-over":""),children:m.jsx("div",{className:"cell-content",children:e.components&&Array.isArray(e.components)&&e.components.length>0?"edit"===t?m.jsx(a.SortableContext,{items:e.components.map(e=>e.id||o.v4()),strategy:a.verticalListSortingStrategy,children:e.components.map(e=>{const i=W(e);return m.jsx(U,{component:i,selectedComponent:l,mode:t,onComponentSelect:s,onComponentDelete:n,onComponentEdit:r,renderFormComponent:c},i.id)})}):e.components.map(e=>{const s=W(e);return m.jsx(B,{component:s,mode:t,renderFormComponent:c,formData:d,formTemplateId:u,onThresholdActionCompletion:p,onThresholdIssueRaised:h,onNotesChange:b,onAttachmentChange:g},s.id)}):"edit"===t?m.jsx("div",{className:"empty-cell-placeholder",children:m.jsxs("div",{className:"cell-info",children:[m.jsx("span",{className:"drop-zone-text",children:"Drag and Drop a form component"}),m.jsxs("span",{className:"cell-coordinates",children:["Cell (",e.row+1,", ",e.column+1,")"]})]})}):m.jsx("div",{style:{minHeight:"20px",backgroundColor:"transparent",visibility:"hidden"},children:" "})})})},J=({id:e,properties:n,mode:i="edit",formData:a={},validationErrors:r={},touchedFields:o={},formSubmitted:l=!1,onValueChange:c,onSelect:d,isSelected:u=!1,className:p="",onTableSelect:h,onComponentSelect:f,onComponentDelete:b,onComponentEdit:g,selectedComponent:x,renderFormComponent:v,formTemplateId:w,onThresholdActionCompletion:$,onThresholdIssueRaised:T,onNotesChange:I,onAttachmentChange:D})=>{const[R,L]=t.useState(!1),F=n.cells?.some(e=>e.some(e=>e.components&&e.components.length>0))||!1;t.useEffect(()=>{const t=n.table?.rows||n.basic?.rows||3,s=n.table?.columns||n.basic?.columns||3,i=n.cells||[];if(0===i.length||i.length!==t||i.length>0&&i[0].length!==s){const a=[];for(let e=0;e<t;e++){const t=[];for(let n=0;n<s;n++){const s=`cell-${e}-${n}`;let a=[];i[e]&&i[e][n]&&(a=(i[e][n].components||[]).map(W)),t.push({id:s,row:e,column:n,components:a,styles:{}})}a.push(t)}c&&c({id:e,value:{...n,cells:a}})}},[n.table?.rows,n.table?.columns,n.basic?.rows,n.basic?.columns,n.cells,e,c]);const V=t.useCallback(e=>{e.stopPropagation(),d?.(),h?.(n)},[d,h,n]),O=t.useCallback((t,s)=>{s.stopPropagation();const i=n.cells.map(e=>e.map(e=>{if(e.components&&e.components.some(e=>e.id===t.id)){const s=e.components.filter(e=>e.id!==t.id);return{...e,components:s}}return e}));c&&c({id:e,value:{...n,cells:i}})},[b,n,c,e]),M=n.cells?n.cells.map((t,s)=>t.map((t,n)=>({...t,components:t.components&&Array.isArray(t.components)?t.components.map((t,i)=>{const a=t.id&&t.id.includes(`-table-${e}-`)?t.id:`${t.id||t.name||"component"}-table-${e}-row-${s}-cell-${n}-comp-${i}`;return{...t,id:a}}):[]}))):[];const q=t.useRef(!1),P=t.useRef("");t.useEffect(()=>{if(M.length>0){const t=JSON.stringify(M),s=t!==P.current&&t!==JSON.stringify(n.cells);(!q.current||s&&"edit"===i)&&("edit"===i&&(c?.({id:e,value:{...n,cells:M}}),P.current=t),q.current=!0)}},[i,e]);const z=v||t.useCallback(e=>{const t=W(e);let s=a[t.id];null==s&&(s="value"in t.basic&&void 0!==t.basic.value?t.basic.value:"defaultValue"in t.basic&&void 0!==t.basic.defaultValue?t.basic.defaultValue:"checkbox"===t.name||"select"===t.name?[]:"");const n={id:t.id,properties:t,validationErrors:r||{},formValue:s,touchedFields:o||{},formSubmitted:l||!1,mode:i,onValueChange:e=>{c?.(e)},onBlur:()=>{},onFocus:()=>{}};switch(t.name){case"text-input":case"email-input":case"number-input":return m.jsx(y,{...n,properties:t,inputType:"text-input"===t.name?"text":"number-input"===t.name?"number":"email",readonly:"test"!==i,disabled:"preview"===i});case"textarea":return m.jsx(j,{...n,properties:t,readonly:"test"!==i,disabled:"preview"===i});case"select":const e={...t,options:t.basic?.options||[]};return m.jsx(C,{...n,properties:e,disabled:"test"!==i});case"checkbox":const s={...t,options:t.basic?.options||[]};return m.jsx(N,{...n,properties:s,formValue:[],disabled:"test"!==i});case"radio":const a={...t,options:t.basic?.options||[]};return m.jsx(S,{...n,properties:a,readonly:"test"!==i,disabled:"test"!==i});case"date":case"date-picker":case"datetime-picker":return m.jsx(k,{...n,properties:t,readonly:"test"!==i,disabled:"preview"===i});case"signature":return m.jsx(E,{...n,properties:t});case"heading":return m.jsx(A,{...n,properties:t});default:return m.jsxs("div",{className:"unknown-component",children:["Unknown component: ",t.name]})}},[i,a,c,r,o,l,e]),_={backgroundColor:n.styles?.backgroundColor||"var(--df-color-fb-container)",borderColor:n.styles?.borderColor||"var(--df-color-fb-border)",borderWidth:n.styles?.borderWidth||"2px",borderRadius:n.styles?.borderRadius||"8px",padding:n.styles?.padding||"16px",margin:n.styles?.margin||"16px 0"},B={width:"100%",minWidth:"600px",borderCollapse:"preview"===i||"test"===i?"separate":"collapse",tableLayout:"fixed",border:"preview"===i||"test"===i?"1px solid var(--df-color-fb-border)":"none"};return F||"preview"!==i?m.jsxs("div",{className:`form-group df-form-table ${u?"selected":""} ${"preview"===i?"preview-mode":"test"===i?"test-mode":""} ${p}`,onClick:V,style:_,children:[m.jsx("div",{className:"table-header",children:m.jsx("div",{className:"table-title",onClick:t=>{t.stopPropagation(),L(!R),c?.({id:e,value:{...n,basic:{...n.basic||{},collapsed:!R}}})},children:m.jsxs("div",{className:"title-content",children:[R?m.jsx(s.ChevronRight,{size:16}):m.jsx(s.ChevronDown,{size:16}),m.jsx(s.Table,{size:16}),m.jsx("span",{className:"table-label",children:n.basic?.label||"Table"}),n.validation?.required&&m.jsx("span",{className:"required-indicator",children:"*"})]})})}),n.basic?.description&&!R&&m.jsx("div",{className:"table-description",children:n.basic.description}),!R&&m.jsxs("div",{className:"table-content",children:[null,m.jsxs("table",{style:B,children:[n.table?.displayAsTable&&("edit"===i||n.table?.showColumns)&&m.jsx("thead",{children:m.jsx("tr",{className:"table-header-row",children:Array.from({length:n.table?.columns||n.basic?.columns||3},(e,t)=>{const s=(n.table?.columnNames?.split(",").map(e=>e.trim())||[])[t]||`Column ${t+1}`;return m.jsx("th",{className:"table-header-cell",style:{backgroundColor:(n.styles.headerBackgroundColor,"var(--df-color-fb-container)"),color:n.styles.headerTextColor||"var(--df-color-text-dark)",padding:"12px",border:"1px solid var(--df-color-fb-border)",fontWeight:"600",fontSize:"14px",textAlign:"center"},children:s},`header-${t}`)})})}),m.jsx("tbody",{children:n.cells?.map((t,s)=>m.jsx("tr",{className:"table-row",children:t.map(t=>m.jsx(G,{cell:t,mode:i,onComponentSelect:f||(()=>{}),onComponentDelete:O,onComponentEdit:g,selectedComponent:x||null,renderFormComponent:z,formData:a,formTemplateId:w,onThresholdActionCompletion:$,onThresholdIssueRaised:T,tableId:e,onNotesChange:I,onAttachmentChange:D},t.id))},s))})]})]})]}):null};var H,Y=Object.freeze({__proto__:null,DfFormTable:J,default:J});exports.ELabelAlignment=void 0,(H=exports.ELabelAlignment||(exports.ELabelAlignment={})).Top="top",H.Left="left",exports.ComponentActionFeatures=R,exports.ComponentSubmissionActions=F,exports.DfFormCheckbox=N,exports.DfFormComments=({comment:e="",onSave:s,placeholder:n="Enter your reason...",className:i="",disabled:a=!1})=>{const[r,o]=t.useState(!0),[l,c]=t.useState(e),[d,u]=t.useState(!1);t.useEffect(()=>{c(e),u(!1)},[e]);const p=t.useCallback(t=>{const s=t.target.value;c(s),u(s!==e)},[e]),h=t.useCallback(()=>{d&&s&&!a&&(s(l),u(!1))},[d,s,l,a]),f=t.useCallback(()=>{},[]),b=t.useCallback(()=>{a||o(!r)},[r,a]);return m.jsxs("div",{className:`df-form-comments ${i}`,children:[m.jsxs("div",{className:"df-form-comments__header",children:[m.jsx("h3",{className:"df-form-comments__title",children:"Comments"}),m.jsx("button",{className:"df-form-comments__toggle",type:"button",onClick:b,"aria-expanded":r,"aria-label":"Toggle comments section",disabled:a,children:r?m.jsx("span",{className:"df-form-comments__toggle-icon",children:"▼"}):m.jsx("span",{className:"df-form-comments__toggle-icon",children:"▶"})})]}),m.jsx("div",{className:"df-form-comments__content "+(r?"df-form-comments__content--expanded":""),children:m.jsx("div",{className:"df-form-comments__input-container",children:m.jsx("div",{className:"df-form-comments__input-line",children:m.jsx("input",{type:"text",id:"comment-input",className:"df-form-comments__input",value:l,onChange:p,onBlur:h,onFocus:f,placeholder:n,disabled:a})})})})]})},exports.DfFormDataGrid=z,exports.DfFormDateTime=k,exports.DfFormErrorMsg=b,exports.DfFormFileUpload=$,exports.DfFormHeading=A,exports.DfFormInput=y,exports.DfFormInstruction=I,exports.DfFormLocation=T,exports.DfFormPreview=({formComponents:e=[],currentDevice:s="desktop",isPreviewMode:n=!1,initialFormData:i=[],onSubmit:a,onFormDataChange:r,formTitle:o,formDescription:l,formTemplateId:c,onComponentSelect:d,onComponentDelete:u,onComponentEdit:p,onComponentUpdate:b,selectedComponent:g})=>{const[x,v]=t.useState({}),[D,L]=t.useState({}),[V,M]=t.useState(!1),[q,P]=t.useState({}),[W,B]=t.useState({}),[U,G]=t.useState(new Set),[J,H]=t.useState(new Map),[Y,X]=t.useState({isValid:!0});t.useEffect(()=>{Z()},[e,i]);const K=(e,t)=>{e.forEach(e=>{if(e.id&&("value"in e.basic&&void 0!==e.basic.value?t[e.id]=e.basic.value:"defaultValue"in e.basic&&void 0!==e.basic.defaultValue?t[e.id]=e.basic.defaultValue:"checkbox"===e.name||"select"===e.name?t[e.id]=[]:t[e.id]=""),e.cells&&Array.isArray(e.cells)&&e.cells.forEach((e,s)=>{Array.isArray(e)&&e.forEach((e,s)=>{e&&e.components&&Array.isArray(e.components)&&K(e.components,t)})}),e.entries&&Array.isArray(e.entries)&&e.entries.forEach((e,s)=>{e&&e.components&&Array.isArray(e.components)&&K(e.components,t)}),"file"===e.name&&e.basic){const s=e.basic.files||e.basic.attachments||e.basic.value;s&&(t[e.id]=s)}"instructions"===e.name&&e.basic&&(e.basic.instructions||(e.basic.instructions=[])),e.children&&Array.isArray(e.children)&&K(e.children,t)})},Z=t.useCallback(()=>{const t={},s=new Set,n=e=>{e.forEach(e=>{e.id&&(s.has(e.id)&&(console.error(`[DfFormPreview] Duplicate component ID detected: ${e.id}. Component:`,e),e.id=`${e.id}-duplicate-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,console.warn(`[DfFormPreview] Generated new unique ID: ${e.id}`)),s.add(e.id)),e.children&&Array.isArray(e.children)&&n(e.children),e.cells&&Array.isArray(e.cells)&&e.cells.forEach(e=>{Array.isArray(e)&&e.forEach(e=>{e&&e.components&&Array.isArray(e.components)&&n(e.components)})}),e.entries&&Array.isArray(e.entries)&&e.entries.forEach(e=>{e&&e.components&&Array.isArray(e.components)&&n(e.components)})})};e&&e.length>0&&n(e),i&&i.length>0&&n(i),i&&i.length>0&&K(i,t),e&&e.length>0&&K(e,t),v(t),ee()},[i,e]),Q=(t,s)=>{t.forEach(t=>{if(t.id)if("table"===t.name||"datagrid"===t.name)s[t.id]=!0;else if(t.conditional){const n=h.evaluateConditionalLogic(t.conditional,e,x);s[t.id]=n.shouldShow}else s[t.id]=!0;t.cells&&Array.isArray(t.cells)&&t.cells.forEach(e=>{e.forEach(e=>{e.components&&Array.isArray(e.components)&&Q(e.components,s)})}),t.entries&&Array.isArray(t.entries)&&t.entries.forEach(e=>{e.components&&Array.isArray(e.components)&&Q(e.components,s)}),t.children&&Array.isArray(t.children)&&Q(t.children,s)})},ee=t.useCallback(()=>{const t={};e&&e.length>0&&Q(e,t),B(t)},[e,x]),te=t.useCallback(t=>{const s=e.find(e=>e.id===t);if(s&&("table"===s.name||"datagrid"===s.name))return!0;return!1!==W[t]},[W,e]),se=t.useCallback(t=>{if(!t.id||"string"!=typeof t.id||""===t.id.trim())return void console.error("[DfFormPreview] Invalid component ID in onFormValueChange:",t);const s=e.filter(e=>e.id===t.id);if(s.length>1)return void console.error(`[DfFormPreview] ID COLLISION DETECTED! Multiple components share ID "${t.id}":`,s.map(e=>({id:e.id,name:e.name,label:e.basic?.label})));const i=x[t.id];void 0!==i&&i!==t.value&&console.log("[DfFormPreview] Updating form value:",{id:t.id,oldValue:i,newValue:t.value});const a={...x,[t.id]:t.value};v(a);const o=e.find(e=>e.id===t.id);if(o){const e=o?.threshold;e&&e.conditions&&e.conditions.length>0&&G(t=>{const s=new Set(t);return e.conditions.forEach(e=>{s.delete(e.id)}),s})}const l=e=>e.map(e=>e.id===t.id&&"defaultValue"in e.basic?{...e,basic:{...e.basic,value:t.value??e.basic.defaultValue,defaultValue:t.value}}:"section"===e.name&&e.children?{...e,children:l(e.children)}:"table"===e.name&&e.cells?{...e,cells:e.cells.map(e=>e.map(e=>{const t={...e};return t.components&&(t.components=l(t.components)),t}))}:"datagrid"===e.name&&e.entries?{...e,entries:e.entries.map(e=>{const t={...e};return t.components&&(t.components=l(t.components)),t})}:e),c=l(e);r?.(c),D[t.id]&&L(e=>({...e,[t.id]:""})),n||setTimeout(()=>{ie(t.id)},100),setTimeout(()=>{const t={};e.forEach(s=>{if("table"===s.name||"datagrid"===s.name)t[s.id]=!0;else if(s.conditional){const n=h.evaluateConditionalLogic(s.conditional,e,a);t[s.id]=n.shouldShow}else t[s.id]=!0}),B(t)},0)},[e,x,D,r]),ne=t.useCallback((e,t)=>{for(const s of e){if(s.id===t)return s;if("section"===s.name&&s.children){const e=ne(s.children,t);if(e)return e}if("table"===s.name&&s.cells)for(const e of s.cells)for(const s of e)if(s.components){const e=ne(s.components,t);if(e)return e}if("datagrid"===s.name&&s.entries)for(const e of s.entries)if(e.components){const s=ne(e.components,t);if(s)return s}}return null},[]),ie=t.useCallback(t=>{if(n)return;const s=ne(e,t);if(!s)return;const i=x[t]||"";let a=!1;a=Array.isArray(i)?i.length>0:"string"==typeof i?""!==i.trim():null!=i;let r="";if(s.validation.required&&!a){const e=s.validation.customValidationMessage,t=s.basic.label||"This field";r=e||`${t} is required`}else if("email-input"===s.name&&a&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(i)){const e=s.validation.customValidationMessage,t=s.basic.label||"This field";r=e||`${t} must be a valid email`}else if(s.validation.minLength&&a&&i.length<s.validation.minLength){const e=s.validation.customValidationMessage,t=s.basic.label||"This field";r=e||`${t} must be at least ${s.validation.minLength} characters`}else if(s.validation.maxLength&&a&&i.length>s.validation.maxLength){const e=s.validation.customValidationMessage,t=s.basic.label||"This field";r=e||`${t} must be no more than ${s.validation.maxLength} characters`}else if("number-input"===s.name&&a){const e=parseFloat(String(i));if(isNaN(e)){const e=s.validation.customValidationMessage,t=s.basic.label||"This field";r=e||`${t} must be a valid number`}else{const t=s.validation;if(void 0!==t.lowerLimit&&e<t.lowerLimit){const e=s.validation.customValidationMessage,n=s.basic.label||"This field";r=e||`You are under the limit. ${n} must be at least ${t.lowerLimit}`}else if(void 0!==t.upperLimit&&e>t.upperLimit){const e=s.validation.customValidationMessage,n=s.basic.label||"This field";r=e||`You crossed the limit. ${n} must be no more than ${t.upperLimit}`}}}L(e=>({...e,[t]:r}))},[e,n,x,ne]),ae=t.useCallback(e=>{P(t=>({...t,[e]:!0})),n||setTimeout(()=>{ie(e)},0)},[n,ie]),re=t.useCallback(e=>{D[e]&&L(t=>({...t,[e]:""}))},[D]),oe=t.useCallback(()=>e.every(e=>{const t=x[e.id]||"";let s=!1;return s=Array.isArray(t)?t.length>0:"string"==typeof t?""!==t.trim():null!=t,!(e.validation.required&&!s)}),[e,x]),le=t.useCallback((e,t)=>{if(Array.isArray(t))return t.some(t=>le(e,t));if(null==t||""===t)return!1;const s="string"==typeof t?parseFloat(t):t,n="string"==typeof e.value?parseFloat(e.value):e.value;if(!isNaN(s)&&!isNaN(n))switch(e.operator){case"greaterThan":return s>n;case"lessThan":return s<n;case"greaterThanOrEqual":return s>=n;case"lessThanOrEqual":return s<=n;case"equals":return s===n;case"notEquals":return s!==n;default:return!1}const i=String(t).toLowerCase(),a=String(e.value).toLowerCase();switch(e.operator){case"equals":return i===a||String(t)===String(e.value);case"notEquals":return i!==a&&String(t)!==String(e.value);default:return!1}},[]),ce=t.useCallback(()=>{if(n)return[];const t=[];return e.forEach(e=>{const s=e?.condition;if(!s||!s.conditions||0===s.conditions.length)return;const n=x[e.id];null!=n&&""!==n&&!(Array.isArray(n)&&0===n.length)&&s.conditions.forEach(s=>{le(s,n)&&t.push({componentId:e.id,condition:s,componentLabel:e.basic?.label||"Field"})})}),t},[e,x,n,le]),de=t.useCallback(()=>{if(n)return{isValid:!0};const e=ce();if(0===e.length)return{isValid:!0};for(const{condition:t,componentLabel:s}of e){const e=J.get(t.id)||{notesCompleted:!1,attachmentsCompleted:!1,emailSent:!1},n=[];if(!0!==t.enableRaiseIssue||U.has(t.id)||n.push("raise an issue"),!0!==t.enableNotes||e.notesCompleted||n.push("add notes"),!0!==t.enableAttachment||e.attachmentsCompleted||n.push("add attachments"),!0!==t.enableSendEmail||e.emailSent||n.push("send email"),n.length>0){return{isValid:!1,errorMessage:`Please ${1===n.length?n[0]:n.slice(0,-1).join(", ")+" and "+n[n.length-1]} for the threshold condition met in "${s}". You cannot submit the form until all required actions are completed.`}}}return{isValid:!0}},[n,ce,U,J]),ue=t.useCallback(e=>{e&&G(t=>{const s=new Set(t);return s.add(e),s})},[]),me=t.useCallback((e,t,s)=>{e&&H(n=>{const i=new Map(n),a=i.get(e)||{notesCompleted:!1,attachmentsCompleted:!1,emailSent:!1};return"notes"===t?i.set(e,{...a,notesCompleted:s}):"attachments"===t?i.set(e,{...a,attachmentsCompleted:s}):"email"===t&&i.set(e,{...a,emailSent:s}),i})},[]);t.useEffect(()=>{if(!n){const e=de();X(e)}},[x,U,J,n,de]);const pe=t.useCallback(()=>{if(n)return!0;let t=!0;M(!0);const s={};return e.forEach(e=>{const n=x[e.id]||"";let i=!1;if(i=Array.isArray(n)?n.length>0:"string"==typeof n?""!==n.trim():null!=n,e.validation.required&&!i){const n=e.validation.customValidationMessage,i=e.basic.label||"This field",a=n||`${i} is required`;s[e.id]=a,t=!1}else s[e.id]="";P(t=>({...t,[e.id]:!0}))}),L(s),t},[e,n,x]),he=t.useCallback(()=>{if(M(!0),!pe()){const t=e.find(e=>{const t=x[e.id]||"";let s=!1;return s=Array.isArray(t)?t.length>0:"string"==typeof t?""!==t.trim():null!=t,e.validation.required&&!s});if(t){const e=document.getElementById(t.id);e&&e.focus()}return}const t=de();if(!t.isValid){t.errorMessage&&f.showError(t.errorMessage);const e=ce().find(({condition:e})=>!U.has(e.id));if(e){const t=document.getElementById(e.componentId);t&&t.scrollIntoView({behavior:"smooth",block:"center"})}return}const s=e=>e.map(e=>{let t=x[e.id];"text-input"===e.name&&e.basic,void 0===t&&(t="value"in e.basic&&void 0!==e.basic.value?e.basic.value:"defaultValue"in e.basic&&void 0!==e.basic.defaultValue?e.basic.defaultValue:""),"text-input"===e.name&&e.basic;const n={...e,basic:{...e.basic,value:t,defaultValue:t}};return"section"===n.name&&n.children&&(n.children=s(n.children)),"table"===n.name&&n.cells&&(n.cells=n.cells.map(e=>e.map(e=>{const t={...e};return t.components&&(t.components=s(t.components)),t}))),"datagrid"===n.name&&n.entries&&(n.entries=n.entries.map(e=>{const t={...e};return t.components&&(t.components=s(t.components)),t})),n}),n=s(e);a?.(n)},[e,x,pe,a]),fe=t.useCallback(()=>({[`device-${s}`]:!0,readonly:n}),[s,n]),be=s=>{s.id&&"string"==typeof s.id&&""!==s.id.trim()||(console.error("[DfFormPreview] Component missing ID:",s),s.id=`generated-${s.name}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,console.warn("[DfFormPreview] Generated ID for component:",s.id));const i=s.id,a=x[i];if(void 0!==a){const t=e.filter(e=>e.id!==i&&x[e.id]===a);t.length>0&&console.warn(`[DfFormPreview] Component ${i} shares form value with other components:`,t.map(e=>e.id))}const o={id:i,validationErrors:D,formValue:a,touchedFields:q,formSubmitted:V,mode:n?"preview":"test",readonly:n,onValueChange:se,onBlur:()=>ae(i),onFocus:()=>re(i)};switch(s.name){case"text-input":case"number-input":case"email-input":return m.jsx(y,{...o,properties:s,inputType:"text-input"===s.name?"text":"number-input"===s.name?"number":"email",formTemplateId:c,onThresholdIssueRaised:ue,raisedThresholdIssues:U});case"textarea":return m.jsx(j,{...o,properties:s});case"select":const n={...s,options:s.basic?.options||[],basic:{...s.basic,comments:s.basic?.comments||""}};return m.jsx(C,{...o,properties:n});case"checkbox":const i={...s,options:s.basic?.options||[],basic:{...s.basic,comments:s.basic?.comments||""}};return m.jsx(N,{...o,properties:i});case"radio":const l={...s,options:s.basic?.options||[],basic:{...s.basic,comments:s.basic?.comments||""}};return m.jsx(S,{...o,properties:l});case"segment":const h={...s,options:s.basic?.options||[],basic:{...s.basic,comments:s.basic?.comments||""}};return m.jsx(w,{...o,properties:h});case"date":case"date-picker":case"datetime-picker":return m.jsx(k,{...o,properties:s});case"signature":return m.jsx(E,{...o,properties:s});case"heading":return m.jsx(A,{...o,properties:s});case"instructions":return m.jsx(I,{...o,properties:s,formValue:a});case"location":return m.jsx(T,{...o,properties:s});case"section":return m.jsx(O,{...o,properties:s,formData:x,formTemplateId:c,onThresholdActionCompletion:me,onThresholdIssueRaised:ue,renderFormComponent:e=>be(e)});case"table":return m.jsx(t.Suspense,{fallback:m.jsx("div",{children:"Loading table..."}),children:m.jsx(_,{...o,properties:s,formData:x,formTemplateId:c,mode:o.mode,validationErrors:D,touchedFields:q,formSubmitted:V,onThresholdActionCompletion:me,onThresholdIssueRaised:ue,onNotesChange:(t,n)=>{const i=e.map(e=>{if(e.id===s.id&&e.cells){const s=e.cells.map(e=>e.map(e=>{if(e.components){const s=e.components.map(e=>e.id===t?{...e,basic:{...e.basic,notes:n}}:e);return{...e,components:s}}return e}));return{...e,cells:s}}return e});r?.(i)},onAttachmentChange:(t,n)=>{const i=e.map(e=>{if(e.id===s.id&&e.cells){const s=e.cells.map(e=>e.map(e=>{if(e.components){const s=e.components.map(e=>e.id===t?{...e,basic:{...e.basic,attachments:n||[]}}:e);return{...e,components:s}}return e}));return{...e,cells:s}}return e});r?.(i)},renderFormComponent:e=>be(e)})});case"datagrid":return m.jsx(z,{...o,properties:s,formData:x,formTemplateId:c,mode:o.mode,validationErrors:D,touchedFields:q,formSubmitted:V,onThresholdActionCompletion:me,onThresholdIssueRaised:ue,onComponentSelect:d,onComponentDelete:u,onComponentEdit:p,onComponentUpdate:b,selectedComponent:g,onValueChange:t=>{if(t.id===s.id&&t.value&&"object"==typeof t.value&&"entries"in t.value){const n=e.map(e=>e.id===s.id?{...e,...t.value}:e);r?.(n)}else se(t)},onEntryAdd:()=>{try{const t=e.map(e=>{if(e.id===s.id){const t=e.entries||[];return{...e,entries:t}}return e});r?.(t)}catch(e){console.error("[DfFormPreview] Error in onEntryAdd:",e)}},onEntryRemove:t=>{const n=e.map(e=>{if(e.id===s.id&&e.entries){const s=(e.entries||[]).filter((e,s)=>s!==t).map((t,s)=>({...t,index:s,id:`entry-${e.id}-${s}`,components:t.components?.map((e,t)=>{const n=(e.templateComponents||[])[t];return{...e,id:n?`${n.id}-entry-${s}-${t}`:e.id}})||[]}));return{...e,entries:s}}return e});r?.(n)},onNotesChange:(t,n)=>{const i=e.map(e=>{if(e.id===s.id&&e.entries){const s=e.entries.map(e=>{if(e.components){const s=e.components.map(e=>e.id===t?{...e,basic:{...e.basic,notes:n}}:e);return{...e,components:s}}return e});return{...e,entries:s}}return e});r?.(i)},onAttachmentChange:(t,n)=>{const i=e.map(e=>{if(e.id===s.id&&e.entries){const s=e.entries.map(e=>{if(e.components){const s=e.components.map(e=>e.id===t?{...e,basic:{...e.basic,attachments:n||[]}}:e);return{...e,components:s}}return e});return{...e,entries:s}}return e});r?.(i)},renderFormComponent:e=>be(e)});case"file":const f=a||s.basic?.files||s.basic?.attachments||s.basic?.value||null;return m.jsx($,{...o,properties:s,formValue:f});default:return m.jsx("div",{className:"form-group",children:m.jsxs("div",{className:"form-group-label",children:["Unsupported Component: ",s.name]})})}};return m.jsx("div",{className:"form-preview-container",children:m.jsx("div",{className:"form-preview-wrapper",children:m.jsxs("div",{className:`form-preview ${Object.entries(fe()).map(([e,t])=>t?e:"").join(" ")}`,children:[m.jsx("div",{className:"form-canvas-header"}),0===e.length?m.jsx("div",{className:"empty-state",children:m.jsx("div",{className:"empty-state-card",children:m.jsx("div",{className:"empty-state-preview-area",children:m.jsx("span",{className:"empty-state-placeholder",children:"Add components to see the form preview"})})})}):m.jsxs("form",{className:"form-preview-form",onSubmit:e=>{e.preventDefault(),he()},children:[(o||l)&&m.jsxs("div",{className:"form-header",children:[o&&m.jsx("h1",{className:"form-title",children:o}),l&&m.jsx("p",{className:"form-description",children:l})]}),e.map(t=>{const s=t.basic,i=x[t.id],a=["select","radio","checkbox","segment"].includes(t.name||""),o=t.options||s?.options||[],l=(()=>{const e=t?.styles?.column;return"section"===t.name||"table"===t.name||"datagrid"===t.name?"col-12":3===e?"col-3":6===e?"col-6":9===e?"col-9":"col-12"})();let d=!1;if(!n)if(a&&null!=i&&""!==i)if("checkbox"===t.name){d=(Array.isArray(i)?i:[i]).some(e=>{const t=o.find(t=>t.value===e);return t&&(t.enableNotes||t.enableAttachment||t.enableRaiseIssue||t.enableSendEmail)})}else{const e=o.find(e=>e.value===i);d=e&&(e.enableNotes||e.enableAttachment||e.enableRaiseIssue||e.enableSendEmail)}else d=s?.enableNotes||s?.enableAttachment||s?.enableRaiseIssue||s?.enableSendEmail;const u=n&&(t.basic?.notes&&t.basic.notes.trim().length>0||t.basic?.attachments&&Array.isArray(t.basic.attachments)&&t.basic.attachments.length>0);return m.jsxs("div",{className:`form-group ${l} ${d||u?"has-action-features":""}`,style:{display:te(t.id)?"block":"none"},children:[be(t),!n&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(t.name)&&m.jsx(R,{component:t,mode:n?"preview":"test",formTemplateId:c,formValue:i,onThresholdActionCompletion:me,onThresholdIssueRaised:ue,onNotesChange:s=>{const n=e.map(e=>e.id===t.id?{...e,basic:{...e.basic,notes:s||""}}:e);r?.(n)},onAttachmentChange:s=>{const n=e.map(e=>e.id===t.id?{...e,basic:{...e.basic,attachments:s||[]}}:e);r?.(n)},notes:t.basic?.notes||"",attachments:t.basic?.attachments||null}),n&&u&&m.jsx(F,{component:t})]},t.id)}),!n&&m.jsx("div",{className:"form-actions",children:m.jsx("button",{type:"submit",disabled:!oe()||!Y.isValid,className:"form-submit-button",title:Y.isValid?"":Y.errorMessage,children:"Submit"})})]})]})})})},exports.DfFormRadio=S,exports.DfFormSection=O,exports.DfFormSegment=w,exports.DfFormSelect=C,exports.DfFormSignature=E,exports.DfFormTable=J,exports.DfFormTextarea=j,exports.RaiseIssueModal=x,exports.ThresholdAlert=v,exports.conditionalLogicService=h,exports.toastService=f;
11
11
  //# sourceMappingURL=index.js.map