xmlui 0.8.6 → 0.9.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 (106) hide show
  1. package/dist/{apiInterceptorWorker-fLBfPj2T.mjs → apiInterceptorWorker-230V_-Ds.mjs} +1 -1
  2. package/dist/{index-wd8FRzuM.mjs → index-DUwwx3L4.mjs} +5864 -6108
  3. package/dist/index.css +274 -301
  4. package/dist/language-server.mjs +25 -1
  5. package/dist/{lint-B18Ko6Sy.mjs → lint-gX2osbkz.mjs} +920 -1120
  6. package/dist/scripts/bin/build.js +2 -2
  7. package/dist/scripts/bin/start.js +3 -9
  8. package/dist/scripts/bin/vite-xmlui-plugin.js +2 -2
  9. package/dist/scripts/bin/viteConfig.js +89 -63
  10. package/dist/scripts/src/abstractions/scripting/ScriptingSourceTreeExp.js +1 -2
  11. package/dist/scripts/src/components/Accordion/Accordion.js +6 -16
  12. package/dist/scripts/src/components/App/AppNative.js +8 -0
  13. package/dist/scripts/src/components/AppHeader/AppHeader.js +1 -5
  14. package/dist/scripts/src/components/AppHeader/AppHeaderNative.js +10 -4
  15. package/dist/scripts/src/components/AutoComplete/AutoComplete.js +13 -19
  16. package/dist/scripts/src/components/AutoComplete/AutoCompleteContext.js +2 -0
  17. package/dist/scripts/src/components/AutoComplete/AutoCompleteNative.js +7 -3
  18. package/dist/scripts/src/components/Avatar/Avatar.js +2 -9
  19. package/dist/scripts/src/components/Badge/Badge.js +2 -8
  20. package/dist/scripts/src/components/Button/Button.js +28 -60
  21. package/dist/scripts/src/components/Card/Card.js +1 -6
  22. package/dist/scripts/src/components/Checkbox/Checkbox.js +4 -12
  23. package/dist/scripts/src/components/ComponentProvider.js +4 -0
  24. package/dist/scripts/src/components/DatePicker/DatePicker.js +3 -10
  25. package/dist/scripts/src/components/DropdownMenu/DropdownMenu.js +1 -1
  26. package/dist/scripts/src/components/Form/Form.js +12 -28
  27. package/dist/scripts/src/components/Form/FormNative.js +9 -0
  28. package/dist/scripts/src/components/FormItem/HelperText.js +1 -1
  29. package/dist/scripts/src/components/FormItem/ItemWithLabel.js +2 -2
  30. package/dist/scripts/src/components/Heading/HeadingNative.js +0 -1
  31. package/dist/scripts/src/components/HtmlTags/HtmlTags.js +4 -19
  32. package/dist/scripts/src/components/IconProvider.js +2 -2
  33. package/dist/scripts/src/components/Link/Link.js +2 -8
  34. package/dist/scripts/src/components/Markdown/MarkdownNative.js +4 -4
  35. package/dist/scripts/src/components/ModalDialog/ModalDialog.js +1 -3
  36. package/dist/scripts/src/components/NavGroup/NavGroup.js +34 -3
  37. package/dist/scripts/src/components/NavGroup/NavGroupNative.js +24 -12
  38. package/dist/scripts/src/components/NavLink/NavLink.js +4 -11
  39. package/dist/scripts/src/components/NavPanel/NavPanel.js +1 -6
  40. package/dist/scripts/src/components/ProgressBar/ProgressBar.js +2 -8
  41. package/dist/scripts/src/components/RadioGroup/RadioGroup.js +4 -12
  42. package/dist/scripts/src/components/Select/Select.js +5 -13
  43. package/dist/scripts/src/components/Select/SelectNative.js +7 -3
  44. package/dist/scripts/src/components/Slider/Slider.js +2 -8
  45. package/dist/scripts/src/components/Spinner/Spinner.js +1 -6
  46. package/dist/scripts/src/components/SubNavPanel/SubNavPanel.js +22 -0
  47. package/dist/scripts/src/components/SubNavPanel/SubNavPanelNative.js +9 -0
  48. package/dist/scripts/src/components/Switch/Switch.js +6 -16
  49. package/dist/scripts/src/components/Table/Table.js +8 -17
  50. package/dist/scripts/src/components/TableOfContents/TableOfContents.js +4 -12
  51. package/dist/scripts/src/components/Tabs/Tabs.js +3 -10
  52. package/dist/scripts/src/components/Text/Text.js +10 -24
  53. package/dist/scripts/src/components/TextBox/TextBoxNative.js +1 -1
  54. package/dist/scripts/src/components/Theme/ThemeNative.js +1 -1
  55. package/dist/scripts/src/components/ValidationSummary/ValidationSummary.js +3 -3
  56. package/dist/scripts/src/components-core/DevTools.js +5 -4
  57. package/dist/scripts/src/components-core/RestApiProxy.js +7 -3
  58. package/dist/scripts/src/components-core/action/APICall.js +2 -1
  59. package/dist/scripts/src/components-core/rendering/Container.js +15 -11
  60. package/dist/scripts/src/components-core/rendering/StateContainer.js +3 -2
  61. package/dist/scripts/src/components-core/script-runner/BindingTreeEvaluationContext.js +0 -2
  62. package/dist/scripts/src/components-core/script-runner/ParameterParser.js +1 -1
  63. package/dist/scripts/src/components-core/script-runner/asyncProxy.js +11 -64
  64. package/dist/scripts/src/components-core/script-runner/eval-tree-async.js +196 -175
  65. package/dist/scripts/src/components-core/script-runner/eval-tree-common.js +173 -231
  66. package/dist/scripts/src/components-core/script-runner/eval-tree-sync.js +129 -100
  67. package/dist/scripts/src/components-core/script-runner/process-statement-async.js +170 -175
  68. package/dist/scripts/src/components-core/script-runner/process-statement-common.js +48 -33
  69. package/dist/scripts/src/components-core/script-runner/process-statement-sync.js +164 -170
  70. package/dist/scripts/src/components-core/script-runner/statement-queue.js +5 -4
  71. package/dist/scripts/src/components-core/script-runner/visitors.js +124 -116
  72. package/dist/scripts/src/components-core/theming/themes/palette.js +1 -0
  73. package/dist/scripts/src/components-core/theming/themes/root.js +300 -154
  74. package/dist/scripts/src/components-core/theming/themes/theme-colors.js +510 -510
  75. package/dist/scripts/src/components-core/theming/themes/xmlui.js +0 -1
  76. package/dist/scripts/src/components-core/theming/transformThemeVars.js +11 -11
  77. package/dist/scripts/src/components-core/utils/misc.js +13 -0
  78. package/dist/scripts/src/components-core/utils/statementUtils.js +56 -53
  79. package/dist/scripts/src/components-core/xmlui-parser.js +1 -1
  80. package/dist/scripts/src/parsers/scripting-exp/Lexer.js +1092 -0
  81. package/dist/scripts/src/parsers/scripting-exp/Parser.js +2635 -0
  82. package/dist/scripts/src/parsers/scripting-exp/ParserError.js +47 -0
  83. package/dist/scripts/src/parsers/scripting-exp/TokenTrait.js +109 -0
  84. package/dist/scripts/src/parsers/scripting-exp/TokenType.js +2 -4
  85. package/dist/scripts/src/parsers/scripting-exp/code-behind-collect.js +101 -0
  86. package/dist/scripts/src/parsers/scripting-exp/modules.js +107 -0
  87. package/dist/scripts/src/parsers/{scripting → scripting-exp}/tree-visitor.js +103 -107
  88. package/dist/scripts/src/parsers/xmlui-parser/transform.js +12 -12
  89. package/dist/style.css +245 -286
  90. package/dist/xmlui-metadata.mjs +2741 -2211
  91. package/dist/xmlui-metadata.umd.js +2740 -2212
  92. package/dist/xmlui-parser.d.ts +320 -232
  93. package/dist/xmlui-parser.mjs +19 -19
  94. package/dist/xmlui-standalone.umd.js +6770 -7220
  95. package/dist/xmlui.d.ts +322 -230
  96. package/dist/xmlui.mjs +1 -1
  97. package/package.json +10 -6
  98. package/dist/_commonjsHelpers-CcAunmGO.mjs +0 -33
  99. package/dist/scripts/src/components-core/script-runner/ICustomOperations.js +0 -34
  100. package/dist/scripts/src/components-core/script-runner/custom-operations-registry.js +0 -40
  101. package/dist/scripts/src/components-core/script-runner/custom-ui-data.js +0 -40
  102. package/dist/scripts/src/components-core/script-runner/syncProxy.js +0 -31
  103. package/dist/scripts/src/parsers/scripting/code-behind-collect.js +0 -153
  104. package/dist/scripts/src/parsers/scripting/modules.js +0 -284
  105. /package/dist/scripts/src/abstractions/scripting/{LogicalThread.js → LogicalThreadExp.js} +0 -0
  106. /package/dist/scripts/src/abstractions/scripting/{TryScope.js → TryScopeExp.js} +0 -0
