@ethereal-nexus/core 0.2.3 → 0.3.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 (245) hide show
  1. package/dist/decorators/index.d.mts +2 -5
  2. package/dist/decorators/index.d.ts +2 -5
  3. package/dist/decorators/webcomponent/index.d.mts +2 -5
  4. package/dist/decorators/webcomponent/index.d.ts +2 -5
  5. package/dist/decorators/webcomponent/webcomponent.d.mts +1 -4
  6. package/dist/decorators/webcomponent/webcomponent.d.ts +1 -4
  7. package/dist/functions/component/component.d.mts +4 -7
  8. package/dist/functions/component/component.d.ts +4 -7
  9. package/dist/functions/component/component.js +0 -1
  10. package/dist/functions/component/component.js.map +1 -1
  11. package/dist/functions/component/component.mjs +0 -1
  12. package/dist/functions/component/component.mjs.map +1 -1
  13. package/dist/functions/component/index.d.mts +2 -5
  14. package/dist/functions/component/index.d.ts +2 -5
  15. package/dist/functions/component/index.js +0 -1
  16. package/dist/functions/component/index.js.map +1 -1
  17. package/dist/functions/component/index.mjs +0 -1
  18. package/dist/functions/component/index.mjs.map +1 -1
  19. package/dist/functions/index.d.mts +2 -5
  20. package/dist/functions/index.d.ts +2 -5
  21. package/dist/functions/index.js +0 -1
  22. package/dist/functions/index.js.map +1 -1
  23. package/dist/functions/index.mjs +0 -1
  24. package/dist/functions/index.mjs.map +1 -1
  25. package/dist/functions/parse/index.d.mts +2 -5
  26. package/dist/functions/parse/index.d.ts +2 -5
  27. package/dist/functions/parse/parse.d.mts +1 -4
  28. package/dist/functions/parse/parse.d.ts +1 -4
  29. package/dist/functions/parse/parsePrimitives.d.mts +1 -4
  30. package/dist/functions/parse/parsePrimitives.d.ts +1 -4
  31. package/dist/index.d.mts +8 -4
  32. package/dist/index.d.ts +8 -4
  33. package/dist/index.js +280 -81
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +276 -81
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/schema/calendar/calendar.d.mts +22 -0
  38. package/dist/schema/calendar/calendar.d.ts +22 -0
  39. package/dist/schema/calendar/calendar.js +53 -0
  40. package/dist/schema/calendar/calendar.js.map +1 -0
  41. package/dist/schema/calendar/calendar.mjs +28 -0
  42. package/dist/schema/calendar/calendar.mjs.map +1 -0
  43. package/dist/schema/calendar/index.d.mts +4 -0
  44. package/dist/schema/calendar/index.d.ts +4 -0
  45. package/dist/schema/calendar/index.js +55 -0
  46. package/dist/schema/calendar/index.js.map +1 -0
  47. package/dist/schema/calendar/index.mjs +28 -0
  48. package/dist/schema/calendar/index.mjs.map +1 -0
  49. package/dist/schema/checkbox/checkbox.d.mts +3 -1
  50. package/dist/schema/checkbox/checkbox.d.ts +3 -1
  51. package/dist/schema/checkbox/checkbox.js +3 -2
  52. package/dist/schema/checkbox/checkbox.js.map +1 -1
  53. package/dist/schema/checkbox/checkbox.mjs +3 -2
  54. package/dist/schema/checkbox/checkbox.mjs.map +1 -1
  55. package/dist/schema/checkbox/index.d.mts +2 -1
  56. package/dist/schema/checkbox/index.d.ts +2 -1
  57. package/dist/schema/checkbox/index.js +3 -2
  58. package/dist/schema/checkbox/index.js.map +1 -1
  59. package/dist/schema/checkbox/index.mjs +3 -2
  60. package/dist/schema/checkbox/index.mjs.map +1 -1
  61. package/dist/schema/datamodel/datamodel.d.mts +13 -0
  62. package/dist/schema/datamodel/datamodel.d.ts +13 -0
  63. package/dist/schema/datamodel/datamodel.js +49 -0
  64. package/dist/schema/datamodel/datamodel.js.map +1 -0
  65. package/dist/schema/datamodel/datamodel.mjs +24 -0
  66. package/dist/schema/datamodel/datamodel.mjs.map +1 -0
  67. package/dist/schema/datamodel/index.d.mts +4 -0
  68. package/dist/schema/datamodel/index.d.ts +4 -0
  69. package/dist/schema/datamodel/index.js +51 -0
  70. package/dist/schema/datamodel/index.js.map +1 -0
  71. package/dist/schema/datamodel/index.mjs +24 -0
  72. package/dist/schema/datamodel/index.mjs.map +1 -0
  73. package/dist/schema/datasource/datasource.d.mts +25 -0
  74. package/dist/schema/datasource/datasource.d.ts +25 -0
  75. package/dist/schema/datasource/datasource.js +52 -0
  76. package/dist/schema/datasource/datasource.js.map +1 -0
  77. package/dist/schema/datasource/datasource.mjs +27 -0
  78. package/dist/schema/datasource/datasource.mjs.map +1 -0
  79. package/dist/schema/datasource/index.d.mts +4 -0
  80. package/dist/schema/datasource/index.d.ts +4 -0
  81. package/dist/schema/datasource/index.js +54 -0
  82. package/dist/schema/datasource/index.js.map +1 -0
  83. package/dist/schema/datasource/index.mjs +27 -0
  84. package/dist/schema/datasource/index.mjs.map +1 -0
  85. package/dist/schema/dialog/condition.d.mts +11 -0
  86. package/dist/schema/dialog/condition.d.ts +11 -0
  87. package/dist/schema/dialog/condition.js +72 -0
  88. package/dist/schema/dialog/condition.js.map +1 -0
  89. package/dist/schema/dialog/condition.mjs +49 -0
  90. package/dist/schema/dialog/condition.mjs.map +1 -0
  91. package/dist/schema/dialog/dialog.d.mts +28 -8
  92. package/dist/schema/dialog/dialog.d.ts +28 -8
  93. package/dist/schema/dialog/dialog.js +152 -63
  94. package/dist/schema/dialog/dialog.js.map +1 -1
  95. package/dist/schema/dialog/dialog.mjs +153 -64
  96. package/dist/schema/dialog/dialog.mjs.map +1 -1
  97. package/dist/schema/dialog/index.d.mts +3 -4
  98. package/dist/schema/dialog/index.d.ts +3 -4
  99. package/dist/schema/dialog/index.js +155 -64
  100. package/dist/schema/dialog/index.js.map +1 -1
  101. package/dist/schema/dialog/index.mjs +155 -64
  102. package/dist/schema/dialog/index.mjs.map +1 -1
  103. package/dist/schema/dialog/tabs.d.mts +20 -0
  104. package/dist/schema/dialog/tabs.d.ts +20 -0
  105. package/dist/schema/dialog/tabs.js +74 -0
  106. package/dist/schema/dialog/tabs.js.map +1 -0
  107. package/dist/schema/dialog/tabs.mjs +51 -0
  108. package/dist/schema/dialog/tabs.mjs.map +1 -0
  109. package/dist/schema/dialog/types.d.mts +3 -0
  110. package/dist/schema/dialog/types.d.ts +3 -0
  111. package/dist/schema/dialog/types.js +19 -0
  112. package/dist/schema/dialog/types.js.map +1 -0
  113. package/dist/schema/dialog/types.mjs +1 -0
  114. package/dist/schema/dialog/types.mjs.map +1 -0
  115. package/dist/schema/dynamic/dynamic.d.mts +4 -17
  116. package/dist/schema/dynamic/dynamic.d.ts +4 -17
  117. package/dist/schema/dynamic/dynamic.js +1 -1
  118. package/dist/schema/dynamic/dynamic.js.map +1 -1
  119. package/dist/schema/dynamic/dynamic.mjs +1 -1
  120. package/dist/schema/dynamic/dynamic.mjs.map +1 -1
  121. package/dist/schema/dynamic/index.d.mts +2 -1
  122. package/dist/schema/dynamic/index.d.ts +2 -1
  123. package/dist/schema/dynamic/index.js +1 -1
  124. package/dist/schema/dynamic/index.js.map +1 -1
  125. package/dist/schema/dynamic/index.mjs +1 -1
  126. package/dist/schema/dynamic/index.mjs.map +1 -1
  127. package/dist/schema/group/group.d.mts +21 -0
  128. package/dist/schema/group/group.d.ts +21 -0
  129. package/dist/schema/group/group.js +50 -0
  130. package/dist/schema/group/group.js.map +1 -0
  131. package/dist/schema/group/group.mjs +25 -0
  132. package/dist/schema/group/group.mjs.map +1 -0
  133. package/dist/schema/group/index.d.mts +5 -0
  134. package/dist/schema/group/index.d.ts +5 -0
  135. package/dist/schema/group/index.js +52 -0
  136. package/dist/schema/group/index.js.map +1 -0
  137. package/dist/schema/group/index.mjs +25 -0
  138. package/dist/schema/group/index.mjs.map +1 -0
  139. package/dist/schema/hidden/hidden.d.mts +2 -1
  140. package/dist/schema/hidden/hidden.d.ts +2 -1
  141. package/dist/schema/hidden/index.d.mts +2 -1
  142. package/dist/schema/hidden/index.d.ts +2 -1
  143. package/dist/schema/image/image.d.mts +2 -2
  144. package/dist/schema/image/image.d.ts +2 -2
  145. package/dist/schema/image/image.js +3 -3
  146. package/dist/schema/image/image.js.map +1 -1
  147. package/dist/schema/image/image.mjs +3 -3
  148. package/dist/schema/image/image.mjs.map +1 -1
  149. package/dist/schema/image/index.d.mts +2 -1
  150. package/dist/schema/image/index.d.ts +2 -1
  151. package/dist/schema/image/index.js +3 -3
  152. package/dist/schema/image/index.js.map +1 -1
  153. package/dist/schema/image/index.mjs +3 -3
  154. package/dist/schema/image/index.mjs.map +1 -1
  155. package/dist/schema/multifield/index.d.mts +2 -1
  156. package/dist/schema/multifield/index.d.ts +2 -1
  157. package/dist/schema/multifield/index.js +2 -1
  158. package/dist/schema/multifield/index.js.map +1 -1
  159. package/dist/schema/multifield/index.mjs +2 -1
  160. package/dist/schema/multifield/index.mjs.map +1 -1
  161. package/dist/schema/multifield/multifield.d.mts +2 -1
  162. package/dist/schema/multifield/multifield.d.ts +2 -1
  163. package/dist/schema/multifield/multifield.js +2 -1
  164. package/dist/schema/multifield/multifield.js.map +1 -1
  165. package/dist/schema/multifield/multifield.mjs +2 -1
  166. package/dist/schema/multifield/multifield.mjs.map +1 -1
  167. package/dist/schema/object/index.d.mts +1 -4
  168. package/dist/schema/object/index.d.ts +1 -4
  169. package/dist/schema/object/object.d.mts +1 -4
  170. package/dist/schema/object/object.d.ts +1 -4
  171. package/dist/schema/optional/index.d.mts +2 -2
  172. package/dist/schema/optional/index.d.ts +2 -2
  173. package/dist/schema/optional/optional.d.mts +2 -25
  174. package/dist/schema/optional/optional.d.ts +2 -25
  175. package/dist/schema/pathbrowser/index.d.mts +2 -1
  176. package/dist/schema/pathbrowser/index.d.ts +2 -1
  177. package/dist/schema/pathbrowser/index.js +3 -2
  178. package/dist/schema/pathbrowser/index.js.map +1 -1
  179. package/dist/schema/pathbrowser/index.mjs +3 -2
  180. package/dist/schema/pathbrowser/index.mjs.map +1 -1
  181. package/dist/schema/pathbrowser/pathbrowser.d.mts +2 -1
  182. package/dist/schema/pathbrowser/pathbrowser.d.ts +2 -1
  183. package/dist/schema/pathbrowser/pathbrowser.js +3 -2
  184. package/dist/schema/pathbrowser/pathbrowser.js.map +1 -1
  185. package/dist/schema/pathbrowser/pathbrowser.mjs +3 -2
  186. package/dist/schema/pathbrowser/pathbrowser.mjs.map +1 -1
  187. package/dist/schema/rte/index.d.mts +2 -1
  188. package/dist/schema/rte/index.d.ts +2 -1
  189. package/dist/schema/rte/index.js +3 -2
  190. package/dist/schema/rte/index.js.map +1 -1
  191. package/dist/schema/rte/index.mjs +3 -2
  192. package/dist/schema/rte/index.mjs.map +1 -1
  193. package/dist/schema/rte/rte.d.mts +3 -2
  194. package/dist/schema/rte/rte.d.ts +3 -2
  195. package/dist/schema/rte/rte.js +3 -2
  196. package/dist/schema/rte/rte.js.map +1 -1
  197. package/dist/schema/rte/rte.mjs +3 -2
  198. package/dist/schema/rte/rte.mjs.map +1 -1
  199. package/dist/schema/select/index.d.mts +2 -1
  200. package/dist/schema/select/index.d.ts +2 -1
  201. package/dist/schema/select/index.js +8 -4
  202. package/dist/schema/select/index.js.map +1 -1
  203. package/dist/schema/select/index.mjs +8 -4
  204. package/dist/schema/select/index.mjs.map +1 -1
  205. package/dist/schema/select/select.d.mts +15 -3
  206. package/dist/schema/select/select.d.ts +15 -3
  207. package/dist/schema/select/select.js +8 -4
  208. package/dist/schema/select/select.js.map +1 -1
  209. package/dist/schema/select/select.mjs +8 -4
  210. package/dist/schema/select/select.mjs.map +1 -1
  211. package/dist/schema/text/index.d.mts +2 -1
  212. package/dist/schema/text/index.d.ts +2 -1
  213. package/dist/schema/text/index.js +3 -2
  214. package/dist/schema/text/index.js.map +1 -1
  215. package/dist/schema/text/index.mjs +3 -2
  216. package/dist/schema/text/index.mjs.map +1 -1
  217. package/dist/schema/text/text.d.mts +3 -2
  218. package/dist/schema/text/text.d.ts +3 -2
  219. package/dist/schema/text/text.js +3 -2
  220. package/dist/schema/text/text.js.map +1 -1
  221. package/dist/schema/text/text.mjs +3 -2
  222. package/dist/schema/text/text.mjs.map +1 -1
  223. package/dist/types/index.d.mts +2 -2
  224. package/dist/types/index.d.ts +2 -2
  225. package/dist/types/infer.d.mts +2 -1
  226. package/dist/types/infer.d.ts +2 -1
  227. package/dist/types/object.d.mts +2 -45
  228. package/dist/types/object.d.ts +2 -45
  229. package/dist/types/object.js.map +1 -1
  230. package/dist/types/schema.d.mts +3 -43
  231. package/dist/types/schema.d.ts +3 -43
  232. package/dist/types/schema.js.map +1 -1
  233. package/dist/types/utils.d.mts +52 -2
  234. package/dist/types/utils.d.ts +52 -2
  235. package/dist/types/utils.js.map +1 -1
  236. package/dist/types-B8taWezd.d.mts +131 -0
  237. package/dist/types-rfg_xywc.d.ts +131 -0
  238. package/dist/utils/pathToArray.d.mts +7 -0
  239. package/dist/utils/pathToArray.d.ts +7 -0
  240. package/dist/utils/pathToArray.js +42 -0
  241. package/dist/utils/pathToArray.js.map +1 -0
  242. package/dist/utils/pathToArray.mjs +17 -0
  243. package/dist/utils/pathToArray.mjs.map +1 -0
  244. package/package.json +8 -8
  245. package/LICENSE.md +0 -201
