@axdspub/axiom-ui-forms 0.2.9 → 0.3.0

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.
Files changed (229) hide show
  1. package/README.md +272 -272
  2. package/library/axiom-ui-forms.d.ts +213 -77
  3. package/library/esm/_virtual/_commonjsHelpers.js +26 -1
  4. package/library/esm/_virtual/_commonjsHelpers.js.map +1 -1
  5. package/library/esm/_virtual/_freeGlobal.js +7 -0
  6. package/library/esm/_virtual/_freeGlobal.js.map +1 -0
  7. package/library/esm/_virtual/get.js +8 -0
  8. package/library/esm/_virtual/get.js.map +1 -0
  9. package/library/esm/_virtual/index10.js +2 -2
  10. package/library/esm/_virtual/index11.js +2 -2
  11. package/library/esm/_virtual/index12.js +2 -6
  12. package/library/esm/_virtual/index12.js.map +1 -1
  13. package/library/esm/_virtual/index13.js +2 -6
  14. package/library/esm/_virtual/index13.js.map +1 -1
  15. package/library/esm/_virtual/index3.js +2 -2
  16. package/library/esm/_virtual/index3.js.map +1 -1
  17. package/library/esm/_virtual/index5.js +2 -2
  18. package/library/esm/_virtual/index6.js +2 -2
  19. package/library/esm/_virtual/index6.js.map +1 -1
  20. package/library/esm/_virtual/index7.js +6 -2
  21. package/library/esm/_virtual/index7.js.map +1 -1
  22. package/library/esm/_virtual/index8.js +6 -2
  23. package/library/esm/_virtual/index8.js.map +1 -1
  24. package/library/esm/_virtual/index9.js +2 -2
  25. package/library/esm/_virtual/set.js +8 -0
  26. package/library/esm/_virtual/set.js.map +1 -0
  27. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js +1 -1
  28. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -1
  29. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +23 -1
  30. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
  31. package/library/esm/node_modules/ajv/dist/compile/codegen/index.js +1 -1
  32. package/library/esm/node_modules/ajv/dist/compile/index.js +1 -1
  33. package/library/esm/node_modules/ajv/dist/compile/validate/index.js +1 -1
  34. package/library/esm/node_modules/ajv/dist/vocabularies/applicator/index.js +1 -1
  35. package/library/esm/node_modules/ajv/dist/vocabularies/core/index.js +1 -1
  36. package/library/esm/node_modules/ajv/dist/vocabularies/format/index.js +1 -1
  37. package/library/esm/node_modules/ajv/dist/vocabularies/validation/index.js +1 -1
  38. package/library/esm/node_modules/hast-util-to-jsx-runtime/lib/index.js +1 -1
  39. package/library/esm/node_modules/jotai/esm/react.js +135 -0
  40. package/library/esm/node_modules/jotai/esm/react.js.map +1 -0
  41. package/library/esm/node_modules/jotai/esm/vanilla/internals.js +551 -0
  42. package/library/esm/node_modules/jotai/esm/vanilla/internals.js.map +1 -0
  43. package/library/esm/node_modules/jotai/esm/vanilla.js +111 -0
  44. package/library/esm/node_modules/jotai/esm/vanilla.js.map +1 -0
  45. package/library/esm/node_modules/lodash/_Hash.js +49 -0
  46. package/library/esm/node_modules/lodash/_Hash.js.map +1 -0
  47. package/library/esm/node_modules/lodash/_ListCache.js +49 -0
  48. package/library/esm/node_modules/lodash/_ListCache.js.map +1 -0
  49. package/library/esm/node_modules/lodash/_Map.js +21 -0
  50. package/library/esm/node_modules/lodash/_Map.js.map +1 -0
  51. package/library/esm/node_modules/lodash/_MapCache.js +49 -0
  52. package/library/esm/node_modules/lodash/_MapCache.js.map +1 -0
  53. package/library/esm/node_modules/lodash/_Symbol.js +19 -0
  54. package/library/esm/node_modules/lodash/_Symbol.js.map +1 -0
  55. package/library/esm/node_modules/lodash/_arrayMap.js +33 -0
  56. package/library/esm/node_modules/lodash/_arrayMap.js.map +1 -0
  57. package/library/esm/node_modules/lodash/_assignValue.js +42 -0
  58. package/library/esm/node_modules/lodash/_assignValue.js.map +1 -0
  59. package/library/esm/node_modules/lodash/_assocIndexOf.js +34 -0
  60. package/library/esm/node_modules/lodash/_assocIndexOf.js.map +1 -0
  61. package/library/esm/node_modules/lodash/_baseAssignValue.js +38 -0
  62. package/library/esm/node_modules/lodash/_baseAssignValue.js.map +1 -0
  63. package/library/esm/node_modules/lodash/_baseGet.js +38 -0
  64. package/library/esm/node_modules/lodash/_baseGet.js.map +1 -0
  65. package/library/esm/node_modules/lodash/_baseGetTag.js +43 -0
  66. package/library/esm/node_modules/lodash/_baseGetTag.js.map +1 -0
  67. package/library/esm/node_modules/lodash/_baseIsNative.js +63 -0
  68. package/library/esm/node_modules/lodash/_baseIsNative.js.map +1 -0
  69. package/library/esm/node_modules/lodash/_baseSet.js +68 -0
  70. package/library/esm/node_modules/lodash/_baseSet.js.map +1 -0
  71. package/library/esm/node_modules/lodash/_baseToString.js +50 -0
  72. package/library/esm/node_modules/lodash/_baseToString.js.map +1 -0
  73. package/library/esm/node_modules/lodash/_castPath.js +37 -0
  74. package/library/esm/node_modules/lodash/_castPath.js.map +1 -0
  75. package/library/esm/node_modules/lodash/_coreJsData.js +19 -0
  76. package/library/esm/node_modules/lodash/_coreJsData.js.map +1 -0
  77. package/library/esm/node_modules/lodash/_defineProperty.js +24 -0
  78. package/library/esm/node_modules/lodash/_defineProperty.js.map +1 -0
  79. package/library/esm/node_modules/lodash/_freeGlobal.js +7 -0
  80. package/library/esm/node_modules/lodash/_freeGlobal.js.map +1 -0
  81. package/library/esm/node_modules/lodash/_getMapData.js +31 -0
  82. package/library/esm/node_modules/lodash/_getMapData.js.map +1 -0
  83. package/library/esm/node_modules/lodash/_getNative.js +31 -0
  84. package/library/esm/node_modules/lodash/_getNative.js.map +1 -0
  85. package/library/esm/node_modules/lodash/_getRawTag.js +59 -0
  86. package/library/esm/node_modules/lodash/_getRawTag.js.map +1 -0
  87. package/library/esm/node_modules/lodash/_getValue.js +25 -0
  88. package/library/esm/node_modules/lodash/_getValue.js.map +1 -0
  89. package/library/esm/node_modules/lodash/_hashClear.js +28 -0
  90. package/library/esm/node_modules/lodash/_hashClear.js.map +1 -0
  91. package/library/esm/node_modules/lodash/_hashDelete.js +29 -0
  92. package/library/esm/node_modules/lodash/_hashDelete.js.map +1 -0
  93. package/library/esm/node_modules/lodash/_hashGet.js +43 -0
  94. package/library/esm/node_modules/lodash/_hashGet.js.map +1 -0
  95. package/library/esm/node_modules/lodash/_hashHas.js +36 -0
  96. package/library/esm/node_modules/lodash/_hashHas.js.map +1 -0
  97. package/library/esm/node_modules/lodash/_hashSet.js +36 -0
  98. package/library/esm/node_modules/lodash/_hashSet.js.map +1 -0
  99. package/library/esm/node_modules/lodash/_isIndex.js +37 -0
  100. package/library/esm/node_modules/lodash/_isIndex.js.map +1 -0
  101. package/library/esm/node_modules/lodash/_isKey.js +43 -0
  102. package/library/esm/node_modules/lodash/_isKey.js.map +1 -0
  103. package/library/esm/node_modules/lodash/_isKeyable.js +27 -0
  104. package/library/esm/node_modules/lodash/_isKeyable.js.map +1 -0
  105. package/library/esm/node_modules/lodash/_isMasked.js +33 -0
  106. package/library/esm/node_modules/lodash/_isMasked.js.map +1 -0
  107. package/library/esm/node_modules/lodash/_listCacheClear.js +25 -0
  108. package/library/esm/node_modules/lodash/_listCacheClear.js.map +1 -0
  109. package/library/esm/node_modules/lodash/_listCacheDelete.js +48 -0
  110. package/library/esm/node_modules/lodash/_listCacheDelete.js.map +1 -0
  111. package/library/esm/node_modules/lodash/_listCacheGet.js +32 -0
  112. package/library/esm/node_modules/lodash/_listCacheGet.js.map +1 -0
  113. package/library/esm/node_modules/lodash/_listCacheHas.js +29 -0
  114. package/library/esm/node_modules/lodash/_listCacheHas.js.map +1 -0
  115. package/library/esm/node_modules/lodash/_listCacheSet.js +39 -0
  116. package/library/esm/node_modules/lodash/_listCacheSet.js.map +1 -0
  117. package/library/esm/node_modules/lodash/_mapCacheClear.js +36 -0
  118. package/library/esm/node_modules/lodash/_mapCacheClear.js.map +1 -0
  119. package/library/esm/node_modules/lodash/_mapCacheDelete.js +31 -0
  120. package/library/esm/node_modules/lodash/_mapCacheDelete.js.map +1 -0
  121. package/library/esm/node_modules/lodash/_mapCacheGet.js +29 -0
  122. package/library/esm/node_modules/lodash/_mapCacheGet.js.map +1 -0
  123. package/library/esm/node_modules/lodash/_mapCacheHas.js +29 -0
  124. package/library/esm/node_modules/lodash/_mapCacheHas.js.map +1 -0
  125. package/library/esm/node_modules/lodash/_mapCacheSet.js +35 -0
  126. package/library/esm/node_modules/lodash/_mapCacheSet.js.map +1 -0
  127. package/library/esm/node_modules/lodash/_memoizeCapped.js +39 -0
  128. package/library/esm/node_modules/lodash/_memoizeCapped.js.map +1 -0
  129. package/library/esm/node_modules/lodash/_nativeCreate.js +19 -0
  130. package/library/esm/node_modules/lodash/_nativeCreate.js.map +1 -0
  131. package/library/esm/node_modules/lodash/_objectToString.js +34 -0
  132. package/library/esm/node_modules/lodash/_objectToString.js.map +1 -0
  133. package/library/esm/node_modules/lodash/_root.js +22 -0
  134. package/library/esm/node_modules/lodash/_root.js.map +1 -0
  135. package/library/esm/node_modules/lodash/_stringToPath.js +40 -0
  136. package/library/esm/node_modules/lodash/_stringToPath.js.map +1 -0
  137. package/library/esm/node_modules/lodash/_toKey.js +31 -0
  138. package/library/esm/node_modules/lodash/_toKey.js.map +1 -0
  139. package/library/esm/node_modules/lodash/_toSource.js +38 -0
  140. package/library/esm/node_modules/lodash/_toSource.js.map +1 -0
  141. package/library/esm/node_modules/lodash/eq.js +49 -0
  142. package/library/esm/node_modules/lodash/eq.js.map +1 -0
  143. package/library/esm/node_modules/lodash/get.js +46 -0
  144. package/library/esm/node_modules/lodash/get.js.map +1 -0
  145. package/library/esm/node_modules/lodash/isArray.js +38 -0
  146. package/library/esm/node_modules/lodash/isArray.js.map +1 -0
  147. package/library/esm/node_modules/lodash/isFunction.js +51 -0
  148. package/library/esm/node_modules/lodash/isFunction.js.map +1 -0
  149. package/library/esm/node_modules/lodash/isObject.js +43 -0
  150. package/library/esm/node_modules/lodash/isObject.js.map +1 -0
  151. package/library/esm/node_modules/lodash/isObjectLike.js +41 -0
  152. package/library/esm/node_modules/lodash/isObjectLike.js.map +1 -0
  153. package/library/esm/node_modules/lodash/isSymbol.js +43 -0
  154. package/library/esm/node_modules/lodash/isSymbol.js.map +1 -0
  155. package/library/esm/node_modules/lodash/memoize.js +86 -0
  156. package/library/esm/node_modules/lodash/memoize.js.map +1 -0
  157. package/library/esm/node_modules/lodash/set.js +48 -0
  158. package/library/esm/node_modules/lodash/set.js.map +1 -0
  159. package/library/esm/node_modules/lodash/toString.js +41 -0
  160. package/library/esm/node_modules/lodash/toString.js.map +1 -0
  161. package/library/esm/node_modules/react-router/dist/development/chunk-HA7DTUK3.js +1 -1
  162. package/library/esm/node_modules/unified/lib/index.js +1 -1
  163. package/library/esm/src/Form/Components/FieldCreator.js +24 -7
  164. package/library/esm/src/Form/Components/FieldCreator.js.map +1 -1
  165. package/library/esm/src/Form/Components/FieldLabel.js +1 -1
  166. package/library/esm/src/Form/Components/FieldLabel.js.map +1 -1
  167. package/library/esm/src/Form/Components/InlineMarkdown.js.map +1 -1
  168. package/library/esm/src/Form/Components/Inputs/Boolean.js.map +1 -1
  169. package/library/esm/src/Form/Components/Inputs/Constant.js.map +1 -1
  170. package/library/esm/src/Form/Components/Inputs/Date.js.map +1 -1
  171. package/library/esm/src/Form/Components/Inputs/DateTime.js.map +1 -1
  172. package/library/esm/src/Form/Components/Inputs/GeoJSON.js.map +1 -1
  173. package/library/esm/src/Form/Components/Inputs/GeoJSONInputLoader.js.map +1 -1
  174. package/library/esm/src/Form/Components/Inputs/Geometry.js +38 -32
  175. package/library/esm/src/Form/Components/Inputs/Geometry.js.map +1 -1
  176. package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js +4 -1
  177. package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js.map +1 -1
  178. package/library/esm/src/Form/Components/Inputs/JSON.js +83 -42
  179. package/library/esm/src/Form/Components/Inputs/JSON.js.map +1 -1
  180. package/library/esm/src/Form/Components/Inputs/JSONInputLoader.js.map +1 -1
  181. package/library/esm/src/Form/Components/Inputs/LongString.js.map +1 -1
  182. package/library/esm/src/Form/Components/Inputs/Number.js +34 -9
  183. package/library/esm/src/Form/Components/Inputs/Number.js.map +1 -1
  184. package/library/esm/src/Form/Components/Inputs/Object.js +7 -2
  185. package/library/esm/src/Form/Components/Inputs/Object.js.map +1 -1
  186. package/library/esm/src/Form/Components/Inputs/OneOfInput.js.map +1 -1
  187. package/library/esm/src/Form/Components/Inputs/RadioGroup.js.map +1 -1
  188. package/library/esm/src/Form/Components/Inputs/SingleSelect.js +2 -1
  189. package/library/esm/src/Form/Components/Inputs/SingleSelect.js.map +1 -1
  190. package/library/esm/src/Form/Components/Inputs/String.js +2 -2
  191. package/library/esm/src/Form/Components/Inputs/String.js.map +1 -1
  192. package/library/esm/src/Form/Components/Inputs/Time.js.map +1 -1
  193. package/library/esm/src/Form/Components/Inputs/index.js +11 -0
  194. package/library/esm/src/Form/Components/Inputs/index.js.map +1 -0
  195. package/library/esm/src/Form/Components/Inputs/inputMap.js.map +1 -1
  196. package/library/esm/src/Form/Creator/FormContextProvider.js.map +1 -1
  197. package/library/esm/src/Form/Creator/FormCreator.js +20 -9
  198. package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
  199. package/library/esm/src/Form/Creator/FormFields.js.map +1 -1
  200. package/library/esm/src/Form/Creator/FormHeader.js.map +1 -1
  201. package/library/esm/src/Form/Creator/FormSection.js.map +1 -1
  202. package/library/esm/src/Form/Creator/FormSectionContextProvider.js.map +1 -1
  203. package/library/esm/src/Form/Creator/NavElement.js.map +1 -1
  204. package/library/esm/src/Form/Creator/Page.js +40 -7
  205. package/library/esm/src/Form/Creator/Page.js.map +1 -1
  206. package/library/esm/src/Form/Creator/Wizard.js +79 -22
  207. package/library/esm/src/Form/Creator/Wizard.js.map +1 -1
  208. package/library/esm/src/Form/Manage/CopyableJSONOutput.js +3 -3
  209. package/library/esm/src/Form/Manage/CopyableJSONOutput.js.map +1 -1
  210. package/library/esm/src/library.js +11 -13
  211. package/library/esm/src/library.js.map +1 -1
  212. package/library/esm/src/utils/getters.js +135 -0
  213. package/library/esm/src/utils/getters.js.map +1 -0
  214. package/library/esm/src/utils/manipulators.js +171 -0
  215. package/library/esm/src/utils/manipulators.js.map +1 -0
  216. package/library/esm/src/utils/resolveRefs.js +44 -0
  217. package/library/esm/src/utils/resolveRefs.js.map +1 -0
  218. package/library/esm/src/utils/responsive/layoutState.js +18 -0
  219. package/library/esm/src/utils/responsive/layoutState.js.map +1 -0
  220. package/library/esm/src/{Form → utils}/schemaToFormHelpers.js +157 -38
  221. package/library/esm/src/utils/schemaToFormHelpers.js.map +1 -0
  222. package/library/esm/src/utils/validators.js +38 -0
  223. package/library/esm/src/utils/validators.js.map +1 -0
  224. package/package.json +131 -124
  225. package/library/esm/src/Form/helpers.js +0 -162
  226. package/library/esm/src/Form/helpers.js.map +0 -1
  227. package/library/esm/src/Form/resolveRefs.js +0 -26
  228. package/library/esm/src/Form/resolveRefs.js.map +0 -1
  229. package/library/esm/src/Form/schemaToFormHelpers.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"inputMap.js","sources":["../../../../../../src/Form/Components/Inputs/inputMap.ts"],"sourcesContent":["import BooleanInput from '@/Form/Components/Inputs/Boolean'\nimport LongString from '@/Form/Components/Inputs/LongString'\nimport StringInput from '@/Form/Components/Inputs/String'\nimport ObjectInput from '@/Form/Components/Inputs/Object'\nimport Radio from '@/Form/Components/Inputs/RadioGroup'\nimport SingleSelect from '@/Form/Components/Inputs/SingleSelect'\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport JSONStringInput from '@/Form/Components/Inputs/JSONInputLoader'\nimport NumberInput from '@/Form/Components/Inputs/Number'\nimport GeoJSONInput from '@/Form/Components/Inputs/GeoJSONInputLoader'\nimport GeometryInput from '@/Form/Components/Inputs/GeometryInputLoader'\nimport DateTimeInput from '@/Form/Components/Inputs/DateTime'\nimport DateInput from '@/Form/Components/Inputs/Date'\nimport TimeInput from '@/Form/Components/Inputs/Time'\nimport ConstantInput from '@/Form/Components/Inputs/Constant'\nimport OneOfInput from '@/Form/Components/Inputs/OneOfInput'\n\nconst inputMap: Record<string, React.FC<IFieldInputProps>> = {\n text: StringInput,\n long_text: LongString,\n number: NumberInput,\n json: JSONStringInput,\n boolean: BooleanInput,\n select: SingleSelect,\n radio: Radio,\n object: ObjectInput,\n oneOf: OneOfInput,\n geojson: GeoJSONInput,\n geometry: GeometryInput,\n datetime: DateTimeInput,\n date: DateInput,\n time: TimeInput,\n constant: ConstantInput\n}\n\nexport default inputMap\n"],"names":["LongString","JSONStringInput","SingleSelect","Radio","GeoJSONInput","GeometryInput"],"mappings":";;;;;;;;;;;;;;;;AAiBA,IAAM,QAAQ,GAA+C;AAC3D,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,SAAS,EAAEA,eAAU;AACrB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,IAAI,EAAEC,eAAe;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,MAAM,EAAEC,iBAAY;AACpB,IAAA,KAAK,EAAEC,UAAK;AACZ,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,OAAO,EAAEC,oBAAY;AACrB,IAAA,QAAQ,EAAEC,kBAAa;AACvB,IAAA,QAAQ,EAAE,aAAa;AACvB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,QAAQ,EAAE;;;;;"}