@@ -8,7 +8,6 @@ exports.XmlUiThemeDefinition = {
8
8
  // "font.inter": "https://rsms.me/inter/inter.css",
9
9
  },
10
10
  themeVars: {
11
- "boxShadow-header-App": "none",
12
11
  "font-size": "15px",
13
12
  "boxShadow-Input": "$boxShadow-sm",
14
13
  },
@@ -629,17 +629,17 @@ function generateBaseTonesForColor(varName, theme, options = { distributeEven: f
629
629
  color950 = baseColor.lightness(baseL - darkStep * 4.5);
630
630
  }
631
631
  return {
632
- [`${varName}-50`]: color50.toString(),
633
- [`${varName}-100`]: color100.toString(),
634
- [`${varName}-200`]: color200.toString(),
635
- [`${varName}-300`]: color300.toString(),
636
- [`${varName}-400`]: color400.toString(),
637
- [`${varName}-500`]: color500.toString(),
638
- [`${varName}-600`]: color600.toString(),
639
- [`${varName}-700`]: color700.toString(),
640
- [`${varName}-800`]: color800.toString(),
641
- [`${varName}-900`]: color900.toString(),
642
- [`${varName}-950`]: color950.toString(),
632
+ [`const-${varName}-50`]: color50.toString(),
633
+ [`const-${varName}-100`]: color100.toString(),
634
+ [`const-${varName}-200`]: color200.toString(),
635
+ [`const-${varName}-300`]: color300.toString(),
636
+ [`const-${varName}-400`]: color400.toString(),
637
+ [`const-${varName}-500`]: color500.toString(),
638
+ [`const-${varName}-600`]: color600.toString(),
639
+ [`const-${varName}-700`]: color700.toString(),
640
+ [`const-${varName}-800`]: color800.toString(),
641
+ [`const-${varName}-900`]: color900.toString(),
642
+ [`const-${varName}-950`]: color950.toString(),
643
643
  };
644
644
  }