package/dist/index.mjs CHANGED
@@ -1,76 +1,165 @@
1
- // src/schema/dialog/dialog.ts
2
- function dialog(entries) {
3
- return {
4
- type: "dialog",
5
- tabs(tabs) {
6
- return {
7
- ...this,
8
- tabs: void 0,
9
- component: void 0,
10
- _parse() {
11
- const usedEntries = /* @__PURE__ */ new Set();
12
- const tabsArray = Object.entries(tabs).map(([tabKey, value]) => {
13
- const children = Object.entries(value).map(([key, value2]) => {
14
- if (value2 === true) {
15
- if (usedEntries.has(key)) {
16
- throw new Error(`Entry "${String(tabKey)}.${String(key)}" is already used in another tab.`);
17
- }
18
- usedEntries.add(key);
19
- return {
20
- id: key,
21
- ...entries[key]._parse()
22
- };
23
- }
24
- });
25
- return {
26
- type: "tab",
27
- label: tabKey,
28
- id: `tab_${tabKey.toLowerCase().replaceAll(" ", "")}`,
29
- children
30
- };
31
- });
32
- return {
33
- dialog: [{
34
- type: "tabs",
35
- id: "tabs",
36
- children: tabsArray
37
- }]
38
- };
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+
5
+ // src/schema/dialog/tabs.ts
6
+ var Tabs = class {
7
+ constructor() {
8
+ __publicField(this, "tabs", /* @__PURE__ */ new Map());
9
+ }
10
+ addTab(name, entries) {
11
+ this.tabs.set(name, entries);
12
+ }
13
+ parse(entries) {
14
+ const result = [];
15
+ const usedEntries = /* @__PURE__ */ new Set();
16
+ if (this.tabs.size === 0) {
17
+ return entries;
18
+ }
19
+ for (const [name, mask] of this.tabs) {
20
+ const children = [];
21
+ if (!mask) {
22
+ throw new Error(`Entry "${String(name)}" does not have an appropriate tab configuration.`);
23
+ }
24
+ for (const [key] of Object.entries(mask)) {
25
+ const field = entries.find((f) => f.id === key);
26
+ if (usedEntries.has(key)) {
27
+ throw new Error(`Entry "${String(name)}.${String(key)}" is already used in another tab.`);
39
28
  }
40
- };
41
- },
42
- _parse() {
43
- const dialog2 = Object.entries(entries).map(([key, entry]) => ({
44
- id: key,
45
- name: key,
46
- ...entry._parse()
47
- })).filter((entry) => {
48
- if ("type" in entry) {
49
- return entry.type !== "hidden";
29
+ if (!field) {
30
+ throw new Error(`Field with id "${key}" not found`);
50
31
  }
32
+ children.push(entries.find((f) => f.id === key));
33
+ }
34
+ result.push({
35
+ type: "tab",
36
+ label: name,
37
+ id: `tab_${name.toLowerCase().replaceAll(" ", "")}`,
38
+ children
51
39
  });
52
- return {
53
- dialog: dialog2
54
- };
55
- },
56
- _primitive() {
57
- return Object.entries(entries).reduce(
58
- (acc, [key, entry]) => {
59
- const type = entry._primitive();
60
- if (typeof type === "string") {
61
- acc[key] = type;
62
- }
63
- return acc;
64
- },
65
- {}
66
- );
67
40
  }
68
- };
41
+ return [{
42
+ type: "tabs",
43
+ id: "tabs",
44
+ children: result
45
+ }];
46
+ }
47
+ };
48
+
49
+ // src/schema/dialog/condition.ts
50
+ function addConditionToField(fields, path, condition) {
51
+ const keys = path.split(".");
52
+ let currentFields = fields;
53
+ for (let i = 0; i < keys.length; i++) {
54
+ const key = keys[i];
55
+ const field = currentFields.find((f) => f.id === key);
56
+ if (!field) {
57
+ throw new Error(`Field with id "${key}" not found`);
58
+ }
59
+ if (i === keys.length - 1) {
60
+ field.condition = condition;
61
+ } else {
62
+ if (!field.children) {
63
+ throw new Error(`Field with id "${key}" has no children`);
64
+ }
65
+ currentFields = field.children;
66
+ }
67
+ }
68
+ }
69
+ var Condition = class {
70
+ constructor() {
71
+ __publicField(this, "conditions", /* @__PURE__ */ new Map());
72
+ }
73
+ addCondition(field, condition) {
74
+ const operators = {
75
+ eq: (field2, value) => ({ operator: "eq", field: field2, value }),
76
+ neq: (field2, value) => ({ operator: "neq", field: field2, value }),
77
+ exists: (field2) => ({ operator: "exists", field: field2 }),
78
+ and: (...operations) => ({ operator: "and", value: operations }),
79
+ or: (...operations) => ({ operator: "or", value: operations })
80
+ };
81
+ this.conditions.set(field, condition(operators));
82
+ }
83
+ parse(entries) {
84
+ for (let [key, value] of this.conditions) {
85
+ addConditionToField(entries, key, value);
86
+ }
87
+ return entries;
88
+ }
89
+ };
90
+
91
+ // src/utils/pathToArray.ts
92
+ function pathToArray(obj, parentPath = []) {
93
+ const result = [];
94
+ for (const [key, value] of Object.entries(obj)) {
95
+ const currentPath = [...parentPath, key];
96
+ if (typeof value === "object" && !value.hasOwnProperty("operator") && !Array.isArray(value)) {
97
+ result.push(...pathToArray(value, currentPath));
98
+ } else {
99
+ result.push({ path: currentPath, value });
100
+ }
101
+ }
102
+ return result;
103
+ }
104
+
105
+ // src/schema/dialog/dialog.ts
106
+ var DialogBuilder = class {
107
+ constructor(entries) {
108
+ __publicField(this, "conditionsModule");
109
+ __publicField(this, "tabsModule");
110
+ __publicField(this, "entries");
111
+ __publicField(this, "type", "dialog");
112
+ this.entries = entries;
113
+ this.conditionsModule = new Condition();
114
+ this.tabsModule = new Tabs();
115
+ }
116
+ conditions(conditions) {
117
+ const conditionsArray = pathToArray(conditions);
118
+ for (const condition of conditionsArray) {
119
+ this.conditionsModule.addCondition(condition.path.join("."), condition.value);
120
+ }
121
+ return this;
122
+ }
123
+ tabs(tabs) {
124
+ for (const [key, tab] of Object.entries(tabs)) {
125
+ this.tabsModule.addTab(key, tab);
126
+ }
127
+ return this;
128
+ }
129
+ _parse() {
130
+ const dialog2 = Object.entries(this.entries).map(([key, entry]) => ({
131
+ id: key,
132
+ name: key,
133
+ ...entry._parse()
134
+ })).filter((entry) => {
135
+ if ("type" in entry) {
136
+ return entry.type !== "hidden";
137
+ }
138
+ });
139
+ const dialogWithConditions = this.conditionsModule.parse(dialog2);
140
+ const dialogWithTabs = this.tabsModule.parse(dialogWithConditions);
141
+ return {
142
+ dialog: dialogWithTabs
143
+ };
144
+ }
145
+ _primitive() {
146
+ const result = {};
147
+ for (const [key, entry] of Object.entries(this.entries)) {
148
+ const type = entry._primitive();
149
+ if (typeof type === "string") {
150
+ result[key] = type;
151
+ }
152
+ }
153
+ return result;
154
+ }
155
+ };
156
+ function dialog(entries) {
157
+ return new DialogBuilder(entries);
69
158
  }
70
159
 
71
160
  // src/schema/multifield/multifield.ts
72
161
  function multifield(input) {
73
- const { label, children } = input;
162
+ const { label, children, required } = input;
74
163
  const childrenParse = children._parse();
75
164
  return {
76
165
  type: "multifield",
@@ -78,6 +167,7 @@ function multifield(input) {
78
167
  return {
79
168
  type: "multifield",
80
169
  label,
170
+ required,
81
171
  children: Array.isArray(childrenParse) ? childrenParse : [childrenParse]
82
172
  };
83
173
  },
@@ -90,7 +180,7 @@ function multifield(input) {
90
180
 
91
181
  // src/schema/text/text.ts
92
182
  function text(input) {
93
- const { placeholder, label, tooltip } = input;
183
+ const { placeholder, label, tooltip, required } = input;
94
184
  return {
95
185
  type: "textfield",
96
186
  _parse() {
@@ -98,7 +188,8 @@ function text(input) {
98
188
  type: "textfield",
99
189
  label,
100
190
  placeholder,
101
- tooltip
191
+ tooltip,
192
+ required
102
193
  };
103
194
  },
104
195
  _primitive() {
@@ -110,14 +201,15 @@ function text(input) {
110
201
 
111
202
  // src/schema/checkbox/checkbox.ts
112
203
  function checkbox(input) {
113
- const { label, tooltip } = input;
204
+ const { label, tooltip, showastoggle = false } = input;
114
205
  return {
115
206
  type: "checkbox",
116
207
  _parse() {
117
208
  return {
118
209
  type: "checkbox",
119
210
  label,
120
- tooltip
211
+ tooltip,
212
+ showastoggle
121
213
  };
122
214
  },
123
215
  _primitive() {
@@ -129,7 +221,7 @@ function checkbox(input) {
129
221
 
130
222
  // src/schema/pathbrowser/pathbrowser.ts
131
223
  function pathbrowser(input) {
132
- const { placeholder, label, tooltip } = input;
224
+ const { placeholder, label, tooltip, required } = input;
133
225
  return {
134
226
  type: "pathbrowser",
135
227
  _parse() {
@@ -137,7 +229,8 @@ function pathbrowser(input) {
137
229
  type: "pathbrowser",
138
230
  label,
139
231
  placeholder,
140
- tooltip
232
+ tooltip,
233
+ required
141
234
  };
142
235
  },
143
236
  _primitive() {
@@ -149,15 +242,15 @@ function pathbrowser(input) {
149
242
 
150
243
  // src/schema/image/image.ts
151
244
  function image(input) {
152
- const { placeholder, label, tooltip } = input;
245
+ const { label, tooltip, required } = input;
153
246
  return {
154
247
  type: "image",
155
248
  _parse() {
156
249
  return {
157
250
  type: "image",
158
251
  label,
159
- placeholder,
160
- tooltip
252
+ tooltip,
253
+ required
161
254
  };
162
255
  },
163
256
  _primitive() {
@@ -169,27 +262,31 @@ function image(input) {
169
262
 
170
263
  // src/schema/select/select.ts
171
264
  function select(input) {
172
- const { label, values, tooltip } = input;
265
+ const { label, values, tooltip, placeholder, multiple = false, required } = input;
173
266
  return {
174
267
  type: "select",
175
268
  _parse() {
176
269
  return {
177
270
  type: "select",
178
271
  label,
272
+ multiple,
179
273
  values,
180
- tooltip
274
+ tooltip,
275
+ placeholder,
276
+ required
181
277
  };
182
278
  },
183
279
  _primitive() {
184
- return "string";
280
+ return multiple ? "json" : "string";
185
281
  },
186
- ...input
282
+ ...input,
283
+ multiple
187
284
  };
188
285
  }
189
286
 
190
287
  // src/schema/rte/rte.ts
191
288
  function rte(input) {
192
- const { placeholder, label, tooltip } = input;
289
+ const { placeholder, label, tooltip, required } = input;
193
290
  return {
194
291
  type: "richtexteditor",
195
292
  _parse() {
@@ -197,7 +294,8 @@ function rte(input) {
197
294
  type: "richtexteditor",
198
295
  label,
199
296
  placeholder,
200
- tooltip
297
+ tooltip,
298
+ required
201
299
  };
202
300
  },
203
301
  _primitive() {
@@ -216,6 +314,98 @@ function dynamic(input) {
216
314
  type: "dynamic"
217
315
  };
218
316
  },
317
+ _primitive() {
318
+ return "string";
319
+ },
320
+ ...input
321
+ };
322
+ }
323
+
324
+ // src/schema/calendar/calendar.ts
325
+ function calendar(input) {
326
+ const { valueformat, startday = 0, min, max, placeholder, label, tooltip, required } = input;
327
+ return {
328
+ type: "calendar",
329
+ _parse() {
330
+ return {
331
+ type: "calendar",
332
+ label,
333
+ valueformat,
334
+ placeholder,
335
+ startday,
336
+ tooltip,
337
+ min,
338
+ max,
339
+ required
340
+ };
341
+ },
342
+ _primitive() {
343
+ return "string";
344
+ },
345
+ ...input
346
+ };
347
+ }
348
+
349
+ // src/schema/datasource/datasource.ts
350
+ function datasource(input) {
351
+ const { label, body, url, tooltip, placeholder, multiple = false, required } = input;
352
+ return {
353
+ type: "datasource",
354
+ _parse() {
355
+ return {
356
+ type: "datasource",
357
+ label,
358
+ url,
359
+ multiple,
360
+ body,
361
+ tooltip,
362
+ placeholder,
363
+ required
364
+ };
365
+ },
366
+ _primitive() {
367
+ return multiple ? "json" : "string";
368
+ },
369
+ ...input
370
+ };
371
+ }
372
+
373
+ // src/schema/group/group.ts
374
+ function group(input) {
375
+ const { label, children, tooltip, toggle } = input;
376
+ const childrenParse = children._parse();
377
+ return {
378
+ type: "group",
379
+ _parse() {
380
+ return {
381
+ type: "group",
382
+ label,
383
+ tooltip,
384
+ toggle,
385
+ children: Array.isArray(childrenParse) ? childrenParse : [childrenParse]
386
+ };
387
+ },
388
+ _primitive() {
389
+ return "json";
390
+ },
391
+ ...input
392
+ };
393
+ }
394
+
395
+ // src/schema/datamodel/datamodel.ts
396
+ function datamodel(input) {
397
+ const { placeholder, label, tooltip, required } = input;
398
+ return {
399
+ type: "datamodel",
400
+ _parse() {
401
+ return {
402
+ type: "datamodel",
403
+ label,
404
+ placeholder,
405
+ tooltip,
406
+ required
407
+ };
408
+ },
219
409
  _primitive() {
220
410
  return "json";
221
411
  },
@@ -306,7 +496,6 @@ function component(config, dialog2, slots) {
306
496
  return {
307
497
  type: "component",
308
498
  dialog: dialog2,
309
- slots,
310
499
  _parse() {
311
500
  return {
312
501
  ...config,
@@ -342,10 +531,16 @@ function webcomponent(schema, options) {
342
531
  };
343
532
  }
344
533
  export {
534
+ Condition,
535
+ Tabs,
536
+ calendar,
345
537
  checkbox,
346
538
  component,
539
+ datamodel,
540
+ datasource,
347
541
  dialog,
348
542
  dynamic,
543
+ group,
349
544
  hidden,
350
545
  image,
351
546
  multifield,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema/dialog/dialog.ts","../src/schema/multifield/multifield.ts","../src/schema/text/text.ts","../src/schema/checkbox/checkbox.ts","../src/schema/pathbrowser/pathbrowser.ts","../src/schema/image/image.ts","../src/schema/select/select.ts","../src/schema/rte/rte.ts","../src/schema/dynamic/dynamic.ts","../src/schema/hidden/hidden.ts","../src/schema/optional/optional.ts","../src/schema/object/object.ts","../src/decorators/webcomponent/webcomponent.ts","../src/utils/pascalToKebab.ts","../src/functions/parse/parse.ts","../src/functions/parse/parsePrimitives.ts","../src/functions/component/component.ts"],"sourcesContent":["import { BaseSchema, EntryMask } from '../../types';\nimport { WebcomponentPropTypes } from '../../types/webcomponent';\nimport { ObjectEntries, ObjectOutput } from '../../types/object';\n\nexport interface DialogSchema<TEntries extends ObjectEntries, TOutput = ObjectOutput<TEntries>> extends BaseSchema<TOutput> {\n type: 'dialog';\n tabs: (tabs: Record<string, EntryMask<TEntries>>) => Omit<DialogSchema<TEntries>, 'tabs'>;\n}\n\nexport function dialog<TEntries extends ObjectEntries>(entries: TEntries): DialogSchema<TEntries> {\n return {\n type: 'dialog',\n tabs(tabs) {\n return {\n ...this,\n tabs: undefined,\n component: undefined,\n _parse() {\n const usedEntries = new Set<keyof TEntries>();\n\n const tabsArray = Object.entries(tabs)\n .map(([tabKey, value]) => {\n\n const children = Object.entries(value).map(([key, value]) => {\n if (value === true) {\n if (usedEntries.has(key)) {\n throw new Error(`Entry \"${String(tabKey)}.${String(key)}\" is already used in another tab.`);\n }\n usedEntries.add(key);\n return {\n id: key,\n ...entries[key]._parse()\n };\n }\n });\n\n return {\n type: 'tab',\n label: tabKey,\n id: `tab_${tabKey.toLowerCase().replaceAll(' ', '')}`,\n children\n };\n });\n\n return {\n dialog: [{\n type: 'tabs',\n id: 'tabs',\n children: tabsArray\n }]\n };\n }\n };\n },\n _parse() {\n const dialog = Object.entries(entries)\n .map(([key, entry]) => ({\n id: key,\n name: key,\n ...entry._parse()\n }))\n .filter((entry: object) => {\n if ('type' in entry) {\n return entry.type !== 'hidden';\n }\n });\n\n return {\n dialog\n };\n },\n _primitive() {\n return Object.entries(entries)\n .reduce(\n (acc: Record<string, WebcomponentPropTypes>, [key, entry]) => {\n const type = entry._primitive();\n if (typeof type === 'string') {\n acc[key] = type;\n }\n return acc;\n }, {});\n }\n };\n}","import {\n BaseFieldInput,\n BaseSchema,\n InferOutput\n} from '../../types';\n\nexport interface MultifieldSchema<\n TChildren extends BaseSchema<unknown>,\n> extends BaseSchema<InferOutput<TChildren>[]> {\n readonly type: 'multifield';\n /**\n * The children item schema.\n */\n readonly children: TChildren;\n}\n\ninterface MultifieldInput<TChildren extends BaseSchema<unknown>> extends BaseFieldInput {\n children: TChildren\n}\n\nexport function multifield<const TChildren extends BaseSchema<unknown>>(input: MultifieldInput<TChildren>): MultifieldSchema<TChildren> {\n const {label, children} = input;\n const childrenParse = children._parse();\n\n return {\n type: 'multifield',\n _parse() {\n return {\n type: 'multifield',\n label,\n children: Array.isArray(childrenParse) ? childrenParse : [childrenParse]\n }\n },\n _primitive() {\n return 'json'\n },\n ...input\n };\n}","import { BaseFieldInput, type BaseSchema } from '../../types';\n\nexport interface TextSchema<TOutput extends string = string> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'textfield';\n}\n\ninterface TextInput extends BaseFieldInput {\n placeholder: string;\n}\n\nexport function text(input: TextInput): TextSchema {\n const {placeholder, label,tooltip} = input;\n\n return {\n type: 'textfield',\n _parse() {\n return {\n type: 'textfield',\n label,\n placeholder,\n tooltip,\n }\n },\n _primitive() {\n return 'string'\n },\n ...input,\n }\n}","import { BaseFieldInput, type BaseSchema } from '../../types';\n\nexport interface CheckBoxSchema<TOutput extends boolean = boolean> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'checkbox';\n}\n\ninterface CheckBoxInput extends BaseFieldInput {}\n\nexport function checkbox(input: CheckBoxInput): CheckBoxSchema {\n const {label, tooltip} = input;\n\n return {\n type: 'checkbox',\n _parse() {\n return {\n type: 'checkbox',\n label,\n tooltip,\n }\n },\n _primitive() {\n return 'boolean'\n },\n ...input,\n }\n}","import { BaseFieldInput, type BaseSchema } from '../../types';\n\nexport interface PathBrowserSchema<TOutput extends string = string> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'pathbrowser';\n}\n\ninterface PathBrowserInput extends BaseFieldInput {\n placeholder: string;\n}\n\nexport function pathbrowser(input: PathBrowserInput): PathBrowserSchema {\n const {placeholder, label, tooltip} = input;\n\n return {\n type: 'pathbrowser',\n _parse() {\n return {\n type: 'pathbrowser',\n label,\n placeholder,\n tooltip,\n }\n },\n _primitive() {\n return 'string'\n },\n ...input,\n }\n}","import { BaseFieldInput, type BaseSchema } from '../../types';\n\nexport interface ImageSchema<TOutput extends string = string> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'image';\n}\n\ninterface ImageInput extends BaseFieldInput {\n placeholder: string;\n}\n\nexport function image(input: ImageInput): ImageSchema {\n const {placeholder, label, tooltip} = input;\n\n return {\n type: 'image',\n _parse() {\n return {\n type: 'image',\n label,\n placeholder,\n tooltip\n }\n },\n _primitive() {\n return 'string'\n },\n ...input,\n }\n}","import { BaseFieldInput, type BaseSchema } from '../../types';\n\nexport interface SelectSchema<TOutput extends string = string> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'select';\n}\n\ninterface SelectInput extends BaseFieldInput {\n values: {\n value: string,\n label: string,\n }[]\n}\n\nexport function select(input: SelectInput): SelectSchema {\n const {label, values, tooltip} = input;\n\n return {\n type: 'select',\n _parse() {\n return {\n type: 'select',\n label,\n values,\n tooltip,\n }\n },\n _primitive() {\n return 'string'\n },\n ...input,\n }\n}\n","import { BaseFieldInput, type BaseSchema } from '../../types';\n\nexport interface RichTextEditorSchema<TOutput extends string = string> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'richtexteditor';\n}\n\ninterface RichTextEditorInput extends BaseFieldInput {\n placeholder: string;\n}\n\nexport function rte(input: RichTextEditorInput): RichTextEditorSchema {\n const {placeholder, label, tooltip} = input;\n\n return {\n type: 'richtexteditor',\n _parse() {\n return {\n type: 'richtexteditor',\n label,\n placeholder,\n tooltip,\n }\n },\n _primitive() {\n return 'string'\n },\n ...input,\n }\n}","import {\n BaseSchema,\n} from '../../types';\n\nexport interface DynamicZoneSchema extends BaseSchema<{\n dataPath: string;\n childrenHtml: string;\n dataConfig: {\n path: string,\n slingPath: string,\n type: string,\n isResponsiveGrid: boolean,\n csp: string,\n editConfig: { actions: string[], disableTargeting: boolean }\n };\n}> {\n /**\n * The schema type.\n */\n readonly type: 'dynamic';\n}\n\ninterface DynamicInput {\n}\n\nexport function dynamic(input: DynamicInput): DynamicZoneSchema {\n return {\n type: 'dynamic',\n _parse() {\n return {\n type: 'dynamic',\n };\n },\n _primitive() {\n return 'json';\n },\n ...input,\n };\n}","import { type BaseSchema } from '../../types';\nimport { type WebcomponentPropTypes } from '../../types/webcomponent';\n\nexport interface HiddenSchema extends BaseSchema<string> {\n /**\n * The schema type.\n */\n type: 'hidden';\n}\n\ninterface HiddenInput {\n type: WebcomponentPropTypes\n}\n\n/**\n * Creates a hidden schema.\n *\n * @param input The type of input for the webcomponent binding.\n *\n * @returns A hidden schema.\n */\nexport function hidden(input: HiddenInput): HiddenSchema {\n const {type} = input;\n\n return {\n type: 'hidden',\n _parse() {\n //Explicitly hidding this input from the parse final result.\n return this;\n },\n _primitive() {\n return type\n },\n }\n}","import { BaseSchema, Output } from '../../types';\n\n/**\n * Optional schema type.\n */\nexport interface OptionalSchema<\n TWrapped extends BaseSchema,\n TOutput = Output<TWrapped> | undefined\n> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'optional';\n /**\n * The wrapped schema.\n */\n wrapped: TWrapped;\n}\n\n\n/**\n * Creates an optional schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns A optional schema.\n */\nexport function optional<TWrapped extends BaseSchema>(\n wrapped: TWrapped\n): OptionalSchema<TWrapped> {\n return {\n type: 'optional',\n wrapped,\n _primitive() {\n return this.wrapped._primitive();\n },\n _parse() {\n return this.wrapped._parse();\n },\n };\n}","import type { BaseSchema } from '../../types';\nimport { ObjectEntries, ObjectOutput } from '../../types/object';\n\nexport interface ObjectSchema<TEntries extends ObjectEntries, TOutput = ObjectOutput<TEntries>> extends BaseSchema<TOutput> {\n type: 'object';\n}\n\nexport function object<TEntries extends ObjectEntries>(entries: TEntries): ObjectSchema<TEntries> {\n return {\n type: 'object',\n _parse() {\n return Object.entries(entries)\n .map(([key, entry]) => ({\n id: key,\n name: key,\n ...entry._parse()\n }))\n .filter((entry: object) => {\n if('type' in entry){\n return entry.type !== 'hidden'\n }\n })\n },\n _primitive() {\n return 'json'\n }\n };\n}","import type React from 'react';\nimport r2wc from '@r2wc/react-to-web-component';\nimport { DialogSchema } from '../../schema/dialog';\nimport { pascalToKebab } from '../../utils/pascalToKebab';\nimport { parsePrimitives } from '../../functions';\nimport { WebcomponentPropTypes } from '../../types/webcomponent';\nimport { ObjectEntries } from '../../types/object';\n\ntype BaseOptions = {}\n\nexport function webcomponent<T extends ObjectEntries>(schema?: DialogSchema<T>, options?: BaseOptions) {\n const props: Record<string, WebcomponentPropTypes> | undefined = schema ? {\n ...parsePrimitives(schema),\n } : undefined;\n\n return <P extends {} = {}>(component: React.ComponentType<P>) => {\n const name = pascalToKebab(component.displayName!)\n\n if (!window.customElements.get(name)) {\n customElements.define(\n name,\n r2wc(component, {\n props,\n }),\n );\n }\n }\n}","export function pascalToKebab(pascalCaseString: string) {\n return pascalCaseString\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .toLowerCase();\n}","import { DialogSchema } from '../../schema/dialog';\nimport { ObjectEntries } from '../../types/object';\n\nexport function parse<T extends ObjectEntries>(schema: DialogSchema<T>) {\n return schema._parse()\n}","import { DialogSchema } from '../../schema/dialog';\nimport { WebcomponentPropTypes } from '../../types/webcomponent';\nimport { ObjectEntries } from '../../types/object';\n\nexport function parsePrimitives<T extends ObjectEntries>(schema: DialogSchema<T>) {\n return schema._primitive() as Record<string, WebcomponentPropTypes>\n}","import { BaseSchema, ComponentModel } from '../../types';\nimport { ObjectEntries, ObjectOutput, SlotEntries } from '../../types/object';\nimport { DialogSchema } from '../../schema/dialog';\nimport { WebcomponentPropTypes } from '../../types/webcomponent';\n\nexport interface ComponentSchema<TEntries extends ObjectEntries, TSlots extends SlotEntries, TOutput = ObjectOutput<TEntries & TSlots>> extends BaseSchema<TOutput>, Partial<ComponentModel> {\n type: 'component';\n dialog: Omit<DialogSchema<TEntries>, 'tabs'>;\n slots?: TSlots,\n}\n\nexport function component<TEntries extends ObjectEntries, TSlots extends SlotEntries>(\n config: Partial<ComponentModel>,\n dialog: Omit<DialogSchema<TEntries>, 'tabs'>,\n slots?: TSlots,\n): ComponentSchema<TEntries, TSlots> {\n\n const slotsParse = slots ? Object.entries(slots).map(([key, slot]) => (\n {\n id: key,\n name: key,\n ...slot._parse(),\n }),\n ) : [];\n const slotsPrimitives = slots ? Object.entries(slots).reduce((acc, [key, slot]) => {\n acc[key] = slot._primitive();\n return acc\n }, {} as Record<string, WebcomponentPropTypes | Record<string, WebcomponentPropTypes>>) : [];\n\n return {\n type: 'component',\n dialog,\n slots,\n _parse() {\n return {\n ...config,\n ...dialog._parse(),\n dynamiczones: slotsParse,\n };\n },\n _primitive() {\n return {\n ...dialog._primitive() as object,\n ...slotsPrimitives as object,\n };\n },\n ...config,\n };\n}"],"mappings":"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","names":["value","dialog","dialog","component"]}
1
+ {"version":3,"sources":["../src/schema/dialog/tabs.ts","../src/schema/dialog/condition.ts","../src/utils/pathToArray.ts","../src/schema/dialog/dialog.ts","../src/schema/multifield/multifield.ts","../src/schema/text/text.ts","../src/schema/checkbox/checkbox.ts","../src/schema/pathbrowser/pathbrowser.ts","../src/schema/image/image.ts","../src/schema/select/select.ts","../src/schema/rte/rte.ts","../src/schema/dynamic/dynamic.ts","../src/schema/calendar/calendar.ts","../src/schema/datasource/datasource.ts","../src/schema/group/group.ts","../src/schema/datamodel/datamodel.ts","../src/schema/hidden/hidden.ts","../src/schema/optional/optional.ts","../src/schema/object/object.ts","../src/decorators/webcomponent/webcomponent.ts","../src/utils/pascalToKebab.ts","../src/functions/parse/parse.ts","../src/functions/parse/parsePrimitives.ts","../src/functions/component/component.ts"],"sourcesContent":["import { EntryMask } from '../../types';\nimport { Field } from './types';\n\nexport class Tabs<TEntries> {\n private tabs = new Map<string, EntryMask<TEntries>>();\n\n addTab(name: string, entries: EntryMask<TEntries>) {\n this.tabs.set(name, entries);\n }\n\n parse(entries: Field[]) {\n const result = []\n const usedEntries = new Set();\n\n if(this.tabs.size === 0) {\n return entries\n }\n\n for(const [name, mask] of this.tabs) {\n const children = []\n\n if(!mask) {\n throw new Error(`Entry \"${String(name)}\" does not have an appropriate tab configuration.`);\n }\n\n for(const [key,] of Object.entries(mask)) {\n const field = entries.find(f => f.id === key)\n\n if (usedEntries.has(key)) {\n throw new Error(`Entry \"${String(name)}.${String(key)}\" is already used in another tab.`);\n }\n\n if(!field) {\n throw new Error(`Field with id \"${key}\" not found`);\n }\n\n children.push(entries.find(f => f.id === key))\n }\n\n result.push({\n type: 'tab',\n label: name,\n id: `tab_${name.toLowerCase().replaceAll(' ', '')}`,\n children\n })\n }\n\n return [{\n type: 'tabs',\n id: 'tabs',\n children: result\n }]\n }\n}","import { NestedPaths } from '../../types';\nimport { ConditionFn, ConditionOperators, Conditions, Field } from './types';\nimport { ObjectEntries } from '../../types/object';\n\nfunction addConditionToField(fields: Field[], path: string, condition: Conditions): void {\n const keys = path.split('.');\n let currentFields = fields;\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const field = currentFields.find(f => f.id === key);\n\n if (!field) {\n throw new Error(`Field with id \"${key}\" not found`);\n }\n\n if (i === keys.length - 1) {\n field.condition = condition;\n } else {\n if (!field.children) {\n throw new Error(`Field with id \"${key}\" has no children`);\n }\n currentFields = field.children;\n }\n }\n}\n\nexport class Condition<TEntries extends ObjectEntries> {\n private conditions = new Map<string, Conditions>();\n\n addCondition(field: NestedPaths<TEntries>, condition: ConditionFn<TEntries>) {\n const operators: ConditionOperators<TEntries> = {\n eq: (field, value) => ({ operator: 'eq', field, value }),\n neq: (field, value) => ({ operator: 'neq', field, value }),\n exists: (field) => ({ operator: 'exists', field }),\n and: (...operations) => ({ operator: 'and', value: operations }),\n or: (...operations) => ({ operator: 'or', value: operations })\n };\n\n this.conditions.set(field, condition(operators));\n }\n\n parse(entries: Field[]) {\n for (let [key, value] of this.conditions) {\n addConditionToField(entries, key, value)\n }\n\n return entries;\n }\n}\n","interface PathValue {\n path: string[];\n value: any;\n}\n\nexport function pathToArray(obj: Record<string, any>, parentPath: string[] = []): PathValue[] {\n const result: PathValue[] = [];\n\n for (const [key, value] of Object.entries(obj)) {\n const currentPath = [...parentPath, key];\n\n if (typeof value === 'object' && !value.hasOwnProperty('operator') && !Array.isArray(value)) {\n // If the value is an object, recurse into it\n result.push(...pathToArray(value, currentPath));\n } else {\n // If the value is not an object, store the path and value\n result.push({ path: currentPath, value });\n }\n }\n\n return result;\n}","import { BaseSchema, EntryMask, NestedPaths } from '../../types';\nimport { ObjectEntries, ObjectOutput } from '../../types/object';\nimport { Tabs } from './tabs';\nimport { WebcomponentPropTypes } from '../../types/webcomponent';\nimport { Condition } from './condition';\nimport { pathToArray } from '../../utils/pathToArray';\nimport { ConditionsArgument } from './types';\n\nexport interface DialogSchema<TEntries extends ObjectEntries> extends BaseSchema<ObjectOutput<TEntries>> {\n type: 'dialog';\n tabs: (tabs: Record<string, EntryMask<TEntries>>) => DialogSchema<TEntries>;\n conditions: (conditions: ConditionsArgument<TEntries>) => DialogSchema<TEntries>;\n}\n\nclass DialogBuilder<TEntries extends ObjectEntries> implements DialogSchema<TEntries> {\n private conditionsModule: Condition<TEntries>;\n private tabsModule: Tabs<TEntries>;\n private readonly entries: TEntries;\n readonly type = 'dialog';\n\n constructor(entries: TEntries) {\n this.entries = entries;\n this.conditionsModule = new Condition<TEntries>();\n this.tabsModule = new Tabs<TEntries>();\n }\n\n conditions(conditions: ConditionsArgument<TEntries>) {\n const conditionsArray = pathToArray(conditions)\n for (const condition of conditionsArray) {\n this.conditionsModule.addCondition(condition.path.join('.') as NestedPaths<TEntries>, condition.value);\n }\n return this;\n }\n\n tabs(tabs: Record<string, EntryMask<TEntries>>) {\n for (const [key, tab] of Object.entries(tabs)) {\n this.tabsModule.addTab(key as any, tab!);\n }\n return this;\n }\n\n _parse() {\n const dialog = Object.entries(this.entries)\n .map(([key, entry]) => ({\n id: key,\n name: key,\n ...entry._parse(),\n }))\n .filter((entry: object) => {\n if ('type' in entry) {\n return entry.type !== 'hidden';\n }\n });\n\n const dialogWithConditions = this.conditionsModule.parse(dialog);\n const dialogWithTabs = this.tabsModule.parse(dialogWithConditions);\n return {\n dialog: dialogWithTabs\n };\n }\n\n _primitive() {\n const result: Record<string, WebcomponentPropTypes> = {};\n\n for (const [key, entry] of Object.entries(this.entries)) {\n const type = entry._primitive();\n if (typeof type === 'string') {\n result[key] = type;\n }\n }\n\n return result;\n }\n}\n\nexport function dialog<TEntries extends ObjectEntries>(entries: TEntries) {\n return new DialogBuilder(entries)\n}","import {\n BaseFieldInput,\n BaseSchema,\n InferOutput\n} from '../../types';\n\nexport interface MultifieldSchema<\n TChildren extends BaseSchema<unknown>,\n> extends BaseSchema<InferOutput<TChildren>[]> {\n readonly type: 'multifield';\n /**\n * The children item schema.\n */\n readonly children: TChildren;\n}\n\ninterface MultifieldInput<TChildren extends BaseSchema<unknown>> extends BaseFieldInput {\n children: TChildren\n}\n\nexport function multifield<const TChildren extends BaseSchema<unknown>>(input: MultifieldInput<TChildren>): MultifieldSchema<TChildren> {\n const {label, children, required} = input;\n const childrenParse = children._parse();\n\n return {\n type: 'multifield',\n _parse() {\n return {\n type: 'multifield',\n label,\n required,\n children: Array.isArray(childrenParse) ? childrenParse : [childrenParse]\n }\n },\n _primitive() {\n return 'json'\n },\n ...input\n };\n}","import { BaseFieldInput, type BaseSchema } from '../../types';\n\nexport interface TextSchema<TOutput extends string = string> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'textfield';\n}\n\ninterface TextInput extends BaseFieldInput {\n placeholder?: string;\n}\n\nexport function text(input: TextInput): TextSchema {\n const {placeholder, label,tooltip, required} = input;\n\n return {\n type: 'textfield',\n _parse() {\n return {\n type: 'textfield',\n label,\n placeholder,\n tooltip,\n required\n }\n },\n _primitive() {\n return 'string'\n },\n ...input,\n }\n}","import { BaseFieldInput, type BaseSchema } from '../../types';\n\nexport interface CheckBoxSchema<TOutput extends boolean = boolean> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'checkbox';\n}\n\ninterface CheckBoxInput extends BaseFieldInput {\n showastoggle?: boolean\n}\n\nexport function checkbox(input: CheckBoxInput): CheckBoxSchema {\n const {label, tooltip, showastoggle = false} = input;\n\n return {\n type: 'checkbox',\n _parse() {\n return {\n type: 'checkbox',\n label,\n tooltip,\n showastoggle\n }\n },\n _primitive() {\n return 'boolean'\n },\n ...input,\n }\n}","import { BaseFieldInput, type BaseSchema } from '../../types';\n\nexport interface PathBrowserSchema<TOutput extends string = string> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'pathbrowser';\n}\n\ninterface PathBrowserInput extends BaseFieldInput {\n placeholder: string;\n}\n\nexport function pathbrowser(input: PathBrowserInput): PathBrowserSchema {\n const {placeholder, label, tooltip, required} = input;\n\n return {\n type: 'pathbrowser',\n _parse() {\n return {\n type: 'pathbrowser',\n label,\n placeholder,\n tooltip,\n required\n }\n },\n _primitive() {\n return 'string'\n },\n ...input,\n }\n}","import { BaseFieldInput, type BaseSchema } from '../../types';\n\nexport interface ImageSchema<TOutput extends string = string> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'image';\n}\n\ninterface ImageInput extends BaseFieldInput {\n}\n\nexport function image(input: ImageInput): ImageSchema {\n const {label, tooltip, required} = input;\n\n return {\n type: 'image',\n _parse() {\n return {\n type: 'image',\n label,\n tooltip,\n required\n }\n },\n _primitive() {\n return 'string'\n },\n ...input,\n }\n}","import { BaseFieldInput, BaseSchema } from '../../types';\n\ntype ReadonlyObject<T> = {\n readonly [K in keyof T]: T[K];\n};\n\nexport interface SelectSchema<T, TMultiple extends boolean = false> extends BaseSchema<TMultiple extends true ? T[] : T> {\n /**\n * The schema type.\n */\n type: 'select';\n multiple: TMultiple\n}\n\ninterface SelectInput extends BaseFieldInput {\n placeholder?: string;\n multiple?: boolean;\n values: {\n value: string;\n label: string;\n }[];\n}\n\n\ntype ValuesType<T extends { values: readonly { value: string }[] }> = T['values'][number]['value'];\n\nexport function select<const T extends SelectInput, TMultiple extends boolean= T['multiple'] extends true ? true : false>(input: T): SelectSchema<ValuesType<ReadonlyObject<T>>, TMultiple>{\n const { label, values, tooltip, placeholder, multiple = false, required } = input;\n\n return {\n type: 'select',\n _parse() {\n return {\n type: 'select',\n label,\n multiple,\n values,\n tooltip,\n placeholder,\n required\n };\n },\n _primitive() {\n return multiple ? 'json' : 'string';\n },\n ...input,\n multiple: multiple as TMultiple,\n };\n}\n","import { BaseFieldInput, type BaseSchema } from '../../types';\n\nexport interface RichTextEditorSchema<TOutput extends string = string> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'richtexteditor';\n}\n\ninterface RichTextEditorInput extends BaseFieldInput {\n placeholder?: string;\n}\n\nexport function rte(input: RichTextEditorInput): RichTextEditorSchema {\n const {placeholder, label, tooltip, required} = input;\n\n return {\n type: 'richtexteditor',\n _parse() {\n return {\n type: 'richtexteditor',\n label,\n placeholder,\n tooltip,\n required\n }\n },\n _primitive() {\n return 'string'\n },\n ...input,\n }\n}","import {\n BaseSchema,\n} from '../../types';\n\nexport interface DynamicZoneSchema<TOutput extends string = string> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'dynamic';\n}\n\ninterface DynamicInput {\n}\n\nexport function dynamic(input: DynamicInput): DynamicZoneSchema {\n return {\n type: 'dynamic',\n _parse() {\n return {\n type: 'dynamic',\n };\n },\n _primitive() {\n return 'string';\n },\n ...input,\n };\n}","import { BaseFieldInput, type BaseSchema } from '../../types';\n\nexport interface CalendarSchema<TOutput extends string = string> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'calendar';\n}\n\ninterface CalendarInput extends BaseFieldInput {\n placeholder?: string;\n valueformat: string;\n displayformat: string;\n headerformat: string;\n startday?: string;\n min?: string;\n max?: string;\n}\n\nexport function calendar(input: CalendarInput): CalendarSchema {\n const {valueformat,startday=0,min,max, placeholder, label,tooltip,required} = input;\n\n return {\n type: 'calendar',\n _parse() {\n return {\n type: 'calendar',\n label,\n valueformat,\n placeholder,\n startday,\n tooltip,\n min,\n max,\n required\n }\n },\n _primitive() {\n return 'string'\n },\n ...input,\n }\n}","import { BaseFieldInput, type BaseSchema } from '../../types';\nimport { SelectSchema } from '../select';\ntype DataSourceOutputType<Multiple extends boolean> = Multiple extends true ? string[] : string;\n\nexport interface DataSourceSchema<Multiple extends boolean = false> extends BaseSchema<DataSourceOutputType<Multiple>> {\n /**\n * The schema type.\n */\n type: 'datasource';\n}\n\ninterface DataSourceBody {\n [key: string]: any;\n}\ninterface DataSourceInput extends BaseFieldInput {\n placeholder?: string;\n url: string;\n multiple?: boolean;\n body: DataSourceBody;\n}\n\nexport function datasource<Multiple extends boolean = false>(input: DataSourceInput & { multiple?: Multiple }): DataSourceSchema<Multiple> {\n const {label, body, url, tooltip,placeholder, multiple = false as Multiple, required } = input;\n\n return {\n type: 'datasource',\n _parse() {\n return {\n type: 'datasource',\n label,\n url,\n multiple,\n body,\n tooltip,\n placeholder,\n required,\n }\n },\n _primitive() {\n return multiple ? 'json' : 'string';\n },\n ...input,\n }\n}\n","import {\n BaseFieldInput,\n BaseSchema,\n InferOutput,\n} from '../../types';\n\nexport interface GroupSchema<\n TChildren extends BaseSchema<unknown>,\n> extends BaseSchema<{\n active: boolean;\n} & InferOutput<TChildren>> {\n readonly type: 'group';\n /**\n * The children item schema.\n */\n readonly children: TChildren;\n}\n\ninterface MultifieldInput<TChildren extends BaseSchema<unknown>> extends BaseFieldInput {\n children: TChildren;\n toggle?: boolean;\n}\n\nexport function group<const TChildren extends BaseSchema<unknown>>(input: MultifieldInput<TChildren>): GroupSchema<TChildren> {\n const { label, children, tooltip, toggle } = input;\n const childrenParse = children._parse();\n\n return {\n type: 'group',\n _parse() {\n return {\n type: 'group',\n label,\n tooltip,\n toggle,\n children: Array.isArray(childrenParse) ? childrenParse : [childrenParse],\n };\n },\n _primitive() {\n return 'json';\n },\n ...input,\n };\n}","import { BaseFieldInput, type BaseSchema } from '../../types';\n\nexport interface DataModelSchema<TOutput extends Record<string, any> = Record<string, any>> extends BaseSchema<TOutput> { /**\n * The schema type.\n */\n type: 'datamodel';\n}\n\ninterface DataModelInput extends BaseFieldInput {\n placeholder?: string;\n}\n\nexport function datamodel(input: DataModelInput): DataModelSchema {\n const {placeholder, label,tooltip, required} = input;\n\n return {\n type: 'datamodel',\n _parse() {\n return {\n type: 'datamodel',\n label,\n placeholder,\n tooltip,\n required\n }\n },\n _primitive() {\n return 'json'\n },\n ...input,\n }\n}","import { type BaseSchema } from '../../types';\nimport { type WebcomponentPropTypes } from '../../types/webcomponent';\n\nexport interface HiddenSchema extends BaseSchema<string> {\n /**\n * The schema type.\n */\n type: 'hidden';\n}\n\ninterface HiddenInput {\n type: WebcomponentPropTypes\n}\n\n/**\n * Creates a hidden schema.\n *\n * @param input The type of input for the webcomponent binding.\n *\n * @returns A hidden schema.\n */\nexport function hidden(input: HiddenInput): HiddenSchema {\n const {type} = input;\n\n return {\n type: 'hidden',\n _parse() {\n //Explicitly hidding this input from the parse final result.\n return this;\n },\n _primitive() {\n return type\n },\n }\n}","import { BaseSchema, Output } from '../../types';\n\n/**\n * Optional schema type.\n */\nexport interface OptionalSchema<\n TWrapped extends BaseSchema,\n TOutput = Output<TWrapped> | undefined\n> extends BaseSchema<TOutput> {\n /**\n * The schema type.\n */\n type: 'optional';\n /**\n * The wrapped schema.\n */\n wrapped: TWrapped;\n}\n\n\n/**\n * Creates an optional schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns A optional schema.\n */\nexport function optional<TWrapped extends BaseSchema>(\n wrapped: TWrapped\n): OptionalSchema<TWrapped> {\n return {\n type: 'optional',\n wrapped,\n _primitive() {\n return this.wrapped._primitive();\n },\n _parse() {\n return this.wrapped._parse();\n },\n };\n}","import type { BaseSchema } from '../../types';\nimport { ObjectEntries, ObjectOutput } from '../../types/object';\n\nexport interface ObjectSchema<TEntries extends ObjectEntries, TOutput = ObjectOutput<TEntries>> extends BaseSchema<TOutput> {\n type: 'object';\n}\n\nexport function object<TEntries extends ObjectEntries>(entries: TEntries): ObjectSchema<TEntries> {\n return {\n type: 'object',\n _parse() {\n return Object.entries(entries)\n .map(([key, entry]) => ({\n id: key,\n name: key,\n ...entry._parse()\n }))\n .filter((entry: object) => {\n if('type' in entry){\n return entry.type !== 'hidden'\n }\n })\n },\n _primitive() {\n return 'json'\n }\n };\n}","import type React from 'react';\nimport r2wc from '@r2wc/react-to-web-component';\nimport { DialogSchema } from '../../schema/dialog';\nimport { pascalToKebab } from '../../utils/pascalToKebab';\nimport { parsePrimitives } from '../../functions';\nimport { WebcomponentPropTypes } from '../../types/webcomponent';\nimport { ObjectEntries } from '../../types/object';\n\ntype BaseOptions = {}\n\nexport function webcomponent<T extends ObjectEntries>(schema?: DialogSchema<T>, options?: BaseOptions) {\n const props: Record<string, WebcomponentPropTypes> | undefined = schema ? {\n ...parsePrimitives(schema),\n } : undefined;\n\n return <P extends {} = {}>(component: React.ComponentType<P>) => {\n const name = pascalToKebab(component.displayName!)\n\n if (!window.customElements.get(name)) {\n customElements.define(\n name,\n r2wc(component, {\n props,\n }),\n );\n }\n }\n}","export function pascalToKebab(pascalCaseString: string) {\n return pascalCaseString\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .toLowerCase();\n}","import { DialogSchema } from '../../schema/dialog';\nimport { ObjectEntries } from '../../types/object';\n\nexport function parse<T extends ObjectEntries>(schema: DialogSchema<T>) {\n return schema._parse()\n}","import { DialogSchema } from '../../schema/dialog';\nimport { WebcomponentPropTypes } from '../../types/webcomponent';\nimport { ObjectEntries } from '../../types/object';\n\nexport function parsePrimitives<T extends ObjectEntries>(schema: DialogSchema<T>) {\n return schema._primitive() as Record<string, WebcomponentPropTypes>\n}","import { BaseSchema, ComponentModel } from '../../types';\nimport { ObjectEntries, ObjectOutput, SlotEntries } from '../../types/object';\nimport { DialogSchema } from '../../schema/dialog';\nimport { WebcomponentPropTypes } from '../../types/webcomponent';\n\nexport interface ComponentSchema<TEntries extends ObjectEntries, TSlots extends SlotEntries | undefined> extends BaseSchema<ObjectOutput<TEntries & TSlots>>, Partial<ComponentModel> {\n type: 'component';\n dialog: DialogSchema<TEntries>;\n slots?: TSlots,\n}\n\nexport function component<TEntries extends ObjectEntries, TSlots extends SlotEntries | undefined>(\n config: Partial<ComponentModel>,\n dialog: DialogSchema<TEntries>,\n slots?: TSlots,\n): ComponentSchema<TEntries, TSlots> {\n\n const slotsParse = slots ? Object.entries(slots).map(([key, slot]) => (\n {\n id: key,\n name: key,\n ...slot._parse(),\n }),\n ) : [];\n const slotsPrimitives = slots ? Object.entries(slots).reduce((acc, [key, slot]) => {\n acc[key] = slot._primitive();\n return acc\n }, {} as Record<string, WebcomponentPropTypes | Record<string, WebcomponentPropTypes>>) : [];\n\n return {\n type: 'component',\n dialog,\n _parse() {\n return {\n ...config,\n ...dialog._parse(),\n dynamiczones: slotsParse,\n };\n },\n _primitive() {\n return {\n ...dialog._primitive() as object,\n ...slotsPrimitives as object,\n };\n },\n ...config,\n };\n}"],"mappings":"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","names":["field","dialog","dialog","component"]}
@@ -0,0 +1,22 @@
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-B8taWezd.mjs';
2
+ import '../../types/webcomponent.mjs';
3
+ import '../../types/utils.mjs';
4
+
5
+ interface CalendarSchema<TOutput extends string = string> extends BaseSchema<TOutput> {
6
+ /**
7
+ * The schema type.
8
+ */
9
+ type: 'calendar';
10
+ }
11
+ interface CalendarInput extends BaseFieldInput {
12
+ placeholder?: string;
13
+ valueformat: string;
14
+ displayformat: string;
15
+ headerformat: string;
16
+ startday?: string;
17
+ min?: string;
18
+ max?: string;
19
+ }
20
+ declare function calendar(input: CalendarInput): CalendarSchema;
21
+
22
+ export { type CalendarSchema, calendar };
@@ -0,0 +1,22 @@
1
+ import { B as BaseSchema, d as BaseFieldInput } from '../../types-rfg_xywc.js';
2
+ import '../../types/webcomponent.js';
3
+ import '../../types/utils.js';
4
+
5
+ interface CalendarSchema<TOutput extends string = string> extends BaseSchema<TOutput> {
6
+ /**
7
+ * The schema type.
8
+ */
9
+ type: 'calendar';
10
+ }
11
+ interface CalendarInput extends BaseFieldInput {
12
+ placeholder?: string;
13
+ valueformat: string;
14
+ displayformat: string;
15
+ headerformat: string;
16
+ startday?: string;
17
+ min?: string;
18
+ max?: string;
19
+ }
20
+ declare function calendar(input: CalendarInput): CalendarSchema;
21
+
22
+ export { type CalendarSchema, calendar };