1
+ {"version":3,"file":"inputMap.js","sources":["../../../../../../src/Form/Components/Inputs/inputMap.ts"],"sourcesContent":["import BooleanInput from '@/Form/Components/Inputs/Boolean'\r\nimport LongString from '@/Form/Components/Inputs/LongString'\r\nimport StringInput from '@/Form/Components/Inputs/String'\r\nimport ObjectInput from '@/Form/Components/Inputs/Object'\r\nimport Radio from '@/Form/Components/Inputs/RadioGroup'\r\nimport SingleSelect from '@/Form/Components/Inputs/SingleSelect'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport JSONStringInput from '@/Form/Components/Inputs/JSONInputLoader'\r\nimport NumberInput from '@/Form/Components/Inputs/Number'\r\nimport GeoJSONInput from '@/Form/Components/Inputs/GeoJSONInputLoader'\r\nimport GeometryInput from '@/Form/Components/Inputs/GeometryInputLoader'\r\nimport DateTimeInput from '@/Form/Components/Inputs/DateTime'\r\nimport DateInput from '@/Form/Components/Inputs/Date'\r\nimport TimeInput from '@/Form/Components/Inputs/Time'\r\nimport ConstantInput from '@/Form/Components/Inputs/Constant'\r\nimport OneOfInput from '@/Form/Components/Inputs/OneOfInput'\r\n\r\nconst inputMap: Record<string, React.FC<IFieldInputProps>> = {\r\n text: StringInput,\r\n long_text: LongString,\r\n number: NumberInput,\r\n json: JSONStringInput,\r\n boolean: BooleanInput,\r\n select: SingleSelect,\r\n radio: Radio,\r\n object: ObjectInput,\r\n oneOf: OneOfInput,\r\n geojson: GeoJSONInput,\r\n geometry: GeometryInput,\r\n datetime: DateTimeInput,\r\n date: DateInput,\r\n time: TimeInput,\r\n constant: ConstantInput\r\n}\r\n\r\nexport default inputMap\r\n"],"names":["LongString","JSONStringInput","SingleSelect","Radio","GeoJSONInput","GeometryInput"],"mappings":";;;;;;;;;;;;;;;;AAiBA,IAAM,QAAQ,GAA+C;AAC3D,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,SAAS,EAAEA,eAAU;AACrB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,IAAI,EAAEC,eAAe;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,MAAM,EAAEC,iBAAY;AACpB,IAAA,KAAK,EAAEC,UAAK;AACZ,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,OAAO,EAAEC,oBAAY;AACrB,IAAA,QAAQ,EAAEC,kBAAa;AACvB,IAAA,QAAQ,EAAE,aAAa;AACvB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,QAAQ,EAAE;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormContextProvider.js","sources":["../../../../../src/Form/Creator/FormContextProvider.tsx"],"sourcesContent":["import { type IFieldInputProps, type IForm, type IFormValues } from '@/Form/Creator/FormCreatorTypes'\nimport { type JSONSchema6 } from 'json-schema'\nimport React, { createContext, type ReactElement, type PropsWithChildren } from 'react'\n\nexport interface IFormContextValue {\n form: IForm\n formValues: IFormValues\n setFormValues: (v: IFormValues) => void\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\n urlNavigable?: boolean\n schema?: JSONSchema6\n}\n\nexport const FormContext = createContext<IFormContextValue>({\n form: { id: '', label: '' },\n formValues: {},\n setFormValues: (v) => {}\n})\n\nexport const FormContextProvider = ({ children, ...props }: IFormContextValue & PropsWithChildren): ReactElement => {\n return (\n <FormContext.Provider value={{ ...props }}>\n {children}\n </FormContext.Provider>\n )\n}\n\nexport const useFormContext = (): IFormContextValue => {\n const ctx = React.useContext(FormContext)\n if (!ctx) throw new Error('useFormSectionContext must be used within FormSectionContextProvider')\n return ctx\n}\n"],"names":["React"],"mappings":";;;AAaO,IAAM,WAAW,GAAG,aAAa,CAAoB;IAC1D,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AAC3B,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,aAAa,EAAE,UAAC,CAAC,EAAA;AAClB,CAAA;AAUY,IAAA,cAAc,GAAG,YAAA;IAC5B,IAAM,GAAG,GAAGA,cAAK,CAAC,UAAU,CAAC,WAAW,CAAC;AACzC,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC;AACjG,IAAA,OAAO,GAAG;AACZ;;;;"}
1
+ {"version":3,"file":"FormContextProvider.js","sources":["../../../../../src/Form/Creator/FormContextProvider.tsx"],"sourcesContent":["import { type IFieldInputProps, type IForm, type IFormValues } from '@/Form/Creator/FormCreatorTypes'\r\nimport { type JSONSchema6 } from 'json-schema'\r\nimport React, { createContext, type ReactElement, type PropsWithChildren } from 'react'\r\n\r\nexport interface IFormContextValue {\r\n form: IForm\r\n formValues: IFormValues\r\n setFormValues: (v: IFormValues) => void\r\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\r\n urlNavigable?: boolean\r\n schema?: JSONSchema6\r\n}\r\n\r\nexport const FormContext = createContext<IFormContextValue>({\r\n form: { id: '', label: '' },\r\n formValues: {},\r\n setFormValues: (v) => {}\r\n})\r\n\r\nexport const FormContextProvider = ({ children, ...props }: IFormContextValue & PropsWithChildren): ReactElement => {\r\n return (\r\n <FormContext.Provider value={{ ...props }}>\r\n {children}\r\n </FormContext.Provider>\r\n )\r\n}\r\n\r\nexport const useFormContext = (): IFormContextValue => {\r\n const ctx = React.useContext(FormContext)\r\n if (!ctx) throw new Error('useFormSectionContext must be used within FormSectionContextProvider')\r\n return ctx\r\n}\r\n"],"names":["React"],"mappings":";;;AAaO,IAAM,WAAW,GAAG,aAAa,CAAoB;IAC1D,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AAC3B,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,aAAa,EAAE,UAAC,CAAC,EAAA;AAClB,CAAA;AAUY,IAAA,cAAc,GAAG,YAAA;IAC5B,IAAM,GAAG,GAAGA,cAAK,CAAC,UAAU,CAAC,WAAW,CAAC;AACzC,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC;AACjG,IAAA,OAAO,GAAG;AACZ;;;;"}
@@ -2,12 +2,14 @@ import { __assign } from '../../../node_modules/tslib/tslib.es6.js';
2
2
  import { FormContext } from './FormContextProvider.js';
3
3
  import FormHeader from './FormHeader.js';
4
4
  import FormSection from './FormSection.js';
5
- import { copyAndAddPathToFields, getFieldsFromFormSection, getFieldValue, updateFormValuesWithFieldValueInPlace, calculateSectionStatus } from '../helpers.js';
5
+ import { getFieldsFromFormSection, getFieldValue } from '../../utils/getters.js';
6
+ import { copyAndAddPathToFields, updateFormValuesWithFieldValueInPlace } from '../../utils/manipulators.js';
6
7
  import '../../../_virtual/ajv.js';
7
8
  import '../../../_virtual/index.js';
8
9
  import 'lodash';
10
+ import { calculateSectionStatus } from '../../utils/validators.js';
9
11
  import { utils as index$1 } from '../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
10
- import React__default, { useContext } from 'react';
12
+ import React__default, { useState, useContext } from 'react';
11
13
 
12
14
  var FormStatus = function () {
13
15
  var _a, _b, _c, _d;
@@ -25,18 +27,27 @@ var FormStatus = function () {
25
27
  _d.requiredTotal,
26
28
  " required")));
27
29
  };
