@gnwebsoft/ui 4.0.19 → 4.0.21

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 (41) hide show
  1. package/dist/{chunk-L6RP3OH2.js → chunk-BWEFHFD4.js} +8 -3
  2. package/dist/chunk-FMN47XRJ.cjs +1 -1
  3. package/dist/chunk-HDL5E7XD.js +523 -0
  4. package/dist/chunk-LUW7V5GI.cjs +1 -1
  5. package/dist/chunk-QYHJIPSZ.cjs +140 -0
  6. package/dist/chunk-RVGPXTBE.js +2535 -0
  7. package/dist/{chunk-3CHF3PN3.cjs → chunk-TQQUGQTW.cjs} +3 -3
  8. package/dist/chunk-UZ2KNGOF.cjs +523 -0
  9. package/dist/{chunk-HHW6W2LL.cjs → chunk-W5EM6HLW.cjs} +13 -8
  10. package/dist/core/index.cjs +3 -3
  11. package/dist/core/index.js +1 -1
  12. package/dist/hooks/index.cjs +4 -5
  13. package/dist/hooks/index.js +1 -2
  14. package/dist/index.cjs +6 -7
  15. package/dist/index.js +4 -5
  16. package/dist/types/AsyncMultiSelectPayload.d.ts +5 -0
  17. package/dist/types/AsyncMultiSelectPayload.d.ts.map +1 -0
  18. package/dist/types/index.cjs +1 -1
  19. package/dist/types/index.d.ts +1 -1
  20. package/dist/utils/index.cjs +3 -3
  21. package/dist/utils/index.js +1 -1
  22. package/dist/utils/schemaTools.d.ts +133 -6
  23. package/dist/utils/schemaTools.d.ts.map +1 -1
  24. package/dist/wrappers/AsyncMultiSelect/types.d.ts +2 -2
  25. package/dist/wrappers/Field/index.d.ts +1 -1
  26. package/dist/wrappers/NumberFieldElement/NumberFieldElement.d.ts +3 -2
  27. package/dist/wrappers/NumberFieldElement/NumberFieldElement.d.ts.map +1 -1
  28. package/dist/wrappers/SelectMultiElement/SelectMultiElement.d.ts +2 -3
  29. package/dist/wrappers/SelectMultiElement/SelectMultiElement.d.ts.map +1 -1
  30. package/dist/wrappers/index.cjs +4 -4
  31. package/dist/wrappers/index.js +2 -2
  32. package/package.json +1 -1
  33. package/dist/chunk-6PMJWQ4R.cjs +0 -239
  34. package/dist/chunk-LGGBLZJM.js +0 -239
  35. package/dist/chunk-ML5UQCRH.js +0 -2535
  36. package/dist/chunk-MVPLBJRK.cjs +0 -1
  37. package/dist/chunk-OJF67RNM.js +0 -1
  38. package/dist/chunk-Y3QTSDLJ.cjs +0 -140
  39. package/dist/types/AsyncSelectMultiPayload.d.ts +0 -5
  40. package/dist/types/AsyncSelectMultiPayload.d.ts.map +0 -1
  41. /package/dist/{chunk-GVWCGJ3F.js → chunk-PW777IOX.js} +0 -0