645
645
  catch (e) {
@@ -13,6 +13,7 @@ exports.isPrimitive = exports.pickFromObject = exports.shallowCompare = exports.
13
13
  exports.partition = partition;
14
14
  exports.generatedId = generatedId;
15
15
  exports.randomUUID = randomUUID;
16
+ exports.readCookie = readCookie;
16
17
  exports.capitalizeFirstLetter = capitalizeFirstLetter;
17
18
  exports.removeNullProperties = removeNullProperties;
18
19
  exports.humanFileSize = humanFileSize;
@@ -67,6 +68,18 @@ function randomUUID() {
67
68
  // @ts-ignore
68
69
  return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) => (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16));
69
70
  }
71
+ function readCookie(name) {
72
+ const nameEQ = name + "=";
73
+ const ca = document.cookie.split(';');
74
+ for (let i = 0; i < ca.length; i++) {
75
+ let c = ca[i];
76
+ while (c.charAt(0) === ' ')
77
+ c = c.substring(1, c.length);
78
+ if (c.indexOf(nameEQ) === 0)
79
+ return c.substring(nameEQ.length, c.length);
80
+ }
81
+ return null;
82
+ }
70
83
  /**
71
84
  * Wait for a set duration asynchronously.
72
85
  * @param ms Time in ms to wait before continuing execution
@@ -12,7 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.parseHandlerCode = parseHandlerCode;
13
13
  exports.prepareHandlerStatements = prepareHandlerStatements;
14
14
  exports.runEventHandlerCode = runEventHandlerCode;
15
- const Parser_1 = require("../../parsers/scripting/Parser");
15
+ const ScriptingSourceTreeExp_1 = require("../../abstractions/scripting/ScriptingSourceTreeExp");
16
+ const Parser_1 = require("../../parsers/scripting-exp/Parser");
16
17
  const process_statement_async_1 = require("../script-runner/process-statement-async");
17
18
  const reportEngineError_1 = require("../reportEngineError");
18
19
  const EngineError_1 = require("../EngineError");
@@ -48,89 +49,90 @@ function parseHandlerCode(source) {
48
49
  }
49
50
  /**
50
51
  * Optionally transform statements in an event handler to an arrow expression statement
51
- * @param statements Statements to transform
52
+ * @param stmts Statements to transform
52
53
  * @param evalContext Optional event arguments
53
54
  */