30
+ var seedFormValuesWithDefaults = function (form) {
31
+ var formValues = {};
32
+ getFieldsFromFormSection(form).forEach(function (field) {
33
+ if (field.defaultValue !== undefined && getFieldValue(field, formValues) === undefined) {
34
+ updateFormValuesWithFieldValueInPlace(field, field.defaultValue, formValues);
35
+ }
36
+ });
37
+ return formValues;
38
+ };
28
39
  var FormCreator = function (_a) {
29
- var _b;
30
- var form = _a.form, formValueState = _a.formValueState, note = _a.note, error = _a.error, onChange = _a.onChange, className = _a.className, _c = _a.defaultClassName, defaultClassName = _c === void 0 ? 'flex flex-col gap-2 flex-grow' : _c, _d = _a.urlNavigable, urlNavigable = _d === void 0 ? true : _d, inputOverrides = _a.inputOverrides, schema = _a.schema;
40
+ var _b, _c;
41
+ var form = _a.form, formValueState = _a.formValueState, note = _a.note, error = _a.error, onChange = _a.onChange, className = _a.className, _d = _a.defaultClassName, defaultClassName = _d === void 0 ? 'flex flex-col gap-2 flex-grow' : _d, _e = _a.urlNavigable, urlNavigable = _e === void 0 ? true : _e, inputOverrides = _a.inputOverrides, schema = _a.schema, footer = _a.footer, header = _a.header;
31
42
  var activeForm = copyAndAddPathToFields(form);
32
- var activeFormValues = structuredClone(formValueState[0]);
43
+ var activeFormValues = structuredClone((_b = formValueState === null || formValueState === void 0 ? void 0 : formValueState[0]) !== null && _b !== void 0 ? _b : {});
33
44
  getFieldsFromFormSection(activeForm).forEach(function (field) {
34
45
  if (field.defaultValue !== undefined && getFieldValue(field, activeFormValues) === undefined) {
35
46
  updateFormValuesWithFieldValueInPlace(field, field.defaultValue, activeFormValues);
36
47
  }
37
48
  });
49
+ var _f = formValueState !== null && formValueState !== void 0 ? formValueState : useState(seedFormValuesWithDefaults(activeForm)), formValues = _f[0], setFormValues = _f[1];
38
50
  activeForm.settings = __assign({ url_navigable: urlNavigable }, activeForm.settings);
39
- var formValues = formValueState[0], setFormValues = formValueState[1];
40
51
  return (React__default.createElement(FormContext.Provider, { value: {
41
52
  form: activeForm,
42
53
  formValues: formValues,
@@ -44,9 +55,9 @@ var FormCreator = function (_a) {
44
55
  inputOverrides: inputOverrides,
45
56
  schema: schema,
46
57
  urlNavigable: activeForm.settings.url_navigable
47
- } },
58
+ } }, header !== null && header !== void 0 ? header : '',
48
59
  React__default.createElement("div", { className: index$1.makeClassName({
49
- className: (_b = activeForm === null || activeForm === void 0 ? void 0 : activeForm.settings) === null || _b === void 0 ? void 0 : _b.class_name,
60
+ className: (_c = activeForm === null || activeForm === void 0 ? void 0 : activeForm.settings) === null || _c === void 0 ? void 0 : _c.class_name,
50
61
  defaultClassName: defaultClassName,
51
62
  extras: [className]
52
63
  }) },
@@ -54,7 +65,7 @@ var FormCreator = function (_a) {
54
65
  (activeForm === null || activeForm === void 0 ? void 0 : activeForm.fields) !== undefined && activeForm.fields.length > 0 && activeForm.pages === undefined && activeForm.wizard_steps === undefined
55
66
  ? React__default.createElement(FormStatus, null)
56
67
  : '',
57
- React__default.createElement(FormSection, { formSection: activeForm, onChange: onChange }))));
68
+ React__default.createElement(FormSection, { formSection: activeForm, onChange: onChange })), footer !== null && footer !== void 0 ? footer : ''));
58
69
  };
59
70
 
60
71
  export { FormCreator as default };