@@ -12,4 +12,4 @@ function readValueAsDate(adapter, value) {
12
12
 
13
13
 
14
14
  exports.readValueAsDate = readValueAsDate;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImM6XFxVdHRhbVxcUHJvamVjdHNcXEdOV2ViU29mdC5VSVxccGFja2FnZXNcXHVpXFxkaXN0XFxjaHVuay1MVVc3VjVHSS5janMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxTQUFTLGVBQWUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFO0FBQ3pDLEVBQUUsR0FBRyxDQUFDLE9BQU8sTUFBTSxJQUFJLFFBQVEsRUFBRTtBQUNqQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFO0FBQ3RCLE1BQU0sT0FBTyxJQUFJO0FBQ2pCLElBQUk7QUFDSixJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBQ3BDLEVBQUU7QUFDRixFQUFFLE9BQU8sS0FBSztBQUNkO0FBQ0E7QUFDQTtBQUNFO0FBQ0YsMENBQUMiLCJmaWxlIjoiQzpcXFV0dGFtXFxQcm9qZWN0c1xcR05XZWJTb2Z0LlVJXFxwYWNrYWdlc1xcdWlcXGRpc3RcXGNodW5rLUxVVzdWNUdJLmNqcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImQ6XFxQcm9qZWN0c1xcR05XZWJTb2Z0LlVJXFxwYWNrYWdlc1xcdWlcXGRpc3RcXGNodW5rLUxVVzdWNUdJLmNqcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLFNBQVMsZUFBZSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUU7QUFDekMsRUFBRSxHQUFHLENBQUMsT0FBTyxNQUFNLElBQUksUUFBUSxFQUFFO0FBQ2pDLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUU7QUFDdEIsTUFBTSxPQUFPLElBQUk7QUFDakIsSUFBSTtBQUNKLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDcEMsRUFBRTtBQUNGLEVBQUUsT0FBTyxLQUFLO0FBQ2Q7QUFDQTtBQUNBO0FBQ0U7QUFDRiwwQ0FBQyIsImZpbGUiOiJEOlxcUHJvamVjdHNcXEdOV2ViU29mdC5VSVxccGFja2FnZXNcXHVpXFxkaXN0XFxjaHVuay1MVVc3VjVHSS5janMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdfQ==
@@ -0,0 +1,140 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/hooks/useTransform/index.ts
2
+ function useTransform(options) {
3
+ const value = typeof _optionalChain([options, 'access', _ => _.transform, 'optionalAccess', _2 => _2.input]) === "function" ? options.transform.input(options.value) : options.value;
4
+ const onChange = (eventOrValue, value2) => {
5
+ if (typeof _optionalChain([options, 'access', _3 => _3.transform, 'optionalAccess', _4 => _4.output]) === "function") {
6
+ options.onChange(options.transform.output(eventOrValue, value2));
7
+ } else {
8
+ options.onChange(eventOrValue);
9
+ }
10
+ };
11
+ return {
12
+ value,
13
+ onChange
14
+ };
15
+ }
16
+
17
+ // src/hooks/useTransform/enhanced.ts
18
+ var _react = require('react');
19
+ var transformFactories = {
20
+ number: () => ({
21
+ input: (value) => {
22
+ if (value == null) return "";
23
+ return String(value);
24
+ },
25
+ output: (eventOrValue, _value) => {
26
+ let rawValue;
27
+ if (typeof eventOrValue === "object" && eventOrValue !== null && "target" in eventOrValue && typeof eventOrValue.target === "object" && eventOrValue.target !== null && "value" in eventOrValue.target) {
28
+ rawValue = String(eventOrValue.target.value);
29
+ } else {
30
+ rawValue = String(eventOrValue);
31
+ }
32
+ if (rawValue === "") return null;
33
+ const numValue = Number(rawValue);
34
+ return isNaN(numValue) ? null : numValue;
35
+ }
36
+ }),
37
+ text: () => ({
38
+ input: (value) => {
39
+ return _nullishCoalesce(value, () => ( ""));
40
+ },
41
+ output: (eventOrValue, _value) => {
42
+ if (typeof eventOrValue === "object" && eventOrValue !== null && "target" in eventOrValue && typeof eventOrValue.target === "object" && eventOrValue.target !== null && "value" in eventOrValue.target) {
43
+ return eventOrValue.target.value;
44
+ }
45
+ return eventOrValue;
46
+ }
47
+ }),
48
+ select: () => ({
49
+ input: (value) => {
50
+ return _nullishCoalesce(value, () => ( ""));
51
+ },
52
+ output: (eventOrValue, value) => {
53
+ if (value !== void 0) {
54
+ return value;
55
+ }
56
+ if (typeof eventOrValue === "object" && eventOrValue !== null && "target" in eventOrValue && typeof eventOrValue.target === "object" && eventOrValue.target !== null && "value" in eventOrValue.target) {
57
+ return eventOrValue.target.value;
58
+ }
59
+ return eventOrValue;
60
+ }
61
+ })
62
+ };
63
+ function getBuiltInTransform(fieldType) {
64
+ switch (fieldType) {
65
+ case "number":
66
+ return transformFactories.number();
67
+ case "text":
68
+ return transformFactories.text();
69
+ case "select":
70
+ case "radio":
71
+ return transformFactories.select();
72
+ default:
73
+ return void 0;
74
+ }
75
+ }
76
+ function useEnhancedTransform(options) {
77
+ const {
78
+ value: fieldValue,
79
+ onChange: fieldOnChange,
80
+ transform,
81
+ fieldType,
82
+ defaultValue,
83
+ enableWarnings
84
+ } = options;
85
+ const builtInTransform = _react.useMemo.call(void 0,
86
+ () => fieldType ? getBuiltInTransform(fieldType) : void 0,
87
+ [fieldType]
88
+ );
89
+ if (enableWarnings && process.env.NODE_ENV === "development") {
90
+ if (transform && fieldType) {
91
+ console.warn(
92
+ "useEnhancedTransform: Both custom transform and fieldType provided. Custom transform will take precedence."
93
+ );
94
+ }
95
+ }
96
+ const transformedValue = _react.useMemo.call(void 0, () => {
97
+ const inputTransform = _optionalChain([transform, 'optionalAccess', _5 => _5.input]) || _optionalChain([builtInTransform, 'optionalAccess', _6 => _6.input]);
98
+ if (typeof inputTransform === "function") {
99
+ return inputTransform(fieldValue);
100
+ }
101
+ if (fieldValue == null && defaultValue !== void 0) {
102
+ return defaultValue;
103
+ }
104
+ return fieldValue;
105
+ }, [fieldValue, _optionalChain([transform, 'optionalAccess', _7 => _7.input]), _optionalChain([builtInTransform, 'optionalAccess', _8 => _8.input]), defaultValue]);
106
+ const enhancedOnChange = _react.useCallback.call(void 0,
107
+ (eventOrValue, value) => {
108
+ const outputTransform = _optionalChain([transform, 'optionalAccess', _9 => _9.output]) || _optionalChain([builtInTransform, 'optionalAccess', _10 => _10.output]);
109
+ if (typeof outputTransform === "function") {
110
+ try {
111
+ const transformedValue2 = outputTransform(eventOrValue, value);
112
+ fieldOnChange(transformedValue2);
113
+ } catch (error) {
114
+ if (enableWarnings && process.env.NODE_ENV === "development") {
115
+ console.error("useEnhancedTransform: Error in output transformation:", error);
116
+ }
117
+ fieldOnChange(
118
+ value !== void 0 ? value : eventOrValue
119
+ );
120
+ }
121
+ } else {
122
+ fieldOnChange(
123
+ value !== void 0 ? value : eventOrValue
124
+ );
125
+ }
126
+ },
127
+ [fieldOnChange, _optionalChain([transform, 'optionalAccess', _11 => _11.output]), _optionalChain([builtInTransform, 'optionalAccess', _12 => _12.output]), enableWarnings]
128
+ );
129
+ return {
130
+ value: transformedValue,
131
+ onChange: enhancedOnChange
132
+ };
133
+ }
134
+
135
+
136
+
137
+
138
+
139
+ exports.useTransform = useTransform; exports.transformFactories = transformFactories; exports.useEnhancedTransform = useEnhancedTransform;
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImQ6XFxQcm9qZWN0c1xcR05XZWJTb2Z0LlVJXFxwYWNrYWdlc1xcdWlcXGRpc3RcXGNodW5rLVFZSEpJUFNaLmNqcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLFNBQVMsWUFBWSxDQUFDLE9BQU8sRUFBRTtBQUMvQixFQUFFLE1BQU0sTUFBTSxFQUFFLHVCQUFPLE9BQU8sbUJBQUMsU0FBUyw2QkFBRSxRQUFNLElBQUksV0FBVyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSztBQUN2SCxFQUFFLE1BQU0sU0FBUyxFQUFFLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHO0FBQzdDLElBQUksR0FBRyxDQUFDLHVCQUFPLE9BQU8scUJBQUMsU0FBUyw2QkFBRSxTQUFPLElBQUksVUFBVSxFQUFFO0FBQ3pELE1BQU0sT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEUsSUFBSSxFQUFFLEtBQUs7QUFDWCxNQUFNLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO0FBQ3BDLElBQUk7QUFDSixFQUFFLENBQUM7QUFDSCxFQUFFLE9BQU87QUFDVCxJQUFJLEtBQUs7QUFDVCxJQUFJO0FBQ0osRUFBRSxDQUFDO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsOEJBQTRDO0FBQzVDLElBQUksbUJBQW1CLEVBQUU7QUFDekIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQztBQUNqQixJQUFJLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHO0FBQ3RCLE1BQU0sR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQ2xDLE1BQU0sT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQzFCLElBQUksQ0FBQztBQUNMLElBQUksTUFBTSxF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STtBQUNKLElBQUksT0FBTyxVQUFVO0FBQ3JCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxrQkFBRSxTQUFTLDZCQUFFLE9BQUssa0JBQUUsZ0JBQWdCLDZCQUFFLE9BQUssRUFBRSxZQUFZLENBQUMsQ0FBQztBQUMzRSxFQUFFLE1BQU0saUJBQWlCLEVBQUUsZ0NBQVc7QUFDdEMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRztBQUM3QixNQUFNLE1BQU0sZ0JBQWdCLGtCQUFFLFNBQVMsNkJBQUUsU0FBTyxtQkFBRyxnQkFBZ0IsK0JBQUUsUUFBTTtBQUMzRSxNQUFNLEdBQUcsQ0FBQyxPQUFPLGdCQUFnQixJQUFJLFVBQVUsRUFBRTtBQUNqRCxRQUFRLElBQUk7QUFDWixVQUFVLE1BQU0sa0JBQWtCLEVBQUUsZUFBZSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUM7QUFDeEUsVUFBVSxhQUFhLENBQUMsaUJBQWlCLENBQUM7QUFDMUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUU7QUFDeEIsVUFBVSxHQUFHLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLGFBQWEsRUFBRTtBQUN4RSxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsdURBQXVELEVBQUUsS0FBSyxDQUFDO0FBQ3pGLFVBQVU7QUFDVixVQUFVLGFBQWE7QUFDdkIsWUFBWSxNQUFNLElBQUksS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFO0FBQ3ZDLFVBQVUsQ0FBQztBQUNYLFFBQVE7QUFDUixNQUFNLEVBQUUsS0FBSztBQUNiLFFBQVEsYUFBYTtBQUNyQixVQUFVLE1BQU0sSUFBSSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUU7QUFDckMsUUFBUSxDQUFDO0FBQ1QsTUFBTTtBQUNOLElBQUksQ0FBQztBQUNMLElBQUksQ0FBQyxhQUFhLGtCQUFFLFNBQVMsK0JBQUUsUUFBTSxrQkFBRSxnQkFBZ0IsK0JBQUUsUUFBTSxFQUFFLGNBQWM7QUFDL0UsRUFBRSxDQUFDO0FBQ0gsRUFBRSxPQUFPO0FBQ1QsSUFBSSxLQUFLLEVBQUUsZ0JBQWdCO0FBQzNCLElBQUksUUFBUSxFQUFFO0FBQ2QsRUFBRSxDQUFDO0FBQ0g7QUFDQTtBQUNBO0FBQ0U7QUFDQTtBQUNBO0FBQ0YsMElBQUMiLCJmaWxlIjoiRDpcXFByb2plY3RzXFxHTldlYlNvZnQuVUlcXHBhY2thZ2VzXFx1aVxcZGlzdFxcY2h1bmstUVlISklQU1ouY2pzIiwic291cmNlc0NvbnRlbnQiOltudWxsXX0=