@wavemaker-ai/react-codegen 1.0.0-rc.647469 → 1.0.0-rc.647499

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 (129) hide show
  1. package/command.js +6 -1
  2. package/command.js.map +1 -1
  3. package/dist/transpiler/index.d.mts +62 -0
  4. package/dist/transpiler/index.mjs +47857 -0
  5. package/dist/transpiler/index.mjs.map +1 -0
  6. package/dist/transpiler/wm-styles.css +1502 -0
  7. package/package-lock.json +1144 -254
  8. package/package.json +21 -3
  9. package/src/app.generator.js +12 -10
  10. package/src/app.generator.js.map +1 -1
  11. package/src/gen-app-override-css.js +7 -7
  12. package/src/gen-app-override-css.js.map +1 -1
  13. package/src/handlebar-helpers.js +8 -356
  14. package/src/handlebar-helpers.js.map +1 -1
  15. package/src/transpile/bind.ex.transformer.js +13 -7
  16. package/src/transpile/bind.ex.transformer.js.map +1 -1
  17. package/src/transpile/components/advanced/carousel.transformer.js +1 -2
  18. package/src/transpile/components/advanced/carousel.transformer.js.map +1 -1
  19. package/src/transpile/components/advanced/login.transformer.js +1 -2
  20. package/src/transpile/components/advanced/login.transformer.js.map +1 -1
  21. package/src/transpile/components/container/accordion-pane.transformer.js +10 -0
  22. package/src/transpile/components/container/accordion-pane.transformer.js.map +1 -1
  23. package/src/transpile/components/container/accordion.transformer.js +2 -3
  24. package/src/transpile/components/container/accordion.transformer.js.map +1 -1
  25. package/src/transpile/components/container/container.transformer.js +13 -1
  26. package/src/transpile/components/container/container.transformer.js.map +1 -1
  27. package/src/transpile/components/container/panel.transformer.js +10 -0
  28. package/src/transpile/components/container/panel.transformer.js.map +1 -1
  29. package/src/transpile/components/container/tabpane.transformer.js +10 -0
  30. package/src/transpile/components/container/tabpane.transformer.js.map +1 -1
  31. package/src/transpile/components/container/tabs.transformer.js +3 -37
  32. package/src/transpile/components/container/tabs.transformer.js.map +1 -1
  33. package/src/transpile/components/container/wizard.transformer.js +3 -4
  34. package/src/transpile/components/container/wizard.transformer.js.map +1 -1
  35. package/src/transpile/components/container/wizardstep.transformer.js +25 -0
  36. package/src/transpile/components/container/wizardstep.transformer.js.map +1 -1
  37. package/src/transpile/components/data/card/card-content.transformer.js +10 -0
  38. package/src/transpile/components/data/card/card-content.transformer.js.map +1 -1
  39. package/src/transpile/components/data/form/form-action.transformer.js +2 -2
  40. package/src/transpile/components/data/form/form-action.transformer.js.map +1 -1
  41. package/src/transpile/components/data/form/form-field.transformer.js +2 -3
  42. package/src/transpile/components/data/form/form-field.transformer.js.map +1 -1
  43. package/src/transpile/components/data/form/form.transformer.js +6 -7
  44. package/src/transpile/components/data/form/form.transformer.js.map +1 -1
  45. package/src/transpile/components/data/list/list-template-transformer.js +10 -1
  46. package/src/transpile/components/data/list/list-template-transformer.js.map +1 -1
  47. package/src/transpile/components/data/list/list-transformer.js +24 -45
  48. package/src/transpile/components/data/list/list-transformer.js.map +1 -1
  49. package/src/transpile/components/data/live-filter-field.transformer.js +2 -3
  50. package/src/transpile/components/data/live-filter-field.transformer.js.map +1 -1
  51. package/src/transpile/components/data/livefilter.transformer.js +6 -7
  52. package/src/transpile/components/data/livefilter.transformer.js.map +1 -1
  53. package/src/transpile/components/data/liveform.transformer.js +6 -7
  54. package/src/transpile/components/data/liveform.transformer.js.map +1 -1
  55. package/src/transpile/components/data/table/table-column.transformer.js +9 -9
  56. package/src/transpile/components/data/table/table-column.transformer.js.map +1 -1
  57. package/src/transpile/components/data/table/table-row.transformer.js +20 -7
  58. package/src/transpile/components/data/table/table-row.transformer.js.map +1 -1
  59. package/src/transpile/components/data/table/utils.js +3 -3
  60. package/src/transpile/components/data/table/utils.js.map +1 -1
  61. package/src/transpile/components/dialogs/dialog-actions.transformer.js +1 -2
  62. package/src/transpile/components/dialogs/dialog-actions.transformer.js.map +1 -1
  63. package/src/transpile/components/dialogs/dialog.transformer.js +1 -1
  64. package/src/transpile/components/dialogs/dialog.transformer.js.map +1 -1
  65. package/src/transpile/components/dialogs/login-dialog.transformer.js +2 -3
  66. package/src/transpile/components/dialogs/login-dialog.transformer.js.map +1 -1
  67. package/src/transpile/components/layout/footer.transformer.js +27 -10
  68. package/src/transpile/components/layout/footer.transformer.js.map +1 -1
  69. package/src/transpile/components/layout/header.transformer.js +29 -12
  70. package/src/transpile/components/layout/header.transformer.js.map +1 -1
  71. package/src/transpile/components/layout/leftnav.transformer.js +26 -9
  72. package/src/transpile/components/layout/leftnav.transformer.js.map +1 -1
  73. package/src/transpile/components/layout/rightnav.transformer.js +27 -10
  74. package/src/transpile/components/layout/rightnav.transformer.js.map +1 -1
  75. package/src/transpile/components/layout/topnav.transformer.js +26 -13
  76. package/src/transpile/components/layout/topnav.transformer.js.map +1 -1
  77. package/src/transpile/components/nav/nav-item.transformer.js +1 -2
  78. package/src/transpile/components/nav/nav-item.transformer.js.map +1 -1
  79. package/src/transpile/components/nav/nav.transformer.js +1 -2
  80. package/src/transpile/components/nav/nav.transformer.js.map +1 -1
  81. package/src/transpile/components/nav/navbar.transformer.js +7 -8
  82. package/src/transpile/components/nav/navbar.transformer.js.map +1 -1
  83. package/src/transpile/components/navigation/popover.transformer.js +10 -0
  84. package/src/transpile/components/navigation/popover.transformer.js.map +1 -1
  85. package/src/transpile/components/page/partial-container.transformer.js +2 -36
  86. package/src/transpile/components/page/partial-container.transformer.js.map +1 -1
  87. package/src/transpile/components/partial/partial-content.transformer.js +56 -0
  88. package/src/transpile/components/partial/partial-content.transformer.js.map +1 -0
  89. package/src/transpile/components/prefab/prefab.transformer.js +11 -5
  90. package/src/transpile/components/prefab/prefab.transformer.js.map +1 -1
  91. package/src/transpile/components/utils.js +5 -5
  92. package/src/transpile/components/utils.js.map +1 -1
  93. package/src/transpile/index.js +65 -0
  94. package/src/transpile/index.js.map +1 -0
  95. package/src/transpile/property/property-parser.js +1 -0
  96. package/src/transpile/property/property-parser.js.map +1 -1
  97. package/src/transpile/serialize-variables.js +322 -0
  98. package/src/transpile/serialize-variables.js.map +1 -0
  99. package/src/transpile/style/split-css-shorthand.js +60 -0
  100. package/src/transpile/style/split-css-shorthand.js.map +1 -0
  101. package/src/transpile/transform-markup.js +283 -0
  102. package/src/transpile/transform-markup.js.map +1 -0
  103. package/src/transpile/transpile-variables.js +35 -0
  104. package/src/transpile/transpile-variables.js.map +1 -0
  105. package/src/transpile/transpile.js +67 -26
  106. package/src/transpile/transpile.js.map +1 -1
  107. package/src/transpile/transpiler.js +26 -0
  108. package/src/transpile/transpiler.js.map +1 -0
  109. package/src/transpile/variables-template-source.js +6 -0
  110. package/src/transpile/variables-template-source.js.map +1 -0
  111. package/src/transpile/variables-template.js +15 -0
  112. package/src/transpile/variables-template.js.map +1 -0
  113. package/src/transpile/widget-inline-style-processor.js +14 -44
  114. package/src/transpile/widget-inline-style-processor.js.map +1 -1
  115. package/src/utils.browser.js +853 -0
  116. package/src/utils.browser.js.map +1 -0
  117. package/src/utils.js +141 -87
  118. package/src/utils.js.map +1 -1
  119. package/src/variables/variable.transformer.js +15 -0
  120. package/src/variables/variable.transformer.js.map +1 -1
  121. package/templates/component/component.hbs +4 -17
  122. package/templates/component/partial.hbs +5 -14
  123. package/templates/project/app/client.layout.tsx +4 -4
  124. package/templates/project/app/components.css +1 -5
  125. package/templates/project/app/globals.css +1 -153
  126. package/templates/project/app/widgetInlineStylesOverride.css +351 -0
  127. package/templates/project/app/wm-globals.css +152 -0
  128. package/templates/project/app/wm-styles.css +4 -0
  129. package/templates/project/package.json +7 -4
