@react-typed-forms/schemas-html 1.1.0 → 1.1.1

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/lib/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var e=require("react"),t=require("clsx"),r=require("@react-typed-forms/schemas"),n=require("@react-typed-forms/core");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=/*#__PURE__*/a(e),o=/*#__PURE__*/a(t);function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},u.apply(null,arguments)}function s(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.includes(n))continue;r[n]=e[n]}return r}var i=["data","display","className","style"];function c(e){return void 0===e&&(e={}),{render:function(t){/*#__PURE__*/return l.default.createElement(d,u({},e,t))},type:"display"}}function d(e){var t=n.useComponentTracking();try{var a=e.data,u=e.display,c=e.className,d=e.style,f=s(e,i);switch(a.type){case r.DisplayDataType.Icon:/*#__PURE__*/return l.default.createElement("i",{style:d,className:o.default(r.getOverrideClass(c),u?u.value:a.iconClass)});case r.DisplayDataType.Text:/*#__PURE__*/return l.default.createElement("div",{style:d,className:r.rendererClass(c,f.textClassName)},u?r.coerceToString(u.value):a.text);case r.DisplayDataType.Html:/*#__PURE__*/return l.default.createElement("div",{style:d,className:r.rendererClass(c,f.htmlClassName),dangerouslySetInnerHTML:{__html:u?r.coerceToString(u.value):a.html}});case r.DisplayDataType.Custom:/*#__PURE__*/return l.default.createElement("div",null,"Custom display placeholder: ",a.customId);default:/*#__PURE__*/return l.default.createElement("h1",null,"Unknown display type: ",a.type)}}finally{t()}}var f=["control","convert"],m=["errorText","value","onChange"];function p(e){var t=n.useComponentTracking();try{var r=function(e){return null==e?"":o[2](e)},a=e.control,o=e.convert,i=s(e,f),c=n.formControlProps(a),d=c.value,p=s(c,m),y=n.useControl(function(){return r(d)});return n.useControlEffect(function(){return a.value},function(e){return y.value=r(e)}),/*#__PURE__*/l.default.createElement("input",u({},p,{type:o[0],value:y.value,onChange:function(e){y.value=e.target.value;var t=o[1](e.target.value);void 0!==t&&(a.value=t)}},i))}finally{t()}}function y(e){switch(e){case r.FieldType.String:return["text",function(e){return e},function(e){return e}];case r.FieldType.Bool:return["text",function(e){return"true"===e||"false"!==e&&void 0},function(e){var t;return null!=(t=null==e?void 0:e.toString())?t:""}];case r.FieldType.Int:return["number",function(e){return""!==e?parseInt(e):null},function(e){return null==e?"":e}];case r.FieldType.DateTime:return["datetime-local",function(e){return e||null},function(e){return e}];case r.FieldType.Date:return["date",function(e){return e||null},function(e){return e}];case r.FieldType.Time:return["time",function(e){var t=e.length;return 5===t?e+":00":8===t?e:void 0},function(e){return e?e.substring(0,5):""}];case r.FieldType.Double:return["number",function(e){return""!==e?parseFloat(e):null},function(e){return null==e?"":e}];default:return["text",function(e){return e},function(e){return e}]}}var v=["state","options","className","convert","required","emptyText","requiredText","readonly"];function C(e){return void 0===e&&(e={}),r.createDataRenderer(function(t,n){var a;/*#__PURE__*/return l.default.createElement(N,{className:r.rendererClass(t.className,e.className),state:t.control,id:t.id,readonly:t.readonly,options:null!=(a=t.options)?a:[],required:t.required,emptyText:e.emptyText,requiredText:e.requiredText,convert:x(t.field.type)})},{options:!0})}function N(t){var r=n.useComponentTracking();try{var a=function(e,t){/*#__PURE__*/return l.default.createElement("option",{key:t,value:d(e.value),disabled:!!e.disabled},e.name)},o=t.state,i=t.options,c=t.className,d=t.convert,f=t.required,m=t.emptyText,p=void 0===m?"N/A":m,y=t.requiredText,C=void 0===y?"<please select>":y,N=t.readonly,x=s(t,v),g=o.value,T=o.disabled,h=e.useState(!f||null==g)[0],E=e.useMemo(function(){return Object.fromEntries(i.map(function(e){return[d(e.value),e.value]}))},[i]),b=e.useMemo(function(){return new Set(i.filter(function(e){return e.group}).map(function(e){return e.group}))},[i]);/*#__PURE__*/return l.default.createElement("select",u({},x,{className:c,onChange:function(e){return o.value=E[e.target.value]},value:d(g),disabled:T||N}),h&&/*#__PURE__*/l.default.createElement("option",{value:""},f?C:p),[].concat(b.keys()).map(function(e){/*#__PURE__*/return l.default.createElement("optgroup",{key:e,label:e},i.filter(function(t){return t.group===e}).map(a))}),i.filter(function(e){return!e.group}).map(a))}finally{r()}}function x(e){switch(e){case r.FieldType.String:case r.FieldType.Int:case r.FieldType.Double:return function(e){return e};default:return function(e){var t;return null!=(t=null==e?void 0:e.toString())?t:""}}}function g(e){return void 0===e&&(e={}),r.createDataRenderer(function(t){/*#__PURE__*/return l.default.createElement(h,u({},e,t,{className:r.rendererClass(t.className,e.className),isChecked:function(e,t){return e.value==t.value},setChecked:function(e,t){return e.value=t.value},control:t.control,type:"radio",entryAdornment:r.fieldOptionAdornment(t)}))},{renderType:r.DataRenderType.Radio})}function T(e){return void 0===e&&(e={}),r.createDataRenderer(function(t){/*#__PURE__*/return l.default.createElement(h,u({},e,t,{className:r.rendererClass(t.className,e.className),isChecked:function(e,t){var r=e.value;return!!Array.isArray(r)&&r.includes(t.value)},setChecked:function(e,t,r){e.setValue(function(e){return E(null!=e?e:[],t.value,r)})},control:t.control,type:"checkbox",entryAdornment:r.fieldOptionAdornment(t)}))},{collection:!0,renderType:r.DataRenderType.CheckList})}function h(e){var t=n.useComponentTracking();try{var r=e.control,a=e.options,o=e.labelClass,u=e.checkClass,s=e.readonly,i=e.entryClass,c=e.type,d=e.isChecked,f=e.setChecked,m=e.entryAdornment,p=r.disabled,y="r"+r.uniqueId;/*#__PURE__*/return l.default.createElement("div",{className:e.className,id:e.id},/*#__PURE__*/l.default.createElement(n.RenderArrayElements,{array:null==a?void 0:a.filter(function(e){return null!=e.value})},function(e,t){var a=n.useComputed(function(){return d(r,e)}).value;/*#__PURE__*/return l.default.createElement(l.default.Fragment,null,/*#__PURE__*/l.default.createElement("div",{key:t,className:i},/*#__PURE__*/l.default.createElement("input",{id:y+"_"+t,className:u,type:c,name:y,readOnly:s,disabled:p,checked:a,onChange:function(t){!s&&f(r,e,t.target.checked)}}),/*#__PURE__*/l.default.createElement("label",{className:o,htmlFor:y+"_"+t},e.name)),null==m?void 0:m(e,t,a))}))}finally{t()}}function E(e,t,r){return r===e.includes(t)?e:r?[].concat(e,[t]):e.filter(function(e){return e!==t})}function b(e){return void 0===e&&(e={}),r.createDataRenderer(function(t,a){return function(o){return u({},o,{label:void 0,children:/*#__PURE__*/l.default.createElement("div",{className:r.rendererClass(t.className,e.entryClass)},/*#__PURE__*/l.default.createElement(n.Fcheckbox,{id:t.id,control:t.control,style:t.style,className:e.checkClass}),o.label&&a.renderLabel(o.label,void 0,void 0))})}},{renderType:r.DataRenderType.Checkbox})}function D(e){var t=n.useComponentTracking();try{var r=e.errorClass,a=e.renderError,o=e.layout,u=o.controlEnd,s=o.errorControl;/*#__PURE__*/return l.default.createElement(l.default.Fragment,null,o.label,o.controlStart,o.children,(void 0===a?function(e){return e&&/*#__PURE__*/l.default.createElement("div",{className:r},e)}:a)(s&&s.touched?s.error:void 0),u)}finally{t()}}function R(e){var t=n.useComponentTracking();try{var a,o=e.className,u=e.emptyText,s=e.schemaInterface,i=e.field,c=e.style,d=e.control.value,f=null!=(a=s.isEmptyValue(i,d)?u:s.textValue(i,d))?a:"";/*#__PURE__*/return l.default.createElement("div",{style:c,className:r.rendererClass(o)},f)}finally{t()}}function k(){return r.createVisibilityRenderer(function(e){/*#__PURE__*/return l.default.createElement(O,e)})}function O(t){var r=n.useComponentTracking();try{var a=t.visibility,u=t.children,s=t.className,i=t.style,c=t.divRef,d=a.value;return e.useEffect(function(){d&&a.setValue(function(e){return{visible:d.visible,showing:d.visible}})},[null==d?void 0:d.visible]),null!=d&&d.visible?/*#__PURE__*/l.default.createElement("div",{className:o.default(s),style:i,ref:c},u):/*#__PURE__*/l.default.createElement(l.default.Fragment,null)}finally{r()}}function A(e){return r.createDataRenderer(function(t){/*#__PURE__*/return l.default.createElement(F,{renderOptions:t.renderOptions,className:r.rendererClass(t.className,e),dataNode:t.dataNode,dataContext:t.dataContext,control:t.control,readonly:t.readonly})},{renderType:r.DataRenderType.Jsonata})}function F(e){var t=n.useComponentTracking();try{var a=e.control,o=e.renderOptions,u=e.readonly,s=e.className,i=e.dataContext,c=e.dataNode,d=i.parentNode,f=n.useComputed(function(){return{value:a.value,readonly:u,disabled:a.disabled,formData:i.formData,dataPath:r.getJsonPath(c)}}),m=r.useJsonataExpression(o.expression,r.getRootDataNode(d).control,r.getJsonPath(d),f,r.coerceToString);/*#__PURE__*/return l.default.createElement("div",{className:s,dangerouslySetInnerHTML:{__html:m.value}})}finally{t()}}var L=["control","field","renderOptions"];function S(){return r.createDataRenderer(function(e,t){var a,o,i=e.control,c=e.field,d=s(e,L),f=null!=(o=(a=i.meta).nullControl)?o:a.nullControl=n.newControl(null!=i.current.value);return function(e){var n=t.renderData(u({},d,{control:f,field:u({},c,{type:r.FieldType.Bool}),renderOptions:{type:r.DataRenderType.Checkbox}}))(e);return u({},n,{children:/*#__PURE__*/l.default.createElement(I,{control:i,nullControl:f,children:n.children,readonly:d.readonly,defaultValue:d.definition.defaultValue})})}})}function I(e){var t=e.children,r=e.nullControl,a=e.control,l=e.defaultValue,o=e.readonly;return n.useControlEffect(function(){return o},function(e){return r.disabled=e},!0),n.useControlEffect(function(){return r.value},function(e){var t;e?a.value=null!=(t=r.meta.nonNullValue)?t:l:(r.meta.nonNullValue=a.value,a.value=null)}),t}function q(e){return r.createDataRenderer(function(t,n){var a=t.definition,l=t.control,o=t.required,s=t.field,i=t.renderChild,c=t.className,d=t.style,f=t.renderOptions,m=t.readonly,p=t.designMode,y=r.mergeObjects(r.isArrayRenderer(f)?f:{},e),v=y.addText,C=y.noAdd,N=y.noRemove,x=y.removeText,g=r.isArrayRenderer(f)?f.childOptions:void 0,T=u({},r.createArrayActions(l,s,{addText:v,removeText:x,noAdd:C,noRemove:N,readonly:m,disabled:l.disabled,designMode:p}),{required:o,renderElement:function(e){var t,n;return i(null!=(t=null==(n=l.elements)?void 0:n[e].uniqueId)?t:e,{type:r.ControlDefinitionType.Data,field:a.field,children:a.children,renderOptions:null!=g?g:{type:r.DataRenderType.Standard},hideTitle:!0},{elementIndex:e})},className:c||void 0,style:d},r.getLengthRestrictions(a));return n.renderArray(T)},{renderType:r.DataRenderType.Array,collection:!0})}function w(e){return{render:function(t,r){/*#__PURE__*/return l.default.createElement(V,u({},t,e,{renderAction:r.renderAction}))},type:"array"}}function V(e){var t=n.useComponentTracking();try{var a=e.renderElement,u=e.className,s=e.removableClass,i=e.childClass,c=e.removableChildClass,d=e.removeActionClass,f=e.addActionClass,m=e.arrayControl,p=e.renderAction,y=e.style,v=r.applyArrayLengthRestrictions(e),C=v.addAction,N=v.removeAction;/*#__PURE__*/return l.default.createElement("div",{style:y},/*#__PURE__*/l.default.createElement("div",{className:o.default(u,N&&s)},/*#__PURE__*/l.default.createElement(n.RenderElements,{control:m},function(e,t){return N?/*#__PURE__*/l.default.createElement(l.default.Fragment,null,/*#__PURE__*/l.default.createElement("div",{className:o.default(i,c)},a(t)),/*#__PURE__*/l.default.createElement("div",{className:d},p(N(t)))):/*#__PURE__*/l.default.createElement("div",{className:i},a(t))})),C&&/*#__PURE__*/l.default.createElement("div",{className:f},p(C)))}finally{t()}}function M(e){var t=n.useComponentTracking();try{var r=e.children,a=e.accordion,s=e.contentStyle,i=e.contentClassName,c=e.designMode,d=e.iconOpenClass,f=e.iconClosedClass,m=e.className,p=e.renderTitle,y=void 0===p?function(e){return e}:p,v=e.renderToggler,C=e.renderers,N=e.titleClass,x=n.useControl(!!a.defaultExpanded),g=x.value,T=g||c?s:u({},s,{display:"none"}),h=C.renderLabelText(y(a.title,x)),E=v?v(x,h):/*#__PURE__*/l.default.createElement("button",{className:m,onClick:function(){return x.setValue(function(e){return!e})}},/*#__PURE__*/l.default.createElement("label",{className:N},h),/*#__PURE__*/l.default.createElement("i",{className:o.default(g?d:f)}));/*#__PURE__*/return l.default.createElement(l.default.Fragment,null,E,/*#__PURE__*/l.default.createElement("div",{style:T,className:i},r))}finally{t()}}function P(t){var r=n.useComponentTracking();try{var a=t.control,o=t.className,u=e.useRef(null);return n.useControlEffect(function(){return a.value},function(e){var t=u.current;t&&t.textContent!==e&&(t.textContent=e)},!0),/*#__PURE__*/l.default.createElement("code",{contentEditable:!a.disabled,className:o,onInput:function(e){return a.value=e.currentTarget.textContent},ref:u})}finally{r()}}function G(e,t){return void 0===t&&(t={}),r.createActionRenderer(e,function(e){var n,a=e.onClick,o=e.actionText,u=e.style,s=e.actionId,i=e.actionData;/*#__PURE__*/return l.default.createElement("button",{className:r.rendererClass(e.className,t.className),style:u,onClick:a},null!=(n=null==t.renderContent?void 0:t.renderContent(o,s,i))?n:o)})}function J(e){var t=null!=e?e:{},n=t.className,a=t.gridStyles,s=void 0===a?function(e){var t=e.columns;return{className:d,style:{display:"grid",gridTemplateColumns:"repeat("+(void 0===t?c:t)+", 1fr)"}}}:a,i=t.defaultGridColumns,c=void 0===i?2:i,d=t.gridClassName,f=t.standardClassName,m=t.flexClassName,p=t.defaultFlexGap;return{type:"group",render:function(e){var t=e.renderChild,a=e.renderOptions,i=e.childDefinitions,c=r.isGridRenderer(a)?s(a):r.isFlexRenderer(a)?function(e){return{className:m,style:{display:"flex",gap:e.gap?e.gap:p,flexDirection:e.direction?e.direction:void 0}}}(a):{className:f},d=c.style,y=c.className;return function(a){return u({},a,{children:/*#__PURE__*/l.default.createElement("div",{className:r.rendererClass(e.className,o.default(n,y)),style:d},null==i?void 0:i.map(function(e,r){return t(r,e)}))})}}}}var _=[{name:"Yes",value:!0},{name:"No",value:!1}];function j(e){var t,n,a;void 0===e&&(e={});var o,s=A(e.jsonataClass),i=S(),c=(o=e.multilineClass,r.createDataRenderer(function(e){/*#__PURE__*/return l.default.createElement(P,u({},e,{className:r.rendererClass(e.className,o)}))})),d=b(null!=(t=e.checkOptions)?t:e.checkboxOptions),f=C(e.selectOptions),m=g(null!=(n=e.radioOptions)?n:e.checkOptions),v=T(null!=(a=e.checkListOptions)?a:e.checkOptions),N=u({optionRenderer:f,booleanOptions:_},e),x=N.inputClass,h=N.booleanOptions,E=N.optionRenderer,D=N.displayOnlyClass,k=q(e.arrayOptions);return r.createDataRenderer(function(e,t){var n=e.field,a=n.type,o=e.renderOptions,C=o.type;if(n.collection&&null==e.elementIndex&&(C==r.DataRenderType.Standard||C==r.DataRenderType.Array))return k.render(e,t);if(a===r.FieldType.Compound){var N,g=null!=(N=r.isDataGroupRenderer(o)?o.groupOptions:void 0)?N:{type:"Standard",hideTitle:!0};return t.renderGroup(u({},e,{renderOptions:g}))}if(a==r.FieldType.Any)/*#__PURE__*/return l.default.createElement(l.default.Fragment,null,"No control for Any");if(r.isDisplayOnlyRenderer(o))return function(t){return u({},t,{className:D,children:/*#__PURE__*/l.default.createElement(R,{field:e.field,schemaInterface:e.dataContext.schemaInterface,control:e.control,className:e.className,style:e.style,emptyText:o.emptyText})})};if(null!=h&&a===r.FieldType.Bool&&null==e.options)return t.renderData(u({},e,{options:h}));if(C===r.DataRenderType.Standard&&r.hasOptions(e))return E.render(e,t);switch(C){case r.DataRenderType.NullToggle:return i.render(e,t);case r.DataRenderType.CheckList:return v.render(e,t);case r.DataRenderType.Dropdown:return f.render(e,t);case r.DataRenderType.Radio:return m.render(e,t);case r.DataRenderType.Checkbox:return d.render(e,t);case r.DataRenderType.Jsonata:return s.render(e,t)}if(r.isTextfieldRenderer(o)&&o.multiline)return c.render(e,t);var T=r.isTextfieldRenderer(o)?o.placeholder:void 0;/*#__PURE__*/return l.default.createElement(p,{className:r.rendererClass(e.className,x),style:e.style,id:e.id,readOnly:e.readonly,control:e.control,placeholder:null!=T?T:void 0,convert:y(e.field.type)})})}function B(t){return void 0===t&&(t={}),{type:"adornment",render:function(a,o){var s=a.adornment,i=a.designMode,c=a.dataContext,d=a.useExpr;return{apply:function(a){if(r.isSetFieldAdornment(s)&&d){var f=d(s.expression,function(e){return e}),m=r.useDynamicHooks({value:f}),p=e.useCallback(function(e){var t=e.children,a=e.adornment,l=e.parentContext,o=m(l).value,u=r.schemaDataForFieldRef(a.field,l.parentNode).control,s=!a.defaultOnly;return n.useControlEffect(function(){return[null==o?void 0:o.value,null==(null==u?void 0:u.value)]},function(e){var t=e[0];null==u||u.setValue(function(e){return s||null==e?t:e})},!0),t},[m]);return r.wrapLayout(function(e){/*#__PURE__*/return l.default.createElement(p,{children:e,parentContext:c,adornment:s})})(a)}var y;return r.isIconAdornment(s)?r.appendMarkupAt(null!=(y=s.placement)?y:r.AdornmentPlacement.ControlStart,/*#__PURE__*/l.default.createElement("i",{className:s.iconClass}))(a):r.isAccordionAdornment(s)?r.wrapLayout(function(e){/*#__PURE__*/return l.default.createElement(M,u({renderers:o,children:e,accordion:s,contentStyle:a.style,contentClassName:a.className,designMode:i},t.accordion))})(a):void 0},priority:0,adornment:s}}}}function H(e){return void 0===e&&(e={}),r.createLayoutRenderer(function(t,n){var a=r.renderLayoutParts(u({},t,{className:r.rendererClass(t.className,e.className)}),n);return{children:a.wrapLayout(/*#__PURE__*/l.default.createElement(D,u({layout:a},e))),className:a.className,style:a.style,divRef:function(e){return e&&t.errorControl?t.errorControl.meta.scrollElement=e:void 0}}})}function U(e){var t=u({requiredElement:/*#__PURE__*/l.default.createElement("span",null," *"),labelContainer:function(e){return e}},e),n=t.className,a=t.groupLabelClass,s=t.controlLabelClass,i=t.requiredElement,c=t.labelContainer;return{render:function(e,t,u,d){return e.type==r.LabelType.Text?e.label:c(/*#__PURE__*/l.default.createElement(l.default.Fragment,null,/*#__PURE__*/l.default.createElement("label",{htmlFor:e.forId,className:r.rendererClass(e.className,o.default(n,e.type===r.LabelType.Group&&a,e.type===r.LabelType.Control&&s))},t,d.renderLabelText(e.label),e.required&&i),u))},type:"label"}}function Y(e){return void 0===e&&(e={}),{data:j(e.data),display:c(e.display),action:G(void 0,e.action),array:w(e.array),group:J(e.group),label:U(e.label),adornment:B(e.adornment),renderLayout:H(e.layout),visibility:k()}}var z={label:{groupLabelClass:"font-bold",requiredElement:/*#__PURE__*/l.default.createElement("span",{className:"text-red-500"}," *")},array:{removableClass:"grid grid-cols-[1fr_auto] items-center gap-x-2",childClass:"grow my-2",addActionClass:"my-2"},group:{standardClassName:"flex flex-col gap-4",gridClassName:"gap-x-2 gap-y-4",flexClassName:"gap-2"},action:{className:"bg-primary-500 rounded-lg p-3 text-white"},layout:{className:"flex flex-col",errorClass:"text-sm text-danger-500"},data:{displayOnlyClass:"flex flex-row items-center gap-2",checkOptions:{className:"flex items-center gap-4",entryClass:"flex gap-1 items-center"},selectOptions:{emptyText:"<select>"},multilineClass:"border p-2 outline-0 whitespace-pre"},adornment:{accordion:{className:"flex items-center gap-2 my-2",titleClass:"cursor-pointer",iconOpenClass:"fa fa-chevron-up",iconClosedClass:"fa fa-chevron-down"}}};exports.CheckButtons=h,exports.ControlInput=p,exports.DefaultArrayRenderer=V,exports.DefaultBoolOptions=_,exports.DefaultDisplay=d,exports.DefaultDisplayOnly=R,exports.DefaultLayout=D,exports.DefaultVisibility=O,exports.JsonataRenderer=F,exports.SelectDataRenderer=N,exports.createButtonActionRenderer=G,exports.createCheckListRenderer=T,exports.createCheckboxRenderer=b,exports.createClassStyledRenderers=function(){return Y({layout:{className:"control"},group:{className:"group"},array:{className:"control-array"},action:{className:"action"},data:{inputClass:"data"},display:{htmlClassName:"html",textClassName:"text"}})},exports.createDefaultAdornmentRenderer=B,exports.createDefaultArrayDataRenderer=q,exports.createDefaultArrayRenderer=w,exports.createDefaultDataRenderer=j,exports.createDefaultDisplayRenderer=c,exports.createDefaultGroupRenderer=J,exports.createDefaultLabelRenderer=U,exports.createDefaultRenderers=Y,exports.createDefaultVisibilityRenderer=k,exports.createInputConversion=y,exports.createJsonataRenderer=A,exports.createNullToggleRenderer=S,exports.createRadioRenderer=g,exports.createSelectConversion=x,exports.createSelectRenderer=C,exports.defaultTailwindTheme=z,exports.setIncluded=E;
1
+ var e=require("react"),t=require("clsx"),r=require("@react-typed-forms/schemas"),n=require("@react-typed-forms/core");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=/*#__PURE__*/a(e),o=/*#__PURE__*/a(t);function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},u.apply(null,arguments)}function s(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.includes(n))continue;r[n]=e[n]}return r}var i=["data","display","className","style"];function c(e){return void 0===e&&(e={}),{render:function(t){/*#__PURE__*/return l.default.createElement(d,u({},e,t))},type:"display"}}function d(e){var t=n.useComponentTracking();try{var a=e.data,u=e.display,c=e.className,d=e.style,f=s(e,i);switch(a.type){case r.DisplayDataType.Icon:/*#__PURE__*/return l.default.createElement("i",{style:d,className:o.default(r.getOverrideClass(c),u?u.value:a.iconClass)});case r.DisplayDataType.Text:/*#__PURE__*/return l.default.createElement("div",{style:d,className:r.rendererClass(c,f.textClassName)},u?r.coerceToString(u.value):a.text);case r.DisplayDataType.Html:/*#__PURE__*/return l.default.createElement("div",{style:d,className:r.rendererClass(c,f.htmlClassName),dangerouslySetInnerHTML:{__html:u?r.coerceToString(u.value):a.html}});case r.DisplayDataType.Custom:/*#__PURE__*/return l.default.createElement("div",null,"Custom display placeholder: ",a.customId);default:/*#__PURE__*/return l.default.createElement("h1",null,"Unknown display type: ",a.type)}}finally{t()}}var f=["control","convert"],m=["errorText","value","onChange"];function p(e){var t=n.useComponentTracking();try{var r=function(e){return null==e?"":o[2](e)},a=e.control,o=e.convert,i=s(e,f),c=n.formControlProps(a),d=c.value,p=s(c,m),y=n.useControl(function(){return r(d)});return n.useControlEffect(function(){return a.value},function(e){return y.value=r(e)}),/*#__PURE__*/l.default.createElement("input",u({},p,{type:o[0],value:y.value,onChange:function(e){y.value=e.target.value;var t=o[1](e.target.value);void 0!==t&&(a.value=t)}},i))}finally{t()}}function y(e){switch(e){case r.FieldType.String:return["text",function(e){return e},function(e){return e}];case r.FieldType.Bool:return["text",function(e){return"true"===e||"false"!==e&&void 0},function(e){var t;return null!=(t=null==e?void 0:e.toString())?t:""}];case r.FieldType.Int:return["number",function(e){return""!==e?parseInt(e):null},function(e){return null==e?"":e}];case r.FieldType.DateTime:return["datetime-local",function(e){return e||null},function(e){return e}];case r.FieldType.Date:return["date",function(e){return e||null},function(e){return e}];case r.FieldType.Time:return["time",function(e){var t=e.length;return 5===t?e+":00":8===t?e:void 0},function(e){return e?e.substring(0,5):""}];case r.FieldType.Double:return["number",function(e){return""!==e?parseFloat(e):null},function(e){return null==e?"":e}];default:return["text",function(e){return e},function(e){return e}]}}var v=["state","options","className","convert","required","emptyText","requiredText","readonly"];function C(e){return void 0===e&&(e={}),r.createDataRenderer(function(t,n){var a;/*#__PURE__*/return l.default.createElement(x,{className:r.rendererClass(t.className,e.className),state:t.control,id:t.id,readonly:t.readonly,options:null!=(a=t.options)?a:[],required:t.required,emptyText:e.emptyText,requiredText:e.requiredText,convert:N(t.field.type)})},{options:!0})}function x(t){var r=n.useComponentTracking();try{var a=function(e,t){/*#__PURE__*/return l.default.createElement("option",{key:t,value:d(e.value),disabled:!!e.disabled},e.name)},o=t.state,i=t.options,c=t.className,d=t.convert,f=t.required,m=t.emptyText,p=void 0===m?"N/A":m,y=t.requiredText,C=void 0===y?"<please select>":y,x=t.readonly,N=s(t,v),g=o.value,T=o.disabled,h=e.useState(!f||null==g)[0],E=e.useMemo(function(){return Object.fromEntries(i.map(function(e){return[d(e.value),e.value]}))},[i]),b=e.useMemo(function(){return new Set(i.filter(function(e){return e.group}).map(function(e){return e.group}))},[i]);/*#__PURE__*/return l.default.createElement("select",u({},N,{className:c,onChange:function(e){return o.value=E[e.target.value]},value:d(g),disabled:T||x}),h&&/*#__PURE__*/l.default.createElement("option",{value:""},f?C:p),[].concat(b.keys()).map(function(e){/*#__PURE__*/return l.default.createElement("optgroup",{key:e,label:e},i.filter(function(t){return t.group===e}).map(a))}),i.filter(function(e){return!e.group}).map(a))}finally{r()}}function N(e){switch(e){case r.FieldType.String:case r.FieldType.Int:case r.FieldType.Double:return function(e){return e};default:return function(e){var t;return null!=(t=null==e?void 0:e.toString())?t:""}}}function g(e){return void 0===e&&(e={}),r.createDataRenderer(function(t){/*#__PURE__*/return l.default.createElement(h,u({},e,t,{className:r.rendererClass(t.className,e.className),isChecked:function(e,t){return e.value==t.value},setChecked:function(e,t){return e.value=t.value},control:t.control,type:"radio",entryAdornment:r.fieldOptionAdornment(t)}))},{renderType:r.DataRenderType.Radio})}function T(e){return void 0===e&&(e={}),r.createDataRenderer(function(t){/*#__PURE__*/return l.default.createElement(h,u({},e,t,{className:r.rendererClass(t.className,e.className),isChecked:function(e,t){var r=e.value;return!!Array.isArray(r)&&r.includes(t.value)},setChecked:function(e,t,r){e.setValue(function(e){return E(null!=e?e:[],t.value,r)})},control:t.control,type:"checkbox",entryAdornment:r.fieldOptionAdornment(t)}))},{collection:!0,renderType:r.DataRenderType.CheckList})}function h(e){var t=n.useComponentTracking();try{var r=e.control,a=e.options,o=e.labelClass,u=e.checkClass,s=e.readonly,i=e.entryClass,c=e.type,d=e.isChecked,f=e.setChecked,m=e.entryAdornment,p=r.disabled,y="r"+r.uniqueId;/*#__PURE__*/return l.default.createElement("div",{className:e.className,id:e.id},/*#__PURE__*/l.default.createElement(n.RenderArrayElements,{array:null==a?void 0:a.filter(function(e){return null!=e.value})},function(e,t){var a=n.useComputed(function(){return d(r,e)}).value;/*#__PURE__*/return l.default.createElement(l.default.Fragment,null,/*#__PURE__*/l.default.createElement("div",{key:t,className:i},/*#__PURE__*/l.default.createElement("input",{id:y+"_"+t,className:u,type:c,name:y,readOnly:s,disabled:p,checked:a,onChange:function(t){!s&&f(r,e,t.target.checked)}}),/*#__PURE__*/l.default.createElement("label",{className:o,htmlFor:y+"_"+t},e.name)),null==m?void 0:m(e,t,a))}))}finally{t()}}function E(e,t,r){return r===e.includes(t)?e:r?[].concat(e,[t]):e.filter(function(e){return e!==t})}function b(e){return void 0===e&&(e={}),r.createDataRenderer(function(t,a){return function(o){return u({},o,{label:void 0,children:/*#__PURE__*/l.default.createElement("div",{className:r.rendererClass(t.className,e.entryClass)},/*#__PURE__*/l.default.createElement(n.Fcheckbox,{id:t.id,control:t.control,style:t.style,className:e.checkClass}),o.label&&a.renderLabel(o.label,void 0,void 0))})}},{renderType:r.DataRenderType.Checkbox})}function D(e){var t=n.useComponentTracking();try{var r=e.errorClass,a=e.renderError,o=e.layout,u=o.controlEnd,s=o.errorControl;/*#__PURE__*/return l.default.createElement(l.default.Fragment,null,o.label,o.controlStart,o.children,(void 0===a?function(e){return e&&/*#__PURE__*/l.default.createElement("div",{className:r},e)}:a)(s&&s.touched?s.error:void 0),u)}finally{t()}}function R(e){var t=n.useComponentTracking();try{var a,o=e.className,u=e.emptyText,s=e.schemaInterface,i=e.field,c=e.style,d=e.control.value,f=null!=(a=s.isEmptyValue(i,d)?u:s.textValue(i,d))?a:"";/*#__PURE__*/return l.default.createElement("div",{style:c,className:r.rendererClass(o)},f)}finally{t()}}function k(){return r.createVisibilityRenderer(function(e){/*#__PURE__*/return l.default.createElement(O,e)})}function O(t){var r=n.useComponentTracking();try{var a=t.visibility,u=t.children,s=t.className,i=t.style,c=t.divRef,d=a.value;return e.useEffect(function(){d&&a.setValue(function(e){return{visible:d.visible,showing:d.visible}})},[null==d?void 0:d.visible]),null!=d&&d.visible?/*#__PURE__*/l.default.createElement("div",{className:o.default(s),style:i,ref:c},u):/*#__PURE__*/l.default.createElement(l.default.Fragment,null)}finally{r()}}function A(e){return r.createDataRenderer(function(t){/*#__PURE__*/return l.default.createElement(F,{renderOptions:t.renderOptions,className:r.rendererClass(t.className,e),dataNode:t.dataNode,dataContext:t.dataContext,control:t.control,readonly:t.readonly})},{renderType:r.DataRenderType.Jsonata})}function F(e){var t=n.useComponentTracking();try{var a=e.control,o=e.renderOptions,u=e.readonly,s=e.className,i=e.dataContext,c=e.dataNode,d=null!=c.elementIndex?c:i.parentNode,f=n.useComputed(function(){return{value:a.value,readonly:u,disabled:a.disabled,formData:i.formData,dataPath:r.getJsonPath(c)}}),m=r.useJsonataExpression(o.expression,r.getRootDataNode(d).control,r.getJsonPath(d),f,r.coerceToString);/*#__PURE__*/return l.default.createElement("div",{className:s,dangerouslySetInnerHTML:{__html:m.value}})}finally{t()}}var L=["control","field","renderOptions"];function S(){return r.createDataRenderer(function(e,t){var a,o,i=e.control,c=e.field,d=s(e,L),f=null!=(o=(a=i.meta).nullControl)?o:a.nullControl=n.newControl(null!=i.current.value);return function(e){var n=t.renderData(u({},d,{control:f,field:u({},c,{type:r.FieldType.Bool}),renderOptions:{type:r.DataRenderType.Checkbox}}))(e);return u({},n,{children:/*#__PURE__*/l.default.createElement(I,{control:i,nullControl:f,children:n.children,readonly:d.readonly,defaultValue:d.definition.defaultValue})})}})}function I(e){var t=e.children,r=e.nullControl,a=e.control,l=e.defaultValue,o=e.readonly;return n.useControlEffect(function(){return o},function(e){return r.disabled=e},!0),n.useControlEffect(function(){return r.value},function(e){var t;e?a.value=null!=(t=r.meta.nonNullValue)?t:l:(r.meta.nonNullValue=a.value,a.value=null)}),t}function q(e){return r.createDataRenderer(function(t,n){var a=t.definition,l=t.control,o=t.required,s=t.field,i=t.renderChild,c=t.className,d=t.style,f=t.renderOptions,m=t.readonly,p=t.designMode,y=r.mergeObjects(r.isArrayRenderer(f)?f:{},e),v=y.addText,C=y.noAdd,x=y.noRemove,N=y.removeText,g=r.isArrayRenderer(f)?f.childOptions:void 0,T=u({},r.createArrayActions(l,s,{addText:v,removeText:N,noAdd:C,noRemove:x,readonly:m,disabled:l.disabled,designMode:p}),{required:o,renderElement:function(e){var t,n;return i(null!=(t=null==(n=l.elements)?void 0:n[e].uniqueId)?t:e,{type:r.ControlDefinitionType.Data,field:a.field,children:a.children,renderOptions:null!=g?g:{type:r.DataRenderType.Standard},hideTitle:!0},{elementIndex:e})},className:c||void 0,style:d},r.getLengthRestrictions(a));return n.renderArray(T)},{renderType:r.DataRenderType.Array,collection:!0})}function w(e){return{render:function(t,r){/*#__PURE__*/return l.default.createElement(V,u({},t,e,{renderAction:r.renderAction}))},type:"array"}}function V(e){var t=n.useComponentTracking();try{var a=e.renderElement,u=e.className,s=e.removableClass,i=e.childClass,c=e.removableChildClass,d=e.removeActionClass,f=e.addActionClass,m=e.arrayControl,p=e.renderAction,y=e.style,v=r.applyArrayLengthRestrictions(e),C=v.addAction,x=v.removeAction;/*#__PURE__*/return l.default.createElement("div",{style:y},/*#__PURE__*/l.default.createElement("div",{className:o.default(u,x&&s)},/*#__PURE__*/l.default.createElement(n.RenderElements,{control:m},function(e,t){return x?/*#__PURE__*/l.default.createElement(l.default.Fragment,null,/*#__PURE__*/l.default.createElement("div",{className:o.default(i,c)},a(t)),/*#__PURE__*/l.default.createElement("div",{className:d},p(x(t)))):/*#__PURE__*/l.default.createElement("div",{className:i},a(t))})),C&&/*#__PURE__*/l.default.createElement("div",{className:f},p(C)))}finally{t()}}function M(e){var t=n.useComponentTracking();try{var r=e.children,a=e.accordion,s=e.contentStyle,i=e.contentClassName,c=e.designMode,d=e.iconOpenClass,f=e.iconClosedClass,m=e.className,p=e.renderTitle,y=void 0===p?function(e){return e}:p,v=e.renderToggler,C=e.renderers,x=e.titleClass,N=n.useControl(!!a.defaultExpanded),g=N.value,T=g||c?s:u({},s,{display:"none"}),h=C.renderLabelText(y(a.title,N)),E=v?v(N,h):/*#__PURE__*/l.default.createElement("button",{className:m,onClick:function(){return N.setValue(function(e){return!e})}},/*#__PURE__*/l.default.createElement("label",{className:x},h),/*#__PURE__*/l.default.createElement("i",{className:o.default(g?d:f)}));/*#__PURE__*/return l.default.createElement(l.default.Fragment,null,E,/*#__PURE__*/l.default.createElement("div",{style:T,className:i},r))}finally{t()}}function P(t){var r=n.useComponentTracking();try{var a=t.control,o=t.className,u=e.useRef(null);return n.useControlEffect(function(){return a.value},function(e){var t=u.current;t&&t.textContent!==e&&(t.textContent=e)},!0),/*#__PURE__*/l.default.createElement("code",{contentEditable:!a.disabled,className:o,onInput:function(e){return a.value=e.currentTarget.textContent},ref:u})}finally{r()}}function G(e,t){return void 0===t&&(t={}),r.createActionRenderer(e,function(e){var n,a=e.onClick,o=e.actionText,u=e.style,s=e.actionId,i=e.actionData;/*#__PURE__*/return l.default.createElement("button",{className:r.rendererClass(e.className,t.className),style:u,onClick:a},null!=(n=null==t.renderContent?void 0:t.renderContent(o,s,i))?n:o)})}function J(e){var t=null!=e?e:{},n=t.className,a=t.gridStyles,s=void 0===a?function(e){var t=e.columns;return{className:d,style:{display:"grid",gridTemplateColumns:"repeat("+(void 0===t?c:t)+", 1fr)"}}}:a,i=t.defaultGridColumns,c=void 0===i?2:i,d=t.gridClassName,f=t.standardClassName,m=t.flexClassName,p=t.defaultFlexGap;return{type:"group",render:function(e){var t=e.renderChild,a=e.renderOptions,i=e.childDefinitions,c=r.isGridRenderer(a)?s(a):r.isFlexRenderer(a)?function(e){return{className:m,style:{display:"flex",gap:e.gap?e.gap:p,flexDirection:e.direction?e.direction:void 0}}}(a):{className:f},d=c.style,y=c.className;return function(a){return u({},a,{children:/*#__PURE__*/l.default.createElement("div",{className:r.rendererClass(e.className,o.default(n,y)),style:d},null==i?void 0:i.map(function(e,r){return t(r,e)}))})}}}}var _=[{name:"Yes",value:!0},{name:"No",value:!1}];function j(e){var t,n,a;void 0===e&&(e={});var o,s=A(e.jsonataClass),i=S(),c=(o=e.multilineClass,r.createDataRenderer(function(e){/*#__PURE__*/return l.default.createElement(P,u({},e,{className:r.rendererClass(e.className,o)}))})),d=b(null!=(t=e.checkOptions)?t:e.checkboxOptions),f=C(e.selectOptions),m=g(null!=(n=e.radioOptions)?n:e.checkOptions),v=T(null!=(a=e.checkListOptions)?a:e.checkOptions),x=u({optionRenderer:f,booleanOptions:_},e),N=x.inputClass,h=x.booleanOptions,E=x.optionRenderer,D=x.displayOnlyClass,k=q(e.arrayOptions);return r.createDataRenderer(function(e,t){var n=e.field,a=n.type,o=e.renderOptions,C=o.type;if(n.collection&&null==e.elementIndex&&(C==r.DataRenderType.Standard||C==r.DataRenderType.Array))return k.render(e,t);if(a===r.FieldType.Compound){var x,g=null!=(x=r.isDataGroupRenderer(o)?o.groupOptions:void 0)?x:{type:"Standard",hideTitle:!0};return t.renderGroup(u({},e,{renderOptions:g}))}if(a==r.FieldType.Any)/*#__PURE__*/return l.default.createElement(l.default.Fragment,null,"No control for Any");if(r.isDisplayOnlyRenderer(o))return function(t){return u({},t,{className:D,children:/*#__PURE__*/l.default.createElement(R,{field:e.field,schemaInterface:e.dataContext.schemaInterface,control:e.control,className:e.className,style:e.style,emptyText:o.emptyText})})};if(null!=h&&a===r.FieldType.Bool&&null==e.options)return t.renderData(u({},e,{options:h}));if(C===r.DataRenderType.Standard&&r.hasOptions(e))return E.render(e,t);switch(C){case r.DataRenderType.NullToggle:return i.render(e,t);case r.DataRenderType.CheckList:return v.render(e,t);case r.DataRenderType.Dropdown:return f.render(e,t);case r.DataRenderType.Radio:return m.render(e,t);case r.DataRenderType.Checkbox:return d.render(e,t);case r.DataRenderType.Jsonata:return s.render(e,t)}if(r.isTextfieldRenderer(o)&&o.multiline)return c.render(e,t);var T=r.isTextfieldRenderer(o)?o.placeholder:void 0;/*#__PURE__*/return l.default.createElement(p,{className:r.rendererClass(e.className,N),style:e.style,id:e.id,readOnly:e.readonly,control:e.control,placeholder:null!=T?T:void 0,convert:y(e.field.type)})})}function B(t){return void 0===t&&(t={}),{type:"adornment",render:function(a,o){var s=a.adornment,i=a.designMode,c=a.dataContext,d=a.useExpr;return{apply:function(a){if(r.isSetFieldAdornment(s)&&d){var f=d(s.expression,function(e){return e}),m=r.useDynamicHooks({value:f}),p=e.useCallback(function(e){var t=e.children,a=e.adornment,l=e.parentContext,o=m(l).value,u=r.schemaDataForFieldRef(a.field,l.parentNode).control,s=!a.defaultOnly;return n.useControlEffect(function(){return[null==o?void 0:o.value,null==(null==u?void 0:u.value)]},function(e){var t=e[0];null==u||u.setValue(function(e){return s||null==e?t:e})},!0),t},[m]);return r.wrapLayout(function(e){/*#__PURE__*/return l.default.createElement(p,{children:e,parentContext:c,adornment:s})})(a)}var y;return r.isIconAdornment(s)?r.appendMarkupAt(null!=(y=s.placement)?y:r.AdornmentPlacement.ControlStart,/*#__PURE__*/l.default.createElement("i",{className:s.iconClass}))(a):r.isAccordionAdornment(s)?r.wrapLayout(function(e){/*#__PURE__*/return l.default.createElement(M,u({renderers:o,children:e,accordion:s,contentStyle:a.style,contentClassName:a.className,designMode:i},t.accordion))})(a):void 0},priority:0,adornment:s}}}}function H(e){return void 0===e&&(e={}),r.createLayoutRenderer(function(t,n){var a=r.renderLayoutParts(u({},t,{className:r.rendererClass(t.className,e.className)}),n);return{children:a.wrapLayout(/*#__PURE__*/l.default.createElement(D,u({layout:a},e))),className:a.className,style:a.style,divRef:function(e){return e&&t.errorControl?t.errorControl.meta.scrollElement=e:void 0}}})}function U(e){var t=u({requiredElement:/*#__PURE__*/l.default.createElement("span",null," *"),labelContainer:function(e){return e}},e),n=t.className,a=t.groupLabelClass,s=t.controlLabelClass,i=t.requiredElement,c=t.labelContainer;return{render:function(e,t,u,d){return e.type==r.LabelType.Text?e.label:c(/*#__PURE__*/l.default.createElement(l.default.Fragment,null,/*#__PURE__*/l.default.createElement("label",{htmlFor:e.forId,className:r.rendererClass(e.className,o.default(n,e.type===r.LabelType.Group&&a,e.type===r.LabelType.Control&&s))},t,d.renderLabelText(e.label),e.required&&i),u))},type:"label"}}function Y(e){return void 0===e&&(e={}),{data:j(e.data),display:c(e.display),action:G(void 0,e.action),array:w(e.array),group:J(e.group),label:U(e.label),adornment:B(e.adornment),renderLayout:H(e.layout),visibility:k()}}var z={label:{groupLabelClass:"font-bold",requiredElement:/*#__PURE__*/l.default.createElement("span",{className:"text-red-500"}," *")},array:{removableClass:"grid grid-cols-[1fr_auto] items-center gap-x-2",childClass:"grow my-2",addActionClass:"my-2"},group:{standardClassName:"flex flex-col gap-4",gridClassName:"gap-x-2 gap-y-4",flexClassName:"gap-2"},action:{className:"bg-primary-500 rounded-lg p-3 text-white"},layout:{className:"flex flex-col",errorClass:"text-sm text-danger-500"},data:{displayOnlyClass:"flex flex-row items-center gap-2",checkOptions:{className:"flex items-center gap-4",entryClass:"flex gap-1 items-center"},selectOptions:{emptyText:"<select>"},multilineClass:"border p-2 outline-0 whitespace-pre"},adornment:{accordion:{className:"flex items-center gap-2 my-2",titleClass:"cursor-pointer",iconOpenClass:"fa fa-chevron-up",iconClosedClass:"fa fa-chevron-down"}}};exports.CheckButtons=h,exports.ControlInput=p,exports.DefaultArrayRenderer=V,exports.DefaultBoolOptions=_,exports.DefaultDisplay=d,exports.DefaultDisplayOnly=R,exports.DefaultLayout=D,exports.DefaultVisibility=O,exports.JsonataRenderer=F,exports.SelectDataRenderer=x,exports.createButtonActionRenderer=G,exports.createCheckListRenderer=T,exports.createCheckboxRenderer=b,exports.createClassStyledRenderers=function(){return Y({layout:{className:"control"},group:{className:"group"},array:{className:"control-array"},action:{className:"action"},data:{inputClass:"data"},display:{htmlClassName:"html",textClassName:"text"}})},exports.createDefaultAdornmentRenderer=B,exports.createDefaultArrayDataRenderer=q,exports.createDefaultArrayRenderer=w,exports.createDefaultDataRenderer=j,exports.createDefaultDisplayRenderer=c,exports.createDefaultGroupRenderer=J,exports.createDefaultLabelRenderer=U,exports.createDefaultRenderers=Y,exports.createDefaultVisibilityRenderer=k,exports.createInputConversion=y,exports.createJsonataRenderer=A,exports.createNullToggleRenderer=S,exports.createRadioRenderer=g,exports.createSelectConversion=N,exports.createSelectRenderer=C,exports.defaultTailwindTheme=z,exports.setIncluded=E;
2
2
  //# sourceMappingURL=index.cjs.map
