@bgroup/wise-form 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/README.md +34 -0
  2. package/dist/components/ui/Checkbox.d.ts +14 -0
  3. package/dist/components/ui/Checkbox.d.ts.map +1 -0
  4. package/dist/components/ui/Checkbox.js +43 -0
  5. package/dist/components/ui/Checkbox.js.map +1 -0
  6. package/dist/components/ui/CheckboxGroup.d.ts +15 -0
  7. package/dist/components/ui/CheckboxGroup.d.ts.map +1 -0
  8. package/dist/components/ui/CheckboxGroup.js +33 -0
  9. package/dist/components/ui/CheckboxGroup.js.map +1 -0
  10. package/dist/components/ui/Input.d.ts +14 -0
  11. package/dist/components/ui/Input.d.ts.map +1 -0
  12. package/dist/components/ui/Input.js +49 -0
  13. package/dist/components/ui/Input.js.map +1 -0
  14. package/dist/components/ui/Radio.d.ts +14 -0
  15. package/dist/components/ui/Radio.d.ts.map +1 -0
  16. package/dist/components/ui/Radio.js +43 -0
  17. package/dist/components/ui/Radio.js.map +1 -0
  18. package/dist/components/ui/Select.d.ts +18 -0
  19. package/dist/components/ui/Select.d.ts.map +1 -0
  20. package/dist/components/ui/Select.js +44 -0
  21. package/dist/components/ui/Select.js.map +1 -0
  22. package/dist/components/ui/Textarea.d.ts +13 -0
  23. package/dist/components/ui/Textarea.d.ts.map +1 -0
  24. package/dist/components/ui/Textarea.js +42 -0
  25. package/dist/components/ui/Textarea.js.map +1 -0
  26. package/dist/components/ui/index.d.ts +13 -0
  27. package/dist/components/ui/index.d.ts.map +1 -0
  28. package/dist/components/ui/index.js +7 -0
  29. package/dist/components/ui/index.js.map +1 -0
  30. package/dist/form/index.d.ts +10 -0
  31. package/dist/form/index.d.ts.map +1 -0
  32. package/dist/form/index.js +5 -0
  33. package/dist/form/index.js.map +1 -0
  34. package/dist/form/interfaces/field-container.d.ts +8 -0
  35. package/dist/form/interfaces/field-container.d.ts.map +1 -0
  36. package/dist/form/interfaces/field-container.js +2 -0
  37. package/dist/form/interfaces/field-container.js.map +1 -0
  38. package/dist/form/interfaces/interfaces.d.ts +8 -0
  39. package/dist/form/interfaces/interfaces.d.ts.map +1 -0
  40. package/dist/form/interfaces/interfaces.js +2 -0
  41. package/dist/form/interfaces/interfaces.js.map +1 -0
  42. package/dist/form/interfaces/settings.d.ts +10 -0
  43. package/dist/form/interfaces/settings.d.ts.map +1 -0
  44. package/dist/form/interfaces/settings.js +2 -0
  45. package/dist/form/interfaces/settings.js.map +1 -0
  46. package/dist/form/interfaces/template.d.ts +6 -0
  47. package/dist/form/interfaces/template.d.ts.map +1 -0
  48. package/dist/form/interfaces/template.js +2 -0
  49. package/dist/form/interfaces/template.js.map +1 -0
  50. package/dist/form/interfaces/wise-form-specs.d.ts +9 -0
  51. package/dist/form/interfaces/wise-form-specs.d.ts.map +1 -0
  52. package/dist/form/interfaces/wise-form-specs.js +2 -0
  53. package/dist/form/interfaces/wise-form-specs.js.map +1 -0
  54. package/dist/form/view/components/containers/index.d.ts +3 -0
  55. package/dist/form/view/components/containers/index.d.ts.map +1 -0
  56. package/dist/form/view/components/containers/index.js +12 -0
  57. package/dist/form/view/components/containers/index.js.map +1 -0
  58. package/dist/form/view/components/error.d.ts +5 -0
  59. package/dist/form/view/components/error.d.ts.map +1 -0
  60. package/dist/form/view/components/error.js +8 -0
  61. package/dist/form/view/components/error.js.map +1 -0
  62. package/dist/form/view/components/field/container.d.ts +5 -0
  63. package/dist/form/view/components/field/container.d.ts.map +1 -0
  64. package/dist/form/view/components/field/container.js +5 -0
  65. package/dist/form/view/components/field/container.js.map +1 -0
  66. package/dist/form/view/components/field/index.d.ts +18 -0
  67. package/dist/form/view/components/field/index.d.ts.map +1 -0
  68. package/dist/form/view/components/field/index.js +89 -0
  69. package/dist/form/view/components/field/index.js.map +1 -0
  70. package/dist/form/view/components/field/selection.d.ts +2 -0
  71. package/dist/form/view/components/field/selection.d.ts.map +1 -0
  72. package/dist/form/view/components/field/selection.js +35 -0
  73. package/dist/form/view/components/field/selection.js.map +1 -0
  74. package/dist/form/view/components/field/use-field.d.ts +4 -0
  75. package/dist/form/view/components/field/use-field.d.ts.map +1 -0
  76. package/dist/form/view/components/field/use-field.js +41 -0
  77. package/dist/form/view/components/field/use-field.js.map +1 -0
  78. package/dist/form/view/components/rows/row-container.d.ts +18 -0
  79. package/dist/form/view/components/rows/row-container.d.ts.map +1 -0
  80. package/dist/form/view/components/rows/row-container.js +89 -0
  81. package/dist/form/view/components/rows/row-container.js.map +1 -0
  82. package/dist/form/view/components/rows/wrapper.d.ts +12 -0
  83. package/dist/form/view/components/rows/wrapper.d.ts.map +1 -0
  84. package/dist/form/view/components/rows/wrapper.js +27 -0
  85. package/dist/form/view/components/rows/wrapper.js.map +1 -0
  86. package/dist/form/view/components/wrapped-form.d.ts +6 -0
  87. package/dist/form/view/components/wrapped-form.d.ts.map +1 -0
  88. package/dist/form/view/components/wrapped-form.js +26 -0
  89. package/dist/form/view/components/wrapped-form.js.map +1 -0
  90. package/dist/form/view/context.d.ts +23 -0
  91. package/dist/form/view/context.d.ts.map +1 -0
  92. package/dist/form/view/context.js +7 -0
  93. package/dist/form/view/context.js.map +1 -0
  94. package/dist/form/view/hooks/use-model.d.ts +10 -0
  95. package/dist/form/view/hooks/use-model.d.ts.map +1 -0
  96. package/dist/form/view/hooks/use-model.js +31 -0
  97. package/dist/form/view/hooks/use-model.js.map +1 -0
  98. package/dist/form/view/hooks/use-template.d.ts +14 -0
  99. package/dist/form/view/hooks/use-template.d.ts.map +1 -0
  100. package/dist/form/view/hooks/use-template.js +57 -0
  101. package/dist/form/view/hooks/use-template.js.map +1 -0
  102. package/dist/form/view/hooks/use-types.d.ts +2 -0
  103. package/dist/form/view/hooks/use-types.d.ts.map +1 -0
  104. package/dist/form/view/hooks/use-types.js +19 -0
  105. package/dist/form/view/hooks/use-types.js.map +1 -0
  106. package/dist/form/view/index.d.ts +3 -0
  107. package/dist/form/view/index.d.ts.map +1 -0
  108. package/dist/form/view/index.js +38 -0
  109. package/dist/form/view/index.js.map +1 -0
  110. package/dist/formulas/helpers/condition-types.d.ts +5 -0
  111. package/dist/formulas/helpers/condition-types.d.ts.map +1 -0
  112. package/dist/formulas/helpers/condition-types.js +5 -0
  113. package/dist/formulas/helpers/condition-types.js.map +1 -0
  114. package/dist/formulas/helpers/evaluations.d.ts +15 -0
  115. package/dist/formulas/helpers/evaluations.d.ts.map +1 -0
  116. package/dist/formulas/helpers/evaluations.js +44 -0
  117. package/dist/formulas/helpers/evaluations.js.map +1 -0
  118. package/dist/formulas/helpers/formula.d.ts +6 -0
  119. package/dist/formulas/helpers/formula.d.ts.map +1 -0
  120. package/dist/formulas/helpers/formula.js +26 -0
  121. package/dist/formulas/helpers/formula.js.map +1 -0
  122. package/dist/formulas/helpers/lexer.d.ts +10 -0
  123. package/dist/formulas/helpers/lexer.d.ts.map +1 -0
  124. package/dist/formulas/helpers/lexer.js +73 -0
  125. package/dist/formulas/helpers/lexer.js.map +1 -0
  126. package/dist/formulas/helpers/parser.d.ts +24 -0
  127. package/dist/formulas/helpers/parser.d.ts.map +1 -0
  128. package/dist/formulas/helpers/parser.js +48 -0
  129. package/dist/formulas/helpers/parser.js.map +1 -0
  130. package/dist/formulas/helpers/token.d.ts +14 -0
  131. package/dist/formulas/helpers/token.d.ts.map +1 -0
  132. package/dist/formulas/helpers/token.js +14 -0
  133. package/dist/formulas/helpers/token.js.map +1 -0
  134. package/dist/formulas/index.d.ts +59 -0
  135. package/dist/formulas/index.d.ts.map +1 -0
  136. package/dist/formulas/index.js +186 -0
  137. package/dist/formulas/index.js.map +1 -0
  138. package/dist/formulas/types/formulas.d.ts +68 -0
  139. package/dist/formulas/types/formulas.d.ts.map +1 -0
  140. package/dist/formulas/types/formulas.js +2 -0
  141. package/dist/formulas/types/formulas.js.map +1 -0
  142. package/dist/formulas/types/index.d.ts +5 -0
  143. package/dist/formulas/types/index.d.ts.map +1 -0
  144. package/dist/formulas/types/index.js +2 -0
  145. package/dist/formulas/types/index.js.map +1 -0
  146. package/dist/formulas/variants/array-formula.d.ts +24 -0
  147. package/dist/formulas/variants/array-formula.d.ts.map +1 -0
  148. package/dist/formulas/variants/array-formula.js +142 -0
  149. package/dist/formulas/variants/array-formula.js.map +1 -0
  150. package/dist/formulas/variants/base.d.ts +6 -0
  151. package/dist/formulas/variants/base.d.ts.map +1 -0
  152. package/dist/formulas/variants/base.js +3 -0
  153. package/dist/formulas/variants/base.js.map +1 -0
  154. package/dist/formulas/variants/basic.d.ts +18 -0
  155. package/dist/formulas/variants/basic.d.ts.map +1 -0
  156. package/dist/formulas/variants/basic.js +128 -0
  157. package/dist/formulas/variants/basic.js.map +1 -0
  158. package/dist/formulas/variants/comparison.d.ts +25 -0
  159. package/dist/formulas/variants/comparison.d.ts.map +1 -0
  160. package/dist/formulas/variants/comparison.js +153 -0
  161. package/dist/formulas/variants/comparison.js.map +1 -0
  162. package/dist/formulas/variants/conditional.d.ts +18 -0
  163. package/dist/formulas/variants/conditional.d.ts.map +1 -0
  164. package/dist/formulas/variants/conditional.js +183 -0
  165. package/dist/formulas/variants/conditional.js.map +1 -0
  166. package/dist/formulas/variants/iterative-array.d.ts +20 -0
  167. package/dist/formulas/variants/iterative-array.d.ts.map +1 -0
  168. package/dist/formulas/variants/iterative-array.js +155 -0
  169. package/dist/formulas/variants/iterative-array.js.map +1 -0
  170. package/dist/formulas/variants/per-value.d.ts +20 -0
  171. package/dist/formulas/variants/per-value.d.ts.map +1 -0
  172. package/dist/formulas/variants/per-value.js +154 -0
  173. package/dist/formulas/variants/per-value.js.map +1 -0
  174. package/dist/index.d.ts +5 -0
  175. package/dist/index.d.ts.map +1 -0
  176. package/dist/index.js +6 -0
  177. package/dist/index.js.map +1 -0
  178. package/dist/models/base.d.ts +55 -0
  179. package/dist/models/base.d.ts.map +1 -0
  180. package/dist/models/base.js +146 -0
  181. package/dist/models/base.js.map +1 -0
  182. package/dist/models/callback-manager.d.ts +7 -0
  183. package/dist/models/callback-manager.d.ts.map +1 -0
  184. package/dist/models/callback-manager.js +89 -0
  185. package/dist/models/callback-manager.js.map +1 -0
  186. package/dist/models/field.d.ts +121 -0
  187. package/dist/models/field.d.ts.map +1 -0
  188. package/dist/models/field.js +374 -0
  189. package/dist/models/field.js.map +1 -0
  190. package/dist/models/index.d.ts +13 -0
  191. package/dist/models/index.d.ts.map +1 -0
  192. package/dist/models/index.js +7 -0
  193. package/dist/models/index.js.map +1 -0
  194. package/dist/models/model.d.ts +37 -0
  195. package/dist/models/model.d.ts.map +1 -0
  196. package/dist/models/model.js +245 -0
  197. package/dist/models/model.js.map +1 -0
  198. package/dist/models/plugins/base.d.ts +9 -0
  199. package/dist/models/plugins/base.d.ts.map +1 -0
  200. package/dist/models/plugins/base.js +3 -0
  201. package/dist/models/plugins/base.js.map +1 -0
  202. package/dist/models/plugins/formula.d.ts +18 -0
  203. package/dist/models/plugins/formula.d.ts.map +1 -0
  204. package/dist/models/plugins/formula.js +82 -0
  205. package/dist/models/plugins/formula.js.map +1 -0
  206. package/dist/models/plugins/index.d.ts +11 -0
  207. package/dist/models/plugins/index.d.ts.map +1 -0
  208. package/dist/models/plugins/index.js +52 -0
  209. package/dist/models/plugins/index.js.map +1 -0
  210. package/dist/models/plugins/plugins.d.ts +7 -0
  211. package/dist/models/plugins/plugins.d.ts.map +1 -0
  212. package/dist/models/plugins/plugins.js +7 -0
  213. package/dist/models/plugins/plugins.js.map +1 -0
  214. package/dist/models/types/base-wise-model.d.ts +7 -0
  215. package/dist/models/types/base-wise-model.d.ts.map +1 -0
  216. package/dist/models/types/base-wise-model.js +2 -0
  217. package/dist/models/types/base-wise-model.js.map +1 -0
  218. package/dist/models/types/callbacks.d.ts +19 -0
  219. package/dist/models/types/callbacks.d.ts.map +1 -0
  220. package/dist/models/types/callbacks.js +2 -0
  221. package/dist/models/types/callbacks.js.map +1 -0
  222. package/dist/models/types/disabled.d.ts +8 -0
  223. package/dist/models/types/disabled.d.ts.map +1 -0
  224. package/dist/models/types/disabled.js +2 -0
  225. package/dist/models/types/disabled.js.map +1 -0
  226. package/dist/models/types/form-field.d.ts +25 -0
  227. package/dist/models/types/form-field.d.ts.map +1 -0
  228. package/dist/models/types/form-field.js +2 -0
  229. package/dist/models/types/form-field.js.map +1 -0
  230. package/dist/models/types/model.d.ts +13 -0
  231. package/dist/models/types/model.d.ts.map +1 -0
  232. package/dist/models/types/model.js +2 -0
  233. package/dist/models/types/model.js.map +1 -0
  234. package/dist/models/types/plugins.d.ts +13 -0
  235. package/dist/models/types/plugins.d.ts.map +1 -0
  236. package/dist/models/types/plugins.js +2 -0
  237. package/dist/models/types/plugins.js.map +1 -0
  238. package/dist/models/types/wrapped-form-model-props.d.ts +11 -0
  239. package/dist/models/types/wrapped-form-model-props.d.ts.map +1 -0
  240. package/dist/models/types/wrapped-form-model-props.js +2 -0
  241. package/dist/models/types/wrapped-form-model-props.js.map +1 -0
  242. package/dist/models/wrapper.d.ts +30 -0
  243. package/dist/models/wrapper.d.ts.map +1 -0
  244. package/dist/models/wrapper.js +213 -0
  245. package/dist/models/wrapper.js.map +1 -0
  246. package/dist/settings/index.d.ts +7 -0
  247. package/dist/settings/index.d.ts.map +1 -0
  248. package/dist/settings/index.js +26 -0
  249. package/dist/settings/index.js.map +1 -0
  250. package/dist/utils/pending-promise.d.ts +6 -0
  251. package/dist/utils/pending-promise.d.ts.map +1 -0
  252. package/dist/utils/pending-promise.js +24 -0
  253. package/dist/utils/pending-promise.js.map +1 -0
  254. package/package.json +38 -0
  255. package/src/components/ui/Checkbox.tsx +68 -0
  256. package/src/components/ui/CheckboxGroup.tsx +60 -0
  257. package/src/components/ui/Input.tsx +72 -0
  258. package/src/components/ui/Radio.tsx +68 -0
  259. package/src/components/ui/Select.tsx +73 -0
  260. package/src/components/ui/Textarea.tsx +63 -0
  261. package/src/components/ui/index.ts +14 -0
  262. package/src/form/index.ts +11 -0
  263. package/src/form/interfaces/field-container.ts +9 -0
  264. package/src/form/interfaces/interfaces.ts +12 -0
  265. package/src/form/interfaces/settings.ts +11 -0
  266. package/src/form/interfaces/template.ts +7 -0
  267. package/src/form/interfaces/wise-form-specs.ts +10 -0
  268. package/src/form/styles.css +40 -0
  269. package/src/form/view/components/containers/index.tsx +18 -0
  270. package/src/form/view/components/error.tsx +9 -0
  271. package/src/form/view/components/field/container.tsx +6 -0
  272. package/src/form/view/components/field/index.tsx +107 -0
  273. package/src/form/view/components/field/selection.tsx +39 -0
  274. package/src/form/view/components/field/use-field.tsx +49 -0
  275. package/src/form/view/components/rows/row-container.tsx +96 -0
  276. package/src/form/view/components/rows/wrapper.tsx +28 -0
  277. package/src/form/view/components/wrapped-form.tsx +32 -0
  278. package/src/form/view/context.tsx +26 -0
  279. package/src/form/view/hooks/use-model.ts +37 -0
  280. package/src/form/view/hooks/use-template.tsx +64 -0
  281. package/src/form/view/hooks/use-types.ts +21 -0
  282. package/src/form/view/index.tsx +48 -0
  283. package/src/formulas/helpers/condition-types.ts +5 -0
  284. package/src/formulas/helpers/evaluations.ts +48 -0
  285. package/src/formulas/helpers/formula.ts +27 -0
  286. package/src/formulas/helpers/lexer.ts +82 -0
  287. package/src/formulas/helpers/parser.ts +55 -0
  288. package/src/formulas/helpers/token.ts +22 -0
  289. package/src/formulas/index.ts +198 -0
  290. package/src/formulas/types/formulas.ts +72 -0
  291. package/src/formulas/types/index.ts +5 -0
  292. package/src/formulas/variants/array-formula.ts +138 -0
  293. package/src/formulas/variants/base.ts +6 -0
  294. package/src/formulas/variants/basic.ts +141 -0
  295. package/src/formulas/variants/comparison.ts +156 -0
  296. package/src/formulas/variants/conditional.ts +208 -0
  297. package/src/formulas/variants/iterative-array.ts +152 -0
  298. package/src/formulas/variants/per-value.ts +152 -0
  299. package/src/index.ts +6 -0
  300. package/src/models/base.ts +164 -0
  301. package/src/models/callback-manager.ts +102 -0
  302. package/src/models/field.ts +426 -0
  303. package/src/models/index.ts +14 -0
  304. package/src/models/model.ts +260 -0
  305. package/src/models/plugins/base.ts +11 -0
  306. package/src/models/plugins/formula.ts +80 -0
  307. package/src/models/plugins/index.ts +48 -0
  308. package/src/models/plugins/plugins.ts +8 -0
  309. package/src/models/types/base-wise-model.ts +7 -0
  310. package/src/models/types/callbacks.ts +23 -0
  311. package/src/models/types/disabled.ts +8 -0
  312. package/src/models/types/form-field.ts +22 -0
  313. package/src/models/types/model.ts +14 -0
  314. package/src/models/types/plugins.ts +15 -0
  315. package/src/models/types/wrapped-form-model-props.ts +9 -0
  316. package/src/models/wrapper.ts +242 -0
  317. package/src/settings/index.ts +11 -0
  318. package/src/utils/pending-promise.ts +29 -0
  319. package/tsconfig.json +39 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["../../../src/models/types/form-field.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAC;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IAClD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=form-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-field.js","sourceRoot":"","sources":["../../../src/models/types/form-field.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { IFormField } from './form-field';
2
+ type Callback = (...args: any[]) => void | Promise<any>;
3
+ export interface IFormModelProps {
4
+ name?: string;
5
+ params?: Record<string, any>;
6
+ callbacks?: Record<string, Callback>;
7
+ fields?: IFormField[];
8
+ template?: Array<string | number>;
9
+ properties?: string[];
10
+ [key: string]: any;
11
+ }
12
+ export {};
13
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/models/types/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAExD,MAAM,WAAW,eAAe;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/models/types/model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { FormModel } from '../model';
2
+ export interface IPluginFormSpecs {
3
+ object: IPluginForm;
4
+ property: string;
5
+ }
6
+ export interface IPluginForm {
7
+ readonly ready: boolean;
8
+ readonly name: string;
9
+ formulas?: Map<string, any>;
10
+ settings: (model: FormModel, specs: IPluginFormSpecs) => Promise<IPluginForm>;
11
+ [key: string]: any;
12
+ }
13
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../src/models/types/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9E,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../src/models/types/plugins.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import type { FormModel } from '../model';
2
+ import type { WrappedFormModel } from '../wrapper';
3
+ export interface IWrapperFormModelProps {
4
+ parent: FormModel | WrappedFormModel;
5
+ settings: any;
6
+ specs: {
7
+ properties?: string[];
8
+ [key: string]: any;
9
+ };
10
+ }
11
+ //# sourceMappingURL=wrapped-form-model-props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapped-form-model-props.d.ts","sourceRoot":"","sources":["../../../src/models/types/wrapped-form-model-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACrC,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CACrD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=wrapped-form-model-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapped-form-model-props.js","sourceRoot":"","sources":["../../../src/models/types/wrapped-form-model-props.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import type { FormModel } from './model';
2
+ import { IWrapperFormModelProps } from './types/wrapped-form-model-props';
3
+ import { BaseWiseModel } from './base';
4
+ export declare class WrappedFormModel extends BaseWiseModel {
5
+ #private;
6
+ get type(): string;
7
+ get control(): any;
8
+ get form(): FormModel;
9
+ constructor({ parent, settings, specs }: IWrapperFormModelProps);
10
+ /**
11
+ * Retrieves a field or nested wrapper by name. Supports dot notation for accessing deeply nested fields.
12
+ * @param {string} name - The name of the field or nested wrapper to retrieve.
13
+ * @returns {FormField | WrappedFormModel | undefined} The requested instance, or undefined if not found.
14
+ */
15
+ getField(name: string): any;
16
+ /**
17
+ * Initializes all fields within the wrapper, preparing them for user interaction. Its used to know when the fields can start to listen for events or dependencies
18
+ */
19
+ initialize: () => void;
20
+ /**
21
+ * Registers a nested wrapper within this wrapper, adding it to the internal map of child wrappers.
22
+ * @param {WrappedFormModel} wrapper - The child wrapper to register.
23
+ */
24
+ registerWrapper: (wrapper: WrappedFormModel) => void;
25
+ cleanUp: () => void;
26
+ getForm(): FormModel | WrappedFormModel;
27
+ hide: () => void;
28
+ show: () => void;
29
+ }
30
+ //# sourceMappingURL=wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../src/models/wrapper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,qBACM,gBAAiB,SAAQ,aAAa;;IACxC,IAAI,IAAI,WAEP;IAED,IAAI,OAAO,QAEV;IAGD,IAAI,IAAI,cAEP;gBAIW,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,sBAAsB;IA2G/D;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM;IA2DrB;;OAEG;IACH,UAAU,aAER;IAWF;;;OAGG;IACH,eAAe,GAAI,SAAS,gBAAgB,UAG1C;IAEF,OAAO,aAAc;IAErB,OAAO;IAIP,IAAI,aAKF;IAEF,IAAI,aAOF;CACL"}
@@ -0,0 +1,213 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _a, _WrappedFormModel_form, _WrappedFormModel_parent, _WrappedFormModel_startup, _WrappedFormModel_getInstance, _WrappedFormModel_checkReady, _WrappedFormModel_configFields, _WrappedFormModel_listenDependencies;
13
+ import { FormField } from './field';
14
+ import { CallbackManager } from './callback-manager';
15
+ import { BaseWiseModel } from './base';
16
+ export class WrappedFormModel extends BaseWiseModel {
17
+ get type() {
18
+ return 'wrapper';
19
+ }
20
+ get control() {
21
+ return this.settings.control;
22
+ }
23
+ get form() {
24
+ return __classPrivateFieldGet(this, _WrappedFormModel_form, "f");
25
+ }
26
+ constructor({ parent, settings, specs }) {
27
+ const { properties = [], ...props } = specs;
28
+ super({
29
+ ...props,
30
+ properties: ['name', 'className', 'hidden', ...properties],
31
+ });
32
+ _WrappedFormModel_form.set(this, void 0);
33
+ // Reference to the parent FormModel or WrappedFormModel.
34
+ _WrappedFormModel_parent.set(this, void 0);
35
+ /**
36
+ * Initializes the wrapper model by setting up its fields and nested wrappers according to the provided settings.
37
+ * @param {Object} settings - The settings object defining fields and wrapper configurations.
38
+ */
39
+ _WrappedFormModel_startup.set(this, async (settings) => {
40
+ const values = settings.values || {};
41
+ const createItems = (item) => {
42
+ const instance = __classPrivateFieldGet(this, _WrappedFormModel_getInstance, "f").call(this, item, values);
43
+ const onChange = () => {
44
+ // FormField has value, WrappedFormModel doesn't
45
+ if ('value' in instance) {
46
+ this[item.name] = instance.value;
47
+ }
48
+ this.triggerEvent(); // Posible performance improvement.
49
+ };
50
+ instance.on('change', onChange);
51
+ this.fields.set(item.name, instance);
52
+ };
53
+ this.settings.fields.map(createItems);
54
+ await __classPrivateFieldGet(this, _WrappedFormModel_checkReady, "f").call(this);
55
+ __classPrivateFieldGet(this, _WrappedFormModel_parent, "f").triggerEvent('wrappers.children.loaded');
56
+ __classPrivateFieldGet(this, _WrappedFormModel_configFields, "f").call(this);
57
+ this.ready = true;
58
+ this.specs = settings;
59
+ this.set(settings);
60
+ __classPrivateFieldGet(this, _WrappedFormModel_parent, "f").triggerEvent('wrappers.children.loaded');
61
+ });
62
+ /**
63
+ * Creates an instance of a FormField or WrappedFormModel based on the provided item configuration.
64
+ *
65
+ * @param {Object} item - The configuration object for the field or nested wrapper.
66
+ * @param {Record<string, unknown>} values - Initial values for the fields.
67
+ * @returns {WrappedFormModel | FormField} The created instance.
68
+ */
69
+ _WrappedFormModel_getInstance.set(this, (item, values) => {
70
+ let instance;
71
+ let externalValues = {};
72
+ if (Array.isArray(item?.properties)) {
73
+ item?.properties.forEach((item) => (externalValues[item.name] = item.value));
74
+ }
75
+ if (item.type === 'wrapper') {
76
+ if (!item.fields)
77
+ throw new Error(`Wrapper ${item.name} must have fields property`);
78
+ const fieldsProperties = item.fields.map((item) => item.name);
79
+ const properties = [
80
+ ...fieldsProperties,
81
+ ...(item?.properties || []),
82
+ ];
83
+ const values = item.values || {};
84
+ instance = new _a({
85
+ parent: this,
86
+ settings: { ...item, form: __classPrivateFieldGet(this, _WrappedFormModel_form, "f") },
87
+ specs: { properties: properties || [], ...values },
88
+ });
89
+ let toSet = {};
90
+ Object.keys(instance?.getProperties()).forEach((property) => (toSet[property] = item[property] || ''));
91
+ instance.set(toSet);
92
+ this.registerWrapper(instance);
93
+ return instance;
94
+ }
95
+ instance = new FormField({
96
+ parent: __classPrivateFieldGet(this, _WrappedFormModel_form, "f"),
97
+ specs: {
98
+ ...item,
99
+ value: values[item.name] || item?.value,
100
+ properties: item?.properties || [],
101
+ },
102
+ });
103
+ if (item?.properties) {
104
+ let toSet = {};
105
+ item?.properties.forEach((property) => (toSet[property] = item[property] || ''));
106
+ instance.set(toSet);
107
+ }
108
+ return instance;
109
+ });
110
+ /**
111
+ * Checks whether all nested wrappers within this wrapper are loaded and sets the wrapper's state to loaded if so.
112
+ */
113
+ _WrappedFormModel_checkReady.set(this, () => {
114
+ const onReady = () => {
115
+ const areAllWrappersLoaded = this.childWrappersReady === this.wrappers.size;
116
+ if (!areAllWrappersLoaded)
117
+ return (this.childWrappersReady = this.childWrappersReady + 1);
118
+ this.loaded = true;
119
+ __classPrivateFieldGet(this, _WrappedFormModel_parent, "f").triggerEvent('wrappers.children.loaded');
120
+ this.loadedPromise.resolve(true);
121
+ this.off('wrappers.children.loaded', onReady);
122
+ };
123
+ if (this.loaded)
124
+ return this.loaded;
125
+ if (!this.wrappers.size) {
126
+ onReady();
127
+ return this.loaded;
128
+ }
129
+ this.on('wrappers.children.loaded', onReady);
130
+ return this.loadedPromise;
131
+ });
132
+ /**
133
+ * Configures the fields within the wrapper, setting up any dependencies they might have.
134
+ */
135
+ _WrappedFormModel_configFields.set(this, () => {
136
+ this.fields.forEach(__classPrivateFieldGet(this, _WrappedFormModel_listenDependencies, "f"));
137
+ });
138
+ /**
139
+ * Initializes all fields within the wrapper, preparing them for user interaction. Its used to know when the fields can start to listen for events or dependencies
140
+ */
141
+ this.initialize = () => {
142
+ this.fields.forEach((field) => field.initialize());
143
+ };
144
+ /**
145
+ * Sets up dependency listeners for a field within the wrapper, allowing fields to react to changes in other fields.
146
+ * @param {FormField | WrappedFormModel} instance - The field or nested wrapper instance to set dependencies for.
147
+ */
148
+ _WrappedFormModel_listenDependencies.set(this, (instance) => {
149
+ if (!instance?.specs?.dependentOn?.length)
150
+ return;
151
+ new CallbackManager(__classPrivateFieldGet(this, _WrappedFormModel_form, "f"), instance);
152
+ });
153
+ /**
154
+ * Registers a nested wrapper within this wrapper, adding it to the internal map of child wrappers.
155
+ * @param {WrappedFormModel} wrapper - The child wrapper to register.
156
+ */
157
+ this.registerWrapper = (wrapper) => {
158
+ this.wrappers.set(wrapper.name, wrapper);
159
+ __classPrivateFieldGet(this, _WrappedFormModel_form, "f").registerWrapper(wrapper);
160
+ };
161
+ this.cleanUp = this.clear;
162
+ this.hide = () => {
163
+ const className = this.getProperties().className || '';
164
+ const isHidden = className.includes('hidden');
165
+ const cls = isHidden ? className : `${className} hidden`;
166
+ if (cls !== className)
167
+ this.set({ className: cls });
168
+ };
169
+ this.show = () => {
170
+ const className = this.getProperties().className || '';
171
+ const isHidden = className.includes('hidden');
172
+ const cls = isHidden
173
+ ? className.replaceAll(/\bhidden\b/g, '').trim()
174
+ : className;
175
+ if (cls !== className)
176
+ this.set({ className: cls });
177
+ };
178
+ __classPrivateFieldSet(this, _WrappedFormModel_parent, parent, "f");
179
+ this.callbacks = __classPrivateFieldGet(this, _WrappedFormModel_parent, "f").callbacks;
180
+ this.settings = settings;
181
+ __classPrivateFieldSet(this, _WrappedFormModel_form, this.settings.form, "f");
182
+ __classPrivateFieldGet(this, _WrappedFormModel_startup, "f").call(this, settings);
183
+ }
184
+ /**
185
+ * Retrieves a field or nested wrapper by name. Supports dot notation for accessing deeply nested fields.
186
+ * @param {string} name - The name of the field or nested wrapper to retrieve.
187
+ * @returns {FormField | WrappedFormModel | undefined} The requested instance, or undefined if not found.
188
+ */
189
+ getField(name) {
190
+ if (!name)
191
+ return console.warn('You need to provide a name to get a field in form ', this.settings.name);
192
+ if (!name.includes('.')) {
193
+ let field = this.fields.get(name);
194
+ if (!field) {
195
+ this.wrappers.forEach((item) => {
196
+ const foundField = item.getField(name);
197
+ if (foundField)
198
+ field = foundField;
199
+ });
200
+ }
201
+ return field;
202
+ }
203
+ const [wrapperName, ...others] = name.split('.');
204
+ const currentWrapper = this.wrappers.get(wrapperName);
205
+ const otherWrapper = others.join('.');
206
+ return currentWrapper.getField(otherWrapper);
207
+ }
208
+ getForm() {
209
+ return __classPrivateFieldGet(this, _WrappedFormModel_parent, "f");
210
+ }
211
+ }
212
+ _a = WrappedFormModel, _WrappedFormModel_form = new WeakMap(), _WrappedFormModel_parent = new WeakMap(), _WrappedFormModel_startup = new WeakMap(), _WrappedFormModel_getInstance = new WeakMap(), _WrappedFormModel_checkReady = new WeakMap(), _WrappedFormModel_configFields = new WeakMap(), _WrappedFormModel_listenDependencies = new WeakMap();
213
+ //# sourceMappingURL=wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../src/models/wrapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare class RFSettings {
2
+ #private;
3
+ get types(): Record<string, any>;
4
+ setFields(specs: any): void;
5
+ }
6
+ export declare const WFSettings: RFSettings;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;;IAEtB,IAAI,KAAK,wBAER;IACD,SAAS,CAAC,KAAK,KAAA;CAGf;AAED,eAAO,MAAM,UAAU,YAAmB,CAAC"}
@@ -0,0 +1,26 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _RFSettings_types;
13
+ export class RFSettings {
14
+ constructor() {
15
+ _RFSettings_types.set(this, {});
16
+ }
17
+ get types() {
18
+ return __classPrivateFieldGet(this, _RFSettings_types, "f");
19
+ }
20
+ setFields(specs) {
21
+ __classPrivateFieldSet(this, _RFSettings_types, { ...__classPrivateFieldGet(this, _RFSettings_types, "f"), ...specs }, "f");
22
+ }
23
+ }
24
+ _RFSettings_types = new WeakMap();
25
+ export const WFSettings = new RFSettings();
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,MAAM,OAAO,UAAU;IAAvB;QACC,4BAA8B,EAAE,EAAC;IAOlC,CAAC;IANA,IAAI,KAAK;QACR,OAAO,uBAAA,IAAI,yBAAO,CAAC;IACpB,CAAC;IACD,SAAS,CAAC,KAAK;QACd,uBAAA,IAAI,qBAAU,EAAE,GAAG,uBAAA,IAAI,yBAAO,EAAE,GAAG,KAAK,EAAE,MAAA,CAAC;IAC5C,CAAC;CACD;;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare class PendingPromise<T> extends Promise<T> {
2
+ resolve: (value: T | PromiseLike<T>) => void;
3
+ reject: (reason?: any) => void;
4
+ constructor(executor?: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void);
5
+ }
6
+ //# sourceMappingURL=pending-promise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-promise.d.ts","sourceRoot":"","sources":["../../src/utils/pending-promise.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IACzC,OAAO,EAAG,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC9C,MAAM,EAAG,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;gBAE3B,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI;CAuB7G"}
@@ -0,0 +1,24 @@
1
+ export class PendingPromise extends Promise {
2
+ constructor(executor) {
3
+ let resolve;
4
+ let reject;
5
+ // Create a new promise and capture the resolve and reject functions
6
+ super((res, rej) => {
7
+ resolve = res;
8
+ reject = rej;
9
+ });
10
+ // Assign the captured resolve and reject functions to the instance
11
+ this.resolve = resolve;
12
+ this.reject = reject;
13
+ // If an executor is provided, execute it immediately
14
+ if (executor) {
15
+ try {
16
+ executor(this.resolve, this.reject);
17
+ }
18
+ catch (error) {
19
+ this.reject(error);
20
+ }
21
+ }
22
+ }
23
+ }
24
+ //# sourceMappingURL=pending-promise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-promise.js","sourceRoot":"","sources":["../../src/utils/pending-promise.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAkB,SAAQ,OAAU;IAIhD,YAAY,QAAiG;QAC5G,IAAI,OAA4C,CAAC;QACjD,IAAI,MAA8B,CAAC;QAEnC,oEAAoE;QACpE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAClB,OAAO,GAAG,GAAG,CAAC;YACd,MAAM,GAAG,GAAG,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,mEAAmE;QACnE,IAAI,CAAC,OAAO,GAAG,OAAQ,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,MAAO,CAAC;QAEtB,qDAAqD;QACrD,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC;gBACJ,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACF,CAAC;IACF,CAAC;CACD"}
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@bgroup/wise-form",
3
+ "version": "1.0.1",
4
+ "description": "Wise Form - A reactive form library",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": "./dist/index.js",
9
+ "./form": "./dist/form/index.js",
10
+ "./formulas": "./dist/formulas/index.js",
11
+ "./models": "./dist/models/index.js",
12
+ "./settings": "./dist/settings/index.js",
13
+ "./styles": "./dist/form/styles.css"
14
+ },
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "prepublishOnly": "npm run build"
18
+ },
19
+ "keywords": [
20
+ "form",
21
+ "react",
22
+ "reactive",
23
+ "form-builder"
24
+ ],
25
+ "author": "",
26
+ "license": "ISC",
27
+ "dependencies": {
28
+ "@beyond-js/reactive": "^2.2.0",
29
+ "mathjs": "^12.4.1"
30
+ },
31
+ "peerDependencies": {
32
+ "react": "^18.2.0"
33
+ },
34
+ "devDependencies": {
35
+ "@types/react": "^18.0.26",
36
+ "typescript": "^5.0.0"
37
+ }
38
+ }
@@ -0,0 +1,68 @@
1
+ import React from 'react';
2
+
3
+ export interface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {
4
+ name?: string;
5
+ value?: string | number;
6
+ checked?: boolean;
7
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
8
+ disabled?: boolean;
9
+ className?: string;
10
+ id?: string;
11
+ label?: string;
12
+ [key: string]: any; // Allow additional props that will be filtered
13
+ }
14
+
15
+ // Helper function to filter out non-HTML attributes
16
+ const filterHtmlAttributes = (props: Record<string, any>): React.InputHTMLAttributes<HTMLInputElement> => {
17
+ const invalidAttributes = [
18
+ 'processing', 'processed', 'label', 'options', 'properties', 'specs',
19
+ 'hidden', 'identifier', 'queryValue', 'dependentOn', 'callbacks',
20
+ 'selectedOptionLabel', 'notTrigger', 'autoSelectFirst', 'disabledOptions',
21
+ 'fieldsToSetParameters', 'queryTrafficParameters', 'tooltipData', 'opened',
22
+ 'isVisibleHeader', 'entries', 'rows', 'total', 'selectedItem', 'selectedDelete',
23
+ 'keys', 'dataHead', 'textEmpty', 'actions', 'currentPage', 'limitDepdentOnItems',
24
+ 'showSelect', 'itemTable', 'variant', 'toFixed', 'decimalsLimit',
25
+ 'isPercent', 'condition', 'parameter', 'color', 'template', 'control'
26
+ ];
27
+
28
+ const filtered: any = {};
29
+
30
+ for (const key in props) {
31
+ if (invalidAttributes.includes(key)) {
32
+ continue;
33
+ }
34
+
35
+ if (
36
+ key.startsWith('on') ||
37
+ key.startsWith('data-') ||
38
+ key.startsWith('aria-') ||
39
+ !invalidAttributes.includes(key)
40
+ ) {
41
+ const validHtmlAttrs = [
42
+ 'name', 'value', 'checked', 'onChange', 'onBlur', 'onFocus', 'onKeyDown',
43
+ 'onKeyUp', 'onKeyPress', 'onClick', 'disabled', 'readOnly', 'required',
44
+ 'type', 'id', 'autoFocus', 'tabIndex', 'title', 'style', 'form'
45
+ ];
46
+
47
+ if (validHtmlAttrs.includes(key) || key.startsWith('on') || key.startsWith('data-') || key.startsWith('aria-')) {
48
+ filtered[key] = props[key];
49
+ }
50
+ }
51
+ }
52
+
53
+ return filtered;
54
+ };
55
+
56
+ export const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>((props, ref) => {
57
+ const { className, label, ...rest } = props;
58
+ const validHtmlAttributes = filterHtmlAttributes(rest);
59
+ return (
60
+ <label>
61
+ <input ref={ref} type="checkbox" className={className} {...validHtmlAttributes} />
62
+ {label && <span>{label}</span>}
63
+ </label>
64
+ );
65
+ });
66
+
67
+ Checkbox.displayName = 'Checkbox';
68
+
@@ -0,0 +1,60 @@
1
+ import React from 'react';
2
+ import { Checkbox } from './Checkbox';
3
+
4
+ export interface CheckboxGroupProps {
5
+ name?: string;
6
+ value?: string[] | number[];
7
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
8
+ disabled?: boolean;
9
+ options?: Array<{ value: string | number; label?: string; [key: string]: any }>;
10
+ className?: string;
11
+ }
12
+
13
+ export const CheckboxGroup: React.FC<CheckboxGroupProps> = props => {
14
+ const { name, value = [], onChange, disabled, options = [], className } = props;
15
+
16
+ const handleChange = (optionValue: string | number) => {
17
+ return (event: React.ChangeEvent<HTMLInputElement>) => {
18
+ if (!onChange) return;
19
+ const currentValues: (string | number)[] = Array.isArray(value) ? [...value] : [];
20
+ const newValues = event.target.checked
21
+ ? [...currentValues, optionValue]
22
+ : currentValues.filter(v => v !== optionValue);
23
+
24
+ // Create a synthetic event
25
+ const syntheticEvent = {
26
+ ...event,
27
+ target: {
28
+ ...event.target,
29
+ name: name || '',
30
+ value: newValues,
31
+ } as any,
32
+ } as unknown as React.ChangeEvent<HTMLInputElement>;
33
+
34
+ onChange(syntheticEvent);
35
+ };
36
+ };
37
+
38
+ return (
39
+ <div className={className}>
40
+ {options.map((option, index) => {
41
+ const optionValue = option.value as string | number;
42
+ const changeHandler = handleChange(optionValue);
43
+ const isChecked = Array.isArray(value) && (value as (string | number)[]).includes(optionValue);
44
+ return (
45
+ <Checkbox
46
+ key={index}
47
+ name={name}
48
+ value={optionValue}
49
+ checked={isChecked}
50
+ onChange={changeHandler}
51
+ disabled={disabled}
52
+ label={option.label}
53
+ />
54
+ );
55
+ })}
56
+ </div>
57
+ );
58
+ };
59
+
60
+ CheckboxGroup.displayName = 'CheckboxGroup';