54
- function prepareHandlerStatements(statements, evalContext) {
55
+ function prepareHandlerStatements(stmts, evalContext) {
55
56
  var _a;
56
- const stmtLength = (_a = statements === null || statements === void 0 ? void 0 : statements.length) !== null && _a !== void 0 ? _a : 0;
57
+ const stmtLength = (_a = stmts === null || stmts === void 0 ? void 0 : stmts.length) !== null && _a !== void 0 ? _a : 0;
57
58
  if (stmtLength === 0) {
58
59
  // -- Use a no-op arrow function
59
60
  return [
60
61
  {
61
- type: "ArrowS",
62
- expression: {
63
- type: "ArrowE",
62
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION_STATEMENT,
63
+ expr: {
64
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION,
64
65
  args: [],
65
66
  statement: {
66
- type: "EmptyS",
67
+ type: ScriptingSourceTreeExp_1.T_EMPTY_STATEMENT,
67
68
  },
68
69
  },
69
70
  },
70
71
  ];
71
72
  }
72
73
  if (stmtLength === 1) {
73
- const stmt = statements[0];
74
- if (stmt.type === "ExprS") {
74
+ const stmt = stmts[0];
75
+ if (stmt.type === ScriptingSourceTreeExp_1.T_EXPRESSION_STATEMENT) {
75
76
  // --- Handle single expression statements
76
77
  if (evalContext) {
77
78
  // --- We have a context in which the event handler is executed
78
- if (stmt.expression.type === "IdE") {
79
+ if (stmt.expr.type === ScriptingSourceTreeExp_1.T_IDENTIFIER) {
79
80
  // --- A single identifier, it is supposed to be an arrow function
80
81
  // --- Use this arrow expression
81
- return [convertExpressionToFunctionInvocation(stmt.expression)];
82
+ return [convertExpressionToFunctionInvocation(stmt.expr)];
82
83
  }
83
- if (isMemberExpressionChain(stmt.expression)) {
84
+ if (isMemberExpressionChain(stmt.expr)) {
84
85
  // --- A single member expression chain, it is supposed to be an arrow function
85
86
  // --- Use this arrow expression
86
- return [convertExpressionToFunctionInvocation(stmt.expression)];
87
+ return [convertExpressionToFunctionInvocation(stmt.expr)];
87
88
  }
88
89
  }
89
- if (stmt.expression.type === "ArrowE") {
90
+ if (stmt.expr.type === ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION) {
90
91
  // --- A single arrow expression
91
92
  return [
92
93
  {
93
- type: "ArrowS",
94
- expression: stmt.expression,
94
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION_STATEMENT,
95
+ expr: stmt.expr,
95
96
  },
96
97
  ];
97
98
  }
98
99
  // --- A single statement, turn into an arrow expression
99
100
  return [
100
101
  {
101
- type: "ArrowS",
102
- expression: {
103
- type: "ArrowE",
102
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION_STATEMENT,
103
+ expr: {
104
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION,
104
105
  args: [],
105
- statement: statements[0],
106
+ statement: stmts[0],
106
107
  },
107
108
  },
108
109
  ];
109
110
  }
110
- if (stmt.type === "RetS") {
111
+ if (stmt.type === ScriptingSourceTreeExp_1.T_RETURN_STATEMENT) {
111
112
  // --- A single arrow expression with a return
112
113
  return [
113
114
  {
114
- type: "ArrowS",
115
- expression: {
116
- type: "ArrowE",
115
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION_STATEMENT,
116
+ expr: {
117
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION,
117
118
  args: [],
118
119
  statement: {
119
- type: "BlockS",
120
- statements: [stmt],
120
+ type: ScriptingSourceTreeExp_1.T_BLOCK_STATEMENT,
121
+ stmts: [stmt],
121
122
  },
122
123
  },
123
124
  },
124
125
  ];
125
126
  }
126
- if (stmt.type === "BlockS") {
127
+ if (stmt.type === ScriptingSourceTreeExp_1.T_BLOCK_STATEMENT) {
127
128
  // --- A single block statement?
128
- if (stmt.statements[0].type === "ExprS" && stmt.statements[0].expression.type === "ArrowE") {
129
+ if (stmt.stmts[0].type === ScriptingSourceTreeExp_1.T_EXPRESSION_STATEMENT &&
130
+ stmt.stmts[0].expr.type === ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION) {
129
131
  // --- A single block statement with a single arrow expression?
130
132
  return [
131
133
  {
132
- type: "ArrowS",
133
- expression: stmt.statements[0].expression,
134
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION_STATEMENT,
135
+ expr: stmt.stmts[0].expr,
134
136
  },
135
137
  ];
136
138
  }
@@ -138,11 +140,11 @@ function prepareHandlerStatements(statements, evalContext) {
138
140
  // --- Consider as a body of a no-arg arrow function
139
141
  return [
140
142
  {
141
- type: "ArrowS",
142
- expression: {
143
- type: "ArrowE",
143
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION_STATEMENT,
144
+ expr: {
145
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION,
144
146
  args: [],
145
- statement: statements[0],
147
+ statement: stmts[0],
146
148
  },
147
149
  },
148
150
  ];
@@ -153,30 +155,31 @@ function prepareHandlerStatements(statements, evalContext) {
153
155
  // --- Use the statements as the body of a no-arg arrow function
154
156
  return [
155
157
  {
156
- type: "ArrowS",
157
- expression: {
158
- type: "ArrowE",
158
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION_STATEMENT,
159
+ expr: {
160
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION,
159
161
  args: [],
160
162
  statement: {
161
- type: "BlockS",
162
- statements,
163
+ type: ScriptingSourceTreeExp_1.T_BLOCK_STATEMENT,
164
+ stmts,
163
165
  },
164
166
  },
165
167
  },
166
168
  ];
167
169
  }
168
170
  // --- Nothing to transform
169
- return statements;
171
+ return stmts;
170
172
  function isMemberExpressionChain(expr) {
171
- return ((expr.type === "MembE" || (expr.type === "CMembE" && expr.member.type === "LitE")) &&
172
- (isMemberExpressionChain(expr.object) || expr.object.type === "IdE"));
173
+ return ((expr.type === ScriptingSourceTreeExp_1.T_MEMBER_ACCESS_EXPRESSION ||
174
+ (expr.type === ScriptingSourceTreeExp_1.T_CALCULATED_MEMBER_ACCESS_EXPRESSION && expr.member.type === ScriptingSourceTreeExp_1.T_LITERAL)) &&
175
+ (isMemberExpressionChain(expr.obj) || expr.obj.type === ScriptingSourceTreeExp_1.T_IDENTIFIER));
173
176
  }
174
177
  function convertExpressionToFunctionInvocation(expr) {
175
178
  // --- A single identifier, it is supposed to be an arrow function
176
179
  // --- Create formal arguments
177
180
  const formalArgs = evalContext.eventArgs
178
181
  ? evalContext.eventArgs.map((_, idx) => ({
179
- type: "IdE",
182
+ type: ScriptingSourceTreeExp_1.T_IDENTIFIER,
180
183
  name: `__arg@@#__${idx}__`,
181
184
  }))
182
185
  : [];
@@ -188,21 +191,21 @@ function prepareHandlerStatements(statements, evalContext) {
188
191
  }
189
192
  // --- Create the arrow expression
190
193
  const arrowExpr = {
191
- type: "ArrowE",
194
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION,
192
195
  args: formalArgs,
193
196
  statement: {
194
- type: "ExprS",
195
- expression: {
196
- type: "InvokeE",
197
- object: expr,
197
+ type: ScriptingSourceTreeExp_1.T_EXPRESSION_STATEMENT,
198
+ expr: {
199
+ type: ScriptingSourceTreeExp_1.T_FUNCTION_INVOCATION_EXPRESSION,
200
+ obj: expr,
198
201
  arguments: [...formalArgs],
199
202
  },
200
203
  },
201
204
  };
202
205
  // --- Use this arrow expression
203
206
  return {
204
- type: "ArrowS",
205
- expression: arrowExpr,
207
+ type: ScriptingSourceTreeExp_1.T_ARROW_EXPRESSION_STATEMENT,
208
+ expr: arrowExpr,
206
209
  };
207
210
  }
208
211
  }
@@ -213,9 +216,9 @@ function prepareHandlerStatements(statements, evalContext) {
213
216
  * @param thread Logical thread to use
214
217
  * @param onStatementCompleted Callback for statement completion
215
218
  */
216
- function runEventHandlerCode(source, evalContext, thread, onStatementCompleted) {
219
+ function runEventHandlerCode(source, evalContext, thread) {
217
220
  return __awaiter(this, void 0, void 0, function* () {
218
221
  const statements = prepareHandlerStatements(parseHandlerCode(source));
219
- return yield (0, process_statement_async_1.processStatementQueueAsync)(statements, evalContext, thread, onStatementCompleted);
222
+ return yield (0, process_statement_async_1.processStatementQueueAsync)(statements, evalContext, thread);
220
223
  });
221
224
  }
@@ -24,7 +24,7 @@ function xmlUiMarkupToComponent(source, fileId = 0, moduleResolver) {
24
24
  return { component: null, errors: errorsWithLines, erroneousCompoundComponentName };
25
25
  }
26
26
  try {
27
- const component = (0, transform_1.nodeToComponentDef)(node, getText, fileId, moduleResolver);
27
+ const component = (0, transform_1.nodeToComponentDef)(node, getText, fileId);
28
28
  const transformResult = { component, errors: [] };
29
29
  return transformResult;
30
30
  }