package/lib/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/components/DefaultDisplay.tsx","../src/components/ControlInput.tsx","../src/components/SelectDataRenderer.tsx","../src/components/CheckRenderer.tsx","../src/components/DefaultLayout.tsx","../src/components/DefaultDisplayOnly.tsx","../src/components/DefaultVisibility.tsx","../src/components/JsonataRenderer.tsx","../src/components/NullToggle.tsx","../src/components/DefaultArrayRenderer.tsx","../src/components/DefaultAccordion.tsx","../src/components/MultilineTextfield.tsx","../src/createDefaultRenderers.tsx","../src/tailwind.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport {\n coerceToString,\n CustomDisplay,\n DisplayDataType,\n DisplayRendererProps,\n DisplayRendererRegistration,\n getOverrideClass,\n HtmlDisplay,\n IconDisplay,\n rendererClass,\n TextDisplay,\n} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\n\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n return {\n render: (props) => <DefaultDisplay {...options} {...props} />,\n type: \"display\",\n };\n}\n\nexport function DefaultDisplay({\n data,\n display,\n className,\n style,\n ...options\n}: DefaultDisplayRendererOptions & DisplayRendererProps) {\n switch (data.type) {\n case DisplayDataType.Icon:\n return (\n <i\n style={style}\n className={clsx(\n getOverrideClass(className),\n display ? display.value : (data as IconDisplay).iconClass,\n )}\n />\n );\n case DisplayDataType.Text:\n return (\n <div\n style={style}\n className={rendererClass(className, options.textClassName)}\n >\n {display ? coerceToString(display.value) : (data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n style={style}\n className={rendererClass(className, options.htmlClassName)}\n dangerouslySetInnerHTML={{\n __html: display\n ? coerceToString(display.value)\n : (data as HtmlDisplay).html,\n }}\n />\n );\n case DisplayDataType.Custom:\n return (\n <div>\n Custom display placeholder: {(data as CustomDisplay).customId}\n </div>\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n}\n","import React from \"react\";\nimport {\n Control,\n formControlProps,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {FieldType} from \"@react-typed-forms/schemas\";\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n const textValue = useControl(() => toText(value));\n useControlEffect(\n () => control.value,\n (v) => (textValue.value = toText(v)),\n );\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={textValue.value}\n onChange={(e) => {\n textValue.value = e.target.value;\n const converted = convert[1](e.target.value);\n if (converted !== undefined) control.value = converted;\n }}\n {...props}\n />\n );\n\n function toText(value: any) {\n return value == null ? \"\" : convert[2](value);\n }\n}\n\ntype InputConversion = [\n string,\n (s: string) => any,\n (a: any) => string | number,\n];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\n \"text\",\n (a) => (a === \"true\" ? true : a === \"false\" ? false : undefined),\n (a) => a?.toString() ?? \"\",\n ];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.DateTime:\n return [\"datetime-local\", (a) => (!a ? null : a), (a) => a];\n case FieldType.Date:\n return [\"date\", (a) => (!a ? null : a), (a) => a];\n case FieldType.Time:\n return [\n \"time\",\n (a) => {\n const l = a.length;\n if (l === 5) return a + \":00\";\n if (l === 8) return a;\n return undefined;\n },\n (a) => (a ? a.substring(0, 5) : \"\"),\n ];\n case FieldType.Double:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseFloat(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React, { useMemo, useState } from \"react\";\nimport {\n createDataRenderer,\n FieldOption,\n FieldType,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={rendererClass(props.className, options.className)}\n state={props.control}\n id={props.id}\n readonly={props.readonly}\n options={props.options ?? []}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\nexport interface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: FieldOption[];\n emptyText?: string;\n requiredText?: string;\n readonly: boolean;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n readonly,\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n const optionGroups = useMemo(\n () => new Set(options.filter((x) => x.group).map((x) => x.group!)),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled || readonly}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {[...optionGroups.keys()].map((x) => (\n <optgroup key={x} label={x}>\n {options.filter((o) => o.group === x).map(renderOption)}\n </optgroup>\n ))}\n {options.filter((x) => !x.group).map(renderOption)}\n </select>\n );\n\n function renderOption(x: FieldOption, i: number) {\n return (\n <option key={i} value={convert(x.value)} disabled={!!x.disabled}>\n {x.name}\n </option>\n );\n }\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n","import {\n Control,\n Fcheckbox,\n RenderArrayElements,\n useComputed,\n} from \"@react-typed-forms/core\";\nimport React, { ReactNode } from \"react\";\nimport {\n createDataRenderer,\n DataRenderType,\n FieldOption,\n fieldOptionAdornment,\n rendererClass\n} from \"@react-typed-forms/schemas\";\n\nexport interface CheckRendererOptions {\n className?: string;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n}\nexport function createRadioRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n {...options}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => control.value == o.value}\n setChecked={(c, o) => (c.value = o.value)}\n control={p.control}\n type=\"radio\"\n entryAdornment={fieldOptionAdornment(p)}\n />\n ),\n {\n renderType: DataRenderType.Radio,\n },\n );\n}\n\nexport function createCheckListRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n {...options}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => {\n const v = control.value;\n return Array.isArray(v) ? v.includes(o.value) : false;\n }}\n setChecked={(c, o, checked) => {\n c.setValue((x) => setIncluded(x ?? [], o.value, checked));\n }}\n control={p.control}\n type=\"checkbox\"\n entryAdornment={fieldOptionAdornment(p)}\n />\n ),\n {\n collection: true,\n renderType: DataRenderType.CheckList,\n },\n );\n}\n\nexport interface CheckButtonsProps {\n id?: string;\n className?: string;\n options?: FieldOption[] | null;\n control: Control<any>;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n readonly?: boolean;\n type: \"checkbox\" | \"radio\";\n isChecked: (c: Control<any>, o: FieldOption) => boolean;\n setChecked: (c: Control<any>, o: FieldOption, checked: boolean) => void;\n entryAdornment?: (c: FieldOption, i: number, selected: boolean) => ReactNode;\n}\n\nexport function CheckButtons({\n control,\n options,\n labelClass,\n checkClass,\n readonly,\n entryClass,\n className,\n id,\n type,\n isChecked,\n setChecked,\n entryAdornment,\n}: CheckButtonsProps) {\n const { disabled } = control;\n const name = \"r\" + control.uniqueId;\n return (\n <div className={className} id={id}>\n <RenderArrayElements array={options?.filter((x) => x.value != null)}>\n {(o, i) => {\n const checked = useComputed(() => isChecked(control, o)).value;\n return (\n <>\n <div key={i} className={entryClass}>\n <input\n id={name + \"_\" + i}\n className={checkClass}\n type={type}\n name={name}\n readOnly={readonly}\n disabled={disabled}\n checked={checked}\n onChange={(x) => {\n !readonly && setChecked(control, o, x.target.checked);\n }}\n />\n <label className={labelClass} htmlFor={name + \"_\" + i}>\n {o.name}\n </label>\n </div>\n {entryAdornment?.(o, i, checked)}\n </>\n );\n }}\n </RenderArrayElements>\n </div>\n );\n}\n\nexport function setIncluded<A>(array: A[], elem: A, included: boolean): A[] {\n const already = array.includes(elem);\n if (included === already) {\n return array;\n }\n if (included) {\n return [...array, elem];\n }\n return array.filter((e) => e !== elem);\n}\n\nexport function createCheckboxRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (props, renderer) => (p) => ({\n ...p,\n label: undefined,\n children: (\n <div className={rendererClass(props.className, options.entryClass)}>\n <Fcheckbox\n id={props.id}\n control={props.control}\n style={props.style}\n className={options.checkClass}\n />\n {p.label && renderer.renderLabel(p.label, undefined, undefined)}\n </div>\n ),\n }),\n { renderType: DataRenderType.Checkbox },\n );\n}\n","import React, { ReactNode } from \"react\";\nimport {RenderedLayout} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n renderError?: (errorText: string | null | undefined) => ReactNode;\n}\n\nexport function DefaultLayout({\n errorClass,\n renderError = (e) => e && <div className={errorClass}>{e}</div>,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n return (\n <>\n {label}\n {controlStart}\n {children}\n {renderError(errorText)}\n {controlEnd}\n </>\n );\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport {\n rendererClass,\n SchemaField,\n SchemaInterface,\n} from \"@react-typed-forms/schemas\";\n\nexport function DefaultDisplayOnly({\n control,\n className,\n emptyText,\n schemaInterface,\n field,\n style,\n}: {\n control: Control<any>;\n field: SchemaField;\n schemaInterface: SchemaInterface;\n className?: string | null;\n style?: React.CSSProperties;\n emptyText?: string | null;\n}) {\n const v = control.value;\n const text =\n (schemaInterface.isEmptyValue(field, v)\n ? emptyText\n : schemaInterface.textValue(field, v)) ?? \"\";\n return (\n <div style={style} className={rendererClass(className)}>\n {text}\n </div>\n );\n}\n","import React, { useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport {\n createVisibilityRenderer,\n VisibilityRendererProps,\n} from \"@react-typed-forms/schemas\";\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((props) => <DefaultVisibility {...props} />);\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n className,\n style,\n divRef,\n}: VisibilityRendererProps) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? (\n <div className={clsx(className)} style={style} ref={divRef}>\n {children}\n </div>\n ) : (\n <></>\n );\n}\n","import { Control, useComputed } from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport {\n coerceToString,\n ControlDataContext,\n createDataRenderer,\n DataRenderType,\n getJsonPath,\n getRootDataNode,\n JsonataRenderOptions,\n rendererClass,\n SchemaDataNode,\n useJsonataExpression,\n} from \"@react-typed-forms/schemas\";\n\nexport function createJsonataRenderer(className?: string) {\n return createDataRenderer(\n (p) => (\n <JsonataRenderer\n renderOptions={p.renderOptions as JsonataRenderOptions}\n className={rendererClass(p.className, className)}\n dataNode={p.dataNode}\n dataContext={p.dataContext}\n control={p.control}\n readonly={p.readonly}\n />\n ),\n { renderType: DataRenderType.Jsonata },\n );\n}\n\nexport function JsonataRenderer({\n control,\n renderOptions,\n readonly,\n className,\n dataContext,\n dataNode,\n}: {\n control: Control<any>;\n renderOptions: JsonataRenderOptions;\n className?: string;\n dataContext: ControlDataContext;\n dataNode: SchemaDataNode;\n readonly: boolean;\n}) {\n const sdn = dataContext.parentNode;\n const bindings = useComputed(() => ({\n value: control.value,\n readonly,\n disabled: control.disabled,\n formData: dataContext.formData,\n dataPath: getJsonPath(dataNode),\n }));\n const rendered = useJsonataExpression(\n renderOptions.expression,\n getRootDataNode(sdn).control!,\n getJsonPath(sdn),\n bindings,\n coerceToString,\n );\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: rendered.value }}\n />\n );\n}\n","import { Control, newControl, useControlEffect } from \"@react-typed-forms/core\";\nimport React, { ReactNode } from \"react\";\nimport {\n createDataRenderer,\n DataRenderType,\n FieldType,\n} from \"@react-typed-forms/schemas\";\n\nexport function createNullToggleRenderer() {\n return createDataRenderer(\n ({ control, field, renderOptions, ...props }, renderers) => {\n const nullControl = (control.meta[\"nullControl\"] ??= newControl(\n control.current.value != null,\n ));\n return (layout) => {\n const newLayout = renderers.renderData({\n ...props,\n control: nullControl,\n field: { ...field, type: FieldType.Bool },\n renderOptions: { type: DataRenderType.Checkbox },\n })(layout);\n return {\n ...newLayout,\n children: (\n <NullWrapper\n control={control}\n nullControl={nullControl}\n children={newLayout.children}\n readonly={props.readonly}\n defaultValue={props.definition.defaultValue}\n />\n ),\n };\n };\n },\n );\n}\n\nfunction NullWrapper({\n children,\n nullControl,\n control,\n defaultValue,\n readonly,\n}: {\n control: Control<any>;\n nullControl: Control<boolean>;\n children: ReactNode;\n readonly: boolean;\n defaultValue: any;\n}) {\n useControlEffect(\n () => readonly,\n (r) => (nullControl.disabled = r),\n true,\n );\n useControlEffect(\n () => nullControl.value,\n (e) => {\n if (e) {\n control.value = nullControl.meta[\"nonNullValue\"] ?? defaultValue;\n } else {\n nullControl.meta[\"nonNullValue\"] = control.value;\n control.value = null;\n }\n },\n );\n return children;\n}\n","import clsx from \"clsx\";\nimport React, { Fragment, ReactNode } from \"react\";\nimport { RenderElements } from \"@react-typed-forms/core\";\nimport {\n ActionRendererProps,\n applyArrayLengthRestrictions,\n ArrayActionOptions,\n ArrayRendererProps,\n ArrayRendererRegistration,\n ArrayRenderOptions,\n ControlDefinitionType,\n createArrayActions,\n createDataRenderer,\n DataControlDefinition,\n DataRendererRegistration,\n DataRenderType,\n getLengthRestrictions,\n isArrayRenderer,\n mergeObjects,\n} from \"@react-typed-forms/schemas\";\n\nexport function createDefaultArrayDataRenderer(\n defaultActions?: ArrayActionOptions,\n): DataRendererRegistration {\n return createDataRenderer(\n (\n {\n definition,\n control,\n required,\n field,\n renderChild,\n className,\n style,\n renderOptions,\n readonly,\n designMode,\n },\n renderers,\n ) => {\n const { addText, noAdd, noRemove, noReorder, removeText } = mergeObjects(\n isArrayRenderer(renderOptions)\n ? renderOptions\n : ({} as ArrayRenderOptions),\n defaultActions as ArrayRenderOptions,\n );\n const childOptions = isArrayRenderer(renderOptions)\n ? renderOptions.childOptions\n : undefined;\n\n const arrayProps = {\n ...createArrayActions(control, field, {\n addText,\n removeText,\n noAdd,\n noRemove,\n readonly,\n disabled: control.disabled,\n designMode,\n }),\n required,\n renderElement: (i) =>\n renderChild(\n control.elements?.[i].uniqueId ?? i,\n {\n type: ControlDefinitionType.Data,\n field: definition.field,\n children: definition.children,\n renderOptions: childOptions ?? { type: DataRenderType.Standard },\n hideTitle: true,\n } as DataControlDefinition,\n { elementIndex: i },\n ),\n className: className ? className : undefined,\n style,\n ...getLengthRestrictions(definition),\n } satisfies ArrayRendererProps;\n return renderers.renderArray(arrayProps);\n },\n { renderType: DataRenderType.Array, collection: true },\n );\n}\n\nexport interface DefaultArrayRendererOptions extends ArrayActionOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n return {\n render: (props, { renderAction }) => (\n <DefaultArrayRenderer\n {...props}\n {...options}\n renderAction={renderAction}\n />\n ),\n type: \"array\",\n };\n}\n\nexport interface DefaultArrayRendererProps\n extends DefaultArrayRendererOptions,\n ArrayRendererProps {\n renderAction: (props: ActionRendererProps) => ReactNode;\n}\n\nexport function DefaultArrayRenderer(props: DefaultArrayRendererProps) {\n const {\n renderElement,\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n arrayControl,\n renderAction,\n style,\n } = props;\n const { addAction, removeAction } = applyArrayLengthRestrictions(props);\n return (\n <div style={style}>\n <div className={clsx(className, removeAction && removableClass)}>\n <RenderElements control={arrayControl}>\n {(_, x) =>\n removeAction ? (\n <>\n <div className={clsx(childClass, removableChildClass)}>\n {renderElement(x)}\n </div>\n <div className={removeActionClass}>\n {renderAction(removeAction(x))}\n </div>\n </>\n ) : (\n <div className={childClass}>{renderElement(x)}</div>\n )\n }\n </RenderElements>\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n}\n","import React, { CSSProperties, Fragment, ReactElement } from \"react\";\nimport { useControl } from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\nimport { DefaultAccordionRendererOptions } from \"../createDefaultRenderers\";\nimport { AccordionAdornment, FormRenderer } from \"@react-typed-forms/schemas\";\n\nexport function DefaultAccordion({\n children,\n accordion,\n contentStyle,\n contentClassName,\n designMode,\n iconOpenClass,\n iconClosedClass,\n className,\n renderTitle = (t) => t,\n renderToggler,\n renderers,\n titleClass,\n}: {\n children: ReactElement;\n accordion: Partial<AccordionAdornment>;\n contentStyle?: CSSProperties;\n contentClassName?: string;\n designMode?: boolean;\n renderers: FormRenderer;\n} & DefaultAccordionRendererOptions) {\n const open = useControl(!!accordion.defaultExpanded);\n const isOpen = open.value;\n const fullContentStyle =\n isOpen || designMode ? contentStyle : { ...contentStyle, display: \"none\" };\n const title = renderers.renderLabelText(renderTitle(accordion.title, open));\n const toggler = renderToggler ? (\n renderToggler(open, title)\n ) : (\n <button className={className} onClick={() => open.setValue((x) => !x)}>\n <label className={titleClass}>{title}</label>\n <i className={clsx(isOpen ? iconOpenClass : iconClosedClass)} />\n </button>\n );\n\n return (\n <>\n {toggler}\n <div style={fullContentStyle} className={contentClassName}>\n {children}\n </div>\n </>\n );\n}\n","import React, { useRef } from \"react\";\nimport { useControlEffect } from \"@react-typed-forms/core\";\nimport {\n createDataRenderer,\n DataRendererProps,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\n\nexport function createMultilineFieldRenderer(className?: string) {\n return createDataRenderer((p) => (\n <MultilineTextfield\n {...p}\n className={rendererClass(p.className, className)}\n />\n ));\n}\n\nexport function MultilineTextfield({ control, className }: DataRendererProps) {\n const codeRef = useRef<HTMLElement | null>(null);\n useControlEffect(\n () => control.value,\n (v) => {\n const c = codeRef.current;\n if (c && c.textContent !== v) {\n c.textContent = v;\n }\n },\n true,\n );\n return (\n <code\n contentEditable={!control.disabled}\n className={className}\n onInput={(t) => (control.value = t.currentTarget.textContent)}\n ref={codeRef}\n />\n );\n}\n","import {\n createDefaultDisplayRenderer,\n DefaultDisplayRendererOptions,\n} from \"./components/DefaultDisplay\";\nimport {\n DefaultLayout,\n DefaultLayoutRendererOptions,\n} from \"./components/DefaultLayout\";\nimport { createDefaultVisibilityRenderer } from \"./components/DefaultVisibility\";\nimport React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useCallback,\n} from \"react\";\nimport clsx from \"clsx\";\nimport {\n createSelectRenderer,\n SelectRendererOptions,\n} from \"./components/SelectDataRenderer\";\nimport { DefaultDisplayOnly } from \"./components/DefaultDisplayOnly\";\nimport { Control, useControlEffect } from \"@react-typed-forms/core\";\nimport { ControlInput, createInputConversion } from \"./components/ControlInput\";\nimport {\n createDefaultArrayDataRenderer,\n createDefaultArrayRenderer,\n DefaultArrayRendererOptions,\n} from \"./components/DefaultArrayRenderer\";\nimport {\n CheckRendererOptions,\n createCheckboxRenderer,\n createCheckListRenderer,\n createRadioRenderer,\n} from \"./components/CheckRenderer\";\nimport { DefaultAccordion } from \"./components/DefaultAccordion\";\nimport { createNullToggleRenderer } from \"./components/NullToggle\";\nimport { createMultilineFieldRenderer } from \"./components/MultilineTextfield\";\nimport { createJsonataRenderer } from \"./components/JsonataRenderer\";\nimport {\n ActionRendererProps,\n ActionRendererRegistration,\n AdornmentPlacement,\n AdornmentRendererRegistration,\n appendMarkupAt,\n ArrayActionOptions,\n ControlDataContext,\n ControlLayoutProps,\n createActionRenderer,\n createDataRenderer,\n createLayoutRenderer,\n DataRendererRegistration,\n DataRenderType,\n DefaultRenderers,\n FieldOption,\n FieldType,\n FlexRenderer,\n GridRenderer,\n GroupRendererProps,\n GroupRendererRegistration,\n hasOptions,\n isAccordionAdornment,\n isDataGroupRenderer,\n isDisplayOnlyRenderer,\n isFlexRenderer,\n isGridRenderer,\n isIconAdornment,\n isSetFieldAdornment,\n isTextfieldRenderer,\n LabelRendererRegistration,\n LabelType,\n rendererClass,\n renderLayoutParts,\n schemaDataForFieldRef,\n SetFieldAdornment,\n useDynamicHooks,\n wrapLayout,\n} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\nexport interface DefaultActionRendererOptions {\n className?: string;\n renderContent?: (\n actionText: string,\n actionId: string,\n actionData: any,\n ) => ReactNode;\n}\n\nexport function createButtonActionRenderer(\n actionId: string | string[] | undefined,\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n return createActionRenderer(\n actionId,\n ({\n onClick,\n actionText,\n className,\n style,\n actionId,\n actionData,\n }: ActionRendererProps) => {\n return (\n <button\n className={rendererClass(className, options.className)}\n style={style}\n onClick={onClick}\n >\n {options.renderContent?.(actionText, actionId, actionData) ??\n actionText}\n </button>\n );\n },\n );\n}\n\nexport interface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n flexClassName?: string;\n defaultFlexGap?: string;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n flexClassName,\n defaultFlexGap,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function flexStyles(options: FlexRenderer): StyleProps {\n return {\n className: flexClassName,\n style: {\n display: \"flex\",\n gap: options.gap ? options.gap : defaultFlexGap,\n flexDirection: options.direction\n ? (options.direction as any)\n : undefined,\n },\n };\n }\n\n function render(props: GroupRendererProps) {\n const { renderChild, renderOptions, childDefinitions } = props;\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : isFlexRenderer(renderOptions)\n ? flexStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n\n return (cp: ControlLayoutProps) => {\n return {\n ...cp,\n children: (\n <div\n className={rendererClass(props.className, clsx(className, gcn))}\n style={style}\n >\n {childDefinitions?.map((c, i) => renderChild(i, c))}\n </div>\n ),\n };\n };\n }\n\n return { type: \"group\", render };\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\n\nexport interface DefaultDataRendererOptions {\n inputClass?: string;\n displayOnlyClass?: string;\n selectOptions?: SelectRendererOptions;\n checkboxOptions?: CheckRendererOptions;\n checkOptions?: CheckRendererOptions;\n radioOptions?: CheckRendererOptions;\n checkListOptions?: CheckRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n multilineClass?: string;\n jsonataClass?: string;\n arrayOptions?: ArrayActionOptions;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const jsonataRenderer = createJsonataRenderer(options.jsonataClass);\n const nullToggler = createNullToggleRenderer();\n const multilineRenderer = createMultilineFieldRenderer(\n options.multilineClass,\n );\n const checkboxRenderer = createCheckboxRenderer(\n options.checkOptions ?? options.checkboxOptions,\n );\n const selectRenderer = createSelectRenderer(options.selectOptions);\n const radioRenderer = createRadioRenderer(\n options.radioOptions ?? options.checkOptions,\n );\n const checkListRenderer = createCheckListRenderer(\n options.checkListOptions ?? options.checkOptions,\n );\n const { inputClass, booleanOptions, optionRenderer, displayOnlyClass } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n const arrayRenderer = createDefaultArrayDataRenderer(options.arrayOptions);\n\n return createDataRenderer((props, renderers) => {\n const { field } = props;\n const fieldType = field.type;\n const renderOptions = props.renderOptions;\n let renderType = renderOptions.type;\n if (\n field.collection &&\n props.elementIndex == null &&\n (renderType == DataRenderType.Standard ||\n renderType == DataRenderType.Array)\n ) {\n return arrayRenderer.render(props, renderers);\n }\n if (fieldType === FieldType.Compound) {\n const groupOptions = (isDataGroupRenderer(renderOptions)\n ? renderOptions.groupOptions\n : undefined) ?? { type: \"Standard\", hideTitle: true };\n return renderers.renderGroup({ ...props, renderOptions: groupOptions });\n }\n if (fieldType == FieldType.Any) return <>No control for Any</>;\n if (isDisplayOnlyRenderer(renderOptions))\n return (p) => ({\n ...p,\n className: displayOnlyClass,\n children: (\n <DefaultDisplayOnly\n field={props.field}\n schemaInterface={props.dataContext.schemaInterface}\n control={props.control}\n className={props.className}\n style={props.style}\n emptyText={renderOptions.emptyText}\n />\n ),\n });\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, renderers);\n }\n switch (renderType) {\n case DataRenderType.NullToggle:\n return nullToggler.render(props, renderers);\n case DataRenderType.CheckList:\n return checkListRenderer.render(props, renderers);\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, renderers);\n case DataRenderType.Radio:\n return radioRenderer.render(props, renderers);\n case DataRenderType.Checkbox:\n return checkboxRenderer.render(props, renderers);\n case DataRenderType.Jsonata:\n return jsonataRenderer.render(props, renderers);\n }\n if (isTextfieldRenderer(renderOptions) && renderOptions.multiline)\n return multilineRenderer.render(props, renderers);\n const placeholder = isTextfieldRenderer(renderOptions)\n ? renderOptions.placeholder\n : undefined;\n return (\n <ControlInput\n className={rendererClass(props.className, inputClass)}\n style={props.style}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n placeholder={placeholder ?? undefined}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport interface DefaultAccordionRendererOptions {\n className?: string;\n titleClass?: string;\n togglerClass?: string;\n iconOpenClass?: string;\n iconClosedClass?: string;\n renderTitle?: (\n title: string | undefined,\n current: Control<boolean>,\n ) => ReactNode;\n renderToggler?: (current: Control<boolean>, title: ReactNode) => ReactNode;\n}\n\nexport interface DefaultAdornmentRendererOptions {\n accordion?: DefaultAccordionRendererOptions;\n}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return {\n type: \"adornment\",\n render: ({ adornment, designMode, dataContext, useExpr }, renderers) => ({\n apply: (rl) => {\n if (isSetFieldAdornment(adornment) && useExpr) {\n const hook = useExpr(adornment.expression, (x) => x);\n const dynamicHooks = useDynamicHooks({ value: hook });\n const SetFieldWrapper = useCallback(setFieldWrapper, [dynamicHooks]);\n return wrapLayout((x) => (\n <SetFieldWrapper\n children={x}\n parentContext={dataContext}\n adornment={adornment}\n />\n ))(rl);\n\n function setFieldWrapper({\n children,\n adornment,\n parentContext,\n }: {\n children: ReactNode;\n adornment: SetFieldAdornment;\n parentContext: ControlDataContext;\n }) {\n const { value } = dynamicHooks(parentContext);\n const fieldNode = schemaDataForFieldRef(\n adornment.field,\n parentContext.parentNode,\n );\n const otherField = fieldNode.control;\n const always = !adornment.defaultOnly;\n useControlEffect(\n () => [value?.value, otherField?.value == null],\n ([v]) => {\n otherField?.setValue((x) => (always || x == null ? v : x));\n },\n true,\n );\n return children;\n }\n }\n if (isIconAdornment(adornment)) {\n return appendMarkupAt(\n adornment.placement ?? AdornmentPlacement.ControlStart,\n <i className={adornment.iconClass} />,\n )(rl);\n }\n if (isAccordionAdornment(adornment)) {\n return wrapLayout((x) => (\n <DefaultAccordion\n renderers={renderers}\n children={x}\n accordion={adornment}\n contentStyle={rl.style}\n contentClassName={rl.className}\n designMode={designMode}\n {...options.accordion}\n />\n ))(rl);\n }\n },\n priority: 0,\n adornment,\n }),\n };\n}\n\nfunction createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n const layout = renderLayoutParts(\n {\n ...props,\n className: rendererClass(props.className, options.className),\n },\n renderers,\n );\n return {\n children: layout.wrapLayout(\n <DefaultLayout layout={layout} {...options} />,\n ),\n className: layout.className,\n style: layout.style,\n divRef: (e) =>\n e && props.errorControl\n ? (props.errorControl.meta.scrollElement = e)\n : undefined,\n };\n });\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n controlLabelClass?: string;\n requiredElement?: ReactNode;\n labelContainer?: (children: ReactElement) => ReactElement;\n}\n\nexport function createDefaultLabelRenderer(\n options?: DefaultLabelRendererOptions,\n): LabelRendererRegistration {\n const {\n className,\n groupLabelClass,\n controlLabelClass,\n requiredElement,\n labelContainer,\n } = {\n requiredElement: <span> *</span>,\n labelContainer: (c: ReactElement) => c,\n ...options,\n };\n return {\n render: (props, labelStart, labelEnd, renderers) => {\n if (props.type == LabelType.Text) return props.label;\n return labelContainer(\n <>\n <label\n htmlFor={props.forId}\n className={rendererClass(\n props.className,\n clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n props.type === LabelType.Control && controlLabelClass,\n ),\n )}\n >\n {labelStart}\n {renderers.renderLabelText(props.label)}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>,\n );\n },\n type: \"label\",\n };\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createButtonActionRenderer(undefined, options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n\nexport function createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n","import React from \"react\";\n\nimport { DefaultRendererOptions } from \"./createDefaultRenderers\";\n\nexport const defaultTailwindTheme = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"flex flex-col gap-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n flexClassName: \"gap-2\",\n },\n action: {\n className: \"bg-primary-500 rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n data: {\n displayOnlyClass: \"flex flex-row items-center gap-2\",\n checkOptions: {\n className: \"flex items-center gap-4\",\n entryClass: \"flex gap-1 items-center\",\n },\n selectOptions: { emptyText: \"<select>\" },\n multilineClass: \"border p-2 outline-0 whitespace-pre\",\n },\n adornment: {\n accordion: {\n className: \"flex items-center gap-2 my-2\",\n titleClass: \"cursor-pointer\",\n iconOpenClass: \"fa fa-chevron-up\",\n iconClosedClass: \"fa fa-chevron-down\",\n },\n },\n} satisfies DefaultRendererOptions;\n"],"names":["_excluded","createDefaultDisplayRenderer","options","render","props","React","createElement","DefaultDisplay","_extends","type","_ref","_effect","_useComponentTracking","useComponentTracking","data","display","className","style","_objectWithoutPropertiesLoose","DisplayDataType","Icon","clsx","getOverrideClass","value","iconClass","Text","rendererClass","textClassName","coerceToString","text","Html","htmlClassName","dangerouslySetInnerHTML","__html","html","Custom","customId","_excluded2","ControlInput","toText","convert","control","_formControlProps","formControlProps","inputProps","textValue","useControl","useControlEffect","v","onChange","e","target","converted","undefined","createInputConversion","ft","FieldType","String","a","Bool","_a$toString","toString","Int","parseInt","DateTime","Date","Time","l","length","substring","Double","parseFloat","createSelectRenderer","createDataRenderer","asArray","_props$options","SelectDataRenderer","state","id","readonly","required","emptyText","requiredText","createSelectConversion","field","renderOption","x","i","key","disabled","name","_ref$emptyText","_ref$requiredText","showEmpty","useState","optionStringMap","useMemo","Object","fromEntries","map","optionGroups","Set","filter","group","concat","keys","label","o","createRadioRenderer","p","CheckButtons","isChecked","setChecked","c","entryAdornment","fieldOptionAdornment","renderType","DataRenderType","Radio","createCheckListRenderer","Array","isArray","includes","checked","setValue","setIncluded","collection","CheckList","labelClass","checkClass","entryClass","uniqueId","RenderArrayElements","array","useComputed","Fragment","readOnly","htmlFor","elem","included","createCheckboxRenderer","renderer","children","Fcheckbox","renderLabel","Checkbox","DefaultLayout","errorClass","_ref$renderError","renderError","_ref$layout","layout","controlEnd","errorControl","controlStart","touched","error","DefaultDisplayOnly","_ref2","schemaInterface","isEmptyValue","createDefaultVisibilityRenderer","createVisibilityRenderer","DefaultVisibility","visibility","divRef","useEffect","ex","visible","showing","ref","createJsonataRenderer","JsonataRenderer","renderOptions","dataNode","dataContext","Jsonata","sdn","parentNode","bindings","formData","dataPath","getJsonPath","rendered","useJsonataExpression","expression","getRootDataNode","createNullToggleRenderer","renderers","_control$meta","_control$meta$_nullCo","nullControl","meta","newControl","current","newLayout","renderData","NullWrapper","defaultValue","definition","r","_nullControl$meta$non","createDefaultArrayDataRenderer","defaultActions","renderChild","designMode","_mergeObjects","mergeObjects","isArrayRenderer","addText","noAdd","noRemove","removeText","childOptions","arrayProps","createArrayActions","renderElement","_control$elements$i$u","_control$elements","elements","ControlDefinitionType","Data","Standard","hideTitle","elementIndex","getLengthRestrictions","renderArray","createDefaultArrayRenderer","DefaultArrayRenderer","renderAction","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","arrayControl","_applyArrayLengthRest","applyArrayLengthRestrictions","addAction","removeAction","RenderElements","_","DefaultAccordion","accordion","contentStyle","contentClassName","iconOpenClass","iconClosedClass","_ref$renderTitle","renderTitle","t","renderToggler","titleClass","open","defaultExpanded","isOpen","fullContentStyle","title","renderLabelText","toggler","onClick","MultilineTextfield","codeRef","useRef","textContent","contentEditable","onInput","currentTarget","createButtonActionRenderer","actionId","createActionRenderer","_options$renderConten","actionText","actionData","renderContent","createDefaultGroupRenderer","_ref2$gridStyles","gridStyles","defaultGridStyles","_ref3","_ref3$columns","columns","gridClassName","gridTemplateColumns","defaultGridColumns","_ref2$defaultGridColu","standardClassName","flexClassName","defaultFlexGap","childDefinitions","_ref4","isGridRenderer","isFlexRenderer","gap","flexDirection","direction","flexStyles","gcn","cp","DefaultBoolOptions","createDefaultDataRenderer","_options$checkOptions","_options$radioOptions","_options$checkListOpt","jsonataRenderer","jsonataClass","nullToggler","multilineRenderer","multilineClass","checkboxRenderer","checkOptions","checkboxOptions","selectRenderer","selectOptions","radioRenderer","radioOptions","checkListRenderer","checkListOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","displayOnlyClass","arrayRenderer","arrayOptions","fieldType","Compound","_ref5","groupOptions","isDataGroupRenderer","renderGroup","Any","isDisplayOnlyRenderer","hasOptions","NullToggle","Dropdown","isTextfieldRenderer","multiline","placeholder","createDefaultAdornmentRenderer","_ref6","adornment","useExpr","apply","rl","isSetFieldAdornment","hook","dynamicHooks","useDynamicHooks","SetFieldWrapper","useCallback","_ref7","parentContext","otherField","schemaDataForFieldRef","always","defaultOnly","_ref8","wrapLayout","_adornment$placement","isIconAdornment","appendMarkupAt","placement","AdornmentPlacement","ControlStart","isAccordionAdornment","priority","createDefaultLayoutRenderer","createLayoutRenderer","renderLayoutParts","scrollElement","createDefaultLabelRenderer","_requiredElement$labe","requiredElement","labelContainer","groupLabelClass","controlLabelClass","labelStart","labelEnd","LabelType","forId","Group","Control","createDefaultRenderers","action","renderLayout","defaultTailwindTheme"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/components/DefaultDisplay.tsx","../src/components/ControlInput.tsx","../src/components/SelectDataRenderer.tsx","../src/components/CheckRenderer.tsx","../src/components/DefaultLayout.tsx","../src/components/DefaultDisplayOnly.tsx","../src/components/DefaultVisibility.tsx","../src/components/JsonataRenderer.tsx","../src/components/NullToggle.tsx","../src/components/DefaultArrayRenderer.tsx","../src/components/DefaultAccordion.tsx","../src/components/MultilineTextfield.tsx","../src/createDefaultRenderers.tsx","../src/tailwind.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport {\n coerceToString,\n CustomDisplay,\n DisplayDataType,\n DisplayRendererProps,\n DisplayRendererRegistration,\n getOverrideClass,\n HtmlDisplay,\n IconDisplay,\n rendererClass,\n TextDisplay,\n} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\n\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n return {\n render: (props) => <DefaultDisplay {...options} {...props} />,\n type: \"display\",\n };\n}\n\nexport function DefaultDisplay({\n data,\n display,\n className,\n style,\n ...options\n}: DefaultDisplayRendererOptions & DisplayRendererProps) {\n switch (data.type) {\n case DisplayDataType.Icon:\n return (\n <i\n style={style}\n className={clsx(\n getOverrideClass(className),\n display ? display.value : (data as IconDisplay).iconClass,\n )}\n />\n );\n case DisplayDataType.Text:\n return (\n <div\n style={style}\n className={rendererClass(className, options.textClassName)}\n >\n {display ? coerceToString(display.value) : (data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n style={style}\n className={rendererClass(className, options.htmlClassName)}\n dangerouslySetInnerHTML={{\n __html: display\n ? coerceToString(display.value)\n : (data as HtmlDisplay).html,\n }}\n />\n );\n case DisplayDataType.Custom:\n return (\n <div>\n Custom display placeholder: {(data as CustomDisplay).customId}\n </div>\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n}\n","import React from \"react\";\nimport {\n Control,\n formControlProps,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {FieldType} from \"@react-typed-forms/schemas\";\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n const textValue = useControl(() => toText(value));\n useControlEffect(\n () => control.value,\n (v) => (textValue.value = toText(v)),\n );\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={textValue.value}\n onChange={(e) => {\n textValue.value = e.target.value;\n const converted = convert[1](e.target.value);\n if (converted !== undefined) control.value = converted;\n }}\n {...props}\n />\n );\n\n function toText(value: any) {\n return value == null ? \"\" : convert[2](value);\n }\n}\n\ntype InputConversion = [\n string,\n (s: string) => any,\n (a: any) => string | number,\n];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\n \"text\",\n (a) => (a === \"true\" ? true : a === \"false\" ? false : undefined),\n (a) => a?.toString() ?? \"\",\n ];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.DateTime:\n return [\"datetime-local\", (a) => (!a ? null : a), (a) => a];\n case FieldType.Date:\n return [\"date\", (a) => (!a ? null : a), (a) => a];\n case FieldType.Time:\n return [\n \"time\",\n (a) => {\n const l = a.length;\n if (l === 5) return a + \":00\";\n if (l === 8) return a;\n return undefined;\n },\n (a) => (a ? a.substring(0, 5) : \"\"),\n ];\n case FieldType.Double:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseFloat(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React, { useMemo, useState } from \"react\";\nimport {\n createDataRenderer,\n FieldOption,\n FieldType,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={rendererClass(props.className, options.className)}\n state={props.control}\n id={props.id}\n readonly={props.readonly}\n options={props.options ?? []}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\nexport interface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: FieldOption[];\n emptyText?: string;\n requiredText?: string;\n readonly: boolean;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n readonly,\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n const optionGroups = useMemo(\n () => new Set(options.filter((x) => x.group).map((x) => x.group!)),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled || readonly}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {[...optionGroups.keys()].map((x) => (\n <optgroup key={x} label={x}>\n {options.filter((o) => o.group === x).map(renderOption)}\n </optgroup>\n ))}\n {options.filter((x) => !x.group).map(renderOption)}\n </select>\n );\n\n function renderOption(x: FieldOption, i: number) {\n return (\n <option key={i} value={convert(x.value)} disabled={!!x.disabled}>\n {x.name}\n </option>\n );\n }\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n","import {\n Control,\n Fcheckbox,\n RenderArrayElements,\n useComputed,\n} from \"@react-typed-forms/core\";\nimport React, { ReactNode } from \"react\";\nimport {\n createDataRenderer,\n DataRenderType,\n FieldOption,\n fieldOptionAdornment,\n rendererClass\n} from \"@react-typed-forms/schemas\";\n\nexport interface CheckRendererOptions {\n className?: string;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n}\nexport function createRadioRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n {...options}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => control.value == o.value}\n setChecked={(c, o) => (c.value = o.value)}\n control={p.control}\n type=\"radio\"\n entryAdornment={fieldOptionAdornment(p)}\n />\n ),\n {\n renderType: DataRenderType.Radio,\n },\n );\n}\n\nexport function createCheckListRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n {...options}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => {\n const v = control.value;\n return Array.isArray(v) ? v.includes(o.value) : false;\n }}\n setChecked={(c, o, checked) => {\n c.setValue((x) => setIncluded(x ?? [], o.value, checked));\n }}\n control={p.control}\n type=\"checkbox\"\n entryAdornment={fieldOptionAdornment(p)}\n />\n ),\n {\n collection: true,\n renderType: DataRenderType.CheckList,\n },\n );\n}\n\nexport interface CheckButtonsProps {\n id?: string;\n className?: string;\n options?: FieldOption[] | null;\n control: Control<any>;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n readonly?: boolean;\n type: \"checkbox\" | \"radio\";\n isChecked: (c: Control<any>, o: FieldOption) => boolean;\n setChecked: (c: Control<any>, o: FieldOption, checked: boolean) => void;\n entryAdornment?: (c: FieldOption, i: number, selected: boolean) => ReactNode;\n}\n\nexport function CheckButtons({\n control,\n options,\n labelClass,\n checkClass,\n readonly,\n entryClass,\n className,\n id,\n type,\n isChecked,\n setChecked,\n entryAdornment,\n}: CheckButtonsProps) {\n const { disabled } = control;\n const name = \"r\" + control.uniqueId;\n return (\n <div className={className} id={id}>\n <RenderArrayElements array={options?.filter((x) => x.value != null)}>\n {(o, i) => {\n const checked = useComputed(() => isChecked(control, o)).value;\n return (\n <>\n <div key={i} className={entryClass}>\n <input\n id={name + \"_\" + i}\n className={checkClass}\n type={type}\n name={name}\n readOnly={readonly}\n disabled={disabled}\n checked={checked}\n onChange={(x) => {\n !readonly && setChecked(control, o, x.target.checked);\n }}\n />\n <label className={labelClass} htmlFor={name + \"_\" + i}>\n {o.name}\n </label>\n </div>\n {entryAdornment?.(o, i, checked)}\n </>\n );\n }}\n </RenderArrayElements>\n </div>\n );\n}\n\nexport function setIncluded<A>(array: A[], elem: A, included: boolean): A[] {\n const already = array.includes(elem);\n if (included === already) {\n return array;\n }\n if (included) {\n return [...array, elem];\n }\n return array.filter((e) => e !== elem);\n}\n\nexport function createCheckboxRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (props, renderer) => (p) => ({\n ...p,\n label: undefined,\n children: (\n <div className={rendererClass(props.className, options.entryClass)}>\n <Fcheckbox\n id={props.id}\n control={props.control}\n style={props.style}\n className={options.checkClass}\n />\n {p.label && renderer.renderLabel(p.label, undefined, undefined)}\n </div>\n ),\n }),\n { renderType: DataRenderType.Checkbox },\n );\n}\n","import React, { ReactNode } from \"react\";\nimport {RenderedLayout} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n renderError?: (errorText: string | null | undefined) => ReactNode;\n}\n\nexport function DefaultLayout({\n errorClass,\n renderError = (e) => e && <div className={errorClass}>{e}</div>,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n return (\n <>\n {label}\n {controlStart}\n {children}\n {renderError(errorText)}\n {controlEnd}\n </>\n );\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport {\n rendererClass,\n SchemaField,\n SchemaInterface,\n} from \"@react-typed-forms/schemas\";\n\nexport function DefaultDisplayOnly({\n control,\n className,\n emptyText,\n schemaInterface,\n field,\n style,\n}: {\n control: Control<any>;\n field: SchemaField;\n schemaInterface: SchemaInterface;\n className?: string | null;\n style?: React.CSSProperties;\n emptyText?: string | null;\n}) {\n const v = control.value;\n const text =\n (schemaInterface.isEmptyValue(field, v)\n ? emptyText\n : schemaInterface.textValue(field, v)) ?? \"\";\n return (\n <div style={style} className={rendererClass(className)}>\n {text}\n </div>\n );\n}\n","import React, { useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport {\n createVisibilityRenderer,\n VisibilityRendererProps,\n} from \"@react-typed-forms/schemas\";\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((props) => <DefaultVisibility {...props} />);\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n className,\n style,\n divRef,\n}: VisibilityRendererProps) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? (\n <div className={clsx(className)} style={style} ref={divRef}>\n {children}\n </div>\n ) : (\n <></>\n );\n}\n","import { Control, useComputed } from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport {\n coerceToString,\n ControlDataContext,\n createDataRenderer,\n DataRenderType,\n getJsonPath,\n getRootDataNode,\n JsonataRenderOptions,\n rendererClass,\n SchemaDataNode,\n useJsonataExpression,\n} from \"@react-typed-forms/schemas\";\n\nexport function createJsonataRenderer(className?: string) {\n return createDataRenderer(\n (p) => (\n <JsonataRenderer\n renderOptions={p.renderOptions as JsonataRenderOptions}\n className={rendererClass(p.className, className)}\n dataNode={p.dataNode}\n dataContext={p.dataContext}\n control={p.control}\n readonly={p.readonly}\n />\n ),\n { renderType: DataRenderType.Jsonata },\n );\n}\n\nexport function JsonataRenderer({\n control,\n renderOptions,\n readonly,\n className,\n dataContext,\n dataNode,\n}: {\n control: Control<any>;\n renderOptions: JsonataRenderOptions;\n className?: string;\n dataContext: ControlDataContext;\n dataNode: SchemaDataNode;\n readonly: boolean;\n}) {\n const sdn = dataNode.elementIndex != null ? dataNode : dataContext.parentNode;\n const bindings = useComputed(() => ({\n value: control.value,\n readonly,\n disabled: control.disabled,\n formData: dataContext.formData,\n dataPath: getJsonPath(dataNode),\n }));\n const rendered = useJsonataExpression(\n renderOptions.expression,\n getRootDataNode(sdn).control!,\n getJsonPath(sdn),\n bindings,\n coerceToString,\n );\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: rendered.value }}\n />\n );\n}\n","import { Control, newControl, useControlEffect } from \"@react-typed-forms/core\";\nimport React, { ReactNode } from \"react\";\nimport {\n createDataRenderer,\n DataRenderType,\n FieldType,\n} from \"@react-typed-forms/schemas\";\n\nexport function createNullToggleRenderer() {\n return createDataRenderer(\n ({ control, field, renderOptions, ...props }, renderers) => {\n const nullControl = (control.meta[\"nullControl\"] ??= newControl(\n control.current.value != null,\n ));\n return (layout) => {\n const newLayout = renderers.renderData({\n ...props,\n control: nullControl,\n field: { ...field, type: FieldType.Bool },\n renderOptions: { type: DataRenderType.Checkbox },\n })(layout);\n return {\n ...newLayout,\n children: (\n <NullWrapper\n control={control}\n nullControl={nullControl}\n children={newLayout.children}\n readonly={props.readonly}\n defaultValue={props.definition.defaultValue}\n />\n ),\n };\n };\n },\n );\n}\n\nfunction NullWrapper({\n children,\n nullControl,\n control,\n defaultValue,\n readonly,\n}: {\n control: Control<any>;\n nullControl: Control<boolean>;\n children: ReactNode;\n readonly: boolean;\n defaultValue: any;\n}) {\n useControlEffect(\n () => readonly,\n (r) => (nullControl.disabled = r),\n true,\n );\n useControlEffect(\n () => nullControl.value,\n (e) => {\n if (e) {\n control.value = nullControl.meta[\"nonNullValue\"] ?? defaultValue;\n } else {\n nullControl.meta[\"nonNullValue\"] = control.value;\n control.value = null;\n }\n },\n );\n return children;\n}\n","import clsx from \"clsx\";\nimport React, { Fragment, ReactNode } from \"react\";\nimport { RenderElements } from \"@react-typed-forms/core\";\nimport {\n ActionRendererProps,\n applyArrayLengthRestrictions,\n ArrayActionOptions,\n ArrayRendererProps,\n ArrayRendererRegistration,\n ArrayRenderOptions,\n ControlDefinitionType,\n createArrayActions,\n createDataRenderer,\n DataControlDefinition,\n DataRendererRegistration,\n DataRenderType,\n getLengthRestrictions,\n isArrayRenderer,\n mergeObjects,\n} from \"@react-typed-forms/schemas\";\n\nexport function createDefaultArrayDataRenderer(\n defaultActions?: ArrayActionOptions,\n): DataRendererRegistration {\n return createDataRenderer(\n (\n {\n definition,\n control,\n required,\n field,\n renderChild,\n className,\n style,\n renderOptions,\n readonly,\n designMode,\n },\n renderers,\n ) => {\n const { addText, noAdd, noRemove, noReorder, removeText } = mergeObjects(\n isArrayRenderer(renderOptions)\n ? renderOptions\n : ({} as ArrayRenderOptions),\n defaultActions as ArrayRenderOptions,\n );\n const childOptions = isArrayRenderer(renderOptions)\n ? renderOptions.childOptions\n : undefined;\n\n const arrayProps = {\n ...createArrayActions(control, field, {\n addText,\n removeText,\n noAdd,\n noRemove,\n readonly,\n disabled: control.disabled,\n designMode,\n }),\n required,\n renderElement: (i) =>\n renderChild(\n control.elements?.[i].uniqueId ?? i,\n {\n type: ControlDefinitionType.Data,\n field: definition.field,\n children: definition.children,\n renderOptions: childOptions ?? { type: DataRenderType.Standard },\n hideTitle: true,\n } as DataControlDefinition,\n { elementIndex: i },\n ),\n className: className ? className : undefined,\n style,\n ...getLengthRestrictions(definition),\n } satisfies ArrayRendererProps;\n return renderers.renderArray(arrayProps);\n },\n { renderType: DataRenderType.Array, collection: true },\n );\n}\n\nexport interface DefaultArrayRendererOptions extends ArrayActionOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n return {\n render: (props, { renderAction }) => (\n <DefaultArrayRenderer\n {...props}\n {...options}\n renderAction={renderAction}\n />\n ),\n type: \"array\",\n };\n}\n\nexport interface DefaultArrayRendererProps\n extends DefaultArrayRendererOptions,\n ArrayRendererProps {\n renderAction: (props: ActionRendererProps) => ReactNode;\n}\n\nexport function DefaultArrayRenderer(props: DefaultArrayRendererProps) {\n const {\n renderElement,\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n arrayControl,\n renderAction,\n style,\n } = props;\n const { addAction, removeAction } = applyArrayLengthRestrictions(props);\n return (\n <div style={style}>\n <div className={clsx(className, removeAction && removableClass)}>\n <RenderElements control={arrayControl}>\n {(_, x) =>\n removeAction ? (\n <>\n <div className={clsx(childClass, removableChildClass)}>\n {renderElement(x)}\n </div>\n <div className={removeActionClass}>\n {renderAction(removeAction(x))}\n </div>\n </>\n ) : (\n <div className={childClass}>{renderElement(x)}</div>\n )\n }\n </RenderElements>\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n}\n","import React, { CSSProperties, Fragment, ReactElement } from \"react\";\nimport { useControl } from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\nimport { DefaultAccordionRendererOptions } from \"../createDefaultRenderers\";\nimport { AccordionAdornment, FormRenderer } from \"@react-typed-forms/schemas\";\n\nexport function DefaultAccordion({\n children,\n accordion,\n contentStyle,\n contentClassName,\n designMode,\n iconOpenClass,\n iconClosedClass,\n className,\n renderTitle = (t) => t,\n renderToggler,\n renderers,\n titleClass,\n}: {\n children: ReactElement;\n accordion: Partial<AccordionAdornment>;\n contentStyle?: CSSProperties;\n contentClassName?: string;\n designMode?: boolean;\n renderers: FormRenderer;\n} & DefaultAccordionRendererOptions) {\n const open = useControl(!!accordion.defaultExpanded);\n const isOpen = open.value;\n const fullContentStyle =\n isOpen || designMode ? contentStyle : { ...contentStyle, display: \"none\" };\n const title = renderers.renderLabelText(renderTitle(accordion.title, open));\n const toggler = renderToggler ? (\n renderToggler(open, title)\n ) : (\n <button className={className} onClick={() => open.setValue((x) => !x)}>\n <label className={titleClass}>{title}</label>\n <i className={clsx(isOpen ? iconOpenClass : iconClosedClass)} />\n </button>\n );\n\n return (\n <>\n {toggler}\n <div style={fullContentStyle} className={contentClassName}>\n {children}\n </div>\n </>\n );\n}\n","import React, { useRef } from \"react\";\nimport { useControlEffect } from \"@react-typed-forms/core\";\nimport {\n createDataRenderer,\n DataRendererProps,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\n\nexport function createMultilineFieldRenderer(className?: string) {\n return createDataRenderer((p) => (\n <MultilineTextfield\n {...p}\n className={rendererClass(p.className, className)}\n />\n ));\n}\n\nexport function MultilineTextfield({ control, className }: DataRendererProps) {\n const codeRef = useRef<HTMLElement | null>(null);\n useControlEffect(\n () => control.value,\n (v) => {\n const c = codeRef.current;\n if (c && c.textContent !== v) {\n c.textContent = v;\n }\n },\n true,\n );\n return (\n <code\n contentEditable={!control.disabled}\n className={className}\n onInput={(t) => (control.value = t.currentTarget.textContent)}\n ref={codeRef}\n />\n );\n}\n","import {\n createDefaultDisplayRenderer,\n DefaultDisplayRendererOptions,\n} from \"./components/DefaultDisplay\";\nimport {\n DefaultLayout,\n DefaultLayoutRendererOptions,\n} from \"./components/DefaultLayout\";\nimport { createDefaultVisibilityRenderer } from \"./components/DefaultVisibility\";\nimport React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useCallback,\n} from \"react\";\nimport clsx from \"clsx\";\nimport {\n createSelectRenderer,\n SelectRendererOptions,\n} from \"./components/SelectDataRenderer\";\nimport { DefaultDisplayOnly } from \"./components/DefaultDisplayOnly\";\nimport { Control, useControlEffect } from \"@react-typed-forms/core\";\nimport { ControlInput, createInputConversion } from \"./components/ControlInput\";\nimport {\n createDefaultArrayDataRenderer,\n createDefaultArrayRenderer,\n DefaultArrayRendererOptions,\n} from \"./components/DefaultArrayRenderer\";\nimport {\n CheckRendererOptions,\n createCheckboxRenderer,\n createCheckListRenderer,\n createRadioRenderer,\n} from \"./components/CheckRenderer\";\nimport { DefaultAccordion } from \"./components/DefaultAccordion\";\nimport { createNullToggleRenderer } from \"./components/NullToggle\";\nimport { createMultilineFieldRenderer } from \"./components/MultilineTextfield\";\nimport { createJsonataRenderer } from \"./components/JsonataRenderer\";\nimport {\n ActionRendererProps,\n ActionRendererRegistration,\n AdornmentPlacement,\n AdornmentRendererRegistration,\n appendMarkupAt,\n ArrayActionOptions,\n ControlDataContext,\n ControlLayoutProps,\n createActionRenderer,\n createDataRenderer,\n createLayoutRenderer,\n DataRendererRegistration,\n DataRenderType,\n DefaultRenderers,\n FieldOption,\n FieldType,\n FlexRenderer,\n GridRenderer,\n GroupRendererProps,\n GroupRendererRegistration,\n hasOptions,\n isAccordionAdornment,\n isDataGroupRenderer,\n isDisplayOnlyRenderer,\n isFlexRenderer,\n isGridRenderer,\n isIconAdornment,\n isSetFieldAdornment,\n isTextfieldRenderer,\n LabelRendererRegistration,\n LabelType,\n rendererClass,\n renderLayoutParts,\n schemaDataForFieldRef,\n SetFieldAdornment,\n useDynamicHooks,\n wrapLayout,\n} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\nexport interface DefaultActionRendererOptions {\n className?: string;\n renderContent?: (\n actionText: string,\n actionId: string,\n actionData: any,\n ) => ReactNode;\n}\n\nexport function createButtonActionRenderer(\n actionId: string | string[] | undefined,\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n return createActionRenderer(\n actionId,\n ({\n onClick,\n actionText,\n className,\n style,\n actionId,\n actionData,\n }: ActionRendererProps) => {\n return (\n <button\n className={rendererClass(className, options.className)}\n style={style}\n onClick={onClick}\n >\n {options.renderContent?.(actionText, actionId, actionData) ??\n actionText}\n </button>\n );\n },\n );\n}\n\nexport interface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n flexClassName?: string;\n defaultFlexGap?: string;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n flexClassName,\n defaultFlexGap,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function flexStyles(options: FlexRenderer): StyleProps {\n return {\n className: flexClassName,\n style: {\n display: \"flex\",\n gap: options.gap ? options.gap : defaultFlexGap,\n flexDirection: options.direction\n ? (options.direction as any)\n : undefined,\n },\n };\n }\n\n function render(props: GroupRendererProps) {\n const { renderChild, renderOptions, childDefinitions } = props;\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : isFlexRenderer(renderOptions)\n ? flexStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n\n return (cp: ControlLayoutProps) => {\n return {\n ...cp,\n children: (\n <div\n className={rendererClass(props.className, clsx(className, gcn))}\n style={style}\n >\n {childDefinitions?.map((c, i) => renderChild(i, c))}\n </div>\n ),\n };\n };\n }\n\n return { type: \"group\", render };\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\n\nexport interface DefaultDataRendererOptions {\n inputClass?: string;\n displayOnlyClass?: string;\n selectOptions?: SelectRendererOptions;\n checkboxOptions?: CheckRendererOptions;\n checkOptions?: CheckRendererOptions;\n radioOptions?: CheckRendererOptions;\n checkListOptions?: CheckRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n multilineClass?: string;\n jsonataClass?: string;\n arrayOptions?: ArrayActionOptions;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const jsonataRenderer = createJsonataRenderer(options.jsonataClass);\n const nullToggler = createNullToggleRenderer();\n const multilineRenderer = createMultilineFieldRenderer(\n options.multilineClass,\n );\n const checkboxRenderer = createCheckboxRenderer(\n options.checkOptions ?? options.checkboxOptions,\n );\n const selectRenderer = createSelectRenderer(options.selectOptions);\n const radioRenderer = createRadioRenderer(\n options.radioOptions ?? options.checkOptions,\n );\n const checkListRenderer = createCheckListRenderer(\n options.checkListOptions ?? options.checkOptions,\n );\n const { inputClass, booleanOptions, optionRenderer, displayOnlyClass } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n const arrayRenderer = createDefaultArrayDataRenderer(options.arrayOptions);\n\n return createDataRenderer((props, renderers) => {\n const { field } = props;\n const fieldType = field.type;\n const renderOptions = props.renderOptions;\n let renderType = renderOptions.type;\n if (\n field.collection &&\n props.elementIndex == null &&\n (renderType == DataRenderType.Standard ||\n renderType == DataRenderType.Array)\n ) {\n return arrayRenderer.render(props, renderers);\n }\n if (fieldType === FieldType.Compound) {\n const groupOptions = (isDataGroupRenderer(renderOptions)\n ? renderOptions.groupOptions\n : undefined) ?? { type: \"Standard\", hideTitle: true };\n return renderers.renderGroup({ ...props, renderOptions: groupOptions });\n }\n if (fieldType == FieldType.Any) return <>No control for Any</>;\n if (isDisplayOnlyRenderer(renderOptions))\n return (p) => ({\n ...p,\n className: displayOnlyClass,\n children: (\n <DefaultDisplayOnly\n field={props.field}\n schemaInterface={props.dataContext.schemaInterface}\n control={props.control}\n className={props.className}\n style={props.style}\n emptyText={renderOptions.emptyText}\n />\n ),\n });\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, renderers);\n }\n switch (renderType) {\n case DataRenderType.NullToggle:\n return nullToggler.render(props, renderers);\n case DataRenderType.CheckList:\n return checkListRenderer.render(props, renderers);\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, renderers);\n case DataRenderType.Radio:\n return radioRenderer.render(props, renderers);\n case DataRenderType.Checkbox:\n return checkboxRenderer.render(props, renderers);\n case DataRenderType.Jsonata:\n return jsonataRenderer.render(props, renderers);\n }\n if (isTextfieldRenderer(renderOptions) && renderOptions.multiline)\n return multilineRenderer.render(props, renderers);\n const placeholder = isTextfieldRenderer(renderOptions)\n ? renderOptions.placeholder\n : undefined;\n return (\n <ControlInput\n className={rendererClass(props.className, inputClass)}\n style={props.style}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n placeholder={placeholder ?? undefined}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport interface DefaultAccordionRendererOptions {\n className?: string;\n titleClass?: string;\n togglerClass?: string;\n iconOpenClass?: string;\n iconClosedClass?: string;\n renderTitle?: (\n title: string | undefined,\n current: Control<boolean>,\n ) => ReactNode;\n renderToggler?: (current: Control<boolean>, title: ReactNode) => ReactNode;\n}\n\nexport interface DefaultAdornmentRendererOptions {\n accordion?: DefaultAccordionRendererOptions;\n}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return {\n type: \"adornment\",\n render: ({ adornment, designMode, dataContext, useExpr }, renderers) => ({\n apply: (rl) => {\n if (isSetFieldAdornment(adornment) && useExpr) {\n const hook = useExpr(adornment.expression, (x) => x);\n const dynamicHooks = useDynamicHooks({ value: hook });\n const SetFieldWrapper = useCallback(setFieldWrapper, [dynamicHooks]);\n return wrapLayout((x) => (\n <SetFieldWrapper\n children={x}\n parentContext={dataContext}\n adornment={adornment}\n />\n ))(rl);\n\n function setFieldWrapper({\n children,\n adornment,\n parentContext,\n }: {\n children: ReactNode;\n adornment: SetFieldAdornment;\n parentContext: ControlDataContext;\n }) {\n const { value } = dynamicHooks(parentContext);\n const fieldNode = schemaDataForFieldRef(\n adornment.field,\n parentContext.parentNode,\n );\n const otherField = fieldNode.control;\n const always = !adornment.defaultOnly;\n useControlEffect(\n () => [value?.value, otherField?.value == null],\n ([v]) => {\n otherField?.setValue((x) => (always || x == null ? v : x));\n },\n true,\n );\n return children;\n }\n }\n if (isIconAdornment(adornment)) {\n return appendMarkupAt(\n adornment.placement ?? AdornmentPlacement.ControlStart,\n <i className={adornment.iconClass} />,\n )(rl);\n }\n if (isAccordionAdornment(adornment)) {\n return wrapLayout((x) => (\n <DefaultAccordion\n renderers={renderers}\n children={x}\n accordion={adornment}\n contentStyle={rl.style}\n contentClassName={rl.className}\n designMode={designMode}\n {...options.accordion}\n />\n ))(rl);\n }\n },\n priority: 0,\n adornment,\n }),\n };\n}\n\nfunction createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n const layout = renderLayoutParts(\n {\n ...props,\n className: rendererClass(props.className, options.className),\n },\n renderers,\n );\n return {\n children: layout.wrapLayout(\n <DefaultLayout layout={layout} {...options} />,\n ),\n className: layout.className,\n style: layout.style,\n divRef: (e) =>\n e && props.errorControl\n ? (props.errorControl.meta.scrollElement = e)\n : undefined,\n };\n });\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n controlLabelClass?: string;\n requiredElement?: ReactNode;\n labelContainer?: (children: ReactElement) => ReactElement;\n}\n\nexport function createDefaultLabelRenderer(\n options?: DefaultLabelRendererOptions,\n): LabelRendererRegistration {\n const {\n className,\n groupLabelClass,\n controlLabelClass,\n requiredElement,\n labelContainer,\n } = {\n requiredElement: <span> *</span>,\n labelContainer: (c: ReactElement) => c,\n ...options,\n };\n return {\n render: (props, labelStart, labelEnd, renderers) => {\n if (props.type == LabelType.Text) return props.label;\n return labelContainer(\n <>\n <label\n htmlFor={props.forId}\n className={rendererClass(\n props.className,\n clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n props.type === LabelType.Control && controlLabelClass,\n ),\n )}\n >\n {labelStart}\n {renderers.renderLabelText(props.label)}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>,\n );\n },\n type: \"label\",\n };\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createButtonActionRenderer(undefined, options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n\nexport function createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n","import React from \"react\";\n\nimport { DefaultRendererOptions } from \"./createDefaultRenderers\";\n\nexport const defaultTailwindTheme = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"flex flex-col gap-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n flexClassName: \"gap-2\",\n },\n action: {\n className: \"bg-primary-500 rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n data: {\n displayOnlyClass: \"flex flex-row items-center gap-2\",\n checkOptions: {\n className: \"flex items-center gap-4\",\n entryClass: \"flex gap-1 items-center\",\n },\n selectOptions: { emptyText: \"<select>\" },\n multilineClass: \"border p-2 outline-0 whitespace-pre\",\n },\n adornment: {\n accordion: {\n className: \"flex items-center gap-2 my-2\",\n titleClass: \"cursor-pointer\",\n iconOpenClass: \"fa fa-chevron-up\",\n iconClosedClass: \"fa fa-chevron-down\",\n },\n },\n} satisfies DefaultRendererOptions;\n"],"names":["_excluded","createDefaultDisplayRenderer","options","render","props","React","createElement","DefaultDisplay","_extends","type","_ref","_effect","_useComponentTracking","useComponentTracking","data","display","className","style","_objectWithoutPropertiesLoose","DisplayDataType","Icon","clsx","getOverrideClass","value","iconClass","Text","rendererClass","textClassName","coerceToString","text","Html","htmlClassName","dangerouslySetInnerHTML","__html","html","Custom","customId","_excluded2","ControlInput","toText","convert","control","_formControlProps","formControlProps","inputProps","textValue","useControl","useControlEffect","v","onChange","e","target","converted","undefined","createInputConversion","ft","FieldType","String","a","Bool","_a$toString","toString","Int","parseInt","DateTime","Date","Time","l","length","substring","Double","parseFloat","createSelectRenderer","createDataRenderer","asArray","_props$options","SelectDataRenderer","state","id","readonly","required","emptyText","requiredText","createSelectConversion","field","renderOption","x","i","key","disabled","name","_ref$emptyText","_ref$requiredText","showEmpty","useState","optionStringMap","useMemo","Object","fromEntries","map","optionGroups","Set","filter","group","concat","keys","label","o","createRadioRenderer","p","CheckButtons","isChecked","setChecked","c","entryAdornment","fieldOptionAdornment","renderType","DataRenderType","Radio","createCheckListRenderer","Array","isArray","includes","checked","setValue","setIncluded","collection","CheckList","labelClass","checkClass","entryClass","uniqueId","RenderArrayElements","array","useComputed","Fragment","readOnly","htmlFor","elem","included","createCheckboxRenderer","renderer","children","Fcheckbox","renderLabel","Checkbox","DefaultLayout","errorClass","_ref$renderError","renderError","_ref$layout","layout","controlEnd","errorControl","controlStart","touched","error","DefaultDisplayOnly","_ref2","schemaInterface","isEmptyValue","createDefaultVisibilityRenderer","createVisibilityRenderer","DefaultVisibility","visibility","divRef","useEffect","ex","visible","showing","ref","createJsonataRenderer","JsonataRenderer","renderOptions","dataNode","dataContext","Jsonata","sdn","elementIndex","parentNode","bindings","formData","dataPath","getJsonPath","rendered","useJsonataExpression","expression","getRootDataNode","createNullToggleRenderer","renderers","_control$meta","_control$meta$_nullCo","nullControl","meta","newControl","current","newLayout","renderData","NullWrapper","defaultValue","definition","r","_nullControl$meta$non","createDefaultArrayDataRenderer","defaultActions","renderChild","designMode","_mergeObjects","mergeObjects","isArrayRenderer","addText","noAdd","noRemove","removeText","childOptions","arrayProps","createArrayActions","renderElement","_control$elements$i$u","_control$elements","elements","ControlDefinitionType","Data","Standard","hideTitle","getLengthRestrictions","renderArray","createDefaultArrayRenderer","DefaultArrayRenderer","renderAction","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","arrayControl","_applyArrayLengthRest","applyArrayLengthRestrictions","addAction","removeAction","RenderElements","_","DefaultAccordion","accordion","contentStyle","contentClassName","iconOpenClass","iconClosedClass","_ref$renderTitle","renderTitle","t","renderToggler","titleClass","open","defaultExpanded","isOpen","fullContentStyle","title","renderLabelText","toggler","onClick","MultilineTextfield","codeRef","useRef","textContent","contentEditable","onInput","currentTarget","createButtonActionRenderer","actionId","createActionRenderer","_options$renderConten","actionText","actionData","renderContent","createDefaultGroupRenderer","_ref2$gridStyles","gridStyles","defaultGridStyles","_ref3","_ref3$columns","columns","gridClassName","gridTemplateColumns","defaultGridColumns","_ref2$defaultGridColu","standardClassName","flexClassName","defaultFlexGap","childDefinitions","_ref4","isGridRenderer","isFlexRenderer","gap","flexDirection","direction","flexStyles","gcn","cp","DefaultBoolOptions","createDefaultDataRenderer","_options$checkOptions","_options$radioOptions","_options$checkListOpt","jsonataRenderer","jsonataClass","nullToggler","multilineRenderer","multilineClass","checkboxRenderer","checkOptions","checkboxOptions","selectRenderer","selectOptions","radioRenderer","radioOptions","checkListRenderer","checkListOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","displayOnlyClass","arrayRenderer","arrayOptions","fieldType","Compound","_ref5","groupOptions","isDataGroupRenderer","renderGroup","Any","isDisplayOnlyRenderer","hasOptions","NullToggle","Dropdown","isTextfieldRenderer","multiline","placeholder","createDefaultAdornmentRenderer","_ref6","adornment","useExpr","apply","rl","isSetFieldAdornment","hook","dynamicHooks","useDynamicHooks","SetFieldWrapper","useCallback","_ref7","parentContext","otherField","schemaDataForFieldRef","always","defaultOnly","_ref8","wrapLayout","_adornment$placement","isIconAdornment","appendMarkupAt","placement","AdornmentPlacement","ControlStart","isAccordionAdornment","priority","createDefaultLayoutRenderer","createLayoutRenderer","renderLayoutParts","scrollElement","createDefaultLabelRenderer","_requiredElement$labe","requiredElement","labelContainer","groupLabelClass","controlLabelClass","labelStart","labelEnd","LabelType","forId","Group","Control","createDefaultRenderers","action","renderLayout","defaultTailwindTheme"],"mappings":"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"}
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import e,{useState as t,useMemo as n,useEffect as l,useRef as r,useCallback as a}from"react";import s from"clsx";import{DisplayDataType as o,rendererClass as c,coerceToString as i,getOverrideClass as d,FieldType as u,createDataRenderer as m,fieldOptionAdornment as y,DataRenderType as p,createVisibilityRenderer as v,getJsonPath as f,useJsonataExpression as N,getRootDataNode as C,mergeObjects as h,isArrayRenderer as g,createArrayActions as x,ControlDefinitionType as E,getLengthRestrictions as b,applyArrayLengthRestrictions as T,createActionRenderer as O,isDataGroupRenderer as k,isDisplayOnlyRenderer as A,hasOptions as I,isTextfieldRenderer as q,isSetFieldAdornment as w,useDynamicHooks as S,wrapLayout as D,schemaDataForFieldRef as L,isIconAdornment as F,appendMarkupAt as V,AdornmentPlacement as R,isAccordionAdornment as M,LabelType as _,isGridRenderer as j,isFlexRenderer as G,createLayoutRenderer as B,renderLayoutParts as H}from"@react-typed-forms/schemas";import{useComponentTracking as P,formControlProps as J,useControl as U,useControlEffect as Y,RenderArrayElements as $,useComputed as z,Fcheckbox as K,newControl as Q,RenderElements as W}from"@react-typed-forms/core";function X(){return X=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var l in n)({}).hasOwnProperty.call(n,l)&&(e[l]=n[l])}return e},X.apply(null,arguments)}function Z(e,t){if(null==e)return{};var n={};for(var l in e)if({}.hasOwnProperty.call(e,l)){if(t.includes(l))continue;n[l]=e[l]}return n}const ee=["data","display","className","style"];function te(t={}){return{render:n=>/*#__PURE__*/e.createElement(ne,X({},t,n)),type:"display"}}function ne(t){var n=P();try{let{data:n,display:l,className:r,style:a}=t,u=Z(t,ee);switch(n.type){case o.Icon:/*#__PURE__*/return e.createElement("i",{style:a,className:s(d(r),l?l.value:n.iconClass)});case o.Text:/*#__PURE__*/return e.createElement("div",{style:a,className:c(r,u.textClassName)},l?i(l.value):n.text);case o.Html:/*#__PURE__*/return e.createElement("div",{style:a,className:c(r,u.htmlClassName),dangerouslySetInnerHTML:{__html:l?i(l.value):n.html}});case o.Custom:/*#__PURE__*/return e.createElement("div",null,"Custom display placeholder: ",n.customId);default:/*#__PURE__*/return e.createElement("h1",null,"Unknown display type: ",n.type)}}finally{n()}}const le=["control","convert"],re=["errorText","value","onChange"];function ae(t){var n=P();try{let{control:l,convert:r}=t,a=Z(t,le);const s=J(l),{value:o}=s,c=Z(s,re),i=U(()=>d(o));return Y(()=>l.value,e=>i.value=d(e)),/*#__PURE__*/e.createElement("input",X({},c,{type:r[0],value:i.value,onChange:e=>{i.value=e.target.value;const t=r[1](e.target.value);void 0!==t&&(l.value=t)}},a));function d(e){return null==e?"":r[2](e)}}finally{n()}}function se(e){switch(e){case u.String:return["text",e=>e,e=>e];case u.Bool:return["text",e=>"true"===e||"false"!==e&&void 0,e=>{var t;return null!=(t=null==e?void 0:e.toString())?t:""}];case u.Int:return["number",e=>""!==e?parseInt(e):null,e=>null==e?"":e];case u.DateTime:return["datetime-local",e=>e||null,e=>e];case u.Date:return["date",e=>e||null,e=>e];case u.Time:return["time",e=>{const t=e.length;return 5===t?e+":00":8===t?e:void 0},e=>e?e.substring(0,5):""];case u.Double:return["number",e=>""!==e?parseFloat(e):null,e=>null==e?"":e];default:return["text",e=>e,e=>e]}}const oe=["state","options","className","convert","required","emptyText","requiredText","readonly"];function ce(t={}){return m((n,l)=>{var r;/*#__PURE__*/return e.createElement(ie,{className:c(n.className,t.className),state:n.control,id:n.id,readonly:n.readonly,options:null!=(r=n.options)?r:[],required:n.required,emptyText:t.emptyText,requiredText:t.requiredText,convert:de(n.field.type)})},{options:!0})}function ie(l){var r=P();try{let{state:a,options:s,className:o,convert:c,required:i,emptyText:d="N/A",requiredText:u="<please select>",readonly:m}=l,y=Z(l,oe);const{value:p,disabled:v}=a,[f]=t(!i||null==p),N=n(()=>Object.fromEntries(s.map(e=>[c(e.value),e.value])),[s]),C=n(()=>new Set(s.filter(e=>e.group).map(e=>e.group)),[s]);/*#__PURE__*/return e.createElement("select",X({},y,{className:o,onChange:e=>a.value=N[e.target.value],value:c(p),disabled:v||m}),f&&/*#__PURE__*/e.createElement("option",{value:""},i?u:d),[...C.keys()].map(t=>/*#__PURE__*/e.createElement("optgroup",{key:t,label:t},s.filter(e=>e.group===t).map(h))),s.filter(e=>!e.group).map(h));function h(t,n){/*#__PURE__*/return e.createElement("option",{key:n,value:c(t.value),disabled:!!t.disabled},t.name)}}finally{r()}}function de(e){switch(e){case u.String:case u.Int:case u.Double:return e=>e;default:return e=>{var t;return null!=(t=null==e?void 0:e.toString())?t:""}}}function ue(t={}){return m(n=>/*#__PURE__*/e.createElement(ye,X({},t,n,{className:c(n.className,t.className),isChecked:(e,t)=>e.value==t.value,setChecked:(e,t)=>e.value=t.value,control:n.control,type:"radio",entryAdornment:y(n)})),{renderType:p.Radio})}function me(t={}){return m(n=>/*#__PURE__*/e.createElement(ye,X({},t,n,{className:c(n.className,t.className),isChecked:(e,t)=>{const n=e.value;return!!Array.isArray(n)&&n.includes(t.value)},setChecked:(e,t,n)=>{e.setValue(e=>pe(null!=e?e:[],t.value,n))},control:n.control,type:"checkbox",entryAdornment:y(n)})),{collection:!0,renderType:p.CheckList})}function ye({control:t,options:n,labelClass:l,checkClass:r,readonly:a,entryClass:s,className:o,id:c,type:i,isChecked:d,setChecked:u,entryAdornment:m}){var y=P();try{const{disabled:y}=t,p="r"+t.uniqueId;/*#__PURE__*/return e.createElement("div",{className:o,id:c},/*#__PURE__*/e.createElement($,{array:null==n?void 0:n.filter(e=>null!=e.value)},(n,o)=>{const c=z(()=>d(t,n)).value;/*#__PURE__*/return e.createElement(e.Fragment,null,/*#__PURE__*/e.createElement("div",{key:o,className:s},/*#__PURE__*/e.createElement("input",{id:p+"_"+o,className:r,type:i,name:p,readOnly:a,disabled:y,checked:c,onChange:e=>{!a&&u(t,n,e.target.checked)}}),/*#__PURE__*/e.createElement("label",{className:l,htmlFor:p+"_"+o},n.name)),null==m?void 0:m(n,o,c))}))}finally{y()}}function pe(e,t,n){return n===e.includes(t)?e:n?[...e,t]:e.filter(e=>e!==t)}function ve(t={}){return m((n,l)=>r=>X({},r,{label:void 0,children:/*#__PURE__*/e.createElement("div",{className:c(n.className,t.entryClass)},/*#__PURE__*/e.createElement(K,{id:n.id,control:n.control,style:n.style,className:t.checkClass}),r.label&&l.renderLabel(r.label,void 0,void 0))}),{renderType:p.Checkbox})}function fe({errorClass:t,renderError:n=n=>n&&/*#__PURE__*/e.createElement("div",{className:t},n),layout:{controlEnd:l,controlStart:r,label:a,children:s,errorControl:o}}){var c=P();try{/*#__PURE__*/return e.createElement(e.Fragment,null,a,r,s,n(o&&o.touched?o.error:void 0),l)}finally{c()}}function Ne({control:t,className:n,emptyText:l,schemaInterface:r,field:a,style:s}){var o=P();try{var i;const o=t.value,d=null!=(i=r.isEmptyValue(a,o)?l:r.textValue(a,o))?i:"";/*#__PURE__*/return e.createElement("div",{style:s,className:c(n)},d)}finally{o()}}function Ce(){return v(t=>/*#__PURE__*/e.createElement(he,t))}function he({visibility:t,children:n,className:r,style:a,divRef:o}){var c=P();try{const c=t.value;return l(()=>{c&&t.setValue(e=>({visible:c.visible,showing:c.visible}))},[null==c?void 0:c.visible]),null!=c&&c.visible?/*#__PURE__*/e.createElement("div",{className:s(r),style:a,ref:o},n):/*#__PURE__*/e.createElement(e.Fragment,null)}finally{c()}}function ge(t){return m(n=>/*#__PURE__*/e.createElement(xe,{renderOptions:n.renderOptions,className:c(n.className,t),dataNode:n.dataNode,dataContext:n.dataContext,control:n.control,readonly:n.readonly}),{renderType:p.Jsonata})}function xe({control:t,renderOptions:n,readonly:l,className:r,dataContext:a,dataNode:s}){var o=P();try{const o=a.parentNode,c=z(()=>({value:t.value,readonly:l,disabled:t.disabled,formData:a.formData,dataPath:f(s)})),d=N(n.expression,C(o).control,f(o),c,i);/*#__PURE__*/return e.createElement("div",{className:r,dangerouslySetInnerHTML:{__html:d.value}})}finally{o()}}const Ee=["control","field","renderOptions"];function be(){return m((t,n)=>{var l,r;let{control:a,field:s}=t,o=Z(t,Ee);const c=null!=(r=(l=a.meta).nullControl)?r:l.nullControl=Q(null!=a.current.value);return t=>{const l=n.renderData(X({},o,{control:c,field:X({},s,{type:u.Bool}),renderOptions:{type:p.Checkbox}}))(t);return X({},l,{children:/*#__PURE__*/e.createElement(Te,{control:a,nullControl:c,children:l.children,readonly:o.readonly,defaultValue:o.definition.defaultValue})})}})}function Te({children:e,nullControl:t,control:n,defaultValue:l,readonly:r}){return Y(()=>r,e=>t.disabled=e,!0),Y(()=>t.value,e=>{var r;e?n.value=null!=(r=t.meta.nonNullValue)?r:l:(t.meta.nonNullValue=n.value,n.value=null)}),e}function Oe(e){return m(({definition:t,control:n,required:l,field:r,renderChild:a,className:s,style:o,renderOptions:c,readonly:i,designMode:d},u)=>{const{addText:m,noAdd:y,noRemove:v,removeText:f}=h(g(c)?c:{},e),N=g(c)?c.childOptions:void 0,C=X({},x(n,r,{addText:m,removeText:f,noAdd:y,noRemove:v,readonly:i,disabled:n.disabled,designMode:d}),{required:l,renderElement:e=>{var l,r;return a(null!=(l=null==(r=n.elements)?void 0:r[e].uniqueId)?l:e,{type:E.Data,field:t.field,children:t.children,renderOptions:null!=N?N:{type:p.Standard},hideTitle:!0},{elementIndex:e})},className:s||void 0,style:o},b(t));return u.renderArray(C)},{renderType:p.Array,collection:!0})}function ke(t){return{render:(n,{renderAction:l})=>/*#__PURE__*/e.createElement(Ae,X({},n,t,{renderAction:l})),type:"array"}}function Ae(t){var n=P();try{const{renderElement:n,className:l,removableClass:r,childClass:a,removableChildClass:o,removeActionClass:c,addActionClass:i,arrayControl:d,renderAction:u,style:m}=t,{addAction:y,removeAction:p}=T(t);/*#__PURE__*/return e.createElement("div",{style:m},/*#__PURE__*/e.createElement("div",{className:s(l,p&&r)},/*#__PURE__*/e.createElement(W,{control:d},(t,l)=>p?/*#__PURE__*/e.createElement(e.Fragment,null,/*#__PURE__*/e.createElement("div",{className:s(a,o)},n(l)),/*#__PURE__*/e.createElement("div",{className:c},u(p(l)))):/*#__PURE__*/e.createElement("div",{className:a},n(l)))),y&&/*#__PURE__*/e.createElement("div",{className:i},u(y)))}finally{n()}}function Ie({children:t,accordion:n,contentStyle:l,contentClassName:r,designMode:a,iconOpenClass:o,iconClosedClass:c,className:i,renderTitle:d=e=>e,renderToggler:u,renderers:m,titleClass:y}){var p=P();try{const p=U(!!n.defaultExpanded),v=p.value,f=v||a?l:X({},l,{display:"none"}),N=m.renderLabelText(d(n.title,p)),C=u?u(p,N):/*#__PURE__*/e.createElement("button",{className:i,onClick:()=>p.setValue(e=>!e)},/*#__PURE__*/e.createElement("label",{className:y},N),/*#__PURE__*/e.createElement("i",{className:s(v?o:c)}));/*#__PURE__*/return e.createElement(e.Fragment,null,C,/*#__PURE__*/e.createElement("div",{style:f,className:r},t))}finally{p()}}function qe({control:t,className:n}){var l=P();try{const l=r(null);return Y(()=>t.value,e=>{const t=l.current;t&&t.textContent!==e&&(t.textContent=e)},!0),/*#__PURE__*/e.createElement("code",{contentEditable:!t.disabled,className:n,onInput:e=>t.value=e.currentTarget.textContent,ref:l})}finally{l()}}function we(t,n={}){return O(t,({onClick:t,actionText:l,className:r,style:a,actionId:s,actionData:o})=>{var i;/*#__PURE__*/return e.createElement("button",{className:c(r,n.className),style:a,onClick:t},null!=(i=null==n.renderContent?void 0:n.renderContent(l,s,o))?i:l)})}function Se(t){const{className:n,gridStyles:l=u,defaultGridColumns:r=2,gridClassName:a,standardClassName:o,flexClassName:i,defaultFlexGap:d}=null!=t?t:{};function u({columns:e=r}){return{className:a,style:{display:"grid",gridTemplateColumns:`repeat(${e}, 1fr)`}}}return{type:"group",render:function(t){const{renderChild:r,renderOptions:a,childDefinitions:u}=t,{style:m,className:y}=j(a)?l(a):G(a)?function(e){return{className:i,style:{display:"flex",gap:e.gap?e.gap:d,flexDirection:e.direction?e.direction:void 0}}}(a):{className:o};return l=>X({},l,{children:/*#__PURE__*/e.createElement("div",{className:c(t.className,s(n,y)),style:m},null==u?void 0:u.map((e,t)=>r(t,e)))})}}}const De=[{name:"Yes",value:!0},{name:"No",value:!1}];function Le(t={}){var n,l,r;const a=ge(t.jsonataClass),s=be(),o=(i=t.multilineClass,m(t=>/*#__PURE__*/e.createElement(qe,X({},t,{className:c(t.className,i)}))));var i;const d=ve(null!=(n=t.checkOptions)?n:t.checkboxOptions),y=ce(t.selectOptions),v=ue(null!=(l=t.radioOptions)?l:t.checkOptions),f=me(null!=(r=t.checkListOptions)?r:t.checkOptions),{inputClass:N,booleanOptions:C,optionRenderer:h,displayOnlyClass:g}=X({optionRenderer:y,booleanOptions:De},t),x=Oe(t.arrayOptions);return m((t,n)=>{const{field:l}=t,r=l.type,i=t.renderOptions;let m=i.type;if(l.collection&&null==t.elementIndex&&(m==p.Standard||m==p.Array))return x.render(t,n);if(r===u.Compound){var E;const e=null!=(E=k(i)?i.groupOptions:void 0)?E:{type:"Standard",hideTitle:!0};return n.renderGroup(X({},t,{renderOptions:e}))}if(r==u.Any)/*#__PURE__*/return e.createElement(e.Fragment,null,"No control for Any");if(A(i))return n=>X({},n,{className:g,children:/*#__PURE__*/e.createElement(Ne,{field:t.field,schemaInterface:t.dataContext.schemaInterface,control:t.control,className:t.className,style:t.style,emptyText:i.emptyText})});if(null!=C&&r===u.Bool&&null==t.options)return n.renderData(X({},t,{options:C}));if(m===p.Standard&&I(t))return h.render(t,n);switch(m){case p.NullToggle:return s.render(t,n);case p.CheckList:return f.render(t,n);case p.Dropdown:return y.render(t,n);case p.Radio:return v.render(t,n);case p.Checkbox:return d.render(t,n);case p.Jsonata:return a.render(t,n)}if(q(i)&&i.multiline)return o.render(t,n);const b=q(i)?i.placeholder:void 0;/*#__PURE__*/return e.createElement(ae,{className:c(t.className,N),style:t.style,id:t.id,readOnly:t.readonly,control:t.control,placeholder:null!=b?b:void 0,convert:se(t.field.type)})})}function Fe(t={}){return{type:"adornment",render:({adornment:n,designMode:l,dataContext:r,useExpr:s},o)=>({apply:c=>{if(w(n)&&s){const d=s(n.expression,e=>e),u=S({value:d}),m=a(y,[u]);return D(t=>/*#__PURE__*/e.createElement(m,{children:t,parentContext:r,adornment:n}))(c);function y({children:e,adornment:t,parentContext:n}){const{value:l}=u(n),r=L(t.field,n.parentNode).control,a=!t.defaultOnly;return Y(()=>[null==l?void 0:l.value,null==(null==r?void 0:r.value)],([e])=>{null==r||r.setValue(t=>a||null==t?e:t)},!0),e}}var i;return F(n)?V(null!=(i=n.placement)?i:R.ControlStart,/*#__PURE__*/e.createElement("i",{className:n.iconClass}))(c):M(n)?D(r=>/*#__PURE__*/e.createElement(Ie,X({renderers:o,children:r,accordion:n,contentStyle:c.style,contentClassName:c.className,designMode:l},t.accordion)))(c):void 0},priority:0,adornment:n})}}function Ve(t={}){return B((n,l)=>{const r=H(X({},n,{className:c(n.className,t.className)}),l);return{children:r.wrapLayout(/*#__PURE__*/e.createElement(fe,X({layout:r},t))),className:r.className,style:r.style,divRef:e=>e&&n.errorControl?n.errorControl.meta.scrollElement=e:void 0}})}function Re(t){const{className:n,groupLabelClass:l,controlLabelClass:r,requiredElement:a,labelContainer:o}=X({requiredElement:/*#__PURE__*/e.createElement("span",null," *"),labelContainer:e=>e},t);return{render:(t,i,d,u)=>t.type==_.Text?t.label:o(/*#__PURE__*/e.createElement(e.Fragment,null,/*#__PURE__*/e.createElement("label",{htmlFor:t.forId,className:c(t.className,s(n,t.type===_.Group&&l,t.type===_.Control&&r))},i,u.renderLabelText(t.label),t.required&&a),d)),type:"label"}}function Me(e={}){return{data:Le(e.data),display:te(e.display),action:we(void 0,e.action),array:ke(e.array),group:Se(e.group),label:Re(e.label),adornment:Fe(e.adornment),renderLayout:Ve(e.layout),visibility:Ce()}}function _e(){return Me({layout:{className:"control"},group:{className:"group"},array:{className:"control-array"},action:{className:"action"},data:{inputClass:"data"},display:{htmlClassName:"html",textClassName:"text"}})}const je={label:{groupLabelClass:"font-bold",requiredElement:/*#__PURE__*/e.createElement("span",{className:"text-red-500"}," *")},array:{removableClass:"grid grid-cols-[1fr_auto] items-center gap-x-2",childClass:"grow my-2",addActionClass:"my-2"},group:{standardClassName:"flex flex-col gap-4",gridClassName:"gap-x-2 gap-y-4",flexClassName:"gap-2"},action:{className:"bg-primary-500 rounded-lg p-3 text-white"},layout:{className:"flex flex-col",errorClass:"text-sm text-danger-500"},data:{displayOnlyClass:"flex flex-row items-center gap-2",checkOptions:{className:"flex items-center gap-4",entryClass:"flex gap-1 items-center"},selectOptions:{emptyText:"<select>"},multilineClass:"border p-2 outline-0 whitespace-pre"},adornment:{accordion:{className:"flex items-center gap-2 my-2",titleClass:"cursor-pointer",iconOpenClass:"fa fa-chevron-up",iconClosedClass:"fa fa-chevron-down"}}};export{ye as CheckButtons,ae as ControlInput,Ae as DefaultArrayRenderer,De as DefaultBoolOptions,ne as DefaultDisplay,Ne as DefaultDisplayOnly,fe as DefaultLayout,he as DefaultVisibility,xe as JsonataRenderer,ie as SelectDataRenderer,we as createButtonActionRenderer,me as createCheckListRenderer,ve as createCheckboxRenderer,_e as createClassStyledRenderers,Fe as createDefaultAdornmentRenderer,Oe as createDefaultArrayDataRenderer,ke as createDefaultArrayRenderer,Le as createDefaultDataRenderer,te as createDefaultDisplayRenderer,Se as createDefaultGroupRenderer,Re as createDefaultLabelRenderer,Me as createDefaultRenderers,Ce as createDefaultVisibilityRenderer,se as createInputConversion,ge as createJsonataRenderer,be as createNullToggleRenderer,ue as createRadioRenderer,de as createSelectConversion,ce as createSelectRenderer,je as defaultTailwindTheme,pe as setIncluded};
1
+ import e,{useState as t,useMemo as n,useEffect as l,useRef as r,useCallback as a}from"react";import s from"clsx";import{DisplayDataType as o,rendererClass as c,coerceToString as i,getOverrideClass as d,FieldType as u,createDataRenderer as m,fieldOptionAdornment as y,DataRenderType as p,createVisibilityRenderer as v,getJsonPath as f,useJsonataExpression as N,getRootDataNode as C,mergeObjects as h,isArrayRenderer as g,createArrayActions as x,ControlDefinitionType as E,getLengthRestrictions as b,applyArrayLengthRestrictions as T,createActionRenderer as O,isDataGroupRenderer as k,isDisplayOnlyRenderer as A,hasOptions as I,isTextfieldRenderer as q,isSetFieldAdornment as w,useDynamicHooks as S,wrapLayout as D,schemaDataForFieldRef as L,isIconAdornment as F,appendMarkupAt as V,AdornmentPlacement as R,isAccordionAdornment as M,LabelType as _,isGridRenderer as j,isFlexRenderer as G,createLayoutRenderer as B,renderLayoutParts as H}from"@react-typed-forms/schemas";import{useComponentTracking as P,formControlProps as J,useControl as U,useControlEffect as Y,RenderArrayElements as $,useComputed as z,Fcheckbox as K,newControl as Q,RenderElements as W}from"@react-typed-forms/core";function X(){return X=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var l in n)({}).hasOwnProperty.call(n,l)&&(e[l]=n[l])}return e},X.apply(null,arguments)}function Z(e,t){if(null==e)return{};var n={};for(var l in e)if({}.hasOwnProperty.call(e,l)){if(t.includes(l))continue;n[l]=e[l]}return n}const ee=["data","display","className","style"];function te(t={}){return{render:n=>/*#__PURE__*/e.createElement(ne,X({},t,n)),type:"display"}}function ne(t){var n=P();try{let{data:n,display:l,className:r,style:a}=t,u=Z(t,ee);switch(n.type){case o.Icon:/*#__PURE__*/return e.createElement("i",{style:a,className:s(d(r),l?l.value:n.iconClass)});case o.Text:/*#__PURE__*/return e.createElement("div",{style:a,className:c(r,u.textClassName)},l?i(l.value):n.text);case o.Html:/*#__PURE__*/return e.createElement("div",{style:a,className:c(r,u.htmlClassName),dangerouslySetInnerHTML:{__html:l?i(l.value):n.html}});case o.Custom:/*#__PURE__*/return e.createElement("div",null,"Custom display placeholder: ",n.customId);default:/*#__PURE__*/return e.createElement("h1",null,"Unknown display type: ",n.type)}}finally{n()}}const le=["control","convert"],re=["errorText","value","onChange"];function ae(t){var n=P();try{let{control:l,convert:r}=t,a=Z(t,le);const s=J(l),{value:o}=s,c=Z(s,re),i=U(()=>d(o));return Y(()=>l.value,e=>i.value=d(e)),/*#__PURE__*/e.createElement("input",X({},c,{type:r[0],value:i.value,onChange:e=>{i.value=e.target.value;const t=r[1](e.target.value);void 0!==t&&(l.value=t)}},a));function d(e){return null==e?"":r[2](e)}}finally{n()}}function se(e){switch(e){case u.String:return["text",e=>e,e=>e];case u.Bool:return["text",e=>"true"===e||"false"!==e&&void 0,e=>{var t;return null!=(t=null==e?void 0:e.toString())?t:""}];case u.Int:return["number",e=>""!==e?parseInt(e):null,e=>null==e?"":e];case u.DateTime:return["datetime-local",e=>e||null,e=>e];case u.Date:return["date",e=>e||null,e=>e];case u.Time:return["time",e=>{const t=e.length;return 5===t?e+":00":8===t?e:void 0},e=>e?e.substring(0,5):""];case u.Double:return["number",e=>""!==e?parseFloat(e):null,e=>null==e?"":e];default:return["text",e=>e,e=>e]}}const oe=["state","options","className","convert","required","emptyText","requiredText","readonly"];function ce(t={}){return m((n,l)=>{var r;/*#__PURE__*/return e.createElement(ie,{className:c(n.className,t.className),state:n.control,id:n.id,readonly:n.readonly,options:null!=(r=n.options)?r:[],required:n.required,emptyText:t.emptyText,requiredText:t.requiredText,convert:de(n.field.type)})},{options:!0})}function ie(l){var r=P();try{let{state:a,options:s,className:o,convert:c,required:i,emptyText:d="N/A",requiredText:u="<please select>",readonly:m}=l,y=Z(l,oe);const{value:p,disabled:v}=a,[f]=t(!i||null==p),N=n(()=>Object.fromEntries(s.map(e=>[c(e.value),e.value])),[s]),C=n(()=>new Set(s.filter(e=>e.group).map(e=>e.group)),[s]);/*#__PURE__*/return e.createElement("select",X({},y,{className:o,onChange:e=>a.value=N[e.target.value],value:c(p),disabled:v||m}),f&&/*#__PURE__*/e.createElement("option",{value:""},i?u:d),[...C.keys()].map(t=>/*#__PURE__*/e.createElement("optgroup",{key:t,label:t},s.filter(e=>e.group===t).map(h))),s.filter(e=>!e.group).map(h));function h(t,n){/*#__PURE__*/return e.createElement("option",{key:n,value:c(t.value),disabled:!!t.disabled},t.name)}}finally{r()}}function de(e){switch(e){case u.String:case u.Int:case u.Double:return e=>e;default:return e=>{var t;return null!=(t=null==e?void 0:e.toString())?t:""}}}function ue(t={}){return m(n=>/*#__PURE__*/e.createElement(ye,X({},t,n,{className:c(n.className,t.className),isChecked:(e,t)=>e.value==t.value,setChecked:(e,t)=>e.value=t.value,control:n.control,type:"radio",entryAdornment:y(n)})),{renderType:p.Radio})}function me(t={}){return m(n=>/*#__PURE__*/e.createElement(ye,X({},t,n,{className:c(n.className,t.className),isChecked:(e,t)=>{const n=e.value;return!!Array.isArray(n)&&n.includes(t.value)},setChecked:(e,t,n)=>{e.setValue(e=>pe(null!=e?e:[],t.value,n))},control:n.control,type:"checkbox",entryAdornment:y(n)})),{collection:!0,renderType:p.CheckList})}function ye({control:t,options:n,labelClass:l,checkClass:r,readonly:a,entryClass:s,className:o,id:c,type:i,isChecked:d,setChecked:u,entryAdornment:m}){var y=P();try{const{disabled:y}=t,p="r"+t.uniqueId;/*#__PURE__*/return e.createElement("div",{className:o,id:c},/*#__PURE__*/e.createElement($,{array:null==n?void 0:n.filter(e=>null!=e.value)},(n,o)=>{const c=z(()=>d(t,n)).value;/*#__PURE__*/return e.createElement(e.Fragment,null,/*#__PURE__*/e.createElement("div",{key:o,className:s},/*#__PURE__*/e.createElement("input",{id:p+"_"+o,className:r,type:i,name:p,readOnly:a,disabled:y,checked:c,onChange:e=>{!a&&u(t,n,e.target.checked)}}),/*#__PURE__*/e.createElement("label",{className:l,htmlFor:p+"_"+o},n.name)),null==m?void 0:m(n,o,c))}))}finally{y()}}function pe(e,t,n){return n===e.includes(t)?e:n?[...e,t]:e.filter(e=>e!==t)}function ve(t={}){return m((n,l)=>r=>X({},r,{label:void 0,children:/*#__PURE__*/e.createElement("div",{className:c(n.className,t.entryClass)},/*#__PURE__*/e.createElement(K,{id:n.id,control:n.control,style:n.style,className:t.checkClass}),r.label&&l.renderLabel(r.label,void 0,void 0))}),{renderType:p.Checkbox})}function fe({errorClass:t,renderError:n=n=>n&&/*#__PURE__*/e.createElement("div",{className:t},n),layout:{controlEnd:l,controlStart:r,label:a,children:s,errorControl:o}}){var c=P();try{/*#__PURE__*/return e.createElement(e.Fragment,null,a,r,s,n(o&&o.touched?o.error:void 0),l)}finally{c()}}function Ne({control:t,className:n,emptyText:l,schemaInterface:r,field:a,style:s}){var o=P();try{var i;const o=t.value,d=null!=(i=r.isEmptyValue(a,o)?l:r.textValue(a,o))?i:"";/*#__PURE__*/return e.createElement("div",{style:s,className:c(n)},d)}finally{o()}}function Ce(){return v(t=>/*#__PURE__*/e.createElement(he,t))}function he({visibility:t,children:n,className:r,style:a,divRef:o}){var c=P();try{const c=t.value;return l(()=>{c&&t.setValue(e=>({visible:c.visible,showing:c.visible}))},[null==c?void 0:c.visible]),null!=c&&c.visible?/*#__PURE__*/e.createElement("div",{className:s(r),style:a,ref:o},n):/*#__PURE__*/e.createElement(e.Fragment,null)}finally{c()}}function ge(t){return m(n=>/*#__PURE__*/e.createElement(xe,{renderOptions:n.renderOptions,className:c(n.className,t),dataNode:n.dataNode,dataContext:n.dataContext,control:n.control,readonly:n.readonly}),{renderType:p.Jsonata})}function xe({control:t,renderOptions:n,readonly:l,className:r,dataContext:a,dataNode:s}){var o=P();try{const o=null!=s.elementIndex?s:a.parentNode,c=z(()=>({value:t.value,readonly:l,disabled:t.disabled,formData:a.formData,dataPath:f(s)})),d=N(n.expression,C(o).control,f(o),c,i);/*#__PURE__*/return e.createElement("div",{className:r,dangerouslySetInnerHTML:{__html:d.value}})}finally{o()}}const Ee=["control","field","renderOptions"];function be(){return m((t,n)=>{var l,r;let{control:a,field:s}=t,o=Z(t,Ee);const c=null!=(r=(l=a.meta).nullControl)?r:l.nullControl=Q(null!=a.current.value);return t=>{const l=n.renderData(X({},o,{control:c,field:X({},s,{type:u.Bool}),renderOptions:{type:p.Checkbox}}))(t);return X({},l,{children:/*#__PURE__*/e.createElement(Te,{control:a,nullControl:c,children:l.children,readonly:o.readonly,defaultValue:o.definition.defaultValue})})}})}function Te({children:e,nullControl:t,control:n,defaultValue:l,readonly:r}){return Y(()=>r,e=>t.disabled=e,!0),Y(()=>t.value,e=>{var r;e?n.value=null!=(r=t.meta.nonNullValue)?r:l:(t.meta.nonNullValue=n.value,n.value=null)}),e}function Oe(e){return m(({definition:t,control:n,required:l,field:r,renderChild:a,className:s,style:o,renderOptions:c,readonly:i,designMode:d},u)=>{const{addText:m,noAdd:y,noRemove:v,removeText:f}=h(g(c)?c:{},e),N=g(c)?c.childOptions:void 0,C=X({},x(n,r,{addText:m,removeText:f,noAdd:y,noRemove:v,readonly:i,disabled:n.disabled,designMode:d}),{required:l,renderElement:e=>{var l,r;return a(null!=(l=null==(r=n.elements)?void 0:r[e].uniqueId)?l:e,{type:E.Data,field:t.field,children:t.children,renderOptions:null!=N?N:{type:p.Standard},hideTitle:!0},{elementIndex:e})},className:s||void 0,style:o},b(t));return u.renderArray(C)},{renderType:p.Array,collection:!0})}function ke(t){return{render:(n,{renderAction:l})=>/*#__PURE__*/e.createElement(Ae,X({},n,t,{renderAction:l})),type:"array"}}function Ae(t){var n=P();try{const{renderElement:n,className:l,removableClass:r,childClass:a,removableChildClass:o,removeActionClass:c,addActionClass:i,arrayControl:d,renderAction:u,style:m}=t,{addAction:y,removeAction:p}=T(t);/*#__PURE__*/return e.createElement("div",{style:m},/*#__PURE__*/e.createElement("div",{className:s(l,p&&r)},/*#__PURE__*/e.createElement(W,{control:d},(t,l)=>p?/*#__PURE__*/e.createElement(e.Fragment,null,/*#__PURE__*/e.createElement("div",{className:s(a,o)},n(l)),/*#__PURE__*/e.createElement("div",{className:c},u(p(l)))):/*#__PURE__*/e.createElement("div",{className:a},n(l)))),y&&/*#__PURE__*/e.createElement("div",{className:i},u(y)))}finally{n()}}function Ie({children:t,accordion:n,contentStyle:l,contentClassName:r,designMode:a,iconOpenClass:o,iconClosedClass:c,className:i,renderTitle:d=e=>e,renderToggler:u,renderers:m,titleClass:y}){var p=P();try{const p=U(!!n.defaultExpanded),v=p.value,f=v||a?l:X({},l,{display:"none"}),N=m.renderLabelText(d(n.title,p)),C=u?u(p,N):/*#__PURE__*/e.createElement("button",{className:i,onClick:()=>p.setValue(e=>!e)},/*#__PURE__*/e.createElement("label",{className:y},N),/*#__PURE__*/e.createElement("i",{className:s(v?o:c)}));/*#__PURE__*/return e.createElement(e.Fragment,null,C,/*#__PURE__*/e.createElement("div",{style:f,className:r},t))}finally{p()}}function qe({control:t,className:n}){var l=P();try{const l=r(null);return Y(()=>t.value,e=>{const t=l.current;t&&t.textContent!==e&&(t.textContent=e)},!0),/*#__PURE__*/e.createElement("code",{contentEditable:!t.disabled,className:n,onInput:e=>t.value=e.currentTarget.textContent,ref:l})}finally{l()}}function we(t,n={}){return O(t,({onClick:t,actionText:l,className:r,style:a,actionId:s,actionData:o})=>{var i;/*#__PURE__*/return e.createElement("button",{className:c(r,n.className),style:a,onClick:t},null!=(i=null==n.renderContent?void 0:n.renderContent(l,s,o))?i:l)})}function Se(t){const{className:n,gridStyles:l=u,defaultGridColumns:r=2,gridClassName:a,standardClassName:o,flexClassName:i,defaultFlexGap:d}=null!=t?t:{};function u({columns:e=r}){return{className:a,style:{display:"grid",gridTemplateColumns:`repeat(${e}, 1fr)`}}}return{type:"group",render:function(t){const{renderChild:r,renderOptions:a,childDefinitions:u}=t,{style:m,className:y}=j(a)?l(a):G(a)?function(e){return{className:i,style:{display:"flex",gap:e.gap?e.gap:d,flexDirection:e.direction?e.direction:void 0}}}(a):{className:o};return l=>X({},l,{children:/*#__PURE__*/e.createElement("div",{className:c(t.className,s(n,y)),style:m},null==u?void 0:u.map((e,t)=>r(t,e)))})}}}const De=[{name:"Yes",value:!0},{name:"No",value:!1}];function Le(t={}){var n,l,r;const a=ge(t.jsonataClass),s=be(),o=(i=t.multilineClass,m(t=>/*#__PURE__*/e.createElement(qe,X({},t,{className:c(t.className,i)}))));var i;const d=ve(null!=(n=t.checkOptions)?n:t.checkboxOptions),y=ce(t.selectOptions),v=ue(null!=(l=t.radioOptions)?l:t.checkOptions),f=me(null!=(r=t.checkListOptions)?r:t.checkOptions),{inputClass:N,booleanOptions:C,optionRenderer:h,displayOnlyClass:g}=X({optionRenderer:y,booleanOptions:De},t),x=Oe(t.arrayOptions);return m((t,n)=>{const{field:l}=t,r=l.type,i=t.renderOptions;let m=i.type;if(l.collection&&null==t.elementIndex&&(m==p.Standard||m==p.Array))return x.render(t,n);if(r===u.Compound){var E;const e=null!=(E=k(i)?i.groupOptions:void 0)?E:{type:"Standard",hideTitle:!0};return n.renderGroup(X({},t,{renderOptions:e}))}if(r==u.Any)/*#__PURE__*/return e.createElement(e.Fragment,null,"No control for Any");if(A(i))return n=>X({},n,{className:g,children:/*#__PURE__*/e.createElement(Ne,{field:t.field,schemaInterface:t.dataContext.schemaInterface,control:t.control,className:t.className,style:t.style,emptyText:i.emptyText})});if(null!=C&&r===u.Bool&&null==t.options)return n.renderData(X({},t,{options:C}));if(m===p.Standard&&I(t))return h.render(t,n);switch(m){case p.NullToggle:return s.render(t,n);case p.CheckList:return f.render(t,n);case p.Dropdown:return y.render(t,n);case p.Radio:return v.render(t,n);case p.Checkbox:return d.render(t,n);case p.Jsonata:return a.render(t,n)}if(q(i)&&i.multiline)return o.render(t,n);const b=q(i)?i.placeholder:void 0;/*#__PURE__*/return e.createElement(ae,{className:c(t.className,N),style:t.style,id:t.id,readOnly:t.readonly,control:t.control,placeholder:null!=b?b:void 0,convert:se(t.field.type)})})}function Fe(t={}){return{type:"adornment",render:({adornment:n,designMode:l,dataContext:r,useExpr:s},o)=>({apply:c=>{if(w(n)&&s){const d=s(n.expression,e=>e),u=S({value:d}),m=a(y,[u]);return D(t=>/*#__PURE__*/e.createElement(m,{children:t,parentContext:r,adornment:n}))(c);function y({children:e,adornment:t,parentContext:n}){const{value:l}=u(n),r=L(t.field,n.parentNode).control,a=!t.defaultOnly;return Y(()=>[null==l?void 0:l.value,null==(null==r?void 0:r.value)],([e])=>{null==r||r.setValue(t=>a||null==t?e:t)},!0),e}}var i;return F(n)?V(null!=(i=n.placement)?i:R.ControlStart,/*#__PURE__*/e.createElement("i",{className:n.iconClass}))(c):M(n)?D(r=>/*#__PURE__*/e.createElement(Ie,X({renderers:o,children:r,accordion:n,contentStyle:c.style,contentClassName:c.className,designMode:l},t.accordion)))(c):void 0},priority:0,adornment:n})}}function Ve(t={}){return B((n,l)=>{const r=H(X({},n,{className:c(n.className,t.className)}),l);return{children:r.wrapLayout(/*#__PURE__*/e.createElement(fe,X({layout:r},t))),className:r.className,style:r.style,divRef:e=>e&&n.errorControl?n.errorControl.meta.scrollElement=e:void 0}})}function Re(t){const{className:n,groupLabelClass:l,controlLabelClass:r,requiredElement:a,labelContainer:o}=X({requiredElement:/*#__PURE__*/e.createElement("span",null," *"),labelContainer:e=>e},t);return{render:(t,i,d,u)=>t.type==_.Text?t.label:o(/*#__PURE__*/e.createElement(e.Fragment,null,/*#__PURE__*/e.createElement("label",{htmlFor:t.forId,className:c(t.className,s(n,t.type===_.Group&&l,t.type===_.Control&&r))},i,u.renderLabelText(t.label),t.required&&a),d)),type:"label"}}function Me(e={}){return{data:Le(e.data),display:te(e.display),action:we(void 0,e.action),array:ke(e.array),group:Se(e.group),label:Re(e.label),adornment:Fe(e.adornment),renderLayout:Ve(e.layout),visibility:Ce()}}function _e(){return Me({layout:{className:"control"},group:{className:"group"},array:{className:"control-array"},action:{className:"action"},data:{inputClass:"data"},display:{htmlClassName:"html",textClassName:"text"}})}const je={label:{groupLabelClass:"font-bold",requiredElement:/*#__PURE__*/e.createElement("span",{className:"text-red-500"}," *")},array:{removableClass:"grid grid-cols-[1fr_auto] items-center gap-x-2",childClass:"grow my-2",addActionClass:"my-2"},group:{standardClassName:"flex flex-col gap-4",gridClassName:"gap-x-2 gap-y-4",flexClassName:"gap-2"},action:{className:"bg-primary-500 rounded-lg p-3 text-white"},layout:{className:"flex flex-col",errorClass:"text-sm text-danger-500"},data:{displayOnlyClass:"flex flex-row items-center gap-2",checkOptions:{className:"flex items-center gap-4",entryClass:"flex gap-1 items-center"},selectOptions:{emptyText:"<select>"},multilineClass:"border p-2 outline-0 whitespace-pre"},adornment:{accordion:{className:"flex items-center gap-2 my-2",titleClass:"cursor-pointer",iconOpenClass:"fa fa-chevron-up",iconClosedClass:"fa fa-chevron-down"}}};export{ye as CheckButtons,ae as ControlInput,Ae as DefaultArrayRenderer,De as DefaultBoolOptions,ne as DefaultDisplay,Ne as DefaultDisplayOnly,fe as DefaultLayout,he as DefaultVisibility,xe as JsonataRenderer,ie as SelectDataRenderer,we as createButtonActionRenderer,me as createCheckListRenderer,ve as createCheckboxRenderer,_e as createClassStyledRenderers,Fe as createDefaultAdornmentRenderer,Oe as createDefaultArrayDataRenderer,ke as createDefaultArrayRenderer,Le as createDefaultDataRenderer,te as createDefaultDisplayRenderer,Se as createDefaultGroupRenderer,Re as createDefaultLabelRenderer,Me as createDefaultRenderers,Ce as createDefaultVisibilityRenderer,se as createInputConversion,ge as createJsonataRenderer,be as createNullToggleRenderer,ue as createRadioRenderer,de as createSelectConversion,ce as createSelectRenderer,je as defaultTailwindTheme,pe as setIncluded};
2
2
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/DefaultDisplay.tsx","../src/components/ControlInput.tsx","../src/components/SelectDataRenderer.tsx","../src/components/CheckRenderer.tsx","../src/components/DefaultLayout.tsx","../src/components/DefaultDisplayOnly.tsx","../src/components/DefaultVisibility.tsx","../src/components/JsonataRenderer.tsx","../src/components/NullToggle.tsx","../src/components/DefaultArrayRenderer.tsx","../src/components/DefaultAccordion.tsx","../src/components/MultilineTextfield.tsx","../src/createDefaultRenderers.tsx","../src/tailwind.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport {\n coerceToString,\n CustomDisplay,\n DisplayDataType,\n DisplayRendererProps,\n DisplayRendererRegistration,\n getOverrideClass,\n HtmlDisplay,\n IconDisplay,\n rendererClass,\n TextDisplay,\n} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\n\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n return {\n render: (props) => <DefaultDisplay {...options} {...props} />,\n type: \"display\",\n };\n}\n\nexport function DefaultDisplay({\n data,\n display,\n className,\n style,\n ...options\n}: DefaultDisplayRendererOptions & DisplayRendererProps) {\n switch (data.type) {\n case DisplayDataType.Icon:\n return (\n <i\n style={style}\n className={clsx(\n getOverrideClass(className),\n display ? display.value : (data as IconDisplay).iconClass,\n )}\n />\n );\n case DisplayDataType.Text:\n return (\n <div\n style={style}\n className={rendererClass(className, options.textClassName)}\n >\n {display ? coerceToString(display.value) : (data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n style={style}\n className={rendererClass(className, options.htmlClassName)}\n dangerouslySetInnerHTML={{\n __html: display\n ? coerceToString(display.value)\n : (data as HtmlDisplay).html,\n }}\n />\n );\n case DisplayDataType.Custom:\n return (\n <div>\n Custom display placeholder: {(data as CustomDisplay).customId}\n </div>\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n}\n","import React from \"react\";\nimport {\n Control,\n formControlProps,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {FieldType} from \"@react-typed-forms/schemas\";\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n const textValue = useControl(() => toText(value));\n useControlEffect(\n () => control.value,\n (v) => (textValue.value = toText(v)),\n );\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={textValue.value}\n onChange={(e) => {\n textValue.value = e.target.value;\n const converted = convert[1](e.target.value);\n if (converted !== undefined) control.value = converted;\n }}\n {...props}\n />\n );\n\n function toText(value: any) {\n return value == null ? \"\" : convert[2](value);\n }\n}\n\ntype InputConversion = [\n string,\n (s: string) => any,\n (a: any) => string | number,\n];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\n \"text\",\n (a) => (a === \"true\" ? true : a === \"false\" ? false : undefined),\n (a) => a?.toString() ?? \"\",\n ];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.DateTime:\n return [\"datetime-local\", (a) => (!a ? null : a), (a) => a];\n case FieldType.Date:\n return [\"date\", (a) => (!a ? null : a), (a) => a];\n case FieldType.Time:\n return [\n \"time\",\n (a) => {\n const l = a.length;\n if (l === 5) return a + \":00\";\n if (l === 8) return a;\n return undefined;\n },\n (a) => (a ? a.substring(0, 5) : \"\"),\n ];\n case FieldType.Double:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseFloat(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React, { useMemo, useState } from \"react\";\nimport {\n createDataRenderer,\n FieldOption,\n FieldType,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={rendererClass(props.className, options.className)}\n state={props.control}\n id={props.id}\n readonly={props.readonly}\n options={props.options ?? []}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\nexport interface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: FieldOption[];\n emptyText?: string;\n requiredText?: string;\n readonly: boolean;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n readonly,\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n const optionGroups = useMemo(\n () => new Set(options.filter((x) => x.group).map((x) => x.group!)),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled || readonly}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {[...optionGroups.keys()].map((x) => (\n <optgroup key={x} label={x}>\n {options.filter((o) => o.group === x).map(renderOption)}\n </optgroup>\n ))}\n {options.filter((x) => !x.group).map(renderOption)}\n </select>\n );\n\n function renderOption(x: FieldOption, i: number) {\n return (\n <option key={i} value={convert(x.value)} disabled={!!x.disabled}>\n {x.name}\n </option>\n );\n }\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n","import {\n Control,\n Fcheckbox,\n RenderArrayElements,\n useComputed,\n} from \"@react-typed-forms/core\";\nimport React, { ReactNode } from \"react\";\nimport {\n createDataRenderer,\n DataRenderType,\n FieldOption,\n fieldOptionAdornment,\n rendererClass\n} from \"@react-typed-forms/schemas\";\n\nexport interface CheckRendererOptions {\n className?: string;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n}\nexport function createRadioRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n {...options}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => control.value == o.value}\n setChecked={(c, o) => (c.value = o.value)}\n control={p.control}\n type=\"radio\"\n entryAdornment={fieldOptionAdornment(p)}\n />\n ),\n {\n renderType: DataRenderType.Radio,\n },\n );\n}\n\nexport function createCheckListRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n {...options}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => {\n const v = control.value;\n return Array.isArray(v) ? v.includes(o.value) : false;\n }}\n setChecked={(c, o, checked) => {\n c.setValue((x) => setIncluded(x ?? [], o.value, checked));\n }}\n control={p.control}\n type=\"checkbox\"\n entryAdornment={fieldOptionAdornment(p)}\n />\n ),\n {\n collection: true,\n renderType: DataRenderType.CheckList,\n },\n );\n}\n\nexport interface CheckButtonsProps {\n id?: string;\n className?: string;\n options?: FieldOption[] | null;\n control: Control<any>;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n readonly?: boolean;\n type: \"checkbox\" | \"radio\";\n isChecked: (c: Control<any>, o: FieldOption) => boolean;\n setChecked: (c: Control<any>, o: FieldOption, checked: boolean) => void;\n entryAdornment?: (c: FieldOption, i: number, selected: boolean) => ReactNode;\n}\n\nexport function CheckButtons({\n control,\n options,\n labelClass,\n checkClass,\n readonly,\n entryClass,\n className,\n id,\n type,\n isChecked,\n setChecked,\n entryAdornment,\n}: CheckButtonsProps) {\n const { disabled } = control;\n const name = \"r\" + control.uniqueId;\n return (\n <div className={className} id={id}>\n <RenderArrayElements array={options?.filter((x) => x.value != null)}>\n {(o, i) => {\n const checked = useComputed(() => isChecked(control, o)).value;\n return (\n <>\n <div key={i} className={entryClass}>\n <input\n id={name + \"_\" + i}\n className={checkClass}\n type={type}\n name={name}\n readOnly={readonly}\n disabled={disabled}\n checked={checked}\n onChange={(x) => {\n !readonly && setChecked(control, o, x.target.checked);\n }}\n />\n <label className={labelClass} htmlFor={name + \"_\" + i}>\n {o.name}\n </label>\n </div>\n {entryAdornment?.(o, i, checked)}\n </>\n );\n }}\n </RenderArrayElements>\n </div>\n );\n}\n\nexport function setIncluded<A>(array: A[], elem: A, included: boolean): A[] {\n const already = array.includes(elem);\n if (included === already) {\n return array;\n }\n if (included) {\n return [...array, elem];\n }\n return array.filter((e) => e !== elem);\n}\n\nexport function createCheckboxRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (props, renderer) => (p) => ({\n ...p,\n label: undefined,\n children: (\n <div className={rendererClass(props.className, options.entryClass)}>\n <Fcheckbox\n id={props.id}\n control={props.control}\n style={props.style}\n className={options.checkClass}\n />\n {p.label && renderer.renderLabel(p.label, undefined, undefined)}\n </div>\n ),\n }),\n { renderType: DataRenderType.Checkbox },\n );\n}\n","import React, { ReactNode } from \"react\";\nimport {RenderedLayout} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n renderError?: (errorText: string | null | undefined) => ReactNode;\n}\n\nexport function DefaultLayout({\n errorClass,\n renderError = (e) => e && <div className={errorClass}>{e}</div>,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n return (\n <>\n {label}\n {controlStart}\n {children}\n {renderError(errorText)}\n {controlEnd}\n </>\n );\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport {\n rendererClass,\n SchemaField,\n SchemaInterface,\n} from \"@react-typed-forms/schemas\";\n\nexport function DefaultDisplayOnly({\n control,\n className,\n emptyText,\n schemaInterface,\n field,\n style,\n}: {\n control: Control<any>;\n field: SchemaField;\n schemaInterface: SchemaInterface;\n className?: string | null;\n style?: React.CSSProperties;\n emptyText?: string | null;\n}) {\n const v = control.value;\n const text =\n (schemaInterface.isEmptyValue(field, v)\n ? emptyText\n : schemaInterface.textValue(field, v)) ?? \"\";\n return (\n <div style={style} className={rendererClass(className)}>\n {text}\n </div>\n );\n}\n","import React, { useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport {\n createVisibilityRenderer,\n VisibilityRendererProps,\n} from \"@react-typed-forms/schemas\";\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((props) => <DefaultVisibility {...props} />);\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n className,\n style,\n divRef,\n}: VisibilityRendererProps) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? (\n <div className={clsx(className)} style={style} ref={divRef}>\n {children}\n </div>\n ) : (\n <></>\n );\n}\n","import { Control, useComputed } from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport {\n coerceToString,\n ControlDataContext,\n createDataRenderer,\n DataRenderType,\n getJsonPath,\n getRootDataNode,\n JsonataRenderOptions,\n rendererClass,\n SchemaDataNode,\n useJsonataExpression,\n} from \"@react-typed-forms/schemas\";\n\nexport function createJsonataRenderer(className?: string) {\n return createDataRenderer(\n (p) => (\n <JsonataRenderer\n renderOptions={p.renderOptions as JsonataRenderOptions}\n className={rendererClass(p.className, className)}\n dataNode={p.dataNode}\n dataContext={p.dataContext}\n control={p.control}\n readonly={p.readonly}\n />\n ),\n { renderType: DataRenderType.Jsonata },\n );\n}\n\nexport function JsonataRenderer({\n control,\n renderOptions,\n readonly,\n className,\n dataContext,\n dataNode,\n}: {\n control: Control<any>;\n renderOptions: JsonataRenderOptions;\n className?: string;\n dataContext: ControlDataContext;\n dataNode: SchemaDataNode;\n readonly: boolean;\n}) {\n const sdn = dataContext.parentNode;\n const bindings = useComputed(() => ({\n value: control.value,\n readonly,\n disabled: control.disabled,\n formData: dataContext.formData,\n dataPath: getJsonPath(dataNode),\n }));\n const rendered = useJsonataExpression(\n renderOptions.expression,\n getRootDataNode(sdn).control!,\n getJsonPath(sdn),\n bindings,\n coerceToString,\n );\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: rendered.value }}\n />\n );\n}\n","import { Control, newControl, useControlEffect } from \"@react-typed-forms/core\";\nimport React, { ReactNode } from \"react\";\nimport {\n createDataRenderer,\n DataRenderType,\n FieldType,\n} from \"@react-typed-forms/schemas\";\n\nexport function createNullToggleRenderer() {\n return createDataRenderer(\n ({ control, field, renderOptions, ...props }, renderers) => {\n const nullControl = (control.meta[\"nullControl\"] ??= newControl(\n control.current.value != null,\n ));\n return (layout) => {\n const newLayout = renderers.renderData({\n ...props,\n control: nullControl,\n field: { ...field, type: FieldType.Bool },\n renderOptions: { type: DataRenderType.Checkbox },\n })(layout);\n return {\n ...newLayout,\n children: (\n <NullWrapper\n control={control}\n nullControl={nullControl}\n children={newLayout.children}\n readonly={props.readonly}\n defaultValue={props.definition.defaultValue}\n />\n ),\n };\n };\n },\n );\n}\n\nfunction NullWrapper({\n children,\n nullControl,\n control,\n defaultValue,\n readonly,\n}: {\n control: Control<any>;\n nullControl: Control<boolean>;\n children: ReactNode;\n readonly: boolean;\n defaultValue: any;\n}) {\n useControlEffect(\n () => readonly,\n (r) => (nullControl.disabled = r),\n true,\n );\n useControlEffect(\n () => nullControl.value,\n (e) => {\n if (e) {\n control.value = nullControl.meta[\"nonNullValue\"] ?? defaultValue;\n } else {\n nullControl.meta[\"nonNullValue\"] = control.value;\n control.value = null;\n }\n },\n );\n return children;\n}\n","import clsx from \"clsx\";\nimport React, { Fragment, ReactNode } from \"react\";\nimport { RenderElements } from \"@react-typed-forms/core\";\nimport {\n ActionRendererProps,\n applyArrayLengthRestrictions,\n ArrayActionOptions,\n ArrayRendererProps,\n ArrayRendererRegistration,\n ArrayRenderOptions,\n ControlDefinitionType,\n createArrayActions,\n createDataRenderer,\n DataControlDefinition,\n DataRendererRegistration,\n DataRenderType,\n getLengthRestrictions,\n isArrayRenderer,\n mergeObjects,\n} from \"@react-typed-forms/schemas\";\n\nexport function createDefaultArrayDataRenderer(\n defaultActions?: ArrayActionOptions,\n): DataRendererRegistration {\n return createDataRenderer(\n (\n {\n definition,\n control,\n required,\n field,\n renderChild,\n className,\n style,\n renderOptions,\n readonly,\n designMode,\n },\n renderers,\n ) => {\n const { addText, noAdd, noRemove, noReorder, removeText } = mergeObjects(\n isArrayRenderer(renderOptions)\n ? renderOptions\n : ({} as ArrayRenderOptions),\n defaultActions as ArrayRenderOptions,\n );\n const childOptions = isArrayRenderer(renderOptions)\n ? renderOptions.childOptions\n : undefined;\n\n const arrayProps = {\n ...createArrayActions(control, field, {\n addText,\n removeText,\n noAdd,\n noRemove,\n readonly,\n disabled: control.disabled,\n designMode,\n }),\n required,\n renderElement: (i) =>\n renderChild(\n control.elements?.[i].uniqueId ?? i,\n {\n type: ControlDefinitionType.Data,\n field: definition.field,\n children: definition.children,\n renderOptions: childOptions ?? { type: DataRenderType.Standard },\n hideTitle: true,\n } as DataControlDefinition,\n { elementIndex: i },\n ),\n className: className ? className : undefined,\n style,\n ...getLengthRestrictions(definition),\n } satisfies ArrayRendererProps;\n return renderers.renderArray(arrayProps);\n },\n { renderType: DataRenderType.Array, collection: true },\n );\n}\n\nexport interface DefaultArrayRendererOptions extends ArrayActionOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n return {\n render: (props, { renderAction }) => (\n <DefaultArrayRenderer\n {...props}\n {...options}\n renderAction={renderAction}\n />\n ),\n type: \"array\",\n };\n}\n\nexport interface DefaultArrayRendererProps\n extends DefaultArrayRendererOptions,\n ArrayRendererProps {\n renderAction: (props: ActionRendererProps) => ReactNode;\n}\n\nexport function DefaultArrayRenderer(props: DefaultArrayRendererProps) {\n const {\n renderElement,\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n arrayControl,\n renderAction,\n style,\n } = props;\n const { addAction, removeAction } = applyArrayLengthRestrictions(props);\n return (\n <div style={style}>\n <div className={clsx(className, removeAction && removableClass)}>\n <RenderElements control={arrayControl}>\n {(_, x) =>\n removeAction ? (\n <>\n <div className={clsx(childClass, removableChildClass)}>\n {renderElement(x)}\n </div>\n <div className={removeActionClass}>\n {renderAction(removeAction(x))}\n </div>\n </>\n ) : (\n <div className={childClass}>{renderElement(x)}</div>\n )\n }\n </RenderElements>\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n}\n","import React, { CSSProperties, Fragment, ReactElement } from \"react\";\nimport { useControl } from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\nimport { DefaultAccordionRendererOptions } from \"../createDefaultRenderers\";\nimport { AccordionAdornment, FormRenderer } from \"@react-typed-forms/schemas\";\n\nexport function DefaultAccordion({\n children,\n accordion,\n contentStyle,\n contentClassName,\n designMode,\n iconOpenClass,\n iconClosedClass,\n className,\n renderTitle = (t) => t,\n renderToggler,\n renderers,\n titleClass,\n}: {\n children: ReactElement;\n accordion: Partial<AccordionAdornment>;\n contentStyle?: CSSProperties;\n contentClassName?: string;\n designMode?: boolean;\n renderers: FormRenderer;\n} & DefaultAccordionRendererOptions) {\n const open = useControl(!!accordion.defaultExpanded);\n const isOpen = open.value;\n const fullContentStyle =\n isOpen || designMode ? contentStyle : { ...contentStyle, display: \"none\" };\n const title = renderers.renderLabelText(renderTitle(accordion.title, open));\n const toggler = renderToggler ? (\n renderToggler(open, title)\n ) : (\n <button className={className} onClick={() => open.setValue((x) => !x)}>\n <label className={titleClass}>{title}</label>\n <i className={clsx(isOpen ? iconOpenClass : iconClosedClass)} />\n </button>\n );\n\n return (\n <>\n {toggler}\n <div style={fullContentStyle} className={contentClassName}>\n {children}\n </div>\n </>\n );\n}\n","import React, { useRef } from \"react\";\nimport { useControlEffect } from \"@react-typed-forms/core\";\nimport {\n createDataRenderer,\n DataRendererProps,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\n\nexport function createMultilineFieldRenderer(className?: string) {\n return createDataRenderer((p) => (\n <MultilineTextfield\n {...p}\n className={rendererClass(p.className, className)}\n />\n ));\n}\n\nexport function MultilineTextfield({ control, className }: DataRendererProps) {\n const codeRef = useRef<HTMLElement | null>(null);\n useControlEffect(\n () => control.value,\n (v) => {\n const c = codeRef.current;\n if (c && c.textContent !== v) {\n c.textContent = v;\n }\n },\n true,\n );\n return (\n <code\n contentEditable={!control.disabled}\n className={className}\n onInput={(t) => (control.value = t.currentTarget.textContent)}\n ref={codeRef}\n />\n );\n}\n","import {\n createDefaultDisplayRenderer,\n DefaultDisplayRendererOptions,\n} from \"./components/DefaultDisplay\";\nimport {\n DefaultLayout,\n DefaultLayoutRendererOptions,\n} from \"./components/DefaultLayout\";\nimport { createDefaultVisibilityRenderer } from \"./components/DefaultVisibility\";\nimport React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useCallback,\n} from \"react\";\nimport clsx from \"clsx\";\nimport {\n createSelectRenderer,\n SelectRendererOptions,\n} from \"./components/SelectDataRenderer\";\nimport { DefaultDisplayOnly } from \"./components/DefaultDisplayOnly\";\nimport { Control, useControlEffect } from \"@react-typed-forms/core\";\nimport { ControlInput, createInputConversion } from \"./components/ControlInput\";\nimport {\n createDefaultArrayDataRenderer,\n createDefaultArrayRenderer,\n DefaultArrayRendererOptions,\n} from \"./components/DefaultArrayRenderer\";\nimport {\n CheckRendererOptions,\n createCheckboxRenderer,\n createCheckListRenderer,\n createRadioRenderer,\n} from \"./components/CheckRenderer\";\nimport { DefaultAccordion } from \"./components/DefaultAccordion\";\nimport { createNullToggleRenderer } from \"./components/NullToggle\";\nimport { createMultilineFieldRenderer } from \"./components/MultilineTextfield\";\nimport { createJsonataRenderer } from \"./components/JsonataRenderer\";\nimport {\n ActionRendererProps,\n ActionRendererRegistration,\n AdornmentPlacement,\n AdornmentRendererRegistration,\n appendMarkupAt,\n ArrayActionOptions,\n ControlDataContext,\n ControlLayoutProps,\n createActionRenderer,\n createDataRenderer,\n createLayoutRenderer,\n DataRendererRegistration,\n DataRenderType,\n DefaultRenderers,\n FieldOption,\n FieldType,\n FlexRenderer,\n GridRenderer,\n GroupRendererProps,\n GroupRendererRegistration,\n hasOptions,\n isAccordionAdornment,\n isDataGroupRenderer,\n isDisplayOnlyRenderer,\n isFlexRenderer,\n isGridRenderer,\n isIconAdornment,\n isSetFieldAdornment,\n isTextfieldRenderer,\n LabelRendererRegistration,\n LabelType,\n rendererClass,\n renderLayoutParts,\n schemaDataForFieldRef,\n SetFieldAdornment,\n useDynamicHooks,\n wrapLayout,\n} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\nexport interface DefaultActionRendererOptions {\n className?: string;\n renderContent?: (\n actionText: string,\n actionId: string,\n actionData: any,\n ) => ReactNode;\n}\n\nexport function createButtonActionRenderer(\n actionId: string | string[] | undefined,\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n return createActionRenderer(\n actionId,\n ({\n onClick,\n actionText,\n className,\n style,\n actionId,\n actionData,\n }: ActionRendererProps) => {\n return (\n <button\n className={rendererClass(className, options.className)}\n style={style}\n onClick={onClick}\n >\n {options.renderContent?.(actionText, actionId, actionData) ??\n actionText}\n </button>\n );\n },\n );\n}\n\nexport interface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n flexClassName?: string;\n defaultFlexGap?: string;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n flexClassName,\n defaultFlexGap,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function flexStyles(options: FlexRenderer): StyleProps {\n return {\n className: flexClassName,\n style: {\n display: \"flex\",\n gap: options.gap ? options.gap : defaultFlexGap,\n flexDirection: options.direction\n ? (options.direction as any)\n : undefined,\n },\n };\n }\n\n function render(props: GroupRendererProps) {\n const { renderChild, renderOptions, childDefinitions } = props;\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : isFlexRenderer(renderOptions)\n ? flexStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n\n return (cp: ControlLayoutProps) => {\n return {\n ...cp,\n children: (\n <div\n className={rendererClass(props.className, clsx(className, gcn))}\n style={style}\n >\n {childDefinitions?.map((c, i) => renderChild(i, c))}\n </div>\n ),\n };\n };\n }\n\n return { type: \"group\", render };\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\n\nexport interface DefaultDataRendererOptions {\n inputClass?: string;\n displayOnlyClass?: string;\n selectOptions?: SelectRendererOptions;\n checkboxOptions?: CheckRendererOptions;\n checkOptions?: CheckRendererOptions;\n radioOptions?: CheckRendererOptions;\n checkListOptions?: CheckRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n multilineClass?: string;\n jsonataClass?: string;\n arrayOptions?: ArrayActionOptions;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const jsonataRenderer = createJsonataRenderer(options.jsonataClass);\n const nullToggler = createNullToggleRenderer();\n const multilineRenderer = createMultilineFieldRenderer(\n options.multilineClass,\n );\n const checkboxRenderer = createCheckboxRenderer(\n options.checkOptions ?? options.checkboxOptions,\n );\n const selectRenderer = createSelectRenderer(options.selectOptions);\n const radioRenderer = createRadioRenderer(\n options.radioOptions ?? options.checkOptions,\n );\n const checkListRenderer = createCheckListRenderer(\n options.checkListOptions ?? options.checkOptions,\n );\n const { inputClass, booleanOptions, optionRenderer, displayOnlyClass } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n const arrayRenderer = createDefaultArrayDataRenderer(options.arrayOptions);\n\n return createDataRenderer((props, renderers) => {\n const { field } = props;\n const fieldType = field.type;\n const renderOptions = props.renderOptions;\n let renderType = renderOptions.type;\n if (\n field.collection &&\n props.elementIndex == null &&\n (renderType == DataRenderType.Standard ||\n renderType == DataRenderType.Array)\n ) {\n return arrayRenderer.render(props, renderers);\n }\n if (fieldType === FieldType.Compound) {\n const groupOptions = (isDataGroupRenderer(renderOptions)\n ? renderOptions.groupOptions\n : undefined) ?? { type: \"Standard\", hideTitle: true };\n return renderers.renderGroup({ ...props, renderOptions: groupOptions });\n }\n if (fieldType == FieldType.Any) return <>No control for Any</>;\n if (isDisplayOnlyRenderer(renderOptions))\n return (p) => ({\n ...p,\n className: displayOnlyClass,\n children: (\n <DefaultDisplayOnly\n field={props.field}\n schemaInterface={props.dataContext.schemaInterface}\n control={props.control}\n className={props.className}\n style={props.style}\n emptyText={renderOptions.emptyText}\n />\n ),\n });\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, renderers);\n }\n switch (renderType) {\n case DataRenderType.NullToggle:\n return nullToggler.render(props, renderers);\n case DataRenderType.CheckList:\n return checkListRenderer.render(props, renderers);\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, renderers);\n case DataRenderType.Radio:\n return radioRenderer.render(props, renderers);\n case DataRenderType.Checkbox:\n return checkboxRenderer.render(props, renderers);\n case DataRenderType.Jsonata:\n return jsonataRenderer.render(props, renderers);\n }\n if (isTextfieldRenderer(renderOptions) && renderOptions.multiline)\n return multilineRenderer.render(props, renderers);\n const placeholder = isTextfieldRenderer(renderOptions)\n ? renderOptions.placeholder\n : undefined;\n return (\n <ControlInput\n className={rendererClass(props.className, inputClass)}\n style={props.style}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n placeholder={placeholder ?? undefined}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport interface DefaultAccordionRendererOptions {\n className?: string;\n titleClass?: string;\n togglerClass?: string;\n iconOpenClass?: string;\n iconClosedClass?: string;\n renderTitle?: (\n title: string | undefined,\n current: Control<boolean>,\n ) => ReactNode;\n renderToggler?: (current: Control<boolean>, title: ReactNode) => ReactNode;\n}\n\nexport interface DefaultAdornmentRendererOptions {\n accordion?: DefaultAccordionRendererOptions;\n}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return {\n type: \"adornment\",\n render: ({ adornment, designMode, dataContext, useExpr }, renderers) => ({\n apply: (rl) => {\n if (isSetFieldAdornment(adornment) && useExpr) {\n const hook = useExpr(adornment.expression, (x) => x);\n const dynamicHooks = useDynamicHooks({ value: hook });\n const SetFieldWrapper = useCallback(setFieldWrapper, [dynamicHooks]);\n return wrapLayout((x) => (\n <SetFieldWrapper\n children={x}\n parentContext={dataContext}\n adornment={adornment}\n />\n ))(rl);\n\n function setFieldWrapper({\n children,\n adornment,\n parentContext,\n }: {\n children: ReactNode;\n adornment: SetFieldAdornment;\n parentContext: ControlDataContext;\n }) {\n const { value } = dynamicHooks(parentContext);\n const fieldNode = schemaDataForFieldRef(\n adornment.field,\n parentContext.parentNode,\n );\n const otherField = fieldNode.control;\n const always = !adornment.defaultOnly;\n useControlEffect(\n () => [value?.value, otherField?.value == null],\n ([v]) => {\n otherField?.setValue((x) => (always || x == null ? v : x));\n },\n true,\n );\n return children;\n }\n }\n if (isIconAdornment(adornment)) {\n return appendMarkupAt(\n adornment.placement ?? AdornmentPlacement.ControlStart,\n <i className={adornment.iconClass} />,\n )(rl);\n }\n if (isAccordionAdornment(adornment)) {\n return wrapLayout((x) => (\n <DefaultAccordion\n renderers={renderers}\n children={x}\n accordion={adornment}\n contentStyle={rl.style}\n contentClassName={rl.className}\n designMode={designMode}\n {...options.accordion}\n />\n ))(rl);\n }\n },\n priority: 0,\n adornment,\n }),\n };\n}\n\nfunction createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n const layout = renderLayoutParts(\n {\n ...props,\n className: rendererClass(props.className, options.className),\n },\n renderers,\n );\n return {\n children: layout.wrapLayout(\n <DefaultLayout layout={layout} {...options} />,\n ),\n className: layout.className,\n style: layout.style,\n divRef: (e) =>\n e && props.errorControl\n ? (props.errorControl.meta.scrollElement = e)\n : undefined,\n };\n });\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n controlLabelClass?: string;\n requiredElement?: ReactNode;\n labelContainer?: (children: ReactElement) => ReactElement;\n}\n\nexport function createDefaultLabelRenderer(\n options?: DefaultLabelRendererOptions,\n): LabelRendererRegistration {\n const {\n className,\n groupLabelClass,\n controlLabelClass,\n requiredElement,\n labelContainer,\n } = {\n requiredElement: <span> *</span>,\n labelContainer: (c: ReactElement) => c,\n ...options,\n };\n return {\n render: (props, labelStart, labelEnd, renderers) => {\n if (props.type == LabelType.Text) return props.label;\n return labelContainer(\n <>\n <label\n htmlFor={props.forId}\n className={rendererClass(\n props.className,\n clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n props.type === LabelType.Control && controlLabelClass,\n ),\n )}\n >\n {labelStart}\n {renderers.renderLabelText(props.label)}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>,\n );\n },\n type: \"label\",\n };\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createButtonActionRenderer(undefined, options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n\nexport function createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n","import React from \"react\";\n\nimport { DefaultRendererOptions } from \"./createDefaultRenderers\";\n\nexport const defaultTailwindTheme = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"flex flex-col gap-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n flexClassName: \"gap-2\",\n },\n action: {\n className: \"bg-primary-500 rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n data: {\n displayOnlyClass: \"flex flex-row items-center gap-2\",\n checkOptions: {\n className: \"flex items-center gap-4\",\n entryClass: \"flex gap-1 items-center\",\n },\n selectOptions: { emptyText: \"<select>\" },\n multilineClass: \"border p-2 outline-0 whitespace-pre\",\n },\n adornment: {\n accordion: {\n className: \"flex items-center gap-2 my-2\",\n titleClass: \"cursor-pointer\",\n iconOpenClass: \"fa fa-chevron-up\",\n iconClosedClass: \"fa fa-chevron-down\",\n },\n },\n} satisfies DefaultRendererOptions;\n"],"names":["_excluded","createDefaultDisplayRenderer","options","render","props","React","createElement","DefaultDisplay","_extends","type","_ref","_effect","_useComponentTracking","data","display","className","style","_objectWithoutPropertiesLoose","DisplayDataType","Icon","clsx","getOverrideClass","value","iconClass","Text","rendererClass","textClassName","coerceToString","text","Html","htmlClassName","dangerouslySetInnerHTML","__html","html","Custom","customId","ControlInput","control","convert","_formControlProps","formControlProps","inputProps","_excluded2","textValue","useControl","toText","useControlEffect","v","onChange","e","target","converted","undefined","createInputConversion","ft","FieldType","String","a","Bool","_a$toString","toString","Int","parseInt","DateTime","Date","Time","l","length","substring","Double","parseFloat","createSelectRenderer","createDataRenderer","asArray","_props$options","SelectDataRenderer","state","id","readonly","required","emptyText","requiredText","createSelectConversion","field","disabled","showEmpty","useState","optionStringMap","useMemo","Object","fromEntries","map","x","optionGroups","Set","filter","group","keys","key","label","o","renderOption","i","name","createRadioRenderer","p","CheckButtons","isChecked","setChecked","c","entryAdornment","fieldOptionAdornment","renderType","DataRenderType","Radio","createCheckListRenderer","Array","isArray","includes","checked","setValue","setIncluded","collection","CheckList","labelClass","checkClass","entryClass","uniqueId","RenderArrayElements","array","useComputed","Fragment","readOnly","htmlFor","elem","included","createCheckboxRenderer","renderer","children","Fcheckbox","renderLabel","Checkbox","DefaultLayout","errorClass","renderError","layout","controlEnd","controlStart","errorControl","touched","error","DefaultDisplayOnly","schemaInterface","isEmptyValue","createDefaultVisibilityRenderer","createVisibilityRenderer","DefaultVisibility","visibility","divRef","useEffect","ex","visible","showing","ref","createJsonataRenderer","JsonataRenderer","renderOptions","dataNode","dataContext","Jsonata","sdn","parentNode","bindings","formData","dataPath","getJsonPath","rendered","useJsonataExpression","expression","getRootDataNode","createNullToggleRenderer","renderers","_control$meta","_control$meta$_nullCo","nullControl","meta","newControl","current","newLayout","renderData","NullWrapper","defaultValue","definition","r","_nullControl$meta$non","createDefaultArrayDataRenderer","defaultActions","renderChild","designMode","addText","noAdd","noRemove","removeText","mergeObjects","isArrayRenderer","childOptions","arrayProps","createArrayActions","renderElement","_control$elements$i$u","_control$elements","elements","ControlDefinitionType","Data","Standard","hideTitle","elementIndex","getLengthRestrictions","renderArray","createDefaultArrayRenderer","renderAction","DefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","arrayControl","addAction","removeAction","applyArrayLengthRestrictions","RenderElements","_","DefaultAccordion","accordion","contentStyle","contentClassName","iconOpenClass","iconClosedClass","renderTitle","t","renderToggler","titleClass","open","defaultExpanded","isOpen","fullContentStyle","title","renderLabelText","toggler","onClick","MultilineTextfield","codeRef","useRef","textContent","contentEditable","onInput","currentTarget","createButtonActionRenderer","actionId","createActionRenderer","actionText","actionData","_options$renderConten","renderContent","createDefaultGroupRenderer","gridStyles","defaultGridStyles","defaultGridColumns","gridClassName","standardClassName","flexClassName","defaultFlexGap","columns","gridTemplateColumns","childDefinitions","gcn","isGridRenderer","isFlexRenderer","gap","flexDirection","direction","flexStyles","cp","DefaultBoolOptions","createDefaultDataRenderer","_options$checkOptions","_options$radioOptions","_options$checkListOpt","jsonataRenderer","jsonataClass","nullToggler","multilineRenderer","multilineClass","checkboxRenderer","checkOptions","checkboxOptions","selectRenderer","selectOptions","radioRenderer","radioOptions","checkListRenderer","checkListOptions","inputClass","booleanOptions","optionRenderer","displayOnlyClass","arrayRenderer","arrayOptions","fieldType","Compound","groupOptions","isDataGroupRenderer","renderGroup","Any","isDisplayOnlyRenderer","hasOptions","NullToggle","Dropdown","isTextfieldRenderer","multiline","placeholder","createDefaultAdornmentRenderer","adornment","useExpr","apply","rl","isSetFieldAdornment","hook","dynamicHooks","useDynamicHooks","SetFieldWrapper","useCallback","setFieldWrapper","wrapLayout","parentContext","otherField","schemaDataForFieldRef","always","defaultOnly","_adornment$placement","isIconAdornment","appendMarkupAt","placement","AdornmentPlacement","ControlStart","isAccordionAdornment","priority","createDefaultLayoutRenderer","createLayoutRenderer","renderLayoutParts","scrollElement","createDefaultLabelRenderer","groupLabelClass","controlLabelClass","requiredElement","labelContainer","labelStart","labelEnd","LabelType","forId","Group","Control","createDefaultRenderers","action","renderLayout","createClassStyledRenderers","defaultTailwindTheme"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/components/DefaultDisplay.tsx","../src/components/ControlInput.tsx","../src/components/SelectDataRenderer.tsx","../src/components/CheckRenderer.tsx","../src/components/DefaultLayout.tsx","../src/components/DefaultDisplayOnly.tsx","../src/components/DefaultVisibility.tsx","../src/components/JsonataRenderer.tsx","../src/components/NullToggle.tsx","../src/components/DefaultArrayRenderer.tsx","../src/components/DefaultAccordion.tsx","../src/components/MultilineTextfield.tsx","../src/createDefaultRenderers.tsx","../src/tailwind.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport {\n coerceToString,\n CustomDisplay,\n DisplayDataType,\n DisplayRendererProps,\n DisplayRendererRegistration,\n getOverrideClass,\n HtmlDisplay,\n IconDisplay,\n rendererClass,\n TextDisplay,\n} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\n\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n return {\n render: (props) => <DefaultDisplay {...options} {...props} />,\n type: \"display\",\n };\n}\n\nexport function DefaultDisplay({\n data,\n display,\n className,\n style,\n ...options\n}: DefaultDisplayRendererOptions & DisplayRendererProps) {\n switch (data.type) {\n case DisplayDataType.Icon:\n return (\n <i\n style={style}\n className={clsx(\n getOverrideClass(className),\n display ? display.value : (data as IconDisplay).iconClass,\n )}\n />\n );\n case DisplayDataType.Text:\n return (\n <div\n style={style}\n className={rendererClass(className, options.textClassName)}\n >\n {display ? coerceToString(display.value) : (data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n style={style}\n className={rendererClass(className, options.htmlClassName)}\n dangerouslySetInnerHTML={{\n __html: display\n ? coerceToString(display.value)\n : (data as HtmlDisplay).html,\n }}\n />\n );\n case DisplayDataType.Custom:\n return (\n <div>\n Custom display placeholder: {(data as CustomDisplay).customId}\n </div>\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n}\n","import React from \"react\";\nimport {\n Control,\n formControlProps,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {FieldType} from \"@react-typed-forms/schemas\";\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n const textValue = useControl(() => toText(value));\n useControlEffect(\n () => control.value,\n (v) => (textValue.value = toText(v)),\n );\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={textValue.value}\n onChange={(e) => {\n textValue.value = e.target.value;\n const converted = convert[1](e.target.value);\n if (converted !== undefined) control.value = converted;\n }}\n {...props}\n />\n );\n\n function toText(value: any) {\n return value == null ? \"\" : convert[2](value);\n }\n}\n\ntype InputConversion = [\n string,\n (s: string) => any,\n (a: any) => string | number,\n];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\n \"text\",\n (a) => (a === \"true\" ? true : a === \"false\" ? false : undefined),\n (a) => a?.toString() ?? \"\",\n ];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.DateTime:\n return [\"datetime-local\", (a) => (!a ? null : a), (a) => a];\n case FieldType.Date:\n return [\"date\", (a) => (!a ? null : a), (a) => a];\n case FieldType.Time:\n return [\n \"time\",\n (a) => {\n const l = a.length;\n if (l === 5) return a + \":00\";\n if (l === 8) return a;\n return undefined;\n },\n (a) => (a ? a.substring(0, 5) : \"\"),\n ];\n case FieldType.Double:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseFloat(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React, { useMemo, useState } from \"react\";\nimport {\n createDataRenderer,\n FieldOption,\n FieldType,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={rendererClass(props.className, options.className)}\n state={props.control}\n id={props.id}\n readonly={props.readonly}\n options={props.options ?? []}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\nexport interface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: FieldOption[];\n emptyText?: string;\n requiredText?: string;\n readonly: boolean;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n readonly,\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n const optionGroups = useMemo(\n () => new Set(options.filter((x) => x.group).map((x) => x.group!)),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled || readonly}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {[...optionGroups.keys()].map((x) => (\n <optgroup key={x} label={x}>\n {options.filter((o) => o.group === x).map(renderOption)}\n </optgroup>\n ))}\n {options.filter((x) => !x.group).map(renderOption)}\n </select>\n );\n\n function renderOption(x: FieldOption, i: number) {\n return (\n <option key={i} value={convert(x.value)} disabled={!!x.disabled}>\n {x.name}\n </option>\n );\n }\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n","import {\n Control,\n Fcheckbox,\n RenderArrayElements,\n useComputed,\n} from \"@react-typed-forms/core\";\nimport React, { ReactNode } from \"react\";\nimport {\n createDataRenderer,\n DataRenderType,\n FieldOption,\n fieldOptionAdornment,\n rendererClass\n} from \"@react-typed-forms/schemas\";\n\nexport interface CheckRendererOptions {\n className?: string;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n}\nexport function createRadioRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n {...options}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => control.value == o.value}\n setChecked={(c, o) => (c.value = o.value)}\n control={p.control}\n type=\"radio\"\n entryAdornment={fieldOptionAdornment(p)}\n />\n ),\n {\n renderType: DataRenderType.Radio,\n },\n );\n}\n\nexport function createCheckListRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n {...options}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => {\n const v = control.value;\n return Array.isArray(v) ? v.includes(o.value) : false;\n }}\n setChecked={(c, o, checked) => {\n c.setValue((x) => setIncluded(x ?? [], o.value, checked));\n }}\n control={p.control}\n type=\"checkbox\"\n entryAdornment={fieldOptionAdornment(p)}\n />\n ),\n {\n collection: true,\n renderType: DataRenderType.CheckList,\n },\n );\n}\n\nexport interface CheckButtonsProps {\n id?: string;\n className?: string;\n options?: FieldOption[] | null;\n control: Control<any>;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n readonly?: boolean;\n type: \"checkbox\" | \"radio\";\n isChecked: (c: Control<any>, o: FieldOption) => boolean;\n setChecked: (c: Control<any>, o: FieldOption, checked: boolean) => void;\n entryAdornment?: (c: FieldOption, i: number, selected: boolean) => ReactNode;\n}\n\nexport function CheckButtons({\n control,\n options,\n labelClass,\n checkClass,\n readonly,\n entryClass,\n className,\n id,\n type,\n isChecked,\n setChecked,\n entryAdornment,\n}: CheckButtonsProps) {\n const { disabled } = control;\n const name = \"r\" + control.uniqueId;\n return (\n <div className={className} id={id}>\n <RenderArrayElements array={options?.filter((x) => x.value != null)}>\n {(o, i) => {\n const checked = useComputed(() => isChecked(control, o)).value;\n return (\n <>\n <div key={i} className={entryClass}>\n <input\n id={name + \"_\" + i}\n className={checkClass}\n type={type}\n name={name}\n readOnly={readonly}\n disabled={disabled}\n checked={checked}\n onChange={(x) => {\n !readonly && setChecked(control, o, x.target.checked);\n }}\n />\n <label className={labelClass} htmlFor={name + \"_\" + i}>\n {o.name}\n </label>\n </div>\n {entryAdornment?.(o, i, checked)}\n </>\n );\n }}\n </RenderArrayElements>\n </div>\n );\n}\n\nexport function setIncluded<A>(array: A[], elem: A, included: boolean): A[] {\n const already = array.includes(elem);\n if (included === already) {\n return array;\n }\n if (included) {\n return [...array, elem];\n }\n return array.filter((e) => e !== elem);\n}\n\nexport function createCheckboxRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (props, renderer) => (p) => ({\n ...p,\n label: undefined,\n children: (\n <div className={rendererClass(props.className, options.entryClass)}>\n <Fcheckbox\n id={props.id}\n control={props.control}\n style={props.style}\n className={options.checkClass}\n />\n {p.label && renderer.renderLabel(p.label, undefined, undefined)}\n </div>\n ),\n }),\n { renderType: DataRenderType.Checkbox },\n );\n}\n","import React, { ReactNode } from \"react\";\nimport {RenderedLayout} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n renderError?: (errorText: string | null | undefined) => ReactNode;\n}\n\nexport function DefaultLayout({\n errorClass,\n renderError = (e) => e && <div className={errorClass}>{e}</div>,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n return (\n <>\n {label}\n {controlStart}\n {children}\n {renderError(errorText)}\n {controlEnd}\n </>\n );\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport {\n rendererClass,\n SchemaField,\n SchemaInterface,\n} from \"@react-typed-forms/schemas\";\n\nexport function DefaultDisplayOnly({\n control,\n className,\n emptyText,\n schemaInterface,\n field,\n style,\n}: {\n control: Control<any>;\n field: SchemaField;\n schemaInterface: SchemaInterface;\n className?: string | null;\n style?: React.CSSProperties;\n emptyText?: string | null;\n}) {\n const v = control.value;\n const text =\n (schemaInterface.isEmptyValue(field, v)\n ? emptyText\n : schemaInterface.textValue(field, v)) ?? \"\";\n return (\n <div style={style} className={rendererClass(className)}>\n {text}\n </div>\n );\n}\n","import React, { useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport {\n createVisibilityRenderer,\n VisibilityRendererProps,\n} from \"@react-typed-forms/schemas\";\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((props) => <DefaultVisibility {...props} />);\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n className,\n style,\n divRef,\n}: VisibilityRendererProps) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? (\n <div className={clsx(className)} style={style} ref={divRef}>\n {children}\n </div>\n ) : (\n <></>\n );\n}\n","import { Control, useComputed } from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport {\n coerceToString,\n ControlDataContext,\n createDataRenderer,\n DataRenderType,\n getJsonPath,\n getRootDataNode,\n JsonataRenderOptions,\n rendererClass,\n SchemaDataNode,\n useJsonataExpression,\n} from \"@react-typed-forms/schemas\";\n\nexport function createJsonataRenderer(className?: string) {\n return createDataRenderer(\n (p) => (\n <JsonataRenderer\n renderOptions={p.renderOptions as JsonataRenderOptions}\n className={rendererClass(p.className, className)}\n dataNode={p.dataNode}\n dataContext={p.dataContext}\n control={p.control}\n readonly={p.readonly}\n />\n ),\n { renderType: DataRenderType.Jsonata },\n );\n}\n\nexport function JsonataRenderer({\n control,\n renderOptions,\n readonly,\n className,\n dataContext,\n dataNode,\n}: {\n control: Control<any>;\n renderOptions: JsonataRenderOptions;\n className?: string;\n dataContext: ControlDataContext;\n dataNode: SchemaDataNode;\n readonly: boolean;\n}) {\n const sdn = dataNode.elementIndex != null ? dataNode : dataContext.parentNode;\n const bindings = useComputed(() => ({\n value: control.value,\n readonly,\n disabled: control.disabled,\n formData: dataContext.formData,\n dataPath: getJsonPath(dataNode),\n }));\n const rendered = useJsonataExpression(\n renderOptions.expression,\n getRootDataNode(sdn).control!,\n getJsonPath(sdn),\n bindings,\n coerceToString,\n );\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: rendered.value }}\n />\n );\n}\n","import { Control, newControl, useControlEffect } from \"@react-typed-forms/core\";\nimport React, { ReactNode } from \"react\";\nimport {\n createDataRenderer,\n DataRenderType,\n FieldType,\n} from \"@react-typed-forms/schemas\";\n\nexport function createNullToggleRenderer() {\n return createDataRenderer(\n ({ control, field, renderOptions, ...props }, renderers) => {\n const nullControl = (control.meta[\"nullControl\"] ??= newControl(\n control.current.value != null,\n ));\n return (layout) => {\n const newLayout = renderers.renderData({\n ...props,\n control: nullControl,\n field: { ...field, type: FieldType.Bool },\n renderOptions: { type: DataRenderType.Checkbox },\n })(layout);\n return {\n ...newLayout,\n children: (\n <NullWrapper\n control={control}\n nullControl={nullControl}\n children={newLayout.children}\n readonly={props.readonly}\n defaultValue={props.definition.defaultValue}\n />\n ),\n };\n };\n },\n );\n}\n\nfunction NullWrapper({\n children,\n nullControl,\n control,\n defaultValue,\n readonly,\n}: {\n control: Control<any>;\n nullControl: Control<boolean>;\n children: ReactNode;\n readonly: boolean;\n defaultValue: any;\n}) {\n useControlEffect(\n () => readonly,\n (r) => (nullControl.disabled = r),\n true,\n );\n useControlEffect(\n () => nullControl.value,\n (e) => {\n if (e) {\n control.value = nullControl.meta[\"nonNullValue\"] ?? defaultValue;\n } else {\n nullControl.meta[\"nonNullValue\"] = control.value;\n control.value = null;\n }\n },\n );\n return children;\n}\n","import clsx from \"clsx\";\nimport React, { Fragment, ReactNode } from \"react\";\nimport { RenderElements } from \"@react-typed-forms/core\";\nimport {\n ActionRendererProps,\n applyArrayLengthRestrictions,\n ArrayActionOptions,\n ArrayRendererProps,\n ArrayRendererRegistration,\n ArrayRenderOptions,\n ControlDefinitionType,\n createArrayActions,\n createDataRenderer,\n DataControlDefinition,\n DataRendererRegistration,\n DataRenderType,\n getLengthRestrictions,\n isArrayRenderer,\n mergeObjects,\n} from \"@react-typed-forms/schemas\";\n\nexport function createDefaultArrayDataRenderer(\n defaultActions?: ArrayActionOptions,\n): DataRendererRegistration {\n return createDataRenderer(\n (\n {\n definition,\n control,\n required,\n field,\n renderChild,\n className,\n style,\n renderOptions,\n readonly,\n designMode,\n },\n renderers,\n ) => {\n const { addText, noAdd, noRemove, noReorder, removeText } = mergeObjects(\n isArrayRenderer(renderOptions)\n ? renderOptions\n : ({} as ArrayRenderOptions),\n defaultActions as ArrayRenderOptions,\n );\n const childOptions = isArrayRenderer(renderOptions)\n ? renderOptions.childOptions\n : undefined;\n\n const arrayProps = {\n ...createArrayActions(control, field, {\n addText,\n removeText,\n noAdd,\n noRemove,\n readonly,\n disabled: control.disabled,\n designMode,\n }),\n required,\n renderElement: (i) =>\n renderChild(\n control.elements?.[i].uniqueId ?? i,\n {\n type: ControlDefinitionType.Data,\n field: definition.field,\n children: definition.children,\n renderOptions: childOptions ?? { type: DataRenderType.Standard },\n hideTitle: true,\n } as DataControlDefinition,\n { elementIndex: i },\n ),\n className: className ? className : undefined,\n style,\n ...getLengthRestrictions(definition),\n } satisfies ArrayRendererProps;\n return renderers.renderArray(arrayProps);\n },\n { renderType: DataRenderType.Array, collection: true },\n );\n}\n\nexport interface DefaultArrayRendererOptions extends ArrayActionOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n return {\n render: (props, { renderAction }) => (\n <DefaultArrayRenderer\n {...props}\n {...options}\n renderAction={renderAction}\n />\n ),\n type: \"array\",\n };\n}\n\nexport interface DefaultArrayRendererProps\n extends DefaultArrayRendererOptions,\n ArrayRendererProps {\n renderAction: (props: ActionRendererProps) => ReactNode;\n}\n\nexport function DefaultArrayRenderer(props: DefaultArrayRendererProps) {\n const {\n renderElement,\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n arrayControl,\n renderAction,\n style,\n } = props;\n const { addAction, removeAction } = applyArrayLengthRestrictions(props);\n return (\n <div style={style}>\n <div className={clsx(className, removeAction && removableClass)}>\n <RenderElements control={arrayControl}>\n {(_, x) =>\n removeAction ? (\n <>\n <div className={clsx(childClass, removableChildClass)}>\n {renderElement(x)}\n </div>\n <div className={removeActionClass}>\n {renderAction(removeAction(x))}\n </div>\n </>\n ) : (\n <div className={childClass}>{renderElement(x)}</div>\n )\n }\n </RenderElements>\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n}\n","import React, { CSSProperties, Fragment, ReactElement } from \"react\";\nimport { useControl } from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\nimport { DefaultAccordionRendererOptions } from \"../createDefaultRenderers\";\nimport { AccordionAdornment, FormRenderer } from \"@react-typed-forms/schemas\";\n\nexport function DefaultAccordion({\n children,\n accordion,\n contentStyle,\n contentClassName,\n designMode,\n iconOpenClass,\n iconClosedClass,\n className,\n renderTitle = (t) => t,\n renderToggler,\n renderers,\n titleClass,\n}: {\n children: ReactElement;\n accordion: Partial<AccordionAdornment>;\n contentStyle?: CSSProperties;\n contentClassName?: string;\n designMode?: boolean;\n renderers: FormRenderer;\n} & DefaultAccordionRendererOptions) {\n const open = useControl(!!accordion.defaultExpanded);\n const isOpen = open.value;\n const fullContentStyle =\n isOpen || designMode ? contentStyle : { ...contentStyle, display: \"none\" };\n const title = renderers.renderLabelText(renderTitle(accordion.title, open));\n const toggler = renderToggler ? (\n renderToggler(open, title)\n ) : (\n <button className={className} onClick={() => open.setValue((x) => !x)}>\n <label className={titleClass}>{title}</label>\n <i className={clsx(isOpen ? iconOpenClass : iconClosedClass)} />\n </button>\n );\n\n return (\n <>\n {toggler}\n <div style={fullContentStyle} className={contentClassName}>\n {children}\n </div>\n </>\n );\n}\n","import React, { useRef } from \"react\";\nimport { useControlEffect } from \"@react-typed-forms/core\";\nimport {\n createDataRenderer,\n DataRendererProps,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\n\nexport function createMultilineFieldRenderer(className?: string) {\n return createDataRenderer((p) => (\n <MultilineTextfield\n {...p}\n className={rendererClass(p.className, className)}\n />\n ));\n}\n\nexport function MultilineTextfield({ control, className }: DataRendererProps) {\n const codeRef = useRef<HTMLElement | null>(null);\n useControlEffect(\n () => control.value,\n (v) => {\n const c = codeRef.current;\n if (c && c.textContent !== v) {\n c.textContent = v;\n }\n },\n true,\n );\n return (\n <code\n contentEditable={!control.disabled}\n className={className}\n onInput={(t) => (control.value = t.currentTarget.textContent)}\n ref={codeRef}\n />\n );\n}\n","import {\n createDefaultDisplayRenderer,\n DefaultDisplayRendererOptions,\n} from \"./components/DefaultDisplay\";\nimport {\n DefaultLayout,\n DefaultLayoutRendererOptions,\n} from \"./components/DefaultLayout\";\nimport { createDefaultVisibilityRenderer } from \"./components/DefaultVisibility\";\nimport React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useCallback,\n} from \"react\";\nimport clsx from \"clsx\";\nimport {\n createSelectRenderer,\n SelectRendererOptions,\n} from \"./components/SelectDataRenderer\";\nimport { DefaultDisplayOnly } from \"./components/DefaultDisplayOnly\";\nimport { Control, useControlEffect } from \"@react-typed-forms/core\";\nimport { ControlInput, createInputConversion } from \"./components/ControlInput\";\nimport {\n createDefaultArrayDataRenderer,\n createDefaultArrayRenderer,\n DefaultArrayRendererOptions,\n} from \"./components/DefaultArrayRenderer\";\nimport {\n CheckRendererOptions,\n createCheckboxRenderer,\n createCheckListRenderer,\n createRadioRenderer,\n} from \"./components/CheckRenderer\";\nimport { DefaultAccordion } from \"./components/DefaultAccordion\";\nimport { createNullToggleRenderer } from \"./components/NullToggle\";\nimport { createMultilineFieldRenderer } from \"./components/MultilineTextfield\";\nimport { createJsonataRenderer } from \"./components/JsonataRenderer\";\nimport {\n ActionRendererProps,\n ActionRendererRegistration,\n AdornmentPlacement,\n AdornmentRendererRegistration,\n appendMarkupAt,\n ArrayActionOptions,\n ControlDataContext,\n ControlLayoutProps,\n createActionRenderer,\n createDataRenderer,\n createLayoutRenderer,\n DataRendererRegistration,\n DataRenderType,\n DefaultRenderers,\n FieldOption,\n FieldType,\n FlexRenderer,\n GridRenderer,\n GroupRendererProps,\n GroupRendererRegistration,\n hasOptions,\n isAccordionAdornment,\n isDataGroupRenderer,\n isDisplayOnlyRenderer,\n isFlexRenderer,\n isGridRenderer,\n isIconAdornment,\n isSetFieldAdornment,\n isTextfieldRenderer,\n LabelRendererRegistration,\n LabelType,\n rendererClass,\n renderLayoutParts,\n schemaDataForFieldRef,\n SetFieldAdornment,\n useDynamicHooks,\n wrapLayout,\n} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\nexport interface DefaultActionRendererOptions {\n className?: string;\n renderContent?: (\n actionText: string,\n actionId: string,\n actionData: any,\n ) => ReactNode;\n}\n\nexport function createButtonActionRenderer(\n actionId: string | string[] | undefined,\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n return createActionRenderer(\n actionId,\n ({\n onClick,\n actionText,\n className,\n style,\n actionId,\n actionData,\n }: ActionRendererProps) => {\n return (\n <button\n className={rendererClass(className, options.className)}\n style={style}\n onClick={onClick}\n >\n {options.renderContent?.(actionText, actionId, actionData) ??\n actionText}\n </button>\n );\n },\n );\n}\n\nexport interface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n flexClassName?: string;\n defaultFlexGap?: string;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n flexClassName,\n defaultFlexGap,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function flexStyles(options: FlexRenderer): StyleProps {\n return {\n className: flexClassName,\n style: {\n display: \"flex\",\n gap: options.gap ? options.gap : defaultFlexGap,\n flexDirection: options.direction\n ? (options.direction as any)\n : undefined,\n },\n };\n }\n\n function render(props: GroupRendererProps) {\n const { renderChild, renderOptions, childDefinitions } = props;\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : isFlexRenderer(renderOptions)\n ? flexStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n\n return (cp: ControlLayoutProps) => {\n return {\n ...cp,\n children: (\n <div\n className={rendererClass(props.className, clsx(className, gcn))}\n style={style}\n >\n {childDefinitions?.map((c, i) => renderChild(i, c))}\n </div>\n ),\n };\n };\n }\n\n return { type: \"group\", render };\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\n\nexport interface DefaultDataRendererOptions {\n inputClass?: string;\n displayOnlyClass?: string;\n selectOptions?: SelectRendererOptions;\n checkboxOptions?: CheckRendererOptions;\n checkOptions?: CheckRendererOptions;\n radioOptions?: CheckRendererOptions;\n checkListOptions?: CheckRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n multilineClass?: string;\n jsonataClass?: string;\n arrayOptions?: ArrayActionOptions;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const jsonataRenderer = createJsonataRenderer(options.jsonataClass);\n const nullToggler = createNullToggleRenderer();\n const multilineRenderer = createMultilineFieldRenderer(\n options.multilineClass,\n );\n const checkboxRenderer = createCheckboxRenderer(\n options.checkOptions ?? options.checkboxOptions,\n );\n const selectRenderer = createSelectRenderer(options.selectOptions);\n const radioRenderer = createRadioRenderer(\n options.radioOptions ?? options.checkOptions,\n );\n const checkListRenderer = createCheckListRenderer(\n options.checkListOptions ?? options.checkOptions,\n );\n const { inputClass, booleanOptions, optionRenderer, displayOnlyClass } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n const arrayRenderer = createDefaultArrayDataRenderer(options.arrayOptions);\n\n return createDataRenderer((props, renderers) => {\n const { field } = props;\n const fieldType = field.type;\n const renderOptions = props.renderOptions;\n let renderType = renderOptions.type;\n if (\n field.collection &&\n props.elementIndex == null &&\n (renderType == DataRenderType.Standard ||\n renderType == DataRenderType.Array)\n ) {\n return arrayRenderer.render(props, renderers);\n }\n if (fieldType === FieldType.Compound) {\n const groupOptions = (isDataGroupRenderer(renderOptions)\n ? renderOptions.groupOptions\n : undefined) ?? { type: \"Standard\", hideTitle: true };\n return renderers.renderGroup({ ...props, renderOptions: groupOptions });\n }\n if (fieldType == FieldType.Any) return <>No control for Any</>;\n if (isDisplayOnlyRenderer(renderOptions))\n return (p) => ({\n ...p,\n className: displayOnlyClass,\n children: (\n <DefaultDisplayOnly\n field={props.field}\n schemaInterface={props.dataContext.schemaInterface}\n control={props.control}\n className={props.className}\n style={props.style}\n emptyText={renderOptions.emptyText}\n />\n ),\n });\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, renderers);\n }\n switch (renderType) {\n case DataRenderType.NullToggle:\n return nullToggler.render(props, renderers);\n case DataRenderType.CheckList:\n return checkListRenderer.render(props, renderers);\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, renderers);\n case DataRenderType.Radio:\n return radioRenderer.render(props, renderers);\n case DataRenderType.Checkbox:\n return checkboxRenderer.render(props, renderers);\n case DataRenderType.Jsonata:\n return jsonataRenderer.render(props, renderers);\n }\n if (isTextfieldRenderer(renderOptions) && renderOptions.multiline)\n return multilineRenderer.render(props, renderers);\n const placeholder = isTextfieldRenderer(renderOptions)\n ? renderOptions.placeholder\n : undefined;\n return (\n <ControlInput\n className={rendererClass(props.className, inputClass)}\n style={props.style}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n placeholder={placeholder ?? undefined}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport interface DefaultAccordionRendererOptions {\n className?: string;\n titleClass?: string;\n togglerClass?: string;\n iconOpenClass?: string;\n iconClosedClass?: string;\n renderTitle?: (\n title: string | undefined,\n current: Control<boolean>,\n ) => ReactNode;\n renderToggler?: (current: Control<boolean>, title: ReactNode) => ReactNode;\n}\n\nexport interface DefaultAdornmentRendererOptions {\n accordion?: DefaultAccordionRendererOptions;\n}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return {\n type: \"adornment\",\n render: ({ adornment, designMode, dataContext, useExpr }, renderers) => ({\n apply: (rl) => {\n if (isSetFieldAdornment(adornment) && useExpr) {\n const hook = useExpr(adornment.expression, (x) => x);\n const dynamicHooks = useDynamicHooks({ value: hook });\n const SetFieldWrapper = useCallback(setFieldWrapper, [dynamicHooks]);\n return wrapLayout((x) => (\n <SetFieldWrapper\n children={x}\n parentContext={dataContext}\n adornment={adornment}\n />\n ))(rl);\n\n function setFieldWrapper({\n children,\n adornment,\n parentContext,\n }: {\n children: ReactNode;\n adornment: SetFieldAdornment;\n parentContext: ControlDataContext;\n }) {\n const { value } = dynamicHooks(parentContext);\n const fieldNode = schemaDataForFieldRef(\n adornment.field,\n parentContext.parentNode,\n );\n const otherField = fieldNode.control;\n const always = !adornment.defaultOnly;\n useControlEffect(\n () => [value?.value, otherField?.value == null],\n ([v]) => {\n otherField?.setValue((x) => (always || x == null ? v : x));\n },\n true,\n );\n return children;\n }\n }\n if (isIconAdornment(adornment)) {\n return appendMarkupAt(\n adornment.placement ?? AdornmentPlacement.ControlStart,\n <i className={adornment.iconClass} />,\n )(rl);\n }\n if (isAccordionAdornment(adornment)) {\n return wrapLayout((x) => (\n <DefaultAccordion\n renderers={renderers}\n children={x}\n accordion={adornment}\n contentStyle={rl.style}\n contentClassName={rl.className}\n designMode={designMode}\n {...options.accordion}\n />\n ))(rl);\n }\n },\n priority: 0,\n adornment,\n }),\n };\n}\n\nfunction createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n const layout = renderLayoutParts(\n {\n ...props,\n className: rendererClass(props.className, options.className),\n },\n renderers,\n );\n return {\n children: layout.wrapLayout(\n <DefaultLayout layout={layout} {...options} />,\n ),\n className: layout.className,\n style: layout.style,\n divRef: (e) =>\n e && props.errorControl\n ? (props.errorControl.meta.scrollElement = e)\n : undefined,\n };\n });\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n controlLabelClass?: string;\n requiredElement?: ReactNode;\n labelContainer?: (children: ReactElement) => ReactElement;\n}\n\nexport function createDefaultLabelRenderer(\n options?: DefaultLabelRendererOptions,\n): LabelRendererRegistration {\n const {\n className,\n groupLabelClass,\n controlLabelClass,\n requiredElement,\n labelContainer,\n } = {\n requiredElement: <span> *</span>,\n labelContainer: (c: ReactElement) => c,\n ...options,\n };\n return {\n render: (props, labelStart, labelEnd, renderers) => {\n if (props.type == LabelType.Text) return props.label;\n return labelContainer(\n <>\n <label\n htmlFor={props.forId}\n className={rendererClass(\n props.className,\n clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n props.type === LabelType.Control && controlLabelClass,\n ),\n )}\n >\n {labelStart}\n {renderers.renderLabelText(props.label)}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>,\n );\n },\n type: \"label\",\n };\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createButtonActionRenderer(undefined, options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n\nexport function createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n","import React from \"react\";\n\nimport { DefaultRendererOptions } from \"./createDefaultRenderers\";\n\nexport const defaultTailwindTheme = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"flex flex-col gap-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n flexClassName: \"gap-2\",\n },\n action: {\n className: \"bg-primary-500 rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n data: {\n displayOnlyClass: \"flex flex-row items-center gap-2\",\n checkOptions: {\n className: \"flex items-center gap-4\",\n entryClass: \"flex gap-1 items-center\",\n },\n selectOptions: { emptyText: \"<select>\" },\n multilineClass: \"border p-2 outline-0 whitespace-pre\",\n },\n adornment: {\n accordion: {\n className: \"flex items-center gap-2 my-2\",\n titleClass: \"cursor-pointer\",\n iconOpenClass: \"fa fa-chevron-up\",\n iconClosedClass: \"fa fa-chevron-down\",\n },\n },\n} satisfies DefaultRendererOptions;\n"],"names":["_excluded","createDefaultDisplayRenderer","options","render","props","React","createElement","DefaultDisplay","_extends","type","_ref","_effect","_useComponentTracking","data","display","className","style","_objectWithoutPropertiesLoose","DisplayDataType","Icon","clsx","getOverrideClass","value","iconClass","Text","rendererClass","textClassName","coerceToString","text","Html","htmlClassName","dangerouslySetInnerHTML","__html","html","Custom","customId","ControlInput","control","convert","_formControlProps","formControlProps","inputProps","_excluded2","textValue","useControl","toText","useControlEffect","v","onChange","e","target","converted","undefined","createInputConversion","ft","FieldType","String","a","Bool","_a$toString","toString","Int","parseInt","DateTime","Date","Time","l","length","substring","Double","parseFloat","createSelectRenderer","createDataRenderer","asArray","_props$options","SelectDataRenderer","state","id","readonly","required","emptyText","requiredText","createSelectConversion","field","disabled","showEmpty","useState","optionStringMap","useMemo","Object","fromEntries","map","x","optionGroups","Set","filter","group","keys","key","label","o","renderOption","i","name","createRadioRenderer","p","CheckButtons","isChecked","setChecked","c","entryAdornment","fieldOptionAdornment","renderType","DataRenderType","Radio","createCheckListRenderer","Array","isArray","includes","checked","setValue","setIncluded","collection","CheckList","labelClass","checkClass","entryClass","uniqueId","RenderArrayElements","array","useComputed","Fragment","readOnly","htmlFor","elem","included","createCheckboxRenderer","renderer","children","Fcheckbox","renderLabel","Checkbox","DefaultLayout","errorClass","renderError","layout","controlEnd","controlStart","errorControl","touched","error","DefaultDisplayOnly","schemaInterface","isEmptyValue","createDefaultVisibilityRenderer","createVisibilityRenderer","DefaultVisibility","visibility","divRef","useEffect","ex","visible","showing","ref","createJsonataRenderer","JsonataRenderer","renderOptions","dataNode","dataContext","Jsonata","sdn","elementIndex","parentNode","bindings","formData","dataPath","getJsonPath","rendered","useJsonataExpression","expression","getRootDataNode","createNullToggleRenderer","renderers","_control$meta","_control$meta$_nullCo","nullControl","meta","newControl","current","newLayout","renderData","NullWrapper","defaultValue","definition","r","_nullControl$meta$non","createDefaultArrayDataRenderer","defaultActions","renderChild","designMode","addText","noAdd","noRemove","removeText","mergeObjects","isArrayRenderer","childOptions","arrayProps","createArrayActions","renderElement","_control$elements$i$u","_control$elements","elements","ControlDefinitionType","Data","Standard","hideTitle","getLengthRestrictions","renderArray","createDefaultArrayRenderer","renderAction","DefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","arrayControl","addAction","removeAction","applyArrayLengthRestrictions","RenderElements","_","DefaultAccordion","accordion","contentStyle","contentClassName","iconOpenClass","iconClosedClass","renderTitle","t","renderToggler","titleClass","open","defaultExpanded","isOpen","fullContentStyle","title","renderLabelText","toggler","onClick","MultilineTextfield","codeRef","useRef","textContent","contentEditable","onInput","currentTarget","createButtonActionRenderer","actionId","createActionRenderer","actionText","actionData","_options$renderConten","renderContent","createDefaultGroupRenderer","gridStyles","defaultGridStyles","defaultGridColumns","gridClassName","standardClassName","flexClassName","defaultFlexGap","columns","gridTemplateColumns","childDefinitions","gcn","isGridRenderer","isFlexRenderer","gap","flexDirection","direction","flexStyles","cp","DefaultBoolOptions","createDefaultDataRenderer","_options$checkOptions","_options$radioOptions","_options$checkListOpt","jsonataRenderer","jsonataClass","nullToggler","multilineRenderer","multilineClass","checkboxRenderer","checkOptions","checkboxOptions","selectRenderer","selectOptions","radioRenderer","radioOptions","checkListRenderer","checkListOptions","inputClass","booleanOptions","optionRenderer","displayOnlyClass","arrayRenderer","arrayOptions","fieldType","Compound","groupOptions","isDataGroupRenderer","renderGroup","Any","isDisplayOnlyRenderer","hasOptions","NullToggle","Dropdown","isTextfieldRenderer","multiline","placeholder","createDefaultAdornmentRenderer","adornment","useExpr","apply","rl","isSetFieldAdornment","hook","dynamicHooks","useDynamicHooks","SetFieldWrapper","useCallback","setFieldWrapper","wrapLayout","parentContext","otherField","schemaDataForFieldRef","always","defaultOnly","_adornment$placement","isIconAdornment","appendMarkupAt","placement","AdornmentPlacement","ControlStart","isAccordionAdornment","priority","createDefaultLayoutRenderer","createLayoutRenderer","renderLayoutParts","scrollElement","createDefaultLabelRenderer","groupLabelClass","controlLabelClass","requiredElement","labelContainer","labelStart","labelEnd","LabelType","forId","Group","Control","createDefaultRenderers","action","renderLayout","createClassStyledRenderers","defaultTailwindTheme"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-typed-forms/schemas-html",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "lib/index.cjs",