@@ -0,0 +1,322 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.quoteKeyIfHyphen = exports.quoteIfString = exports.stringifyModelParams = exports.stringify = exports.stringifyObject = exports.formatValue = exports.processMapMarker = void 0;
4
+ const lodash_1 = require("lodash");
5
+ const utils_browser_1 = require("../utils.browser");
6
+ const isEvalExpression = (val) => /^[^\.]+\.eval\(/.test(val);
7
+ /**
8
+ * Processes a __MAP__ marker string and generates a .map() expression.
9
+ * Format: __MAP__<arrayPath>__STRUCTURE__<structure>__PARENT__<parent>__ENDMAP__
10
+ */
11
+ const processMapMarker = (marker) => {
12
+ const match = marker.match(/^__MAP__(.+?)__STRUCTURE__(.+?)__PARENT__(.+?)__ENDMAP__$/);
13
+ if (!match)
14
+ return marker;
15
+ const [, arrayPath, structureStr, parentValue] = match;
16
+ const structure = JSON.parse(structureStr);
17
+ const arrayProp = arrayPath.split(".").pop() || "";
18
+ const buildMapBody = (obj, itemPath = "item") => {
19
+ const parts = [];
20
+ for (const [key, value] of Object.entries(obj)) {
21
+ if (typeof value === "object" && value !== null) {
22
+ if (value.__isOverride) {
23
+ const overrideValue = value.value;
24
+ const originalValue = value.originalValue;
25
+ const isFromSameSource = originalValue && originalValue.includes("[$i]");
26
+ if (isFromSameSource) {
27
+ const regex = new RegExp(`\\.${arrayProp}\\[\\$i\\]`);
28
+ const m = originalValue.match(regex);
29
+ if (m) {
30
+ const splitIndex = originalValue.indexOf(m[0]) + m[0].length;
31
+ let itemAccessPath = originalValue.substring(splitIndex);
32
+ if (itemAccessPath) {
33
+ if (itemAccessPath.startsWith(".")) {
34
+ itemAccessPath = itemAccessPath.substring(1);
35
+ }
36
+ if (itemAccessPath.startsWith("[")) {
37
+ parts.push(`"${key}":${itemPath}${itemAccessPath}`);
38
+ }
39
+ else {
40
+ parts.push(`"${key}":${itemPath}.${itemAccessPath}`);
41
+ }
42
+ }
43
+ else {
44
+ parts.push(`"${key}":${itemPath}`);
45
+ }
46
+ }
47
+ else {
48
+ parts.push(`"${key}":${(0, exports.formatValue)(overrideValue)}`);
49
+ }
50
+ }
51
+ else {
52
+ if ((0, lodash_1.isString)(overrideValue) && isEvalExpression(overrideValue)) {
53
+ const unwrapMatch = overrideValue.match(/\.eval\(\(\)\s*=>\s*(.+)\)$/);
54
+ if (unwrapMatch) {
55
+ parts.push(`"${key}":${unwrapMatch[1]}`);
56
+ }
57
+ else {
58
+ parts.push(`"${key}":${(0, exports.formatValue)(overrideValue)}`);
59
+ }
60
+ }
61
+ else {
62
+ parts.push(`"${key}":${(0, exports.formatValue)(overrideValue)}`);
63
+ }
64
+ }
65
+ }
66
+ else {
67
+ const nestedBody = buildMapBody(value, itemPath);
68
+ parts.push(`"${key}":${nestedBody}`);
69
+ }
70
+ }
71
+ else {
72
+ parts.push(`"${key}":${(0, exports.formatValue)(value)}`);
73
+ }
74
+ }
75
+ return `{${parts.join(",")}}`;
76
+ };
77
+ const mapBody = buildMapBody(structure);
78
+ const evalMatch = parentValue.match(/^(.+\.eval\(\(\)\s*=>\s*)(.+)\)$/);
79
+ if (evalMatch) {
80
+ const [, evalPrefix, evalBody] = evalMatch;
81
+ return `${evalPrefix}${evalBody}.${arrayProp}.map(item=>(${mapBody})))`;
82
+ }
83
+ return `${parentValue}.${arrayProp}.map(item=>(${mapBody}))`;
84
+ };
85
+ exports.processMapMarker = processMapMarker;
86
+ /**
87
+ * Formats a single value into a TypeScript/JS code string.
88
+ */
89
+ const formatValue = (val) => {
90
+ if ((0, lodash_1.isString)(val)) {
91
+ if (val.startsWith("__MAP__")) {
92
+ return (0, exports.processMapMarker)(val);
93
+ }
94
+ if (isEvalExpression(val)) {
95
+ return val;
96
+ }
97
+ return JSON.stringify(val);
98
+ }
99
+ else if ((0, lodash_1.isNumber)(val) || val === true || val === false || val === null) {
100
+ return String(val);
101
+ }
102
+ else if (Array.isArray(val)) {
103
+ return JSON.stringify(val);
104
+ }
105
+ else if (typeof val === "object" && val !== null) {
106
+ return (0, exports.stringifyObject)(val);
107
+ }
108
+ return JSON.stringify(val);
109
+ };
110
+ exports.formatValue = formatValue;
111
+ /**
112
+ * Serializes a plain object into a TypeScript/JS object literal string.
113
+ * Handles __base__ spread markers and __MAP__ markers.
114
+ */
115
+ const stringifyObject = (obj) => {
116
+ const parts = [];
117
+ for (const [key, value] of Object.entries(obj)) {
118
+ if (typeof value === "object" && value !== null && "__base__" in value) {
119
+ const baseVal = value["__base__"];
120
+ const nestedProps = {};
121
+ const baseObject = value["__baseObject__"];
122
+ const scopeVar = value["__scope__"];
123
+ for (const [nestedKey, nestedVal] of Object.entries(value)) {
124
+ if (nestedKey !== "__base__" &&
125
+ nestedKey !== "__baseObject__" &&
126
+ nestedKey !== "__scope__") {
127
+ nestedProps[nestedKey] = nestedVal;
128
+ }
129
+ }
130
+ if (baseObject && scopeVar && typeof baseObject === "object") {
131
+ const objectToLiteral = (o) => Object.entries(o)
132
+ .map(([k, v]) => typeof v === "object" && v !== null && !Array.isArray(v)
133
+ ? `"${k}":{${objectToLiteral(v)}}`
134
+ : `"${k}":${JSON.stringify(v)}`)
135
+ .join(",");
136
+ const buildInlineEval = (obj, overrides) => {
137
+ const entries = [];
138
+ for (const [k, v] of Object.entries(obj)) {
139
+ if (v === undefined || v === null)
140
+ continue;
141
+ const overrideVal = overrides[k];
142
+ if (overrideVal !== undefined &&
143
+ typeof overrideVal === "object" &&
144
+ overrideVal !== null &&
145
+ !Array.isArray(overrideVal)) {
146
+ const overrideEntries = Object.entries(overrideVal)
147
+ .map(([ok, ov]) => `"${ok}":${(0, exports.formatValue)(ov)}`)
148
+ .join(",");
149
+ entries.push(`"${k}":{${objectToLiteral(v)},...${scopeVar}.eval(() => ({${overrideEntries}}))}`);
150
+ }
151
+ else if (overrideVal !== undefined) {
152
+ entries.push(`"${k}":${(0, exports.formatValue)(overrideVal)}`);
153
+ }
154
+ else if (typeof v === "object" && !Array.isArray(v)) {
155
+ entries.push(`"${k}":{${objectToLiteral(v)}}`);
156
+ }
157
+ else {
158
+ entries.push(`"${k}":${JSON.stringify(v)}`);
159
+ }
160
+ }
161
+ return entries.join(",");
162
+ };
163
+ const body = buildInlineEval(baseObject, nestedProps);
164
+ parts.push(`"${key}":${scopeVar}.eval(() => ({${body}}))`);
165
+ }
166
+ else {
167
+ const baseFormatted = (0, exports.formatValue)(baseVal);
168
+ const baseSpread = (0, lodash_1.isString)(baseVal) && (baseVal.trim().startsWith("{") || baseVal.trim().startsWith("["))
169
+ ? `JSON.parse(${baseFormatted})`
170
+ : baseFormatted;
171
+ let hasMapMarker = false;
172
+ for (const nVal of Object.values(nestedProps)) {
173
+ if ((0, lodash_1.isString)(nVal) && nVal.startsWith("__MAP__")) {
174
+ hasMapMarker = true;
175
+ break;
176
+ }
177
+ }
178
+ if (hasMapMarker) {
179
+ const processedProps = [`...${baseSpread}`];
180
+ for (const [nKey, nVal] of Object.entries(nestedProps)) {
181
+ if ((0, lodash_1.isString)(nVal) && nVal.startsWith("__MAP__")) {
182
+ processedProps.push(`"${nKey}":${(0, exports.processMapMarker)(nVal)}`);
183
+ }
184
+ else {
185
+ processedProps.push(`"${nKey}":${(0, exports.formatValue)(nVal)}`);
186
+ }
187
+ }
188
+ parts.push(`"${key}":{${processedProps.join(",")}}`);
189
+ }
190
+ else {
191
+ const nestedParts = [];
192
+ for (const [nKey, nVal] of Object.entries(nestedProps)) {
193
+ nestedParts.push(`"${nKey}":${(0, exports.formatValue)(nVal)}`);
194
+ }
195
+ parts.push(`"${key}":{...${baseSpread},...{${nestedParts.join(",")}}}`);
196
+ }
197
+ }
198
+ }
199
+ else {
200
+ parts.push(`"${key}":${(0, exports.formatValue)(value)}`);
201
+ }
202
+ }
203
+ return `{${parts.join(",")}}`;
204
+ };
205
+ exports.stringifyObject = stringifyObject;
206
+ /**
207
+ * Serializes any input value into a TypeScript/JS code string.
208
+ * Handles eval expressions, MAP markers, objects with __base__ spread, etc.
209
+ */
210
+ const stringify = (input) => {
211
+ if (input && typeof input === "object" && !Array.isArray(input)) {
212
+ return (0, exports.stringifyObject)(input);
213
+ }
214
+ return JSON.stringify(input).replace(/"([a-zA-Z]+\.eval\(.*?\))"/g, (x) => x.substring(1, x.length - 1).replace(/\\"/g, '"'));
215
+ };
216
+ exports.stringify = stringify;
217
+ /**
218
+ * Serializes params for ModelVariable, converting actiontask values to arrow functions.
219
+ */
220
+ const stringifyModelParams = (input, scope) => {
221
+ if (input === undefined || input === null) {
222
+ return (0, exports.stringify)(input);
223
+ }
224
+ const hasActionTaskDeep = (val) => {
225
+ if (!val || typeof val !== "object")
226
+ return false;
227
+ if (Array.isArray(val))
228
+ return val.some(v => hasActionTaskDeep(v));
229
+ for (const [k, v] of Object.entries(val)) {
230
+ if (k === "actiontask")
231
+ return true;
232
+ if (v && typeof v === "object" && hasActionTaskDeep(v))
233
+ return true;
234
+ }
235
+ return false;
236
+ };
237
+ const ensureScopePrefix = (expr, scopeVar) => {
238
+ const trimmed = (expr || "").trim();
239
+ if (!trimmed)
240
+ return `${scopeVar}.Widgets`;
241
+ if (trimmed.startsWith(`${scopeVar}.`))
242
+ return trimmed;
243
+ return `${scopeVar}.${trimmed}`;
244
+ };
245
+ const convertObject = (obj) => {
246
+ const parts = [];
247
+ for (const [key, value] of Object.entries(obj)) {
248
+ if (key === "actiontask") {
249
+ if (typeof value === "string") {
250
+ const v = value.trim();
251
+ if (v.startsWith("() =>") || v.startsWith("function")) {
252
+ parts.push(`"${key}":${v}`);
253
+ }
254
+ else {
255
+ const prefixed = ensureScopePrefix(v, scope);
256
+ let optionalized = (0, utils_browser_1.addOptionalChaining)(prefixed);
257
+ optionalized = optionalized === null || optionalized === void 0 ? void 0 : optionalized.replace(/(\?\.[a-zA-Z_$][a-zA-Z0-9_$]*)(\s*\()/g, "$1?.$2");
258
+ parts.push(`"${key}":() => ${optionalized}`);
259
+ }
260
+ }
261
+ else {
262
+ parts.push(`"${key}":${(0, exports.stringify)(value)}`);
263
+ }
264
+ }
265
+ else if (Array.isArray(value)) {
266
+ const items = value.map(it => {
267
+ if (it && typeof it === "object" && !Array.isArray(it) && hasActionTaskDeep(it)) {
268
+ return convertObject(it);
269
+ }
270
+ return (0, exports.stringify)(it);
271
+ });
272
+ parts.push(`"${key}":[${items.join(",")}]`);
273
+ }
274
+ else if (value && typeof value === "object") {
275
+ if (hasActionTaskDeep(value)) {
276
+ parts.push(`"${key}":${convertObject(value)}`);
277
+ }
278
+ else {
279
+ parts.push(`"${key}":${(0, exports.stringify)(value)}`);
280
+ }
281
+ }
282
+ else {
283
+ parts.push(`"${key}":${(0, exports.stringify)(value)}`);
284
+ }
285
+ }
286
+ return `{${parts.join(",")}}`;
287
+ };
288
+ if (Array.isArray(input)) {
289
+ const items = input.map(it => it && typeof it === "object" && !Array.isArray(it) ? convertObject(it) : (0, exports.stringify)(it));
290
+ return `[${items.join(",")}]`;
291
+ }
292
+ if (typeof input === "object") {
293
+ return convertObject(input);
294
+ }
295
+ return (0, exports.stringify)(input);
296
+ };
297
+ exports.stringifyModelParams = stringifyModelParams;
298
+ /**
299
+ * Wraps a string value in quotes; leaves numbers, booleans, and eval expressions as-is.
300
+ */
301
+ const quoteIfString = (arg) => {
302
+ if (arg === "")
303
+ return `"${arg}"`;
304
+ if (!isNaN(arg) || arg === "true" || arg === "false")
305
+ return arg;
306
+ if ((0, lodash_1.isString)(arg) && (isEvalExpression(arg) || arg.trim().startsWith("() =>")))
307
+ return arg;
308
+ if ((0, lodash_1.isString)(arg) && !isEvalExpression(arg))
309
+ return JSON.stringify(arg);
310
+ return arg;
311
+ };
312
+ exports.quoteIfString = quoteIfString;
313
+ /**
314
+ * Quotes an object key if it contains a hyphen (for valid JS object literal syntax).
315
+ */
316
+ const quoteKeyIfHyphen = (str) => {
317
+ if ((0, lodash_1.isString)(str) && str.includes("-"))
318
+ return JSON.stringify(str);
319
+ return str;
320
+ };
321
+ exports.quoteKeyIfHyphen = quoteKeyIfHyphen;
322
+ //# sourceMappingURL=serialize-variables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize-variables.js","sourceRoot":"","sources":["../../../src/transpile/serialize-variables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.splitCssShorthandOnSpaces = splitCssShorthandOnSpaces;
4
+ /**
5
+ * Splits a CSS shorthand list on ASCII-whitespace at top level only — not inside
6
+ * `()`, and not inside quoted strings. Handles backslash escapes in strings.
7
+ *
8
+ * Covers e.g. `var(--Spacing-0, 0) 0 0 0` (comma-spacing inside `var()`).
9
+ */
10
+ function splitCssShorthandOnSpaces(value) {
11
+ const s = value.trim();
12
+ if (!s.length)
13
+ return [];
14
+ const tokens = [];
15
+ let parenDepth = 0;
16
+ let quote = null;
17
+ let start = 0;
18
+ let i = 0;
19
+ while (i < s.length) {
20
+ const ch = s[i];
21
+ if (quote) {
22
+ if (ch === "\\" && i + 1 < s.length) {
23
+ i += 2;
24
+ continue;
25
+ }
26
+ if (ch === quote)
27
+ quote = null;
28
+ i++;
29
+ continue;
30
+ }
31
+ if (ch === "'" || ch === '"') {
32
+ quote = ch;
33
+ i++;
34
+ continue;
35
+ }
36
+ if (ch === "(") {
37
+ parenDepth++;
38
+ i++;
39
+ continue;
40
+ }
41
+ if (ch === ")") {
42
+ parenDepth = Math.max(0, parenDepth - 1);
43
+ i++;
44
+ continue;
45
+ }
46
+ if (/\s/.test(ch) && parenDepth === 0) {
47
+ if (i > start)
48
+ tokens.push(s.slice(start, i));
49
+ while (i < s.length && /\s/.test(s[i]))
50
+ i++;
51
+ start = i;
52
+ continue;
53
+ }
54
+ i++;
55
+ }
56
+ if (i > start)
57
+ tokens.push(s.slice(start, i));
58
+ return tokens;
59
+ }
60
+ //# sourceMappingURL=split-css-shorthand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split-css-shorthand.js","sourceRoot":"","sources":["../../../../src/transpile/style/split-css-shorthand.ts"],"names":[],"mappings":";;AAMA,8DAoDC;AA1DD;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,KAAa;IACrD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEzB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,GAAqB,IAAI,CAAC;IACnC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhB,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;gBACpC,CAAC,IAAI,CAAC,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,EAAE,KAAK,KAAK;gBAAE,KAAK,GAAG,IAAI,CAAC;YAC/B,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC7B,KAAK,GAAG,EAAE,CAAC;YACX,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,UAAU,EAAE,CAAC;YACb,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,KAAK;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,CAAC,EAAE,CAAC;YAC5C,KAAK,GAAG,CAAC,CAAC;YACV,SAAS;QACX,CAAC;QAED,CAAC,EAAE,CAAC;IACN,CAAC;IAED,IAAI,CAAC,GAAG,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC"}