@@ -1 +1 @@
1
- {"version":3,"file":"FormCreator.js","sources":["../../../../../src/Form/Creator/FormCreator.tsx"],"sourcesContent":["import { FormContext } from '@/Form/Creator/FormContextProvider'\nimport { type IFormValues, type IForm, type IValueChangeFn, type IFieldInputProps, type IFormOverride, type IFormFieldOverride } from '@/Form/Creator/FormCreatorTypes'\nimport FormHeader from '@/Form/Creator/FormHeader'\nimport FormSection from '@/Form/Creator/FormSection'\nimport { calculateSectionStatus, copyAndAddPathToFields, getFieldsFromFormSection, getFieldValue, updateFormValuesWithFieldValueInPlace } from '@/Form/helpers'\nimport { overridesAndSchemaToFormObject, schemaToFormObject } from '@/Form/schemaToFormHelpers'\nimport { Loader, utils } from '@axdspub/axiom-ui-utilities'\nimport { type JSONSchema6 } from 'json-schema'\nimport React, { useContext, useEffect, useState, type ReactElement } from 'react'\n\nexport interface IFormCreatorProps {\n form: IForm\n schema?: JSONSchema6\n formValueState: [IFormValues, (v: IFormValues) => void]\n note?: string\n error?: string\n onChange?: IValueChangeFn\n className?: string\n defaultClassName?: string\n urlNavigable?: boolean\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\n}\n\nconst FormStatus = (): ReactElement => {\n const { form, formValues, setFormValues } = useContext(FormContext)\n const status = calculateSectionStatus([form], [formValues, setFormValues])\n\n return (\n <>\n <p className='text-xs mt-4'>{status[form.id]?.completed} of {status[form.id]?.total} total</p>\n <p className='text-xs mt-2'>{status[form.id]?.requiredCompleted} of {status[form.id]?.requiredTotal} required</p>\n </>\n )\n}\n\nexport const SchemaFormCreator = ({\n label,\n id,\n schema,\n formOverrides,\n formFieldOverrides,\n ...props\n}: Omit<IFormCreatorProps, 'form'> & {\n id?: string\n label?: string\n schema: JSONSchema6\n formOverrides?: IFormOverride[]\n formFieldOverrides?: IFormFieldOverride[][]\n}): ReactElement => {\n const [form, setForm] = useState<IForm | undefined>(undefined)\n useEffect(() => {\n const newForm = formOverrides === undefined\n ? schemaToFormObject(schema)\n : overridesAndSchemaToFormObject({\n formOverrides,\n formFieldOverrides,\n schema\n }) // Convert the JSON schema to a form object\n if (id !== undefined) {\n newForm.id = id\n }\n if (label !== undefined) {\n newForm.label = label\n }\n setForm(newForm)\n }, [schema, formOverrides, formFieldOverrides, id, label])\n\n return (\n <>{\n form !== undefined\n ? <FormCreator form={form} {...props} />\n : <div className='p-5 bg-slate-200 text-xs'><Loader className='pt-20' /></div>\n }</>\n\n )\n}\n\nconst FormCreator = ({\n form,\n formValueState,\n note,\n error,\n onChange,\n className,\n defaultClassName = 'flex flex-col gap-2 flex-grow',\n urlNavigable = true,\n inputOverrides,\n schema\n}: IFormCreatorProps): ReactElement => {\n const activeForm = copyAndAddPathToFields(form)\n const activeFormValues = structuredClone(formValueState[0])\n getFieldsFromFormSection(activeForm).forEach(field => {\n if (field.defaultValue !== undefined && getFieldValue(field, activeFormValues) === undefined) {\n updateFormValuesWithFieldValueInPlace(field, field.defaultValue, activeFormValues)\n }\n })\n\n activeForm.settings = {\n url_navigable: urlNavigable,\n ...activeForm.settings\n }\n\n const [formValues, setFormValues] = formValueState\n\n return (\n <FormContext.Provider value={{\n form: activeForm,\n formValues,\n setFormValues,\n inputOverrides,\n schema,\n urlNavigable: activeForm.settings.url_navigable\n }}>\n <div className={utils.makeClassName({\n className: activeForm?.settings?.class_name,\n defaultClassName,\n extras: [className]\n })}>\n <FormHeader form={activeForm} note={note} error={error} />\n {\n activeForm?.fields !== undefined && activeForm.fields.length > 0 && activeForm.pages === undefined && activeForm.wizard_steps === undefined\n ? <FormStatus />\n : ''\n }\n <FormSection\n formSection={activeForm}\n onChange={onChange}\n />\n </div>\n </FormContext.Provider>\n )\n}\n\nexport type IFormSectionStatus = Record<string, {\n completed: number\n total: number\n requiredTotal: number\n requiredCompleted: number\n valid: boolean\n}>\n\nexport default FormCreator\n"],"names":["React","utils"],"mappings":"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"}
1
+ {"version":3,"file":"FormCreator.js","sources":["../../../../../src/Form/Creator/FormCreator.tsx"],"sourcesContent":["import { FormContext } from '@/Form/Creator/FormContextProvider'\r\nimport { type IFormValues, type IForm, type IValueChangeFn, type IFieldInputProps, type IFormOverride, type IFormFieldOverride } from '@/Form/Creator/FormCreatorTypes'\r\nimport FormHeader from '@/Form/Creator/FormHeader'\r\nimport FormSection from '@/Form/Creator/FormSection'\r\nimport { getFieldsFromFormSection, getFieldValue } from '@/utils/getters'\r\nimport { copyAndAddPathToFields, updateFormValuesWithFieldValueInPlace } from '@/utils/manipulators'\r\nimport { overridesAndSchemaToFormObject, schemaToFormObject } from '@/utils/schemaToFormHelpers'\r\nimport { calculateSectionStatus } from '@/utils/validators'\r\nimport { Loader, utils } from '@axdspub/axiom-ui-utilities'\r\nimport { type JSONSchema6 } from 'json-schema'\r\nimport React, { type ReactNode, useContext, type ReactElement, useState } from 'react'\r\n\r\nexport interface IFormCreatorProps {\r\n form: IForm\r\n schema?: JSONSchema6\r\n formValueState?: [IFormValues, (v: IFormValues) => void]\r\n note?: string\r\n error?: string\r\n onChange?: IValueChangeFn\r\n className?: string\r\n defaultClassName?: string\r\n urlNavigable?: boolean\r\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\r\n header?: ReactNode\r\n footer?: ReactNode\r\n}\r\n\r\nconst FormStatus = (): ReactElement => {\r\n const { form, formValues, setFormValues } = useContext(FormContext)\r\n const status = calculateSectionStatus([form], [formValues, setFormValues])\r\n\r\n return (\r\n <>\r\n <p className='text-xs mt-4'>{status[form.id]?.completed} of {status[form.id]?.total} total</p>\r\n <p className='text-xs mt-2'>{status[form.id]?.requiredCompleted} of {status[form.id]?.requiredTotal} required</p>\r\n </>\r\n )\r\n}\r\n\r\nexport const SchemaFormCreator = ({\r\n label,\r\n id,\r\n schema,\r\n formOverrides,\r\n formFieldOverrides,\r\n ...props\r\n}: Omit<IFormCreatorProps, 'form'> & {\r\n id?: string\r\n label?: string\r\n schema: JSONSchema6\r\n formOverrides?: IFormOverride[]\r\n formFieldOverrides?: IFormFieldOverride[][]\r\n}): ReactElement => {\r\n const form = formOverrides === undefined && formFieldOverrides === undefined\r\n ? schemaToFormObject(schema)\r\n : overridesAndSchemaToFormObject({\r\n formOverrides,\r\n formFieldOverrides,\r\n schema\r\n }) // Convert the JSON schema to a form object\r\n if (id !== undefined) {\r\n form.id = id\r\n }\r\n if (label !== undefined) {\r\n form.label = label\r\n }\r\n\r\n return (\r\n <>{\r\n form !== undefined\r\n ? <FormCreator form={form} {...props} />\r\n : <div className='p-5 bg-slate-200 text-xs'><Loader className='pt-20' /></div>\r\n }</>\r\n\r\n )\r\n}\r\n\r\nconst seedFormValuesWithDefaults = (form: IForm): IFormValues => {\r\n const formValues: IFormValues = {}\r\n getFieldsFromFormSection(form).forEach(field => {\r\n if (field.defaultValue !== undefined && getFieldValue(field, formValues) === undefined) {\r\n updateFormValuesWithFieldValueInPlace(field, field.defaultValue, formValues)\r\n }\r\n })\r\n return formValues\r\n}\r\n\r\nconst FormCreator = ({\r\n form,\r\n formValueState,\r\n note,\r\n error,\r\n onChange,\r\n className,\r\n defaultClassName = 'flex flex-col gap-2 flex-grow',\r\n urlNavigable = true,\r\n inputOverrides,\r\n schema,\r\n footer,\r\n header\r\n}: IFormCreatorProps): ReactElement => {\r\n const activeForm = copyAndAddPathToFields(form)\r\n const activeFormValues = structuredClone(formValueState?.[0] ?? {})\r\n getFieldsFromFormSection(activeForm).forEach(field => {\r\n if (field.defaultValue !== undefined && getFieldValue(field, activeFormValues) === undefined) {\r\n updateFormValuesWithFieldValueInPlace(field, field.defaultValue, activeFormValues)\r\n }\r\n })\r\n const [formValues, setFormValues] = formValueState ?? useState<IFormValues>(seedFormValuesWithDefaults(activeForm))\r\n\r\n activeForm.settings = {\r\n url_navigable: urlNavigable,\r\n ...activeForm.settings\r\n }\r\n\r\n return (\r\n <FormContext.Provider value={{\r\n form: activeForm,\r\n formValues,\r\n setFormValues,\r\n inputOverrides,\r\n schema,\r\n urlNavigable: activeForm.settings.url_navigable\r\n }}>\r\n {header ?? ''}\r\n <div className={utils.makeClassName({\r\n className: activeForm?.settings?.class_name,\r\n defaultClassName,\r\n extras: [className]\r\n })}>\r\n <FormHeader form={activeForm} note={note} error={error} />\r\n {\r\n activeForm?.fields !== undefined && activeForm.fields.length > 0 && activeForm.pages === undefined && activeForm.wizard_steps === undefined\r\n ? <FormStatus />\r\n : ''\r\n }\r\n <FormSection\r\n formSection={activeForm}\r\n onChange={onChange}\r\n />\r\n </div>\r\n {footer ?? ''}\r\n </FormContext.Provider>\r\n )\r\n}\r\n\r\nexport type IFormSectionStatus = Record<string, {\r\n completed: number\r\n total: number\r\n requiredTotal: number\r\n requiredCompleted: number\r\n valid: boolean\r\n}>\r\n\r\nexport default FormCreator\r\n"],"names":["React","utils"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormFields.js","sources":["../../../../../src/Form/Creator/FormFields.tsx"],"sourcesContent":["import FieldCreator from '@/Form/Components/FieldCreator'\nimport { type IFormField, type IValueChangeFn } from '@/Form/Creator/FormCreatorTypes'\nimport React, { type ReactElement } from 'react'\n\nconst FormFields = ({\n fields,\n onChange,\n className = 'flex flex-col gap-2'\n}: {\n fields?: IFormField[]\n onChange?: IValueChangeFn\n className?: string\n}): ReactElement => {\n return (\n <>\n {\n fields === undefined || fields.length < 1\n ? ''\n : <div className={className}>\n {\n fields?.map((field) => {\n return (\n <FieldCreator onChange={onChange} field={field} key={field.id} />\n )\n })\n }\n </div>\n }\n </>\n )\n}\n\nexport default FormFields\n"],"names":["React"],"mappings":";;;AAIM,IAAA,UAAU,GAAG,UAAC,EAQnB,EAAA;QAPC,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,iBAAiC,EAAjC,SAAS,GAAG,EAAA,KAAA,MAAA,GAAA,qBAAqB,GAAA,EAAA;IAMjC,QACIA,cAEE,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG;AACtC,UAAE;AACF,UAAEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,SAAS,EAEvB,EAAA,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,UAAC,KAAK,EAAA;AAChB,YAAA,QACEA,cAAC,CAAA,aAAA,CAAA,YAAY,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAA,CAAI;AAErE,SAAC,CAAC,CAEF,CAEL;AAET;;;;"}
1
+ {"version":3,"file":"FormFields.js","sources":["../../../../../src/Form/Creator/FormFields.tsx"],"sourcesContent":["import FieldCreator from '@/Form/Components/FieldCreator'\r\nimport { type IFormField, type IValueChangeFn } from '@/Form/Creator/FormCreatorTypes'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst FormFields = ({\r\n fields,\r\n onChange,\r\n className = 'flex flex-col gap-2'\r\n}: {\r\n fields?: IFormField[]\r\n onChange?: IValueChangeFn\r\n className?: string\r\n}): ReactElement => {\r\n return (\r\n <>\r\n {\r\n fields === undefined || fields.length < 1\r\n ? ''\r\n : <div className={className}>\r\n {\r\n fields?.map((field) => {\r\n return (\r\n <FieldCreator onChange={onChange} field={field} key={field.id} />\r\n )\r\n })\r\n }\r\n </div>\r\n }\r\n </>\r\n )\r\n}\r\n\r\nexport default FormFields\r\n"],"names":["React"],"mappings":";;;AAIM,IAAA,UAAU,GAAG,UAAC,EAQnB,EAAA;QAPC,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,iBAAiC,EAAjC,SAAS,GAAG,EAAA,KAAA,MAAA,GAAA,qBAAqB,GAAA,EAAA;IAMjC,QACIA,cAEE,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG;AACtC,UAAE;AACF,UAAEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,SAAS,EAEvB,EAAA,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,UAAC,KAAK,EAAA;AAChB,YAAA,QACEA,cAAC,CAAA,aAAA,CAAA,YAAY,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAA,CAAI;AAErE,SAAC,CAAC,CAEF,CAEL;AAET;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormHeader.js","sources":["../../../../../src/Form/Creator/FormHeader.tsx"],"sourcesContent":["import InlineMarkdown from '@/Form/Components/InlineMarkdown'\nimport type { IForm } from '@/library'\nimport { ExclamationTriangleIcon } from '@radix-ui/react-icons'\nimport React, { type ReactElement } from 'react'\nimport Markdown from 'react-markdown'\n\nconst FormHeader = ({\n form, note, error\n\n}: {\n form: IForm\n note?: string\n error?: string\n}): ReactElement => {\n return (\n <div className='flex flex-col gap-4'>\n <h2 className='text-2xl font-bold'>{form.label}</h2>\n {note !== undefined\n ? <Markdown>{note}</Markdown>\n : null}\n {error !== undefined\n ? <p className='pb-4 text-rose-800'><ExclamationTriangleIcon className='inline mr-2' /> <InlineMarkdown>{error}</InlineMarkdown></p>\n : null}\n {form.description !== undefined\n ? <Markdown>{form.description}</Markdown>\n : null}\n </div>\n )\n}\n\nexport default FormHeader\n"],"names":["React"],"mappings":";;;;;AAMM,IAAA,UAAU,GAAG,UAAC,EAOnB,EAAA;AANC,IAAA,IAAA,IAAI,UAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;AAOjB,IAAA,QACEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAA;AAClC,QAAAA,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,oBAAoB,IAAE,IAAI,CAAC,KAAK,CAAM;AACnD,QAAA,IAAI,KAAK;AACR,cAAEA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,IAAA,EAAE,IAAI;AACjB,cAAE,IAAI;AACP,QAAA,KAAK,KAAK;AACT,cAAEA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,oBAAoB,EAAA;AAAC,gBAAAA,cAAA,CAAA,aAAA,CAAC,uBAAuB,EAAA,EAAC,SAAS,EAAC,aAAa,EAAG,CAAA;;AAAC,gBAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAA,IAAA,EAAE,KAAK,CAAkB;AAChI,cAAE,IAAI;QACP,IAAI,CAAC,WAAW,KAAK;AACpB,cAAEA,cAAC,CAAA,aAAA,CAAA,QAAQ,QAAE,IAAI,CAAC,WAAW;AAC7B,cAAE,IAAI,CACJ;AAEV;;;;"}
1
+ {"version":3,"file":"FormHeader.js","sources":["../../../../../src/Form/Creator/FormHeader.tsx"],"sourcesContent":["import InlineMarkdown from '@/Form/Components/InlineMarkdown'\r\nimport type { IForm } from '@/library'\r\nimport { ExclamationTriangleIcon } from '@radix-ui/react-icons'\r\nimport React, { type ReactElement } from 'react'\r\nimport Markdown from 'react-markdown'\r\n\r\nconst FormHeader = ({\r\n form, note, error\r\n\r\n}: {\r\n form: IForm\r\n note?: string\r\n error?: string\r\n}): ReactElement => {\r\n return (\r\n <div className='flex flex-col gap-4'>\r\n <h2 className='text-2xl font-bold'>{form.label}</h2>\r\n {note !== undefined\r\n ? <Markdown>{note}</Markdown>\r\n : null}\r\n {error !== undefined\r\n ? <p className='pb-4 text-rose-800'><ExclamationTriangleIcon className='inline mr-2' /> <InlineMarkdown>{error}</InlineMarkdown></p>\r\n : null}\r\n {form.description !== undefined\r\n ? <Markdown>{form.description}</Markdown>\r\n : null}\r\n </div>\r\n )\r\n}\r\n\r\nexport default FormHeader\r\n"],"names":["React"],"mappings":";;;;;AAMM,IAAA,UAAU,GAAG,UAAC,EAOnB,EAAA;AANC,IAAA,IAAA,IAAI,UAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;AAOjB,IAAA,QACEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAA;AAClC,QAAAA,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,oBAAoB,IAAE,IAAI,CAAC,KAAK,CAAM;AACnD,QAAA,IAAI,KAAK;AACR,cAAEA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,IAAA,EAAE,IAAI;AACjB,cAAE,IAAI;AACP,QAAA,KAAK,KAAK;AACT,cAAEA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,oBAAoB,EAAA;AAAC,gBAAAA,cAAA,CAAA,aAAA,CAAC,uBAAuB,EAAA,EAAC,SAAS,EAAC,aAAa,EAAG,CAAA;;AAAC,gBAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAA,IAAA,EAAE,KAAK,CAAkB;AAChI,cAAE,IAAI;QACP,IAAI,CAAC,WAAW,KAAK;AACpB,cAAEA,cAAC,CAAA,aAAA,CAAA,QAAQ,QAAE,IAAI,CAAC,WAAW;AAC7B,cAAE,IAAI,CACJ;AAEV;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormSection.js","sources":["../../../../../src/Form/Creator/FormSection.tsx"],"sourcesContent":["import { type IFieldInputProps, type IFormSection, type IValueChangeFn } from '@/Form/Creator/FormCreatorTypes'\nimport FormFields from '@/Form/Creator/FormFields'\nimport PageLayout from '@/Form/Creator/Page'\nimport WizardLayout from '@/Form/Creator/Wizard'\nimport React, { type ReactElement } from 'react'\n\nconst FormSection = ({\n formSection,\n onChange,\n level = 0,\n inputOverrides\n}: {\n formSection?: IFormSection\n onChange?: IValueChangeFn\n level?: number\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\n\n}): ReactElement => {\n if (formSection === undefined) {\n return <></>\n }\n const pages = (formSection?.pages ?? []).slice()\n const fields = (formSection?.fields ?? []).slice()\n const wizardSteps = (formSection?.wizard_steps ?? []).slice()\n const hasPages = pages.length > 0\n const hasFields = fields.length > 0\n const hasWizardSteps = wizardSteps.length > 0\n if (hasPages && hasFields) {\n pages.unshift({\n id: 'default',\n label: 'Default',\n fields\n })\n }\n if ((hasPages || hasFields) && hasWizardSteps) {\n wizardSteps.unshift({\n id: 'default',\n order: -10,\n label: 'Default',\n pages,\n fields\n })\n }\n return (\n <>\n {\n hasWizardSteps\n ? <WizardLayout sections={wizardSteps} onChange={onChange} level={level} />\n\n : hasPages\n ? <PageLayout sections={pages} onChange={onChange} level={level} />\n : <FormFields fields={fields} onChange={onChange} />\n }\n </>\n )\n}\n\nexport default FormSection\n"],"names":["React"],"mappings":";;;;;AAMM,IAAA,WAAW,GAAG,UAAC,EAWpB,EAAA;;AAVC,IAAA,IAAA,WAAW,GAAA,EAAA,CAAA,WAAA,CAAA,CACX,QAAQ,GAAA,EAAA,CAAA,QAAA,CACR,CAAA,EAAA,GAAA,EAAA,CAAA,KAAS,CAAT,CAAA,KAAK,GAAG,EAAA,KAAA,MAAA,GAAA,CAAC,GAAA,EAAA,CAAA,CACK,EAAA,CAAA;AAQd,IAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAC7B,QAAA,OAAOA,2DAAK;;AAEd,IAAA,IAAM,KAAK,GAAG,CAAC,CAAA,EAAA,GAAA,WAAW,aAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE,EAAE,KAAK,EAAE;AAChD,IAAA,IAAM,MAAM,GAAG,CAAC,CAAA,EAAA,GAAA,WAAW,aAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE,EAAE,KAAK,EAAE;AAClD,IAAA,IAAM,WAAW,GAAG,CAAC,CAAA,EAAA,GAAA,WAAW,aAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,YAAY,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE,EAAE,KAAK,EAAE;AAC7D,IAAA,IAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;AACjC,IAAA,IAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AACnC,IAAA,IAAM,cAAc,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;AAC7C,IAAA,IAAI,QAAQ,IAAI,SAAS,EAAE;QACzB,KAAK,CAAC,OAAO,CAAC;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,MAAM,EAAA;AACP,SAAA,CAAC;;IAEJ,IAAI,CAAC,QAAQ,IAAI,SAAS,KAAK,cAAc,EAAE;QAC7C,WAAW,CAAC,OAAO,CAAC;AAClB,YAAA,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,GAAG;AACV,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,KAAK,EAAA,KAAA;AACL,YAAA,MAAM,EAAA;AACP,SAAA,CAAC;;IAEJ,QACMA,4DAEI;AACE,UAAEA,cAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAI;AAE3E,UAAE;AACA,cAAEA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAI;AACnE,cAAEA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAI,CAAA,CAEzD;AAEX;;;;"}
1
+ {"version":3,"file":"FormSection.js","sources":["../../../../../src/Form/Creator/FormSection.tsx"],"sourcesContent":["import { type IFieldInputProps, type IFormSection, type IValueChangeFn } from '@/Form/Creator/FormCreatorTypes'\r\nimport FormFields from '@/Form/Creator/FormFields'\r\nimport PageLayout from '@/Form/Creator/Page'\r\nimport WizardLayout from '@/Form/Creator/Wizard'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst FormSection = ({\r\n formSection,\r\n onChange,\r\n level = 0,\r\n inputOverrides\r\n}: {\r\n formSection?: IFormSection\r\n onChange?: IValueChangeFn\r\n level?: number\r\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\r\n\r\n}): ReactElement => {\r\n if (formSection === undefined) {\r\n return <></>\r\n }\r\n const pages = (formSection?.pages ?? []).slice()\r\n const fields = (formSection?.fields ?? []).slice()\r\n const wizardSteps = (formSection?.wizard_steps ?? []).slice()\r\n const hasPages = pages.length > 0\r\n const hasFields = fields.length > 0\r\n const hasWizardSteps = wizardSteps.length > 0\r\n if (hasPages && hasFields) {\r\n pages.unshift({\r\n id: 'default',\r\n label: 'Default',\r\n fields\r\n })\r\n }\r\n if ((hasPages || hasFields) && hasWizardSteps) {\r\n wizardSteps.unshift({\r\n id: 'default',\r\n order: -10,\r\n label: 'Default',\r\n pages,\r\n fields\r\n })\r\n }\r\n return (\r\n <>\r\n {\r\n hasWizardSteps\r\n ? <WizardLayout sections={wizardSteps} onChange={onChange} level={level} />\r\n\r\n : hasPages\r\n ? <PageLayout sections={pages} onChange={onChange} level={level} />\r\n : <FormFields fields={fields} onChange={onChange} />\r\n }\r\n </>\r\n )\r\n}\r\n\r\nexport default FormSection\r\n"],"names":["React"],"mappings":";;;;;AAMM,IAAA,WAAW,GAAG,UAAC,EAWpB,EAAA;;AAVC,IAAA,IAAA,WAAW,GAAA,EAAA,CAAA,WAAA,CAAA,CACX,QAAQ,GAAA,EAAA,CAAA,QAAA,CACR,CAAA,EAAA,GAAA,EAAA,CAAA,KAAS,CAAT,CAAA,KAAK,GAAG,EAAA,KAAA,MAAA,GAAA,CAAC,GAAA,EAAA,CAAA,CACK,EAAA,CAAA;AAQd,IAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAC7B,QAAA,OAAOA,2DAAK;;AAEd,IAAA,IAAM,KAAK,GAAG,CAAC,CAAA,EAAA,GAAA,WAAW,aAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE,EAAE,KAAK,EAAE;AAChD,IAAA,IAAM,MAAM,GAAG,CAAC,CAAA,EAAA,GAAA,WAAW,aAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE,EAAE,KAAK,EAAE;AAClD,IAAA,IAAM,WAAW,GAAG,CAAC,CAAA,EAAA,GAAA,WAAW,aAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,YAAY,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE,EAAE,KAAK,EAAE;AAC7D,IAAA,IAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;AACjC,IAAA,IAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AACnC,IAAA,IAAM,cAAc,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;AAC7C,IAAA,IAAI,QAAQ,IAAI,SAAS,EAAE;QACzB,KAAK,CAAC,OAAO,CAAC;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,MAAM,EAAA;AACP,SAAA,CAAC;;IAEJ,IAAI,CAAC,QAAQ,IAAI,SAAS,KAAK,cAAc,EAAE;QAC7C,WAAW,CAAC,OAAO,CAAC;AAClB,YAAA,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,GAAG;AACV,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,KAAK,EAAA,KAAA;AACL,YAAA,MAAM,EAAA;AACP,SAAA,CAAC;;IAEJ,QACMA,4DAEI;AACE,UAAEA,cAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAI;AAE3E,UAAE;AACA,cAAEA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAI;AACnE,cAAEA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAI,CAAA,CAEzD;AAEX;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormSectionContextProvider.js","sources":["../../../../../src/Form/Creator/FormSectionContextProvider.tsx"],"sourcesContent":["import React, { createContext, type PropsWithChildren, type ReactElement, useMemo, useState } from 'react'\n\nexport interface IFormSectionContextValue {\n activeId?: string\n setActiveId: (v: string | undefined) => void\n path: string\n}\nexport const FormSectionContext = createContext<IFormSectionContextValue>({\n path: '',\n setActiveId: () => {}\n})\nexport const FormSectionContextProvider = (props: PropsWithChildren & { id?: string, path?: string }): ReactElement => {\n const [activeId, setActiveId] = useState<string | undefined>(props.id)\n useMemo(() => {\n setActiveId(props.id)\n }, [props.id])\n return (\n <FormSectionContext.Provider value={{ activeId, setActiveId, path: props.path ?? '' }}>\n {props.children}\n </FormSectionContext.Provider>\n )\n}\n\nexport const useFormSectionContext = (): IFormSectionContextValue => {\n const ctx = React.useContext(FormSectionContext)\n if (!ctx) throw new Error('useFormSectionContext must be used within FormSectionContextProvider')\n return ctx\n}\n"],"names":["React"],"mappings":";;AAOO,IAAM,kBAAkB,GAAG,aAAa,CAA2B;AACxE,IAAA,IAAI,EAAE,EAAE;IACR,WAAW,EAAE;AACd,CAAA;AACM,IAAM,0BAA0B,GAAG,UAAC,KAAyD,EAAA;;AAC5F,IAAA,IAAA,EAA0B,GAAA,QAAQ,CAAqB,KAAK,CAAC,EAAE,CAAC,EAA/D,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,QAA0C;AACtE,IAAA,OAAO,CAAC,YAAA;AACN,QAAA,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;AACvB,KAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACd,IAAA,QACEA,cAAA,CAAA,aAAA,CAAC,kBAAkB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAA,QAAA,EAAE,WAAW,EAAA,WAAA,EAAE,IAAI,EAAE,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE,EAAE,EAAA,EAClF,KAAK,CAAC,QAAQ,CACa;AAElC;AAEa,IAAA,qBAAqB,GAAG,YAAA;IACnC,IAAM,GAAG,GAAGA,cAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC;AAChD,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC;AACjG,IAAA,OAAO,GAAG;AACZ;;;;"}
1
+ {"version":3,"file":"FormSectionContextProvider.js","sources":["../../../../../src/Form/Creator/FormSectionContextProvider.tsx"],"sourcesContent":["import React, { createContext, type PropsWithChildren, type ReactElement, useMemo, useState } from 'react'\r\n\r\nexport interface IFormSectionContextValue {\r\n activeId?: string\r\n setActiveId: (v: string | undefined) => void\r\n path: string\r\n}\r\nexport const FormSectionContext = createContext<IFormSectionContextValue>({\r\n path: '',\r\n setActiveId: () => {}\r\n})\r\nexport const FormSectionContextProvider = (props: PropsWithChildren & { id?: string, path?: string }): ReactElement => {\r\n const [activeId, setActiveId] = useState<string | undefined>(props.id)\r\n useMemo(() => {\r\n setActiveId(props.id)\r\n }, [props.id])\r\n return (\r\n <FormSectionContext.Provider value={{ activeId, setActiveId, path: props.path ?? '' }}>\r\n {props.children}\r\n </FormSectionContext.Provider>\r\n )\r\n}\r\n\r\nexport const useFormSectionContext = (): IFormSectionContextValue => {\r\n const ctx = React.useContext(FormSectionContext)\r\n if (!ctx) throw new Error('useFormSectionContext must be used within FormSectionContextProvider')\r\n return ctx\r\n}\r\n"],"names":["React"],"mappings":";;AAOO,IAAM,kBAAkB,GAAG,aAAa,CAA2B;AACxE,IAAA,IAAI,EAAE,EAAE;IACR,WAAW,EAAE;AACd,CAAA;AACM,IAAM,0BAA0B,GAAG,UAAC,KAAyD,EAAA;;AAC5F,IAAA,IAAA,EAA0B,GAAA,QAAQ,CAAqB,KAAK,CAAC,EAAE,CAAC,EAA/D,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,QAA0C;AACtE,IAAA,OAAO,CAAC,YAAA;AACN,QAAA,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;AACvB,KAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACd,IAAA,QACEA,cAAA,CAAA,aAAA,CAAC,kBAAkB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAA,QAAA,EAAE,WAAW,EAAA,WAAA,EAAE,IAAI,EAAE,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE,EAAE,EAAA,EAClF,KAAK,CAAC,QAAQ,CACa;AAElC;AAEa,IAAA,qBAAqB,GAAG,YAAA;IACnC,IAAM,GAAG,GAAGA,cAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC;AAChD,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC;AACjG,IAAA,OAAO,GAAG;AACZ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavElement.js","sources":["../../../../../src/Form/Creator/NavElement.tsx"],"sourcesContent":["import { Button, utils } from '@axdspub/axiom-ui-utilities'\nimport React, { type ReactElement, type ReactNode } from 'react'\nimport { Link } from 'react-router-dom'\n\nconst NavElement = ({\n className,\n children,\n path,\n id,\n navigable = true,\n onClick\n}: {\n className?: string\n navigable?: boolean\n children: ReactNode\n path: string\n id: string\n onClick?: () => void\n}): ReactElement => {\n return (\n navigable\n ? <Link to={`${path !== '' ? `${path}/` : ''}${id}`} className={utils.createButtonClass({\n className\n })}>{children}</Link>\n : <Button className={className} onClick={onClick}>{children}</Button>\n\n )\n}\n\nexport default NavElement\n"],"names":["React","utils"],"mappings":";;;;AAIM,IAAA,UAAU,GAAG,UAAC,EAcnB,EAAA;AAbC,IAAA,IAAA,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,IAAI,UAAA,EACJ,EAAE,QAAA,EACF,EAAA,GAAA,EAAA,CAAA,SAAgB,EAAhB,SAAS,GAAA,EAAA,KAAA,MAAA,GAAG,IAAI,GAAA,EAAA,EAChB,OAAO,GAAA,EAAA,CAAA,OAAA;AASP,IAAA,QACE;AACE,UAAEA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAG,CAAA,MAAA,CAAA,IAAI,KAAK,EAAE,GAAG,EAAA,CAAA,MAAA,CAAG,IAAI,EAAA,GAAA,CAAG,GAAG,EAAE,CAAG,CAAA,MAAA,CAAA,EAAE,CAAE,EAAE,SAAS,EAAEC,OAAK,CAAC,iBAAiB,CAAC;AACtF,gBAAA,SAAS,EAAA;aACV,CAAC,EAAA,EAAG,QAAQ;AACb,UAAED,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAA,EAAG,QAAQ,CAAU;AAG3E;;;;"}
1
+ {"version":3,"file":"NavElement.js","sources":["../../../../../src/Form/Creator/NavElement.tsx"],"sourcesContent":["import { Button, utils } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement, type ReactNode } from 'react'\r\nimport { Link } from 'react-router-dom'\r\n\r\nconst NavElement = ({\r\n className,\r\n children,\r\n path,\r\n id,\r\n navigable = true,\r\n onClick\r\n}: {\r\n className?: string\r\n navigable?: boolean\r\n children: ReactNode\r\n path: string\r\n id: string\r\n onClick?: () => void\r\n}): ReactElement => {\r\n return (\r\n navigable\r\n ? <Link to={`${path !== '' ? `${path}/` : ''}${id}`} className={utils.createButtonClass({\r\n className\r\n })}>{children}</Link>\r\n : <Button className={className} onClick={onClick}>{children}</Button>\r\n\r\n )\r\n}\r\n\r\nexport default NavElement\r\n"],"names":["React","utils"],"mappings":";;;;AAIM,IAAA,UAAU,GAAG,UAAC,EAcnB,EAAA;AAbC,IAAA,IAAA,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,IAAI,UAAA,EACJ,EAAE,QAAA,EACF,EAAA,GAAA,EAAA,CAAA,SAAgB,EAAhB,SAAS,GAAA,EAAA,KAAA,MAAA,GAAG,IAAI,GAAA,EAAA,EAChB,OAAO,GAAA,EAAA,CAAA,OAAA;AASP,IAAA,QACE;AACE,UAAEA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAG,CAAA,MAAA,CAAA,IAAI,KAAK,EAAE,GAAG,EAAA,CAAA,MAAA,CAAG,IAAI,EAAA,GAAA,CAAG,GAAG,EAAE,CAAG,CAAA,MAAA,CAAA,EAAE,CAAE,EAAE,SAAS,EAAEC,OAAK,CAAC,iBAAiB,CAAC;AACtF,gBAAA,SAAS,EAAA;aACV,CAAC,EAAA,EAAG,QAAQ;AACb,UAAED,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAA,EAAG,QAAQ,CAAU;AAG3E;;;;"}
@@ -2,20 +2,53 @@ import { __assign } from '../../../node_modules/tslib/tslib.es6.js';
2
2
  import { FormSectionContextProvider, useFormSectionContext } from './FormSectionContextProvider.js';
3
3
  import FormSection from './FormSection.js';
4
4
  import NavElement from './NavElement.js';
5
- import { calculateSectionStatus } from '../helpers.js';
6
- import { InfoCircledIcon } from '../../../node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
7
- import React__default from 'react';
5
+ import { calculateSectionStatus } from '../../utils/validators.js';
6
+ import { InfoCircledIcon, Cross2Icon, DropdownMenuIcon } from '../../../node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
7
+ import React__default, { useState, useEffect } from 'react';
8
8
  import { useFormContext } from './FormContextProvider.js';
9
9
  import InlineMarkdown from '../Components/InlineMarkdown.js';
10
+ import layoutAtom from '../../utils/responsive/layoutState.js';
11
+ import { Button } from '../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
10
12
  import { useParams } from '../../../node_modules/react-router/dist/development/chunk-HA7DTUK3.js';
13
+ import { useAtom } from '../../../node_modules/jotai/esm/react.js';
11
14
 
12
15
  var PageNav = function (_a) {
13
- var sections = _a.sections; _a.level;
16
+ var sections = _a.sections, level = _a.level;
17
+ var layout = useAtom(layoutAtom)[0];
14
18
  var urlNavigable = useFormContext().urlNavigable;
15
19
  var _b = useFormSectionContext(), activeId = _b.activeId, setActiveId = _b.setActiveId, path = _b.path;
16
- return (React__default.createElement("div", { className: 'flex flex-col w-[200px] border-slate-200' }, sections === null || sections === void 0 ? void 0 : sections.map(function (p) {
17
- return (React__default.createElement(NavElement, { key: p.id, path: path, id: p.id, navigable: urlNavigable !== null && urlNavigable !== void 0 ? urlNavigable : true, onClick: function () { setActiveId(p.id); }, className: "border-none rounded-none bg-slate-100 text-sm font-normal text-left ".concat(activeId === p.id ? 'bg-slate-700 text-white' : 'hover:bg-slate-200') }, p.label));
18
- })));
20
+ return (layout.size === 'sm' || layout.size === 'md'
21
+ ? React__default.createElement(PageNavMobile, { sections: sections, level: level })
22
+ : React__default.createElement("div", { className: 'flex flex-col w-[200px] border-slate-200' }, sections === null || sections === void 0 ? void 0 : sections.map(function (p) {
23
+ return (React__default.createElement(NavElement, { key: p.id, path: path, id: p.id, navigable: urlNavigable !== null && urlNavigable !== void 0 ? urlNavigable : true, onClick: function () { setActiveId(p.id); }, className: "border-none rounded-none bg-slate-100 text-sm font-normal text-left ".concat(activeId === p.id ? 'bg-slate-700 text-white' : 'hover:bg-slate-200') }, p.label));
24
+ })));
25
+ };
26
+ var PageNavMobile = function (_a) {
27
+ var sections = _a.sections; _a.level;
28
+ var _b = useState(false), active = _b[0], setActive = _b[1];
29
+ var _c = useFormSectionContext(), activeId = _c.activeId, setActiveId = _c.setActiveId, path = _c.path;
30
+ var urlNavigable = useFormContext().urlNavigable;
31
+ useEffect(function () {
32
+ setActive(false);
33
+ }, [activeId]);
34
+ return React__default.createElement("div", { className: 'relative' },
35
+ React__default.createElement(Button, { type: 'default', size: 'sm', className: 'bg-none border-none p-2', onClick: function () {
36
+ setActive(!active);
37
+ } },
38
+ React__default.createElement("div", { className: '-mr-4 -ml-2' }, active
39
+ ? React__default.createElement(Cross2Icon, { className: 'inline' })
40
+ : React__default.createElement(DropdownMenuIcon, { className: 'inline w-8 h-8' }))),
41
+ active
42
+ ? React__default.createElement(React__default.Fragment, null,
43
+ React__default.createElement("div", { className: 'bg-slate-400 bg-opacity-40 fixed top-0 left-0 right-0 bottom-0 z-40', onClick: function () { setActive(false); } }),
44
+ React__default.createElement("div", { className: 'fixed left-0 top-0 bottom-0 flex flex-col bg-white z-50 w-[70%] gap-2 p-4 shadow-lg animate-slide-in' },
45
+ React__default.createElement("div", null,
46
+ React__default.createElement(DropdownMenuIcon, { className: 'float-left cursor-pointer w-8 h-8', onClick: function () { setActive(false); } }),
47
+ React__default.createElement(Cross2Icon, { className: 'cursor-pointer w-6 h-6 float-right', onClick: function () { setActive(false); } })), sections === null || sections === void 0 ? void 0 :
48
+ sections.map(function (p) {
49
+ return (React__default.createElement(NavElement, { key: p.id, path: path, id: p.id, navigable: urlNavigable !== null && urlNavigable !== void 0 ? urlNavigable : true, onClick: function () { setActiveId(p.id); }, className: "border-none rounded-none bg-slate-100 text-sm font-normal text-left ".concat(activeId === p.id ? 'bg-slate-700 text-white' : 'hover:bg-slate-200') }, p.label));
50
+ })))
51
+ : React__default.createElement(React__default.Fragment, null));
19
52
  };
20
53
  var ActivePage = function (_a) {
21
54
  var formSection = _a.formSection, onChange = _a.onChange, _b = _a.className, className = _b === void 0 ? 'flex flex-col gap-2 flex-grow' : _b, level = _a.level;
@@ -1 +1 @@
1
- {"version":3,"file":"Page.js","sources":["../../../../../src/Form/Creator/Page.tsx"],"sourcesContent":["import { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\nimport { type IFormSection, type IValueChangeFn, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport FormSection from '@/Form/Creator/FormSection'\nimport NavElement from '@/Form/Creator/NavElement'\nimport { calculateSectionStatus } from '@/Form/helpers'\nimport { InfoCircledIcon } from '@radix-ui/react-icons'\nimport React, { type ReactElement } from 'react'\nimport { useParams } from 'react-router-dom'\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\nimport InlineMarkdown from '@/Form/Components/InlineMarkdown'\n\nconst PageNav = ({\n sections,\n level\n}: {\n sections?: IFormSection[]\n level: number\n}): ReactElement => {\n const { urlNavigable } = useFormContext()\n const { activeId, setActiveId, path } = useFormSectionContext()\n return (\n <div className='flex flex-col w-[200px] border-slate-200'>{\n sections?.map(p => {\n return (\n <NavElement\n key={p.id}\n path={path}\n id={p.id}\n navigable={urlNavigable ?? true}\n onClick={() => { setActiveId(p.id) }}\n className={ `border-none rounded-none bg-slate-100 text-sm font-normal text-left ${activeId === p.id ? 'bg-slate-700 text-white' : 'hover:bg-slate-200'}`}\n >{p.label}</NavElement>\n )\n })\n }</div>\n )\n}\n\nexport interface IPageLayoutProps {\n sections?: IFormSection[]\n onChange?: IValueChangeFn\n level: number\n ContentComponent?: React.FC<{\n level: number\n formSection?: IFormSection\n onChange?: IValueChangeFn\n sectionStatus: IFormSectionStatus\n }>\n NavComponent?: React.FC<{\n sections?: IFormSection[]\n sectionStatus: IFormSectionStatus\n level: number\n }>\n className?: string\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\n}\n\nexport const ActivePage = ({\n formSection,\n onChange,\n className = 'flex flex-col gap-2 flex-grow',\n level\n}: {\n formSection?: IFormSection\n onChange?: IValueChangeFn\n className?: string\n level: number\n}): ReactElement => {\n return (\n <div className={className}>\n {\n formSection?.description !== undefined\n ? <p className=' text-sm'><InfoCircledIcon className='inline -mt-1' /> <InlineMarkdown>{formSection.description}</InlineMarkdown></p>\n : ''\n }\n <FormSection formSection={formSection} onChange={onChange} level={level + 1} />\n </div>\n )\n}\n\nconst PageLayout = (props: IPageLayoutProps): ReactElement => {\n if (props.sections === undefined) {\n return <></>\n }\n const { urlNavigable } = useFormContext()\n const params = (useParams()['*'] ?? '').split('/')\n const path = params.slice(0, props.level).join('/')\n const id = urlNavigable\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\n : props.sections[0]?.id ?? null\n\n return (\n <FormSectionContextProvider path={path} id={id}>\n <PageLayoutContent {...props} />\n </FormSectionContextProvider>\n )\n}\n\nconst PageLayoutContent = ({\n\n sections,\n onChange,\n inputOverrides,\n ContentComponent = ActivePage,\n NavComponent = PageNav,\n className = 'flex flex-row gap-8',\n level\n}: IPageLayoutProps): ReactElement => {\n if (sections === undefined) {\n return <></>\n }\n\n const { setFormValues, formValues } = useFormContext()\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\n const { activeId } = useFormSectionContext()\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\n\n return (\n\n <div className={className}>\n <NavComponent\n sections={sections}\n sectionStatus={sectionStatus}\n level={level}\n />\n <ContentComponent\n formSection={formSection}\n onChange={onChange}\n sectionStatus={sectionStatus}\n level={level}\n />\n </div>\n )\n}\n\nexport default PageLayout\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"Page.js","sources":["../../../../../src/Form/Creator/Page.tsx"],"sourcesContent":["import { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\r\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\r\nimport { type IFormSection, type IValueChangeFn, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport FormSection from '@/Form/Creator/FormSection'\r\nimport NavElement from '@/Form/Creator/NavElement'\r\nimport { calculateSectionStatus } from '@/utils/validators'\r\nimport { Cross2Icon, DropdownMenuIcon, InfoCircledIcon } from '@radix-ui/react-icons'\r\nimport React, { useEffect, useState, type ReactElement } from 'react'\r\nimport { useParams } from 'react-router-dom'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport InlineMarkdown from '@/Form/Components/InlineMarkdown'\r\nimport { useAtom } from 'jotai'\r\nimport layoutAtom from '@/utils/responsive/layoutState'\r\nimport { Button } from '@axdspub/axiom-ui-utilities'\r\n\r\nconst PageNav = ({\r\n sections,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n level: number\r\n}): ReactElement => {\r\n const [layout] = useAtom(layoutAtom)\r\n const { urlNavigable } = useFormContext()\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n return (\r\n layout.size === 'sm' || layout.size === 'md'\r\n ? <PageNavMobile sections={sections} level={level} />\r\n : <div className='flex flex-col w-[200px] border-slate-200'>{\r\n sections?.map(p => {\r\n return (\r\n <NavElement\r\n key={p.id}\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(p.id) }}\r\n className={ `border-none rounded-none bg-slate-100 text-sm font-normal text-left ${activeId === p.id ? 'bg-slate-700 text-white' : 'hover:bg-slate-200'}`}\r\n >{p.label}</NavElement>\r\n )\r\n })\r\n }</div>\r\n\r\n )\r\n}\r\n\r\nconst PageNavMobile = ({\r\n sections,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n level: number\r\n}): ReactElement => {\r\n const [active, setActive] = useState(false)\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n\r\n useEffect(() => {\r\n setActive(false)\r\n }, [activeId])\r\n\r\n return <div className='relative'><Button\r\n type='default'\r\n size='sm'\r\n className='bg-none border-none p-2'\r\n onClick={() => {\r\n setActive(!active)\r\n }}\r\n >\r\n <div className='-mr-4 -ml-2'>{\r\n active\r\n ? <Cross2Icon className='inline' />\r\n : <DropdownMenuIcon className='inline w-8 h-8' />\r\n }\r\n </div>\r\n </Button>\r\n\r\n {\r\n active\r\n ? <><div className='bg-slate-400 bg-opacity-40 fixed top-0 left-0 right-0 bottom-0 z-40' onClick={() => { setActive(false) }}></div>\r\n <div className='fixed left-0 top-0 bottom-0 flex flex-col bg-white z-50 w-[70%] gap-2 p-4 shadow-lg animate-slide-in'>\r\n <div>\r\n <DropdownMenuIcon className='float-left cursor-pointer w-8 h-8' onClick={() => { setActive(false) }} />\r\n <Cross2Icon className='cursor-pointer w-6 h-6 float-right' onClick={() => { setActive(false) }} />\r\n </div>\r\n\r\n {\r\n sections?.map(p => {\r\n return (\r\n <NavElement\r\n key={p.id}\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(p.id) }}\r\n className={ `border-none rounded-none bg-slate-100 text-sm font-normal text-left ${activeId === p.id ? 'bg-slate-700 text-white' : 'hover:bg-slate-200'}`}\r\n >{p.label}</NavElement>\r\n )\r\n })\r\n }\r\n </div>\r\n </>\r\n : <></>\r\n }\r\n </div>\r\n}\r\n\r\nexport interface INavProps {\r\n sections: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n level: number\r\n}\r\n\r\nexport interface IPageLayoutProps {\r\n sections?: IFormSection[]\r\n onChange?: IValueChangeFn\r\n level: number\r\n ContentComponent?: React.FC<{\r\n level: number\r\n formSection?: IFormSection\r\n onChange?: IValueChangeFn\r\n sectionStatus: IFormSectionStatus\r\n }>\r\n NavComponent?: React.FC<INavProps>\r\n className?: string\r\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\r\n}\r\n\r\nexport const ActivePage = ({\r\n formSection,\r\n onChange,\r\n className = 'flex flex-col gap-2 flex-grow',\r\n level\r\n}: {\r\n formSection?: IFormSection\r\n onChange?: IValueChangeFn\r\n className?: string\r\n level: number\r\n}): ReactElement => {\r\n return (\r\n <div className={className}>\r\n {\r\n formSection?.description !== undefined\r\n ? <p className=' text-sm'><InfoCircledIcon className='inline -mt-1' /> <InlineMarkdown>{formSection.description}</InlineMarkdown></p>\r\n : ''\r\n }\r\n <FormSection formSection={formSection} onChange={onChange} level={level + 1} />\r\n </div>\r\n )\r\n}\r\n\r\nconst PageLayout = (props: IPageLayoutProps): ReactElement => {\r\n if (props.sections === undefined) {\r\n return <></>\r\n }\r\n const { urlNavigable } = useFormContext()\r\n const params = (useParams()['*'] ?? '').split('/')\r\n const path = params.slice(0, props.level).join('/')\r\n const id = urlNavigable\r\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\r\n : props.sections[0]?.id ?? null\r\n\r\n return (\r\n <FormSectionContextProvider path={path} id={id}>\r\n <PageLayoutContent {...props} />\r\n </FormSectionContextProvider>\r\n )\r\n}\r\n\r\nconst PageLayoutContent = ({\r\n\r\n sections,\r\n onChange,\r\n inputOverrides,\r\n ContentComponent = ActivePage,\r\n NavComponent = PageNav,\r\n className = 'flex flex-row gap-8',\r\n level\r\n}: IPageLayoutProps): ReactElement => {\r\n if (sections === undefined) {\r\n return <></>\r\n }\r\n\r\n const { setFormValues, formValues } = useFormContext()\r\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\r\n const { activeId } = useFormSectionContext()\r\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\r\n\r\n return (\r\n\r\n <div className={className}>\r\n <NavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n <ContentComponent\r\n formSection={formSection}\r\n onChange={onChange}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default PageLayout\r\n"],"names":["React"],"mappings":"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"}
@@ -1,39 +1,96 @@
1
1
  import { __assign } from '../../../node_modules/tslib/tslib.es6.js';
2
- import { calculateSectionStatus } from '../helpers.js';
2
+ import { calculateSectionStatus } from '../../utils/validators.js';
3
3
  import { ActivePage } from './Page.js';
4
- import { utils as index$1 } from '../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
5
- import { CaretRightIcon, CaretLeftIcon } from '../../../node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
4
+ import { utils as index$1, SelectInput as Select } from '../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
5
+ import { CaretLeftIcon, CaretRightIcon } from '../../../node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
6
6
  import React__default from 'react';
7
7
  import NavElement from './NavElement.js';
8
8
  import { FormSectionContextProvider, useFormSectionContext } from './FormSectionContextProvider.js';
9
9
  import { useFormContext } from './FormContextProvider.js';
10
+ import layoutAtom from '../../utils/responsive/layoutState.js';
11
+ import { useAtomValue } from '../../../node_modules/jotai/esm/react.js';
10
12
  import { useParams } from '../../../node_modules/react-router/dist/development/chunk-HA7DTUK3.js';
11
13
 
12
- var WizardNav = function (_a) {
14
+ var sortByOrder = function (a, b) {
15
+ var _a, _b;
16
+ var aOrder = (_a = a.order) !== null && _a !== void 0 ? _a : Infinity;
17
+ var bOrder = (_b = b.order) !== null && _b !== void 0 ? _b : Infinity;
18
+ return aOrder - bOrder;
19
+ };
20
+ var WizardNavMobile = function (_a) {
21
+ var _b;
22
+ var sections = _a.sections; _a.sectionStatus; _a.level;
23
+ var _c = useFormSectionContext(), activeId = _c.activeId, setActiveId = _c.setActiveId, path = _c.path;
24
+ var urlNavigable = useFormContext().urlNavigable;
25
+ var steps = (sections !== null && sections !== void 0 ? sections : []).sort(sortByOrder);
26
+ var stepsMap = Object.fromEntries(steps.map(function (p) { return [p.id, p]; }));
27
+ var currentStep = (_b = stepsMap[activeId !== null && activeId !== void 0 ? activeId : '']) !== null && _b !== void 0 ? _b : steps[0];
28
+ var currentIndex = steps.indexOf(currentStep);
29
+ var nextIndex = currentIndex + 1;
30
+ var prevIndex = currentIndex - 1;
31
+ // const params = (useParams()['*'] ?? '').split('/')
32
+ // const path = params.slice(0, level).join('/')
33
+ return (React__default.createElement("div", { className: 'flex flex-row gap-4 justify-center items-center' },
34
+ prevIndex >= 0
35
+ ? React__default.createElement(NavElement, { className: 'p-2 bg-none border-none text-sm hover:bg-slate-none', path: path, id: steps[prevIndex].id, navigable: urlNavigable !== null && urlNavigable !== void 0 ? urlNavigable : true, onClick: function () { setActiveId(steps[prevIndex].id); } },
36
+ React__default.createElement(CaretLeftIcon, { className: 'inline w-8 h-8' }))
37
+ : React__default.createElement("span", { className: index$1.createButtonClass({
38
+ className: 'p-2 bg-none border-none text-sm text-slate-400 '
39
+ }) },
40
+ React__default.createElement(CaretLeftIcon, { className: 'inline w-8 h-8' })),
41
+ React__default.createElement("div", { className: 'flex-grow' },
42
+ React__default.createElement(Select, { includePrompt: false, id: 'wizard-step-select', testId: 'wizard-step-select', className: 'shadow-lg', value: activeId !== null && activeId !== void 0 ? activeId : '', onChange: function (e) {
43
+ setActiveId(e === null || e === void 0 ? void 0 : e.value);
44
+ }, options: steps.map(function (p) {
45
+ var _a;
46
+ return ({
47
+ value: p.id,
48
+ label: (_a = p.label) !== null && _a !== void 0 ? _a : p.id
49
+ });
50
+ }) })),
51
+ nextIndex < steps.length
52
+ ? React__default.createElement(NavElement, { path: path, id: steps[nextIndex].id, navigable: urlNavigable !== null && urlNavigable !== void 0 ? urlNavigable : true, className: 'p-2 bg-none border-none text-sm hover:bg-none', onClick: function () { setActiveId(steps[nextIndex].id); } },
53
+ React__default.createElement(CaretRightIcon, { className: 'inline w-8 h-8' }))
54
+ : React__default.createElement("span", { className: index$1.createButtonClass({
55
+ className: 'p-2 bg-none border-none text-sm text-slate-400'
56
+ }) },
57
+ React__default.createElement(CaretRightIcon, { className: 'inline w-8 h-8' }))));
58
+ };
59
+ var WizardNav = function (props) {
60
+ var layout = useAtomValue(layoutAtom);
61
+ return layout.size === 'sm'
62
+ ? React__default.createElement(WizardNavMobile, __assign({}, props))
63
+ : React__default.createElement(WizardNavLargeScreen, __assign({}, props));
64
+ };
65
+ var WizardNavLargeScreen = function (_a) {
13
66
  var sections = _a.sections, sectionStatus = _a.sectionStatus; _a.level;
14
- var steps = (sections !== null && sections !== void 0 ? sections : []).sort(function (a, b) { return a.order - b.order; });
67
+ var form = useFormContext().form;
68
+ var steps = (sections !== null && sections !== void 0 ? sections : []).sort(sortByOrder);
15
69
  var _b = useFormSectionContext(), activeId = _b.activeId, setActiveId = _b.setActiveId, path = _b.path;
16
70
  var urlNavigable = useFormContext().urlNavigable;
17
71
  return (React__default.createElement("div", { className: 'relative' },
18
- React__default.createElement("div", { className: 'h-[2px] top-5 bg-slate-300 absolute left-0 right-0 z-0' }),
19
- React__default.createElement("div", { className: 'flex flex-row gap-1' }, steps.map(function (p, i) {
20
- var _a, _b, _c, _d;
72
+ React__default.createElement("div", { className: 'h-[2px] top-8 bg-slate-300 absolute left-0 right-0 z-0' }),
73
+ React__default.createElement("div", { className: 'flex flex-row gap-4 py-4 max-w-full overflow-x-auto overflow-y-visible' }, steps.map(function (p, i) {
74
+ var _a, _b, _c, _d, _e;
21
75
  return (React__default.createElement("div", { key: p.id, className: 'flex-grow first:flex-shrink last:flex-shrink text-center first:text-left first:ml-4 last:text-right last:mr-4 z-10 relative' },
22
- React__default.createElement(NavElement, { path: path, id: p.id, navigable: urlNavigable !== null && urlNavigable !== void 0 ? urlNavigable : true, className: "px-8 bg-white z-20 border-none text-sm ".concat(activeId === p.id ? 'bg-slate-600 text-white' : 'hover:bg-slate-100'), onClick: function () { setActiveId(p.id); } }, p.label),
76
+ React__default.createElement(NavElement, { path: path, id: p.id, navigable: urlNavigable !== null && urlNavigable !== void 0 ? urlNavigable : true, className: "whitespace-nowrap px-8 bg-white z-20 border-none text-sm ".concat(activeId === p.id ? 'bg-slate-600 text-white' : 'hover:bg-slate-100'), onClick: function () { setActiveId(p.id); } }, p.label),
23
77
  i < steps.length - 1 && steps.length > 1
24
78
  ? React__default.createElement("span", { className: 'hidden absolute right-0 top-2 w-4 h-full bg-white' },
25
79
  React__default.createElement(CaretRightIcon, { className: 'w-4 h-6 fill-slate-300 stroke-slate-300' }))
26
80
  : '',
27
- React__default.createElement("p", { className: 'text-xs mt-4' }, (_a = sectionStatus[p.id]) === null || _a === void 0 ? void 0 :
28
- _a.completed,
29
- " of ", (_b = sectionStatus[p.id]) === null || _b === void 0 ? void 0 :
30
- _b.total,
31
- " total"),
32
- React__default.createElement("p", { className: 'text-xs mt-2' }, (_c = sectionStatus[p.id]) === null || _c === void 0 ? void 0 :
33
- _c.requiredCompleted,
34
- " of ", (_d = sectionStatus[p.id]) === null || _d === void 0 ? void 0 :
35
- _d.requiredTotal,
36
- " required")));
81
+ ((_a = form === null || form === void 0 ? void 0 : form.settings) === null || _a === void 0 ? void 0 : _a.show_progress)
82
+ ? React__default.createElement(React__default.Fragment, null,
83
+ React__default.createElement("p", { className: 'text-xs mt-4' }, (_b = sectionStatus[p.id]) === null || _b === void 0 ? void 0 :
84
+ _b.completed,
85
+ " of ", (_c = sectionStatus[p.id]) === null || _c === void 0 ? void 0 :
86
+ _c.total,
87
+ " total"),
88
+ React__default.createElement("p", { className: 'text-xs mt-2' }, (_d = sectionStatus[p.id]) === null || _d === void 0 ? void 0 :
89
+ _d.requiredCompleted,
90
+ " of ", (_e = sectionStatus[p.id]) === null || _e === void 0 ? void 0 :
91
+ _e.requiredTotal,
92
+ " required"))
93
+ : ''));
37
94
  }))));
38
95
  };
39
96
  var WizardNavSmall = function (_a) {
@@ -41,7 +98,7 @@ var WizardNavSmall = function (_a) {
41
98
  var sections = _a.sections; _a.sectionStatus; _a.level;
42
99
  var _c = useFormSectionContext(), activeId = _c.activeId, setActiveId = _c.setActiveId, path = _c.path;
43
100
  var urlNavigable = useFormContext().urlNavigable;
44
- var steps = (sections !== null && sections !== void 0 ? sections : []).sort(function (a, b) { return a.order - b.order; });
101
+ var steps = (sections !== null && sections !== void 0 ? sections : []).sort(sortByOrder);
45
102
  var stepsMap = Object.fromEntries(steps.map(function (p) { return [p.id, p]; }));
46
103
  var currentStep = (_b = stepsMap[activeId !== null && activeId !== void 0 ? activeId : '']) !== null && _b !== void 0 ? _b : steps[0];
47
104
  var currentIndex = steps.indexOf(currentStep);
@@ -81,7 +138,7 @@ var WizardLayout = function (props) {
81
138
  };
82
139
  var WizardLayoutContent = function (_a) {
83
140
  var _b;
84
- var sections = _a.sections, onChange = _a.onChange, _c = _a.ContentComponent, ContentComponent = _c === void 0 ? ActivePage : _c, _d = _a.NavComponent, NavComponent = _d === void 0 ? WizardNav : _d, _e = _a.SmallNavComponent, SmallNavComponent = _e === void 0 ? WizardNavSmall : _e, _f = _a.className, className = _f === void 0 ? 'flex flex-col gap-16 pt-8' : _f, level = _a.level;
141
+ var sections = _a.sections, onChange = _a.onChange, _c = _a.ContentComponent, ContentComponent = _c === void 0 ? ActivePage : _c, _d = _a.NavComponent, NavComponent = _d === void 0 ? WizardNav : _d, _e = _a.SmallNavComponent, SmallNavComponent = _e === void 0 ? WizardNavSmall : _e, _f = _a.className, className = _f === void 0 ? 'flex flex-col gap-4 pt-8' : _f, level = _a.level;
85
142
  if (sections === undefined) {
86
143
  return React__default.createElement(React__default.Fragment, null);
87
144
  }
@@ -95,5 +152,5 @@ var WizardLayoutContent = function (_a) {
95
152
  React__default.createElement(SmallNavComponent, { sections: sections, sectionStatus: sectionStatus, level: level })));
96
153
  };
97
154
 
98
- export { WizardNav, WizardNavSmall, WizardLayout as default };
155
+ export { WizardNav, WizardNavLargeScreen, WizardNavMobile, WizardNavSmall, WizardLayout as default };
99
156
  //# sourceMappingURL=Wizard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wizard.js","sources":["../../../../../src/Form/Creator/Wizard.tsx"],"sourcesContent":["import { calculateSectionStatus } from '@/Form/helpers'\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\nimport { type IFormSection, type IWizardStep } from '@/Form/Creator/FormCreatorTypes'\nimport { type IPageLayoutProps, ActivePage } from '@/Form/Creator/Page'\nimport { utils } from '@axdspub/axiom-ui-utilities'\nimport { CaretRightIcon, CaretLeftIcon } from '@radix-ui/react-icons'\nimport React, { type ReactElement } from 'react'\nimport { useParams } from 'react-router-dom'\nimport NavElement from '@/Form/Creator/NavElement'\nimport { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\n\nexport const WizardNav = ({\n sections,\n sectionStatus,\n level\n}: {\n sections?: IFormSection[]\n sectionStatus: IFormSectionStatus\n level: number\n}): ReactElement => {\n const steps = ((sections ?? []) as IWizardStep[]).sort((a, b) => a.order - b.order)\n const { activeId, setActiveId, path } = useFormSectionContext()\n const { urlNavigable } = useFormContext()\n\n return (\n <div className='relative'>\n <div className='h-[2px] top-5 bg-slate-300 absolute left-0 right-0 z-0' />\n <div className='flex flex-row gap-1'>\n {\n steps.map((p, i) => {\n return (\n <div key={p.id} className='flex-grow first:flex-shrink last:flex-shrink text-center first:text-left first:ml-4 last:text-right last:mr-4 z-10 relative'>\n <NavElement\n path={path}\n id={p.id}\n navigable={urlNavigable ?? true}\n className={`px-8 bg-white z-20 border-none text-sm ${activeId === p.id ? 'bg-slate-600 text-white' : 'hover:bg-slate-100'}`}\n onClick={() => { setActiveId(p.id) }}\n >\n {p.label}\n </NavElement>\n {\n i < steps.length - 1 && steps.length > 1\n ? <span className='hidden absolute right-0 top-2 w-4 h-full bg-white'><CaretRightIcon className='w-4 h-6 fill-slate-300 stroke-slate-300' /></span>\n : ''\n }\n <p className='text-xs mt-4'>{sectionStatus[p.id]?.completed} of {sectionStatus[p.id]?.total} total</p>\n <p className='text-xs mt-2'>{sectionStatus[p.id]?.requiredCompleted} of {sectionStatus[p.id]?.requiredTotal} required</p>\n </div>\n )\n })\n }</div>\n </div>\n )\n}\n\nexport const WizardNavSmall = ({\n sections,\n sectionStatus,\n level\n}: {\n sections?: IFormSection[]\n sectionStatus: IFormSectionStatus\n level: number\n}): ReactElement => {\n const { activeId, setActiveId, path } = useFormSectionContext()\n const { urlNavigable } = useFormContext()\n const steps = ((sections ?? []) as IWizardStep[]).sort((a, b) => a.order - b.order)\n const stepsMap = Object.fromEntries(steps.map(p => [p.id, p]))\n const currentStep = stepsMap[activeId ?? ''] ?? steps[0]\n const currentIndex = steps.indexOf(currentStep)\n const nextIndex = currentIndex + 1\n const prevIndex = currentIndex - 1\n // const params = (useParams()['*'] ?? '').split('/')\n // const path = params.slice(0, level).join('/')\n return (\n <div className='flex flex-row gap-4 justify-end'>{\n prevIndex >= 0\n ? <NavElement\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\n path={path}\n id={steps[prevIndex].id}\n navigable={urlNavigable ?? true}\n onClick={() => { setActiveId(steps[prevIndex].id) }}\n >\n <CaretLeftIcon className='inline' /> Previous\n </NavElement>\n : <span className={utils.createButtonClass({\n className: 'px-4 bg-white border-none text-sm text-slate-400'\n })}>Previous</span>\n }\n {\n nextIndex < steps.length\n ? <NavElement\n path={path}\n id={steps[nextIndex].id}\n navigable={urlNavigable ?? true}\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\n onClick={() => { setActiveId(steps[nextIndex].id) }}\n >\n Next <CaretRightIcon className='inline' />\n </NavElement>\n : <span className={utils.createButtonClass({\n className: 'px-4 bg-white border-none text-sm text-slate-400'\n })}>Next</span>\n }\n </div>\n )\n}\n\nexport interface IWizardLayoutProps extends IPageLayoutProps {\n SmallNavComponent?: React.FC<{\n level: number\n sections?: IFormSection[]\n sectionStatus: IFormSectionStatus\n className?: string\n }>\n}\n\nconst WizardLayout = (props: IPageLayoutProps): ReactElement => {\n if (props.sections === undefined) {\n return <></>\n }\n const { urlNavigable } = useFormContext()\n const params = (useParams()['*'] ?? '').split('/')\n const path = params.slice(0, props.level).join('/')\n const id = urlNavigable\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\n : props.sections[0]?.id ?? null\n\n return (\n <FormSectionContextProvider path={path} id={id}>\n <WizardLayoutContent {...props} />\n </FormSectionContextProvider>\n )\n}\n\nconst WizardLayoutContent = ({\n sections,\n onChange,\n ContentComponent = ActivePage,\n NavComponent = WizardNav,\n SmallNavComponent = WizardNavSmall,\n className = 'flex flex-col gap-16 pt-8',\n level\n}: IWizardLayoutProps): ReactElement => {\n if (sections === undefined) {\n return <></>\n }\n const { formValues, setFormValues } = useFormContext()\n const { activeId } = useFormSectionContext()\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\n\n return (\n\n <div className={className}>\n <NavComponent\n sections={sections}\n sectionStatus={sectionStatus}\n level={level}\n />\n <ContentComponent\n formSection={formSection}\n sectionStatus={sectionStatus}\n onChange={onChange}\n level={level}\n />\n <SmallNavComponent\n sections={sections}\n sectionStatus={sectionStatus}\n level={level}\n />\n </div>\n )\n}\n\nexport default WizardLayout\n"],"names":["React","utils"],"mappings":";;;;;;;;;;;AAYO,IAAM,SAAS,GAAG,UAAC,EAQzB,EAAA;AAPC,IAAA,IAAA,QAAQ,cAAA,CACR,CAAA,aAAa,GAAA,EAAA,CAAA,aAAA,CAAA,CACR,EAAA,CAAA;AAML,IAAA,IAAM,KAAK,GAAI,CAAC,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,MAAA,GAAA,QAAQ,GAAI,EAAE,EAAoB,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAjB,EAAiB,CAAC;AAC7E,IAAA,IAAA,EAAkC,GAAA,qBAAqB,EAAE,EAAvD,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAA4B;AACvD,IAAA,IAAA,YAAY,GAAK,cAAc,EAAE,aAArB;AAEpB,IAAA,QACIA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,UAAU,EAAA;QACvBA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,wDAAwD,EAAG,CAAA;QAC1EA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,qBAAqB,EAEpC,EAAA,KAAK,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA;;YACb,QACEA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAC,6HAA6H,EAAA;gBACrJA,cAAC,CAAA,aAAA,CAAA,UAAU,EACT,EAAA,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,CAAC,CAAC,EAAE,EACR,SAAS,EAAE,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,MAAA,GAAZ,YAAY,GAAI,IAAI,EAC/B,SAAS,EAAE,yCAA0C,CAAA,MAAA,CAAA,QAAQ,KAAK,CAAC,CAAC,EAAE,GAAG,yBAAyB,GAAG,oBAAoB,CAAE,EAC3H,OAAO,EAAE,YAAA,EAAQ,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA,EAAE,EAEnC,EAAA,CAAC,CAAC,KAAK,CACG;gBAEX,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG;AACrC,sBAAEA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,mDAAmD,EAAA;AAAC,wBAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAC,EAAA,SAAS,EAAC,yCAAyC,GAAG;AAC5I,sBAAE,EAAE;gBAERA,cAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,SAAS,EAAC,cAAc,EAAE,EAAA,CAAA,EAAA,GAAA,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA;uBAAE,SAAS;AAAM,oBAAA,MAAA,EAAA,CAAA,EAAA,GAAA,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA;uBAAE,KAAK;AAAW,oBAAA,QAAA,CAAA;gBACtGA,cAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,SAAS,EAAC,cAAc,EAAE,EAAA,CAAA,EAAA,GAAA,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA;uBAAE,iBAAiB;AAAM,oBAAA,MAAA,EAAA,CAAA,EAAA,GAAA,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA;uBAAE,aAAa;AAAc,oBAAA,WAAA,CAAA,CACrH;AAEV,SAAC,CAAC,CACG,CACD;AAEZ;AAEO,IAAM,cAAc,GAAG,UAAC,EAQ9B,EAAA;;AAPC,IAAA,IAAA,QAAQ,cAAA,CACR,CAAa,EAAA,CAAA,aAAA,CAAA,CACR,EAAA,CAAA;AAMC,IAAA,IAAA,EAAkC,GAAA,qBAAqB,EAAE,EAAvD,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAA4B;AACvD,IAAA,IAAA,YAAY,GAAK,cAAc,EAAE,aAArB;AACpB,IAAA,IAAM,KAAK,GAAI,CAAC,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,MAAA,GAAA,QAAQ,GAAI,EAAE,EAAoB,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAjB,EAAiB,CAAC;IACnF,IAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAT,EAAS,CAAC,CAAC;AAC9D,IAAA,IAAM,WAAW,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAR,QAAQ,GAAI,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK,CAAC,CAAC,CAAC;IACxD,IAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AAC/C,IAAA,IAAM,SAAS,GAAG,YAAY,GAAG,CAAC;AAClC,IAAA,IAAM,SAAS,GAAG,YAAY,GAAG,CAAC;;;AAGlC,IAAA,QACIA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iCAAiC,EAAA;AAC9C,QAAA,SAAS,IAAI;cACTA,6BAAC,UAAU,EAAA,EACT,SAAS,EAAC,qEAAqE,EAC/E,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EACvB,SAAS,EAAE,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,MAAA,GAAA,YAAY,GAAI,IAAI,EAC/B,OAAO,EAAE,YAAA,EAAQ,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAA,EAAE,EAAA;AAEjD,gBAAAA,cAAA,CAAA,aAAA,CAAC,aAAa,EAAA,EAAC,SAAS,EAAC,QAAQ,EAAG,CAAA;AAC3B,gBAAA,WAAA;AACf,cAAEA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAEC,OAAK,CAAC,iBAAiB,CAAC;AACzC,oBAAA,SAAS,EAAE;AACZ,iBAAA,CAAC,EAAiB,EAAA,UAAA,CAAA;QAGnB,SAAS,GAAG,KAAK,CAAC;cACdD,6BAAC,UAAU,EAAA,EACT,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EACvB,SAAS,EAAE,YAAY,KAAZ,IAAA,IAAA,YAAY,cAAZ,YAAY,GAAI,IAAI,EAC/B,SAAS,EAAC,qEAAqE,EAC/E,OAAO,EAAE,YAAA,EAAQ,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAA,EAAE,EAAA;;AAE5C,gBAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAC,EAAA,SAAS,EAAC,QAAQ,GAAG;AAEhD,cAAEA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAEC,OAAK,CAAC,iBAAiB,CAAC;AACzC,oBAAA,SAAS,EAAE;iBACZ,CAAC,EAAA,EAAA,MAAA,CAAa,CAEf;AAEZ;AAWM,IAAA,YAAY,GAAG,UAAC,KAAuB,EAAA;;AAC3C,IAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;AAChC,QAAA,OAAOD,2DAAK;;AAEN,IAAA,IAAA,YAAY,GAAK,cAAc,EAAE,aAArB;AACpB,IAAA,IAAM,MAAM,GAAG,CAAC,CAAA,EAAA,GAAA,SAAS,EAAE,CAAC,GAAG,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC;AAClD,IAAA,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACnD,IAAM,EAAE,GAAG;AACT,UAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,0CAAE,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI;AAC5G,UAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI;IAEjC,QACEA,cAAC,CAAA,aAAA,CAAA,0BAA0B,EAAC,EAAA,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAA;AAC5C,QAAAA,cAAA,CAAA,aAAA,CAAC,mBAAmB,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,CAAI,CAAA,CACP;AAEjC;AAEA,IAAM,mBAAmB,GAAG,UAAC,EAQR,EAAA;;AAPnB,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,EAA6B,GAAA,EAAA,CAAA,gBAAA,EAA7B,gBAAgB,GAAA,EAAA,KAAA,MAAA,GAAG,UAAU,GAAA,EAAA,EAC7B,EAAwB,GAAA,EAAA,CAAA,YAAA,EAAxB,YAAY,GAAG,EAAA,KAAA,MAAA,GAAA,SAAS,GAAA,EAAA,EACxB,EAAkC,GAAA,EAAA,CAAA,iBAAA,EAAlC,iBAAiB,GAAA,EAAA,KAAA,MAAA,GAAG,cAAc,GAAA,EAAA,EAClC,EAAuC,GAAA,EAAA,CAAA,SAAA,EAAvC,SAAS,GAAG,EAAA,KAAA,MAAA,GAAA,2BAA2B,GAAA,EAAA,EACvC,KAAK,GAAA,EAAA,CAAA,KAAA;AAEL,IAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,QAAA,OAAOA,2DAAK;;IAER,IAAA,EAAA,GAAgC,cAAc,EAAE,EAA9C,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,aAAa,GAAA,EAAA,CAAA,aAAqB;AAC9C,IAAA,IAAA,QAAQ,GAAK,qBAAqB,EAAE,SAA5B;AAChB,IAAA,IAAM,WAAW,GAAG,CAAA,EAAA,GAAA,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAE,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAjB,EAAiB,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,MAAA,GAAA,MAAA,GAAA,QAAQ,CAAG,CAAC,CAAC;AAC3E,IAAA,IAAM,aAAa,GAAG,sBAAsB,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEnF,IAAA,QAEIA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,SAAS,EAAA;AACvB,QAAAA,cAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EACT,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,EACZ,CAAA;AACJ,QAAAA,cAAA,CAAA,aAAA,CAAC,gBAAgB,EACb,EAAA,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACV,CAAA;AACN,QAAAA,cAAA,CAAA,aAAA,CAAC,iBAAiB,EAChB,EAAA,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,EACV,CAAA,CACA;AAEZ,CAAC;;;;"}
1
+ {"version":3,"file":"Wizard.js","sources":["../../../../../src/Form/Creator/Wizard.tsx"],"sourcesContent":["import { calculateSectionStatus } from '@/utils/validators'\r\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\r\nimport { type IFormSection, type IWizardStep } from '@/Form/Creator/FormCreatorTypes'\r\nimport { type IPageLayoutProps, ActivePage, type INavProps } from '@/Form/Creator/Page'\r\nimport { SelectInput, utils } from '@axdspub/axiom-ui-utilities'\r\nimport { CaretRightIcon, CaretLeftIcon } from '@radix-ui/react-icons'\r\nimport React, { type ReactElement } from 'react'\r\nimport { useParams } from 'react-router-dom'\r\nimport NavElement from '@/Form/Creator/NavElement'\r\nimport { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport { useAtomValue } from 'jotai'\r\nimport layoutAtom from '@/utils/responsive/layoutState'\r\n\r\nconst sortByOrder = (a: IWizardStep, b: IWizardStep): number => {\r\n const aOrder = a.order ?? Infinity\r\n const bOrder = b.order ?? Infinity\r\n return aOrder - bOrder\r\n}\r\n\r\nexport const WizardNavMobile = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: INavProps): ReactElement => {\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const stepsMap = Object.fromEntries(steps.map(p => [p.id, p]))\r\n const currentStep = stepsMap[activeId ?? ''] ?? steps[0]\r\n const currentIndex = steps.indexOf(currentStep)\r\n const nextIndex = currentIndex + 1\r\n const prevIndex = currentIndex - 1\r\n // const params = (useParams()['*'] ?? '').split('/')\r\n // const path = params.slice(0, level).join('/')\r\n return (\r\n <div className='flex flex-row gap-4 justify-center items-center'>{\r\n prevIndex >= 0\r\n ? <NavElement\r\n className='p-2 bg-none border-none text-sm hover:bg-slate-none'\r\n path={path}\r\n id={steps[prevIndex].id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(steps[prevIndex].id) }}\r\n >\r\n <CaretLeftIcon className='inline w-8 h-8' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'p-2 bg-none border-none text-sm text-slate-400 '\r\n })}><CaretLeftIcon className='inline w-8 h-8' /></span>\r\n }\r\n <div className='flex-grow'>\r\n <SelectInput\r\n includePrompt={false}\r\n id='wizard-step-select'\r\n testId='wizard-step-select'\r\n className='shadow-lg'\r\n value={activeId ?? ''}\r\n onChange={(e) => {\r\n setActiveId(e?.value)\r\n }}\r\n options={steps.map(p => ({\r\n value: p.id,\r\n label: p.label ?? p.id\r\n }))}\r\n />\r\n </div>\r\n\r\n {\r\n nextIndex < steps.length\r\n ? <NavElement\r\n path={path}\r\n id={steps[nextIndex].id}\r\n navigable={urlNavigable ?? true}\r\n className='p-2 bg-none border-none text-sm hover:bg-none'\r\n onClick={() => { setActiveId(steps[nextIndex].id) }}\r\n >\r\n <CaretRightIcon className='inline w-8 h-8' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'p-2 bg-none border-none text-sm text-slate-400'\r\n })}><CaretRightIcon className='inline w-8 h-8' /></span>\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport const WizardNav = (props: INavProps): ReactElement => {\r\n const layout = useAtomValue(layoutAtom)\r\n return layout.size === 'sm'\r\n ? <WizardNavMobile {...props} />\r\n : <WizardNavLargeScreen {...props} />\r\n}\r\n\r\nexport const WizardNavLargeScreen = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: INavProps): ReactElement => {\r\n const { form } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n\r\n return (\r\n <div className='relative'>\r\n <div className='h-[2px] top-8 bg-slate-300 absolute left-0 right-0 z-0' />\r\n <div className='flex flex-row gap-4 py-4 max-w-full overflow-x-auto overflow-y-visible'>\r\n {\r\n steps.map((p, i) => {\r\n return (\r\n <div key={p.id} className='flex-grow first:flex-shrink last:flex-shrink text-center first:text-left first:ml-4 last:text-right last:mr-4 z-10 relative'>\r\n <NavElement\r\n\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n className={`whitespace-nowrap px-8 bg-white z-20 border-none text-sm ${activeId === p.id ? 'bg-slate-600 text-white' : 'hover:bg-slate-100'}`}\r\n onClick={() => { setActiveId(p.id) }}\r\n >\r\n {p.label}\r\n </NavElement>\r\n {\r\n i < steps.length - 1 && steps.length > 1\r\n ? <span className='hidden absolute right-0 top-2 w-4 h-full bg-white'><CaretRightIcon className='w-4 h-6 fill-slate-300 stroke-slate-300' /></span>\r\n : ''\r\n }\r\n {\r\n form?.settings?.show_progress\r\n ? <>\r\n <p className='text-xs mt-4'>{sectionStatus[p.id]?.completed} of {sectionStatus[p.id]?.total} total</p>\r\n <p className='text-xs mt-2'>{sectionStatus[p.id]?.requiredCompleted} of {sectionStatus[p.id]?.requiredTotal} required</p>\r\n </>\r\n : ''\r\n }\r\n\r\n </div>\r\n )\r\n })\r\n }</div>\r\n </div>\r\n )\r\n}\r\n\r\nexport const WizardNavSmall = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n level: number\r\n}): ReactElement => {\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const stepsMap = Object.fromEntries(steps.map(p => [p.id, p]))\r\n const currentStep = stepsMap[activeId ?? ''] ?? steps[0]\r\n const currentIndex = steps.indexOf(currentStep)\r\n const nextIndex = currentIndex + 1\r\n const prevIndex = currentIndex - 1\r\n // const params = (useParams()['*'] ?? '').split('/')\r\n // const path = params.slice(0, level).join('/')\r\n return (\r\n <div className='flex flex-row gap-4 justify-end'>{\r\n prevIndex >= 0\r\n ? <NavElement\r\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\r\n path={path}\r\n id={steps[prevIndex].id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(steps[prevIndex].id) }}\r\n >\r\n <CaretLeftIcon className='inline' /> Previous\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'px-4 bg-white border-none text-sm text-slate-400'\r\n })}>Previous</span>\r\n }\r\n {\r\n nextIndex < steps.length\r\n ? <NavElement\r\n path={path}\r\n id={steps[nextIndex].id}\r\n navigable={urlNavigable ?? true}\r\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\r\n onClick={() => { setActiveId(steps[nextIndex].id) }}\r\n >\r\n Next <CaretRightIcon className='inline' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'px-4 bg-white border-none text-sm text-slate-400'\r\n })}>Next</span>\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport interface IWizardLayoutProps extends IPageLayoutProps {\r\n SmallNavComponent?: React.FC<{\r\n level: number\r\n sections?: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n className?: string\r\n }>\r\n}\r\n\r\nconst WizardLayout = (props: IPageLayoutProps): ReactElement => {\r\n if (props.sections === undefined) {\r\n return <></>\r\n }\r\n const { urlNavigable } = useFormContext()\r\n const params = (useParams()['*'] ?? '').split('/')\r\n const path = params.slice(0, props.level).join('/')\r\n const id = urlNavigable\r\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\r\n : props.sections[0]?.id ?? null\r\n\r\n return (\r\n <FormSectionContextProvider path={path} id={id}>\r\n <WizardLayoutContent {...props} />\r\n </FormSectionContextProvider>\r\n )\r\n}\r\n\r\nconst WizardLayoutContent = ({\r\n sections,\r\n onChange,\r\n ContentComponent = ActivePage,\r\n NavComponent = WizardNav,\r\n SmallNavComponent = WizardNavSmall,\r\n className = 'flex flex-col gap-4 pt-8',\r\n level\r\n}: IWizardLayoutProps): ReactElement => {\r\n if (sections === undefined) {\r\n return <></>\r\n }\r\n const { formValues, setFormValues } = useFormContext()\r\n const { activeId } = useFormSectionContext()\r\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\r\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\r\n\r\n return (\r\n\r\n <div className={className}>\r\n <NavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n <ContentComponent\r\n formSection={formSection}\r\n sectionStatus={sectionStatus}\r\n onChange={onChange}\r\n level={level}\r\n />\r\n <SmallNavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default WizardLayout\r\n"],"names":["React","utils","SelectInput"],"mappings":"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"}