xmlui 0.9.92 → 0.9.93
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.
- package/dist/lib/{index-C5eOg7bB.mjs → index-C4FeLQEv.mjs} +7972 -7779
- package/dist/lib/index.css +1 -1
- package/dist/lib/{initMock-DLD4GmW7.mjs → initMock-DwQKZ8T4.mjs} +1 -1
- package/dist/lib/language-server-web-worker.mjs +1 -1
- package/dist/lib/language-server.mjs +1 -1
- package/dist/lib/{metadata-utils-BE5_Lmoa.mjs → metadata-utils-PjrGUxZN.mjs} +1 -1
- package/dist/lib/{server-common-xCK0Af2K.mjs → server-common-BbjTO8TH.mjs} +2 -2
- package/dist/lib/{transform-bUuxPyao.mjs → transform-CDSgqN5L.mjs} +1240 -1202
- package/dist/lib/xmlui-parser.d.ts +3 -1
- package/dist/lib/xmlui-parser.mjs +2 -2
- package/dist/lib/{xmlui-serializer-BLFl30t9.mjs → xmlui-serializer-D6rtRMNI.mjs} +1 -1
- package/dist/lib/xmlui.d.ts +17 -12
- package/dist/lib/xmlui.mjs +2 -2
- package/dist/metadata/{collectedComponentMetadata-iKGyD6r3.mjs → collectedComponentMetadata-CTFECKPI.mjs} +8860 -8630
- package/dist/metadata/{initMock-CZGAyfXr.mjs → initMock-DUtrSCpH.mjs} +1 -1
- package/dist/metadata/style.css +1 -1
- package/dist/metadata/xmlui-metadata.mjs +1 -1
- package/dist/metadata/xmlui-metadata.umd.js +102 -98
- package/dist/scripts/package.json +2 -1
- package/dist/scripts/src/components/AutoComplete/AutoComplete.js +5 -2
- package/dist/scripts/src/components/AutoComplete/AutoCompleteContext.js +1 -2
- package/dist/scripts/src/components/AutoComplete/AutoCompleteNative.js +9 -12
- package/dist/scripts/src/components/Bookmark/Bookmark.js +1 -1
- package/dist/scripts/src/components/Option/Option.js +11 -11
- package/dist/scripts/src/components/Select/HiddenOption.js +2 -2
- package/dist/scripts/src/components/Select/Select.js +5 -9
- package/dist/scripts/src/components/Select/SelectNative.js +95 -45
- package/dist/scripts/src/components/SlotItem.js +1 -0
- package/dist/scripts/src/components/Spinner/SpinnerNative.js +3 -4
- package/dist/scripts/src/components/Tabs/TabItem.js +12 -1
- package/dist/scripts/src/components/Tabs/TabItemNative.js +4 -3
- package/dist/scripts/src/components/Tabs/Tabs.js +1 -1
- package/dist/scripts/src/components/Tabs/TabsNative.js +22 -43
- package/dist/scripts/src/components/TextArea/TextArea.js +1 -2
- package/dist/scripts/src/components/Toggle/Toggle.js +34 -10
- package/dist/scripts/src/components/container-helpers.js +2 -1
- package/dist/scripts/src/components-core/rendering/ComponentWrapper.js +2 -1
- package/dist/scripts/src/components-core/xmlui-parser.js +365 -196
- package/dist/scripts/src/parsers/xmlui-parser/diagnostics.js +1 -1
- package/dist/scripts/src/parsers/xmlui-parser/parser.js +69 -1
- package/dist/standalone/xmlui-standalone.es.d.ts +18 -12
- package/dist/standalone/xmlui-standalone.umd.js +252 -248
- package/package.json +2 -1
- package/dist/scripts/src/abstractions/scripting/modules.js +0 -2
|
@@ -33,6 +33,18 @@ const RECOVER_CLOSE_TAG = [
|
|
|
33
33
|
syntax_kind_1.SyntaxKind.CData,
|
|
34
34
|
syntax_kind_1.SyntaxKind.Script,
|
|
35
35
|
];
|
|
36
|
+
const needsExtendedContext = [
|
|
37
|
+
diagnostics_1.ErrCodes.unexpectedCloseTag,
|
|
38
|
+
diagnostics_1.ErrCodes.expCloseStartWithName,
|
|
39
|
+
diagnostics_1.ErrCodes.expCloseStart,
|
|
40
|
+
diagnostics_1.ErrCodes.tagNameMismatch,
|
|
41
|
+
diagnostics_1.ErrCodes.expEnd,
|
|
42
|
+
diagnostics_1.ErrCodes.expTagName,
|
|
43
|
+
diagnostics_1.ErrCodes.expTagOpen,
|
|
44
|
+
diagnostics_1.ErrCodes.expEndOrClose,
|
|
45
|
+
diagnostics_1.ErrCodes.expTagNameAfterNamespace,
|
|
46
|
+
diagnostics_1.ErrCodes.expTagNameAfterCloseStart,
|
|
47
|
+
];
|
|
36
48
|
function createXmlUiParser(source) {
|
|
37
49
|
return {
|
|
38
50
|
parse: () => parseXmlUiMarkup(source),
|
|
@@ -319,23 +331,70 @@ function parseXmlUiMarkup(text) {
|
|
|
319
331
|
attrNames.push({ name: attrName, ns: attrNs });
|
|
320
332
|
}
|
|
321
333
|
}
|
|
334
|
+
function getContextWithSurroundingLines(pos, end, surroundingContextLines) {
|
|
335
|
+
let newlinesFound;
|
|
336
|
+
let cursor;
|
|
337
|
+
let contextPos;
|
|
338
|
+
cursor = pos;
|
|
339
|
+
newlinesFound = 0;
|
|
340
|
+
while (cursor >= 0) {
|
|
341
|
+
if (text[cursor] === "\n") {
|
|
342
|
+
newlinesFound++;
|
|
343
|
+
if (newlinesFound > surroundingContextLines) {
|
|
344
|
+
break;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
cursor--;
|
|
348
|
+
}
|
|
349
|
+
contextPos = cursor + 1;
|
|
350
|
+
let contextEnd;
|
|
351
|
+
cursor = end;
|
|
352
|
+
newlinesFound = 0;
|
|
353
|
+
while (cursor < text.length) {
|
|
354
|
+
if (text[cursor] === "\n") {
|
|
355
|
+
newlinesFound++;
|
|
356
|
+
if (newlinesFound > surroundingContextLines) {
|
|
357
|
+
break;
|
|
358
|
+
}
|
|
359
|
+
cursor++;
|
|
360
|
+
}
|
|
361
|
+
else if (text[cursor] === "\r" && text[cursor + 1] === "\n") {
|
|
362
|
+
newlinesFound++;
|
|
363
|
+
if (newlinesFound > surroundingContextLines) {
|
|
364
|
+
break;
|
|
365
|
+
}
|
|
366
|
+
cursor += 2;
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
cursor++;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
contextEnd = cursor;
|
|
373
|
+
return { contextPos, contextEnd };
|
|
374
|
+
}
|
|
322
375
|
function error({ code, message, category }) {
|
|
323
376
|
const { pos, end } = peek();
|
|
377
|
+
const { contextPos, contextEnd } = getContextWithSurroundingLines(pos, end, 1);
|
|
324
378
|
errors.push({
|
|
325
379
|
category,
|
|
326
380
|
code,
|
|
327
381
|
message,
|
|
328
382
|
pos,
|
|
329
383
|
end,
|
|
384
|
+
contextPos,
|
|
385
|
+
contextEnd,
|
|
330
386
|
});
|
|
331
387
|
}
|
|
332
388
|
function errorAt({ code, message, category }, pos, end) {
|
|
389
|
+
const { contextPos, contextEnd } = getContextWithSurroundingLines(pos, end, 1);
|
|
333
390
|
errors.push({
|
|
334
391
|
category,
|
|
335
392
|
code,
|
|
336
393
|
message,
|
|
337
394
|
pos,
|
|
338
395
|
end,
|
|
396
|
+
contextPos,
|
|
397
|
+
contextEnd,
|
|
339
398
|
});
|
|
340
399
|
}
|
|
341
400
|
/**
|
|
@@ -523,7 +582,16 @@ function parseXmlUiMarkup(text) {
|
|
|
523
582
|
scanner.resetTokenState(badPrefixEnd);
|
|
524
583
|
startNode();
|
|
525
584
|
node.children.push(token);
|
|
526
|
-
|
|
585
|
+
const { contextPos, contextEnd } = getContextWithSurroundingLines(pos, badPrefixEnd, 0);
|
|
586
|
+
errors.push({
|
|
587
|
+
category: err.category,
|
|
588
|
+
code: err.code,
|
|
589
|
+
message: err.message,
|
|
590
|
+
pos,
|
|
591
|
+
end: badPrefixEnd,
|
|
592
|
+
contextPos,
|
|
593
|
+
contextEnd,
|
|
594
|
+
});
|
|
527
595
|
completeNode(syntax_kind_1.SyntaxKind.ErrorNode);
|
|
528
596
|
errFromScanner = undefined;
|
|
529
597
|
return collectToken(inContent);
|
|
@@ -637,6 +637,8 @@ declare interface Error_2 {
|
|
|
637
637
|
readonly message: string;
|
|
638
638
|
readonly pos: number;
|
|
639
639
|
readonly end: number;
|
|
640
|
+
readonly contextPos: number;
|
|
641
|
+
readonly contextEnd: number;
|
|
640
642
|
}
|
|
641
643
|
|
|
642
644
|
/**
|
|
@@ -674,15 +676,14 @@ declare class ErrorBoundary extends default_2.Component<Props, State> {
|
|
|
674
676
|
render(): string | number | boolean | Iterable<default_2.ReactNode> | JSX_2.Element;
|
|
675
677
|
}
|
|
676
678
|
|
|
677
|
-
declare interface
|
|
678
|
-
|
|
679
|
-
|
|
679
|
+
declare interface ErrorForDisplay extends Error_2 {
|
|
680
|
+
contextStartLine: number;
|
|
681
|
+
contextSource: string;
|
|
682
|
+
errPosLine: number;
|
|
683
|
+
errPosCol: number;
|
|
680
684
|
}
|
|
681
685
|
|
|
682
|
-
|
|
683
|
-
* It is a component and a compound component definition at the same time,
|
|
684
|
-
* so that it can be used to render the errors for a compound component as well*/
|
|
685
|
-
declare function errReportComponent(errors: ErrorWithLineColInfo[], fileName: number | string, compoundCompName: string | undefined): any;
|
|
686
|
+
declare function errReportComponent(errors: ErrorForDisplay[], fileName: number | string, compoundCompName: string | undefined): any;
|
|
686
687
|
|
|
687
688
|
declare type Expression = UnaryExpression | BinaryExpression | SequenceExpression | ConditionalExpression | FunctionInvocationExpression | MemberAccessExpression | CalculatedMemberAccessExpression | Identifier | TemplateLiteralExpression | Literal | ArrayLiteral | ObjectLiteral | SpreadExpression | AssignmentExpression | NoArgExpression | ArrowExpression | PrefixOpExpression | PostfixOpExpression | ReactiveVarDeclaration | VarDeclaration | Destructure | ObjectDestructure | ArrayDestructure | SwitchCase;
|
|
688
689
|
|
|
@@ -1006,6 +1007,12 @@ declare interface ParentRenderContext {
|
|
|
1006
1007
|
props?: Record<string, any>;
|
|
1007
1008
|
}
|
|
1008
1009
|
|
|
1010
|
+
declare type ParserResult = {
|
|
1011
|
+
component: null | ComponentDef | CompoundComponentDef;
|
|
1012
|
+
errors: ErrorForDisplay[];
|
|
1013
|
+
erroneousCompoundComponentName?: string;
|
|
1014
|
+
};
|
|
1015
|
+
|
|
1009
1016
|
/**
|
|
1010
1017
|
* This function extracts CSS variables from the specified SCSS input. It uses a hack to convert the CSS input to JSON
|
|
1011
1018
|
* and then calls a JSON parser to create the desired object.
|
|
@@ -1069,6 +1076,7 @@ declare type Props_2 = {
|
|
|
1069
1076
|
};
|
|
1070
1077
|
|
|
1071
1078
|
declare type Props_3 = {
|
|
1079
|
+
id?: string;
|
|
1072
1080
|
activeTab?: number;
|
|
1073
1081
|
orientation?: "horizontal" | "vertical";
|
|
1074
1082
|
tabRenderer?: (item: {
|
|
@@ -1351,6 +1359,7 @@ declare const standaloneExports: {
|
|
|
1351
1359
|
getColor: typeof xmluiExports.getColor;
|
|
1352
1360
|
TabItem: default_2.ForwardRefExoticComponent<Tab & default_2.RefAttributes<HTMLDivElement>>;
|
|
1353
1361
|
Tabs: default_2.ForwardRefExoticComponent<{
|
|
1362
|
+
id?: string;
|
|
1354
1363
|
activeTab?: number;
|
|
1355
1364
|
orientation?: "horizontal" | "vertical";
|
|
1356
1365
|
tabRenderer?: (item: {
|
|
@@ -1623,6 +1632,7 @@ declare const T_WHILE_STATEMENT: number;
|
|
|
1623
1632
|
|
|
1624
1633
|
declare type Tab = {
|
|
1625
1634
|
label: string;
|
|
1635
|
+
labelRenderer?: (contextVars: any) => ReactNode;
|
|
1626
1636
|
children?: ReactNode;
|
|
1627
1637
|
style?: CSSProperties;
|
|
1628
1638
|
};
|
|
@@ -2096,11 +2106,7 @@ declare class XmlUiHelper {
|
|
|
2096
2106
|
private addComponentList;
|
|
2097
2107
|
}
|
|
2098
2108
|
|
|
2099
|
-
declare function xmlUiMarkupToComponent(source: string, fileId?: string | number):
|
|
2100
|
-
component: null | ComponentDef | CompoundComponentDef;
|
|
2101
|
-
errors: ErrorWithLineColInfo[];
|
|
2102
|
-
erroneousCompoundComponentName?: string;
|
|
2103
|
-
};
|
|
2109
|
+
declare function xmlUiMarkupToComponent(source: string, fileId?: string | number): ParserResult;
|
|
2104
2110
|
|
|
2105
2111
|
declare type XmlUiNode = XmlUiComment | XmlUiAttribute | XmlUiElement;
|
|
2106
2112
|
|