df-ae-forms-package 1.0.1 → 1.0.2
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.esm.js +2 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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?r.exports=function(){if(e)return l;e=1;var n=t,a=Symbol.for("react.element"),s=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,o=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,r={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var s,l={},c=null,d=null;for(s in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(d=t.ref),t)i.call(t,s)&&!r.hasOwnProperty(s)&&(l[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps)void 0===l[s]&&(l[s]=t[s]);return{$$typeof:a,type:e,key:c,ref:d,props:l,_owner:o.current}}return l.Fragment=s,l.jsx=c,l.jsxs=c,l}():r.exports=(c||(c=1,"production"!==process.env.NODE_ENV&&function(){var e,n=t,a=Symbol.for("react.element"),s=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),c=Symbol.for("react.context"),u=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=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function v(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];!function(e,t,n){var a=x.ReactDebugCurrentFrame.getStackAddendum();""!==a&&(t+="%s",n=n.concat([a]));var s=n.map(function(e){return String(e)});s.unshift("Warning: "+t),Function.prototype.apply.call(console[e],console,s)}("error",e,n)}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 i:return"Fragment";case s:return"Portal";case r:return"Profiler";case o: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 u:return function(e,t,n){var a=e.displayName;if(a)return a;var s=t.displayName||t.name||"";return""!==s?n+"("+s+")":n}(e,e.render,"ForwardRef");case h:var t=e.displayName||null;return null!==t?t:j(e.type)||"Memo";case f:var n=e,a=n._payload,d=n._init;try{return j(d(a))}catch(e){return null}}return null}e=Symbol.for("react.module.reference");var C,N,k,w,S,E,T,$=Object.assign,A=0;function L(){}L.__reactDisabledLog=!0;var I,R=x.ReactCurrentDispatcher;function D(e,t,n){if(void 0===I)try{throw Error()}catch(e){var a=e.stack.trim().match(/\n( *(at )?)/);I=a&&a[1]||""}return"\n"+I+e}var F,V=!1,O="function"==typeof WeakMap?WeakMap:Map;function q(e,t){if(!e||V)return"";var n,a=F.get(e);if(void 0!==a)return a;V=!0;var s,i=Error.prepareStackTrace;Error.prepareStackTrace=void 0,s=R.current,R.current=null,function(){if(0===A){C=console.log,N=console.info,k=console.warn,w=console.error,S=console.group,E=console.groupCollapsed,T=console.groupEnd;var e={configurable:!0,enumerable:!0,value:L,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}A++}();try{if(t){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(o,[])}catch(e){n=e}Reflect.construct(e,[],o)}else{try{o.call()}catch(e){n=e}e.call(o.prototype)}}else{try{throw Error()}catch(e){n=e}e()}}catch(t){if(t&&n&&"string"==typeof t.stack){for(var r=t.stack.split("\n"),l=n.stack.split("\n"),c=r.length-1,d=l.length-1;c>=1&&d>=0&&r[c]!==l[d];)d--;for(;c>=1&&d>=0;c--,d--)if(r[c]!==l[d]){if(1!==c||1!==d)do{if(c--,--d<0||r[c]!==l[d]){var u="\n"+r[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=s,function(){if(0===--A){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:$({},e,{value:C}),info:$({},e,{value:N}),warn:$({},e,{value:k}),error:$({},e,{value:w}),group:$({},e,{value:S}),groupCollapsed:$({},e,{value:E}),groupEnd:$({},e,{value:T})})}A<0&&v("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}(),Error.prepareStackTrace=i}var m=e?e.displayName||e.name:"",p=m?D(m):"";return"function"==typeof e&&F.set(e,p),p}function z(e,t,n){if(null==e)return"";if("function"==typeof e)return q(e,!(!(a=e.prototype)||!a.isReactComponent));var a;if("string"==typeof e)return D(e);switch(e){case m:return D("Suspense");case p:return D("SuspenseList")}if("object"==typeof e)switch(e.$$typeof){case u:return q(e.render,!1);case h:return z(e.type,t,n);case f:var s=e,i=s._payload,o=s._init;try{return z(o(i),t,n)}catch(e){}}return""}F=new O;var M=Object.prototype.hasOwnProperty,_={},P=x.ReactDebugCurrentFrame;function W(e){if(e){var t=e._owner,n=z(e.type,e._source,t?t.type:null);P.setExtraStackFrame(n)}else P.setExtraStackFrame(null)}var B=Array.isArray;function U(e){return B(e)}function H(e){return""+e}function J(e){if(function(e){try{return H(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)),H(e)}var Y,G,X,K=x.ReactCurrentOwner,Z={key:!0,ref:!0,__self:!0,__source:!0};function Q(e,t,n,s,i){var o,r={},l=null,c=null;for(o in void 0!==n&&(J(n),l=""+n),function(e){if(M.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(M.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 n=j(K.current.type);X[n]||(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[n]=!0)}}(t,i)),t)M.call(t,o)&&!Z.hasOwnProperty(o)&&(r[o]=t[o]);if(e&&e.defaultProps){var d=e.defaultProps;for(o in d)void 0===r[o]&&(r[o]=d[o])}if(l||c){var u="function"==typeof e?e.displayName||e.name||"Unknown":e;l&&function(e,t){var n=function(){Y||(Y=!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))};n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}(r,u),c&&function(e,t){var n=function(){G||(G=!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))};n.isReactWarning=!0,Object.defineProperty(e,"ref",{get:n,configurable:!0})}(r,u)}return function(e,t,n,s,i,o,r){var l={$$typeof:a,type:e,key:t,ref:n,props:r,_owner:o,_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:s}),Object.defineProperty(l,"_source",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(l.props),Object.freeze(l)),l}(e,l,c,i,s,K.current,r)}X={};var ee,te=x.ReactCurrentOwner,ne=x.ReactDebugCurrentFrame;function ae(e){if(e){var t=e._owner,n=z(e.type,e._source,t?t.type:null);ne.setExtraStackFrame(n)}else ne.setExtraStackFrame(null)}function se(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}function ie(){if(te.current){var e=j(te.current.type);if(e)return"\n\nCheck the render method of `"+e+"`."}return""}ee=!1;var oe={};function re(e,t){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var n=function(e){var t=ie();if(!t){var n="string"==typeof e?e:e.displayName||e.name;n&&(t="\n\nCheck the top-level render call using <"+n+">.")}return t}(t);if(!oe[n]){oe[n]=!0;var a="";e&&e._owner&&e._owner!==te.current&&(a=" It was passed a child from "+j(e._owner.type)+"."),ae(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.',n,a),ae(null)}}}function le(e,t){if("object"==typeof e)if(U(e))for(var n=0;n<e.length;n++){var a=e[n];se(a)&&re(a,t)}else if(se(e))e._store&&(e._store.validated=!0);else if(e){var s=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 s&&s!==e.entries)for(var i,o=s.call(e);!(i=o.next()).done;)se(i.value)&&re(i.value,t)}}function ce(e){var t,n=e.type;if(null!=n&&"string"!=typeof n){if("function"==typeof n)t=n.propTypes;else{if("object"!=typeof n||n.$$typeof!==u&&n.$$typeof!==h)return;t=n.propTypes}if(t){var a=j(n);!function(e,t,n,a,s){var i=Function.call.bind(M);for(var o in e)if(i(e,o)){var r=void 0;try{if("function"!=typeof e[o]){var l=Error((a||"React class")+": "+n+" type `"+o+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[o]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw l.name="Invariant Violation",l}r=e[o](t,o,a,n,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(e){r=e}!r||r instanceof Error||(W(s),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).",a||"React class",n,o,typeof r),W(null)),r instanceof Error&&!(r.message in _)&&(_[r.message]=!0,W(s),v("Failed %s type: %s",n,r.message),W(null))}}(t,e.props,"prop",a,e)}else void 0===n.PropTypes||ee||(ee=!0,v("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",j(n)||"Unknown"));"function"!=typeof n.getDefaultProps||n.getDefaultProps.isReactClassApproved||v("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}var de={};function ue(t,n,s,d,g,x){var y=function(t){return"string"==typeof t||"function"==typeof t||t===i||t===r||t===o||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===u||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,k=function(e){return void 0!==e?"\n\nCheck your code at "+e.fileName.replace(/^.*[\\\/]/,"")+":"+e.lineNumber+".":""}(g);C+=k||ie(),null===t?N="null":U(t)?N="array":void 0!==t&&t.$$typeof===a?(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,n,s,g,x);if(null==w)return w;if(y){var S=n.children;if(void 0!==S)if(d)if(U(S)){for(var E=0;E<S.length;E++)le(S[E],t);Object.freeze&&Object.freeze(S)}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(S,t)}if(M.call(n,"key")){var T=j(t),$=Object.keys(n).filter(function(e){return"key"!==e}),A=$.length>0?"{key: someKey, "+$.join(": ..., ")+": ...}":"{key: someKey}";de[T+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?"{"+$.join(": ..., ")+": ...}":"{}",T),de[T+A]=!0)}return t===i?function(e){for(var t=Object.keys(e.props),n=0;n<t.length;n++){var a=t[n];if("children"!==a&&"key"!==a){ae(e),v("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",a),ae(null);break}}null!==e.ref&&(ae(e),v("Invalid attribute `ref` supplied to `React.Fragment`."),ae(null))}(w):ce(w),w}var me=function(e,t,n){return ue(e,t,n,!1)},pe=function(e,t,n){return ue(e,t,n,!0)};d.Fragment=i,d.jsx=me,d.jsxs=pe}()),d);var u=r.exports;class m{constructor(){}static getInstance(){return m.instance||(m.instance=new m),m.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 n=[];return e?(["show","hide","always"].includes(e.action)||n.push("Invalid conditional action"),["all","any"].includes(e.when)||n.push("Invalid when condition"),e.conditions&&0!==e.conditions.length?e.conditions.forEach((e,a)=>{const s=t.find(t=>t.id===e.when);if(!s)return void n.push(`Condition ${a+1}: Component not found`);this.getApplicableOperators(s.name).includes(e.operator)||n.push(`Condition ${a+1}: Operator not applicable for component type`),this.isValidConditionValue(e.value,s.name,e.operator)||n.push(`Condition ${a+1}: Invalid condition value`)}):n.push("At least one condition is required"),{isValid:0===n.length,errors:n}):{isValid:!0,errors:[]}}evaluateConditionalLogic(e,t,n){if("always"===e.action)return{shouldShow:!0,evaluatedConditions:[]};if(!e||!e.conditions||0===e.conditions.length)return{shouldShow:!0,evaluatedConditions:[]};const a=e.conditions.map(e=>{const a=this.getComponentValue(e.when,t,n);return{condition:e,result:this.evaluateCondition(e,a),componentValue:a}});return{shouldShow:this.determineFinalResult(e,a),evaluatedConditions:a}}getComponentValue(e,t,n){if(n&&void 0!==n[e])return n[e];const a=t.find(t=>t.id===e);return a&&"defaultValue"in a.basic?a.basic.defaultValue:void 0}evaluateCondition(e,t){const{operator:n,value:a}=e;if("checked"===a||"notChecked"===a)return this.evaluateCheckboxCondition(t,a);switch(n){case"equals":return this.isEqual(t,a);case"notEquals":return!this.isEqual(t,a);case"isEmpty":return this.isEmpty(t);case"isNotEmpty":return!this.isEmpty(t);case"contains":return this.contains(t,a);case"notContains":return!this.contains(t,a);case"greaterThan":return this.isGreaterThan(t,a);case"lessThan":return this.isLessThan(t,a);case"greaterThanOrEqual":return this.isGreaterThanOrEqual(t,a);case"lessThanOrEqual":return this.isLessThanOrEqual(t,a);default:return!1}}evaluateCheckboxCondition(e,t){const n=this.isCheckboxChecked(e);return"checked"===t?n:"notChecked"===t&&!n}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 n,a;return n="all"===e.when?t.every(e=>e.result):"any"===e.when&&t.some(e=>e.result),a="show"===e.action?n:"hide"===e.action?!n:(e.action,!0),a}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,n)=>this.isEqual(e,t[n]));if("object"==typeof e&&"object"==typeof t){const n=Object.keys(e),a=Object.keys(t);return n.length===a.length&&n.every(n=>this.isEqual(e[n],t[n]))}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 n=Number(e),a=Number(t);return!isNaN(n)&&!isNaN(a)&&n>a}isLessThan(e,t){const n=Number(e),a=Number(t);return!isNaN(n)&&!isNaN(a)&&n<a}isGreaterThanOrEqual(e,t){const n=Number(e),a=Number(t);return!isNaN(n)&&!isNaN(a)&&n>=a}isLessThanOrEqual(e,t){const n=Number(e),a=Number(t);return!isNaN(n)&&!isNaN(a)&&n<=a}isValidConditionValue(e,t,n){if(null==e)return["isEmpty","isNotEmpty"].includes(n);switch(t){case"number-input":return!isNaN(Number(e))||["isEmpty","isNotEmpty"].includes(n);case"date-picker":case"datetime-picker":return!isNaN(Date.parse(e))||["isEmpty","isNotEmpty"].includes(n);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 n=this.getActionDisplayText(e.action),a=e.conditions.map(e=>{const n=t.find(t=>t.id===e.when);return`${n?.basic.label||"Unknown component"} ${this.getOperatorDisplayText(e.operator)} ${this.formatConditionValue(e.value)}`}),s="all"===e.when?" and ":" or ";return`${n} ${a.join(s)}`}formatConditionValue(e){return null==e?"empty":Array.isArray(e)?`[${e.join(", ")}]`:"string"==typeof e?`"${e}"`:String(e)}}const p=m.getInstance();const h=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 n={id:this.generateId(),message:e,type:"success",duration:t};this.addToast(n)}showError(e,t=5e3){const n={id:this.generateId(),message:e,type:"danger",duration:t};this.addToast(n)}showWarning(e,t){const n={id:this.generateId(),message:e,type:"warning",duration:t};this.addToast(n)}showInfo(e,t){const n={id:this.generateId(),message:e,type:"info",duration:t};this.addToast(n)}show(e,t="success",n){const a={id:this.generateId(),message:e,type:t,duration:n};this.addToast(a)}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]}},f=({validationErrors:e,fieldId:t,touchedFields:n,formSubmitted:a,properties:s,localValidation:i,isTouched:o,mode:r})=>{const l=e=>{const t=s.basic.label||"This field",n=s.validation.customValidationMessage;if(n)return n;const a=s.name||"",i="date-picker"===a||"datetime-picker"===a?s.basic?.dateTimeMode||("datetime-picker"===a?"datetime":"date"):null;switch(e){case"required":return`${t} is required`;case"invalidDate":return"time"===i?"Please select a valid time":"datetime"===i?"Please select a valid date and time":"date"===i?"Please select a valid date":`${t} is invalid`;case"minLength":return`${t} must be at least ${s.validation.minLength} characters long`;case"maxLength":return`${t} must be no more than ${s.validation.maxLength} characters long`;case"min":return`${t} must be at least ${s.validation.min}`;case"max":return`${t} must be no more than ${s.validation.max}`;case"lowerLimit":const e=s.validation,n=e?.lowerLimit;return`You are under the limit. ${t} must be at least ${n}`;case"upperLimit":const a=s.validation,o=a?.upperLimit;return`You crossed the limit. ${t} must be no more than ${o}`;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"!==r)return"";if(!(o||n[t]||a))return"";if(i&&i.isValid)return"";if(i&&!i.isValid&&Object.keys(i.errors).length>0){const e=Object.keys(i.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=s.name||"";if(("date-picker"===e||"datetime-picker"===e)&&c.includes("valid date")){const t=s.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?u.jsx("div",{className:"form-error-msg",children:c}):null},b=({isOpen:e,onClose:t,onSuccess:n,component:a,formTemplateId:s,notes:i="",attachments:o=null,issue:r=null})=>{if(!e)return null;return u.jsx("div",{className:"raise-issue-modal-overlay",onClick:t,style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999,padding:"1rem"},children:u.jsxs("div",{className:"raise-issue-modal",onClick:e=>e.stopPropagation(),style:{background:"#ffffff",borderRadius:"0.5rem",width:"100%",maxWidth:"500px",padding:"2rem",boxShadow:"0 25px 50px -12px rgba(0, 0, 0, 0.25)"},children:[u.jsx("h2",{style:{marginTop:0},children:"Raise Issue"}),u.jsx("p",{children:r?"View/Edit Issue":"Create New Issue"}),u.jsxs("p",{style:{fontSize:"0.875rem",color:"#6b7280"},children:["Component: ",a?.basic?.label||"Unknown"]}),i&&u.jsxs("div",{style:{marginTop:"1rem",padding:"0.75rem",background:"#f9fafb",borderRadius:"0.375rem"},children:[u.jsx("strong",{children:"Notes:"})," ",i]}),o&&o.length>0&&u.jsxs("div",{style:{marginTop:"1rem",padding:"0.75rem",background:"#f9fafb",borderRadius:"0.375rem"},children:[u.jsx("strong",{children:"Attachments:"})," ",o.length," file(s)"]}),u.jsxs("div",{style:{marginTop:"1.5rem",display:"flex",gap:"0.75rem",justifyContent:"flex-end"},children:[u.jsx("button",{onClick:t,style:{padding:"0.625rem 1.25rem",borderRadius:"0.375rem",border:"1px solid #d1d5db",background:"#ffffff",cursor:"pointer"},children:"Cancel"}),u.jsx("button",{onClick:()=>{n&&n(),t()},style:{padding:"0.625rem 1.25rem",borderRadius:"0.375rem",border:"none",background:"var(--df-color-primary, #303992)",color:"#ffffff",cursor:"pointer"},children:r?"Update":"Raise Issue"})]}),u.jsx("p",{style:{marginTop:"1rem",fontSize:"0.75rem",color:"#9ca3af",fontStyle:"italic"},children:"Note: This is a stub implementation. Replace this component with your own issue management integration."})]})})},g=({component:e,condition:a,currentValue:s,thresholdValue:i,formTemplateId:o,onIssueRaised:r,isIssueRaised:l=!1})=>{const[c,d]=t.useState(!1),[m,p]=t.useState(null),[f,g]=t.useState(!1),[x,v]=t.useState(!1);t.useEffect(()=>{l&&v(!0)},[l]),t.useEffect(()=>{v(!1)},[a?.id]);const y=t.useCallback(async()=>{if(l||x){if(m)return void d(!0);g(!0);try{p(null),d(!0)}catch(e){console.error("Error fetching issue:",e),h.showError("Failed to load issue details")}finally{g(!1)}}else p(null),d(!0)},[l,x,o,e,m]),j=t.useCallback(()=>{d(!1),l||x||p(null)},[l,x]),C=t.useCallback(e=>{d(!1),p(e||null),v(!0),r&&a?.id&&r(a.id)},[r,a]);return l||x?u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"threshold-issue-indicator",children:u.jsxs("div",{className:"threshold-issue-indicator-content",children:[u.jsx(n.CheckCircle2,{className:"threshold-issue-indicator-icon",size:16}),u.jsx("span",{className:"threshold-issue-indicator-text",children:"Issue raised for this threshold condition"}),u.jsx("button",{type:"button",onClick:y,className:"threshold-issue-indicator-view-btn",disabled:f,children:f?"Loading...":"View Issue"})]})}),c&&u.jsx(b,{isOpen:c,onClose:j,onSuccess:C,component:e,formTemplateId:o,notes:"",attachments:null,issue:m})]}):u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"threshold-alert threshold-alert-unresolved",children:[u.jsx("div",{className:"threshold-alert-border"}),u.jsxs("div",{className:"threshold-alert-content",children:[u.jsx("div",{className:"threshold-alert-header",children:u.jsxs("div",{className:"threshold-alert-title-group",children:[u.jsx(n.AlertTriangle,{className:"threshold-alert-icon",size:20}),u.jsx("span",{className:"threshold-alert-title",children:"Threshold Condition Met - Action Required"})]})}),u.jsxs("div",{className:"threshold-alert-message",children:[(()=>{const t={greaterThan:">",lessThan:"<",greaterThanOrEqual:"≥",lessThanOrEqual:"≤",equals:"=",notEquals:"≠"}[n=a.operator]||n;var n;return`${e.basic?.label||"Value"}: Value ${s} exceeds threshold ${t} ${i}`})(),u.jsx("span",{className:"threshold-alert-warning",children:" You must raise an issue before submitting the form."})]}),u.jsx("div",{className:"threshold-alert-buttons",children:u.jsx("button",{type:"button",onClick:y,className:"threshold-alert-raise-issue-btn",children:"Raise Issue Now"})})]})]}),c&&u.jsx(b,{isOpen:c,onClose:j,onSuccess:C,component:e,formTemplateId:o,notes:"",attachments:null,issue:m})]})},x=({id:e,properties:n,validationErrors:a={},formValue:s="",inputType:i="text",readonly:o=!1,disabled:r=!1,touchedFields:l={},formSubmitted:c=!1,mode:d="test",onValueChange:m,onBlur:p,onFocus:h,className:b="",hideLabel:x=!1,formTemplateId:v,onThresholdIssueRaised:y,raisedThresholdIssues:j=new Set})=>{const[C,N]=t.useState(s||n?.basic?.defaultValue||""),[k,w]=t.useState(!1),[S,E]=t.useState(!1),[T,$]=t.useState(new Set),[A,L]=t.useState(s||n?.basic?.defaultValue||""),I=()=>{if(i)return i;const e=n?.name;return"text-input"===e?"text":"number-input"===e?"number":"email-input"===e?"email":"text"},R=t.useCallback(e=>{const t=(()=>{const e={};if(n?.validation?.required&&(e.required=!0),"email"===I()&&(e.email=!0),"text"===I()){const t=n.validation;t?.minLength&&(e.minLength=t.minLength),t?.maxLength&&(e.maxLength=t.maxLength)}if("number"===I()){const t=n.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})(),a={};let s=!0;if(!t.required||e&&""!==e.trim()||(a.required=!0,s=!1),t.email&&e&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(e)&&(a.email=!0,s=!1),t.minLength&&e&&e.length<t.minLength&&(a.minLength=!0,s=!1),t.maxLength&&e&&e.length>t.maxLength&&(a.maxLength=!0,s=!1),"number"===I()&&e){const n=parseFloat(e);isNaN(n)?(a.pattern=!0,s=!1):(void 0!==t.min&&n<t.min&&(a.min=!0,s=!1),void 0!==t.max&&n>t.max&&(a.max=!0,s=!1),void 0!==t.lowerLimit&&n<t.lowerLimit&&(a.lowerLimit=!0,s=!1),void 0!==t.upperLimit&&n>t.upperLimit&&(a.upperLimit=!0,s=!1))}return{isValid:s,errors:a}},[n,I]),D=t.useCallback(t=>{if(N(t),m){const n=R(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};m(a)}},[e,m,R]);t.useEffect(()=>{k&&(l[e]=!0)},[k,e,l]),t.useEffect(()=>{if("edit"===d){w(!1);N(n?.basic?.defaultValue||"")}else"test"===d&&(w(!1),N(""))},[d,n?.basic?.defaultValue]),t.useEffect(()=>{const e=s||n?.basic?.defaultValue||"";e===C||S||""===e&&""!==C.trim()?""===e&&C.trim():N(e)},[s,C,S,n?.basic?.defaultValue]),t.useEffect(()=>{c&&w(!0)},[c]),t.useEffect(()=>{"test"!==d&&N("")},[d]);const F=t.useCallback((e,t)=>{if(!t||""===t)return!1;const n="string"==typeof t?parseFloat(t):t,a="string"==typeof e.value?parseFloat(e.value):e.value;if(isNaN(n)||isNaN(a))return!1;switch(e.operator){case"greaterThan":return n>a;case"lessThan":return n<a;case"greaterThanOrEqual":return n>=a;case"lessThanOrEqual":return n<=a;case"equals":return n===a;case"notEquals":return n!==a;default:return!1}},[]),V=t.useMemo(()=>n?.condition?.conditions||[],[n?.condition]);t.useEffect(()=>{C!==A&&($(new Set),L(C))},[C,A]);const O=t.useMemo(()=>{if("test"!==d||!C||""===C)return null;const e=V.filter(e=>F(e,C));if(0===e.length)return null;for(const t of e)if(!T.has(t.id))return t;return null},[C,V,T,d,F,j]),q=t.useCallback(e=>{$(t=>new Set(t).add(e))},[]),z=I(),M=r||o||n?.validation?.readonly;return u.jsxs("div",{className:`form-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!x&&n.basic.label&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.jsx("input",{type:z,id:e,value:C,onChange:e=>{const t=e.target.value;D(t)},onFocus:()=>{E(!0),h&&h()},onBlur:()=>{if(E(!1),w(!0),"test"===d&&m){const t=R(C),n={id:e,value:C,isValid:t.isValid,errors:t.errors};m(n)}p&&p()},placeholder:n.basic.placeholder,disabled:M,readOnly:o||n?.validation?.readonly,className:(()=>{const t="form-control";if("test"===d){const n=!R(C).isValid&&k,s=a[e]&&(k||c);return`${t} ${n||s?"is-invalid":""} ${b}`.trim()}return`${t} ${b}`.trim()})()}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:l,formSubmitted:c,properties:n,localValidation:R(C),isTouched:k,mode:d}),O&&"test"===d&&(()=>{const e=j?.has(O.id)||!1;return u.jsx(g,{component:n,condition:O,currentValue:C,thresholdValue:O.value,formTemplateId:v,onDismiss:()=>q(O.id),onIssueRaised:y,isIssueRaised:e},`${O.id}-${e}`)})()]})]})},v=({id:e,properties:n,validationErrors:a={},formValue:s="",readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState(s),[v,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let a=!0;return!n?.validation?.required||e&&""!==e.trim()||(t.required=!0,a=!1),n?.validation?.minLength&&e&&e.length<n.validation.minLength&&(t.minLength=!0,a=!1),n?.validation?.maxLength&&e&&e.length>n.validation.maxLength&&(t.maxLength=!0,a=!1),{isValid:a,errors:t}},[n]),C=t.useCallback(t=>{if(x(t),d){const n=j(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,j]);t.useEffect(()=>{v&&(r[e]=!0)},[v,e,r]),t.useEffect(()=>{""===g&&""!==s&&x(s)},[s]),t.useEffect(()=>{l&&y(!0)},[l]),t.useEffect(()=>{"test"!==c&&x("")},[c]);const N=o||i||n?.validation?.readonly,k=n?.validation?.rows||4;return u.jsxs("div",{className:`form-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&n.basic.label&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.jsx("textarea",{id:e,value:g,onChange:e=>{const t=e.target.value;C(t)},onFocus:()=>{p&&p()},onBlur:()=>{y(!0),m&&m()},placeholder:n.basic.placeholder,disabled:N,readOnly:i||n?.validation?.readonly,rows:k,className:`form-textarea ${!j(g).isValid&&v?"is-invalid":""} ${h}`.trim()}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:j(g),isTouched:v,mode:c})]})]})},y=({id:e,properties:n,validationErrors:a={},formValue:s="",readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState(s),[v,y]=t.useState(!1),j=n?.validation?.multiple||!1,C=t.useCallback(e=>{const t={};let a=!0;return n?.validation?.required&&(j?Array.isArray(e)&&0!==e.length||(t.required=!0,a=!1):(!e||"string"==typeof e&&""===e.trim())&&(t.required=!0,a=!1)),{isValid:a,errors:t}},[n,j]),N=t.useCallback(t=>{if(x(t),d){const n=C(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,C]);t.useEffect(()=>{v&&(r[e]=!0)},[v,e,r]),t.useEffect(()=>{JSON.stringify(s)!==JSON.stringify(g)&&x(s)},[s,g]),t.useEffect(()=>{l&&y(!0)},[l]);const k=o||i||n?.validation?.readonly;return u.jsxs("div",{className:`form-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&n.basic.label&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.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),m&&m()},disabled:k,multiple:j,className:`form-select ${!C(g).isValid&&v?"is-invalid":""} ${h}`.trim(),children:[!j&&u.jsx("option",{value:"",children:n.basic.placeholder||"Select an option"}),(n.options||[]).map((e,t)=>u.jsx("option",{value:e.value,disabled:e.disabled,children:e.label},t))]}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:C(g),isTouched:v,mode:c})]})]})},j=({id:e,properties:n,validationErrors:a={},formValue:s=[],readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState(!1),v=Array.isArray(s)?s:[],y=t.useCallback(e=>{const t={};let a=!0;return n?.validation?.required&&0===e.length&&(t.required=!0,a=!1),{isValid:a,errors:t}},[n]),j=t.useCallback(t=>{if(d){const n=y(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,y,v]),C=(e,t)=>{let n;n=t?[...v,e]:v.filter(t=>t!==e),j(n)},N=()=>{p&&p()},k=()=>{x(!0),m&&m()};t.useEffect(()=>{g&&(r[e]=!0)},[g,e,r]),t.useEffect(()=>{},[s,e,v]),t.useEffect(()=>{l&&x(!0)},[l]);const w=o||i||n?.validation?.readonly;return u.jsx(u.Fragment,{children:u.jsx("div",{className:`form-group checkbox-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${n?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${h}`,children:!b&&n.basic.label?u.jsxs(u.Fragment,{children:[u.jsxs("label",{className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.jsx("div",{className:"mt-2 "+(n?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(n.options||[]).map((t,n)=>u.jsxs("div",{className:"form-check",children:[u.jsx("input",{type:"checkbox",id:`${e}-${n}`,name:e,value:t.value,checked:v.includes(t.value),onChange:e=>{C(t.value,e.target.checked)},onFocus:N,onBlur:k,disabled:w||t.disabled,className:"form-check-input"}),u.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:y(v),isTouched:g,mode:c})]})]}):u.jsxs("div",{className:"input-wrapper",children:[u.jsx("div",{className:"mt-2 "+(n?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(n.options||[]).map((t,n)=>u.jsxs("div",{className:"form-check",children:[u.jsx("input",{type:"checkbox",id:`${e}-${n}`,name:e,value:t.value,checked:v.includes(t.value),onChange:e=>{C(t.value,e.target.checked)},onFocus:N,onBlur:k,disabled:w||t.disabled,className:"form-check-input"}),u.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:y(v),isTouched:g,mode:c})]})})})},C=({id:e,properties:n,validationErrors:a={},formValue:s="",readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState(s),[v,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let a=!0;return!n?.validation?.required||e&&""!==e.trim()||(t.required=!0,a=!1),{isValid:a,errors:t}},[n]),C=t.useCallback(t=>{if(x(t),d){const n=j(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,j]),N=e=>{C(e)},k=()=>{p&&p()},w=()=>{y(!0),m&&m()};t.useEffect(()=>{v&&(r[e]=!0)},[v,e,r]),t.useEffect(()=>{s!==g&&x(s)},[s,g]),t.useEffect(()=>{l&&y(!0)},[l]);const S=o||i||n?.validation?.readonly;return u.jsx(u.Fragment,{children:u.jsx("div",{className:`form-group radio-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${n?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${h}`,children:!b&&n.basic.label?u.jsxs(u.Fragment,{children:[u.jsxs("label",{className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.jsx("div",{className:"mt-2 "+(n?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(n.options||[]).map((t,n)=>u.jsxs("div",{className:"form-check",children:[u.jsx("input",{type:"radio",id:`${e}-${n}`,name:e,value:t.value,checked:g===t.value,onChange:()=>N(t.value),onFocus:k,onBlur:w,disabled:S||t.disabled,className:"form-check-input"}),u.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:j(g),isTouched:v,mode:c})]})]}):u.jsxs("div",{className:"input-wrapper",children:[u.jsx("div",{className:"mt-2 "+(n?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(n.options||[]).map((t,n)=>u.jsxs("div",{className:"form-check",children:[u.jsx("input",{type:"radio",id:`${e}-${n}`,name:e,value:t.value,checked:g===t.value,onChange:()=>N(t.value),onFocus:k,onBlur:w,disabled:S||t.disabled,className:"form-check-input"}),u.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:j(g),isTouched:v,mode:c})]})})})},N=({id:e,properties:n,validationErrors:a={},formValue:s="",readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState(s),[v,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let a=!0;return!n?.validation?.required||e&&""!==e.trim()||(t.required=!0,a=!1),{isValid:a,errors:t}},[n]),C=t.useCallback(t=>{if(x(t),y(!0),d){const n=j(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,j]),N=()=>{p&&p()},k=()=>{y(!0),m&&m()};t.useEffect(()=>{v&&(r[e]=!0)},[v,e,r]),t.useEffect(()=>{s!==g&&x(s)},[s,g]),t.useEffect(()=>{l&&y(!0)},[l]);const w=()=>n?.basic?.inlineLayout?"inline-layout":"grid-layout",S=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"===S(e?.value||e)?"✓":"×"},T=(e,t)=>e?.color||e?.backgroundColor?{color:t?"#ffffff":e.color||"#00814b",backgroundColor:t?e.color||"#00814b":e.backgroundColor||"#34bd4914",borderColor:e.color||"#00814b"}:{},$=e=>{if(e?.color||e?.backgroundColor)return"segment-button-label segment-button-custom";return"segment-button-label "+("pass"===S(e?.value||e)?"pass-button":"fail-button")},A=o||i||n?.validation?.readonly;return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:`form-group segment-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${h}`,children:!b&&n.basic.label?u.jsxs(u.Fragment,{children:[u.jsxs("label",{className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsx("div",{className:"form-segment-wrapper",children:u.jsx("div",{className:`form-segment-container ${w()}`,children:(n.options||[]).map((t,n)=>{const a=g===t.value,s=T(t,a),i=$(t),o=E(t);return u.jsxs("div",{className:"form-segment-option "+(a?"selected":""),children:[u.jsx("input",{type:"radio",id:`${e}_option_${n}`,name:e,value:t.value,checked:a,onChange:()=>!A&&!t.disabled&&C(t.value),onFocus:N,onBlur:k,disabled:A||t.disabled,className:"form-segment-radio"}),u.jsxs("label",{htmlFor:`${e}_option_${n}`,className:i,style:Object.keys(s).length>0?s:void 0,children:[o&&u.jsx("span",{className:"segment-icon",children:o}),u.jsx("span",{className:"segment-text",children:t.value})]})]},n)})})})]}):u.jsx("div",{className:"form-segment-wrapper",children:u.jsx("div",{className:`form-segment-container ${w()}`,children:(n.options||[]).map((t,n)=>{const a=g===t.value,s=T(t,a),i=$(t),o=E(t);return u.jsxs("div",{className:"form-segment-option "+(a?"selected":""),children:[u.jsx("input",{type:"radio",id:`${e}_option_${n}`,name:e,value:t.value,checked:a,onChange:()=>!A&&!t.disabled&&C(t.value),onFocus:N,onBlur:k,disabled:A||t.disabled,className:"form-segment-radio"}),u.jsxs("label",{htmlFor:`${e}_option_${n}`,className:i,style:Object.keys(s).length>0?s:void 0,children:[o&&u.jsx("span",{className:"segment-icon",children:o}),u.jsx("span",{className:"segment-text",children:t.value})]})]},n)})})})}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:j(g),isTouched:v,mode:c})]})},k=({id:e,properties:n,validationErrors:a={},formValue:s="",readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState(s),[v,y]=t.useState(!1),[j,C]=t.useState(!1),N=t.useCallback(e=>{const t={};let a=!0;const s=n.name||"",i=n.basic?.dateTimeMode||("datetime-picker"===s?"datetime":"date"),o=e?String(e).trim():"";if(n?.validation?.required&&(!o||""===o))return t.required=!0,a=!1,{isValid:a,errors:t};if(o&&""!==o)if("time"===i){if(!/^([0-1][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$/.test(o))return t.invalidDate=!0,a=!1,{isValid:a,errors:t}}else if("datetime"===i){const e=new Date(o);if(isNaN(e.getTime()))return t.invalidDate=!0,a=!1,{isValid:a,errors:t};if(n?.validation?.minDate){const s=new Date(n.validation.minDate);e<s&&(t.minDate=!0,t.minDateMessage=`Date and time must be on or after ${s.toLocaleDateString()}`,a=!1)}if(n?.validation?.maxDate){const s=new Date(n.validation.maxDate);e>s&&(t.maxDate=!0,t.maxDateMessage=`Date and time must be on or before ${s.toLocaleDateString()}`,a=!1)}}else{const e=new Date(o);if(isNaN(e.getTime()))return t.invalidDate=!0,a=!1,{isValid:a,errors:t};if(n?.validation?.minDate){const s=new Date(n.validation.minDate);e<s&&(t.minDate=!0,t.minDateMessage=`Date must be on or after ${s.toLocaleDateString()}`,a=!1)}if(n?.validation?.maxDate){const s=new Date(n.validation.maxDate);e>s&&(t.maxDate=!0,t.maxDateMessage=`Date must be on or before ${s.toLocaleDateString()}`,a=!1)}}return{isValid:a,errors:t}},[n]),k=t.useCallback(t=>{if(x(t),d){const n=N(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,N]);t.useEffect(()=>{v&&(r[e]=!0)},[v,e,r]),t.useEffect(()=>{s===g||j||x(s)},[s,g,j]),t.useEffect(()=>{l&&y(!0)},[l]);const w=o||i||n?.validation?.readonly,S=n.name||"",E=n.basic?.dateTimeMode||("datetime-picker"===S?"datetime":"date"),T=(()=>{switch(E){case"time":return"time";case"datetime":return"datetime-local";default:return"date"}})();return u.jsxs("div",{className:`form-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&n.basic.label&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.jsx("input",{type:T,id:e,value:g,onChange:e=>{const t=e.target.value;k(t)},onFocus:()=>{C(!0),p&&p()},onBlur:()=>{if(C(!1),y(!0),d){const t=N(g),n={id:e,value:g,isValid:t.isValid,errors:t.errors};d(n)}m&&m()},disabled:w,readOnly:i||n?.validation?.readonly,min:n?.validation?.minDate,max:n?.validation?.maxDate,className:`form-date ${!N(g).isValid&&v?"is-invalid":""} ${h}`.trim()}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:N(g),isTouched:v,mode:c})]})]})},w=({id:e,properties:n,validationErrors:a={},formValue:s="",readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const g=t.useRef(null),[x,v]=t.useState(!1),[y,j]=t.useState(!1),[C,N]=t.useState(s),[k,w]=t.useState(!1),S=t.useCallback(e=>{const t={};let a=!0;return!n?.validation?.required||e&&""!==e.trim()||(t.required=!0,a=!1),{isValid:a,errors:t}},[n]),E=t.useCallback(t=>{if(N(t),d){const n=S(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,S]),T=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.useCallback(t=>{if(!t)return;const n=g.current;if(!n)return;const a=n.getContext("2d");if(!a)return;const s=new Image;s.onload=()=>{a.clearRect(0,0,n.width,n.height);const e=T();a.fillStyle=e.backgroundColor,a.fillRect(0,0,n.width,n.height);const t=n.width/n.height,i=s.width/s.height;let o=n.width,r=n.height,l=0,c=0;i>t?(r=n.width/i,c=(n.height-r)/2):(o=n.height*i,l=(n.width-o)/2),a.drawImage(s,l,c,o,r)},s.onerror=n=>{console.error("DfFormSignature: error loading image",{id:e,error:n,dataURL:t.substring(0,50)+"..."})},s.src=t},[T,e]),A=t.useCallback(()=>{const e=g.current;if(!e)return;const t=e.getContext("2d");if(!t)return;const n=e.getBoundingClientRect();e.width=n.width,e.height=n.height,e.style.width=n.width+"px",e.style.height=n.height+"px";const a=T();t.strokeStyle=a.strokeColor,t.lineWidth=2,t.lineCap="round",t.lineJoin="round",C?$(C):(t.fillStyle=a.backgroundColor,t.fillRect(0,0,e.width,e.height))},[C,T,$]),L=t.useCallback(()=>{setTimeout(()=>{A()},100)},[A]);t.useEffect(()=>{const e=()=>{L()},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"))&&L()}})});return t.observe(document.body,{attributes:!0,attributeFilter:["class"],subtree:!0}),window.addEventListener("resize",e),()=>{t.disconnect(),window.removeEventListener("resize",e)}},[L]);const I=t.useCallback(e=>{const t=g.current;if(!t)return{x:0,y:0};const n=t.getBoundingClientRect(),a=t.width/n.width,s=t.height/n.height,i=e.type.includes("mouse")?e.clientX:e.touches[0].clientX,o=e.type.includes("mouse")?e.clientY:e.touches[0].clientY;return{x:(i-n.left)*a,y:(o-n.top)*s}},[]),R=e=>{if(i||o||n?.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 a=t.getContext("2d");if(!a)return;const{x:s,y:r}=I(e),l=T();a.strokeStyle=l.strokeColor,a.lineWidth=2,a.lineCap="round",a.lineJoin="round",a.beginPath(),a.moveTo(s,r)},D=e=>{if(!x)return;e.preventDefault(),e.stopPropagation();const t=g.current;if(!t)return;const n=t.getContext("2d");if(!n)return;const{x:a,y:s}=I(e);n.lineTo(a,s),n.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 n=t.getImageData(0,0,e.width,e.height).data;for(let e=0;e<n.length;e+=4){const t=n[e],a=n[e+1],s=n[e+2];if(n[e+3]>0&&(t<255||a<255||s<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 n=T();if(t.strokeStyle=n.strokeColor,C){const a=C,s=e.getBoundingClientRect();t.fillStyle=n.backgroundColor,t.fillRect(0,0,s.width,s.height),a&&$(a)}else{const a=e.getBoundingClientRect();t.fillStyle=n.backgroundColor,t.fillRect(0,0,a.width,a.height)}},[T,C,$]);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&&(r[e]=!0)},[y,e,r]),t.useEffect(()=>{if(!(s===C||x||k||""!==C&&""===s)){if(s===C)return;N(s),s&&$(s)}},[s,C,x,k]),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 n=e.getBoundingClientRect();e.width=n.width,e.height=n.height;const a=T();t.fillStyle=a.backgroundColor,t.fillRect(0,0,n.width,n.height)}}}},[c]),t.useEffect(()=>{A()},[c]);const O=o||i||n?.validation?.readonly;return u.jsxs("div",{className:`form-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&n.basic.label&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.jsxs("div",{className:"signature-container",style:{position:"relative",width:"100%",maxWidth:"100%",overflow:"hidden"},children:[u.jsx("canvas",{ref:g,id:e,className:`form-signature ${!S(C).isValid&&y?"is-invalid":""} ${h}`.trim(),onMouseDown:R,onMouseMove:D,onMouseUp:F,onMouseLeave:F,onTouchStart:R,onTouchMove:D,onTouchEnd:F,onFocus:()=>{p&&p()},onBlur:()=>{m&&m()},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&&u.jsx("button",{type:"button",onClick:e=>(e=>{e?.preventDefault(),e?.stopPropagation();const t=g.current;if(!t)return;const n=t.getBoundingClientRect();t.width=n.width,t.height=n.height;const a=t.getContext("2d");if(!a)return;const s=T();a.fillStyle=s.backgroundColor,a.fillRect(0,0,n.width,n.height),a.strokeStyle=s.strokeColor,a.lineWidth=2,a.lineCap="round",a.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"})]}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:S(C),isTouched:y,mode:c})]})]})},S=({id:e,properties:n,validationErrors:a={},formValue:s=null,readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="test",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState([]),[v,y]=t.useState(!1),[j,C]=t.useState(!1),N=t.useRef(null),k=t.useCallback(t=>{if(!t)return[];const n=Array.isArray(t)?t:Array.from(t),a=[];return n.forEach((t,n)=>{let s,i,o=0,r="",l="";if(t instanceof File||t instanceof Blob){const e=t;if(o=e.size||0,r=e.type||"",l=e.name||`file-${n}`,i=e,r.startsWith("image/"))try{s=URL.createObjectURL(e)}catch(e){console.error("Error creating object URL:",e),s=void 0}}else if("string"==typeof t){const e=t;if(l=`file-${n}`,e.startsWith("data:")){const t=e.indexOf(";");r=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);if(t){r={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 r="application/octet-stream"}(e.startsWith("data:image")||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("blob:"))&&(s=e),i=new File([],l,{type:r})}else{if(!t||"object"!=typeof t)return;{const e=t;if(l=e.name||e.fileName||`file-${n}`,o=e.size||e.fileSize||0,r=e.type||e.fileType||e.mimeType||"",e.url||e.path)s=e.url||e.path;else if(r.startsWith("image/")&&e.data){const t=e.data;s="string"==typeof t?t.startsWith("data:")?t:`data:${r};base64,${t}`:void 0}i=new File([],l,{type:r})}}a.push({file:i,id:`${e}-file-${n}`,size:o,type:r,name:l,preview:s})}),a},[e]),w=t.useCallback(()=>({isValid:!0,errors:{}}),[]),S=t.useCallback(t=>{if(i||o)return;const a=k(t),s=g.length>0?[...g,...a]:a,r=n?.validation?.maxFiles||1/0,l=s.slice(0,r);if(x(l),C(!0),d){const t=w(),n={id:e,value:l.map(e=>e.file),isValid:t.isValid,errors:t.errors};d(n)}},[g,n,i,o,d,w,k,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]},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&&(r[e]=!0)},[j,e,r]),t.useEffect(()=>{("edit"===c||"test"===c)&&C(!1)},[c]),t.useEffect(()=>{const e=k(s);x(e)},[s,k]),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 $=()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"},A=o||i||n?.validation?.readonly,L=n?.validation?.multiple||!1,I=n?.validation?.accept||"*/*",R=n?.validation?.maxFiles||1/0,D=g.length<R&&(L||R>1),F="edit"===c,V="preview"===c||"test"===c,O=g.filter(e=>e.type.startsWith("image/")),q=g.filter(e=>!e.type.startsWith("image/")),z=O.length>0;return V&&z?u.jsxs("div",{className:`form-group ${$()}`,children:[!b&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic?.label||"Attachments",n.validation?.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"file-upload-wrapper",children:[u.jsxs("div",{className:"file-image-display",children:[O.map(e=>u.jsxs("div",{className:"file-image-container",children:[e.preview&&u.jsx("img",{src:e.preview,alt:e.name,className:"file-image-preview"}),u.jsxs("div",{className:"file-image-info",children:[u.jsx("div",{className:"file-name",title:e.name,children:e.name}),u.jsx("div",{className:"file-size",children:E(e.size)})]})]},e.id)),q.length>0&&u.jsxs("div",{className:"file-other-files",children:[u.jsx("div",{className:"file-other-files-label",children:"Other Files:"}),q.map(e=>u.jsxs("div",{className:"file-item-minimal",children:[u.jsx("div",{className:"file-icon",children:T(e.type)}),u.jsxs("div",{className:"file-info",children:[u.jsx("div",{className:"file-name",title:e.name,children:e.name}),u.jsx("div",{className:"file-size",children:E(e.size)})]})]},e.id))]})]}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:w(),isTouched:j,mode:c})]})]}):u.jsxs("div",{className:`form-group ${$()}`,children:[!b&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic?.label||"Attachments",n.validation?.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"file-upload-wrapper",children:[u.jsxs("div",{className:`file-upload-area ${v?"drag-over":""} ${i?"readonly":""} ${o?"disabled":""} ${h}`.trim(),onDragOver:e=>{e.preventDefault(),i||o||y(!0)},onDragLeave:e=>{e.preventDefault(),y(!1)},onDrop:e=>{if(e.preventDefault(),y(!1),i||o)return;const t=e.dataTransfer.files;t.length>0&&S(t)},onClick:e=>{const t=e.target,n=null!==t.closest(".file-item"),a=null!==t.closest(".file-remove");!F||A||0!==g.length||n||a||N.current?.click()},onFocus:()=>{p&&p()},onBlur:()=>{if(C(!0),"test"===c&&d){const t=w(),n={id:e,value:g.map(e=>e.file),isValid:t.isValid,errors:t.errors};d(n)}m&&m()},tabIndex:A?-1:0,children:[u.jsx("input",{ref:N,type:"file",id:e,multiple:L,accept:I,onChange:e=>{const t=e.target.files;t&&t.length>0&&(S(t),e.target.value="")},disabled:A,style:{display:"none"}}),0===g.length?u.jsxs("div",{className:"upload-placeholder",onClick:e=>{e.stopPropagation(),F&&!A&&N.current?.click()},children:[u.jsx("div",{className:"upload-icon",children:"📁"}),u.jsx("div",{className:"upload-text",children:n.basic.placeholder&&u.jsx("p",{className:"upload-hint",children:n.basic.placeholder})})]}):u.jsx("div",{className:"file-list",children:g.map(t=>u.jsxs("div",{className:"file-item",children:[u.jsx("div",{className:"file-preview",children:t.preview?u.jsx("img",{src:t.preview,alt:t.name,className:"file-image"}):u.jsx("div",{className:"file-icon",children:T(t.type)})}),u.jsxs("div",{className:"file-info",children:[u.jsx("div",{className:"file-name",title:t.name,children:t.name}),u.jsx("div",{className:"file-size",children:E(t.size)})]}),F&&!A&&u.jsx("button",{type:"button",className:"file-remove",onClick:n=>{n.stopPropagation(),(t=>{if(i||o)return;const n=g.filter(e=>e.id!==t);if(x(n),C(!0),d){const t=w(),a={id:e,value:n.map(e=>e.file),isValid:t.isValid,errors:t.errors};d(a)}})(t.id)},"aria-label":`Remove ${t.name}`,children:"✕"})]},t.id))})]}),g.length>0&&D&&!A&&F&&u.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:[u.jsx("svg",{className:"file-add-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:u.jsx("path",{d:"M12 5v14M5 12h14"})}),u.jsx("span",{className:"file-add-text",children:"Add More Files"})]}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:w(),isTouched:j,mode:c})]})]})},E=({id:e,properties:a,validationErrors:s={},formValue:i=null,readonly:o=!1,disabled:r=!1,touchedFields:l={},formSubmitted:c=!1,mode:d="test",onValueChange:m,onBlur:p,onFocus:h,className:b="",hideLabel:g=!1})=>{const[x,v]=t.useState(i),[y,j]=t.useState(!1),[C,N]=t.useState(""),[k,w]=t.useState(!1),[S,E]=t.useState(!1),[T,$]=t.useState({lat:40.7128,lng:-74.006}),[A,L]=t.useState(null),[I,R]=t.useState(10),[D,F]=t.useState(""),[V,O]=t.useState(!1),q=t.useRef(null),[z,M]=t.useState(!1),[_,P]=t.useState(null),[W,B]=t.useState(!1);t.useEffect(()=>{i?(v(i),i.latitude&&i.longitude&&(L({lat:i.latitude,lng:i.longitude,isCurrentLocation:!1}),$({lat:i.latitude,lng:i.longitude}))):(v(null),L(null))},[i]),t.useEffect(()=>{S&&40.7128===T.lat&&T.lng},[S,T]),t.useEffect(()=>{(o||r)&&(S&&E(!1),D&&F(""),z&&(M(!1),P(null)))},[o,r]);const U=t.useCallback(async(e,t)=>{B(!0);try{const n=await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${e}&lon=${t}&addressdetails=1&zoom=18`),a=await n.json();if(a&&a.address){const e=a.address;return{placeName:a.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:""}},[]),H=t.useCallback(async(t,n,a)=>{const s=await U(t,n),i={latitude:t,longitude:n,timestamp:Date.now(),placeName:s.placeName,city:s.city,country:s.country,address:s.placeName,...a};if(v(i),L({lat:t,lng:n,isCurrentLocation:!1}),w(!0),m){m({id:e,value:i,isValid:!0,errors:{}})}},[U,e,m]),J=t.useCallback(()=>{if(o||r)return;if(!navigator.geolocation)return void N("Geolocation is not supported by this browser.");j(!0),N("");const e={enableHighAccuracy:a.validation?.enableHighAccuracy??!0,timeout:a.validation?.timeout??1e4,maximumAge:a.validation?.maximumAge??3e5};navigator.geolocation.getCurrentPosition(async e=>{const t=e.coords.latitude,n=e.coords.longitude;L({lat:t,lng:n,isCurrentLocation:!0}),$({lat:t,lng:n}),w(!0),await H(t,n,{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)},[o,r,e,m,a]),Y=t.useCallback(()=>{if(!o&&!r&&(v(null),L(null),N(""),w(!0),m)){m({id:e,value:null,isValid:!0,errors:{}})}},[o,r,e,m]),G=t.useCallback(()=>{o||r||E(!S)},[o,r,S]),X=t.useCallback((e,t,n,a,s,i)=>{const o=e-s/2,r=t-i/2,l=156543.03392*Math.cos(n.lat*Math.PI/180)/Math.pow(2,a),c=o*l,d=r*l;return{lat:n.lat+d/111320,lng:n.lng+c/(111320*Math.cos(n.lat*Math.PI/180))}},[]),K=t.useCallback(e=>{o||r||!q.current||0===e.button&&(M(!0),P({x:e.clientX,y:e.clientY}),e.preventDefault())},[o,r]),Z=t.useCallback(e=>{if(!z||!_||!q.current)return;const t=e.clientX-_.x,n=e.clientY-_.y,a=156543.03392*Math.cos(T.lat*Math.PI/180)/Math.pow(2,I),s=-n*a/111320,i=t*a/(111320*Math.cos(T.lat*Math.PI/180));$({lat:T.lat+s,lng:T.lng+i}),P({x:e.clientX,y:e.clientY})},[z,_,T,I]),Q=t.useCallback(async e=>{if(!q.current)return;if(z&&_){const t=Math.abs(e.clientX-_.x),n=Math.abs(e.clientY-_.y);if(t>5||n>5)return M(!1),void P(null)}if(o||r)return M(!1),void P(null);const t=q.current.getBoundingClientRect(),n=e.clientX-t.left,a=e.clientY-t.top,{lat:s,lng:i}=X(n,a,T,I,t.width,t.height);await H(s,i),M(!1),P(null)},[o,r,q,T,I,X,H,z,_]),ee=t.useCallback(async t=>{if(t.trim()&&!o&&!r){O(!0),N("");try{const n=await fetch(`https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(t)}&limit=5&addressdetails=1`),a=await n.json();if(a&&a.length>0){const t=a[0],n=parseFloat(t.lat),s=parseFloat(t.lon),i=t.address||{},o={latitude:n,longitude:s,address:t.display_name,placeName:t.display_name,city:i.city||i.town||i.village||i.municipality||"",country:i.country||"",timestamp:Date.now()};if(v(o),L({lat:n,lng:s,isCurrentLocation:!1}),$({lat:n,lng:s}),w(!0),m){m({id:e,value:o,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)}}},[o,r,e,m]),te=()=>{h&&h()},ne=()=>{w(!0),p&&p()},ae=r||o||a?.validation?.readonly,se=a?.basic?.label||"Location",ie=a?.basic?.description||"";return u.jsxs("div",{className:`form-group ${g?"no-label":""} ${b}`,children:[!g&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[se,a?.validation?.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),ie&&u.jsx("div",{className:"form-group-description",children:ie}),u.jsxs("div",{className:"location-wrapper",children:[!(o&&x)&&u.jsxs("div",{className:"location-controls",children:[u.jsx("button",{type:"button",className:"location-btn "+(y?"loading":""),onClick:J,disabled:ae||y,onFocus:te,onBlur:ne,tabIndex:ae?-1:0,children:y?u.jsxs(u.Fragment,{children:[u.jsx(n.Loader2,{size:16,className:"loading-spinner"}),"Getting Location..."]}):u.jsxs(u.Fragment,{children:[u.jsx(n.Navigation,{size:16}),"Get Current Location"]})}),u.jsxs("button",{type:"button",className:"location-btn secondary",onClick:G,disabled:ae,onFocus:te,onBlur:ne,tabIndex:ae?-1:0,children:[u.jsx(n.MapPin,{size:16}),S?"Hide Map":"Choose on Map"]})]}),x&&u.jsxs("div",{className:"location-display",children:[!o&&u.jsx("button",{type:"button",className:"location-clear-btn",onClick:Y,disabled:ae,title:"Clear location",children:u.jsx(n.X,{size:16})}),x.placeName&&u.jsxs("div",{className:"location-place-name",children:[u.jsx("strong",{children:"Place:"})," ",x.placeName]}),(x.city||x.country)&&u.jsxs("div",{className:"location-address",children:[u.jsx("strong",{children:"Address:"})," ",[x.city,x.country].filter(Boolean).join(", ")]}),u.jsxs("div",{className:"location-coordinates",children:[u.jsx("strong",{children:"Coordinates:"})," ",(re=x.latitude,le=x.longitude,`${re.toFixed(6)}, ${le.toFixed(6)}`)]}),x.accuracy&&u.jsxs("div",{className:"location-accuracy",children:[u.jsx("strong",{children:"Accuracy:"})," ",(oe=x.accuracy,oe?`±${Math.round(oe)}m`:"")]}),x.timestamp&&u.jsxs("div",{className:"location-timestamp",children:[u.jsx("strong",{children:"Captured:"})," ",new Date(x.timestamp).toLocaleString()]})]}),S&&!o&&u.jsxs("div",{className:"location-map-container",children:[u.jsxs("div",{className:"location-map-header",children:[u.jsx("h4",{children:"Select Location on Map"}),u.jsx("p",{children:"Search for a place or click on the map to select a location"})]}),u.jsx("div",{className:"location-search",children:u.jsx("form",{onSubmit:e=>{e.preventDefault(),D.trim()&&ee(D)},className:"search-form",children:u.jsxs("div",{className:"search-input-group",children:[u.jsx("input",{type:"text",value:D,onChange:e=>{F(e.target.value)},placeholder:"Search for a place (e.g., New York, Paris, Tokyo)",className:"search-input",disabled:ae||V}),u.jsx("button",{type:"submit",className:"search-btn",disabled:ae||V||!D.trim(),children:V?u.jsx(n.Loader2,{size:16,className:"loading-spinner"}):"Search"})]})})}),u.jsxs("div",{ref:q,className:"location-map "+(z?"dragging":""),onMouseDown:K,onMouseMove:Z,onMouseUp:Q,onMouseLeave:()=>{M(!1),P(null)},style:{position:"relative",height:"400px",border:"2px solid var(--df-color-fb-border)",borderRadius:"8px",overflow:"hidden",cursor:z?"grabbing":"grab",background:`url(https://tile.openstreetmap.org/${I}/${Math.floor((T.lng+180)/360*Math.pow(2,I))}/${Math.floor((1-Math.log(Math.tan(T.lat*Math.PI/180)+1/Math.cos(T.lat*Math.PI/180))/Math.PI)/2*Math.pow(2,I))}.png) center/cover no-repeat`,userSelect:"none"},children:[A&&u.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:u.jsx(n.MapPin,{size:24})}),u.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}}),u.jsxs("div",{className:"map-controls",children:[u.jsx("button",{type:"button",className:"map-zoom-btn",onClick:()=>R(e=>Math.min(18,e+1)),disabled:I>=18,children:"+"}),u.jsx("button",{type:"button",className:"map-zoom-btn",onClick:()=>R(e=>Math.max(1,e-1)),disabled:I<=1,children:"−"})]})]}),u.jsxs("div",{className:"location-map-instructions",children:[u.jsx("p",{children:u.jsx("strong",{children:"Instructions:"})}),u.jsxs("ul",{children:[u.jsx("li",{children:"Search for a place using the search box above"}),u.jsx("li",{children:"Click anywhere on the map to select a location"}),u.jsx("li",{children:"Drag the map to pan around"}),u.jsx("li",{children:"Use the zoom buttons (+/−) to zoom in/out"}),u.jsx("li",{children:'Use "Get Current Location" to automatically detect your position'})]})]}),W&&u.jsxs("div",{className:"location-loading",children:[u.jsx(n.Loader2,{size:16,className:"loading-spinner"}),u.jsx("span",{children:"Loading address details..."})]})]}),C&&u.jsx("div",{className:"location-error",children:C})]}),u.jsx(f,{validationErrors:s,fieldId:e,touchedFields:l,formSubmitted:c,properties:a,localValidation:{isValid:!0,errors:{}},isTouched:k,mode:d})]});var oe,re,le},T=({id:e,properties:t,className:n="",hideLabel:a=!1})=>{const s=t.styles?.level??t.basic.level??1,i=t.basic.label,o=()=>{const e={};return t?.styles?.fontSize&&(e.fontSize=t.styles.fontSize),t?.styles?.color&&(e.color=t.styles.color),e};return a?null:(()=>{const a={id:e,className:`form-heading h${s} ${t?.styles?.textAlign?`text-${t.styles.textAlign}`:""} ${n}`.trim(),style:o()};switch(s){case 1:default:return u.jsx("h1",{...a,children:i});case 2:return u.jsx("h2",{...a,children:i});case 3:return u.jsx("h3",{...a,children:i});case 4:return u.jsx("h4",{...a,children:i});case 5:return u.jsx("h5",{...a,children:i});case 6:return u.jsx("h6",{...a,children:i})}})()},$=({id:e,properties:a,mode:s="preview",onValueChange:i,className:o="",hideLabel:r=!1})=>{const[l,c]=t.useState(""),[d,m]=t.useState(a.validation?.listStyle||"numbers"),[p,h]=t.useState("#000000"),f=t.useRef(null),b=t.useRef(null),g=t.useRef(!1),x="edit"===s,v=t.useRef({instructions:[],listStyle:"numbers"}),y=t.useRef(s);t.useEffect(()=>{const e=a.basic?.instructions||[],t=a.validation?.listStyle||"numbers",n=JSON.stringify(e)!==JSON.stringify(v.current.instructions)||t!==v.current.listStyle,i=s!==y.current;if(n||i){const a=e.some(e=>/<[^>]+>/.test(e));let o="";if(e.length>0)if(a)o=e.join("");else{const n="numbers"===t?"ol":"bullets"===t?"ul":"div",a=e.map(e=>`<li>${e.replace(/\n/g,"<br>")}</li>`).join("");o="div"===n?e.map(e=>`<div>${e.replace(/\n/g,"<br>")}</div>`).join(""):`<${n}>${a}</${n}>`}m(t),c(o),x&&f.current&&(i||n&&f.current.innerHTML.trim()!==o.trim())&&(f.current.innerHTML=o),v.current={instructions:e,listStyle:t},y.current=s}},[a.basic?.instructions,a.validation?.listStyle,s,x]),t.useEffect(()=>{if(x&&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,x]);const j=t.useCallback(()=>{if(!f.current)return;g.current=!0;const t=f.current.innerHTML.trim();if(i){i({id:e,value:{instructions:t?[t]:[],listStyle:d},isValid:!0,errors:{}})}t!==l&&c(t)},[e,d,i,l]),C=t.useCallback(()=>{if(!f.current)return;const t=f.current.innerHTML.trim();if(i){i({id:e,value:{instructions:t?[t]:[],listStyle:d},isValid:!0,errors:{}})}c(t),g.current=!1},[e,d,i]),N=t.useCallback((e,t)=>{document.execCommand(e,!1,t),f.current?.focus(),j()},[j]),k=t.useCallback(()=>{N("bold")},[N]),w=t.useCallback(()=>{N("italic")},[N]),S=t.useCallback(e=>{const t=e.target.value;h(t),N("foreColor",t)},[N]),E=t.useCallback(t=>{if(m(t),!f.current)return;const n=window.getSelection(),a=n&&n.rangeCount>0?n.getRangeAt(0):null;let s=f.current.innerHTML;if("numbers"===t){if(s=s.replace(/<ul>/gi,"<ol>").replace(/<\/ul>/gi,"</ol>"),!s.includes("<ol>")&&!s.includes("<ul>")){const e=s.split(/<br\s*\/?>/i).filter(e=>e.trim());e.length>0&&(s="<ol>"+e.map(e=>`<li>${e}</li>`).join("")+"</ol>")}}else if("bullets"===t){if(s=s.replace(/<ol>/gi,"<ul>").replace(/<\/ol>/gi,"</ul>"),!s.includes("<ol>")&&!s.includes("<ul>")){const e=s.split(/<br\s*\/?>/i).filter(e=>e.trim());e.length>0&&(s="<ul>"+e.map(e=>`<li>${e}</li>`).join("")+"</ul>")}}else s=s.replace(/<\/?[ou]l>/gi,"").replace(/<li>/gi,"<div>").replace(/<\/li>/gi,"</div>");if(f.current.innerHTML=s,c(s),a&&n)try{n.removeAllRanges(),n.addRange(a)}catch(e){}if(j(),i){i({id:e,value:{instructions:s?[s]:[],listStyle:t},isValid:!0,errors:{}})}},[e,j,i]),T=t.useCallback(e=>{const t=e.target.files?.[0];if(!t||!t.type.startsWith("image/"))return;const n=new FileReader;n.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 n=window.getSelection();if(n&&n.rangeCount>0){const t=n.getRangeAt(0);t.deleteContents(),t.insertNode(e)}else f.current.appendChild(e);j()}},n.readAsDataURL(t),b.current&&(b.current.value="")},[j]),$=t.useCallback(e=>{e.preventDefault();const t=e.clipboardData.getData("text/plain"),n=window.getSelection();if(n&&n.rangeCount>0){const e=n.getRangeAt(0);e.deleteContents();const a=document.createTextNode(t);e.insertNode(a),e.setStartAfter(a),e.collapse(!0),n.removeAllRanges(),n.addRange(e)}j()},[j]),A=t.useCallback(e=>document.queryCommandState(e),[]);return u.jsxs("div",{className:`form-group instruction-group ${o}`,children:[!r&&u.jsx("label",{htmlFor:e,className:"instruction-label",children:"Instructions"}),x?u.jsxs("div",{className:"instruction-rich-editor",children:[u.jsxs("div",{className:"instruction-toolbar",children:[u.jsxs("div",{className:"toolbar-group",children:[u.jsx("button",{type:"button",className:"toolbar-btn "+(A("bold")?"active":""),onClick:k,title:"Bold","aria-label":"Bold",children:u.jsx(n.Bold,{size:16})}),u.jsx("button",{type:"button",className:"toolbar-btn "+(A("italic")?"active":""),onClick:w,title:"Italic","aria-label":"Italic",children:u.jsx(n.Italic,{size:16})})]}),u.jsx("div",{className:"toolbar-separator"}),u.jsx("div",{className:"toolbar-group",children:u.jsxs("div",{className:"color-picker-wrapper",children:[u.jsx("input",{type:"color",value:p,onChange:S,className:"color-picker-input",title:"Text Color"}),u.jsx("label",{className:"color-picker-label",title:"Text Color",children:u.jsx("span",{style:{color:p},children:"A"})})]})}),u.jsx("div",{className:"toolbar-separator"}),u.jsxs("div",{className:"toolbar-group",children:[u.jsx("button",{type:"button",className:"toolbar-btn "+("bullets"===d?"active":""),onClick:()=>E("bullets"),title:"Bullet List","aria-label":"Bullet List",children:u.jsx(n.List,{size:16})}),u.jsx("button",{type:"button",className:"toolbar-btn "+("numbers"===d?"active":""),onClick:()=>E("numbers"),title:"Numbered List","aria-label":"Numbered List",children:u.jsx(n.ListOrdered,{size:16})})]}),u.jsx("div",{className:"toolbar-separator"}),u.jsxs("div",{className:"toolbar-group",children:[u.jsx("button",{type:"button",className:"toolbar-btn",onClick:()=>b.current?.click(),title:"Insert Image","aria-label":"Insert Image",children:u.jsx(n.Image,{size:16})}),u.jsx("input",{ref:b,type:"file",accept:"image/*",onChange:T,style:{display:"none"}})]})]}),u.jsx("div",{ref:f,contentEditable:!0,className:"instruction-editor-content",onInput:j,onBlur:C,onPaste:$,"data-placeholder":"Enter instructions (press Enter for a new line)...",suppressContentEditableWarning:!0})]}):u.jsx("div",{className:"instruction-preview-wrapper "+("numbers"===d?"instruction-list-numbers":"bullets"===d?"instruction-list-bullets":""),children:l?u.jsx("div",{className:"instruction-preview-content",dangerouslySetInnerHTML:{__html:l}}):u.jsx("div",{className:"instruction-empty",children:u.jsx("p",{children:"No instructions provided"})})})]})},A=({attachments:e,onRemove:a})=>{const[s,i]=t.useState(new Map);return t.useEffect(()=>{if(!e)return void i(e=>(e.forEach(e=>URL.revokeObjectURL(e)),new Map));const t=new Map;return e.forEach((e,n)=>{if(e.type.startsWith("image/")){const a=URL.createObjectURL(e);t.set(n,a)}}),i(e=>(e.forEach((e,n)=>{t.has(n)||URL.revokeObjectURL(e)}),t)),()=>{t.forEach(e=>URL.revokeObjectURL(e))}},[e]),e&&0!==e.length?u.jsx("div",{className:"attachment-thumbnails-container",children:e.map((e,t)=>{const i=e.type.startsWith("image/"),o=s.get(t);return u.jsx("div",{className:"attachment-thumbnail",children:i&&o?u.jsxs(u.Fragment,{children:[u.jsx("img",{src:o,alt:e.name}),u.jsx("button",{type:"button",className:"thumbnail-remove-btn",onClick:()=>a(t),title:"Remove attachment",children:u.jsx(n.X,{size:14})})]}):u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"file-icon-placeholder",children:u.jsx(n.Paperclip,{size:20})}),u.jsx("span",{className:"file-name",children:e.name}),u.jsx("button",{type:"button",className:"thumbnail-remove-btn",onClick:()=>a(t),title:"Remove attachment",children:u.jsx(n.X,{size:14})})]})},t)})}):null},L=({component:e,mode:a,formTemplateId:s,formValue:i,onNotesChange:o,onAttachmentChange:r,notes:l="",attachments:c=null,onThresholdActionCompletion:d,onThresholdIssueRaised:m,onBasicPropertyActionCompletion:p})=>{const[h,f]=t.useState(l||""),[g,x]=t.useState(c||null),[v,y]=t.useState(!1),[j,C]=t.useState(!1),[N,k]=t.useState(!1),[w,S]=t.useState(!1),[E,T]=t.useState(!1),$=t.useRef(null),L=t.useRef(i),I=t.useRef(!1),R=t.useRef(!1);t.useEffect(()=>{I.current||null==l||(f(l),I.current=!0)},[l]),t.useEffect(()=>{R.current||void 0===c||(x(c),R.current=!0)},[c]),t.useEffect(()=>{I.current&&!v&&null!=l&&(h&&""!==h.trim()&&l===h||f(l))},[l,v,h]),t.useEffect(()=>{R.current&&void 0!==c&&(!g||c&&c.length>0&&c!==g)&&x(c)},[c,g]),t.useEffect(()=>{const t=["select","radio","checkbox","segment"].includes(e.name||"");if(t){const t=L.current,n=i;let a=!1;if("checkbox"===e.name){const e=Array.isArray(t)?t:t?[t]:[],s=Array.isArray(n)?n:n?[n]:[];a=JSON.stringify(e.sort())!==JSON.stringify(s.sort())}else a=t!==n&&void 0!==t;a&&(k(!1),S(!1),C(!1),y(!1),T(!1),l&&""!==l.trim()||f(""),c&&0!==c.length||x(null)),L.current=n}t||(L.current=i)},[i,e.name,l,c]);const D=t.useCallback((e,t)=>{const{operator:n,value:a}=e,s=String(t).toLowerCase(),i=String(a).toLowerCase();switch(n){case"equals":return s===i||String(t)===String(a);case"notEquals":return s!==i&&String(t)!==String(a);case"greaterThan":return Number(t)>Number(a);case"lessThan":return Number(t)<Number(a);case"greaterThanOrEqual":return Number(t)>=Number(a);case"lessThanOrEqual":return Number(t)<=Number(a);default:return!1}},[]),F=t.useCallback(()=>{if(!(null!=i&&""!==i&&!(Array.isArray(i)&&0===i.length)))return[];const t=e.condition;if(!t||!t.conditions||0===t.conditions.length)return[];const n=[];if("checkbox"===e.name&&Array.isArray(i))i.forEach(e=>{const a=t.conditions.find(t=>D(t,e));a&&!n.find(e=>e.id===a.id)&&n.push(a)});else{const e=t.conditions.find(e=>D(e,i));e&&n.push(e)}return n},[e,i,D]),V=t.useCallback(t=>{const n=t.target.value;f(n),o&&o(n);const a=F(),s=n.trim().length>0;a.forEach(e=>{!0===e.enableNotes&&d&&d(e.id,"notes",s)});const i=e.condition;!(i&&i.conditions&&i.conditions.length>0)&&p&&p("notes",s)},[o,F,d,e,p]),O=t.useCallback(()=>{h.trim().length>0&&y(!1)},[h]),q=t.useCallback(()=>{y(!0)},[]),z=t.useCallback(()=>{y(!0)},[]),M=t.useCallback(()=>{$.current?.click()},[]),_=t.useCallback(t=>{const n=t.target.files;if(n&&n.length>0){const t=Array.from(n);x(t),r&&r(t);F().forEach(e=>{!0===e.enableAttachment&&d&&d(e.id,"attachments",!0)});const a=e.condition;!(a&&a.conditions&&a.conditions.length>0)&&p&&p("attachments",!0)}$.current&&($.current.value="")},[r,F,d,e,p]),P=t.useCallback(t=>{if(g){const n=g.filter((e,n)=>n!==t);if(0===n.length){x(null),r&&r(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 x(n),r&&r(n)}},[g,r,F,d,e,p]),W=t.useCallback(()=>{k(!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(()=>{k(!1)},3e3)},[F,d,e,p]),B=t.useCallback(()=>{C(!0)},[]),U=t.useCallback(()=>{C(!1)},[]),H=t.useCallback(()=>{C(!1),S(!0);const t=e.condition;if(t&&t.conditions&&t.conditions.length>0){F().forEach(e=>{!0===e.enableRaiseIssue&&m&&m(e.id)})}else p&&p("issue",!0)},[e,p,F,m]);if("test"!==a)return null;const J=["select","radio","checkbox","segment"].includes(e.name||""),Y=e.basic?.options||e.options||[];let G=!1,X=!1,K=!1,Z=!1,Q=null;const ee=null!=i&&""!==i&&!(Array.isArray(i)&&0===i.length),te=e.condition,ne=te&&te.conditions&&te.conditions.length>0;if(ne&&ee)if("checkbox"===e.name&&Array.isArray(i)){const e=i;for(const t of e){const e=te.conditions.find(e=>D(e,t));e&&(G=G||!0===e.enableNotes,X=X||!0===e.enableAttachment,K=K||!0===e.enableRaiseIssue,Z=Z||!0===e.enableSendEmail)}}else if(J){const e=te.conditions.find(e=>D(e,i));e&&(G=!0===e.enableNotes,X=!0===e.enableAttachment,K=!0===e.enableRaiseIssue,Z=!0===e.enableSendEmail)}else{const e=te.conditions.find(e=>D(e,i));e&&(G=!0===e.enableNotes,X=!0===e.enableAttachment,K=!0===e.enableRaiseIssue,Z=!0===e.enableSendEmail)}if(!ne){const t=!0===e.basic?.enableNotes,n=!0===e.basic?.enableAttachment,a=!0===e.basic?.enableRaiseIssue,s=!0===e.basic?.enableSendEmail;if(J&&ee)if("checkbox"===e.name){(Array.isArray(i)?i:[i]).forEach(e=>{const t=Y.find(t=>!(!t||!t.value)&&(t.value===e||(String(t.value)===String(e)||(t.label===e||String(t.label)===String(e)))));t&&(G=G||!0===t.enableNotes,X=X||!0===t.enableAttachment,K=K||!0===t.enableRaiseIssue,Z=Z||!0===t.enableSendEmail,Q||(Q=t))}),G=G||t,X=X||n,K=K||a,Z=Z||s}else if(Q=Y.find(e=>!(!e||!e.value)&&(e.value===i||(String(e.value)===String(i)||(e.label===i||String(e.label)===String(i))))),Q){const e=!0===Q.enableNotes,i=!0===Q.enableAttachment,o=!0===Q.enableRaiseIssue,r=!0===Q.enableSendEmail;G=e||t,X=i||n,K=o||a,Z=r||s}else G=t,X=n,K=a,Z=s;else G=t,X=n,K=a,Z=s}if(!(G||X||K||Z))return null;const ae=F(),se=e.condition,ie=se&&se.conditions&&se.conditions.length>0,oe=!!ie&&ae.some(e=>!0===e.enableNotes),re=!!ie&&ae.some(e=>!0===e.enableAttachment),le=!!ie&&ae.some(e=>!0===e.enableSendEmail),ce=!!ie&&ae.some(e=>!0===e.enableRaiseIssue),de=h.trim().length>0,ue=g&&g.length>0,me=g?g.length:0;return u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"component-action-features",children:[u.jsxs("div",{className:"action-icons-toolbar",children:[G&&u.jsxs("button",{type:"button",className:`action-icon-button ${de?"active":""} ${oe?"mandatory":""}`,onClick:q,title:"Add Notes",children:[u.jsx(n.MessageSquare,{size:14,fill:de?"currentColor":"none"}),oe&&u.jsx("span",{className:"mandatory-indicator",children:"*"})]}),X&&u.jsxs("button",{type:"button",className:`action-icon-button ${ue?"active":""} ${re?"mandatory":""}`,onClick:M,title:"Add Attachment",children:[u.jsx(n.Paperclip,{size:14,fill:ue?"currentColor":"none"}),me>0&&u.jsx("span",{className:"attachment-count-badge",children:me}),re&&u.jsx("span",{className:"mandatory-indicator",children:"*"})]}),Z&&u.jsxs("button",{type:"button",className:`action-icon-button ${N?"active sent":""} ${le?"mandatory":""}`,onClick:W,disabled:N,title:"Send Email",children:[N?u.jsx(u.Fragment,{children:u.jsx(n.Check,{size:14})}):u.jsx(n.Mail,{size:14,fill:N?"currentColor":"none"}),le&&u.jsx("span",{className:"mandatory-indicator",children:"*"})]}),K&&u.jsxs("button",{type:"button",className:`action-icon-button ${w?"active":""} ${ce?"mandatory":""}`,onClick:B,title:"Raise an Issue",children:[u.jsx(n.AlertCircle,{size:14,fill:w?"currentColor":"none"}),ce&&u.jsx("span",{className:"mandatory-indicator",children:"*"})]}),(de&&G||ue&&X)&&u.jsx("button",{type:"button",className:"action-icon-button accordion-toggle",onClick:()=>T(!E),title:E?"Collapse":"Expand",children:E?u.jsx(n.ChevronUp,{size:14}):u.jsx(n.ChevronDown,{size:14})})]}),v&&G&&u.jsx("div",{className:"notes-input-overlay",children:u.jsx("textarea",{className:"action-notes-textarea",value:h,onChange:V,onBlur:O,placeholder:"Explain which protocols were not followed",rows:4,autoFocus:!0})}),E&&u.jsxs("div",{className:"actions-content",children:[!v&&de&&G&&u.jsx("div",{className:"notes-summary-section",children:u.jsxs("div",{className:"notes-full-text",onClick:z,children:[u.jsx("span",{className:"notes-label",children:"Notes:"})," ",h]})}),ue&&X&&u.jsx("div",{className:"attachments-section",children:u.jsx(A,{attachments:g,onRemove:P})})]}),X&&u.jsx("input",{ref:$,type:"file",multiple:!0,accept:"image/*,.pdf",onChange:_,style:{display:"none"}})]}),j&&s&&u.jsx(b,{isOpen:j,onClose:U,onSuccess:H,component:Q?{...e,basic:{...e.basic,label:`${e.basic?.label||"Component"} - ${Q.label||Q.value}`,value:Q.value||e.basic?.value||""}}:e,formTemplateId:s,notes:h,attachments:g})]})},I=({attachments:e})=>e&&0!==e.length?u.jsx("div",{className:"attachment-thumbnails-container",children:e.map((e,t)=>{const a=e.type?.startsWith("image/")||!1,s=a?(e=>e.data?e.data.startsWith("data:")?e.data:`data:${e.type||"image/png"};base64,${e.data}`:"")(e):"";return u.jsx("div",{className:"attachment-thumbnail",children:a&&s?u.jsx("img",{src:s,alt:e.name||`Attachment ${t+1}`}):u.jsxs("div",{className:"file-icon-placeholder",children:[u.jsx(n.Paperclip,{size:20}),u.jsx("span",{className:"file-name",children:e.name||`File ${t+1}`})]})},t)})}):null,R=({component:e})=>{const t=e.basic?.notes||"",n=e.basic?.attachments||[],a=t&&t.trim().length>0,s=n&&n.length>0;return a||s?u.jsx("div",{className:"component-submission-actions",children:u.jsxs("div",{className:"actions-content",children:[a&&u.jsx("div",{className:"notes-summary-section",children:u.jsxs("div",{className:"notes-full-text",children:[u.jsx("span",{className:"notes-label",children:"Notes:"})," ",t]})}),s&&u.jsx("div",{className:"attachments-section",children:u.jsx(I,{attachments:n})})]})}):null},D=({child:e,selectedChild:t,mode:a,onChildSelect:o,onChildDelete:r,renderFormComponent:l,isOverlay:c=!1,isChildrenEditMode:d=!1,formData:m={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>{const x=m[e.id],v="preview"===a&&(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:k,isDragging:w,isSorting:S}=s.useSortable({id:e.id,disabled:c||"edit"!==a}),E={transform:i.CSS.Transform.toString(N),transition:k,opacity:w?.3:1,zIndex:w?1e3:"auto"};return u.jsxs("div",{ref:C,style:E,className:`form-component section-child ${t?.id===e.id?"selected":""} ${w?"dragging":""} ${S?"sorting":""} ${d?"children-edit-active":""}`,onClick:()=>!w&&o(e),role:"button",tabIndex:0,children:[("edit"===a||d)&&u.jsx("div",{className:"child-drag-handle",...j,...y,onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),children:u.jsx(n.GripVertical,{size:14})}),u.jsxs("div",{className:"form-component-content section-child-content",children:[("edit"===a||d)&&u.jsxs("div",{className:"component-actions child-actions",children:[u.jsx("button",{className:"btn edit-btn",onClick:t=>{t.stopPropagation(),o(e)},onMouseDown:e=>e.stopPropagation(),title:"Edit properties",children:u.jsx(n.Edit,{size:12})}),u.jsx("button",{className:"btn delete-btn",onClick:t=>r(e,t),onMouseDown:e=>e.stopPropagation(),title:"Delete component",children:u.jsx(n.Trash2,{size:12})})]}),u.jsxs("div",{className:"component-preview child-preview",children:[l(e),"test"===a&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&u.jsx(L,{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&&u.jsx(R,{component:e})]})]})]})},F=({id:e,properties:i,mode:o="edit",formData:r={},onValueChange:l,onSelect:c,isSelected:d=!1,className:m="",onSectionSelect:p,onChildSelect:h,onChildDelete:f,selectedChild:b,renderFormComponent:g,formTemplateId:N,onThresholdActionCompletion:S,onThresholdIssueRaised:E,onNotesChange:$,onAttachmentChange:A})=>{const[L,I]=t.useState(i.basic.collapsed),[R,F]=t.useState(!1),[V,O]=t.useState(!1),[q,z]=t.useState(i.basic.label),[M,_]=t.useState(i.basic.description),[P,W]=t.useState(i.children||[]),[B,U]=t.useState(!1);t.useEffect(()=>{W(i.children||[])},[i.children]),t.useEffect(()=>{z(i.basic.label),_(i.basic.description)},[i.basic.label,i.basic.description]);const{setNodeRef:H,isOver:J}=a.useDroppable({id:`section-${e}`,disabled:"edit"!==o}),Y=!("preview"!==o&&"test"!==o||i.children&&i.children.length>0),G=t.useCallback(t=>{z(t),l?.({id:e,value:{...i,basic:{...i.basic,label:t}}})},[e,i,l]),X=t.useCallback(t=>{_(t),l?.({id:e,value:{...i,basic:{...i.basic,description:t}}})},[e,i,l]),K=t.useCallback(e=>{h?.(e)},[h]),Z=t.useCallback((e,t)=>{t.stopPropagation();const n=P.filter(t=>t.id!==e.id);W(n),f?.(e.id)},[f,P,e]),Q=t.useCallback(()=>{p?.(i),c?.()},[p,c,i]),ee=t.useCallback(e=>{e.stopPropagation(),"edit"===o&&P.length>0&&U(!B)},[o,P.length,B]),te=t.useCallback(t=>{t.stopPropagation(),I(!L),l?.({id:e,value:{...i,basic:{...i.basic,collapsed:!L}}})},[L,e,i,l]),ne=g||t.useCallback(e=>{const t={id:e.id,properties:e,validationErrors:{},formValue:"test"===o?r[e.id]||"defaultValue"in e.basic&&e.basic.defaultValue||"":"defaultValue"in e.basic&&e.basic.defaultValue||"",touchedFields:{},formSubmitted:!1,mode:o,onValueChange:l,onBlur:()=>{},onFocus:()=>{}};switch(e.name){case"text-input":case"email-input":case"number-input":return u.jsx(x,{...t,properties:e,inputType:"text-input"===e.name?"text":"number-input"===e.name?"number":"email",readonly:"edit"===o||"preview"===o,disabled:"preview"===o});case"textarea":return u.jsx(v,{...t,properties:e,readonly:"edit"===o||"preview"===o,disabled:"preview"===o});case"select":const n={...e,options:e.basic?.options||[]};return u.jsx(y,{...t,properties:n,disabled:"edit"===o||"preview"===o});case"checkbox":const a={...e,options:e.basic?.options||[]};return u.jsx(j,{...t,properties:a,formValue:[],disabled:"edit"===o||"preview"===o});case"radio":const s={...e,options:e.basic?.options||[]};return u.jsx(C,{...t,properties:s,readonly:"edit"===o||"preview"===o,disabled:"edit"===o||"preview"===o});case"date":case"date-picker":case"datetime-picker":return u.jsx(k,{...t,properties:e,readonly:"edit"===o||"preview"===o,disabled:"preview"===o});case"signature":return u.jsx(w,{...t,properties:e});case"heading":return u.jsx(T,{...t,properties:e});default:return u.jsx("div",{className:"form-group",children:u.jsxs("div",{className:"form-group-label",children:["Unsupported Component: ",e.name]})})}},[o,l,r]);if(Y)return null;const ae={backgroundColor:i.styles.backgroundColor,borderColor:i.styles.borderColor,borderWidth:i.styles.borderWidth,borderRadius:i.styles.borderRadius,padding:i.styles.padding,margin:i.styles.margin};return u.jsxs("div",{ref:H,className:`df-form-section ${d?"selected":""} ${J?"drag-over":""} ${m}`,style:ae,children:[u.jsxs("div",{className:"section-header "+(B?"children-edit-mode":""),onClick:Q,onDoubleClick:ee,children:[u.jsx("div",{className:"section-header-content",children:u.jsxs("div",{className:"section-title",children:[u.jsx("span",{className:"section-toggle",title:L?"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:L?u.jsx(n.ChevronRight,{size:18}):u.jsx(n.ChevronDown,{size:18})}),"edit"===o&&R?u.jsx("input",{type:"text",value:q,onChange:e=>z(e.target.value),onBlur:()=>{F(!1),G(q)},onKeyDown:e=>{"Enter"===e.key&&(F(!1),G(q))},className:"section-title-input",autoFocus:!0}):u.jsx("h3",{className:"section-title-text",onDoubleClick:()=>"edit"===o&&F(!0),style:{display:"inline",margin:0},children:q||"Untitled Section"})]})}),(M||"edit"===o)&&u.jsx("div",{className:"section-description",children:"edit"===o&&V?u.jsx("textarea",{value:M,onChange:e=>_(e.target.value),onBlur:()=>{O(!1),X(M)},onKeyDown:e=>{"Enter"===e.key&&e.ctrlKey&&(O(!1),X(M))},className:"section-description-input",placeholder:"Section description (optional)",autoFocus:!0}):u.jsx("p",{className:"section-description-text",onDoubleClick:()=>"edit"===o&&O(!0),children:M||"Section description"})})]}),!L&&u.jsx("div",{className:`section-content ${J?"drag-over":""} ${0===P.length?"empty":"has-children"}`,onClick:e=>{e.target===e.currentTarget&&Q()},children:u.jsx(s.SortableContext,{items:P.map(e=>e.id),strategy:s.verticalListSortingStrategy,children:0===P.length?u.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:[u.jsx("div",{style:{fontWeight:"500",color:J?"#3b82f6":"#374151"},children:J?"Drop components here":"Empty Section"}),u.jsx("div",{style:{fontSize:"12px",color:"#9ca3af"},children:"Drag and drop components here to create your section"})]}):P.map(e=>u.jsx(D,{child:e,selectedChild:b||null,mode:o,onChildSelect:K,onChildDelete:Z,renderFormComponent:ne,isChildrenEditMode:B,formData:r,formTemplateId:N,onNotesChange:$,onAttachmentChange:A,onThresholdActionCompletion:S,onThresholdIssueRaised:E},e.id))})})]})},V=({component:e,selectedComponent:t,mode:a,onComponentSelect:o,onComponentDelete:r,onComponentEdit:l,renderFormComponent:c,isOverlay:d=!1,formData:m={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>{const x=m[e.id],v="preview"===a&&(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:k,isDragging:w,isSorting:S}=s.useSortable({id:e.id,disabled:d}),E={transform:i.CSS.Transform.toString(N),transition:k,opacity:w?.3:1,zIndex:w?1e3:"auto"};return u.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":""} ${S?"sorting":""}`,onClick:()=>!w&&o(e),role:"button",tabIndex:0,children:["edit"===a&&u.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:u.jsx(n.GripVertical,{size:12,color:"var(--df-color-text-light)"})}),u.jsxs("div",{className:"component-content",style:{paddingTop:"edit"===a?"24px":"0",paddingLeft:"edit"===a?"28px":"0",minHeight:"60px"},children:[c(e),"test"===a&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&u.jsx(L,{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&&u.jsx(R,{component:e})]}),"edit"===a&&u.jsxs("div",{className:"component-actions",style:{position:"absolute",top:"4px",right:"4px",display:"flex",gap:"4px",opacity:1,zIndex:10},children:[l&&u.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:u.jsx(n.Edit,{size:12})}),u.jsx("button",{className:"component-delete-btn",onClick:t=>{t.stopPropagation(),r(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:u.jsx(n.Trash2,{size:12})})]})]})},O=({gridComponents:e,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:o,onComponentUpdate:r,selectedComponent:l,renderFormComponent:c,gridId:d,formData:m={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>{const{setNodeRef:x,isOver:v}=a.useDroppable({id:`grid-drop-zone-${d}`,disabled:"edit"!==t});return u.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?u.jsxs(u.Fragment,{children:[u.jsx(s.SortableContext,{items:e.map(e=>e.id),strategy:s.horizontalListSortingStrategy,children:u.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=>u.jsx("div",{style:{flex:"1 1 0",minWidth:"200px",maxWidth:"100%"},children:u.jsx(V,{component:e,selectedComponent:l,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:o,onComponentUpdate:r,renderFormComponent:c,formData:m,formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})},e.id))})}),u.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?u.jsx("span",{style:{color:"#3b82f6",fontWeight:"500"},children:"Drop component here to add to grid"}):u.jsx("span",{children:"+ Drop more components here"})})]}):u.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:[u.jsx("div",{style:{fontWeight:"500",color:v?"var(--df-color-primary)":"var(--df-color-text-dark)"},children:v?"Drop components here":"Empty DataGrid"}),u.jsx("div",{style:{fontSize:"12px",color:"#9ca3af"},children:"Drag and drop components here to create your grid"})]})})},q=({templateComponents:e,dataEntries:t,renderFormComponent:n,mode:a="preview",allowAddRemoveEntries:s=!0,addAnotherText:i="Add Another",removeText:o="Remove",maxEntries:r=10,minEntries:l=1,displayAsGrid:c=!0,onAddEntry:d,onRemoveEntry:m,formData:p={},formTemplateId:h,onThresholdActionCompletion:f,onThresholdIssueRaised:b,onNotesChange:g,onAttachmentChange:x})=>0===e.length?u.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 ",c?"table":"list"," view."]}):c?u.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:[u.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 →"}),u.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:[u.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,n)=>u.jsx("div",{style:{padding:"12px 16px",fontWeight:"600",color:"var(--df-color-text-dark)",borderRight:n<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 ${n+1}`},`header-${t.id}`))}),t.length>0?t.map((i,r)=>u.jsxs("div",{className:"table-row",style:{display:"grid",gridTemplateColumns:`repeat(${e.length}, minmax(150px, 1fr))`,borderBottom:r<t.length-1?"1px solid var(--df-color-fb-border)":"none",backgroundColor:r%2==0?"var(--df-color-fb-container)":"var(--df-color-fb-bg)",position:"relative",minWidth:150*e.length+"px"},children:[e.map((t,a)=>{let s=i.components?.[a];if(s)s={...s,id:s.id,basic:{...s.basic,showLabel:!1}};else{const e=`${t.id}-entry-${r}-${a}`;s={...t,id:e,basic:{...t.basic,showLabel:!1}}}return u.jsx("div",{style:{padding:"12px 16px",borderRight:a<e.length-1?"1px solid var(--df-color-fb-border)":"none",minHeight:"60px",minWidth:"150px",display:"flex",alignItems:"center",overflow:"hidden"},children:u.jsx("div",{style:{width:"100%",minWidth:"120px",overflow:"hidden"},children:n(s,!0)})},`${i.id}-${a}`)}),"test"===a&&s&&t.length>l&&u.jsx("button",{onClick:()=>m?.(r),disabled:t.length<=l,style:{position:"absolute",top:"8px",right:"8px",padding:"4px 8px",backgroundColor:t.length<=l?"#f3f4f6":"#ef4444",color:t.length<=l?"#9ca3af":"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px",fontWeight:"500",cursor:t.length<=l?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",zIndex:10,minWidth:"24px",height:"24px",justifyContent:"center"},title:o,children:u.jsx("span",{style:{fontSize:"14px"},children:"×"})})]},i.id)):u.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"===a&&s?'Click "Add Another" to add entries.':"Use the properties panel to add entries."]})]}),"test"===a&&s&&u.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:u.jsxs("button",{onClick:d,disabled:t.length>=r,style:{padding:"8px 16px",backgroundColor:t.length>=r?"#f3f4f6":"#10b981",color:t.length>=r?"#9ca3af":"#ffffff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"500",cursor:t.length>=r?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"6px"},children:[u.jsx("span",{style:{fontSize:"16px"},children:"+"}),i]})})]}):u.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((i,r)=>u.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:[u.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px",paddingBottom:"8px",borderBottom:"1px solid var(--df-color-fb-border)"},children:[u.jsxs("span",{style:{fontWeight:"600",color:"var(--df-color-text-dark)",fontSize:"14px"},children:["Entry #",r+1]}),"test"===a&&s&&t.length>1&&u.jsx("button",{onClick:()=>m?.(r),disabled:t.length<=l,style:{padding:"4px 8px",backgroundColor:t.length<=l?"#f3f4f6":"#ef4444",color:t.length<=l?"#9ca3af":"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px",fontWeight:"500",cursor:t.length<=l?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",minWidth:"24px",height:"24px",justifyContent:"center"},title:o,children:u.jsx("span",{style:{fontSize:"14px"},children:"×"})})]}),u.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px"},children:e.map((e,t)=>{let s=i.components?.[t];if(s||(s=i.components?.find(t=>t.name===e.name&&t.basic?.label===e.basic?.label)),s)s={...s,id:s.id,basic:{...s.basic,showLabel:!1}};else{const n=`${e.id}-entry-${r}-${t}`;s={...e,id:n,basic:{...e.basic,showLabel:!1}}}return u.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[u.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}`}),u.jsxs("div",{style:{minHeight:"40px",display:"flex",alignItems:"center",flexDirection:"column",width:"100%"},children:[n(s),"test"===a&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(s.name)&&u.jsx(L,{component:s,mode:"test",formTemplateId:h,formValue:p[s.id],onThresholdActionCompletion:f,onThresholdIssueRaised:b,onNotesChange:g?e=>g(s.id,e):void 0,onAttachmentChange:x?e=>x(s.id,e):void 0}),"preview"===a&&(s.basic?.notes&&s.basic.notes.trim().length>0||s.basic?.attachments&&Array.isArray(s.basic.attachments)&&s.basic.attachments.length>0?u.jsx(R,{component:s}):null)]})]},`${i.id}-${t}`)})})]},i.id)):u.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"===a&&s?'Click "Add Another" to add entries.':"Use the properties panel to add entries."]}),"test"===a&&s&&u.jsx("div",{style:{padding:"16px",backgroundColor:"#f8f9fa",border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",display:"flex",justifyContent:"center"},children:u.jsxs("button",{onClick:d,disabled:t.length>=r,style:{padding:"8px 16px",backgroundColor:t.length>=r?"#f3f4f6":"#10b981",color:t.length>=r?"#9ca3af":"#ffffff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"500",cursor:t.length>=r?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"8px",transition:"all 0.2s ease"},onMouseEnter:e=>{t.length<r&&(e.currentTarget.style.backgroundColor="#059669")},onMouseLeave:e=>{t.length<r&&(e.currentTarget.style.backgroundColor="#10b981")},children:[u.jsx("span",{children:"+"}),i]})})]}),z=({id:e,properties:a,mode:s="edit",formData:i={},onValueChange:o,onSelect:r,isSelected:l=!1,className:c="",onDataGridSelect:d,onComponentSelect:m,onComponentDelete:p,onComponentEdit:h,onComponentUpdate:f,selectedComponent:b,renderFormComponent:g,onEntryAdd:N,onEntryRemove:S,formTemplateId:E,onThresholdActionCompletion:A,onThresholdIssueRaised:L,onNotesChange:I,onAttachmentChange:R})=>{const[D,F]=t.useState(!1),V=t.useRef(!1);let z=a.templateComponents||[];const M=a.entries||[];0===z.length&&M.length>0&&M[0].components&&(z=M[0].components.map(e=>({...e,id:e.id?.replace(/-entry-\d+$/,"")||e.id,basic:{...e.basic,showLabel:!0}}))),t.useEffect(()=>{if("edit"===s&&!a.templateComponents&&o&&V.current){const t={...a,templateComponents:[]};JSON.stringify(t)!==JSON.stringify(a)&&o({id:e,value:t})}V.current=!0},[a.templateComponents,e,o,a,s]),t.useEffect(()=>{if(z.length>0){if("edit"!==s||!V.current)return;if(M.some(e=>e.components?.some((t,n)=>{const a=`${z[n]?.id}-entry-${e.index}-${n}`;return t.id!==a}))&&o){const t=M.map(e=>({...e,components:e.components?.map((t,n)=>({...t,id:`${z[n]?.id}-entry-${e.index}-${n}`}))||[]})),n={...a,entries:t};return void(JSON.stringify(n)!==JSON.stringify(a)&&o({id:e,value:n}))}if(0===M.length){const t={id:`entry-${e}-0`,index:0,components:z.map((e,t)=>({...e,id:`${e.id}-entry-0-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}};if(o){const n={...a,entries:[t]};JSON.stringify(n)!==JSON.stringify(a)&&o({id:e,value:n})}}else{if(M.some(e=>z.some((t,n)=>{const a=e.components?.[n];if(!a)return!0;const s=`${t.id}-entry-${e.index}-${n}`,i=a.id===s,o=JSON.stringify(a.basic?.options)!==JSON.stringify(t.basic?.options)||a.basic?.placeholder!==t.basic?.placeholder||a.basic?.defaultValue!==t.basic?.defaultValue||a.basic?.label!==t.basic?.label||a.validation?.required!==t.validation?.required;return!i||o}))&&o){const t=M.map(e=>{const t=z.map((t,n)=>{let a=e.components?.[n];a||(a=e.components?.find(e=>e.name===t.name&&e.basic?.label===t.basic?.label));const s=`${t.id}-entry-${e.index}-${n}`;if(a){return{...t,id:s,basic:{...t.basic,showLabel:!1,value:a.basic?.value||t.basic?.defaultValue||""}}}return{...t,id:s,basic:{...t.basic,showLabel:!1}}});return{...e,components:t}}),n={...a,entries:t};JSON.stringify(n)!==JSON.stringify(a)&&o({id:e,value:n})}}}},[z,M,e,o,a,s,a.templateComponents]);const _=t.useCallback(e=>{e.stopPropagation(),r?.(),d?.(a)},[r,d,a]),P=t.useCallback((t,n)=>{n.stopPropagation(),p&&p(t,n);const s=z.filter(e=>e.id!==t.id),i=M.map(e=>({...e,components:e.components?.filter(e=>!(e.name===t.name&&e.basic?.label===t.basic?.label))||[]}));o&&o({id:e,value:{...a,templateComponents:s,entries:i}})},[p,a,o,e,z,M]),W=t.useCallback((t,n)=>{f&&f(t,n);const s=z.map(e=>e.id===t?{...e,...n}:e);o&&o({id:e,value:{...a,templateComponents:s}})},[f,a,o,e,z]),B=t.useCallback(e=>{"test"===s&&o&&o({id:e.id,value:e.value})},[s,o]),U=t.useCallback(()=>{const t={id:`entry-${a.entries.length}`,index:a.entries.length,components:z.map((e,t)=>({...e,id:`${e.id}-entry-${a.entries.length}-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}},n=[...a.entries,t];o&&o({id:e,value:{...a,entries:n}}),N?.()},[a,o,e,N,z]),H=t.useCallback(t=>{const n=a.entries.filter((e,n)=>n!==t).map((t,n)=>({...t,index:n,id:`entry-${e}-${n}`}));o&&o({id:e,value:{...a,entries:n}})},[a,o,e,S]),J=t.useCallback((e,t=!1)=>{const n="test"===s?i[e.id]||"defaultValue"in e.basic&&e.basic.defaultValue||"":"defaultValue"in e.basic&&e.basic.defaultValue||"",a={id:e.id,properties:e,validationErrors:{},formValue:n,touchedFields:{},formSubmitted:!1,mode:s,hideLabel:t,onValueChange:B,onBlur:()=>{},onFocus:()=>{}};switch(e.name){case"text-input":case"email-input":case"number-input":return u.jsx(x,{...a,properties:e,inputType:"text-input"===e.name?"text":"number-input"===e.name?"number":"email",readonly:"edit"===s||"preview"===s,disabled:"preview"===s,hideLabel:t});case"textarea":return u.jsx(v,{...a,properties:e,readonly:"edit"===s||"preview"===s,disabled:"preview"===s,hideLabel:t});case"select":const n={...e,options:e.basic?.options||[]};return u.jsx(y,{...a,properties:n,disabled:"edit"===s||"preview"===s,hideLabel:t});case"checkbox":const i={...e,options:e.basic?.options||[]};return u.jsx(j,{...a,properties:i,formValue:[],disabled:"edit"===s||"preview"===s,hideLabel:t});case"radio":const o={...e,options:e.basic?.options||[]};return u.jsx(C,{...a,properties:o,readonly:"edit"===s||"preview"===s,disabled:"edit"===s||"preview"===s,hideLabel:t});case"date":case"date-picker":case"datetime-picker":return u.jsx(k,{...a,properties:e,readonly:"edit"===s||"preview"===s,disabled:"preview"===s,hideLabel:t});case"signature":return u.jsx(w,{...a,properties:e,hideLabel:t});case"heading":return u.jsx(T,{...a,properties:e,hideLabel:t});case"instructions":return u.jsx($,{...a,properties:e,hideLabel:t});default:return u.jsxs("div",{className:"unknown-component",children:["Unknown component: ",e.name]})}},[s,B]),Y={backgroundColor:a.styles.backgroundColor||"var(--df-color-fb-container)",borderColor:a.styles.borderColor||"var(--df-color-fb-border)",borderWidth:a.styles.borderWidth||"2px",borderRadius:a.styles.borderRadius||"8px",padding:a.styles.padding||"16px",margin:a.styles.margin||"16px 0"};return u.jsxs("div",{className:`form-group df-form-datagrid ${l?"selected":""} ${c}`,onClick:_,style:Y,children:[u.jsx("div",{className:"grid-header",children:u.jsx("div",{className:"grid-title",onClick:t=>{t.stopPropagation(),F(!D),o?.({id:e,value:{...a,basic:{...a.basic,collapsed:!D}}})},children:u.jsxs("div",{className:"title-content",style:{display:"flex",alignItems:"center",gap:"8px"},children:[D?u.jsx(n.ChevronRight,{size:16}):u.jsx(n.ChevronDown,{size:16}),u.jsx(n.Grid,{size:16}),u.jsx("span",{className:"grid-label",style:{fontWeight:"600"},children:a.basic.label}),a.validation.required&&u.jsx("span",{className:"required-indicator",style:{color:"#ef4444"},children:"*"})]})})}),a.basic.description&&!D&&u.jsx("div",{className:"grid-description",style:{marginTop:"8px",color:"var(--df-color-text-light)",fontSize:"14px"},children:a.basic.description}),!D&&u.jsx("div",{className:"grid-content",style:{marginTop:"16px"},children:"edit"===s?u.jsx(O,{gridComponents:z,mode:s,onComponentSelect:m||(()=>{}),onComponentDelete:P,onComponentEdit:h,onComponentUpdate:W,selectedComponent:b||null,renderFormComponent:g||J,gridId:e,formData:i,formTemplateId:E,onThresholdActionCompletion:A,onThresholdIssueRaised:L,onNotesChange:I,onAttachmentChange:R}):u.jsx(q,{templateComponents:z,dataEntries:M,renderFormComponent:g||J,mode:s,allowAddRemoveEntries:a.datagrid?.allowAddRemoveEntries??!0,addAnotherText:a.datagrid?.addAnotherText??"Add Entry",removeText:a.datagrid?.removeText??"Remove",maxEntries:a.datagrid?.maxEntries??10,minEntries:a.datagrid?.minEntries??1,displayAsGrid:a.datagrid?.displayAsGrid??!0,onAddEntry:N||U,onRemoveEntry:S||H,formData:i,formTemplateId:E,onThresholdActionCompletion:A,onThresholdIssueRaised:L,onNotesChange:I,onAttachmentChange:R})})]})},M=t.lazy(()=>Promise.resolve().then(function(){return J})),_=e=>e.id?e:{...e,id:o.v4()},P=({component:e,mode:t,renderFormComponent:n,formData:a={},formTemplateId:s,onThresholdActionCompletion:i,onNotesChange:o,onAttachmentChange:r})=>{const l=a[e.id],c="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 u.jsxs("div",{className:"simple-table-component",children:[n(e),"test"===t&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&u.jsx(L,{component:e,mode:"test",formTemplateId:s,formValue:l,onThresholdActionCompletion:i,onNotesChange:o?t=>o(e.id,t):void 0,onAttachmentChange:r?t=>r(e.id,t):void 0}),c&&u.jsx(R,{component:e})]})},W=({component:e,selectedComponent:t,mode:a,onComponentSelect:o,onComponentDelete:r,onComponentEdit:l,renderFormComponent:c,isOverlay:d=!1})=>{const{attributes:m,listeners:p,setNodeRef:h,transform:f,transition:b,isDragging:g,isSorting:x}=s.useSortable({id:e.id,disabled:d}),v={transform:i.CSS.Transform.toString(f),transition:b,opacity:g?.3:1,zIndex:g?1e3:"auto"};return u.jsxs("div",{ref:h,style:v,className:`form-component table-component ${t?.id===e.id?"selected":""} ${g?"dragging":""} ${x?"sorting":""}`,onClick:()=>!g&&o(e),role:"button",tabIndex:0,children:["edit"===a&&u.jsx("div",{className:"component-drag-handle",...p,...m,onClick:e=>e.stopPropagation(),style:{opacity:1},children:u.jsx(n.GripVertical,{size:14})}),u.jsx("div",{className:"component-content",children:c(e)}),"edit"===a&&u.jsxs("div",{className:"component-actions",style:{opacity:1},children:[l&&u.jsx("button",{className:"component-edit-btn",onClick:t=>{t.stopPropagation(),l(e)},type:"button",title:"Edit Component",children:u.jsx(n.Edit,{size:12})}),u.jsx("button",{className:"component-delete-btn",onClick:t=>{t.stopPropagation(),r(e,t)},type:"button",title:"Delete Component",children:u.jsx(n.Trash2,{size:12})})]})]})},B=({cell:e,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:r,selectedComponent:l,renderFormComponent:c,formData:d={},formTemplateId:m,onThresholdActionCompletion:p,tableId:h,onNotesChange:f,onAttachmentChange:b})=>{const g=`table-cell-${h}-${e.row}-${e.column}`,{setNodeRef:x,isOver:v}=a.useDroppable({id:g,disabled:"edit"!==t,data:{type:"table-cell",tableId:h,cell:e,row:e.row,column:e.column}}),y={...e.styles,backgroundColor:v?"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":v?"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 u.jsx("td",{ref:x,style:y,className:"table-cell "+(v?"drag-over":""),children:u.jsx("div",{className:"cell-content",children:e.components.length>0?"edit"===t?u.jsx(s.SortableContext,{items:e.components.map(e=>e.id||o.v4()),strategy:s.verticalListSortingStrategy,children:e.components.map(e=>{const a=_(e);return u.jsx(W,{component:a,selectedComponent:l,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:r,renderFormComponent:c},a.id)})}):e.components.map(e=>{const n=_(e);return u.jsx(P,{component:n,mode:t,renderFormComponent:c,formData:d,formTemplateId:m,onThresholdActionCompletion:p,onNotesChange:f,onAttachmentChange:b},n.id)}):"edit"===t?u.jsx("div",{className:"empty-cell-placeholder",children:u.jsxs("div",{className:"cell-info",children:[u.jsx("span",{className:"drop-zone-text",children:"Drag and Drop a form component"}),u.jsxs("span",{className:"cell-coordinates",children:["Cell (",e.row+1,", ",e.column+1,")"]})]})}):u.jsx("div",{style:{minHeight:"20px",backgroundColor:"transparent",visibility:"hidden"},children:" "})})})},U=({id:e,properties:a,mode:s="edit",formData:i={},onValueChange:o,onSelect:r,isSelected:l=!1,className:c="",onTableSelect:d,onComponentSelect:m,onComponentDelete:p,onComponentEdit:h,selectedComponent:f,renderFormComponent:b,formTemplateId:g,onThresholdActionCompletion:N,onNotesChange:S,onAttachmentChange:E})=>{const[$,A]=t.useState(!1),L=a.cells?.some(e=>e.some(e=>e.components&&e.components.length>0))||!1;t.useEffect(()=>{const t=a.table?.rows||a.basic?.rows||3,n=a.table?.columns||a.basic?.columns||3,s=a.cells||[];if(0===s.length||s.length!==t||s.length>0&&s[0].length!==n){const i=[];for(let e=0;e<t;e++){const t=[];for(let a=0;a<n;a++){const n=`cell-${e}-${a}`;let i=[];s[e]&&s[e][a]&&(i=(s[e][a].components||[]).map(_)),t.push({id:n,row:e,column:a,components:i,styles:{}})}i.push(t)}o&&o({id:e,value:{...a,cells:i}})}},[a.table?.rows,a.table?.columns,a.basic?.rows,a.basic?.columns,a.cells,e,o]);const I=t.useCallback(e=>{e.stopPropagation(),r?.(),d?.(a)},[r,d,a]),R=t.useCallback((t,n)=>{n.stopPropagation();const s=a.cells.map(e=>e.map(e=>{if(e.components&&e.components.some(e=>e.id===t.id)){const n=e.components.filter(e=>e.id!==t.id);return{...e,components:n}}return e}));o&&o({id:e,value:{...a,cells:s}})},[p,a,o,e]),D=a.cells?a.cells.map(e=>e.map(e=>({...e,components:e.components?.map(e=>e.id?e:{...e,id:`table-cell-${e.name}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`})||[]}))):[];t.useEffect(()=>{D.length>0&&JSON.stringify(D)!==JSON.stringify(a.cells)&&o?.({id:e,value:{...a,cells:D}})},[D,a.cells,e,o]);const F=b||t.useCallback(e=>{const t=_(e),n={id:t.id,properties:t,validationErrors:{},formValue:i[t.id]||"defaultValue"in t.basic&&t.basic.defaultValue||"",touchedFields:{},formSubmitted:!1,mode:s,onValueChange:e=>{o?.(e)},onBlur:()=>{},onFocus:()=>{}};switch(t.name){case"text-input":case"email-input":case"number-input":return u.jsx(x,{...n,properties:t,inputType:"text-input"===t.name?"text":"number-input"===t.name?"number":"email",readonly:"edit"===s||"preview"===s,disabled:"preview"===s});case"textarea":return u.jsx(v,{...n,properties:t,readonly:"edit"===s||"preview"===s,disabled:"preview"===s});case"select":const e={...t,options:t.basic?.options||[]};return u.jsx(y,{...n,properties:e,disabled:"edit"===s||"preview"===s});case"checkbox":const a={...t,options:t.basic?.options||[]};return u.jsx(j,{...n,properties:a,formValue:[],disabled:"edit"===s||"preview"===s});case"radio":const i={...t,options:t.basic?.options||[]};return u.jsx(C,{...n,properties:i,readonly:"edit"===s||"preview"===s,disabled:"edit"===s||"preview"===s});case"date":case"date-picker":case"datetime-picker":return u.jsx(k,{...n,properties:t,readonly:"edit"===s||"preview"===s,disabled:"preview"===s});case"signature":return u.jsx(w,{...n,properties:t});case"heading":return u.jsx(T,{...n,properties:t});default:return u.jsxs("div",{className:"unknown-component",children:["Unknown component: ",t.name]})}},[s]),V={backgroundColor:a.styles?.backgroundColor||"var(--df-color-fb-container)",borderColor:a.styles?.borderColor||"var(--df-color-fb-border)",borderWidth:a.styles?.borderWidth||"2px",borderRadius:a.styles?.borderRadius||"8px",padding:a.styles?.padding||"16px",margin:a.styles?.margin||"16px 0"},O={width:"100%",minWidth:"600px",borderCollapse:"preview"===s||"test"===s?"separate":"collapse",tableLayout:"fixed",border:"preview"===s||"test"===s?"1px solid var(--df-color-fb-border)":"none"};return L||"preview"!==s?u.jsxs("div",{className:`form-group df-form-table ${l?"selected":""} ${"preview"===s?"preview-mode":"test"===s?"test-mode":""} ${c}`,onClick:I,style:V,children:[u.jsx("div",{className:"table-header",children:u.jsx("div",{className:"table-title",onClick:t=>{t.stopPropagation(),A(!$),o?.({id:e,value:{...a,basic:{...a.basic||{},collapsed:!$}}})},children:u.jsxs("div",{className:"title-content",children:[$?u.jsx(n.ChevronRight,{size:16}):u.jsx(n.ChevronDown,{size:16}),u.jsx(n.Table,{size:16}),u.jsx("span",{className:"table-label",children:a.basic?.label||"Table"}),a.validation?.required&&u.jsx("span",{className:"required-indicator",children:"*"})]})})}),a.basic?.description&&!$&&u.jsx("div",{className:"table-description",children:a.basic.description}),!$&&u.jsxs("div",{className:"table-content",children:[null,u.jsxs("table",{style:O,children:[a.table?.displayAsTable&&("edit"===s||a.table?.showColumns)&&u.jsx("thead",{children:u.jsx("tr",{className:"table-header-row",children:Array.from({length:a.table?.columns||a.basic?.columns||3},(e,t)=>{const n=(a.table?.columnNames?.split(",").map(e=>e.trim())||[])[t]||`Column ${t+1}`;return u.jsx("th",{className:"table-header-cell",style:{backgroundColor:(a.styles.headerBackgroundColor,"var(--df-color-fb-container)"),color:a.styles.headerTextColor||"var(--df-color-text-dark)",padding:"12px",border:"1px solid var(--df-color-fb-border)",fontWeight:"600",fontSize:"14px",textAlign:"center"},children:n},`header-${t}`)})})}),u.jsx("tbody",{children:a.cells?.map((t,n)=>u.jsx("tr",{className:"table-row",children:t.map(t=>u.jsx(B,{cell:t,mode:s,onComponentSelect:m||(()=>{}),onComponentDelete:R,onComponentEdit:h,selectedComponent:f||null,renderFormComponent:F,formData:i,formTemplateId:g,onThresholdActionCompletion:N,tableId:e,onNotesChange:S,onAttachmentChange:E},t.id))},n))})]})]})]}):null};var H,J=Object.freeze({__proto__:null,DfFormTable:U,default:U});exports.ELabelAlignment=void 0,(H=exports.ELabelAlignment||(exports.ELabelAlignment={})).Top="top",H.Left="left",exports.ComponentActionFeatures=L,exports.ComponentSubmissionActions=R,exports.DfFormCheckbox=j,exports.DfFormComments=({comment:e="",onSave:n,placeholder:a="Enter your reason...",className:s="",disabled:i=!1})=>{const[o,r]=t.useState(!0),[l,c]=t.useState(e),[d,m]=t.useState(!1);t.useEffect(()=>{c(e),m(!1)},[e]);const p=t.useCallback(t=>{const n=t.target.value;c(n),m(n!==e)},[e]),h=t.useCallback(()=>{d&&n&&!i&&(n(l),m(!1))},[d,n,l,i]),f=t.useCallback(()=>{},[]),b=t.useCallback(()=>{i||r(!o)},[o,i]);return u.jsxs("div",{className:`df-form-comments ${s}`,children:[u.jsxs("div",{className:"df-form-comments__header",children:[u.jsx("h3",{className:"df-form-comments__title",children:"Comments"}),u.jsx("button",{className:"df-form-comments__toggle",type:"button",onClick:b,"aria-expanded":o,"aria-label":"Toggle comments section",disabled:i,children:o?u.jsx("span",{className:"df-form-comments__toggle-icon",children:"▼"}):u.jsx("span",{className:"df-form-comments__toggle-icon",children:"▶"})})]}),u.jsx("div",{className:"df-form-comments__content "+(o?"df-form-comments__content--expanded":""),children:u.jsx("div",{className:"df-form-comments__input-container",children:u.jsx("div",{className:"df-form-comments__input-line",children:u.jsx("input",{type:"text",id:"comment-input",className:"df-form-comments__input",value:l,onChange:p,onBlur:h,onFocus:f,placeholder:a,disabled:i})})})})]})},exports.DfFormDataGrid=z,exports.DfFormDateTime=k,exports.DfFormErrorMsg=f,exports.DfFormFileUpload=S,exports.DfFormHeading=T,exports.DfFormInput=x,exports.DfFormInstruction=$,exports.DfFormLocation=E,exports.DfFormPreview=({formComponents:e=[],currentDevice:n="desktop",isPreviewMode:a=!1,initialFormData:s=[],onSubmit:i,onFormDataChange:o,formTitle:r,formDescription:l,formTemplateId:c,onComponentSelect:d,onComponentDelete:m,onComponentEdit:f,onComponentUpdate:b,selectedComponent:g})=>{const[A,I]=t.useState({}),[D,V]=t.useState({}),[O,q]=t.useState(!1),[_,P]=t.useState({}),[W,B]=t.useState({}),[U,H]=t.useState(new Set),[J,Y]=t.useState(new Map),[G,X]=t.useState({isValid:!0});t.useEffect(()=>{Z()},[e,s]);const K=(e,t)=>{e.forEach(e=>{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,n)=>{e.forEach((e,n)=>{e.components&&Array.isArray(e.components)&&K(e.components,t)})}),e.entries&&Array.isArray(e.entries)&&e.entries.forEach((e,n)=>{e.components&&Array.isArray(e.components)&&K(e.components,t)}),e.children&&Array.isArray(e.children)&&K(e.children,t)})},Z=t.useCallback(()=>{const t={};s&&s.length>0&&K(s,t),e&&e.length>0&&K(e,t),I(t),ee()},[s,e]),Q=(t,n)=>{t.forEach(t=>{if(t.id)if("table"===t.name||"datagrid"===t.name)n[t.id]=!0;else if(t.conditional){const a=p.evaluateConditionalLogic(t.conditional,e,A);n[t.id]=a.shouldShow}else n[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,n)})}),t.entries&&Array.isArray(t.entries)&&t.entries.forEach(e=>{e.components&&Array.isArray(e.components)&&Q(e.components,n)}),t.children&&Array.isArray(t.children)&&Q(t.children,n)})},ee=t.useCallback(()=>{const t={};e&&e.length>0&&Q(e,t),B(t)},[e,A]),te=t.useCallback(t=>{const n=e.find(e=>e.id===t);if(n&&("table"===n.name||"datagrid"===n.name))return!0;return!1!==W[t]},[W,e]),ne=t.useCallback(t=>{const n={...A,[t.id]:t.value};I(n);const a=e.find(e=>e.id===t.id);if(a){const e=a?.threshold;e&&e.conditions&&e.conditions.length>0&&H(t=>{const n=new Set(t);return e.conditions.forEach(e=>{n.delete(e.id)}),n})}const s=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:s(e.children)}:"table"===e.name&&e.cells?{...e,cells:e.cells.map(e=>e.map(e=>{const t={...e};return t.components&&(t.components=s(t.components)),t}))}:"datagrid"===e.name&&e.entries?{...e,entries:e.entries.map(e=>{const t={...e};return t.components&&(t.components=s(t.components)),t})}:e),i=s(e);o?.(i),D[t.id]&&V(e=>({...e,[t.id]:""})),setTimeout(()=>{const t={};e.forEach(a=>{if("table"===a.name||"datagrid"===a.name)t[a.id]=!0;else if(a.conditional){const s=p.evaluateConditionalLogic(a.conditional,e,n);t[a.id]=s.shouldShow}else t[a.id]=!0}),B(t)},0)},[e,A,D,o]),ae=t.useCallback(e=>{P(t=>({...t,[e]:!0})),ie(e)},[]),se=t.useCallback(e=>{D[e]&&V(t=>({...t,[e]:""}))},[D]),ie=t.useCallback(t=>{if(a)return;const n=e.find(e=>e.id===t);if(!n)return;const s=A[t]||"";let i=!1;i=Array.isArray(s)?s.length>0:"string"==typeof s?""!==s.trim():null!=s;let o="";if(n.validation.required&&!i){const e=n.validation.customValidationMessage,t=n.basic.label||"This field";o=e||`${t} is required`}else if("email-input"===n.name&&i&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(s)){const e=n.validation.customValidationMessage,t=n.basic.label||"This field";o=e||`${t} must be a valid email`}else if(n.validation.minLength&&i&&s.length<n.validation.minLength){const e=n.validation.customValidationMessage,t=n.basic.label||"This field";o=e||`${t} must be at least ${n.validation.minLength} characters`}else if(n.validation.maxLength&&i&&s.length>n.validation.maxLength){const e=n.validation.customValidationMessage,t=n.basic.label||"This field";o=e||`${t} must be no more than ${n.validation.maxLength} characters`}else if("number-input"===n.name&&i){const e=parseFloat(s);if(isNaN(e)){const e=n.validation.customValidationMessage,t=n.basic.label||"This field";o=e||`${t} must be a valid number`}else{const t=n.validation;if(void 0!==t.lowerLimit&&e<t.lowerLimit){const e=n.validation.customValidationMessage,a=n.basic.label||"This field";o=e||`You are under the limit. ${a} must be at least ${t.lowerLimit}`}else if(void 0!==t.upperLimit&&e>t.upperLimit){const e=n.validation.customValidationMessage,a=n.basic.label||"This field";o=e||`You crossed the limit. ${a} must be no more than ${t.upperLimit}`}}}V(e=>({...e,[t]:o}))},[e,a,A]),oe=t.useCallback(()=>e.every(e=>{const t=A[e.id]||"";let n=!1;return n=Array.isArray(t)?t.length>0:"string"==typeof t?""!==t.trim():null!=t,!(e.validation.required&&!n)}),[e,A]),re=t.useCallback((e,t)=>{if(Array.isArray(t))return t.some(t=>re(e,t));if(null==t||""===t)return!1;const n="string"==typeof t?parseFloat(t):t,a="string"==typeof e.value?parseFloat(e.value):e.value;if(!isNaN(n)&&!isNaN(a))switch(e.operator){case"greaterThan":return n>a;case"lessThan":return n<a;case"greaterThanOrEqual":return n>=a;case"lessThanOrEqual":return n<=a;case"equals":return n===a;case"notEquals":return n!==a;default:return!1}const s=String(t).toLowerCase(),i=String(e.value).toLowerCase();switch(e.operator){case"equals":return s===i||String(t)===String(e.value);case"notEquals":return s!==i&&String(t)!==String(e.value);default:return!1}},[]),le=t.useCallback(()=>{if(a)return[];const t=[];return e.forEach(e=>{const n=e?.condition;if(!n||!n.conditions||0===n.conditions.length)return;const a=A[e.id];null!=a&&""!==a&&!(Array.isArray(a)&&0===a.length)&&n.conditions.forEach(n=>{re(n,a)&&t.push({componentId:e.id,condition:n,componentLabel:e.basic?.label||"Field"})})}),t},[e,A,a,re]),ce=t.useCallback(()=>{if(a)return{isValid:!0};const e=le();if(0===e.length)return{isValid:!0};for(const{condition:t,componentLabel:n}of e){const e=J.get(t.id)||{notesCompleted:!1,attachmentsCompleted:!1,emailSent:!1},a=[];if(!0!==t.enableRaiseIssue||U.has(t.id)||a.push("raise an issue"),!0!==t.enableNotes||e.notesCompleted||a.push("add notes"),!0!==t.enableAttachment||e.attachmentsCompleted||a.push("add attachments"),!0!==t.enableSendEmail||e.emailSent||a.push("send email"),a.length>0){return{isValid:!1,errorMessage:`Please ${1===a.length?a[0]:a.slice(0,-1).join(", ")+" and "+a[a.length-1]} for the threshold condition met in "${n}". You cannot submit the form until all required actions are completed.`}}}return{isValid:!0}},[a,le,U,J]),de=t.useCallback(e=>{e&&H(t=>{const n=new Set(t);return n.add(e),n})},[]),ue=t.useCallback((e,t,n)=>{e&&Y(a=>{const s=new Map(a),i=s.get(e)||{notesCompleted:!1,attachmentsCompleted:!1,emailSent:!1};return"notes"===t?s.set(e,{...i,notesCompleted:n}):"attachments"===t?s.set(e,{...i,attachmentsCompleted:n}):"email"===t&&s.set(e,{...i,emailSent:n}),s})},[]);t.useEffect(()=>{if(!a){const e=ce();X(e)}},[A,U,J,a,ce]);const me=t.useCallback(()=>{if(a)return!0;let t=!0;q(!0);const n={};return e.forEach(e=>{const a=A[e.id]||"";let s=!1;if(s=Array.isArray(a)?a.length>0:"string"==typeof a?""!==a.trim():null!=a,e.validation.required&&!s){const a=e.validation.customValidationMessage,s=e.basic.label||"This field",i=a||`${s} is required`;n[e.id]=i,t=!1}else n[e.id]="";P(t=>({...t,[e.id]:!0}))}),V(n),t},[e,a,A]),pe=t.useCallback(()=>{if(q(!0),!me()){const t=e.find(e=>{const t=A[e.id]||"";let n=!1;return n=Array.isArray(t)?t.length>0:"string"==typeof t?""!==t.trim():null!=t,e.validation.required&&!n});if(t){const e=document.getElementById(t.id);e&&e.focus()}return}const t=ce();if(!t.isValid){t.errorMessage&&h.showError(t.errorMessage);const e=le().find(({condition:e})=>!U.has(e.id));if(e){const t=document.getElementById(e.componentId);t&&t.scrollIntoView({behavior:"smooth",block:"center"})}return}const n=e=>e.map(e=>{let t=A[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 a={...e,basic:{...e.basic,value:t,defaultValue:t}};return"section"===a.name&&a.children&&(a.children=n(a.children)),"table"===a.name&&a.cells&&(a.cells=a.cells.map(e=>e.map(e=>{const t={...e};return t.components&&(t.components=n(t.components)),t}))),"datagrid"===a.name&&a.entries&&(a.entries=a.entries.map(e=>{const t={...e};return t.components&&(t.components=n(t.components)),t})),a}),a=n(e);i?.(a)},[e,A,me,i]),he=t.useCallback(()=>({[`device-${n}`]:!0,readonly:a}),[n,a]),fe=e=>{const n=A[e.id];"text-input"===e.name&&e.basic;const s={id:e.id,validationErrors:D,formValue:n,touchedFields:_,formSubmitted:O,mode:a?"preview":"test",readonly:a,onValueChange:ne,onBlur:()=>ae(e.id),onFocus:()=>se(e.id)};switch(e.name){case"text-input":case"number-input":case"email-input":return u.jsx(x,{...s,properties:e,inputType:"text-input"===e.name?"text":"number-input"===e.name?"number":"email",formTemplateId:c,onThresholdIssueRaised:de,raisedThresholdIssues:U});case"textarea":return u.jsx(v,{...s,properties:e});case"select":const n={...e,options:e.basic?.options||[],basic:{...e.basic,comments:e.basic?.comments||""}};return u.jsx(y,{...s,properties:n});case"checkbox":const a={...e,options:e.basic?.options||[],basic:{...e.basic,comments:e.basic?.comments||""}};return u.jsx(j,{...s,properties:a});case"radio":const i={...e,options:e.basic?.options||[],basic:{...e.basic,comments:e.basic?.comments||""}};return u.jsx(C,{...s,properties:i});case"segment":const o={...e,options:e.basic?.options||[],basic:{...e.basic,comments:e.basic?.comments||""}};return u.jsx(N,{...s,properties:o});case"date":case"date-picker":case"datetime-picker":return u.jsx(k,{...s,properties:e});case"signature":return u.jsx(w,{...s,properties:e});case"heading":return u.jsx(T,{...s,properties:e});case"instructions":return u.jsx($,{...s,properties:e});case"location":return u.jsx(E,{...s,properties:e});case"section":return u.jsx(F,{...s,properties:e,formData:A,formTemplateId:c,onThresholdActionCompletion:ue,onThresholdIssueRaised:de,renderFormComponent:e=>fe(e)});case"table":return u.jsx(t.Suspense,{fallback:u.jsx("div",{children:"Loading table..."}),children:u.jsx(M,{...s,properties:e,formData:A,formTemplateId:c,onThresholdActionCompletion:ue,renderFormComponent:e=>fe(e)})});case"datagrid":return u.jsx(z,{...s,properties:e,formData:A,formTemplateId:c,onThresholdActionCompletion:ue,onThresholdIssueRaised:de,onComponentSelect:d,onComponentDelete:m,onComponentEdit:f,onComponentUpdate:b,selectedComponent:g,renderFormComponent:e=>fe(e)});case"file":return u.jsx(S,{...s,properties:e});default:return u.jsx("div",{className:"form-group",children:u.jsxs("div",{className:"form-group-label",children:["Unsupported Component: ",e.name]})})}};return u.jsx("div",{className:"form-preview-container",children:u.jsx("div",{className:"form-preview-wrapper",children:u.jsxs("div",{className:`form-preview ${Object.entries(he()).map(([e,t])=>t?e:"").join(" ")}`,children:[u.jsx("div",{className:"form-canvas-header"}),0===e.length?u.jsx("div",{className:"empty-state",children:u.jsx("div",{className:"empty-state-card",children:u.jsx("div",{className:"empty-state-preview-area",children:u.jsx("span",{className:"empty-state-placeholder",children:"Add components to see the form preview"})})})}):u.jsxs("form",{className:"form-preview-form",onSubmit:e=>{e.preventDefault(),pe()},children:[(r||l)&&u.jsxs("div",{className:"form-header",children:[r&&u.jsx("h1",{className:"form-title",children:r}),l&&u.jsx("p",{className:"form-description",children:l})]}),e.map(e=>{const t=e.basic,n=A[e.id],s=["select","radio","checkbox","segment"].includes(e.name||""),i=e.options||t?.options||[],o=(()=>{const t=e?.styles?.column;return"section"===e.name||"table"===e.name||"datagrid"===e.name?"col-12":3===t?"col-3":6===t?"col-6":9===t?"col-9":"col-12"})();let r=!1;if(!a)if(s&&null!=n&&""!==n)if("checkbox"===e.name){r=(Array.isArray(n)?n:[n]).some(e=>{const t=i.find(t=>t.value===e);return t&&(t.enableNotes||t.enableAttachment||t.enableRaiseIssue||t.enableSendEmail)})}else{const e=i.find(e=>e.value===n);r=e&&(e.enableNotes||e.enableAttachment||e.enableRaiseIssue||e.enableSendEmail)}else r=t?.enableNotes||t?.enableAttachment||t?.enableRaiseIssue||t?.enableSendEmail;const l=a&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0);return u.jsxs("div",{className:`form-group ${o} ${r||l?"has-action-features":""}`,style:{display:te(e.id)?"block":"none"},children:[fe(e),!a&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&u.jsx(L,{component:e,mode:a?"preview":"test",formTemplateId:c,formValue:n,onThresholdActionCompletion:ue,onThresholdIssueRaised:de}),a&&l&&u.jsx(R,{component:e})]},e.id)}),!a&&u.jsx("div",{className:"form-actions",children:u.jsx("button",{type:"submit",disabled:!oe()||!G.isValid,className:"form-submit-button",title:G.isValid?"":G.errorMessage,children:"Submit"})})]})]})})})},exports.DfFormRadio=C,exports.DfFormSection=F,exports.DfFormSegment=N,exports.DfFormSelect=y,exports.DfFormSignature=w,exports.DfFormTable=U,exports.DfFormTextarea=v,exports.RaiseIssueModal=b,exports.ThresholdAlert=g,exports.conditionalLogicService=p,exports.toastService=h;
|
|
10
|
+
*/"production"===process.env.NODE_ENV?r.exports=function(){if(e)return l;e=1;var n=t,a=Symbol.for("react.element"),s=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,o=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,r={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var s,l={},c=null,d=null;for(s in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(d=t.ref),t)i.call(t,s)&&!r.hasOwnProperty(s)&&(l[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps)void 0===l[s]&&(l[s]=t[s]);return{$$typeof:a,type:e,key:c,ref:d,props:l,_owner:o.current}}return l.Fragment=s,l.jsx=c,l.jsxs=c,l}():r.exports=(c||(c=1,"production"!==process.env.NODE_ENV&&function(){var e,n=t,a=Symbol.for("react.element"),s=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),c=Symbol.for("react.context"),u=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=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function v(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];!function(e,t,n){var a=x.ReactDebugCurrentFrame.getStackAddendum();""!==a&&(t+="%s",n=n.concat([a]));var s=n.map(function(e){return String(e)});s.unshift("Warning: "+t),Function.prototype.apply.call(console[e],console,s)}("error",e,n)}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 i:return"Fragment";case s:return"Portal";case r:return"Profiler";case o: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 u:return function(e,t,n){var a=e.displayName;if(a)return a;var s=t.displayName||t.name||"";return""!==s?n+"("+s+")":n}(e,e.render,"ForwardRef");case h:var t=e.displayName||null;return null!==t?t:j(e.type)||"Memo";case f:var n=e,a=n._payload,d=n._init;try{return j(d(a))}catch(e){return null}}return null}e=Symbol.for("react.module.reference");var C,N,k,w,S,E,T,$=Object.assign,A=0;function L(){}L.__reactDisabledLog=!0;var I,R=x.ReactCurrentDispatcher;function D(e,t,n){if(void 0===I)try{throw Error()}catch(e){var a=e.stack.trim().match(/\n( *(at )?)/);I=a&&a[1]||""}return"\n"+I+e}var V,F=!1,O="function"==typeof WeakMap?WeakMap:Map;function q(e,t){if(!e||F)return"";var n,a=V.get(e);if(void 0!==a)return a;F=!0;var s,i=Error.prepareStackTrace;Error.prepareStackTrace=void 0,s=R.current,R.current=null,function(){if(0===A){C=console.log,N=console.info,k=console.warn,w=console.error,S=console.group,E=console.groupCollapsed,T=console.groupEnd;var e={configurable:!0,enumerable:!0,value:L,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}A++}();try{if(t){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(o,[])}catch(e){n=e}Reflect.construct(e,[],o)}else{try{o.call()}catch(e){n=e}e.call(o.prototype)}}else{try{throw Error()}catch(e){n=e}e()}}catch(t){if(t&&n&&"string"==typeof t.stack){for(var r=t.stack.split("\n"),l=n.stack.split("\n"),c=r.length-1,d=l.length-1;c>=1&&d>=0&&r[c]!==l[d];)d--;for(;c>=1&&d>=0;c--,d--)if(r[c]!==l[d]){if(1!==c||1!==d)do{if(c--,--d<0||r[c]!==l[d]){var u="\n"+r[c].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),"function"==typeof e&&V.set(e,u),u}}while(c>=1&&d>=0);break}}}finally{F=!1,R.current=s,function(){if(0===--A){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:$({},e,{value:C}),info:$({},e,{value:N}),warn:$({},e,{value:k}),error:$({},e,{value:w}),group:$({},e,{value:S}),groupCollapsed:$({},e,{value:E}),groupEnd:$({},e,{value:T})})}A<0&&v("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}(),Error.prepareStackTrace=i}var m=e?e.displayName||e.name:"",p=m?D(m):"";return"function"==typeof e&&V.set(e,p),p}function z(e,t,n){if(null==e)return"";if("function"==typeof e)return q(e,!(!(a=e.prototype)||!a.isReactComponent));var a;if("string"==typeof e)return D(e);switch(e){case m:return D("Suspense");case p:return D("SuspenseList")}if("object"==typeof e)switch(e.$$typeof){case u:return q(e.render,!1);case h:return z(e.type,t,n);case f:var s=e,i=s._payload,o=s._init;try{return z(o(i),t,n)}catch(e){}}return""}V=new O;var M=Object.prototype.hasOwnProperty,_={},P=x.ReactDebugCurrentFrame;function W(e){if(e){var t=e._owner,n=z(e.type,e._source,t?t.type:null);P.setExtraStackFrame(n)}else P.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 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)),J(e)}var Y,G,X,K=x.ReactCurrentOwner,Z={key:!0,ref:!0,__self:!0,__source:!0};function Q(e,t,n,s,i){var o,r={},l=null,c=null;for(o in void 0!==n&&(H(n),l=""+n),function(e){if(M.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(M.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 n=j(K.current.type);X[n]||(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[n]=!0)}}(t,i)),t)M.call(t,o)&&!Z.hasOwnProperty(o)&&(r[o]=t[o]);if(e&&e.defaultProps){var d=e.defaultProps;for(o in d)void 0===r[o]&&(r[o]=d[o])}if(l||c){var u="function"==typeof e?e.displayName||e.name||"Unknown":e;l&&function(e,t){var n=function(){Y||(Y=!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))};n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}(r,u),c&&function(e,t){var n=function(){G||(G=!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))};n.isReactWarning=!0,Object.defineProperty(e,"ref",{get:n,configurable:!0})}(r,u)}return function(e,t,n,s,i,o,r){var l={$$typeof:a,type:e,key:t,ref:n,props:r,_owner:o,_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:s}),Object.defineProperty(l,"_source",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(l.props),Object.freeze(l)),l}(e,l,c,i,s,K.current,r)}X={};var ee,te=x.ReactCurrentOwner,ne=x.ReactDebugCurrentFrame;function ae(e){if(e){var t=e._owner,n=z(e.type,e._source,t?t.type:null);ne.setExtraStackFrame(n)}else ne.setExtraStackFrame(null)}function se(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}function ie(){if(te.current){var e=j(te.current.type);if(e)return"\n\nCheck the render method of `"+e+"`."}return""}ee=!1;var oe={};function re(e,t){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var n=function(e){var t=ie();if(!t){var n="string"==typeof e?e:e.displayName||e.name;n&&(t="\n\nCheck the top-level render call using <"+n+">.")}return t}(t);if(!oe[n]){oe[n]=!0;var a="";e&&e._owner&&e._owner!==te.current&&(a=" It was passed a child from "+j(e._owner.type)+"."),ae(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.',n,a),ae(null)}}}function le(e,t){if("object"==typeof e)if(U(e))for(var n=0;n<e.length;n++){var a=e[n];se(a)&&re(a,t)}else if(se(e))e._store&&(e._store.validated=!0);else if(e){var s=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 s&&s!==e.entries)for(var i,o=s.call(e);!(i=o.next()).done;)se(i.value)&&re(i.value,t)}}function ce(e){var t,n=e.type;if(null!=n&&"string"!=typeof n){if("function"==typeof n)t=n.propTypes;else{if("object"!=typeof n||n.$$typeof!==u&&n.$$typeof!==h)return;t=n.propTypes}if(t){var a=j(n);!function(e,t,n,a,s){var i=Function.call.bind(M);for(var o in e)if(i(e,o)){var r=void 0;try{if("function"!=typeof e[o]){var l=Error((a||"React class")+": "+n+" type `"+o+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[o]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw l.name="Invariant Violation",l}r=e[o](t,o,a,n,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(e){r=e}!r||r instanceof Error||(W(s),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).",a||"React class",n,o,typeof r),W(null)),r instanceof Error&&!(r.message in _)&&(_[r.message]=!0,W(s),v("Failed %s type: %s",n,r.message),W(null))}}(t,e.props,"prop",a,e)}else void 0===n.PropTypes||ee||(ee=!0,v("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",j(n)||"Unknown"));"function"!=typeof n.getDefaultProps||n.getDefaultProps.isReactClassApproved||v("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}var de={};function ue(t,n,s,d,g,x){var y=function(t){return"string"==typeof t||"function"==typeof t||t===i||t===r||t===o||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===u||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,k=function(e){return void 0!==e?"\n\nCheck your code at "+e.fileName.replace(/^.*[\\\/]/,"")+":"+e.lineNumber+".":""}(g);C+=k||ie(),null===t?N="null":U(t)?N="array":void 0!==t&&t.$$typeof===a?(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,n,s,g,x);if(null==w)return w;if(y){var S=n.children;if(void 0!==S)if(d)if(U(S)){for(var E=0;E<S.length;E++)le(S[E],t);Object.freeze&&Object.freeze(S)}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(S,t)}if(M.call(n,"key")){var T=j(t),$=Object.keys(n).filter(function(e){return"key"!==e}),A=$.length>0?"{key: someKey, "+$.join(": ..., ")+": ...}":"{key: someKey}";de[T+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?"{"+$.join(": ..., ")+": ...}":"{}",T),de[T+A]=!0)}return t===i?function(e){for(var t=Object.keys(e.props),n=0;n<t.length;n++){var a=t[n];if("children"!==a&&"key"!==a){ae(e),v("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",a),ae(null);break}}null!==e.ref&&(ae(e),v("Invalid attribute `ref` supplied to `React.Fragment`."),ae(null))}(w):ce(w),w}var me=function(e,t,n){return ue(e,t,n,!1)},pe=function(e,t,n){return ue(e,t,n,!0)};d.Fragment=i,d.jsx=me,d.jsxs=pe}()),d);var u=r.exports;class m{constructor(){}static getInstance(){return m.instance||(m.instance=new m),m.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 n=[];return e?(["show","hide","always"].includes(e.action)||n.push("Invalid conditional action"),["all","any"].includes(e.when)||n.push("Invalid when condition"),e.conditions&&0!==e.conditions.length?e.conditions.forEach((e,a)=>{const s=t.find(t=>t.id===e.when);if(!s)return void n.push(`Condition ${a+1}: Component not found`);this.getApplicableOperators(s.name).includes(e.operator)||n.push(`Condition ${a+1}: Operator not applicable for component type`),this.isValidConditionValue(e.value,s.name,e.operator)||n.push(`Condition ${a+1}: Invalid condition value`)}):n.push("At least one condition is required"),{isValid:0===n.length,errors:n}):{isValid:!0,errors:[]}}evaluateConditionalLogic(e,t,n){if("always"===e.action)return{shouldShow:!0,evaluatedConditions:[]};if(!e||!e.conditions||0===e.conditions.length)return{shouldShow:!0,evaluatedConditions:[]};const a=e.conditions.map(e=>{const a=this.getComponentValue(e.when,t,n);return{condition:e,result:this.evaluateCondition(e,a),componentValue:a}});return{shouldShow:this.determineFinalResult(e,a),evaluatedConditions:a}}getComponentValue(e,t,n){if(n&&void 0!==n[e])return n[e];const a=t.find(t=>t.id===e);return a&&"defaultValue"in a.basic?a.basic.defaultValue:void 0}evaluateCondition(e,t){const{operator:n,value:a}=e;if("checked"===a||"notChecked"===a)return this.evaluateCheckboxCondition(t,a);switch(n){case"equals":return this.isEqual(t,a);case"notEquals":return!this.isEqual(t,a);case"isEmpty":return this.isEmpty(t);case"isNotEmpty":return!this.isEmpty(t);case"contains":return this.contains(t,a);case"notContains":return!this.contains(t,a);case"greaterThan":return this.isGreaterThan(t,a);case"lessThan":return this.isLessThan(t,a);case"greaterThanOrEqual":return this.isGreaterThanOrEqual(t,a);case"lessThanOrEqual":return this.isLessThanOrEqual(t,a);default:return!1}}evaluateCheckboxCondition(e,t){const n=this.isCheckboxChecked(e);return"checked"===t?n:"notChecked"===t&&!n}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 n,a;return n="all"===e.when?t.every(e=>e.result):"any"===e.when&&t.some(e=>e.result),a="show"===e.action?n:"hide"===e.action?!n:(e.action,!0),a}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,n)=>this.isEqual(e,t[n]));if("object"==typeof e&&"object"==typeof t){const n=Object.keys(e),a=Object.keys(t);return n.length===a.length&&n.every(n=>this.isEqual(e[n],t[n]))}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 n=Number(e),a=Number(t);return!isNaN(n)&&!isNaN(a)&&n>a}isLessThan(e,t){const n=Number(e),a=Number(t);return!isNaN(n)&&!isNaN(a)&&n<a}isGreaterThanOrEqual(e,t){const n=Number(e),a=Number(t);return!isNaN(n)&&!isNaN(a)&&n>=a}isLessThanOrEqual(e,t){const n=Number(e),a=Number(t);return!isNaN(n)&&!isNaN(a)&&n<=a}isValidConditionValue(e,t,n){if(null==e)return["isEmpty","isNotEmpty"].includes(n);switch(t){case"number-input":return!isNaN(Number(e))||["isEmpty","isNotEmpty"].includes(n);case"date-picker":case"datetime-picker":return!isNaN(Date.parse(e))||["isEmpty","isNotEmpty"].includes(n);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 n=this.getActionDisplayText(e.action),a=e.conditions.map(e=>{const n=t.find(t=>t.id===e.when);return`${n?.basic.label||"Unknown component"} ${this.getOperatorDisplayText(e.operator)} ${this.formatConditionValue(e.value)}`}),s="all"===e.when?" and ":" or ";return`${n} ${a.join(s)}`}formatConditionValue(e){return null==e?"empty":Array.isArray(e)?`[${e.join(", ")}]`:"string"==typeof e?`"${e}"`:String(e)}}const p=m.getInstance();const h=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 n={id:this.generateId(),message:e,type:"success",duration:t};this.addToast(n)}showError(e,t=5e3){const n={id:this.generateId(),message:e,type:"danger",duration:t};this.addToast(n)}showWarning(e,t){const n={id:this.generateId(),message:e,type:"warning",duration:t};this.addToast(n)}showInfo(e,t){const n={id:this.generateId(),message:e,type:"info",duration:t};this.addToast(n)}show(e,t="success",n){const a={id:this.generateId(),message:e,type:t,duration:n};this.addToast(a)}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]}},f=({validationErrors:e,fieldId:t,touchedFields:n,formSubmitted:a,properties:s,localValidation:i,isTouched:o,mode:r})=>{const l=e=>{const t=s.basic.label||"This field",n=s.validation.customValidationMessage;if(n)return n;const a=s.name||"",i="date-picker"===a||"datetime-picker"===a?s.basic?.dateTimeMode||("datetime-picker"===a?"datetime":"date"):null;switch(e){case"required":return`${t} is required`;case"invalidDate":return"time"===i?"Please select a valid time":"datetime"===i?"Please select a valid date and time":"date"===i?"Please select a valid date":`${t} is invalid`;case"minLength":return`${t} must be at least ${s.validation.minLength} characters long`;case"maxLength":return`${t} must be no more than ${s.validation.maxLength} characters long`;case"min":return`${t} must be at least ${s.validation.min}`;case"max":return`${t} must be no more than ${s.validation.max}`;case"lowerLimit":const e=s.validation,n=e?.lowerLimit;return`You are under the limit. ${t} must be at least ${n}`;case"upperLimit":const a=s.validation,o=a?.upperLimit;return`You crossed the limit. ${t} must be no more than ${o}`;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"!==r)return"";if(!(o||n[t]||a))return"";if(i&&i.isValid)return"";if(i&&!i.isValid&&Object.keys(i.errors).length>0){const e=Object.keys(i.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=s.name||"";if(("date-picker"===e||"datetime-picker"===e)&&c.includes("valid date")){const t=s.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?u.jsx("div",{className:"form-error-msg",children:c}):null},b=({isOpen:e,onClose:t,onSuccess:n,component:a,formTemplateId:s,notes:i="",attachments:o=null,issue:r=null})=>{if(!e)return null;return u.jsx("div",{className:"raise-issue-modal-overlay",onClick:t,style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999,padding:"1rem"},children:u.jsxs("div",{className:"raise-issue-modal",onClick:e=>e.stopPropagation(),style:{background:"#ffffff",borderRadius:"0.5rem",width:"100%",maxWidth:"500px",padding:"2rem",boxShadow:"0 25px 50px -12px rgba(0, 0, 0, 0.25)"},children:[u.jsx("h2",{style:{marginTop:0},children:"Raise Issue"}),u.jsx("p",{children:r?"View/Edit Issue":"Create New Issue"}),u.jsxs("p",{style:{fontSize:"0.875rem",color:"#6b7280"},children:["Component: ",a?.basic?.label||"Unknown"]}),i&&u.jsxs("div",{style:{marginTop:"1rem",padding:"0.75rem",background:"#f9fafb",borderRadius:"0.375rem"},children:[u.jsx("strong",{children:"Notes:"})," ",i]}),o&&o.length>0&&u.jsxs("div",{style:{marginTop:"1rem",padding:"0.75rem",background:"#f9fafb",borderRadius:"0.375rem"},children:[u.jsx("strong",{children:"Attachments:"})," ",o.length," file(s)"]}),u.jsxs("div",{style:{marginTop:"1.5rem",display:"flex",gap:"0.75rem",justifyContent:"flex-end"},children:[u.jsx("button",{onClick:t,style:{padding:"0.625rem 1.25rem",borderRadius:"0.375rem",border:"1px solid #d1d5db",background:"#ffffff",cursor:"pointer"},children:"Cancel"}),u.jsx("button",{onClick:()=>{n&&n(),t()},style:{padding:"0.625rem 1.25rem",borderRadius:"0.375rem",border:"none",background:"var(--df-color-primary, #303992)",color:"#ffffff",cursor:"pointer"},children:r?"Update":"Raise Issue"})]}),u.jsx("p",{style:{marginTop:"1rem",fontSize:"0.75rem",color:"#9ca3af",fontStyle:"italic"},children:"Note: This is a stub implementation. Replace this component with your own issue management integration."})]})})},g=({component:e,condition:a,currentValue:s,thresholdValue:i,formTemplateId:o,onIssueRaised:r,isIssueRaised:l=!1})=>{const[c,d]=t.useState(!1),[m,p]=t.useState(null),[f,g]=t.useState(!1),[x,v]=t.useState(!1);t.useEffect(()=>{l&&v(!0)},[l]),t.useEffect(()=>{v(!1)},[a?.id]);const y=t.useCallback(async()=>{if(l||x){if(m)return void d(!0);g(!0);try{p(null),d(!0)}catch(e){console.error("Error fetching issue:",e),h.showError("Failed to load issue details")}finally{g(!1)}}else p(null),d(!0)},[l,x,o,e,m]),j=t.useCallback(()=>{d(!1),l||x||p(null)},[l,x]),C=t.useCallback(e=>{d(!1),p(e||null),v(!0),r&&a?.id&&r(a.id)},[r,a]);return l||x?u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"threshold-issue-indicator",children:u.jsxs("div",{className:"threshold-issue-indicator-content",children:[u.jsx(n.CheckCircle2,{className:"threshold-issue-indicator-icon",size:16}),u.jsx("span",{className:"threshold-issue-indicator-text",children:"Issue raised for this threshold condition"}),u.jsx("button",{type:"button",onClick:y,className:"threshold-issue-indicator-view-btn",disabled:f,children:f?"Loading...":"View Issue"})]})}),c&&u.jsx(b,{isOpen:c,onClose:j,onSuccess:C,component:e,formTemplateId:o,notes:"",attachments:null,issue:m})]}):u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"threshold-alert threshold-alert-unresolved",children:[u.jsx("div",{className:"threshold-alert-border"}),u.jsxs("div",{className:"threshold-alert-content",children:[u.jsx("div",{className:"threshold-alert-header",children:u.jsxs("div",{className:"threshold-alert-title-group",children:[u.jsx(n.AlertTriangle,{className:"threshold-alert-icon",size:20}),u.jsx("span",{className:"threshold-alert-title",children:"Threshold Condition Met - Action Required"})]})}),u.jsxs("div",{className:"threshold-alert-message",children:[(()=>{const t={greaterThan:">",lessThan:"<",greaterThanOrEqual:"≥",lessThanOrEqual:"≤",equals:"=",notEquals:"≠"}[n=a.operator]||n;var n;return`${e.basic?.label||"Value"}: Value ${s} exceeds threshold ${t} ${i}`})(),u.jsx("span",{className:"threshold-alert-warning",children:" You must raise an issue before submitting the form."})]}),u.jsx("div",{className:"threshold-alert-buttons",children:u.jsx("button",{type:"button",onClick:y,className:"threshold-alert-raise-issue-btn",children:"Raise Issue Now"})})]})]}),c&&u.jsx(b,{isOpen:c,onClose:j,onSuccess:C,component:e,formTemplateId:o,notes:"",attachments:null,issue:m})]})},x=({id:e,properties:n,validationErrors:a={},formValue:s="",inputType:i="text",readonly:o=!1,disabled:r=!1,touchedFields:l={},formSubmitted:c=!1,mode:d="test",onValueChange:m,onBlur:p,onFocus:h,className:b="",hideLabel:x=!1,formTemplateId:v,onThresholdIssueRaised:y,raisedThresholdIssues:j=new Set})=>{const[C,N]=t.useState(s||n?.basic?.defaultValue||""),[k,w]=t.useState(!1),[S,E]=t.useState(!1),[T,$]=t.useState(new Set),[A,L]=t.useState(s||n?.basic?.defaultValue||""),I=()=>{if(i)return i;const e=n?.name;return"text-input"===e?"text":"number-input"===e?"number":"email-input"===e?"email":"text"},R=t.useCallback(e=>{const t=(()=>{const e={};if(n?.validation?.required&&(e.required=!0),"email"===I()&&(e.email=!0),"text"===I()){const t=n.validation;t?.minLength&&(e.minLength=t.minLength),t?.maxLength&&(e.maxLength=t.maxLength)}if("number"===I()){const t=n.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})(),a={};let s=!0;if(!t.required||e&&""!==e.trim()||(a.required=!0,s=!1),t.email&&e&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(e)&&(a.email=!0,s=!1),t.minLength&&e&&e.length<t.minLength&&(a.minLength=!0,s=!1),t.maxLength&&e&&e.length>t.maxLength&&(a.maxLength=!0,s=!1),"number"===I()&&e){const n=parseFloat(e);isNaN(n)?(a.pattern=!0,s=!1):(void 0!==t.min&&n<t.min&&(a.min=!0,s=!1),void 0!==t.max&&n>t.max&&(a.max=!0,s=!1),void 0!==t.lowerLimit&&n<t.lowerLimit&&(a.lowerLimit=!0,s=!1),void 0!==t.upperLimit&&n>t.upperLimit&&(a.upperLimit=!0,s=!1))}return{isValid:s,errors:a}},[n,I]),D=t.useCallback(t=>{if(N(t),m){const n=R(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};m(a)}},[e,m,R]);t.useEffect(()=>{k&&(l[e]=!0)},[k,e,l]),t.useEffect(()=>{if("edit"===d){w(!1);N(n?.basic?.defaultValue||"")}else"test"===d&&(w(!1),N(""))},[d,n?.basic?.defaultValue]),t.useEffect(()=>{const e=s||n?.basic?.defaultValue||"";e===C||S||""===e&&""!==C.trim()?""===e&&C.trim():N(e)},[s,C,S,n?.basic?.defaultValue]),t.useEffect(()=>{c&&w(!0)},[c]),t.useEffect(()=>{"test"!==d&&N("")},[d]);const V=t.useCallback((e,t)=>{if(!t||""===t)return!1;const n="string"==typeof t?parseFloat(t):t,a="string"==typeof e.value?parseFloat(e.value):e.value;if(isNaN(n)||isNaN(a))return!1;switch(e.operator){case"greaterThan":return n>a;case"lessThan":return n<a;case"greaterThanOrEqual":return n>=a;case"lessThanOrEqual":return n<=a;case"equals":return n===a;case"notEquals":return n!==a;default:return!1}},[]),F=t.useMemo(()=>n?.condition?.conditions||[],[n?.condition]);t.useEffect(()=>{C!==A&&($(new Set),L(C))},[C,A]);const O=t.useMemo(()=>{if("test"!==d||!C||""===C)return null;const e=F.filter(e=>V(e,C));if(0===e.length)return null;for(const t of e)if(!T.has(t.id))return t;return null},[C,F,T,d,V,j]),q=t.useCallback(e=>{$(t=>new Set(t).add(e))},[]),z=I(),M=r||o||n?.validation?.readonly;return u.jsxs("div",{className:`form-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!x&&n.basic.label&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.jsx("input",{type:z,id:e,value:C,onChange:e=>{const t=e.target.value;D(t)},onFocus:()=>{E(!0),h&&h()},onBlur:()=>{if(E(!1),w(!0),"test"===d&&m){const t=R(C),n={id:e,value:C,isValid:t.isValid,errors:t.errors};m(n)}p&&p()},placeholder:n.basic.placeholder,disabled:M,readOnly:o||n?.validation?.readonly,className:(()=>{const t="form-control";if("test"===d){const n=!R(C).isValid&&k,s=a[e]&&(k||c);return`${t} ${n||s?"is-invalid":""} ${b}`.trim()}return`${t} ${b}`.trim()})()}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:l,formSubmitted:c,properties:n,localValidation:R(C),isTouched:k,mode:d}),O&&"test"===d&&(()=>{const e=j?.has(O.id)||!1;return u.jsx(g,{component:n,condition:O,currentValue:C,thresholdValue:O.value,formTemplateId:v,onDismiss:()=>q(O.id),onIssueRaised:y,isIssueRaised:e},`${O.id}-${e}`)})()]})]})},v=({id:e,properties:n,validationErrors:a={},formValue:s="",readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState(s),[v,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let a=!0;return!n?.validation?.required||e&&""!==e.trim()||(t.required=!0,a=!1),n?.validation?.minLength&&e&&e.length<n.validation.minLength&&(t.minLength=!0,a=!1),n?.validation?.maxLength&&e&&e.length>n.validation.maxLength&&(t.maxLength=!0,a=!1),{isValid:a,errors:t}},[n]),C=t.useCallback(t=>{if(x(t),d){const n=j(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,j]);t.useEffect(()=>{v&&(r[e]=!0)},[v,e,r]),t.useEffect(()=>{""===g&&""!==s&&x(s)},[s]),t.useEffect(()=>{l&&y(!0)},[l]),t.useEffect(()=>{"test"!==c&&x("")},[c]);const N=o||i||n?.validation?.readonly,k=n?.validation?.rows||4;return u.jsxs("div",{className:`form-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&n.basic.label&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.jsx("textarea",{id:e,value:g,onChange:e=>{const t=e.target.value;C(t)},onFocus:()=>{p&&p()},onBlur:()=>{y(!0),m&&m()},placeholder:n.basic.placeholder,disabled:N,readOnly:i||n?.validation?.readonly,rows:k,className:`form-textarea ${!j(g).isValid&&v?"is-invalid":""} ${h}`.trim()}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:j(g),isTouched:v,mode:c})]})]})},y=({id:e,properties:n,validationErrors:a={},formValue:s="",readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState(s),[v,y]=t.useState(!1),j=n?.validation?.multiple||!1,C=t.useCallback(e=>{const t={};let a=!0;return n?.validation?.required&&(j?Array.isArray(e)&&0!==e.length||(t.required=!0,a=!1):(!e||"string"==typeof e&&""===e.trim())&&(t.required=!0,a=!1)),{isValid:a,errors:t}},[n,j]),N=t.useCallback(t=>{if(x(t),d){const n=C(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,C]);t.useEffect(()=>{v&&(r[e]=!0)},[v,e,r]),t.useEffect(()=>{JSON.stringify(s)!==JSON.stringify(g)&&x(s)},[s,g]),t.useEffect(()=>{l&&y(!0)},[l]);const k=o||i||n?.validation?.readonly;return u.jsxs("div",{className:`form-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&n.basic.label&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.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),m&&m()},disabled:k,multiple:j,className:`form-select ${!C(g).isValid&&v?"is-invalid":""} ${h}`.trim(),children:[!j&&u.jsx("option",{value:"",children:n.basic.placeholder||"Select an option"}),(n.options||[]).map((e,t)=>u.jsx("option",{value:e.value,disabled:e.disabled,children:e.label},t))]}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:C(g),isTouched:v,mode:c})]})]})},j=({id:e,properties:n,validationErrors:a={},formValue:s=[],readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState(!1),v=Array.isArray(s)?s:[],y=t.useCallback(e=>{const t={};let a=!0;return n?.validation?.required&&0===e.length&&(t.required=!0,a=!1),{isValid:a,errors:t}},[n]),j=t.useCallback(t=>{if(d){const n=y(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,y,v]),C=(e,t)=>{let n;n=t?[...v,e]:v.filter(t=>t!==e),j(n)},N=()=>{p&&p()},k=()=>{x(!0),m&&m()};t.useEffect(()=>{g&&(r[e]=!0)},[g,e,r]),t.useEffect(()=>{},[s,e,v]),t.useEffect(()=>{l&&x(!0)},[l]);const w=o||i||n?.validation?.readonly;return u.jsx(u.Fragment,{children:u.jsx("div",{className:`form-group checkbox-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${n?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${h}`,children:!b&&n.basic.label?u.jsxs(u.Fragment,{children:[u.jsxs("label",{className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.jsx("div",{className:"mt-2 "+(n?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(n.options||[]).map((t,n)=>u.jsxs("div",{className:"form-check",children:[u.jsx("input",{type:"checkbox",id:`${e}-${n}`,name:e,value:t.value,checked:v.includes(t.value),onChange:e=>{C(t.value,e.target.checked)},onFocus:N,onBlur:k,disabled:w||t.disabled,className:"form-check-input"}),u.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:y(v),isTouched:g,mode:c})]})]}):u.jsxs("div",{className:"input-wrapper",children:[u.jsx("div",{className:"mt-2 "+(n?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(n.options||[]).map((t,n)=>u.jsxs("div",{className:"form-check",children:[u.jsx("input",{type:"checkbox",id:`${e}-${n}`,name:e,value:t.value,checked:v.includes(t.value),onChange:e=>{C(t.value,e.target.checked)},onFocus:N,onBlur:k,disabled:w||t.disabled,className:"form-check-input"}),u.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:y(v),isTouched:g,mode:c})]})})})},C=({id:e,properties:n,validationErrors:a={},formValue:s="",readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState(s),[v,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let a=!0;return!n?.validation?.required||e&&""!==e.trim()||(t.required=!0,a=!1),{isValid:a,errors:t}},[n]),C=t.useCallback(t=>{if(x(t),d){const n=j(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,j]),N=e=>{C(e)},k=()=>{p&&p()},w=()=>{y(!0),m&&m()};t.useEffect(()=>{v&&(r[e]=!0)},[v,e,r]),t.useEffect(()=>{s!==g&&x(s)},[s,g]),t.useEffect(()=>{l&&y(!0)},[l]);const S=o||i||n?.validation?.readonly;return u.jsx(u.Fragment,{children:u.jsx("div",{className:`form-group radio-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${n?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${h}`,children:!b&&n.basic.label?u.jsxs(u.Fragment,{children:[u.jsxs("label",{className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.jsx("div",{className:"mt-2 "+(n?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(n.options||[]).map((t,n)=>u.jsxs("div",{className:"form-check",children:[u.jsx("input",{type:"radio",id:`${e}-${n}`,name:e,value:t.value,checked:g===t.value,onChange:()=>N(t.value),onFocus:k,onBlur:w,disabled:S||t.disabled,className:"form-check-input"}),u.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:j(g),isTouched:v,mode:c})]})]}):u.jsxs("div",{className:"input-wrapper",children:[u.jsx("div",{className:"mt-2 "+(n?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(n.options||[]).map((t,n)=>u.jsxs("div",{className:"form-check",children:[u.jsx("input",{type:"radio",id:`${e}-${n}`,name:e,value:t.value,checked:g===t.value,onChange:()=>N(t.value),onFocus:k,onBlur:w,disabled:S||t.disabled,className:"form-check-input"}),u.jsx("label",{htmlFor:`${e}-${n}`,className:"form-check-label",children:t.label})]},n))}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:j(g),isTouched:v,mode:c})]})})})},N=({id:e,properties:n,validationErrors:a={},formValue:s="",readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState(s),[v,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let a=!0;return!n?.validation?.required||e&&""!==e.trim()||(t.required=!0,a=!1),{isValid:a,errors:t}},[n]),C=t.useCallback(t=>{if(x(t),y(!0),d){const n=j(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,j]),N=()=>{p&&p()},k=()=>{y(!0),m&&m()};t.useEffect(()=>{v&&(r[e]=!0)},[v,e,r]),t.useEffect(()=>{s!==g&&x(s)},[s,g]),t.useEffect(()=>{l&&y(!0)},[l]);const w=()=>n?.basic?.inlineLayout?"inline-layout":"grid-layout",S=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"===S(e?.value||e)?"✓":"×"},T=(e,t)=>e?.color||e?.backgroundColor?{color:t?"#ffffff":e.color||"#00814b",backgroundColor:t?e.color||"#00814b":e.backgroundColor||"#34bd4914",borderColor:e.color||"#00814b"}:{},$=e=>{if(e?.color||e?.backgroundColor)return"segment-button-label segment-button-custom";return"segment-button-label "+("pass"===S(e?.value||e)?"pass-button":"fail-button")},A=o||i||n?.validation?.readonly;return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:`form-group segment-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${h}`,children:!b&&n.basic.label?u.jsxs(u.Fragment,{children:[u.jsxs("label",{className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsx("div",{className:"form-segment-wrapper",children:u.jsx("div",{className:`form-segment-container ${w()}`,children:(n.options||[]).map((t,n)=>{const a=g===t.value,s=T(t,a),i=$(t),o=E(t);return u.jsxs("div",{className:"form-segment-option "+(a?"selected":""),children:[u.jsx("input",{type:"radio",id:`${e}_option_${n}`,name:e,value:t.value,checked:a,onChange:()=>!A&&!t.disabled&&C(t.value),onFocus:N,onBlur:k,disabled:A||t.disabled,className:"form-segment-radio"}),u.jsxs("label",{htmlFor:`${e}_option_${n}`,className:i,style:Object.keys(s).length>0?s:void 0,children:[o&&u.jsx("span",{className:"segment-icon",children:o}),u.jsx("span",{className:"segment-text",children:t.value})]})]},n)})})})]}):u.jsx("div",{className:"form-segment-wrapper",children:u.jsx("div",{className:`form-segment-container ${w()}`,children:(n.options||[]).map((t,n)=>{const a=g===t.value,s=T(t,a),i=$(t),o=E(t);return u.jsxs("div",{className:"form-segment-option "+(a?"selected":""),children:[u.jsx("input",{type:"radio",id:`${e}_option_${n}`,name:e,value:t.value,checked:a,onChange:()=>!A&&!t.disabled&&C(t.value),onFocus:N,onBlur:k,disabled:A||t.disabled,className:"form-segment-radio"}),u.jsxs("label",{htmlFor:`${e}_option_${n}`,className:i,style:Object.keys(s).length>0?s:void 0,children:[o&&u.jsx("span",{className:"segment-icon",children:o}),u.jsx("span",{className:"segment-text",children:t.value})]})]},n)})})})}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:j(g),isTouched:v,mode:c})]})},k=({id:e,properties:n,validationErrors:a={},formValue:s="",readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState(s),[v,y]=t.useState(!1),[j,C]=t.useState(!1),N=t.useCallback(e=>{const t={};let a=!0;const s=n.name||"",i=n.basic?.dateTimeMode||("datetime-picker"===s?"datetime":"date"),o=e?String(e).trim():"";if(n?.validation?.required&&(!o||""===o))return t.required=!0,a=!1,{isValid:a,errors:t};if(o&&""!==o)if("time"===i){if(!/^([0-1][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$/.test(o))return t.invalidDate=!0,a=!1,{isValid:a,errors:t}}else if("datetime"===i){const e=new Date(o);if(isNaN(e.getTime()))return t.invalidDate=!0,a=!1,{isValid:a,errors:t};if(n?.validation?.minDate){const s=new Date(n.validation.minDate);e<s&&(t.minDate=!0,t.minDateMessage=`Date and time must be on or after ${s.toLocaleDateString()}`,a=!1)}if(n?.validation?.maxDate){const s=new Date(n.validation.maxDate);e>s&&(t.maxDate=!0,t.maxDateMessage=`Date and time must be on or before ${s.toLocaleDateString()}`,a=!1)}}else{const e=new Date(o);if(isNaN(e.getTime()))return t.invalidDate=!0,a=!1,{isValid:a,errors:t};if(n?.validation?.minDate){const s=new Date(n.validation.minDate);e<s&&(t.minDate=!0,t.minDateMessage=`Date must be on or after ${s.toLocaleDateString()}`,a=!1)}if(n?.validation?.maxDate){const s=new Date(n.validation.maxDate);e>s&&(t.maxDate=!0,t.maxDateMessage=`Date must be on or before ${s.toLocaleDateString()}`,a=!1)}}return{isValid:a,errors:t}},[n]),k=t.useCallback(t=>{if(x(t),d){const n=N(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,N]);t.useEffect(()=>{v&&(r[e]=!0)},[v,e,r]),t.useEffect(()=>{s===g||j||x(s)},[s,g,j]),t.useEffect(()=>{l&&y(!0)},[l]);const w=o||i||n?.validation?.readonly,S=n.name||"",E=n.basic?.dateTimeMode||("datetime-picker"===S?"datetime":"date"),T=(()=>{switch(E){case"time":return"time";case"datetime":return"datetime-local";default:return"date"}})();return u.jsxs("div",{className:`form-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&n.basic.label&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.jsx("input",{type:T,id:e,value:g,onChange:e=>{const t=e.target.value;k(t)},onFocus:()=>{C(!0),p&&p()},onBlur:()=>{if(C(!1),y(!0),d){const t=N(g),n={id:e,value:g,isValid:t.isValid,errors:t.errors};d(n)}m&&m()},disabled:w,readOnly:i||n?.validation?.readonly,min:n?.validation?.minDate,max:n?.validation?.maxDate,className:`form-date ${!N(g).isValid&&v?"is-invalid":""} ${h}`.trim()}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:N(g),isTouched:v,mode:c})]})]})},w=({id:e,properties:n,validationErrors:a={},formValue:s="",readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const g=t.useRef(null),[x,v]=t.useState(!1),[y,j]=t.useState(!1),[C,N]=t.useState(s),[k,w]=t.useState(!1),S=t.useCallback(e=>{const t={};let a=!0;return!n?.validation?.required||e&&""!==e.trim()||(t.required=!0,a=!1),{isValid:a,errors:t}},[n]),E=t.useCallback(t=>{if(N(t),d){const n=S(t),a={id:e,value:t,isValid:n.isValid,errors:n.errors};d(a)}},[e,d,S]),T=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.useCallback(t=>{if(!t)return;const n=g.current;if(!n)return;const a=n.getContext("2d");if(!a)return;const s=new Image;s.onload=()=>{a.clearRect(0,0,n.width,n.height);const e=T();a.fillStyle=e.backgroundColor,a.fillRect(0,0,n.width,n.height);const t=n.width/n.height,i=s.width/s.height;let o=n.width,r=n.height,l=0,c=0;i>t?(r=n.width/i,c=(n.height-r)/2):(o=n.height*i,l=(n.width-o)/2),a.drawImage(s,l,c,o,r)},s.onerror=n=>{console.error("DfFormSignature: error loading image",{id:e,error:n,dataURL:t.substring(0,50)+"..."})},s.src=t},[T,e]),A=t.useCallback(()=>{const e=g.current;if(!e)return;const t=e.getContext("2d");if(!t)return;const n=e.getBoundingClientRect();e.width=n.width,e.height=n.height,e.style.width=n.width+"px",e.style.height=n.height+"px";const a=T();t.strokeStyle=a.strokeColor,t.lineWidth=2,t.lineCap="round",t.lineJoin="round",C?$(C):(t.fillStyle=a.backgroundColor,t.fillRect(0,0,e.width,e.height))},[C,T,$]),L=t.useCallback(()=>{setTimeout(()=>{A()},100)},[A]);t.useEffect(()=>{const e=()=>{L()},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"))&&L()}})});return t.observe(document.body,{attributes:!0,attributeFilter:["class"],subtree:!0}),window.addEventListener("resize",e),()=>{t.disconnect(),window.removeEventListener("resize",e)}},[L]);const I=t.useCallback(e=>{const t=g.current;if(!t)return{x:0,y:0};const n=t.getBoundingClientRect(),a=t.width/n.width,s=t.height/n.height,i=e.type.includes("mouse")?e.clientX:e.touches[0].clientX,o=e.type.includes("mouse")?e.clientY:e.touches[0].clientY;return{x:(i-n.left)*a,y:(o-n.top)*s}},[]),R=e=>{if(i||o||n?.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 a=t.getContext("2d");if(!a)return;const{x:s,y:r}=I(e),l=T();a.strokeStyle=l.strokeColor,a.lineWidth=2,a.lineCap="round",a.lineJoin="round",a.beginPath(),a.moveTo(s,r)},D=e=>{if(!x)return;e.preventDefault(),e.stopPropagation();const t=g.current;if(!t)return;const n=t.getContext("2d");if(!n)return;const{x:a,y:s}=I(e);n.lineTo(a,s),n.stroke()},V=()=>{if(!x)return;v(!1),w(!0);const e=g.current;if(e){(e=>{const t=e.getContext("2d");if(!t)return!1;const n=t.getImageData(0,0,e.width,e.height).data;for(let e=0;e<n.length;e+=4){const t=n[e],a=n[e+1],s=n[e+2];if(n[e+3]>0&&(t<255||a<255||s<255))return!0}})(e);const t=e.toDataURL("image/png");N(t),E(t),setTimeout(()=>{w(!1)},100)}else w(!1)},F=t.useCallback(()=>{const e=g.current;if(!e)return;const t=e.getContext("2d");if(!t)return;const n=T();if(t.strokeStyle=n.strokeColor,C){const a=C,s=e.getBoundingClientRect();t.fillStyle=n.backgroundColor,t.fillRect(0,0,s.width,s.height),a&&$(a)}else{const a=e.getBoundingClientRect();t.fillStyle=n.backgroundColor,t.fillRect(0,0,a.width,a.height)}},[T,C,$]);t.useEffect(()=>{const e=new MutationObserver(e=>{e.forEach(e=>{"attributes"!==e.type||"class"!==e.attributeName&&"data-theme"!==e.attributeName||F()})});return e.observe(document.documentElement,{attributes:!0,attributeFilter:["class","data-theme"]}),()=>{e.disconnect()}},[F]);t.useEffect(()=>{y&&(r[e]=!0)},[y,e,r]),t.useEffect(()=>{if(!(s===C||x||k||""!==C&&""===s)){if(s===C)return;N(s),s&&$(s)}},[s,C,x,k]),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 n=e.getBoundingClientRect();e.width=n.width,e.height=n.height;const a=T();t.fillStyle=a.backgroundColor,t.fillRect(0,0,n.width,n.height)}}}},[c]),t.useEffect(()=>{A()},[c]);const O=o||i||n?.validation?.readonly;return u.jsxs("div",{className:`form-group ${(()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!b&&n.basic.label&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic.label,n.validation.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"input-wrapper",children:[u.jsxs("div",{className:"signature-container",style:{position:"relative",width:"100%",maxWidth:"100%",overflow:"hidden"},children:[u.jsx("canvas",{ref:g,id:e,className:`form-signature ${!S(C).isValid&&y?"is-invalid":""} ${h}`.trim(),onMouseDown:R,onMouseMove:D,onMouseUp:V,onMouseLeave:V,onTouchStart:R,onTouchMove:D,onTouchEnd:V,onFocus:()=>{p&&p()},onBlur:()=>{m&&m()},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&&u.jsx("button",{type:"button",onClick:e=>(e=>{e?.preventDefault(),e?.stopPropagation();const t=g.current;if(!t)return;const n=t.getBoundingClientRect();t.width=n.width,t.height=n.height;const a=t.getContext("2d");if(!a)return;const s=T();a.fillStyle=s.backgroundColor,a.fillRect(0,0,n.width,n.height),a.strokeStyle=s.strokeColor,a.lineWidth=2,a.lineCap="round",a.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"})]}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:S(C),isTouched:y,mode:c})]})]})},S=({id:e,properties:n,validationErrors:a={},formValue:s=null,readonly:i=!1,disabled:o=!1,touchedFields:r={},formSubmitted:l=!1,mode:c="test",onValueChange:d,onBlur:m,onFocus:p,className:h="",hideLabel:b=!1})=>{const[g,x]=t.useState([]),[v,y]=t.useState(!1),[j,C]=t.useState(!1),N=t.useRef(null),k=t.useCallback(t=>{if(!t)return[];const n=Array.isArray(t)?t:Array.from(t),a=[];return n.forEach((t,n)=>{let s,i,o=0,r="",l="";if(t instanceof File||t instanceof Blob){const e=t;if(o=e.size||0,r=e.type||"",l=e.name||`file-${n}`,i=e,r.startsWith("image/"))try{s=URL.createObjectURL(e)}catch(e){console.error("Error creating object URL:",e),s=void 0}}else if("string"==typeof t){const e=t;if(l=`file-${n}`,e.startsWith("data:")){const t=e.indexOf(";");r=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);if(t){r={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 r="application/octet-stream"}(e.startsWith("data:image")||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("blob:"))&&(s=e),i=new File([],l,{type:r})}else{if(!t||"object"!=typeof t)return;{const e=t;if(l=e.name||e.fileName||`file-${n}`,o=e.size||e.fileSize||0,r=e.type||e.fileType||e.mimeType||"",e.url||e.path)s=e.url||e.path;else if(r.startsWith("image/")&&e.data){const t=e.data;s="string"==typeof t?t.startsWith("data:")?t:`data:${r};base64,${t}`:void 0}i=new File([],l,{type:r})}}a.push({file:i,id:`${e}-file-${n}`,size:o,type:r,name:l,preview:s})}),a},[e]),w=t.useCallback(()=>({isValid:!0,errors:{}}),[]),S=t.useCallback(t=>{if(i||o)return;const a=k(t),s=g.length>0?[...g,...a]:a,r=n?.validation?.maxFiles||1/0,l=s.slice(0,r);if(x(l),C(!0),d){const t=w(),n={id:e,value:l.map(e=>e.file),isValid:t.isValid,errors:t.errors};d(n)}},[g,n,i,o,d,w,k,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]},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&&(r[e]=!0)},[j,e,r]),t.useEffect(()=>{("edit"===c||"test"===c)&&C(!1)},[c]),t.useEffect(()=>{const e=k(s);x(e)},[s,k]),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 $=()=>{const e=n?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"},A=o||i||n?.validation?.readonly,L=n?.validation?.multiple||!1,I=n?.validation?.accept||"*/*",R=n?.validation?.maxFiles||1/0,D=g.length<R&&(L||R>1),V="edit"===c,F="preview"===c||"test"===c,O=g.filter(e=>e.type.startsWith("image/")),q=g.filter(e=>!e.type.startsWith("image/")),z=O.length>0;return F&&z?u.jsxs("div",{className:`form-group ${$()}`,children:[!b&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic?.label||"Attachments",n.validation?.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"file-upload-wrapper",children:[u.jsxs("div",{className:"file-image-display",children:[O.map(e=>u.jsxs("div",{className:"file-image-container",children:[e.preview&&u.jsx("img",{src:e.preview,alt:e.name,className:"file-image-preview"}),u.jsxs("div",{className:"file-image-info",children:[u.jsx("div",{className:"file-name",title:e.name,children:e.name}),u.jsx("div",{className:"file-size",children:E(e.size)})]})]},e.id)),q.length>0&&u.jsxs("div",{className:"file-other-files",children:[u.jsx("div",{className:"file-other-files-label",children:"Other Files:"}),q.map(e=>u.jsxs("div",{className:"file-item-minimal",children:[u.jsx("div",{className:"file-icon",children:T(e.type)}),u.jsxs("div",{className:"file-info",children:[u.jsx("div",{className:"file-name",title:e.name,children:e.name}),u.jsx("div",{className:"file-size",children:E(e.size)})]})]},e.id))]})]}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:w(),isTouched:j,mode:c})]})]}):u.jsxs("div",{className:`form-group ${$()}`,children:[!b&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[n.basic?.label||"Attachments",n.validation?.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),u.jsxs("div",{className:"file-upload-wrapper",children:[u.jsxs("div",{className:`file-upload-area ${v?"drag-over":""} ${i?"readonly":""} ${o?"disabled":""} ${h}`.trim(),onDragOver:e=>{e.preventDefault(),i||o||y(!0)},onDragLeave:e=>{e.preventDefault(),y(!1)},onDrop:e=>{if(e.preventDefault(),y(!1),i||o)return;const t=e.dataTransfer.files;t.length>0&&S(t)},onClick:e=>{const t=e.target,n=null!==t.closest(".file-item"),a=null!==t.closest(".file-remove");!V||A||0!==g.length||n||a||N.current?.click()},onFocus:()=>{p&&p()},onBlur:()=>{if(C(!0),"test"===c&&d){const t=w(),n={id:e,value:g.map(e=>e.file),isValid:t.isValid,errors:t.errors};d(n)}m&&m()},tabIndex:A?-1:0,children:[u.jsx("input",{ref:N,type:"file",id:e,multiple:L,accept:I,onChange:e=>{const t=e.target.files;t&&t.length>0&&(S(t),e.target.value="")},disabled:A,style:{display:"none"}}),0===g.length?u.jsxs("div",{className:"upload-placeholder",onClick:e=>{e.stopPropagation(),V&&!A&&N.current?.click()},children:[u.jsx("div",{className:"upload-icon",children:"📁"}),u.jsx("div",{className:"upload-text",children:n.basic.placeholder&&u.jsx("p",{className:"upload-hint",children:n.basic.placeholder})})]}):u.jsx("div",{className:"file-list",children:g.map(t=>u.jsxs("div",{className:"file-item",children:[u.jsx("div",{className:"file-preview",children:t.preview?u.jsx("img",{src:t.preview,alt:t.name,className:"file-image"}):u.jsx("div",{className:"file-icon",children:T(t.type)})}),u.jsxs("div",{className:"file-info",children:[u.jsx("div",{className:"file-name",title:t.name,children:t.name}),u.jsx("div",{className:"file-size",children:E(t.size)})]}),V&&!A&&u.jsx("button",{type:"button",className:"file-remove",onClick:n=>{n.stopPropagation(),(t=>{if(i||o)return;const n=g.filter(e=>e.id!==t);if(x(n),C(!0),d){const t=w(),a={id:e,value:n.map(e=>e.file),isValid:t.isValid,errors:t.errors};d(a)}})(t.id)},"aria-label":`Remove ${t.name}`,children:"✕"})]},t.id))})]}),g.length>0&&D&&!A&&V&&u.jsxs("button",{type:"button",className:"file-add-more",onClick:e=>{e.stopPropagation(),!A&&N.current&&V&&(N.current.value="",N.current.click())},"aria-label":"Add more files",children:[u.jsx("svg",{className:"file-add-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:u.jsx("path",{d:"M12 5v14M5 12h14"})}),u.jsx("span",{className:"file-add-text",children:"Add More Files"})]}),u.jsx(f,{validationErrors:a,fieldId:e,touchedFields:r,formSubmitted:l,properties:n,localValidation:w(),isTouched:j,mode:c})]})]})},E=({id:e,properties:a,validationErrors:s={},formValue:i=null,readonly:o=!1,disabled:r=!1,touchedFields:l={},formSubmitted:c=!1,mode:d="test",onValueChange:m,onBlur:p,onFocus:h,className:b="",hideLabel:g=!1})=>{const[x,v]=t.useState(i),[y,j]=t.useState(!1),[C,N]=t.useState(""),[k,w]=t.useState(!1),[S,E]=t.useState(!1),[T,$]=t.useState({lat:40.7128,lng:-74.006}),[A,L]=t.useState(null),[I,R]=t.useState(10),[D,V]=t.useState(""),[F,O]=t.useState(!1),q=t.useRef(null),[z,M]=t.useState(!1),[_,P]=t.useState(null),[W,B]=t.useState(!1);t.useEffect(()=>{i?(v(i),i.latitude&&i.longitude&&(L({lat:i.latitude,lng:i.longitude,isCurrentLocation:!1}),$({lat:i.latitude,lng:i.longitude}))):(v(null),L(null))},[i]),t.useEffect(()=>{S&&40.7128===T.lat&&T.lng},[S,T]),t.useEffect(()=>{(o||r)&&(S&&E(!1),D&&V(""),z&&(M(!1),P(null)))},[o,r]);const U=t.useCallback(async(e,t)=>{B(!0);try{const n=await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${e}&lon=${t}&addressdetails=1&zoom=18`),a=await n.json();if(a&&a.address){const e=a.address;return{placeName:a.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,n,a)=>{const s=await U(t,n),i={latitude:t,longitude:n,timestamp:Date.now(),placeName:s.placeName,city:s.city,country:s.country,address:s.placeName,...a};if(v(i),L({lat:t,lng:n,isCurrentLocation:!1}),w(!0),m){m({id:e,value:i,isValid:!0,errors:{}})}},[U,e,m]),H=t.useCallback(()=>{if(o||r)return;if(!navigator.geolocation)return void N("Geolocation is not supported by this browser.");j(!0),N("");const e={enableHighAccuracy:a.validation?.enableHighAccuracy??!0,timeout:a.validation?.timeout??1e4,maximumAge:a.validation?.maximumAge??3e5};navigator.geolocation.getCurrentPosition(async e=>{const t=e.coords.latitude,n=e.coords.longitude;L({lat:t,lng:n,isCurrentLocation:!0}),$({lat:t,lng:n}),w(!0),await J(t,n,{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)},[o,r,e,m,a]),Y=t.useCallback(()=>{if(!o&&!r&&(v(null),L(null),N(""),w(!0),m)){m({id:e,value:null,isValid:!0,errors:{}})}},[o,r,e,m]),G=t.useCallback(()=>{o||r||E(!S)},[o,r,S]),X=t.useCallback((e,t,n,a,s,i)=>{const o=e-s/2,r=t-i/2,l=156543.03392*Math.cos(n.lat*Math.PI/180)/Math.pow(2,a),c=o*l,d=r*l;return{lat:n.lat+d/111320,lng:n.lng+c/(111320*Math.cos(n.lat*Math.PI/180))}},[]),K=t.useCallback(e=>{o||r||!q.current||0===e.button&&(M(!0),P({x:e.clientX,y:e.clientY}),e.preventDefault())},[o,r]),Z=t.useCallback(e=>{if(!z||!_||!q.current)return;const t=e.clientX-_.x,n=e.clientY-_.y,a=156543.03392*Math.cos(T.lat*Math.PI/180)/Math.pow(2,I),s=-n*a/111320,i=t*a/(111320*Math.cos(T.lat*Math.PI/180));$({lat:T.lat+s,lng:T.lng+i}),P({x:e.clientX,y:e.clientY})},[z,_,T,I]),Q=t.useCallback(async e=>{if(!q.current)return;if(z&&_){const t=Math.abs(e.clientX-_.x),n=Math.abs(e.clientY-_.y);if(t>5||n>5)return M(!1),void P(null)}if(o||r)return M(!1),void P(null);const t=q.current.getBoundingClientRect(),n=e.clientX-t.left,a=e.clientY-t.top,{lat:s,lng:i}=X(n,a,T,I,t.width,t.height);await J(s,i),M(!1),P(null)},[o,r,q,T,I,X,J,z,_]),ee=t.useCallback(async t=>{if(t.trim()&&!o&&!r){O(!0),N("");try{const n=await fetch(`https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(t)}&limit=5&addressdetails=1`),a=await n.json();if(a&&a.length>0){const t=a[0],n=parseFloat(t.lat),s=parseFloat(t.lon),i=t.address||{},o={latitude:n,longitude:s,address:t.display_name,placeName:t.display_name,city:i.city||i.town||i.village||i.municipality||"",country:i.country||"",timestamp:Date.now()};if(v(o),L({lat:n,lng:s,isCurrentLocation:!1}),$({lat:n,lng:s}),w(!0),m){m({id:e,value:o,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)}}},[o,r,e,m]),te=()=>{h&&h()},ne=()=>{w(!0),p&&p()},ae=r||o||a?.validation?.readonly,se=a?.basic?.label||"Location",ie=a?.basic?.description||"";return u.jsxs("div",{className:`form-group ${g?"no-label":""} ${b}`,children:[!g&&u.jsxs("label",{htmlFor:e,className:"form-label",children:[se,a?.validation?.required&&u.jsx("span",{className:"required-indicator",children:"*"})]}),ie&&u.jsx("div",{className:"form-group-description",children:ie}),u.jsxs("div",{className:"location-wrapper",children:[!(o&&x)&&u.jsxs("div",{className:"location-controls",children:[u.jsx("button",{type:"button",className:"location-btn "+(y?"loading":""),onClick:H,disabled:ae||y,onFocus:te,onBlur:ne,tabIndex:ae?-1:0,children:y?u.jsxs(u.Fragment,{children:[u.jsx(n.Loader2,{size:16,className:"loading-spinner"}),"Getting Location..."]}):u.jsxs(u.Fragment,{children:[u.jsx(n.Navigation,{size:16}),"Get Current Location"]})}),u.jsxs("button",{type:"button",className:"location-btn secondary",onClick:G,disabled:ae,onFocus:te,onBlur:ne,tabIndex:ae?-1:0,children:[u.jsx(n.MapPin,{size:16}),S?"Hide Map":"Choose on Map"]})]}),x&&u.jsxs("div",{className:"location-display",children:[!o&&u.jsx("button",{type:"button",className:"location-clear-btn",onClick:Y,disabled:ae,title:"Clear location",children:u.jsx(n.X,{size:16})}),x.placeName&&u.jsxs("div",{className:"location-place-name",children:[u.jsx("strong",{children:"Place:"})," ",x.placeName]}),(x.city||x.country)&&u.jsxs("div",{className:"location-address",children:[u.jsx("strong",{children:"Address:"})," ",[x.city,x.country].filter(Boolean).join(", ")]}),u.jsxs("div",{className:"location-coordinates",children:[u.jsx("strong",{children:"Coordinates:"})," ",(re=x.latitude,le=x.longitude,`${re.toFixed(6)}, ${le.toFixed(6)}`)]}),x.accuracy&&u.jsxs("div",{className:"location-accuracy",children:[u.jsx("strong",{children:"Accuracy:"})," ",(oe=x.accuracy,oe?`±${Math.round(oe)}m`:"")]}),x.timestamp&&u.jsxs("div",{className:"location-timestamp",children:[u.jsx("strong",{children:"Captured:"})," ",new Date(x.timestamp).toLocaleString()]})]}),S&&!o&&u.jsxs("div",{className:"location-map-container",children:[u.jsxs("div",{className:"location-map-header",children:[u.jsx("h4",{children:"Select Location on Map"}),u.jsx("p",{children:"Search for a place or click on the map to select a location"})]}),u.jsx("div",{className:"location-search",children:u.jsx("form",{onSubmit:e=>{e.preventDefault(),D.trim()&&ee(D)},className:"search-form",children:u.jsxs("div",{className:"search-input-group",children:[u.jsx("input",{type:"text",value:D,onChange:e=>{V(e.target.value)},placeholder:"Search for a place (e.g., New York, Paris, Tokyo)",className:"search-input",disabled:ae||F}),u.jsx("button",{type:"submit",className:"search-btn",disabled:ae||F||!D.trim(),children:F?u.jsx(n.Loader2,{size:16,className:"loading-spinner"}):"Search"})]})})}),u.jsxs("div",{ref:q,className:"location-map "+(z?"dragging":""),onMouseDown:K,onMouseMove:Z,onMouseUp:Q,onMouseLeave:()=>{M(!1),P(null)},style:{position:"relative",height:"400px",border:"2px solid var(--df-color-fb-border)",borderRadius:"8px",overflow:"hidden",cursor:z?"grabbing":"grab",background:`url(https://tile.openstreetmap.org/${I}/${Math.floor((T.lng+180)/360*Math.pow(2,I))}/${Math.floor((1-Math.log(Math.tan(T.lat*Math.PI/180)+1/Math.cos(T.lat*Math.PI/180))/Math.PI)/2*Math.pow(2,I))}.png) center/cover no-repeat`,userSelect:"none"},children:[A&&u.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:u.jsx(n.MapPin,{size:24})}),u.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}}),u.jsxs("div",{className:"map-controls",children:[u.jsx("button",{type:"button",className:"map-zoom-btn",onClick:()=>R(e=>Math.min(18,e+1)),disabled:I>=18,children:"+"}),u.jsx("button",{type:"button",className:"map-zoom-btn",onClick:()=>R(e=>Math.max(1,e-1)),disabled:I<=1,children:"−"})]})]}),u.jsxs("div",{className:"location-map-instructions",children:[u.jsx("p",{children:u.jsx("strong",{children:"Instructions:"})}),u.jsxs("ul",{children:[u.jsx("li",{children:"Search for a place using the search box above"}),u.jsx("li",{children:"Click anywhere on the map to select a location"}),u.jsx("li",{children:"Drag the map to pan around"}),u.jsx("li",{children:"Use the zoom buttons (+/−) to zoom in/out"}),u.jsx("li",{children:'Use "Get Current Location" to automatically detect your position'})]})]}),W&&u.jsxs("div",{className:"location-loading",children:[u.jsx(n.Loader2,{size:16,className:"loading-spinner"}),u.jsx("span",{children:"Loading address details..."})]})]}),C&&u.jsx("div",{className:"location-error",children:C})]}),u.jsx(f,{validationErrors:s,fieldId:e,touchedFields:l,formSubmitted:c,properties:a,localValidation:{isValid:!0,errors:{}},isTouched:k,mode:d})]});var oe,re,le},T=({id:e,properties:t,className:n="",hideLabel:a=!1})=>{const s=t.styles?.level??t.basic.level??1,i=t.basic.label,o=()=>{const e={};return t?.styles?.fontSize&&(e.fontSize=t.styles.fontSize),t?.styles?.color&&(e.color=t.styles.color),e};return a?null:(()=>{const a={id:e,className:`form-heading h${s} ${t?.styles?.textAlign?`text-${t.styles.textAlign}`:""} ${n}`.trim(),style:o()};switch(s){case 1:default:return u.jsx("h1",{...a,children:i});case 2:return u.jsx("h2",{...a,children:i});case 3:return u.jsx("h3",{...a,children:i});case 4:return u.jsx("h4",{...a,children:i});case 5:return u.jsx("h5",{...a,children:i});case 6:return u.jsx("h6",{...a,children:i})}})()},$=({id:e,properties:a,mode:s="preview",onValueChange:i,className:o="",hideLabel:r=!1})=>{const[l,c]=t.useState(""),[d,m]=t.useState(a.validation?.listStyle||"numbers"),[p,h]=t.useState("#000000"),f=t.useRef(null),b=t.useRef(null),g=t.useRef(!1),x="edit"===s,v=t.useRef({instructions:[],listStyle:"numbers"}),y=t.useRef(s);t.useEffect(()=>{let e=[];a.basic?.instructions&&(Array.isArray(a.basic.instructions)?e=a.basic.instructions:"string"==typeof a.basic.instructions&&(e=[a.basic.instructions]));const t=a.validation?.listStyle||"numbers",n=JSON.stringify(e)!==JSON.stringify(v.current.instructions)||t!==v.current.listStyle,i=s!==y.current;if(n||i){const a=e.some(e=>"string"==typeof e&&/<[^>]+>/.test(e));let o="";if(e.length>0)if(a)o=e.join("");else{const n="numbers"===t?"ol":"bullets"===t?"ul":"div",a=e.filter(e=>e&&"string"==typeof e).map(e=>`<li>${e.replace(/\n/g,"<br>")}</li>`).join("");o="div"===n?e.filter(e=>e&&"string"==typeof e).map(e=>`<div>${e.replace(/\n/g,"<br>")}</div>`).join(""):`<${n}>${a}</${n}>`}m(t),c(o),x&&f.current&&(i||n&&f.current.innerHTML.trim()!==o.trim())&&(f.current.innerHTML=o),v.current={instructions:e,listStyle:t},y.current=s}},[a.basic?.instructions,a.validation?.listStyle,s,x]),t.useEffect(()=>{if(x&&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,x]);const j=t.useCallback(()=>{if(!f.current)return;g.current=!0;const t=f.current.innerHTML.trim();if(i){i({id:e,value:{instructions:t?[t]:[],listStyle:d},isValid:!0,errors:{}})}t!==l&&c(t)},[e,d,i,l]),C=t.useCallback(()=>{if(!f.current)return;const t=f.current.innerHTML.trim();if(i){i({id:e,value:{instructions:t?[t]:[],listStyle:d},isValid:!0,errors:{}})}c(t),g.current=!1},[e,d,i]),N=t.useCallback((e,t)=>{document.execCommand(e,!1,t),f.current?.focus(),j()},[j]),k=t.useCallback(()=>{N("bold")},[N]),w=t.useCallback(()=>{N("italic")},[N]),S=t.useCallback(e=>{const t=e.target.value;h(t),N("foreColor",t)},[N]),E=t.useCallback(t=>{if(m(t),!f.current)return;const n=window.getSelection(),a=n&&n.rangeCount>0?n.getRangeAt(0):null;let s=f.current.innerHTML;if("numbers"===t){if(s=s.replace(/<ul>/gi,"<ol>").replace(/<\/ul>/gi,"</ol>"),!s.includes("<ol>")&&!s.includes("<ul>")){const e=s.split(/<br\s*\/?>/i).filter(e=>e.trim());e.length>0&&(s="<ol>"+e.map(e=>`<li>${e}</li>`).join("")+"</ol>")}}else if("bullets"===t){if(s=s.replace(/<ol>/gi,"<ul>").replace(/<\/ol>/gi,"</ul>"),!s.includes("<ol>")&&!s.includes("<ul>")){const e=s.split(/<br\s*\/?>/i).filter(e=>e.trim());e.length>0&&(s="<ul>"+e.map(e=>`<li>${e}</li>`).join("")+"</ul>")}}else s=s.replace(/<\/?[ou]l>/gi,"").replace(/<li>/gi,"<div>").replace(/<\/li>/gi,"</div>");if(f.current.innerHTML=s,c(s),a&&n)try{n.removeAllRanges(),n.addRange(a)}catch(e){}if(j(),i){i({id:e,value:{instructions:s?[s]:[],listStyle:t},isValid:!0,errors:{}})}},[e,j,i]),T=t.useCallback(e=>{const t=e.target.files?.[0];if(!t||!t.type.startsWith("image/"))return;const n=new FileReader;n.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 n=window.getSelection();if(n&&n.rangeCount>0){const t=n.getRangeAt(0);t.deleteContents(),t.insertNode(e)}else f.current.appendChild(e);j()}},n.readAsDataURL(t),b.current&&(b.current.value="")},[j]),$=t.useCallback(e=>{e.preventDefault();const t=e.clipboardData.getData("text/plain"),n=window.getSelection();if(n&&n.rangeCount>0){const e=n.getRangeAt(0);e.deleteContents();const a=document.createTextNode(t);e.insertNode(a),e.setStartAfter(a),e.collapse(!0),n.removeAllRanges(),n.addRange(e)}j()},[j]),A=t.useCallback(e=>document.queryCommandState(e),[]);return u.jsxs("div",{className:`form-group instruction-group ${o}`,children:[!r&&u.jsx("label",{htmlFor:e,className:"instruction-label",children:"Instructions"}),x?u.jsxs("div",{className:"instruction-rich-editor",children:[u.jsxs("div",{className:"instruction-toolbar",children:[u.jsxs("div",{className:"toolbar-group",children:[u.jsx("button",{type:"button",className:"toolbar-btn "+(A("bold")?"active":""),onClick:k,title:"Bold","aria-label":"Bold",children:u.jsx(n.Bold,{size:16})}),u.jsx("button",{type:"button",className:"toolbar-btn "+(A("italic")?"active":""),onClick:w,title:"Italic","aria-label":"Italic",children:u.jsx(n.Italic,{size:16})})]}),u.jsx("div",{className:"toolbar-separator"}),u.jsx("div",{className:"toolbar-group",children:u.jsxs("div",{className:"color-picker-wrapper",children:[u.jsx("input",{type:"color",value:p,onChange:S,className:"color-picker-input",title:"Text Color"}),u.jsx("label",{className:"color-picker-label",title:"Text Color",children:u.jsx("span",{style:{color:p},children:"A"})})]})}),u.jsx("div",{className:"toolbar-separator"}),u.jsxs("div",{className:"toolbar-group",children:[u.jsx("button",{type:"button",className:"toolbar-btn "+("bullets"===d?"active":""),onClick:()=>E("bullets"),title:"Bullet List","aria-label":"Bullet List",children:u.jsx(n.List,{size:16})}),u.jsx("button",{type:"button",className:"toolbar-btn "+("numbers"===d?"active":""),onClick:()=>E("numbers"),title:"Numbered List","aria-label":"Numbered List",children:u.jsx(n.ListOrdered,{size:16})})]}),u.jsx("div",{className:"toolbar-separator"}),u.jsxs("div",{className:"toolbar-group",children:[u.jsx("button",{type:"button",className:"toolbar-btn",onClick:()=>b.current?.click(),title:"Insert Image","aria-label":"Insert Image",children:u.jsx(n.Image,{size:16})}),u.jsx("input",{ref:b,type:"file",accept:"image/*",onChange:T,style:{display:"none"}})]})]}),u.jsx("div",{ref:f,contentEditable:!0,className:"instruction-editor-content",onInput:j,onBlur:C,onPaste:$,"data-placeholder":"Enter instructions (press Enter for a new line)...",suppressContentEditableWarning:!0})]}):u.jsx("div",{className:"instruction-preview-wrapper "+("numbers"===d?"instruction-list-numbers":"bullets"===d?"instruction-list-bullets":""),children:l?u.jsx("div",{className:"instruction-preview-content",dangerouslySetInnerHTML:{__html:l}}):u.jsx("div",{className:"instruction-empty",children:u.jsx("p",{children:"No instructions provided"})})})]})},A=({attachments:e,onRemove:a})=>{const[s,i]=t.useState(new Map);return t.useEffect(()=>{if(!e)return void i(e=>(e.forEach(e=>URL.revokeObjectURL(e)),new Map));const t=new Map;return e.forEach((e,n)=>{if(e.type.startsWith("image/")){const a=URL.createObjectURL(e);t.set(n,a)}}),i(e=>(e.forEach((e,n)=>{t.has(n)||URL.revokeObjectURL(e)}),t)),()=>{t.forEach(e=>URL.revokeObjectURL(e))}},[e]),e&&0!==e.length?u.jsx("div",{className:"attachment-thumbnails-container",children:e.map((e,t)=>{const i=e.type.startsWith("image/"),o=s.get(t);return u.jsx("div",{className:"attachment-thumbnail",children:i&&o?u.jsxs(u.Fragment,{children:[u.jsx("img",{src:o,alt:e.name}),u.jsx("button",{type:"button",className:"thumbnail-remove-btn",onClick:()=>a(t),title:"Remove attachment",children:u.jsx(n.X,{size:14})})]}):u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"file-icon-placeholder",children:u.jsx(n.Paperclip,{size:20})}),u.jsx("span",{className:"file-name",children:e.name}),u.jsx("button",{type:"button",className:"thumbnail-remove-btn",onClick:()=>a(t),title:"Remove attachment",children:u.jsx(n.X,{size:14})})]})},t)})}):null},L=({component:e,mode:a,formTemplateId:s,formValue:i,onNotesChange:o,onAttachmentChange:r,notes:l="",attachments:c=null,onThresholdActionCompletion:d,onThresholdIssueRaised:m,onBasicPropertyActionCompletion:p})=>{const[h,f]=t.useState(l||""),[g,x]=t.useState(c||null),[v,y]=t.useState(!1),[j,C]=t.useState(!1),[N,k]=t.useState(!1),[w,S]=t.useState(!1),[E,T]=t.useState(!1),$=t.useRef(null),L=t.useRef(i),I=t.useRef(!1),R=t.useRef(!1);t.useEffect(()=>{I.current||null==l||(f(l),I.current=!0)},[l]),t.useEffect(()=>{R.current||void 0===c||(x(c),R.current=!0)},[c]),t.useEffect(()=>{I.current&&!v&&null!=l&&(h&&""!==h.trim()&&l===h||f(l))},[l,v,h]),t.useEffect(()=>{R.current&&void 0!==c&&(!g||c&&c.length>0&&c!==g)&&x(c)},[c,g]),t.useEffect(()=>{const t=["select","radio","checkbox","segment"].includes(e.name||"");if(t){const t=L.current,n=i;let a=!1;if("checkbox"===e.name){const e=Array.isArray(t)?t:t?[t]:[],s=Array.isArray(n)?n:n?[n]:[];a=JSON.stringify(e.sort())!==JSON.stringify(s.sort())}else a=t!==n&&void 0!==t;a&&(k(!1),S(!1),C(!1),y(!1),T(!1),l&&""!==l.trim()||f(""),c&&0!==c.length||x(null)),L.current=n}t||(L.current=i)},[i,e.name,l,c]);const D=t.useCallback((e,t)=>{const{operator:n,value:a}=e,s=String(t).toLowerCase(),i=String(a).toLowerCase();switch(n){case"equals":return s===i||String(t)===String(a);case"notEquals":return s!==i&&String(t)!==String(a);case"greaterThan":return Number(t)>Number(a);case"lessThan":return Number(t)<Number(a);case"greaterThanOrEqual":return Number(t)>=Number(a);case"lessThanOrEqual":return Number(t)<=Number(a);default:return!1}},[]),V=t.useCallback(()=>{if(!(null!=i&&""!==i&&!(Array.isArray(i)&&0===i.length)))return[];const t=e.condition;if(!t||!t.conditions||0===t.conditions.length)return[];const n=[];if("checkbox"===e.name&&Array.isArray(i))i.forEach(e=>{const a=t.conditions.find(t=>D(t,e));a&&!n.find(e=>e.id===a.id)&&n.push(a)});else{const e=t.conditions.find(e=>D(e,i));e&&n.push(e)}return n},[e,i,D]),F=t.useCallback(t=>{const n=t.target.value;f(n),o&&o(n);const a=V(),s=n.trim().length>0;a.forEach(e=>{!0===e.enableNotes&&d&&d(e.id,"notes",s)});const i=e.condition;!(i&&i.conditions&&i.conditions.length>0)&&p&&p("notes",s)},[o,V,d,e,p]),O=t.useCallback(()=>{h.trim().length>0&&y(!1)},[h]),q=t.useCallback(()=>{y(!0)},[]),z=t.useCallback(()=>{y(!0)},[]),M=t.useCallback(()=>{$.current?.click()},[]),_=t.useCallback(t=>{const n=t.target.files;if(n&&n.length>0){const t=Array.from(n);x(t),r&&r(t);V().forEach(e=>{!0===e.enableAttachment&&d&&d(e.id,"attachments",!0)});const a=e.condition;!(a&&a.conditions&&a.conditions.length>0)&&p&&p("attachments",!0)}$.current&&($.current.value="")},[r,V,d,e,p]),P=t.useCallback(t=>{if(g){const n=g.filter((e,n)=>n!==t);if(0===n.length){x(null),r&&r(null);V().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 x(n),r&&r(n)}},[g,r,V,d,e,p]),W=t.useCallback(()=>{k(!0);V().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(()=>{k(!1)},3e3)},[V,d,e,p]),B=t.useCallback(()=>{C(!0)},[]),U=t.useCallback(()=>{C(!1)},[]),J=t.useCallback(()=>{C(!1),S(!0);const t=e.condition;if(t&&t.conditions&&t.conditions.length>0){V().forEach(e=>{!0===e.enableRaiseIssue&&m&&m(e.id)})}else p&&p("issue",!0)},[e,p,V,m]);if("test"!==a)return null;const H=["select","radio","checkbox","segment"].includes(e.name||""),Y=e.basic?.options||e.options||[];let G=!1,X=!1,K=!1,Z=!1,Q=null;const ee=null!=i&&""!==i&&!(Array.isArray(i)&&0===i.length),te=e.condition,ne=te&&te.conditions&&te.conditions.length>0;if(ne&&ee)if("checkbox"===e.name&&Array.isArray(i)){const e=i;for(const t of e){const e=te.conditions.find(e=>D(e,t));e&&(G=G||!0===e.enableNotes,X=X||!0===e.enableAttachment,K=K||!0===e.enableRaiseIssue,Z=Z||!0===e.enableSendEmail)}}else if(H){const e=te.conditions.find(e=>D(e,i));e&&(G=!0===e.enableNotes,X=!0===e.enableAttachment,K=!0===e.enableRaiseIssue,Z=!0===e.enableSendEmail)}else{const e=te.conditions.find(e=>D(e,i));e&&(G=!0===e.enableNotes,X=!0===e.enableAttachment,K=!0===e.enableRaiseIssue,Z=!0===e.enableSendEmail)}if(!ne){const t=!0===e.basic?.enableNotes,n=!0===e.basic?.enableAttachment,a=!0===e.basic?.enableRaiseIssue,s=!0===e.basic?.enableSendEmail;if(H&&ee)if("checkbox"===e.name){(Array.isArray(i)?i:[i]).forEach(e=>{const t=Y.find(t=>!(!t||!t.value)&&(t.value===e||(String(t.value)===String(e)||(t.label===e||String(t.label)===String(e)))));t&&(G=G||!0===t.enableNotes,X=X||!0===t.enableAttachment,K=K||!0===t.enableRaiseIssue,Z=Z||!0===t.enableSendEmail,Q||(Q=t))}),G=G||t,X=X||n,K=K||a,Z=Z||s}else if(Q=Y.find(e=>!(!e||!e.value)&&(e.value===i||(String(e.value)===String(i)||(e.label===i||String(e.label)===String(i))))),Q){const e=!0===Q.enableNotes,i=!0===Q.enableAttachment,o=!0===Q.enableRaiseIssue,r=!0===Q.enableSendEmail;G=e||t,X=i||n,K=o||a,Z=r||s}else G=t,X=n,K=a,Z=s;else G=t,X=n,K=a,Z=s}if(!(G||X||K||Z))return null;const ae=V(),se=e.condition,ie=se&&se.conditions&&se.conditions.length>0,oe=!!ie&&ae.some(e=>!0===e.enableNotes),re=!!ie&&ae.some(e=>!0===e.enableAttachment),le=!!ie&&ae.some(e=>!0===e.enableSendEmail),ce=!!ie&&ae.some(e=>!0===e.enableRaiseIssue),de=h.trim().length>0,ue=g&&g.length>0,me=g?g.length:0;return u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"component-action-features",children:[u.jsxs("div",{className:"action-icons-toolbar",children:[G&&u.jsxs("button",{type:"button",className:`action-icon-button ${de?"active":""} ${oe?"mandatory":""}`,onClick:q,title:"Add Notes",children:[u.jsx(n.MessageSquare,{size:14,fill:de?"currentColor":"none"}),oe&&u.jsx("span",{className:"mandatory-indicator",children:"*"})]}),X&&u.jsxs("button",{type:"button",className:`action-icon-button ${ue?"active":""} ${re?"mandatory":""}`,onClick:M,title:"Add Attachment",children:[u.jsx(n.Paperclip,{size:14,fill:ue?"currentColor":"none"}),me>0&&u.jsx("span",{className:"attachment-count-badge",children:me}),re&&u.jsx("span",{className:"mandatory-indicator",children:"*"})]}),Z&&u.jsxs("button",{type:"button",className:`action-icon-button ${N?"active sent":""} ${le?"mandatory":""}`,onClick:W,disabled:N,title:"Send Email",children:[N?u.jsx(u.Fragment,{children:u.jsx(n.Check,{size:14})}):u.jsx(n.Mail,{size:14,fill:N?"currentColor":"none"}),le&&u.jsx("span",{className:"mandatory-indicator",children:"*"})]}),K&&u.jsxs("button",{type:"button",className:`action-icon-button ${w?"active":""} ${ce?"mandatory":""}`,onClick:B,title:"Raise an Issue",children:[u.jsx(n.AlertCircle,{size:14,fill:w?"currentColor":"none"}),ce&&u.jsx("span",{className:"mandatory-indicator",children:"*"})]}),(de&&G||ue&&X)&&u.jsx("button",{type:"button",className:"action-icon-button accordion-toggle",onClick:()=>T(!E),title:E?"Collapse":"Expand",children:E?u.jsx(n.ChevronUp,{size:14}):u.jsx(n.ChevronDown,{size:14})})]}),v&&G&&u.jsx("div",{className:"notes-input-overlay",children:u.jsx("textarea",{className:"action-notes-textarea",value:h,onChange:F,onBlur:O,placeholder:"Explain which protocols were not followed",rows:4,autoFocus:!0})}),E&&u.jsxs("div",{className:"actions-content",children:[!v&&de&&G&&u.jsx("div",{className:"notes-summary-section",children:u.jsxs("div",{className:"notes-full-text",onClick:z,children:[u.jsx("span",{className:"notes-label",children:"Notes:"})," ",h]})}),ue&&X&&u.jsx("div",{className:"attachments-section",children:u.jsx(A,{attachments:g,onRemove:P})})]}),X&&u.jsx("input",{ref:$,type:"file",multiple:!0,accept:"image/*,.pdf",onChange:_,style:{display:"none"}})]}),j&&s&&u.jsx(b,{isOpen:j,onClose:U,onSuccess:J,component:Q?{...e,basic:{...e.basic,label:`${e.basic?.label||"Component"} - ${Q.label||Q.value}`,value:Q.value||e.basic?.value||""}}:e,formTemplateId:s,notes:h,attachments:g})]})},I=({attachments:e})=>e&&0!==e.length?u.jsx("div",{className:"attachment-thumbnails-container",children:e.map((e,t)=>{const a=e.type?.startsWith("image/")||!1,s=a?(e=>e.data?e.data.startsWith("data:")?e.data:`data:${e.type||"image/png"};base64,${e.data}`:"")(e):"";return u.jsx("div",{className:"attachment-thumbnail",children:a&&s?u.jsx("img",{src:s,alt:e.name||`Attachment ${t+1}`}):u.jsxs("div",{className:"file-icon-placeholder",children:[u.jsx(n.Paperclip,{size:20}),u.jsx("span",{className:"file-name",children:e.name||`File ${t+1}`})]})},t)})}):null,R=({component:e})=>{const t=e.basic?.notes||"",n=e.basic?.attachments||[],a=t&&t.trim().length>0,s=n&&n.length>0;return a||s?u.jsx("div",{className:"component-submission-actions",children:u.jsxs("div",{className:"actions-content",children:[a&&u.jsx("div",{className:"notes-summary-section",children:u.jsxs("div",{className:"notes-full-text",children:[u.jsx("span",{className:"notes-label",children:"Notes:"})," ",t]})}),s&&u.jsx("div",{className:"attachments-section",children:u.jsx(I,{attachments:n})})]})}):null},D=({child:e,selectedChild:t,mode:a,onChildSelect:o,onChildDelete:r,renderFormComponent:l,isOverlay:c=!1,isChildrenEditMode:d=!1,formData:m={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>{const x=m[e.id],v="preview"===a&&(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:k,isDragging:w,isSorting:S}=s.useSortable({id:e.id,disabled:c||"edit"!==a}),E={transform:i.CSS.Transform.toString(N),transition:k,opacity:w?.3:1,zIndex:w?1e3:"auto"};return u.jsxs("div",{ref:C,style:E,className:`form-component section-child ${t?.id===e.id?"selected":""} ${w?"dragging":""} ${S?"sorting":""} ${d?"children-edit-active":""}`,onClick:()=>!w&&o(e),role:"button",tabIndex:0,children:[("edit"===a||d)&&u.jsx("div",{className:"child-drag-handle",...j,...y,onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),children:u.jsx(n.GripVertical,{size:14})}),u.jsxs("div",{className:"form-component-content section-child-content",children:[("edit"===a||d)&&u.jsxs("div",{className:"component-actions child-actions",children:[u.jsx("button",{className:"btn edit-btn",onClick:t=>{t.stopPropagation(),o(e)},onMouseDown:e=>e.stopPropagation(),title:"Edit properties",children:u.jsx(n.Edit,{size:12})}),u.jsx("button",{className:"btn delete-btn",onClick:t=>r(e,t),onMouseDown:e=>e.stopPropagation(),title:"Delete component",children:u.jsx(n.Trash2,{size:12})})]}),u.jsxs("div",{className:"component-preview child-preview",children:[l(e),"test"===a&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&u.jsx(L,{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&&u.jsx(R,{component:e})]})]})]})},V=({id:e,properties:i,mode:o="edit",formData:r={},onValueChange:l,onSelect:c,isSelected:d=!1,className:m="",onSectionSelect:p,onChildSelect:h,onChildDelete:f,selectedChild:b,renderFormComponent:g,formTemplateId:N,onThresholdActionCompletion:S,onThresholdIssueRaised:E,onNotesChange:$,onAttachmentChange:A})=>{const[L,I]=t.useState(i.basic.collapsed),[R,V]=t.useState(!1),[F,O]=t.useState(!1),[q,z]=t.useState(i.basic.label),[M,_]=t.useState(i.basic.description),[P,W]=t.useState(i.children||[]),[B,U]=t.useState(!1);t.useEffect(()=>{W(i.children||[])},[i.children]),t.useEffect(()=>{z(i.basic.label),_(i.basic.description)},[i.basic.label,i.basic.description]);const{setNodeRef:J,isOver:H}=a.useDroppable({id:`section-${e}`,disabled:"edit"!==o}),Y=!("preview"!==o&&"test"!==o||i.children&&i.children.length>0),G=t.useCallback(t=>{z(t),l?.({id:e,value:{...i,basic:{...i.basic,label:t}}})},[e,i,l]),X=t.useCallback(t=>{_(t),l?.({id:e,value:{...i,basic:{...i.basic,description:t}}})},[e,i,l]),K=t.useCallback(e=>{h?.(e)},[h]),Z=t.useCallback((e,t)=>{t.stopPropagation();const n=P.filter(t=>t.id!==e.id);W(n),f?.(e.id)},[f,P,e]),Q=t.useCallback(()=>{p?.(i),c?.()},[p,c,i]),ee=t.useCallback(e=>{e.stopPropagation(),"edit"===o&&P.length>0&&U(!B)},[o,P.length,B]),te=t.useCallback(t=>{t.stopPropagation(),I(!L),l?.({id:e,value:{...i,basic:{...i.basic,collapsed:!L}}})},[L,e,i,l]),ne=g||t.useCallback(e=>{const t={id:e.id,properties:e,validationErrors:{},formValue:"test"===o?r[e.id]||"defaultValue"in e.basic&&e.basic.defaultValue||"":"defaultValue"in e.basic&&e.basic.defaultValue||"",touchedFields:{},formSubmitted:!1,mode:o,onValueChange:l,onBlur:()=>{},onFocus:()=>{}};switch(e.name){case"text-input":case"email-input":case"number-input":return u.jsx(x,{...t,properties:e,inputType:"text-input"===e.name?"text":"number-input"===e.name?"number":"email",readonly:"edit"===o||"preview"===o,disabled:"preview"===o});case"textarea":return u.jsx(v,{...t,properties:e,readonly:"edit"===o||"preview"===o,disabled:"preview"===o});case"select":const n={...e,options:e.basic?.options||[]};return u.jsx(y,{...t,properties:n,disabled:"edit"===o||"preview"===o});case"checkbox":const a={...e,options:e.basic?.options||[]};return u.jsx(j,{...t,properties:a,formValue:[],disabled:"edit"===o||"preview"===o});case"radio":const s={...e,options:e.basic?.options||[]};return u.jsx(C,{...t,properties:s,readonly:"edit"===o||"preview"===o,disabled:"edit"===o||"preview"===o});case"date":case"date-picker":case"datetime-picker":return u.jsx(k,{...t,properties:e,readonly:"edit"===o||"preview"===o,disabled:"preview"===o});case"signature":return u.jsx(w,{...t,properties:e});case"heading":return u.jsx(T,{...t,properties:e});default:return u.jsx("div",{className:"form-group",children:u.jsxs("div",{className:"form-group-label",children:["Unsupported Component: ",e.name]})})}},[o,l,r]);if(Y)return null;const ae={backgroundColor:i.styles.backgroundColor,borderColor:i.styles.borderColor,borderWidth:i.styles.borderWidth,borderRadius:i.styles.borderRadius,padding:i.styles.padding,margin:i.styles.margin};return u.jsxs("div",{ref:J,className:`df-form-section ${d?"selected":""} ${H?"drag-over":""} ${m}`,style:ae,children:[u.jsxs("div",{className:"section-header "+(B?"children-edit-mode":""),onClick:Q,onDoubleClick:ee,children:[u.jsx("div",{className:"section-header-content",children:u.jsxs("div",{className:"section-title",children:[u.jsx("span",{className:"section-toggle",title:L?"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:L?u.jsx(n.ChevronRight,{size:18}):u.jsx(n.ChevronDown,{size:18})}),"edit"===o&&R?u.jsx("input",{type:"text",value:q,onChange:e=>z(e.target.value),onBlur:()=>{V(!1),G(q)},onKeyDown:e=>{"Enter"===e.key&&(V(!1),G(q))},className:"section-title-input",autoFocus:!0}):u.jsx("h3",{className:"section-title-text",onDoubleClick:()=>"edit"===o&&V(!0),style:{display:"inline",margin:0},children:q||"Untitled Section"})]})}),(M||"edit"===o)&&u.jsx("div",{className:"section-description",children:"edit"===o&&F?u.jsx("textarea",{value:M,onChange:e=>_(e.target.value),onBlur:()=>{O(!1),X(M)},onKeyDown:e=>{"Enter"===e.key&&e.ctrlKey&&(O(!1),X(M))},className:"section-description-input",placeholder:"Section description (optional)",autoFocus:!0}):u.jsx("p",{className:"section-description-text",onDoubleClick:()=>"edit"===o&&O(!0),children:M||"Section description"})})]}),!L&&u.jsx("div",{className:`section-content ${H?"drag-over":""} ${0===P.length?"empty":"has-children"}`,onClick:e=>{e.target===e.currentTarget&&Q()},children:u.jsx(s.SortableContext,{items:P.map(e=>e.id),strategy:s.verticalListSortingStrategy,children:0===P.length?u.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:[u.jsx("div",{style:{fontWeight:"500",color:H?"#3b82f6":"#374151"},children:H?"Drop components here":"Empty Section"}),u.jsx("div",{style:{fontSize:"12px",color:"#9ca3af"},children:"Drag and drop components here to create your section"})]}):P.map(e=>u.jsx(D,{child:e,selectedChild:b||null,mode:o,onChildSelect:K,onChildDelete:Z,renderFormComponent:ne,isChildrenEditMode:B,formData:r,formTemplateId:N,onNotesChange:$,onAttachmentChange:A,onThresholdActionCompletion:S,onThresholdIssueRaised:E},e.id))})})]})},F=({component:e,selectedComponent:t,mode:a,onComponentSelect:o,onComponentDelete:r,onComponentEdit:l,renderFormComponent:c,isOverlay:d=!1,formData:m={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>{const x=m[e.id],v="preview"===a&&(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:k,isDragging:w,isSorting:S}=s.useSortable({id:e.id,disabled:d}),E={transform:i.CSS.Transform.toString(N),transition:k,opacity:w?.3:1,zIndex:w?1e3:"auto"};return u.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":""} ${S?"sorting":""}`,onClick:()=>!w&&o(e),role:"button",tabIndex:0,children:["edit"===a&&u.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:u.jsx(n.GripVertical,{size:12,color:"var(--df-color-text-light)"})}),u.jsxs("div",{className:"component-content",style:{paddingTop:"edit"===a?"24px":"0",paddingLeft:"edit"===a?"28px":"0",minHeight:"60px"},children:[c(e),"test"===a&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&u.jsx(L,{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&&u.jsx(R,{component:e})]}),"edit"===a&&u.jsxs("div",{className:"component-actions",style:{position:"absolute",top:"4px",right:"4px",display:"flex",gap:"4px",opacity:1,zIndex:10},children:[l&&u.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:u.jsx(n.Edit,{size:12})}),u.jsx("button",{className:"component-delete-btn",onClick:t=>{t.stopPropagation(),r(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:u.jsx(n.Trash2,{size:12})})]})]})},O=({gridComponents:e,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:o,onComponentUpdate:r,selectedComponent:l,renderFormComponent:c,gridId:d,formData:m={},formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})=>{const{setNodeRef:x,isOver:v}=a.useDroppable({id:`grid-drop-zone-${d}`,disabled:"edit"!==t});return u.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?u.jsxs(u.Fragment,{children:[u.jsx(s.SortableContext,{items:e.map(e=>e.id),strategy:s.horizontalListSortingStrategy,children:u.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=>u.jsx("div",{style:{flex:"1 1 0",minWidth:"200px",maxWidth:"100%"},children:u.jsx(F,{component:e,selectedComponent:l,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:o,onComponentUpdate:r,renderFormComponent:c,formData:m,formTemplateId:p,onThresholdActionCompletion:h,onThresholdIssueRaised:f,onNotesChange:b,onAttachmentChange:g})},e.id))})}),u.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?u.jsx("span",{style:{color:"#3b82f6",fontWeight:"500"},children:"Drop component here to add to grid"}):u.jsx("span",{children:"+ Drop more components here"})})]}):u.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:[u.jsx("div",{style:{fontWeight:"500",color:v?"var(--df-color-primary)":"var(--df-color-text-dark)"},children:v?"Drop components here":"Empty DataGrid"}),u.jsx("div",{style:{fontSize:"12px",color:"#9ca3af"},children:"Drag and drop components here to create your grid"})]})})},q=({templateComponents:e,dataEntries:t,renderFormComponent:n,mode:a="preview",allowAddRemoveEntries:s=!0,addAnotherText:i="Add Another",removeText:o="Remove",maxEntries:r=10,minEntries:l=1,displayAsGrid:c=!0,onAddEntry:d,onRemoveEntry:m,formData:p={},formTemplateId:h,onThresholdActionCompletion:f,onThresholdIssueRaised:b,onNotesChange:g,onAttachmentChange:x})=>0===e.length?u.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 ",c?"table":"list"," view."]}):c?u.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:[u.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 →"}),u.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:[u.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,n)=>u.jsx("div",{style:{padding:"12px 16px",fontWeight:"600",color:"var(--df-color-text-dark)",borderRight:n<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 ${n+1}`},`header-${t.id}`))}),t.length>0?t.map((i,r)=>u.jsxs("div",{className:"table-row",style:{display:"grid",gridTemplateColumns:`repeat(${e.length}, minmax(150px, 1fr))`,borderBottom:r<t.length-1?"1px solid var(--df-color-fb-border)":"none",backgroundColor:r%2==0?"var(--df-color-fb-container)":"var(--df-color-fb-bg)",position:"relative",minWidth:150*e.length+"px"},children:[e.map((t,a)=>{let s=i.components?.[a];if(s)s={...s,id:s.id,basic:{...s.basic,showLabel:!1}};else{const e=`${t.id}-entry-${r}-${a}`;s={...t,id:e,basic:{...t.basic,showLabel:!1}}}return u.jsx("div",{style:{padding:"12px 16px",borderRight:a<e.length-1?"1px solid var(--df-color-fb-border)":"none",minHeight:"60px",minWidth:"150px",display:"flex",alignItems:"center",overflow:"hidden"},children:u.jsx("div",{style:{width:"100%",minWidth:"120px",overflow:"hidden"},children:n(s,!0)})},`${i.id}-${a}`)}),"test"===a&&s&&t.length>l&&u.jsx("button",{onClick:()=>m?.(r),disabled:t.length<=l,style:{position:"absolute",top:"8px",right:"8px",padding:"4px 8px",backgroundColor:t.length<=l?"#f3f4f6":"#ef4444",color:t.length<=l?"#9ca3af":"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px",fontWeight:"500",cursor:t.length<=l?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",zIndex:10,minWidth:"24px",height:"24px",justifyContent:"center"},title:o,children:u.jsx("span",{style:{fontSize:"14px"},children:"×"})})]},i.id)):u.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"===a&&s?'Click "Add Another" to add entries.':"Use the properties panel to add entries."]})]}),"test"===a&&s&&u.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:u.jsxs("button",{onClick:d,disabled:t.length>=r,style:{padding:"8px 16px",backgroundColor:t.length>=r?"#f3f4f6":"#10b981",color:t.length>=r?"#9ca3af":"#ffffff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"500",cursor:t.length>=r?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"6px"},children:[u.jsx("span",{style:{fontSize:"16px"},children:"+"}),i]})})]}):u.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((i,r)=>u.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:[u.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px",paddingBottom:"8px",borderBottom:"1px solid var(--df-color-fb-border)"},children:[u.jsxs("span",{style:{fontWeight:"600",color:"var(--df-color-text-dark)",fontSize:"14px"},children:["Entry #",r+1]}),"test"===a&&s&&t.length>1&&u.jsx("button",{onClick:()=>m?.(r),disabled:t.length<=l,style:{padding:"4px 8px",backgroundColor:t.length<=l?"#f3f4f6":"#ef4444",color:t.length<=l?"#9ca3af":"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px",fontWeight:"500",cursor:t.length<=l?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"4px",minWidth:"24px",height:"24px",justifyContent:"center"},title:o,children:u.jsx("span",{style:{fontSize:"14px"},children:"×"})})]}),u.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px"},children:e.map((e,t)=>{let s=i.components?.[t];if(s||(s=i.components?.find(t=>t.name===e.name&&t.basic?.label===e.basic?.label)),s)s={...s,id:s.id,basic:{...s.basic,showLabel:!1}};else{const n=`${e.id}-entry-${r}-${t}`;s={...e,id:n,basic:{...e.basic,showLabel:!1}}}return u.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[u.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}`}),u.jsxs("div",{style:{minHeight:"40px",display:"flex",alignItems:"center",flexDirection:"column",width:"100%"},children:[n(s),"test"===a&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(s.name)&&u.jsx(L,{component:s,mode:"test",formTemplateId:h,formValue:p[s.id],onThresholdActionCompletion:f,onThresholdIssueRaised:b,onNotesChange:g?e=>g(s.id,e):void 0,onAttachmentChange:x?e=>x(s.id,e):void 0}),"preview"===a&&(s.basic?.notes&&s.basic.notes.trim().length>0||s.basic?.attachments&&Array.isArray(s.basic.attachments)&&s.basic.attachments.length>0?u.jsx(R,{component:s}):null)]})]},`${i.id}-${t}`)})})]},i.id)):u.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"===a&&s?'Click "Add Another" to add entries.':"Use the properties panel to add entries."]}),"test"===a&&s&&u.jsx("div",{style:{padding:"16px",backgroundColor:"#f8f9fa",border:"1px solid var(--df-color-fb-border)",borderRadius:"8px",display:"flex",justifyContent:"center"},children:u.jsxs("button",{onClick:d,disabled:t.length>=r,style:{padding:"8px 16px",backgroundColor:t.length>=r?"#f3f4f6":"#10b981",color:t.length>=r?"#9ca3af":"#ffffff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"500",cursor:t.length>=r?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"8px",transition:"all 0.2s ease"},onMouseEnter:e=>{t.length<r&&(e.currentTarget.style.backgroundColor="#059669")},onMouseLeave:e=>{t.length<r&&(e.currentTarget.style.backgroundColor="#10b981")},children:[u.jsx("span",{children:"+"}),i]})})]}),z=({id:e,properties:a,mode:s="edit",formData:i={},onValueChange:o,onSelect:r,isSelected:l=!1,className:c="",onDataGridSelect:d,onComponentSelect:m,onComponentDelete:p,onComponentEdit:h,onComponentUpdate:f,selectedComponent:b,renderFormComponent:g,onEntryAdd:N,onEntryRemove:S,formTemplateId:E,onThresholdActionCompletion:A,onThresholdIssueRaised:L,onNotesChange:I,onAttachmentChange:R})=>{const[D,V]=t.useState(!1),F=t.useRef(!1);let z=a.templateComponents||[];const M=a.entries||[];0===z.length&&M.length>0&&M[0].components&&(z=M[0].components.map(e=>({...e,id:e.id?.replace(/-entry-\d+$/,"")||e.id,basic:{...e.basic,showLabel:!0}}))),t.useEffect(()=>{if("edit"===s&&!a.templateComponents&&o&&F.current){const t={...a,templateComponents:[]};JSON.stringify(t)!==JSON.stringify(a)&&o({id:e,value:t})}F.current=!0},[a.templateComponents,e,o,a,s]),t.useEffect(()=>{if(z.length>0){if("test"===s&&0===M.length&&F.current){const t={id:`entry-${e}-0`,index:0,components:z.map((e,t)=>({...e,id:`${e.id}-entry-0-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}};if(o){const n={...a,entries:[t]};JSON.stringify(n)!==JSON.stringify(a)&&o({id:e,value:n})}return}if("edit"!==s||!F.current)return;if(M.some(e=>e.components?.some((t,n)=>{const a=`${z[n]?.id}-entry-${e.index}-${n}`;return t.id!==a}))&&o){const t=M.map(e=>({...e,components:e.components?.map((t,n)=>({...t,id:`${z[n]?.id}-entry-${e.index}-${n}`}))||[]})),n={...a,entries:t};return void(JSON.stringify(n)!==JSON.stringify(a)&&o({id:e,value:n}))}if(0===M.length&&"edit"===s){const t={id:`entry-${e}-0`,index:0,components:z.map((e,t)=>({...e,id:`${e.id}-entry-0-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}};if(o){const n={...a,entries:[t]};JSON.stringify(n)!==JSON.stringify(a)&&o({id:e,value:n})}}else if(M.length>0){if(M.some(e=>z.some((t,n)=>{const a=e.components?.[n];if(!a)return!0;const s=`${t.id}-entry-${e.index}-${n}`,i=a.id===s,o=JSON.stringify(a.basic?.options)!==JSON.stringify(t.basic?.options)||a.basic?.placeholder!==t.basic?.placeholder||a.basic?.defaultValue!==t.basic?.defaultValue||a.basic?.label!==t.basic?.label||a.validation?.required!==t.validation?.required;return!i||o}))&&o){const t=M.map(e=>{const t=z.map((t,n)=>{let a=e.components?.[n];a||(a=e.components?.find(e=>e.name===t.name&&e.basic?.label===t.basic?.label));const s=`${t.id}-entry-${e.index}-${n}`;if(a){return{...t,id:s,basic:{...t.basic,showLabel:!1,value:a.basic?.value||t.basic?.defaultValue||""}}}return{...t,id:s,basic:{...t.basic,showLabel:!1}}});return{...e,components:t}}),n={...a,entries:t};JSON.stringify(n)!==JSON.stringify(a)&&o({id:e,value:n})}}}},[z,M,e,o,a,s,a.templateComponents]);const _=t.useCallback(e=>{e.stopPropagation(),r?.(),d?.(a)},[r,d,a]),P=t.useCallback((t,n)=>{n.stopPropagation(),p&&p(t,n);const s=z.filter(e=>e.id!==t.id),i=M.map(e=>({...e,components:e.components?.filter(e=>!(e.name===t.name&&e.basic?.label===t.basic?.label))||[]}));o&&o({id:e,value:{...a,templateComponents:s,entries:i}})},[p,a,o,e,z,M]),W=t.useCallback((t,n)=>{f&&f(t,n);const s=z.map(e=>e.id===t?{...e,...n}:e);o&&o({id:e,value:{...a,templateComponents:s}})},[f,a,o,e,z]),B=t.useCallback(e=>{"test"===s&&o&&o({id:e.id,value:e.value})},[s,o]),U=t.useCallback(()=>{if(0===z.length)return void console.warn("Cannot add entry: No template components defined");const t=a.entries||[],n=t.length,s={id:`entry-${e}-${n}`,index:n,components:z.map((e,t)=>({...e,id:`${e.id}-entry-${n}-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}},i=[...t,s];o&&o({id:e,value:{...a,entries:i}}),N?.()},[a,o,e,N,z]),J=t.useCallback(t=>{const n=a.entries.filter((e,n)=>n!==t).map((t,n)=>({...t,index:n,id:`entry-${e}-${n}`}));o&&o({id:e,value:{...a,entries:n}})},[a,o,e,S]),H=t.useCallback((e,t=!1)=>{const n="test"===s?i[e.id]||"defaultValue"in e.basic&&e.basic.defaultValue||"":"defaultValue"in e.basic&&e.basic.defaultValue||"",a={id:e.id,properties:e,validationErrors:{},formValue:n,touchedFields:{},formSubmitted:!1,mode:s,hideLabel:t,onValueChange:B,onBlur:()=>{},onFocus:()=>{}};switch(e.name){case"text-input":case"email-input":case"number-input":return u.jsx(x,{...a,properties:e,inputType:"text-input"===e.name?"text":"number-input"===e.name?"number":"email",readonly:"edit"===s||"preview"===s,disabled:"preview"===s,hideLabel:t});case"textarea":return u.jsx(v,{...a,properties:e,readonly:"edit"===s||"preview"===s,disabled:"preview"===s,hideLabel:t});case"select":const n={...e,options:e.basic?.options||[]};return u.jsx(y,{...a,properties:n,disabled:"edit"===s||"preview"===s,hideLabel:t});case"checkbox":const i={...e,options:e.basic?.options||[]};return u.jsx(j,{...a,properties:i,formValue:[],disabled:"edit"===s||"preview"===s,hideLabel:t});case"radio":const o={...e,options:e.basic?.options||[]};return u.jsx(C,{...a,properties:o,readonly:"edit"===s||"preview"===s,disabled:"edit"===s||"preview"===s,hideLabel:t});case"date":case"date-picker":case"datetime-picker":return u.jsx(k,{...a,properties:e,readonly:"edit"===s||"preview"===s,disabled:"preview"===s,hideLabel:t});case"signature":return u.jsx(w,{...a,properties:e,hideLabel:t});case"heading":return u.jsx(T,{...a,properties:e,hideLabel:t});case"instructions":return u.jsx($,{...a,properties:e,hideLabel:t});default:return u.jsxs("div",{className:"unknown-component",children:["Unknown component: ",e.name]})}},[s,B]),Y={backgroundColor:a.styles.backgroundColor||"var(--df-color-fb-container)",borderColor:a.styles.borderColor||"var(--df-color-fb-border)",borderWidth:a.styles.borderWidth||"2px",borderRadius:a.styles.borderRadius||"8px",padding:a.styles.padding||"16px",margin:a.styles.margin||"16px 0"};return u.jsxs("div",{className:`form-group df-form-datagrid ${l?"selected":""} ${c}`,onClick:_,style:Y,children:[u.jsx("div",{className:"grid-header",children:u.jsx("div",{className:"grid-title",onClick:t=>{t.stopPropagation(),V(!D),o?.({id:e,value:{...a,basic:{...a.basic,collapsed:!D}}})},children:u.jsxs("div",{className:"title-content",style:{display:"flex",alignItems:"center",gap:"8px"},children:[D?u.jsx(n.ChevronRight,{size:16}):u.jsx(n.ChevronDown,{size:16}),u.jsx(n.Grid,{size:16}),u.jsx("span",{className:"grid-label",style:{fontWeight:"600"},children:a.basic.label}),a.validation.required&&u.jsx("span",{className:"required-indicator",style:{color:"#ef4444"},children:"*"})]})})}),a.basic.description&&!D&&u.jsx("div",{className:"grid-description",style:{marginTop:"8px",color:"var(--df-color-text-light)",fontSize:"14px"},children:a.basic.description}),!D&&u.jsx("div",{className:"grid-content",style:{marginTop:"16px"},children:"edit"===s?u.jsx(O,{gridComponents:z,mode:s,onComponentSelect:m||(()=>{}),onComponentDelete:P,onComponentEdit:h,onComponentUpdate:W,selectedComponent:b||null,renderFormComponent:g||H,gridId:e,formData:i,formTemplateId:E,onThresholdActionCompletion:A,onThresholdIssueRaised:L,onNotesChange:I,onAttachmentChange:R}):u.jsx(q,{templateComponents:z,dataEntries:M,renderFormComponent:g||H,mode:s,allowAddRemoveEntries:a.datagrid?.allowAddRemoveEntries??!0,addAnotherText:a.datagrid?.addAnotherText??"Add Entry",removeText:a.datagrid?.removeText??"Remove",maxEntries:a.datagrid?.maxEntries??10,minEntries:a.datagrid?.minEntries??1,displayAsGrid:a.datagrid?.displayAsGrid??!0,onAddEntry:N||U,onRemoveEntry:S||J,formData:i,formTemplateId:E,onThresholdActionCompletion:A,onThresholdIssueRaised:L,onNotesChange:I,onAttachmentChange:R})})]})},M=t.lazy(()=>Promise.resolve().then(function(){return H})),_=e=>e.id?e:{...e,id:o.v4()},P=({component:e,mode:t,renderFormComponent:n,formData:a={},formTemplateId:s,onThresholdActionCompletion:i,onNotesChange:o,onAttachmentChange:r})=>{const l=a[e.id],c="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 u.jsxs("div",{className:"simple-table-component",children:[n(e),"test"===t&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&u.jsx(L,{component:e,mode:"test",formTemplateId:s,formValue:l,onThresholdActionCompletion:i,onNotesChange:o?t=>o(e.id,t):void 0,onAttachmentChange:r?t=>r(e.id,t):void 0}),c&&u.jsx(R,{component:e})]})},W=({component:e,selectedComponent:t,mode:a,onComponentSelect:o,onComponentDelete:r,onComponentEdit:l,renderFormComponent:c,isOverlay:d=!1})=>{const{attributes:m,listeners:p,setNodeRef:h,transform:f,transition:b,isDragging:g,isSorting:x}=s.useSortable({id:e.id,disabled:d}),v={transform:i.CSS.Transform.toString(f),transition:b,opacity:g?.3:1,zIndex:g?1e3:"auto"};return u.jsxs("div",{ref:h,style:v,className:`form-component table-component ${t?.id===e.id?"selected":""} ${g?"dragging":""} ${x?"sorting":""}`,onClick:()=>!g&&o(e),role:"button",tabIndex:0,children:["edit"===a&&u.jsx("div",{className:"component-drag-handle",...p,...m,onClick:e=>e.stopPropagation(),style:{opacity:1},children:u.jsx(n.GripVertical,{size:14})}),u.jsx("div",{className:"component-content",children:c(e)}),"edit"===a&&u.jsxs("div",{className:"component-actions",style:{opacity:1},children:[l&&u.jsx("button",{className:"component-edit-btn",onClick:t=>{t.stopPropagation(),l(e)},type:"button",title:"Edit Component",children:u.jsx(n.Edit,{size:12})}),u.jsx("button",{className:"component-delete-btn",onClick:t=>{t.stopPropagation(),r(e,t)},type:"button",title:"Delete Component",children:u.jsx(n.Trash2,{size:12})})]})]})},B=({cell:e,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:r,selectedComponent:l,renderFormComponent:c,formData:d={},formTemplateId:m,onThresholdActionCompletion:p,tableId:h,onNotesChange:f,onAttachmentChange:b})=>{const g=`table-cell-${h}-${e.row}-${e.column}`,{setNodeRef:x,isOver:v}=a.useDroppable({id:g,disabled:"edit"!==t,data:{type:"table-cell",tableId:h,cell:e,row:e.row,column:e.column}}),y={...e.styles,backgroundColor:v?"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":v?"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 u.jsx("td",{ref:x,style:y,className:"table-cell "+(v?"drag-over":""),children:u.jsx("div",{className:"cell-content",children:e.components&&Array.isArray(e.components)&&e.components.length>0?"edit"===t?u.jsx(s.SortableContext,{items:e.components.map(e=>e.id||o.v4()),strategy:s.verticalListSortingStrategy,children:e.components.map(e=>{const a=_(e);return u.jsx(W,{component:a,selectedComponent:l,mode:t,onComponentSelect:n,onComponentDelete:i,onComponentEdit:r,renderFormComponent:c},a.id)})}):e.components.map(e=>{const n=_(e);return u.jsx(P,{component:n,mode:t,renderFormComponent:c,formData:d,formTemplateId:m,onThresholdActionCompletion:p,onNotesChange:f,onAttachmentChange:b},n.id)}):"edit"===t?u.jsx("div",{className:"empty-cell-placeholder",children:u.jsxs("div",{className:"cell-info",children:[u.jsx("span",{className:"drop-zone-text",children:"Drag and Drop a form component"}),u.jsxs("span",{className:"cell-coordinates",children:["Cell (",e.row+1,", ",e.column+1,")"]})]})}):u.jsx("div",{style:{minHeight:"20px",backgroundColor:"transparent",visibility:"hidden"},children:" "})})})},U=({id:e,properties:a,mode:s="edit",formData:i={},onValueChange:o,onSelect:r,isSelected:l=!1,className:c="",onTableSelect:d,onComponentSelect:m,onComponentDelete:p,onComponentEdit:h,selectedComponent:f,renderFormComponent:b,formTemplateId:g,onThresholdActionCompletion:N,onNotesChange:S,onAttachmentChange:E})=>{const[$,A]=t.useState(!1),L=a.cells?.some(e=>e.some(e=>e.components&&e.components.length>0))||!1;t.useEffect(()=>{const t=a.table?.rows||a.basic?.rows||3,n=a.table?.columns||a.basic?.columns||3,s=a.cells||[];if(0===s.length||s.length!==t||s.length>0&&s[0].length!==n){const i=[];for(let e=0;e<t;e++){const t=[];for(let a=0;a<n;a++){const n=`cell-${e}-${a}`;let i=[];s[e]&&s[e][a]&&(i=(s[e][a].components||[]).map(_)),t.push({id:n,row:e,column:a,components:i,styles:{}})}i.push(t)}o&&o({id:e,value:{...a,cells:i}})}},[a.table?.rows,a.table?.columns,a.basic?.rows,a.basic?.columns,a.cells,e,o]);const I=t.useCallback(e=>{e.stopPropagation(),r?.(),d?.(a)},[r,d,a]),R=t.useCallback((t,n)=>{n.stopPropagation();const s=a.cells.map(e=>e.map(e=>{if(e.components&&e.components.some(e=>e.id===t.id)){const n=e.components.filter(e=>e.id!==t.id);return{...e,components:n}}return e}));o&&o({id:e,value:{...a,cells:s}})},[p,a,o,e]),D=a.cells?a.cells.map(e=>e.map(e=>({...e,components:e.components&&Array.isArray(e.components)?e.components.map(e=>e.id?e:{...e,id:`table-cell-${e.name}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}):[]}))):[];t.useEffect(()=>{D.length>0&&JSON.stringify(D)!==JSON.stringify(a.cells)&&o?.({id:e,value:{...a,cells:D}})},[D,a.cells,e,o]);const V=b||t.useCallback(e=>{const t=_(e);let n=i[t.id];null==n&&(n="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 a={id:t.id,properties:t,validationErrors:{},formValue:n,touchedFields:{},formSubmitted:!1,mode:s,onValueChange:e=>{o?.(e)},onBlur:()=>{},onFocus:()=>{}};switch(t.name){case"text-input":case"email-input":case"number-input":return u.jsx(x,{...a,properties:t,inputType:"text-input"===t.name?"text":"number-input"===t.name?"number":"email",readonly:"edit"===s||"preview"===s,disabled:"preview"===s});case"textarea":return u.jsx(v,{...a,properties:t,readonly:"edit"===s||"preview"===s,disabled:"preview"===s});case"select":const e={...t,options:t.basic?.options||[]};return u.jsx(y,{...a,properties:e,disabled:"edit"===s||"preview"===s});case"checkbox":const n={...t,options:t.basic?.options||[]};return u.jsx(j,{...a,properties:n,formValue:[],disabled:"edit"===s||"preview"===s});case"radio":const i={...t,options:t.basic?.options||[]};return u.jsx(C,{...a,properties:i,readonly:"edit"===s||"preview"===s,disabled:"edit"===s||"preview"===s});case"date":case"date-picker":case"datetime-picker":return u.jsx(k,{...a,properties:t,readonly:"edit"===s||"preview"===s,disabled:"preview"===s});case"signature":return u.jsx(w,{...a,properties:t});case"heading":return u.jsx(T,{...a,properties:t});default:return u.jsxs("div",{className:"unknown-component",children:["Unknown component: ",t.name]})}},[s]),F={backgroundColor:a.styles?.backgroundColor||"var(--df-color-fb-container)",borderColor:a.styles?.borderColor||"var(--df-color-fb-border)",borderWidth:a.styles?.borderWidth||"2px",borderRadius:a.styles?.borderRadius||"8px",padding:a.styles?.padding||"16px",margin:a.styles?.margin||"16px 0"},O={width:"100%",minWidth:"600px",borderCollapse:"preview"===s||"test"===s?"separate":"collapse",tableLayout:"fixed",border:"preview"===s||"test"===s?"1px solid var(--df-color-fb-border)":"none"};return L||"preview"!==s?u.jsxs("div",{className:`form-group df-form-table ${l?"selected":""} ${"preview"===s?"preview-mode":"test"===s?"test-mode":""} ${c}`,onClick:I,style:F,children:[u.jsx("div",{className:"table-header",children:u.jsx("div",{className:"table-title",onClick:t=>{t.stopPropagation(),A(!$),o?.({id:e,value:{...a,basic:{...a.basic||{},collapsed:!$}}})},children:u.jsxs("div",{className:"title-content",children:[$?u.jsx(n.ChevronRight,{size:16}):u.jsx(n.ChevronDown,{size:16}),u.jsx(n.Table,{size:16}),u.jsx("span",{className:"table-label",children:a.basic?.label||"Table"}),a.validation?.required&&u.jsx("span",{className:"required-indicator",children:"*"})]})})}),a.basic?.description&&!$&&u.jsx("div",{className:"table-description",children:a.basic.description}),!$&&u.jsxs("div",{className:"table-content",children:[null,u.jsxs("table",{style:O,children:[a.table?.displayAsTable&&("edit"===s||a.table?.showColumns)&&u.jsx("thead",{children:u.jsx("tr",{className:"table-header-row",children:Array.from({length:a.table?.columns||a.basic?.columns||3},(e,t)=>{const n=(a.table?.columnNames?.split(",").map(e=>e.trim())||[])[t]||`Column ${t+1}`;return u.jsx("th",{className:"table-header-cell",style:{backgroundColor:(a.styles.headerBackgroundColor,"var(--df-color-fb-container)"),color:a.styles.headerTextColor||"var(--df-color-text-dark)",padding:"12px",border:"1px solid var(--df-color-fb-border)",fontWeight:"600",fontSize:"14px",textAlign:"center"},children:n},`header-${t}`)})})}),u.jsx("tbody",{children:a.cells?.map((t,n)=>u.jsx("tr",{className:"table-row",children:t.map(t=>u.jsx(B,{cell:t,mode:s,onComponentSelect:m||(()=>{}),onComponentDelete:R,onComponentEdit:h,selectedComponent:f||null,renderFormComponent:V,formData:i,formTemplateId:g,onThresholdActionCompletion:N,tableId:e,onNotesChange:S,onAttachmentChange:E},t.id))},n))})]})]})]}):null};var J,H=Object.freeze({__proto__:null,DfFormTable:U,default:U});exports.ELabelAlignment=void 0,(J=exports.ELabelAlignment||(exports.ELabelAlignment={})).Top="top",J.Left="left",exports.ComponentActionFeatures=L,exports.ComponentSubmissionActions=R,exports.DfFormCheckbox=j,exports.DfFormComments=({comment:e="",onSave:n,placeholder:a="Enter your reason...",className:s="",disabled:i=!1})=>{const[o,r]=t.useState(!0),[l,c]=t.useState(e),[d,m]=t.useState(!1);t.useEffect(()=>{c(e),m(!1)},[e]);const p=t.useCallback(t=>{const n=t.target.value;c(n),m(n!==e)},[e]),h=t.useCallback(()=>{d&&n&&!i&&(n(l),m(!1))},[d,n,l,i]),f=t.useCallback(()=>{},[]),b=t.useCallback(()=>{i||r(!o)},[o,i]);return u.jsxs("div",{className:`df-form-comments ${s}`,children:[u.jsxs("div",{className:"df-form-comments__header",children:[u.jsx("h3",{className:"df-form-comments__title",children:"Comments"}),u.jsx("button",{className:"df-form-comments__toggle",type:"button",onClick:b,"aria-expanded":o,"aria-label":"Toggle comments section",disabled:i,children:o?u.jsx("span",{className:"df-form-comments__toggle-icon",children:"▼"}):u.jsx("span",{className:"df-form-comments__toggle-icon",children:"▶"})})]}),u.jsx("div",{className:"df-form-comments__content "+(o?"df-form-comments__content--expanded":""),children:u.jsx("div",{className:"df-form-comments__input-container",children:u.jsx("div",{className:"df-form-comments__input-line",children:u.jsx("input",{type:"text",id:"comment-input",className:"df-form-comments__input",value:l,onChange:p,onBlur:h,onFocus:f,placeholder:a,disabled:i})})})})]})},exports.DfFormDataGrid=z,exports.DfFormDateTime=k,exports.DfFormErrorMsg=f,exports.DfFormFileUpload=S,exports.DfFormHeading=T,exports.DfFormInput=x,exports.DfFormInstruction=$,exports.DfFormLocation=E,exports.DfFormPreview=({formComponents:e=[],currentDevice:n="desktop",isPreviewMode:a=!1,initialFormData:s=[],onSubmit:i,onFormDataChange:o,formTitle:r,formDescription:l,formTemplateId:c,onComponentSelect:d,onComponentDelete:m,onComponentEdit:f,onComponentUpdate:b,selectedComponent:g})=>{const[A,I]=t.useState({}),[D,F]=t.useState({}),[O,q]=t.useState(!1),[_,P]=t.useState({}),[W,B]=t.useState({}),[U,J]=t.useState(new Set),[H,Y]=t.useState(new Map),[G,X]=t.useState({isValid:!0});t.useEffect(()=>{Z()},[e,s]);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,n)=>{Array.isArray(e)&&e.forEach((e,n)=>{e&&e.components&&Array.isArray(e.components)&&K(e.components,t)})}),e.entries&&Array.isArray(e.entries)&&e.entries.forEach((e,n)=>{e&&e.components&&Array.isArray(e.components)&&K(e.components,t)}),"file"===e.name&&e.basic){const n=e.basic.files||e.basic.attachments||e.basic.value;n&&(t[e.id]=n)}"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&&s.length>0&&K(s,t),e&&e.length>0&&K(e,t),I(t),ee()},[s,e]),Q=(t,n)=>{t.forEach(t=>{if(t.id)if("table"===t.name||"datagrid"===t.name)n[t.id]=!0;else if(t.conditional){const a=p.evaluateConditionalLogic(t.conditional,e,A);n[t.id]=a.shouldShow}else n[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,n)})}),t.entries&&Array.isArray(t.entries)&&t.entries.forEach(e=>{e.components&&Array.isArray(e.components)&&Q(e.components,n)}),t.children&&Array.isArray(t.children)&&Q(t.children,n)})},ee=t.useCallback(()=>{const t={};e&&e.length>0&&Q(e,t),B(t)},[e,A]),te=t.useCallback(t=>{const n=e.find(e=>e.id===t);if(n&&("table"===n.name||"datagrid"===n.name))return!0;return!1!==W[t]},[W,e]),ne=t.useCallback(t=>{const n={...A,[t.id]:t.value};I(n);const a=e.find(e=>e.id===t.id);if(a){const e=a?.threshold;e&&e.conditions&&e.conditions.length>0&&J(t=>{const n=new Set(t);return e.conditions.forEach(e=>{n.delete(e.id)}),n})}const s=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:s(e.children)}:"table"===e.name&&e.cells?{...e,cells:e.cells.map(e=>e.map(e=>{const t={...e};return t.components&&(t.components=s(t.components)),t}))}:"datagrid"===e.name&&e.entries?{...e,entries:e.entries.map(e=>{const t={...e};return t.components&&(t.components=s(t.components)),t})}:e),i=s(e);o?.(i),D[t.id]&&F(e=>({...e,[t.id]:""})),setTimeout(()=>{const t={};e.forEach(a=>{if("table"===a.name||"datagrid"===a.name)t[a.id]=!0;else if(a.conditional){const s=p.evaluateConditionalLogic(a.conditional,e,n);t[a.id]=s.shouldShow}else t[a.id]=!0}),B(t)},0)},[e,A,D,o]),ae=t.useCallback(e=>{P(t=>({...t,[e]:!0})),ie(e)},[]),se=t.useCallback(e=>{D[e]&&F(t=>({...t,[e]:""}))},[D]),ie=t.useCallback(t=>{if(a)return;const n=e.find(e=>e.id===t);if(!n)return;const s=A[t]||"";let i=!1;i=Array.isArray(s)?s.length>0:"string"==typeof s?""!==s.trim():null!=s;let o="";if(n.validation.required&&!i){const e=n.validation.customValidationMessage,t=n.basic.label||"This field";o=e||`${t} is required`}else if("email-input"===n.name&&i&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(s)){const e=n.validation.customValidationMessage,t=n.basic.label||"This field";o=e||`${t} must be a valid email`}else if(n.validation.minLength&&i&&s.length<n.validation.minLength){const e=n.validation.customValidationMessage,t=n.basic.label||"This field";o=e||`${t} must be at least ${n.validation.minLength} characters`}else if(n.validation.maxLength&&i&&s.length>n.validation.maxLength){const e=n.validation.customValidationMessage,t=n.basic.label||"This field";o=e||`${t} must be no more than ${n.validation.maxLength} characters`}else if("number-input"===n.name&&i){const e=parseFloat(s);if(isNaN(e)){const e=n.validation.customValidationMessage,t=n.basic.label||"This field";o=e||`${t} must be a valid number`}else{const t=n.validation;if(void 0!==t.lowerLimit&&e<t.lowerLimit){const e=n.validation.customValidationMessage,a=n.basic.label||"This field";o=e||`You are under the limit. ${a} must be at least ${t.lowerLimit}`}else if(void 0!==t.upperLimit&&e>t.upperLimit){const e=n.validation.customValidationMessage,a=n.basic.label||"This field";o=e||`You crossed the limit. ${a} must be no more than ${t.upperLimit}`}}}F(e=>({...e,[t]:o}))},[e,a,A]),oe=t.useCallback(()=>e.every(e=>{const t=A[e.id]||"";let n=!1;return n=Array.isArray(t)?t.length>0:"string"==typeof t?""!==t.trim():null!=t,!(e.validation.required&&!n)}),[e,A]),re=t.useCallback((e,t)=>{if(Array.isArray(t))return t.some(t=>re(e,t));if(null==t||""===t)return!1;const n="string"==typeof t?parseFloat(t):t,a="string"==typeof e.value?parseFloat(e.value):e.value;if(!isNaN(n)&&!isNaN(a))switch(e.operator){case"greaterThan":return n>a;case"lessThan":return n<a;case"greaterThanOrEqual":return n>=a;case"lessThanOrEqual":return n<=a;case"equals":return n===a;case"notEquals":return n!==a;default:return!1}const s=String(t).toLowerCase(),i=String(e.value).toLowerCase();switch(e.operator){case"equals":return s===i||String(t)===String(e.value);case"notEquals":return s!==i&&String(t)!==String(e.value);default:return!1}},[]),le=t.useCallback(()=>{if(a)return[];const t=[];return e.forEach(e=>{const n=e?.condition;if(!n||!n.conditions||0===n.conditions.length)return;const a=A[e.id];null!=a&&""!==a&&!(Array.isArray(a)&&0===a.length)&&n.conditions.forEach(n=>{re(n,a)&&t.push({componentId:e.id,condition:n,componentLabel:e.basic?.label||"Field"})})}),t},[e,A,a,re]),ce=t.useCallback(()=>{if(a)return{isValid:!0};const e=le();if(0===e.length)return{isValid:!0};for(const{condition:t,componentLabel:n}of e){const e=H.get(t.id)||{notesCompleted:!1,attachmentsCompleted:!1,emailSent:!1},a=[];if(!0!==t.enableRaiseIssue||U.has(t.id)||a.push("raise an issue"),!0!==t.enableNotes||e.notesCompleted||a.push("add notes"),!0!==t.enableAttachment||e.attachmentsCompleted||a.push("add attachments"),!0!==t.enableSendEmail||e.emailSent||a.push("send email"),a.length>0){return{isValid:!1,errorMessage:`Please ${1===a.length?a[0]:a.slice(0,-1).join(", ")+" and "+a[a.length-1]} for the threshold condition met in "${n}". You cannot submit the form until all required actions are completed.`}}}return{isValid:!0}},[a,le,U,H]),de=t.useCallback(e=>{e&&J(t=>{const n=new Set(t);return n.add(e),n})},[]),ue=t.useCallback((e,t,n)=>{e&&Y(a=>{const s=new Map(a),i=s.get(e)||{notesCompleted:!1,attachmentsCompleted:!1,emailSent:!1};return"notes"===t?s.set(e,{...i,notesCompleted:n}):"attachments"===t?s.set(e,{...i,attachmentsCompleted:n}):"email"===t&&s.set(e,{...i,emailSent:n}),s})},[]);t.useEffect(()=>{if(!a){const e=ce();X(e)}},[A,U,H,a,ce]);const me=t.useCallback(()=>{if(a)return!0;let t=!0;q(!0);const n={};return e.forEach(e=>{const a=A[e.id]||"";let s=!1;if(s=Array.isArray(a)?a.length>0:"string"==typeof a?""!==a.trim():null!=a,e.validation.required&&!s){const a=e.validation.customValidationMessage,s=e.basic.label||"This field",i=a||`${s} is required`;n[e.id]=i,t=!1}else n[e.id]="";P(t=>({...t,[e.id]:!0}))}),F(n),t},[e,a,A]),pe=t.useCallback(()=>{if(q(!0),!me()){const t=e.find(e=>{const t=A[e.id]||"";let n=!1;return n=Array.isArray(t)?t.length>0:"string"==typeof t?""!==t.trim():null!=t,e.validation.required&&!n});if(t){const e=document.getElementById(t.id);e&&e.focus()}return}const t=ce();if(!t.isValid){t.errorMessage&&h.showError(t.errorMessage);const e=le().find(({condition:e})=>!U.has(e.id));if(e){const t=document.getElementById(e.componentId);t&&t.scrollIntoView({behavior:"smooth",block:"center"})}return}const n=e=>e.map(e=>{let t=A[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 a={...e,basic:{...e.basic,value:t,defaultValue:t}};return"section"===a.name&&a.children&&(a.children=n(a.children)),"table"===a.name&&a.cells&&(a.cells=a.cells.map(e=>e.map(e=>{const t={...e};return t.components&&(t.components=n(t.components)),t}))),"datagrid"===a.name&&a.entries&&(a.entries=a.entries.map(e=>{const t={...e};return t.components&&(t.components=n(t.components)),t})),a}),a=n(e);i?.(a)},[e,A,me,i]),he=t.useCallback(()=>({[`device-${n}`]:!0,readonly:a}),[n,a]),fe=n=>{const s=A[n.id];"text-input"===n.name&&n.basic;const i={id:n.id,validationErrors:D,formValue:s,touchedFields:_,formSubmitted:O,mode:a?"preview":"test",readonly:a,onValueChange:ne,onBlur:()=>ae(n.id),onFocus:()=>se(n.id)};switch(n.name){case"text-input":case"number-input":case"email-input":return u.jsx(x,{...i,properties:n,inputType:"text-input"===n.name?"text":"number-input"===n.name?"number":"email",formTemplateId:c,onThresholdIssueRaised:de,raisedThresholdIssues:U});case"textarea":return u.jsx(v,{...i,properties:n});case"select":const a={...n,options:n.basic?.options||[],basic:{...n.basic,comments:n.basic?.comments||""}};return u.jsx(y,{...i,properties:a});case"checkbox":const r={...n,options:n.basic?.options||[],basic:{...n.basic,comments:n.basic?.comments||""}};return u.jsx(j,{...i,properties:r});case"radio":const l={...n,options:n.basic?.options||[],basic:{...n.basic,comments:n.basic?.comments||""}};return u.jsx(C,{...i,properties:l});case"segment":const p={...n,options:n.basic?.options||[],basic:{...n.basic,comments:n.basic?.comments||""}};return u.jsx(N,{...i,properties:p});case"date":case"date-picker":case"datetime-picker":return u.jsx(k,{...i,properties:n});case"signature":return u.jsx(w,{...i,properties:n});case"heading":return u.jsx(T,{...i,properties:n});case"instructions":return u.jsx($,{...i,properties:n});case"location":return u.jsx(E,{...i,properties:n});case"section":return u.jsx(V,{...i,properties:n,formData:A,formTemplateId:c,onThresholdActionCompletion:ue,onThresholdIssueRaised:de,renderFormComponent:e=>fe(e)});case"table":return u.jsx(t.Suspense,{fallback:u.jsx("div",{children:"Loading table..."}),children:u.jsx(M,{...i,properties:n,formData:A,formTemplateId:c,mode:i.mode,onThresholdActionCompletion:ue,onNotesChange:(t,a)=>{const s=e.map(e=>{if(e.id===n.id&&e.cells){const n=e.cells.map(e=>e.map(e=>{if(e.components){const n=e.components.map(e=>e.id===t?{...e,basic:{...e.basic,notes:a}}:e);return{...e,components:n}}return e}));return{...e,cells:n}}return e});o?.(s)},onAttachmentChange:(t,a)=>{const s=e.map(e=>{if(e.id===n.id&&e.cells){const n=e.cells.map(e=>e.map(e=>{if(e.components){const n=e.components.map(e=>e.id===t?{...e,basic:{...e.basic,attachments:a||[]}}:e);return{...e,components:n}}return e}));return{...e,cells:n}}return e});o?.(s)},renderFormComponent:e=>fe(e)})});case"datagrid":return u.jsx(z,{...i,properties:n,formData:A,formTemplateId:c,mode:i.mode,onThresholdActionCompletion:ue,onThresholdIssueRaised:de,onComponentSelect:d,onComponentDelete:m,onComponentEdit:f,onComponentUpdate:b,selectedComponent:g,onEntryAdd:()=>{const t=e.map(e=>{if(e.id===n.id&&e.entries){const t=e.templateComponents||[],n=e.entries||[],a={id:`entry-${e.id}-${n.length}`,index:n.length,components:t.map((e,t)=>({...e,id:`${e.id}-entry-${n.length}-${t}`,basic:{...e.basic,showLabel:!1}})),styles:{}};return{...e,entries:[...n,a]}}return e});o?.(t)},onEntryRemove:t=>{const a=e.map(e=>{if(e.id===n.id&&e.entries){const n=(e.entries||[]).filter((e,n)=>n!==t).map((t,n)=>({...t,index:n,id:`entry-${e.id}-${n}`,components:t.components?.map((e,t)=>{const a=(e.templateComponents||[])[t];return{...e,id:a?`${a.id}-entry-${n}-${t}`:e.id}})||[]}));return{...e,entries:n}}return e});o?.(a)},onNotesChange:(t,a)=>{const s=e.map(e=>{if(e.id===n.id&&e.entries){const n=e.entries.map(e=>{if(e.components){const n=e.components.map(e=>e.id===t?{...e,basic:{...e.basic,notes:a}}:e);return{...e,components:n}}return e});return{...e,entries:n}}return e});o?.(s)},onAttachmentChange:(t,a)=>{const s=e.map(e=>{if(e.id===n.id&&e.entries){const n=e.entries.map(e=>{if(e.components){const n=e.components.map(e=>e.id===t?{...e,basic:{...e.basic,attachments:a||[]}}:e);return{...e,components:n}}return e});return{...e,entries:n}}return e});o?.(s)},renderFormComponent:e=>fe(e)});case"file":const h=s||n.basic?.files||n.basic?.attachments||n.basic?.value||null;return u.jsx(S,{...i,properties:n,formValue:h});default:return u.jsx("div",{className:"form-group",children:u.jsxs("div",{className:"form-group-label",children:["Unsupported Component: ",n.name]})})}};return u.jsx("div",{className:"form-preview-container",children:u.jsx("div",{className:"form-preview-wrapper",children:u.jsxs("div",{className:`form-preview ${Object.entries(he()).map(([e,t])=>t?e:"").join(" ")}`,children:[u.jsx("div",{className:"form-canvas-header"}),0===e.length?u.jsx("div",{className:"empty-state",children:u.jsx("div",{className:"empty-state-card",children:u.jsx("div",{className:"empty-state-preview-area",children:u.jsx("span",{className:"empty-state-placeholder",children:"Add components to see the form preview"})})})}):u.jsxs("form",{className:"form-preview-form",onSubmit:e=>{e.preventDefault(),pe()},children:[(r||l)&&u.jsxs("div",{className:"form-header",children:[r&&u.jsx("h1",{className:"form-title",children:r}),l&&u.jsx("p",{className:"form-description",children:l})]}),e.map(e=>{const t=e.basic,n=A[e.id],s=["select","radio","checkbox","segment"].includes(e.name||""),i=e.options||t?.options||[],o=(()=>{const t=e?.styles?.column;return"section"===e.name||"table"===e.name||"datagrid"===e.name?"col-12":3===t?"col-3":6===t?"col-6":9===t?"col-9":"col-12"})();let r=!1;if(!a)if(s&&null!=n&&""!==n)if("checkbox"===e.name){r=(Array.isArray(n)?n:[n]).some(e=>{const t=i.find(t=>t.value===e);return t&&(t.enableNotes||t.enableAttachment||t.enableRaiseIssue||t.enableSendEmail)})}else{const e=i.find(e=>e.value===n);r=e&&(e.enableNotes||e.enableAttachment||e.enableRaiseIssue||e.enableSendEmail)}else r=t?.enableNotes||t?.enableAttachment||t?.enableRaiseIssue||t?.enableSendEmail;const l=a&&(e.basic?.notes&&e.basic.notes.trim().length>0||e.basic?.attachments&&Array.isArray(e.basic.attachments)&&e.basic.attachments.length>0);return u.jsxs("div",{className:`form-group ${o} ${r||l?"has-action-features":""}`,style:{display:te(e.id)?"block":"none"},children:[fe(e),!a&&!["section","table","heading","file","instructions","signature","location","datagrid"].includes(e.name)&&u.jsx(L,{component:e,mode:a?"preview":"test",formTemplateId:c,formValue:n,onThresholdActionCompletion:ue,onThresholdIssueRaised:de}),a&&l&&u.jsx(R,{component:e})]},e.id)}),!a&&u.jsx("div",{className:"form-actions",children:u.jsx("button",{type:"submit",disabled:!oe()||!G.isValid,className:"form-submit-button",title:G.isValid?"":G.errorMessage,children:"Submit"})})]})]})})})},exports.DfFormRadio=C,exports.DfFormSection=V,exports.DfFormSegment=N,exports.DfFormSelect=y,exports.DfFormSignature=w,exports.DfFormTable=U,exports.DfFormTextarea=v,exports.RaiseIssueModal=b,exports.ThresholdAlert=g,exports.conditionalLogicService=p,exports.toastService=h;
|
|
11
11
|
//# sourceMappingURL=index.js.map
|