df-ae-forms-package
Version:
A comprehensive React form preview component library with form controls, validation, and responsive design for Angular/Ionic integration
10 lines • 156 kB
JavaScript
"use strict";var e,t=require("react"),s=require("lucide-react"),n=require("react-dom"),i=require("@dnd-kit/core"),a=require("@dnd-kit/sortable"),r=require("@dnd-kit/utilities"),o=require("uuid"),l={exports:{}},c={};var d,u={};
/**
* @license React
* react-jsx-runtime.development.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/"production"===process.env.NODE_ENV?l.exports=function(){if(e)return c;e=1;var s=t,n=Symbol.for("react.element"),i=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,r=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function l(e,t,s){var i,l={},c=null,d=null;for(i in void 0!==s&&(c=""+s),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(d=t.ref),t)a.call(t,i)&&!o.hasOwnProperty(i)&&(l[i]=t[i]);if(e&&e.defaultProps)for(i in t=e.defaultProps)void 0===l[i]&&(l[i]=t[i]);return{$$typeof:n,type:e,key:c,ref:d,props:l,_owner:r.current}}return c.Fragment=i,c.jsx=l,c.jsxs=l,c}():l.exports=(d||(d=1,"production"!==process.env.NODE_ENV&&function(){var e,s=t,n=Symbol.for("react.element"),i=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),c=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),h=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),b=Symbol.for("react.offscreen"),g=Symbol.iterator,x=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function v(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),n=1;n<t;n++)s[n-1]=arguments[n];!function(e,t,s){var n=x.ReactDebugCurrentFrame.getStackAddendum();""!==n&&(t+="%s",s=s.concat([n]));var i=s.map(function(e){return String(e)});i.unshift("Warning: "+t),Function.prototype.apply.call(console[e],console,i)}("error",e,s)}function y(e){return e.displayName||"Context"}function j(e){if(null==e)return null;if("number"==typeof e.tag&&v("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),"function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case a:return"Fragment";case i:return"Portal";case o:return"Profiler";case r:return"StrictMode";case m:return"Suspense";case p:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case c:return y(e)+".Consumer";case l:return y(e._context)+".Provider";case d:return function(e,t,s){var n=e.displayName;if(n)return n;var i=t.displayName||t.name||"";return""!==i?s+"("+i+")":s}(e,e.render,"ForwardRef");case h:var t=e.displayName||null;return null!==t?t:j(e.type)||"Memo";case f:var s=e,n=s._payload,u=s._init;try{return j(u(n))}catch(e){return null}}return null}e=Symbol.for("react.module.reference");var C,N,S,w,k,E,$,T=Object.assign,A=0;function I(){}I.__reactDisabledLog=!0;var D,R=x.ReactCurrentDispatcher;function L(e,t,s){if(void 0===D)try{throw Error()}catch(e){var n=e.stack.trim().match(/\n( *(at )?)/);D=n&&n[1]||""}return"\n"+D+e}var F,V=!1,O="function"==typeof WeakMap?WeakMap:Map;function M(e,t){if(!e||V)return"";var s,n=F.get(e);if(void 0!==n)return n;V=!0;var i,a=Error.prepareStackTrace;Error.prepareStackTrace=void 0,i=R.current,R.current=null,function(){if(0===A){C=console.log,N=console.info,S=console.warn,w=console.error,k=console.group,E=console.groupCollapsed,$=console.groupEnd;var e={configurable:!0,enumerable:!0,value:I,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}A++}();try{if(t){var r=function(){throw Error()};if(Object.defineProperty(r.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(r,[])}catch(e){s=e}Reflect.construct(e,[],r)}else{try{r.call()}catch(e){s=e}e.call(r.prototype)}}else{try{throw Error()}catch(e){s=e}e()}}catch(t){if(t&&s&&"string"==typeof t.stack){for(var o=t.stack.split("\n"),l=s.stack.split("\n"),c=o.length-1,d=l.length-1;c>=1&&d>=0&&o[c]!==l[d];)d--;for(;c>=1&&d>=0;c--,d--)if(o[c]!==l[d]){if(1!==c||1!==d)do{if(c--,--d<0||o[c]!==l[d]){var u="\n"+o[c].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),"function"==typeof e&&F.set(e,u),u}}while(c>=1&&d>=0);break}}}finally{V=!1,R.current=i,function(){if(0===--A){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:T({},e,{value:C}),info:T({},e,{value:N}),warn:T({},e,{value:S}),error:T({},e,{value:w}),group:T({},e,{value:k}),groupCollapsed:T({},e,{value:E}),groupEnd:T({},e,{value:$})})}A<0&&v("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}(),Error.prepareStackTrace=a}var m=e?e.displayName||e.name:"",p=m?L(m):"";return"function"==typeof e&&F.set(e,p),p}function q(e,t,s){if(null==e)return"";if("function"==typeof e)return M(e,!(!(n=e.prototype)||!n.isReactComponent));var n;if("string"==typeof e)return L(e);switch(e){case m:return L("Suspense");case p:return L("SuspenseList")}if("object"==typeof e)switch(e.$$typeof){case d:return M(e.render,!1);case h:return q(e.type,t,s);case f:var i=e,a=i._payload,r=i._init;try{return q(r(a),t,s)}catch(e){}}return""}F=new O;var P=Object.prototype.hasOwnProperty,z={},_=x.ReactDebugCurrentFrame;function W(e){if(e){var t=e._owner,s=q(e.type,e._source,t?t.type:null);_.setExtraStackFrame(s)}else _.setExtraStackFrame(null)}var B=Array.isArray;function U(e){return B(e)}function G(e){return""+e}function J(e){if(function(e){try{return G(e),!1}catch(e){return!0}}(e))return v("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",function(e){return"function"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object"}(e)),G(e)}var H,Y,X,K=x.ReactCurrentOwner,Z={key:!0,ref:!0,__self:!0,__source:!0};function Q(e,t,s,i,a){var r,o={},l=null,c=null;for(r in void 0!==s&&(J(s),l=""+s),function(e){if(P.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return void 0!==e.key}(t)&&(J(t.key),l=""+t.key),function(e){if(P.call(e,"ref")){var t=Object.getOwnPropertyDescriptor(e,"ref").get;if(t&&t.isReactWarning)return!1}return void 0!==e.ref}(t)&&(c=t.ref,function(e,t){if("string"==typeof e.ref&&K.current&&t&&K.current.stateNode!==t){var s=j(K.current.type);X[s]||(v('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',j(K.current.type),e.ref),X[s]=!0)}}(t,a)),t)P.call(t,r)&&!Z.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps){var d=e.defaultProps;for(r in d)void 0===o[r]&&(o[r]=d[r])}if(l||c){var u="function"==typeof e?e.displayName||e.name||"Unknown":e;l&&function(e,t){var s=function(){H||(H=!0,v("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};s.isReactWarning=!0,Object.defineProperty(e,"key",{get:s,configurable:!0})}(o,u),c&&function(e,t){var s=function(){Y||(Y=!0,v("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};s.isReactWarning=!0,Object.defineProperty(e,"ref",{get:s,configurable:!0})}(o,u)}return function(e,t,s,i,a,r,o){var l={$$typeof:n,type:e,key:t,ref:s,props:o,_owner:r,_store:{}};return Object.defineProperty(l._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(l,"_self",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.defineProperty(l,"_source",{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.freeze&&(Object.freeze(l.props),Object.freeze(l)),l}(e,l,c,a,i,K.current,o)}X={};var ee,te=x.ReactCurrentOwner,se=x.ReactDebugCurrentFrame;function ne(e){if(e){var t=e._owner,s=q(e.type,e._source,t?t.type:null);se.setExtraStackFrame(s)}else se.setExtraStackFrame(null)}function ie(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}function ae(){if(te.current){var e=j(te.current.type);if(e)return"\n\nCheck the render method of `"+e+"`."}return""}ee=!1;var re={};function oe(e,t){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var s=function(e){var t=ae();if(!t){var s="string"==typeof e?e:e.displayName||e.name;s&&(t="\n\nCheck the top-level render call using <"+s+">.")}return t}(t);if(!re[s]){re[s]=!0;var n="";e&&e._owner&&e._owner!==te.current&&(n=" It was passed a child from "+j(e._owner.type)+"."),ne(e),v('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',s,n),ne(null)}}}function le(e,t){if("object"==typeof e)if(U(e))for(var s=0;s<e.length;s++){var n=e[s];ie(n)&&oe(n,t)}else if(ie(e))e._store&&(e._store.validated=!0);else if(e){var i=function(e){if(null===e||"object"!=typeof e)return null;var t=g&&e[g]||e["@@iterator"];return"function"==typeof t?t:null}(e);if("function"==typeof i&&i!==e.entries)for(var a,r=i.call(e);!(a=r.next()).done;)ie(a.value)&&oe(a.value,t)}}function ce(e){var t,s=e.type;if(null!=s&&"string"!=typeof s){if("function"==typeof s)t=s.propTypes;else{if("object"!=typeof s||s.$$typeof!==d&&s.$$typeof!==h)return;t=s.propTypes}if(t){var n=j(s);!function(e,t,s,n,i){var a=Function.call.bind(P);for(var r in e)if(a(e,r)){var o=void 0;try{if("function"!=typeof e[r]){var l=Error((n||"React class")+": "+s+" type `"+r+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[r]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw l.name="Invariant Violation",l}o=e[r](t,r,n,s,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(e){o=e}!o||o instanceof Error||(W(i),v("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",n||"React class",s,r,typeof o),W(null)),o instanceof Error&&!(o.message in z)&&(z[o.message]=!0,W(i),v("Failed %s type: %s",s,o.message),W(null))}}(t,e.props,"prop",n,e)}else void 0===s.PropTypes||ee||(ee=!0,v("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",j(s)||"Unknown"));"function"!=typeof s.getDefaultProps||s.getDefaultProps.isReactClassApproved||v("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}var de={};function ue(t,s,i,u,g,x){var y=function(t){return"string"==typeof t||"function"==typeof t||t===a||t===o||t===r||t===m||t===p||t===b||"object"==typeof t&&null!==t&&(t.$$typeof===f||t.$$typeof===h||t.$$typeof===l||t.$$typeof===c||t.$$typeof===d||t.$$typeof===e||void 0!==t.getModuleId)}(t);if(!y){var C="";(void 0===t||"object"==typeof t&&null!==t&&0===Object.keys(t).length)&&(C+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var N,S=function(e){return void 0!==e?"\n\nCheck your code at "+e.fileName.replace(/^.*[\\\/]/,"")+":"+e.lineNumber+".":""}(g);C+=S||ae(),null===t?N="null":U(t)?N="array":void 0!==t&&t.$$typeof===n?(N="<"+(j(t.type)||"Unknown")+" />",C=" Did you accidentally export a JSX literal instead of a component?"):N=typeof t,v("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",N,C)}var w=Q(t,s,i,g,x);if(null==w)return w;if(y){var k=s.children;if(void 0!==k)if(u)if(U(k)){for(var E=0;E<k.length;E++)le(k[E],t);Object.freeze&&Object.freeze(k)}else v("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else le(k,t)}if(P.call(s,"key")){var $=j(t),T=Object.keys(s).filter(function(e){return"key"!==e}),A=T.length>0?"{key: someKey, "+T.join(": ..., ")+": ...}":"{key: someKey}";de[$+A]||(v('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',A,$,T.length>0?"{"+T.join(": ..., ")+": ...}":"{}",$),de[$+A]=!0)}return t===a?function(e){for(var t=Object.keys(e.props),s=0;s<t.length;s++){var n=t[s];if("children"!==n&&"key"!==n){ne(e),v("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",n),ne(null);break}}null!==e.ref&&(ne(e),v("Invalid attribute `ref` supplied to `React.Fragment`."),ne(null))}(w):ce(w),w}var me=function(e,t,s){return ue(e,t,s,!1)},pe=function(e,t,s){return ue(e,t,s,!0)};u.Fragment=a,u.jsx=me,u.jsxs=pe}()),u);var m=l.exports;class p{constructor(){}static getInstance(){return p.instance||(p.instance=new p),p.instance}getAvailableComponentsForConditional(e,t){if(!e||!Array.isArray(e))return[];return e.filter(e=>!t||e.id!==t).map(e=>({id:e.id,label:e.basic?.label||e.id,type:e.name,key:e.id})).sort((e,t)=>e.label.localeCompare(t.label))}getApplicableOperators(e){switch(e){case"text-input":case"email-input":case"textarea":return["equals","notEquals","contains","notContains","isEmpty","isNotEmpty"];case"number-input":case"date-picker":case"datetime-picker":return["equals","notEquals","greaterThan","lessThan","greaterThanOrEqual","lessThanOrEqual","isEmpty","isNotEmpty"];case"select":case"radio":case"segment":default:return["equals","notEquals","isEmpty","isNotEmpty"];case"checkbox":return["contains","notContains","isEmpty","isNotEmpty"]}}validateConditionalLogic(e,t){const s=[];return e?(["show","hide","always"].includes(e.action)||s.push("Invalid conditional action"),["all","any"].includes(e.when)||s.push("Invalid when condition"),e.conditions&&0!==e.conditions.length?e.conditions.forEach((e,n)=>{const i=t.find(t=>t.id===e.when);if(!i)return void s.push(`Condition ${n+1}: Component not found`);this.getApplicableOperators(i.name).includes(e.operator)||s.push(`Condition ${n+1}: Operator not applicable for component type`),this.isValidConditionValue(e.value,i.name,e.operator)||s.push(`Condition ${n+1}: Invalid condition value`)}):s.push("At least one condition is required"),{isValid:0===s.length,errors:s}):{isValid:!0,errors:[]}}evaluateConditionalLogic(e,t,s){if("always"===e.action)return{shouldShow:!0,evaluatedConditions:[]};if(!e||!e.conditions||0===e.conditions.length)return{shouldShow:!0,evaluatedConditions:[]};const n=e.conditions.map(e=>{const n=this.getComponentValue(e.when,t,s);return{condition:e,result:this.evaluateCondition(e,n),componentValue:n}});return{shouldShow:this.determineFinalResult(e,n),evaluatedConditions:n}}getComponentValue(e,t,s){if(s&&void 0!==s[e])return s[e];const n=t.find(t=>t.id===e);return n&&"defaultValue"in n.basic?n.basic.defaultValue:void 0}evaluateCondition(e,t){const{operator:s,value:n}=e;if("checked"===n||"notChecked"===n)return this.evaluateCheckboxCondition(t,n);switch(s){case"equals":return this.isEqual(t,n);case"notEquals":return!this.isEqual(t,n);case"isEmpty":return this.isEmpty(t);case"isNotEmpty":return!this.isEmpty(t);case"contains":return this.contains(t,n);case"notContains":return!this.contains(t,n);case"greaterThan":return this.isGreaterThan(t,n);case"lessThan":return this.isLessThan(t,n);case"greaterThanOrEqual":return this.isGreaterThanOrEqual(t,n);case"lessThanOrEqual":return this.isLessThanOrEqual(t,n);default:return!1}}evaluateCheckboxCondition(e,t){const s=this.isCheckboxChecked(e);return"checked"===t?s:"notChecked"===t&&!s}isCheckboxChecked(e){return null!=e&&("boolean"==typeof e?e:"string"==typeof e?"true"===e.toLowerCase()||"1"===e:Array.isArray(e)?e.length>0:"number"==typeof e&&e>0)}determineFinalResult(e,t){let s,n;return s="all"===e.when?t.every(e=>e.result):"any"===e.when&&t.some(e=>e.result),n="show"===e.action?s:"hide"===e.action?!s:(e.action,!0),n}isEqual(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((e,s)=>this.isEqual(e,t[s]));if("object"==typeof e&&"object"==typeof t){const s=Object.keys(e),n=Object.keys(t);return s.length===n.length&&s.every(s=>this.isEqual(e[s],t[s]))}return!1}isEmpty(e){return null==e||void 0===e||("string"==typeof e?""===e.trim():Array.isArray(e)?0===e.length:"object"==typeof e&&0===Object.keys(e).length)}contains(e,t){return null!=e&&null!=t&&("string"==typeof e?e.toLowerCase().includes(String(t).toLowerCase()):!!Array.isArray(e)&&e.some(e=>this.isEqual(e,t)))}isGreaterThan(e,t){const s=Number(e),n=Number(t);return!isNaN(s)&&!isNaN(n)&&s>n}isLessThan(e,t){const s=Number(e),n=Number(t);return!isNaN(s)&&!isNaN(n)&&s<n}isGreaterThanOrEqual(e,t){const s=Number(e),n=Number(t);return!isNaN(s)&&!isNaN(n)&&s>=n}isLessThanOrEqual(e,t){const s=Number(e),n=Number(t);return!isNaN(s)&&!isNaN(n)&&s<=n}isValidConditionValue(e,t,s){if(null==e)return["isEmpty","isNotEmpty"].includes(s);switch(t){case"number-input":return!isNaN(Number(e))||["isEmpty","isNotEmpty"].includes(s);case"date-picker":case"datetime-picker":return!isNaN(Date.parse(e))||["isEmpty","isNotEmpty"].includes(s);case"checkbox":return Array.isArray(e)||"string"==typeof e||"number"==typeof e;default:return!0}}createDefaultConditionalLogic(){return{action:"show",when:"all",conditions:[]}}getOperatorDisplayText(e){return{equals:"Is Equal To",notEquals:"Is Not Equal To",contains:"Contains",notContains:"Does Not Contain",isEmpty:"Is Empty",isNotEmpty:"Is Not Empty",greaterThan:"Is Greater Than",lessThan:"Is Less Than",greaterThanOrEqual:"Is Greater Than Or Equal To",lessThanOrEqual:"Is Less Than Or Equal To"}[e]||e}getActionDisplayText(e){return{show:"Show this field when",hide:"Hide this field when",always:"Always show this field"}[e]||e}getConditionalLogicSummary(e,t){if(!e||0===e.conditions.length)return"No conditions";if("always"===e.action)return"Always show";const s=this.getActionDisplayText(e.action),n=e.conditions.map(e=>{const s=t.find(t=>t.id===e.when);return`${s?.basic.label||"Unknown component"} ${this.getOperatorDisplayText(e.operator)} ${this.formatConditionValue(e.value)}`}),i="all"===e.when?" and ":" or ";return`${s} ${n.join(i)}`}formatConditionValue(e){return null==e?"empty":Array.isArray(e)?`[${e.join(", ")}]`:"string"==typeof e?`"${e}"`:String(e)}}const h=p.getInstance();const f=new class{constructor(){this.toasts=[],this.listeners=[],this.defaultDuration=3e3,this.timeouts={}}generateId(){return Date.now().toString(36)+Math.random().toString(36).substr(2)}notifyListeners(){this.listeners.forEach(e=>e([...this.toasts]))}addToast(e){try{this.toasts.push(e),this.notifyListeners(),this.timeouts[e.id]=setTimeout(()=>{this.removeToast(e.id)},e.duration||this.defaultDuration)}catch(e){console.error("Error displaying toast message:",e)}}removeToast(e){this.timeouts[e]&&(clearTimeout(this.timeouts[e]),delete this.timeouts[e]),this.toasts=this.toasts.filter(t=>t.id!==e),this.notifyListeners()}showSuccess(e,t=3e3){const s={id:this.generateId(),message:e,type:"success",duration:t};this.addToast(s)}showError(e,t=5e3){const s={id:this.generateId(),message:e,type:"danger",duration:t};this.addToast(s)}showWarning(e,t){const s={id:this.generateId(),message:e,type:"warning",duration:t};this.addToast(s)}showInfo(e,t){const s={id:this.generateId(),message:e,type:"info",duration:t};this.addToast(s)}show(e,t="success",s){const n={id:this.generateId(),message:e,type:t,duration:s};this.addToast(n)}clearAll(){Object.values(this.timeouts).forEach(e=>clearTimeout(e)),this.timeouts={},this.toasts=[],this.notifyListeners()}subscribe(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}getToasts(){return[...this.toasts]}},b=({validationErrors:e,fieldId:t,touchedFields:s,formSubmitted:n,properties:i,localValidation:a,isTouched:r,mode:o})=>{const l=e=>{const t=i.basic.label||"This field",s=i.validation.customValidationMessage;if(s)return s;const n=i.name||"",a="date-picker"===n||"datetime-picker"===n?i.basic?.dateTimeMode||("datetime-picker"===n?"datetime":"date"):null;switch(e){case"required":return`${t} is required`;case"invalidDate":return"time"===a?"Please select a valid time":"datetime"===a?"Please select a valid date and time":"date"===a?"Please select a valid date":`${t} is invalid`;case"minLength":return`${t} must be at least ${i.validation.minLength} characters long`;case"maxLength":return`${t} must be no more than ${i.validation.maxLength} characters long`;case"min":return`${t} must be at least ${i.validation.min}`;case"max":return`${t} must be no more than ${i.validation.max}`;case"lowerLimit":const e=i.validation,s=e?.lowerLimit;return`You are under the limit. ${t} must be at least ${s}`;case"upperLimit":const n=i.validation,r=n?.upperLimit;return`You crossed the limit. ${t} must be no more than ${r}`;case"pattern":return`${t} format is invalid`;case"email":return`${t} must be a valid email address`;default:return`${t} is invalid`}},c=(()=>{if("test"!==o)return"";if(!(r||s[t]||n))return"";if(a&&a.isValid)return"";if(a&&!a.isValid&&Object.keys(a.errors).length>0){const e=Object.keys(a.errors);if(e.length>0){const t=e[0];return l(t)}}const c=e[t];if(c&&"string"==typeof c&&""!==c.trim()){const e=i.name||"";if(("date-picker"===e||"datetime-picker"===e)&&c.includes("valid date")){const t=i.basic?.dateTimeMode||("datetime-picker"===e?"datetime":"date");if("time"===t)return"Please select a valid time";if("datetime"===t)return"Please select a valid date and time"}return c}return""})();return c?m.jsx("div",{className:"form-error-msg",children:c}):null};var g;!function(e){e.OPEN="Open",e.IN_PROGRESS="In-Progress",e.REJECTED="Rejected",e.RESOLVE="Resolve"}(g||(g={}));const x=({isOpen:e,onClose:i,onSuccess:a,component:r,formTemplateId:o,notes:l="",attachments:c=null,issue:d=null,onCreateIssue:u,onUpdateIssue:p,user:h,availableUsers:b=["Priya Das","Maria Garcia","John Smith","Sarah Johnson"]})=>{const[x,v]=t.useState(""),[y,j]=t.useState(""),[C,N]=t.useState(""),[S,w]=t.useState(""),[k,E]=t.useState("Medium"),[$,T]=t.useState(g.OPEN),[A,I]=t.useState(""),[D,R]=t.useState(""),[L,F]=t.useState(!1),V=!!d;t.useEffect(()=>{if(e)if(d){v(d.title||""),j(d.description||""),N(d.workOrderNumber||""),w(d.assetNumber||""),E(d.priority||"Medium");const e=d.status||g.OPEN,t=e===g.OPEN||e===g.IN_PROGRESS||e===g.REJECTED||e===g.RESOLVE?e:g.OPEN;T(t),I(d.assignee||""),R(d.comments||"")}else if(r){const e=r.basic?.label||"Component";v(`${e} - Issue`);let t=`Issue raised for component: ${e}`;r.basic&&"value"in r.basic&&r.basic.value&&(t+=`\nComponent Value: ${r.basic.value}`),l&&(t+=`\nNotes: ${l}`),j(t),R(l||"")}},[e,r,l,d]);const O=async e=>{if(d){F(!0);try{const t={title:String(x||"").trim(),description:String(y||"").trim(),workOrderNumber:String(C||"").trim()||"",assetNumber:String(S||"").trim()||"",formTemplateId:d.formTemplateId||"",component:d.component||{},priority:k,assignee:String(A||"").trim()||void 0,status:e,comments:String(D||"").trim()||""};p&&d._id&&await p(d._id,t),T(e);const s={[g.IN_PROGRESS]:"Issue accepted and moved to In-Progress",[g.RESOLVE]:"Issue resolved successfully",[g.REJECTED]:"Issue rejected"};f.showSuccess(s[e]||"Issue status updated successfully"),a&&a(),i()}catch(e){const t=e?.message||e?.error?.message||"Failed to update issue status. Please try again.";f.showError(t)}finally{F(!1)}}};if(!e)return null;const M=m.jsx("div",{className:"raise-issue-modal-overlay",onClick:i,children:m.jsxs("div",{className:"raise-issue-modal",onClick:e=>e.stopPropagation(),children:[m.jsxs("div",{className:"raise-issue-modal-header",children:[m.jsxs("div",{className:"raise-issue-modal-header-left",children:[m.jsx(s.AlertTriangle,{className:"raise-issue-modal-icon",size:20}),m.jsx("div",{className:"raise-issue-modal-header-text",children:m.jsx("div",{className:"raise-issue-modal-title-main",children:"Issue Details"})})]}),m.jsx("button",{className:"raise-issue-modal-close",onClick:i,"aria-label":"Close",children:m.jsx(s.X,{size:18})})]}),m.jsx("div",{className:"raise-issue-modal-content",children:m.jsxs("div",{className:"raise-issue-fields-grid",children:[V&&d?.issueNumber&&m.jsxs("div",{className:"raise-issue-field",children:[m.jsx("label",{className:"raise-issue-field-label",children:"Issue ID"}),m.jsx("input",{type:"text",className:"raise-issue-field-input raise-issue-field-readonly",value:d.issueNumber,readOnly:!0})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Title ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsx("input",{type:"text",className:"raise-issue-field-input "+(V?"raise-issue-field-readonly":""),value:x,onChange:e=>v(e.target.value),placeholder:"Enter issue title",readOnly:V})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Work Order ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsx("input",{type:"text",className:"raise-issue-field-input "+(V?"raise-issue-field-readonly":""),value:C,onChange:e=>N(e.target.value),placeholder:"N/A",readOnly:V})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Asset Number ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsx("input",{type:"text",className:"raise-issue-field-input "+(V?"raise-issue-field-readonly":""),value:S,onChange:e=>w(e.target.value),placeholder:"Enter asset number",readOnly:V})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsx("label",{className:"raise-issue-field-label",children:"Raised By"}),m.jsxs("div",{className:"raise-issue-field-value-with-icon",children:[m.jsx(s.User,{size:16}),m.jsx("span",{children:h&&`${h.firstName||""} ${h.lastName||""}`.trim()||"User"})]})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsx("label",{className:"raise-issue-field-label",children:"Created On"}),m.jsxs("div",{className:"raise-issue-field-value-with-icon",children:[m.jsx(s.Calendar,{size:16}),m.jsx("span",{children:V&&d?.createdAt?new Date(d.createdAt).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!0}):(new Date).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!0})})]})]}),m.jsxs("div",{className:"raise-issue-field raise-issue-field-full-width",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Description ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsx("textarea",{className:"raise-issue-field-textarea "+(V?"raise-issue-field-readonly":""),value:y,onChange:e=>j(e.target.value),placeholder:"Enter issue description",rows:4,readOnly:V})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Status ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsxs("select",{className:"raise-issue-field-select "+(V?"":"raise-issue-field-readonly"),value:$,onChange:e=>T(e.target.value),disabled:!V,children:[m.jsx("option",{value:g.OPEN,children:g.OPEN}),m.jsx("option",{value:g.IN_PROGRESS,children:g.IN_PROGRESS}),m.jsx("option",{value:g.REJECTED,children:g.REJECTED}),m.jsx("option",{value:g.RESOLVE,children:g.RESOLVE})]})]}),m.jsxs("div",{className:"raise-issue-field",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Assignee ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsxs("select",{className:"raise-issue-field-select",value:A,onChange:e=>I(e.target.value),children:[m.jsx("option",{value:"",children:"Unassigned"}),b.map(e=>m.jsx("option",{value:e,children:e},e))]})]}),m.jsxs("div",{className:"raise-issue-field raise-issue-field-full-width",children:[m.jsxs("label",{className:"raise-issue-field-label",children:["Priority ",m.jsx("span",{className:"raise-issue-required",children:"*"})]}),m.jsxs("div",{className:"raise-issue-priority-buttons",children:[m.jsx("button",{type:"button",className:"priority-button priority-low "+("Low"===k?"active":""),onClick:()=>E("Low"),children:"Low"}),m.jsx("button",{type:"button",className:"priority-button priority-medium "+("Medium"===k?"active":""),onClick:()=>E("Medium"),children:"Medium"}),m.jsx("button",{type:"button",className:"priority-button priority-high "+("High"===k?"active":""),onClick:()=>E("High"),children:"High"})]})]}),m.jsxs("div",{className:"raise-issue-field raise-issue-field-full-width",children:[m.jsxs("label",{className:"raise-issue-field-label-with-icon",children:[m.jsx(s.MessageSquare,{size:16}),m.jsx("span",{children:"Comments"})]}),!D&&m.jsx("div",{className:"raise-issue-no-comments",children:"No comments yet"}),m.jsx("textarea",{className:"raise-issue-field-textarea raise-issue-comments-textarea "+(V?"raise-issue-field-readonly":""),value:D,onChange:e=>R(e.target.value),placeholder:"Add a comment...",rows:4,readOnly:V})]})]})}),m.jsx("div",{className:"raise-issue-modal-actions",children:m.jsxs("div",{className:"raise-issue-modal-actions-buttons",children:[V&&d&&m.jsxs(m.Fragment,{children:[$===g.OPEN&&m.jsx("button",{className:"raise-issue-modal-button raise-issue-modal-button-accept",onClick:async()=>{await O(g.IN_PROGRESS)},disabled:L,children:L?"Processing...":"Accept"}),$===g.IN_PROGRESS&&m.jsx("button",{className:"raise-issue-modal-button raise-issue-modal-button-resolve",onClick:async()=>{await O(g.RESOLVE)},disabled:L,children:L?"Processing...":"Resolve"}),$===g.OPEN&&m.jsx("button",{className:"raise-issue-modal-button raise-issue-modal-button-reject",onClick:async()=>{await O(g.REJECTED)},disabled:L,children:L?"Processing...":"Reject"})]}),!V&&m.jsx("button",{className:"raise-issue-modal-button raise-issue-modal-button-save",onClick:async()=>{if(String(x||"").trim())if(String(y||"").trim()){F(!0);try{if(V&&d){const e={title:String(x||"").trim(),description:String(y||"").trim(),workOrderNumber:String(C||"").trim()||"",assetNumber:String(S||"").trim()||void 0,formTemplateId:d.formTemplateId||"",component:d.component||{},priority:k,assignee:String(A||"").trim()||void 0,status:$,comments:String(D||"").trim()||""};p&&d._id&&await p(d._id,e),f.showSuccess("Issue updated successfully"),a&&a(),i()}else{if(!r)return f.showError("Component is required"),void F(!1);if(!o||""===String(o||"").trim())return f.showError("Form template is required"),void F(!1);const e={...r,basic:{...r.basic,comments:String(l||"")}},t={title:String(x||"").trim(),workOrderNumber:String(C||"").trim()||void 0,assetNumber:String(S||"").trim()||void 0,component:e,description:String(y||"").trim(),formTemplateId:o,assignee:String(A||"").trim()||void 0,priority:k,status:$,comments:String(D||"").trim()||""};let s;u&&(s=await u(t,c||[])),f.showSuccess("Issue raised successfully"),a&&a(s),i()}}catch(e){const t=e?.message||e?.error?.message||(V?"Failed to update issue. Please try again.":"Failed to raise issue. Please try again.");f.showError(t)}finally{F(!1)}}else f.showError("Description is required");else f.showError("Title is required")},disabled:L||!String(x||"").trim()||!String(y||"").trim(),children:L?"Saving...":"Save Changes"})]})})]})});return n.createPortal(M,document.body)},v=({component:e,condition:n,currentValue:i,thresholdValue:a,formTemplateId:r,onIssueRaised:o,isIssueRaised:l=!1})=>{const[c,d]=t.useState(!1),[u,p]=t.useState(null),[h,b]=t.useState(!1),[g,v]=t.useState(!1);t.useEffect(()=>{l&&v(!0)},[l]),t.useEffect(()=>{v(!1)},[n?.id]);const y=t.useCallback(async()=>{if(l||g){if(u)return void d(!0);b(!0);try{p(null),d(!0)}catch(e){console.error("Error fetching issue:",e),f.showError("Failed to load issue details")}finally{b(!1)}}else p(null),d(!0)},[l,g,r,e,u]),j=t.useCallback(()=>{d(!1),l||g||p(null)},[l,g]),C=t.useCallback(e=>{d(!1),p(e||null),v(!0),o&&n?.id&&o(n.id)},[o,n]);return l||g?m.jsxs(m.Fragment,{children:[m.jsx("div",{className:"threshold-issue-indicator",children:m.jsxs("div",{className:"threshold-issue-indicator-content",children:[m.jsx(s.CheckCircle2,{className:"threshold-issue-indicator-icon",size:16}),m.jsx("span",{className:"threshold-issue-indicator-text",children:"Issue raised for this threshold condition"}),m.jsx("button",{type:"button",onClick:y,className:"threshold-issue-indicator-view-btn",disabled:h,children:h?"Loading...":"View Issue"})]})}),c&&m.jsx(x,{isOpen:c,onClose:j,onSuccess:C,component:e,formTemplateId:r,notes:"",attachments:null,issue:u})]}):m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"threshold-alert threshold-alert-unresolved",children:[m.jsx("div",{className:"threshold-alert-border"}),m.jsxs("div",{className:"threshold-alert-content",children:[m.jsx("div",{className:"threshold-alert-header",children:m.jsxs("div",{className:"threshold-alert-title-group",children:[m.jsx(s.AlertTriangle,{className:"threshold-alert-icon",size:20}),m.jsx("span",{className:"threshold-alert-title",children:"Threshold Condition Met - Action Required"})]})}),m.jsxs("div",{className:"threshold-alert-message",children:[(()=>{const t={greaterThan:">",lessThan:"<",greaterThanOrEqual:"≥",lessThanOrEqual:"≤",equals:"=",notEquals:"≠"}[s=n.operator]||s;var s;return`${e.basic?.label||"Value"}: Value ${i} exceeds threshold ${t} ${a}`})(),m.jsx("span",{className:"threshold-alert-warning",children:" You must raise an issue before submitting the form."})]}),m.jsx("div",{className:"threshold-alert-buttons",children:m.jsx("button",{type:"button",onClick:y,className:"threshold-alert-raise-issue-btn",children:"Raise Issue Now"})})]})]}),c&&m.jsx(x,{isOpen:c,onClose:j,onSuccess:C,component:e,formTemplateId:r,notes:"",attachments:null,issue:u})]})},y=({id:e,properties:s,validationErrors:n={},formValue:i="",inputType:a="text",readonly:r=!1,disabled:o=!1,touchedFields:l={},formSubmitted:c=!1,mode:d="test",onValueChange:u,onBlur:p,onFocus:h,className:f="",hideLabel:g=!1,formTemplateId:x,onThresholdIssueRaised:y,raisedThresholdIssues:j=new Set})=>{const C=e=>null==e?"":"string"==typeof e?e:"number"==typeof e||"boolean"==typeof e?String(e):"object"==typeof e?Array.isArray(e)?"":"value"in e?C(e.value):"label"in e?C(e.label):"":String(e||""),N=t.useRef(e);t.useEffect(()=>{e!==N.current&&(console.warn(`[DfFormInput] Component ID changed from ${N.current} to ${e}`),N.current=e)},[e]);const S=C(i||s?.basic?.defaultValue||""),[w,k]=t.useState(S),[E,$]=t.useState(!1),[T,A]=t.useState(!1),[I,D]=t.useState(new Set),[R,L]=t.useState(S),F=()=>{if(a)return a;const e=s?.name;return"text-input"===e?"text":"number-input"===e?"number":"email-input"===e?"email":"text"},V=t.useCallback(e=>{const t=(()=>{const e={};if(s?.validation?.required&&(e.required=!0),"email"===F()&&(e.email=!0),"text"===F()){const t=s.validation;t?.minLength&&(e.minLength=t.minLength),t?.maxLength&&(e.maxLength=t.maxLength)}if("number"===F()){const t=s.validation;t?.min&&(e.min=t.min),t?.max&&(e.max=t.max),void 0!==t?.lowerLimit&&(e.lowerLimit=t.lowerLimit),void 0!==t?.upperLimit&&(e.upperLimit=t.upperLimit)}return e})(),n={};let i=!0;if(!t.required||e&&""!==e.trim()||(n.required=!0,i=!1),t.email&&e&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(e)&&(n.email=!0,i=!1),t.minLength&&e&&e.length<t.minLength&&(n.minLength=!0,i=!1),t.maxLength&&e&&e.length>t.maxLength&&(n.maxLength=!0,i=!1),"number"===F()&&e){const s=parseFloat(e);isNaN(s)?(n.pattern=!0,i=!1):(void 0!==t.min&&s<t.min&&(n.min=!0,i=!1),void 0!==t.max&&s>t.max&&(n.max=!0,i=!1),void 0!==t.lowerLimit&&s<t.lowerLimit&&(n.lowerLimit=!0,i=!1),void 0!==t.upperLimit&&s>t.upperLimit&&(n.upperLimit=!0,i=!1))}return{isValid:i,errors:n}},[s,F]),O=t.useCallback(t=>{if(k(t),u){const s=V(t),n=N.current,i={id:n,value:t,isValid:s.isValid,errors:s.errors};n!==e&&console.error(`[DfFormInput] ID mismatch in handleValueChange! ref: ${n}, prop: ${e}`),u(i)}},[e,u,V,N]);t.useEffect(()=>{E&&(l[e]=!0)},[E,e,l]),t.useEffect(()=>{if("edit"===d){$(!1);k(s?.basic?.defaultValue||"")}else"test"===d&&($(!1),k(""))},[d,s?.basic?.defaultValue]),t.useEffect(()=>{const t=N.current,n=C(i||s?.basic?.defaultValue||"");n===w||T||""===n&&""!==String(w||"").trim()?""===n&&String(w||"").trim():null!=i&&(t===e?k(n):console.error(`[DfFormInput] ID mismatch! componentIdRef: ${t}, prop id: ${e}`))},[i,w,T,s?.basic?.defaultValue,e]),t.useEffect(()=>{c&&$(!0)},[c]),t.useEffect(()=>{"test"!==d&&k("")},[d]);const M=t.useCallback((e,t)=>{if(!t||""===t)return!1;const s="string"==typeof t?parseFloat(t):t,n="string"==typeof e.value?parseFloat(e.value):e.value;if(isNaN(s)||isNaN(n))return!1;switch(e.operator){case"greaterThan":return s>n;case"lessThan":return s<n;case"greaterThanOrEqual":return s>=n;case"lessThanOrEqual":return s<=n;case"equals":return s===n;case"notEquals":return s!==n;default:return!1}},[]),q=t.useMemo(()=>s?.condition?.conditions||[],[s?.condition]);t.useEffect(()=>{w!==R&&(D(new Set),L(w))},[w,R]);const P=t.useMemo(()=>{if("test"!==d||!w||""===w)return null;const e=q.filter(e=>M(e,w));if(0===e.length)return null;for(const t of e)if(!I.has(t.id))return t;return null},[w,q,I,d,M,j]),z=t.useCallback(e=>{D(t=>new Set(t).add(e))},[]),_=F(),W=o||r||s?.validation?.readonly;return m.jsxs("div",{className:`form-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!g&&s.basic.label&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("input",{type:_,id:e,value:w,onChange:e=>{const t=e.target.value;O(t)},onFocus:()=>{A(!0),h&&h()},onBlur:()=>{if(A(!1),$(!0),"test"===d&&u){const t=V(w),s={id:e,value:w,isValid:t.isValid,errors:t.errors};u(s)}p&&p()},placeholder:s.basic.placeholder,disabled:W,readOnly:r||s?.validation?.readonly,className:(()=>{const t="form-control";if("test"===d){const s=!V(w).isValid&&E,i=n[e]&&(E||c);return`${t} ${s||i?"is-invalid":""} ${f}`.trim()}return`${t} ${f}`.trim()})()}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:l,formSubmitted:c,properties:s,localValidation:V(w),isTouched:E,mode:d}),P&&"test"===d&&(()=>{const e=j?.has(P.id)||!1;return m.jsx(v,{component:s,condition:P,currentValue:w,thresholdValue:P.value,formTemplateId:x,onDismiss:()=>z(P.id),onIssueRaised:y,isIssueRaised:e},`${P.id}-${e}`)})()]})]})},j=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,x]=t.useState(i),[v,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let n=!0;return!s?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),s?.validation?.minLength&&e&&e.length<s.validation.minLength&&(t.minLength=!0,n=!1),s?.validation?.maxLength&&e&&e.length>s.validation.maxLength&&(t.maxLength=!0,n=!1),{isValid:n,errors:t}},[s]),C=t.useCallback(t=>{if(x(t),d){const s=j(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,j]);t.useEffect(()=>{v&&(o[e]=!0)},[v,e,o]),t.useEffect(()=>{""===g&&""!==i&&x(i)},[i]),t.useEffect(()=>{l&&y(!0)},[l]),t.useEffect(()=>{"test"!==c&&x("")},[c]);const N=r||a||s?.validation?.readonly,S=s?.validation?.rows||4;return m.jsxs("div",{className:`form-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!f&&s.basic.label&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("textarea",{id:e,value:g,onChange:e=>{const t=e.target.value;C(t)},onFocus:()=>{p&&p()},onBlur:()=>{y(!0),u&&u()},placeholder:s.basic.placeholder,disabled:N,readOnly:a||s?.validation?.readonly,rows:S,className:`form-textarea ${!j(g).isValid&&v?"is-invalid":""} ${h}`.trim()}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:j(g),isTouched:v,mode:c})]})]})},C=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,x]=t.useState(i),[v,y]=t.useState(!1),j=s?.validation?.multiple||!1,C=t.useCallback(e=>{const t={};let n=!0;return s?.validation?.required&&(j?Array.isArray(e)&&0!==e.length||(t.required=!0,n=!1):(!e||"string"==typeof e&&""===e.trim())&&(t.required=!0,n=!1)),{isValid:n,errors:t}},[s,j]),N=t.useCallback(t=>{if(x(t),d){const s=C(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,C]);t.useEffect(()=>{v&&(o[e]=!0)},[v,e,o]),t.useEffect(()=>{JSON.stringify(i)!==JSON.stringify(g)&&x(i)},[i,g]),t.useEffect(()=>{l&&y(!0)},[l]);const S=r||a||s?.validation?.readonly;return m.jsxs("div",{className:`form-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()}`,children:[!f&&s.basic.label&&m.jsxs("label",{htmlFor:e,className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsxs("select",{id:e,value:g,onChange:e=>{if(j){const t=Array.from(e.target.selectedOptions,e=>e.value);N(t)}else N(e.target.value)},onFocus:()=>{p&&p()},onBlur:()=>{y(!0),u&&u()},disabled:S,multiple:j,className:`form-select ${!C(g).isValid&&v?"is-invalid":""} ${h}`.trim(),children:[!j&&m.jsx("option",{value:"",children:s.basic.placeholder||"Select an option"}),(s.options||[]).map((e,t)=>m.jsx("option",{value:e.value,disabled:e.disabled,children:e.label},t))]}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:C(g),isTouched:v,mode:c})]})]})},N=({id:e,properties:s,validationErrors:n={},formValue:i=[],readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,x]=t.useState(!1),v=Array.isArray(i)?i:[],y=t.useCallback(e=>{const t={};let n=!0;return s?.validation?.required&&0===e.length&&(t.required=!0,n=!1),{isValid:n,errors:t}},[s]),j=t.useCallback(t=>{if(d){const s=y(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,y,v]),C=(e,t)=>{let s;s=t?[...v,e]:v.filter(t=>t!==e),j(s)},N=()=>{p&&p()},S=()=>{x(!0),u&&u()};t.useEffect(()=>{g&&(o[e]=!0)},[g,e,o]),t.useEffect(()=>{},[i,e,v]),t.useEffect(()=>{l&&x(!0)},[l]);const w=r||a||s?.validation?.readonly;return m.jsx(m.Fragment,{children:m.jsx("div",{className:`form-group checkbox-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${s?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${h}`,children:!f&&s.basic.label?m.jsxs(m.Fragment,{children:[m.jsxs("label",{className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("div",{className:"mt-2 "+(s?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(s.options||[]).map((t,s)=>m.jsxs("div",{className:"form-check",children:[m.jsx("input",{type:"checkbox",id:`${e}-${s}`,name:e,value:t.value,checked:v.includes(t.value),onChange:e=>{C(t.value,e.target.checked)},onFocus:N,onBlur:S,disabled:w||t.disabled,className:"form-check-input"}),m.jsx("label",{htmlFor:`${e}-${s}`,className:"form-check-label",children:t.label})]},s))}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:y(v),isTouched:g,mode:c})]})]}):m.jsxs("div",{className:"input-wrapper",children:[m.jsx("div",{className:"mt-2 "+(s?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(s.options||[]).map((t,s)=>m.jsxs("div",{className:"form-check",children:[m.jsx("input",{type:"checkbox",id:`${e}-${s}`,name:e,value:t.value,checked:v.includes(t.value),onChange:e=>{C(t.value,e.target.checked)},onFocus:N,onBlur:S,disabled:w||t.disabled,className:"form-check-input"}),m.jsx("label",{htmlFor:`${e}-${s}`,className:"form-check-label",children:t.label})]},s))}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:y(v),isTouched:g,mode:c})]})})})},S=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,x]=t.useState(i),[v,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let n=!0;return!s?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[s]),C=t.useCallback(t=>{if(x(t),d){const s=j(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,j]),N=e=>{C(e)},S=()=>{p&&p()},w=()=>{y(!0),u&&u()};t.useEffect(()=>{v&&(o[e]=!0)},[v,e,o]),t.useEffect(()=>{i!==g&&x(i)},[i,g]),t.useEffect(()=>{l&&y(!0)},[l]);const k=r||a||s?.validation?.readonly;return m.jsx(m.Fragment,{children:m.jsx("div",{className:`form-group radio-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${s?.basic?.inlineLayout?"inline-layout":"vertical-layout"} ${h}`,children:!f&&s.basic.label?m.jsxs(m.Fragment,{children:[m.jsxs("label",{className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsxs("div",{className:"input-wrapper",children:[m.jsx("div",{className:"mt-2 "+(s?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(s.options||[]).map((t,s)=>m.jsxs("div",{className:"form-check",children:[m.jsx("input",{type:"radio",id:`${e}-${s}`,name:e,value:t.value,checked:g===t.value,onChange:()=>N(t.value),onFocus:S,onBlur:w,disabled:k||t.disabled,className:"form-check-input"}),m.jsx("label",{htmlFor:`${e}-${s}`,className:"form-check-label",children:t.label})]},s))}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:j(g),isTouched:v,mode:c})]})]}):m.jsxs("div",{className:"input-wrapper",children:[m.jsx("div",{className:"mt-2 "+(s?.basic?.inlineLayout?"inline-options-grid":"space-y-2"),children:(s.options||[]).map((t,s)=>m.jsxs("div",{className:"form-check",children:[m.jsx("input",{type:"radio",id:`${e}-${s}`,name:e,value:t.value,checked:g===t.value,onChange:()=>N(t.value),onFocus:S,onBlur:w,disabled:k||t.disabled,className:"form-check-input"}),m.jsx("label",{htmlFor:`${e}-${s}`,className:"form-check-label",children:t.label})]},s))}),m.jsx(b,{validationErrors:n,fieldId:e,touchedFields:o,formSubmitted:l,properties:s,localValidation:j(g),isTouched:v,mode:c})]})})})},w=({id:e,properties:s,validationErrors:n={},formValue:i="",readonly:a=!1,disabled:r=!1,touchedFields:o={},formSubmitted:l=!1,mode:c="preview",onValueChange:d,onBlur:u,onFocus:p,className:h="",hideLabel:f=!1})=>{const[g,x]=t.useState(i),[v,y]=t.useState(!1),j=t.useCallback(e=>{const t={};let n=!0;return!s?.validation?.required||e&&""!==e.trim()||(t.required=!0,n=!1),{isValid:n,errors:t}},[s]),C=t.useCallback(t=>{if(x(t),y(!0),d){const s=j(t),n={id:e,value:t,isValid:s.isValid,errors:s.errors};d(n)}},[e,d,j]),N=()=>{p&&p()},S=()=>{y(!0),u&&u()};t.useEffect(()=>{v&&(o[e]=!0)},[v,e,o]),t.useEffect(()=>{i!==g&&x(i)},[i,g]),t.useEffect(()=>{l&&y(!0)},[l]);const w=()=>s?.basic?.inlineLayout?"inline-layout":"grid-layout",k=e=>{const t=e?.toLowerCase();return"pass"===t||"yes"===t?"pass":"fail"===t||"no"===t?"fail":"pass"},E=e=>{if(void 0!==e?.icon&&""!==e.icon)return e.icon;return"pass"===k(e?.value||e)?"✓":"×"},$=(e,t)=>e?.color||e?.backgroundColor?{color:t?"#ffffff":e.color||"#00814b",backgroundColor:t?e.color||"#00814b":e.backgroundColor||"#34bd4914",borderColor:e.color||"#00814b"}:{},T=e=>{if(e?.color||e?.backgroundColor)return"segment-button-label segment-button-custom";return"segment-button-label "+("pass"===k(e?.value||e)?"pass-button":"fail-button")},A=r||a||s?.validation?.readonly;return m.jsxs(m.Fragment,{children:[m.jsx("div",{className:`form-group segment-group ${(()=>{const e=s?.styles?.labelAlignment;return"left"===e?"label-left":"label-top"})()} ${h}`,children:!f&&s.basic.label?m.jsxs(m.Fragment,{children:[m.jsxs("label",{className:"form-label",children:[s.basic.label,s.validation.required&&m.jsx("span",{className:"required-indicator",children:"*"})]}),m.jsx("div",{className:"form-segment-wrapper",children:m.jsx("div",{className:`form-segment-container ${w()}`,children:(s.options||[]).map((t,s)=>{const n=g===t.value,i=$(t,n),a=T(t),r=E(t);return m.jsxs("div",{className:"form-segment-option "+(n?"selected":""),children:[m.jsx("input",{type:"radio",id:`${e}_option_${s}`,name:e,value:t.value,checked:n,onChange:()=>!A&&!t.disabled&&C(t.value),onFocus:N,onBlur:S,disabled:A||t.disabled,className:"form-segment-radio"}),m.jsxs("label",{htmlFor:`${e}_option_${s}`,className:a,style:Object.keys(i).length>0?i:void 0,children:[r&&m.jsx("span",{className:"segment-icon",children:r}),m.jsx("span",{className:"segment-text",children:t.value})]})]},s)})})})]}):m.jsx("div",{className:"form-segment-wrapper",children:m.jsx("div",{className:`form-segment-container ${w()}`,children:(s.options||[]).map((t,s)=>{const n=g===t.value,i=$(t,n),a=T(t),r=E(t);return m.jsxs("div",{className:"form-segment-op