@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.js CHANGED
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
9
  var __export = (target, all) => {
9
10
  for (var name in all)
10
11
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -26,14 +27,21 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
27
  mod
27
28
  ));
28
29
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
29
31
 
30
32
  // src/index.ts
31
33
  var src_exports = {};
32
34
  __export(src_exports, {
35
+ Condition: () => Condition,
36
+ Tabs: () => Tabs,
37
+ calendar: () => calendar,
33
38
  checkbox: () => checkbox,
34
39
  component: () => component,
40
+ datamodel: () => datamodel,
41
+ datasource: () => datasource,
35
42
  dialog: () => dialog,
36
43
  dynamic: () => dynamic,
44
+ group: () => group,
37
45
  hidden: () => hidden,
38
46
  image: () => image,
39
47
  multifield: () => multifield,
@@ -49,79 +57,164 @@ __export(src_exports, {
49
57
  });
50
58
  module.exports = __toCommonJS(src_exports);
51
59
 
52
- // src/schema/dialog/dialog.ts
53
- function dialog(entries) {
54
- return {
55
- type: "dialog",
56
- tabs(tabs) {
57
- return {
58
- ...this,
59
- tabs: void 0,
60
- component: void 0,
61
- _parse() {
62
- const usedEntries = /* @__PURE__ */ new Set();
63
- const tabsArray = Object.entries(tabs).map(([tabKey, value]) => {
64
- const children = Object.entries(value).map(([key, value2]) => {
65
- if (value2 === true) {
66
- if (usedEntries.has(key)) {
67
- throw new Error(`Entry "${String(tabKey)}.${String(key)}" is already used in another tab.`);
68
- }
69
- usedEntries.add(key);
70
- return {
71
- id: key,
72
- ...entries[key]._parse()
73
- };
74
- }
75
- });
76
- return {
77
- type: "tab",
78
- label: tabKey,
79
- id: `tab_${tabKey.toLowerCase().replaceAll(" ", "")}`,
80
- children
81
- };
82
- });
83
- return {
84
- dialog: [{
85
- type: "tabs",
86
- id: "tabs",
87
- children: tabsArray
88
- }]
89
- };
60
+ // src/schema/dialog/tabs.ts
61
+ var Tabs = class {
62
+ constructor() {
63
+ __publicField(this, "tabs", /* @__PURE__ */ new Map());
64
+ }
65
+ addTab(name, entries) {
66
+ this.tabs.set(name, entries);
67
+ }
68
+ parse(entries) {
69
+ const result = [];
70
+ const usedEntries = /* @__PURE__ */ new Set();
71
+ if (this.tabs.size === 0) {
72
+ return entries;
73
+ }
74
+ for (const [name, mask] of this.tabs) {
75
+ const children = [];
76
+ if (!mask) {
77
+ throw new Error(`Entry "${String(name)}" does not have an appropriate tab configuration.`);
78
+ }
79
+ for (const [key] of Object.entries(mask)) {
80
+ const field = entries.find((f) => f.id === key);
81
+ if (usedEntries.has(key)) {
82
+ throw new Error(`Entry "${String(name)}.${String(key)}" is already used in another tab.`);
90
83
  }
91
- };
92
- },
93
- _parse() {
94
- const dialog2 = Object.entries(entries).map(([key, entry]) => ({
95
- id: key,
96
- name: key,
97
- ...entry._parse()
98
- })).filter((entry) => {
99
- if ("type" in entry) {
100
- return entry.type !== "hidden";
84
+ if (!field) {
85
+ throw new Error(`Field with id "${key}" not found`);
101
86
  }
87
+ children.push(entries.find((f) => f.id === key));
88
+ }
89
+ result.push({
90
+ type: "tab",
91
+ label: name,
92
+ id: `tab_${name.toLowerCase().replaceAll(" ", "")}`,
93
+ children
102
94
  });
103
- return {
104
- dialog: dialog2
105
- };
106
- },
107
- _primitive() {
108
- return Object.entries(entries).reduce(
109
- (acc, [key, entry]) => {
110
- const type = entry._primitive();
111
- if (typeof type === "string") {
112
- acc[key] = type;
113
- }
114
- return acc;
115
- },
116
- {}
117
- );
118
95
  }
119
- };
96
+ return [{
97
+ type: "tabs",
98
+ id: "tabs",
99
+ children: result
100
+ }];
101
+ }
102
+ };
103
+
104
+ // src/schema/dialog/condition.ts
105
+ function addConditionToField(fields, path, condition) {
106
+ const keys = path.split(".");
107
+ let currentFields = fields;
108
+ for (let i = 0; i < keys.length; i++) {
109
+ const key = keys[i];
110
+ const field = currentFields.find((f) => f.id === key);
111
+ if (!field) {
112
+ throw new Error(`Field with id "${key}" not found`);
113
+ }
114
+ if (i === keys.length - 1) {
115
+ field.condition = condition;
116
+ } else {
117
+ if (!field.children) {
118
+ throw new Error(`Field with id "${key}" has no children`);
119
+ }
120
+ currentFields = field.children;
121
+ }
122
+ }
123
+ }
124
+ var Condition = class {
125
+ constructor() {
126
+ __publicField(this, "conditions", /* @__PURE__ */ new Map());
127
+ }
128
+ addCondition(field, condition) {
129
+ const operators = {
130
+ eq: (field2, value) => ({ operator: "eq", field: field2, value }),
131
+ neq: (field2, value) => ({ operator: "neq", field: field2, value }),
132
+ exists: (field2) => ({ operator: "exists", field: field2 }),
133
+ and: (...operations) => ({ operator: "and", value: operations }),
134
+ or: (...operations) => ({ operator: "or", value: operations })
135
+ };
136
+ this.conditions.set(field, condition(operators));
137
+ }
138
+ parse(entries) {
139
+ for (let [key, value] of this.conditions) {
140
+ addConditionToField(entries, key, value);
141
+ }
142
+ return entries;
143
+ }
144
+ };
145
+
146
+ // src/utils/pathToArray.ts
147
+ function pathToArray(obj, parentPath = []) {
148
+ const result = [];
149
+ for (const [key, value] of Object.entries(obj)) {
150
+ const currentPath = [...parentPath, key];
151
+ if (typeof value === "object" && !value.hasOwnProperty("operator") && !Array.isArray(value)) {
152
+ result.push(...pathToArray(value, currentPath));
153
+ } else {
154
+ result.push({ path: currentPath, value });
155
+ }
156
+ }
157
+ return result;
158
+ }
159
+
160
+ // src/schema/dialog/dialog.ts
161
+ var DialogBuilder = class {
162
+ constructor(entries) {
163
+ __publicField(this, "conditionsModule");
164
+ __publicField(this, "tabsModule");
165
+ __publicField(this, "entries");
166
+ __publicField(this, "type", "dialog");
167
+ this.entries = entries;
168
+ this.conditionsModule = new Condition();
169
+ this.tabsModule = new Tabs();
170
+ }
171
+ conditions(conditions) {
172
+ const conditionsArray = pathToArray(conditions);
173
+ for (const condition of conditionsArray) {
174
+ this.conditionsModule.addCondition(condition.path.join("."), condition.value);
175
+ }
176
+ return this;
177
+ }
178
+ tabs(tabs) {
179
+ for (const [key, tab] of Object.entries(tabs)) {
180
+ this.tabsModule.addTab(key, tab);
181
+ }
182
+ return this;
183
+ }
184
+ _parse() {
185
+ const dialog2 = Object.entries(this.entries).map(([key, entry]) => ({
186
+ id: key,
187
+ name: key,
188
+ ...entry._parse()
189
+ })).filter((entry) => {
190
+ if ("type" in entry) {
191
+ return entry.type !== "hidden";
192
+ }
193
+ });
194
+ const dialogWithConditions = this.conditionsModule.parse(dialog2);
195
+ const dialogWithTabs = this.tabsModule.parse(dialogWithConditions);
196
+ return {
197
+ dialog: dialogWithTabs
198
+ };
199
+ }
200
+ _primitive() {
201
+ const result = {};
202
+ for (const [key, entry] of Object.entries(this.entries)) {
203
+ const type = entry._primitive();
204
+ if (typeof type === "string") {
205
+ result[key] = type;
206
+ }
207
+ }
208
+ return result;
209
+ }
210
+ };
211
+ function dialog(entries) {
212
+ return new DialogBuilder(entries);
120
213
  }
121
214
 
122
215
  // src/schema/multifield/multifield.ts
123
216
  function multifield(input) {
124
- const { label, children } = input;
217
+ const { label, children, required } = input;
125
218
  const childrenParse = children._parse();
126
219
  return {
127
220
  type: "multifield",
@@ -129,6 +222,7 @@ function multifield(input) {
129
222
  return {
130
223
  type: "multifield",
131
224
  label,
225
+ required,
132
226
  children: Array.isArray(childrenParse) ? childrenParse : [childrenParse]
133
227
  };
134
228
  },
@@ -141,7 +235,7 @@ function multifield(input) {
141
235
 
142
236
  // src/schema/text/text.ts
143
237
  function text(input) {
144
- const { placeholder, label, tooltip } = input;
238
+ const { placeholder, label, tooltip, required } = input;
145
239
  return {
146
240
  type: "textfield",
147
241
  _parse() {
@@ -149,7 +243,8 @@ function text(input) {
149
243
  type: "textfield",
150
244
  label,
151
245
  placeholder,
152
- tooltip
246
+ tooltip,
247
+ required
153
248
  };
154
249
  },
155
250
  _primitive() {
@@ -161,14 +256,15 @@ function text(input) {
161
256
 
162
257
  // src/schema/checkbox/checkbox.ts
163
258
  function checkbox(input) {
164
- const { label, tooltip } = input;
259
+ const { label, tooltip, showastoggle = false } = input;
165
260
  return {
166
261
  type: "checkbox",
167
262
  _parse() {
168
263
  return {
169
264
  type: "checkbox",
170
265
  label,
171
- tooltip
266
+ tooltip,
267
+ showastoggle
172
268
  };
173
269
  },
174
270
  _primitive() {
@@ -180,7 +276,7 @@ function checkbox(input) {
180
276
 
181
277
  // src/schema/pathbrowser/pathbrowser.ts
182
278
  function pathbrowser(input) {
183
- const { placeholder, label, tooltip } = input;
279
+ const { placeholder, label, tooltip, required } = input;
184
280
  return {
185
281
  type: "pathbrowser",
186
282
  _parse() {
@@ -188,7 +284,8 @@ function pathbrowser(input) {
188
284
  type: "pathbrowser",
189
285
  label,
190
286
  placeholder,
191
- tooltip
287
+ tooltip,
288
+ required
192
289
  };
193
290
  },
194
291
  _primitive() {
@@ -200,15 +297,15 @@ function pathbrowser(input) {
200
297
 
201
298
  // src/schema/image/image.ts
202
299
  function image(input) {
203
- const { placeholder, label, tooltip } = input;
300
+ const { label, tooltip, required } = input;
204
301
  return {
205
302
  type: "image",
206
303
  _parse() {
207
304
  return {
208
305
  type: "image",
209
306
  label,
210
- placeholder,
211
- tooltip
307
+ tooltip,
308
+ required
212
309
  };
213
310
  },
214
311
  _primitive() {
@@ -220,27 +317,31 @@ function image(input) {
220
317
 
221
318
  // src/schema/select/select.ts
222
319
  function select(input) {
223
- const { label, values, tooltip } = input;
320
+ const { label, values, tooltip, placeholder, multiple = false, required } = input;
224
321
  return {
225
322
  type: "select",
226
323
  _parse() {
227
324
  return {
228
325
  type: "select",
229
326
  label,
327
+ multiple,
230
328
  values,
231
- tooltip
329
+ tooltip,
330
+ placeholder,
331
+ required
232
332
  };
233
333
  },
234
334
  _primitive() {
235
- return "string";
335
+ return multiple ? "json" : "string";
236
336
  },
237
- ...input
337
+ ...input,
338
+ multiple
238
339
  };
239
340
  }
240
341
 
241
342
  // src/schema/rte/rte.ts
242
343
  function rte(input) {
243
- const { placeholder, label, tooltip } = input;
344
+ const { placeholder, label, tooltip, required } = input;
244
345
  return {
245
346
  type: "richtexteditor",
246
347
  _parse() {
@@ -248,7 +349,8 @@ function rte(input) {
248
349
  type: "richtexteditor",
249
350
  label,
250
351
  placeholder,
251
- tooltip
352
+ tooltip,
353
+ required
252
354
  };
253
355
  },
254
356
  _primitive() {
@@ -267,6 +369,98 @@ function dynamic(input) {
267
369
  type: "dynamic"
268
370
  };
269
371
  },
372
+ _primitive() {
373
+ return "string";
374
+ },
375
+ ...input
376
+ };
377
+ }
378
+
379
+ // src/schema/calendar/calendar.ts
380
+ function calendar(input) {
381
+ const { valueformat, startday = 0, min, max, placeholder, label, tooltip, required } = input;
382
+ return {
383
+ type: "calendar",
384
+ _parse() {
385
+ return {
386
+ type: "calendar",
387
+ label,
388
+ valueformat,
389
+ placeholder,
390
+ startday,
391
+ tooltip,
392
+ min,
393
+ max,
394
+ required
395
+ };
396
+ },
397
+ _primitive() {
398
+ return "string";
399
+ },
400
+ ...input
401
+ };
402
+ }
403
+
404
+ // src/schema/datasource/datasource.ts
405
+ function datasource(input) {
406
+ const { label, body, url, tooltip, placeholder, multiple = false, required } = input;
407
+ return {
408
+ type: "datasource",
409
+ _parse() {
410
+ return {
411
+ type: "datasource",
412
+ label,
413
+ url,
414
+ multiple,
415
+ body,
416
+ tooltip,
417
+ placeholder,
418
+ required
419
+ };
420
+ },
421
+ _primitive() {
422
+ return multiple ? "json" : "string";
423
+ },
424
+ ...input
425
+ };
426
+ }
427
+
428
+ // src/schema/group/group.ts
429
+ function group(input) {
430
+ const { label, children, tooltip, toggle } = input;
431
+ const childrenParse = children._parse();
432
+ return {
433
+ type: "group",
434
+ _parse() {
435
+ return {
436
+ type: "group",
437
+ label,
438
+ tooltip,
439
+ toggle,
440
+ children: Array.isArray(childrenParse) ? childrenParse : [childrenParse]
441
+ };
442
+ },
443
+ _primitive() {
444
+ return "json";
445
+ },
446
+ ...input
447
+ };
448
+ }
449
+
450
+ // src/schema/datamodel/datamodel.ts
451
+ function datamodel(input) {
452
+ const { placeholder, label, tooltip, required } = input;
453
+ return {
454
+ type: "datamodel",
455
+ _parse() {
456
+ return {
457
+ type: "datamodel",
458
+ label,
459
+ placeholder,
460
+ tooltip,
461
+ required
462
+ };
463
+ },
270
464
  _primitive() {
271
465
  return "json";
272
466
  },
@@ -357,7 +551,6 @@ function component(config, dialog2, slots) {
357
551
  return {
358
552
  type: "component",
359
553
  dialog: dialog2,
360
- slots,
361
554
  _parse() {
362
555
  return {
363
556
  ...config,
@@ -394,10 +587,16 @@ function webcomponent(schema, options) {
394
587
  }
395
588
  // Annotate the CommonJS export names for ESM import in node:
396
589
  0 && (module.exports = {
590
+ Condition,
591
+ Tabs,
592
+ calendar,
397
593
  checkbox,
398
594
  component,
595
+ datamodel,
596
+ datasource,
399
597
  dialog,
400
598
  dynamic,
599
+ group,
401
600
  hidden,
402
601
  image,
403
602
  multifield,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.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/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":["export * from \"./schema/dialog\";\n\nexport * from \"./schema/multifield\";\nexport * from \"./schema/text\";\nexport * from \"./schema/checkbox\";\nexport * from \"./schema/pathbrowser\";\nexport * from \"./schema/image\";\nexport * from \"./schema/select\";\nexport * from \"./schema/rte\";\nexport * from \"./schema/dynamic\";\n\nexport * from \"./schema/hidden\";\nexport * from \"./schema/optional\";\nexport * from \"./schema/object\";\n\nexport * from \"./types\";\n\nexport * from \"./decorators\"\nexport * from \"./functions\"","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","r2wc"]}
1
+ {"version":3,"sources":["../src/index.ts","../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":["export * from \"./schema/dialog\";\n\nexport * from \"./schema/multifield\";\nexport * from \"./schema/text\";\nexport * from \"./schema/checkbox\";\nexport * from \"./schema/pathbrowser\";\nexport * from \"./schema/image\";\nexport * from \"./schema/select\";\nexport * from \"./schema/rte\";\nexport * from \"./schema/dynamic\";\nexport * from \"./schema/calendar\";\nexport * from \"./schema/datasource\";\nexport * from \"./schema/group\";\nexport * from \"./schema/datamodel\";\n\nexport * from \"./schema/hidden\";\nexport * from \"./schema/optional\";\nexport * from \"./schema/object\";\n\nexport * from \"./types\";\n\nexport * from \"./decorators\"\nexport * from \"./functions\"","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","r2wc"]}