@seniorsistemas/angular-components 14.10.0 → 14.10.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.
- package/bundles/seniorsistemas-angular-components.umd.js +39 -361
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/code-editor/core/facades/core-facade.d.ts +3 -1
- package/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +2 -1
- package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.d.ts +0 -1
- package/components/code-editor/infra/utils/index.d.ts +0 -1
- package/esm2015/components/code-editor/core/facades/core-facade.js +15 -10
- package/esm2015/components/code-editor/core/use-cases/core-linters.js +5 -8
- package/esm2015/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.js +7 -4
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.js +6 -3
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.js +2 -3
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.js +1 -3
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.js +1 -2
- package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.js +6 -3
- package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.js +4 -4
- package/esm2015/components/code-editor/infra/utils/index.js +1 -2
- package/esm2015/components/code-editor/presentation/code-editor-component.js +3 -2
- package/esm5/components/code-editor/core/facades/core-facade.js +15 -10
- package/esm5/components/code-editor/core/use-cases/core-linters.js +5 -8
- package/esm5/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.js +7 -4
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.js +6 -3
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.js +2 -3
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.js +1 -3
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.js +1 -2
- package/esm5/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.js +6 -3
- package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.js +4 -4
- package/esm5/components/code-editor/infra/utils/index.js +1 -2
- package/esm5/components/code-editor/presentation/code-editor-component.js +3 -2
- package/fesm2015/seniorsistemas-angular-components.js +40 -283
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +40 -362
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-angular-components.metadata.json +1 -1
- package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/index.d.ts +0 -1
- package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/interfaces/request-extra-info.d.ts +0 -4
- package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/on-paste-completion-items-updater.d.ts +0 -6
- package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/update-core-completion-items.d.ts +0 -2
- package/components/code-editor/infra/linters/tax-calculation/models/index.d.ts +0 -1
- package/components/code-editor/infra/linters/tax-calculation/models/interfaces/validation.d.ts +0 -4
- package/components/code-editor/infra/linters/tax-calculation/tax-calculation-linter.d.ts +0 -11
- package/components/code-editor/infra/linters/tax-calculation/validation-compositors/index.d.ts +0 -2
- package/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-composite.d.ts +0 -6
- package/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-workers-compositor/validations-workers-composite.d.ts +0 -6
- package/components/code-editor/infra/utils/regex-index-of.d.ts +0 -8
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/index.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/interfaces/request-extra-info.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/on-paste-completion-items-updater.js +0 -164
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/update-core-completion-items.js +0 -30
- package/esm2015/components/code-editor/infra/linters/tax-calculation/models/index.js +0 -1
- package/esm2015/components/code-editor/infra/linters/tax-calculation/models/interfaces/validation.js +0 -1
- package/esm2015/components/code-editor/infra/linters/tax-calculation/tax-calculation-linter.js +0 -19
- package/esm2015/components/code-editor/infra/linters/tax-calculation/validation-compositors/index.js +0 -3
- package/esm2015/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-composite.js +0 -16
- package/esm2015/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-workers-compositor/validations-workers-composite.js +0 -25
- package/esm2015/components/code-editor/infra/utils/regex-index-of.js +0 -12
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/index.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/interfaces/request-extra-info.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/on-paste-completion-items-updater.js +0 -191
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/update-core-completion-items.js +0 -34
- package/esm5/components/code-editor/infra/linters/tax-calculation/models/index.js +0 -1
- package/esm5/components/code-editor/infra/linters/tax-calculation/models/interfaces/validation.js +0 -1
- package/esm5/components/code-editor/infra/linters/tax-calculation/tax-calculation-linter.js +0 -21
- package/esm5/components/code-editor/infra/linters/tax-calculation/validation-compositors/index.js +0 -3
- package/esm5/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-composite.js +0 -49
- package/esm5/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-workers-compositor/validations-workers-composite.js +0 -42
- package/esm5/components/code-editor/infra/utils/regex-index-of.js +0 -12
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import { __values } from "tslib";
|
|
2
|
-
import { keymap, } from "@codemirror/view";
|
|
3
|
-
import { AutocompleteService } from "../autocomplete/autocomplete.service";
|
|
4
|
-
import { Keywords, RequestTypes, MetaType, CompletionTypes, } from "../../models";
|
|
5
|
-
import { getLanguageConfigs, getSafeResponse, updateCoreCompletionItems } from "../../utils";
|
|
6
|
-
/**
|
|
7
|
-
* Adds an watcher to the paste command that updates the core's completions items
|
|
8
|
-
* @returns An extension containing everything needed to create the the updater
|
|
9
|
-
*/
|
|
10
|
-
export function onPasteCompletionItemsUpdater() {
|
|
11
|
-
return [
|
|
12
|
-
keymap.of([
|
|
13
|
-
{
|
|
14
|
-
key: "Ctrl-v",
|
|
15
|
-
run: searchCompletionResultsCommand,
|
|
16
|
-
}
|
|
17
|
-
])
|
|
18
|
-
];
|
|
19
|
-
}
|
|
20
|
-
var cancelLastCompletionSearch = function () { };
|
|
21
|
-
var ɵ0 = cancelLastCompletionSearch;
|
|
22
|
-
/*
|
|
23
|
-
* Must use the setTimeout for we does not have access to the code pasted on the current state, so we need to wait codemirror
|
|
24
|
-
* remake the state, also it would be way more difficult to work with the clipboard
|
|
25
|
-
*/
|
|
26
|
-
function searchCompletionResultsCommand(view) {
|
|
27
|
-
cancelLastCompletionSearch();
|
|
28
|
-
var token = new AbortController();
|
|
29
|
-
setTimeout(function () {
|
|
30
|
-
if (!token.signal.aborted) {
|
|
31
|
-
searchCompletionResults(view.state.doc.toString(), token);
|
|
32
|
-
}
|
|
33
|
-
}, 200);
|
|
34
|
-
cancelLastCompletionSearch = function () { return token.abort(); };
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
/*
|
|
38
|
-
* Requests the necessary items to update the core's completionItems when the user uses the ctrl+v
|
|
39
|
-
*/
|
|
40
|
-
function searchCompletionResults(code, token) {
|
|
41
|
-
var codeWithoutStrings = getCodeWithoutStringedCode(code);
|
|
42
|
-
var variablesToVerify = getVariablesToVerify(codeWithoutStrings);
|
|
43
|
-
var requests = getRequestsBasedOnVariables(variablesToVerify, token.signal);
|
|
44
|
-
Promise
|
|
45
|
-
.all(requests)
|
|
46
|
-
.then(function (responses) {
|
|
47
|
-
if (!token.signal.aborted) {
|
|
48
|
-
var expressionsCompletionItems = getExpressionsCompletionsItems(responses);
|
|
49
|
-
var entitiesCompletionItems = getEntitiesCompletionsItems(responses);
|
|
50
|
-
var completionItems = expressionsCompletionItems.concat(entitiesCompletionItems);
|
|
51
|
-
updateCompletionItems(completionItems);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
/*
|
|
56
|
-
* Returns the code itself without its inside double quotes parts, e.g
|
|
57
|
-
* on string `return this "here not" code`, the return value will be `return this code`;
|
|
58
|
-
*/
|
|
59
|
-
function getCodeWithoutStringedCode(code) {
|
|
60
|
-
return (code !== null && code !== void 0 ? code : "").replace(/"([^"])*["]?/g, " ");
|
|
61
|
-
}
|
|
62
|
-
/*
|
|
63
|
-
* Returns the code's parts that need to be verified by requests, excluding the keywords,
|
|
64
|
-
* special character (except dot/`.` in middle of two regex's \w and at the end and hashtag in sentence's start)
|
|
65
|
-
* e.g on string `SE (something.another OU expression E something.another.)`, the variables array would be
|
|
66
|
-
* ["something.another", "expression", "something.another."]
|
|
67
|
-
*/
|
|
68
|
-
function getVariablesToVerify(code) {
|
|
69
|
-
var _a;
|
|
70
|
-
var keywordsRegex = Object
|
|
71
|
-
.values(Keywords)
|
|
72
|
-
.map(function (keyword) { return "(?!" + keyword + "\\b)"; })
|
|
73
|
-
.join("");
|
|
74
|
-
return (_a = (code !== null && code !== void 0 ? code : "").match(new RegExp("[#]?\\b(" + keywordsRegex + ")(\\w+\\.)*\\w+[\\.]?", "g"))) !== null && _a !== void 0 ? _a : [];
|
|
75
|
-
}
|
|
76
|
-
/*
|
|
77
|
-
* Only needs to request the expressions and the fields from an entity;
|
|
78
|
-
* Creates an request to every variable;
|
|
79
|
-
* Uses the AutocompleteService for the requests needed here are Autocomplete's usage, so we are just
|
|
80
|
-
* borrowing from it
|
|
81
|
-
*/
|
|
82
|
-
function getRequestsBasedOnVariables(variables, abortSignal) {
|
|
83
|
-
var e_1, _a;
|
|
84
|
-
var _b;
|
|
85
|
-
var languageConfigs = getLanguageConfigs();
|
|
86
|
-
var requests = [];
|
|
87
|
-
try {
|
|
88
|
-
for (var variables_1 = __values(variables), variables_1_1 = variables_1.next(); !variables_1_1.done; variables_1_1 = variables_1.next()) {
|
|
89
|
-
var variable = variables_1_1.value;
|
|
90
|
-
var splittedVariable = variable.split(".");
|
|
91
|
-
if (splittedVariable.length === 1) {
|
|
92
|
-
var extraInfo = {
|
|
93
|
-
path: "",
|
|
94
|
-
filter: splittedVariable[0]
|
|
95
|
-
};
|
|
96
|
-
requests.push({
|
|
97
|
-
requestType: RequestTypes.ListExpressionMetadata,
|
|
98
|
-
request: AutocompleteService.listExpressionMetadata({
|
|
99
|
-
context: languageConfigs.contexts,
|
|
100
|
-
subcontext: (_b = languageConfigs.subContexts) !== null && _b !== void 0 ? _b : [],
|
|
101
|
-
name: splittedVariable[0]
|
|
102
|
-
}, abortSignal),
|
|
103
|
-
extraInfo: extraInfo
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
else if (splittedVariable.length > 2) {
|
|
107
|
-
var extraInfo = {
|
|
108
|
-
path: splittedVariable
|
|
109
|
-
.slice(0, splittedVariable.length - 1)
|
|
110
|
-
.join("."),
|
|
111
|
-
filter: ""
|
|
112
|
-
};
|
|
113
|
-
requests.push({
|
|
114
|
-
requestType: RequestTypes.GetFacadeMetadataByPath,
|
|
115
|
-
request: AutocompleteService.getFacadeMetadataByPath({
|
|
116
|
-
context: splittedVariable[0],
|
|
117
|
-
entityName: splittedVariable[1],
|
|
118
|
-
fields: splittedVariable.slice(2, splittedVariable.length - 1)
|
|
119
|
-
}, abortSignal),
|
|
120
|
-
extraInfo: extraInfo
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
126
|
-
finally {
|
|
127
|
-
try {
|
|
128
|
-
if (variables_1_1 && !variables_1_1.done && (_a = variables_1.return)) _a.call(variables_1);
|
|
129
|
-
}
|
|
130
|
-
finally { if (e_1) throw e_1.error; }
|
|
131
|
-
}
|
|
132
|
-
return requests.map(function (request) { return getSafeResponse(request); });
|
|
133
|
-
}
|
|
134
|
-
function getExpressionsCompletionsItems(responses) {
|
|
135
|
-
var expressionsResponses = responses.filter(function (response) {
|
|
136
|
-
return (response === null || response === void 0 ? void 0 : response.requestType) === RequestTypes.ListExpressionMetadata;
|
|
137
|
-
});
|
|
138
|
-
return expressionsResponses
|
|
139
|
-
.map(function (expressionsResponse) {
|
|
140
|
-
var _a, _b, _c, _d, _e, _f;
|
|
141
|
-
return {
|
|
142
|
-
path: (_b = (_a = expressionsResponse.extraInfo) === null || _a === void 0 ? void 0 : _a.path) !== null && _b !== void 0 ? _b : "",
|
|
143
|
-
filter: (_d = (_c = expressionsResponse.extraInfo) === null || _c === void 0 ? void 0 : _c.filter) !== null && _d !== void 0 ? _d : "",
|
|
144
|
-
completions: ((_f = (_e = expressionsResponse.response) === null || _e === void 0 ? void 0 : _e.expressionMetadata) !== null && _f !== void 0 ? _f : [])
|
|
145
|
-
.map(function (expressionMetadata) { return ({
|
|
146
|
-
label: expressionMetadata.name,
|
|
147
|
-
type: expressionMetadata.type === MetaType.PUBLIC_EXPRESSION
|
|
148
|
-
? CompletionTypes.Expression
|
|
149
|
-
: CompletionTypes.UserExpression
|
|
150
|
-
}); })
|
|
151
|
-
};
|
|
152
|
-
})
|
|
153
|
-
.flat();
|
|
154
|
-
}
|
|
155
|
-
function getEntitiesCompletionsItems(responses) {
|
|
156
|
-
var facadesResponsesFromGet = responses.filter(function (response) {
|
|
157
|
-
return (response === null || response === void 0 ? void 0 : response.requestType) === RequestTypes.GetFacadeMetadataByPath;
|
|
158
|
-
});
|
|
159
|
-
return facadesResponsesFromGet
|
|
160
|
-
.map(function (facadesResponseFromGet) {
|
|
161
|
-
var _a, _b, _c;
|
|
162
|
-
return {
|
|
163
|
-
path: facadesResponseFromGet.extraInfo.path,
|
|
164
|
-
filter: facadesResponseFromGet.extraInfo.filter,
|
|
165
|
-
completions: ((_c = (_b = (_a = facadesResponseFromGet.response) === null || _a === void 0 ? void 0 : _a.facadeMetadata) === null || _b === void 0 ? void 0 : _b.fields) !== null && _c !== void 0 ? _c : [])
|
|
166
|
-
.map(function (facade) { return ({
|
|
167
|
-
label: facade.name,
|
|
168
|
-
type: facade.type === MetaType.ENTITY ? CompletionTypes.Entity : CompletionTypes.FinalValue
|
|
169
|
-
}); })
|
|
170
|
-
};
|
|
171
|
-
})
|
|
172
|
-
.flat();
|
|
173
|
-
}
|
|
174
|
-
function updateCompletionItems(completionItems) {
|
|
175
|
-
var e_2, _a;
|
|
176
|
-
try {
|
|
177
|
-
for (var completionItems_1 = __values(completionItems), completionItems_1_1 = completionItems_1.next(); !completionItems_1_1.done; completionItems_1_1 = completionItems_1.next()) {
|
|
178
|
-
var completionItem = completionItems_1_1.value;
|
|
179
|
-
updateCoreCompletionItems(completionItem);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
183
|
-
finally {
|
|
184
|
-
try {
|
|
185
|
-
if (completionItems_1_1 && !completionItems_1_1.done && (_a = completionItems_1.return)) _a.call(completionItems_1);
|
|
186
|
-
}
|
|
187
|
-
finally { if (e_2) throw e_2.error; }
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
export { ɵ0 };
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib24tcGFzdGUtY29tcGxldGlvbi1pdGVtcy11cGRhdGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY29kZS1lZGl0b3IvaW5mcmEvY29yZXMvY29kZW1pcnJvci02L2xhbmd1YWdlcy90YXgtY2FsY3VsYXRpb24vZXh0ZW5zaW9ucy9vbi1wYXN0ZS1jb21wbGV0aW9uLWl0ZW1zLXVwZGF0ZXIvb24tcGFzdGUtY29tcGxldGlvbi1pdGVtcy11cGRhdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsTUFBTSxHQUNULE1BQU0sa0JBQWtCLENBQUM7QUFHMUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUNILFFBQVEsRUFDUixZQUFZLEVBTVosUUFBUSxFQUNSLGVBQWUsR0FHbEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUNILGtCQUFrQixFQUNsQixlQUFlLEVBQ2YseUJBQXlCLEVBQzVCLE1BQU0sYUFBYSxDQUFDO0FBRXJCOzs7R0FHRztBQUNILE1BQU0sVUFBVSw2QkFBNkI7SUFDekMsT0FBTztRQUNILE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDTjtnQkFDSSxHQUFHLEVBQUUsUUFBUTtnQkFDYixHQUFHLEVBQUUsOEJBQThCO2FBQ3RDO1NBQ0osQ0FBQztLQUNMLENBQUM7QUFDTixDQUFDO0FBRUQsSUFBSSwwQkFBMEIsR0FBZSxjQUFPLENBQUMsQ0FBQzs7QUFFdEQ7OztHQUdHO0FBQ0gsU0FBUyw4QkFBOEIsQ0FBQyxJQUFnQjtJQUNwRCwwQkFBMEIsRUFBRSxDQUFDO0lBQzdCLElBQU0sS0FBSyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7SUFFcEMsVUFBVSxDQUFDO1FBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3ZC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QixDQUFDLFFBQVEsMENBQUUsY0FBYywwQ0FBRSxNQUFNLG1DQUFJLEVBQUUsQ0FBQztpQkFDdkUsR0FBRyxDQUFDLFVBQUEsTUFBTSxJQUFJLE9BQUEsQ0FBQztnQkFDWixLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2xCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxVQUFVO2FBQzlGLENBQUMsRUFIYSxDQUdiLENBQUM7U0FDVixDQUFDO0lBQ04sQ0FBQyxDQUFDO1NBQ0QsSUFBSSxFQUFFLENBQUM7QUFFaEIsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsZUFBaUM7OztRQUM1RCxLQUE2QixJQUFBLG9CQUFBLFNBQUEsZUFBZSxDQUFBLGdEQUFBLDZFQUFFO1lBQXpDLElBQU0sY0FBYyw0QkFBQTtZQUNyQix5QkFBeUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUM3Qzs7Ozs7Ozs7O0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRWRpdG9yVmlldyxcbiAgICBrZXltYXAsXG59IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5pbXBvcnQgeyBFeHRlbnNpb24gfSBmcm9tIFwiQGNvZGVtaXJyb3Ivc3RhdGVcIjtcblxuaW1wb3J0IHsgQXV0b2NvbXBsZXRlU2VydmljZSB9IGZyb20gXCIuLi9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLnNlcnZpY2VcIjtcbmltcG9ydCB7XG4gICAgS2V5d29yZHMsXG4gICAgUmVxdWVzdFR5cGVzLFxuICAgIFJlc3BvbnNlLFxuICAgIFNhZmVSZXF1ZXN0LFxuICAgIFNhZmVSZXNwb25zZSxcbiAgICBUYXhDYWxjdWxhdGlvbkNvbmZpZ3MsXG4gICAgTGlzdEV4cHJlc3Npb25NZXRhZGF0YVJlc3BvbnNlLFxuICAgIE1ldGFUeXBlLFxuICAgIENvbXBsZXRpb25UeXBlcyxcbiAgICBDb21wbGV0aW9uSXRlbSxcbiAgICBHZXRGYWNhZGVNZXRhZGF0YUJ5UGF0aFJlc3BvbnNlLFxufSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBSZXF1ZXN0RXh0cmFJbmZvIH0gZnJvbSBcIi4vbW9kZWxzXCI7XG5pbXBvcnQge1xuICAgIGdldExhbmd1YWdlQ29uZmlncyxcbiAgICBnZXRTYWZlUmVzcG9uc2UsXG4gICAgdXBkYXRlQ29yZUNvbXBsZXRpb25JdGVtc1xufSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcblxuLyoqXG4gKiBBZGRzIGFuIHdhdGNoZXIgdG8gdGhlIHBhc3RlIGNvbW1hbmQgdGhhdCB1cGRhdGVzIHRoZSBjb3JlJ3MgY29tcGxldGlvbnMgaXRlbXNcbiAqIEByZXR1cm5zIEFuIGV4dGVuc2lvbiBjb250YWluaW5nIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIGNyZWF0ZSB0aGUgdGhlIHVwZGF0ZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9uUGFzdGVDb21wbGV0aW9uSXRlbXNVcGRhdGVyICgpOiBFeHRlbnNpb24ge1xuICAgIHJldHVybiBbXG4gICAgICAgIGtleW1hcC5vZihbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBcIkN0cmwtdlwiLFxuICAgICAgICAgICAgICAgIHJ1bjogc2VhcmNoQ29tcGxldGlvblJlc3VsdHNDb21tYW5kLFxuICAgICAgICAgICAgfVxuICAgICAgICBdKVxuICAgIF07XG59XG5cbmxldCBjYW5jZWxMYXN0Q29tcGxldGlvblNlYXJjaDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4vKlxuICogTXVzdCB1c2UgdGhlIHNldFRpbWVvdXQgZm9yIHdlIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHRoZSBjb2RlIHBhc3RlZCBvbiB0aGUgY3VycmVudCBzdGF0ZSwgc28gd2UgbmVlZCB0byB3YWl0IGNvZGVtaXJyb3JcbiAqIHJlbWFrZSB0aGUgc3RhdGUsIGFsc28gaXQgd291bGQgYmUgd2F5IG1vcmUgZGlmZmljdWx0IHRvIHdvcmsgd2l0aCB0aGUgY2xpcGJvYXJkXG4gKi9cbmZ1bmN0aW9uIHNlYXJjaENvbXBsZXRpb25SZXN1bHRzQ29tbWFuZCh2aWV3OiBFZGl0b3JWaWV3KTogYm9vbGVhbiB7XG4gICAgY2FuY2VsTGFzdENvbXBsZXRpb25TZWFyY2goKTtcbiAgICBjb25zdCB0b2tlbiA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoIXRva2VuLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICAgICAgICBzZWFyY2hDb21wbGV0aW9uUmVzdWx0cyh2aWV3LnN0YXRlLmRvYy50b1N0cmluZygpLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9LCAyMDApO1xuXG4gICAgY2FuY2VsTGFzdENvbXBsZXRpb25TZWFyY2ggPSAoKSA9PiB0b2tlbi5hYm9ydCgpO1xuICAgIHJldHVybiBmYWxzZTtcbn1cblxuLypcbiAqIFJlcXVlc3RzIHRoZSBuZWNlc3NhcnkgaXRlbXMgdG8gdXBkYXRlIHRoZSBjb3JlJ3MgY29tcGxldGlvbkl0ZW1zIHdoZW4gdGhlIHVzZXIgdXNlcyB0aGUgY3RybCt2XG4gKi9cbmZ1bmN0aW9uIHNlYXJjaENvbXBsZXRpb25SZXN1bHRzKGNvZGU6IHN0cmluZywgdG9rZW46IEFib3J0Q29udHJvbGxlcik6IHZvaWQge1xuICAgIGNvbnN0IGNvZGVXaXRob3V0U3RyaW5ncyA9IGdldENvZGVXaXRob3V0U3RyaW5nZWRDb2RlKGNvZGUpO1xuICAgIGNvbnN0IHZhcmlhYmxlc1RvVmVyaWZ5OiBzdHJpbmdbXSA9IGdldFZhcmlhYmxlc1RvVmVyaWZ5KGNvZGVXaXRob3V0U3RyaW5ncyk7XG4gICAgY29uc3QgcmVxdWVzdHMgPSBnZXRSZXF1ZXN0c0Jhc2VkT25WYXJpYWJsZXModmFyaWFibGVzVG9WZXJpZnksIHRva2VuLnNpZ25hbCk7XG5cbiAgICBQcm9taXNlXG4gICAgICAgIC5hbGwocmVxdWVzdHMpXG4gICAgICAgIC50aGVuKHJlc3BvbnNlcyA9PiB7XG4gICAgICAgICAgICBpZiAoIXRva2VuLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbnNDb21wbGV0aW9uSXRlbXM6IENvbXBsZXRpb25JdGVtW10gPSBnZXRFeHByZXNzaW9uc0NvbXBsZXRpb25zSXRlbXMocmVzcG9uc2VzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbnRpdGllc0NvbXBsZXRpb25JdGVtczogQ29tcGxldGlvbkl0ZW1bXSA9IGdldEVudGl0aWVzQ29tcGxldGlvbnNJdGVtcyhyZXNwb25zZXMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRpb25JdGVtczogQ29tcGxldGlvbkl0ZW1bXSA9IGV4cHJlc3Npb25zQ29tcGxldGlvbkl0ZW1zLmNvbmNhdChlbnRpdGllc0NvbXBsZXRpb25JdGVtcyk7XG4gICAgICAgICAgICAgICAgdXBkYXRlQ29tcGxldGlvbkl0ZW1zKGNvbXBsZXRpb25JdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xufVxuXG4vKlxuICogUmV0dXJucyB0aGUgY29kZSBpdHNlbGYgd2l0aG91dCBpdHMgaW5zaWRlIGRvdWJsZSBxdW90ZXMgcGFydHMsIGUuZ1xuICogb24gc3RyaW5nIGByZXR1cm4gdGhpcyBcImhlcmUgbm90XCIgY29kZWAsIHRoZSByZXR1cm4gdmFsdWUgd2lsbCBiZSBgcmV0dXJuIHRoaXMgIGNvZGVgO1xuICovXG5mdW5jdGlvbiBnZXRDb2RlV2l0aG91dFN0cmluZ2VkQ29kZShjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiAoY29kZSA/PyBcIlwiKS5yZXBsYWNlKC9cIihbXlwiXSkqW1wiXT8vZywgXCIgXCIpO1xufVxuXG4vKlxuICogUmV0dXJucyB0aGUgY29kZSdzIHBhcnRzIHRoYXQgbmVlZCB0byBiZSB2ZXJpZmllZCBieSByZXF1ZXN0cywgZXhjbHVkaW5nIHRoZSBrZXl3b3JkcyxcbiAqIHNwZWNpYWwgY2hhcmFjdGVyIChleGNlcHQgZG90L2AuYCBpbiBtaWRkbGUgb2YgdHdvIHJlZ2V4J3MgXFx3IGFuZCBhdCB0aGUgZW5kIGFuZCBoYXNodGFnIGluIHNlbnRlbmNlJ3Mgc3RhcnQpXG4gKiBlLmcgb24gc3RyaW5nIGBTRSAoc29tZXRoaW5nLmFub3RoZXIgT1UgZXhwcmVzc2lvbiBFIHNvbWV0aGluZy5hbm90aGVyLilgLCB0aGUgdmFyaWFibGVzIGFycmF5IHdvdWxkIGJlXG4gKiBbXCJzb21ldGhpbmcuYW5vdGhlclwiLCBcImV4cHJlc3Npb25cIiwgXCJzb21ldGhpbmcuYW5vdGhlci5cIl1cbiAqL1xuZnVuY3Rpb24gZ2V0VmFyaWFibGVzVG9WZXJpZnkoY29kZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGtleXdvcmRzUmVnZXggPSBPYmplY3RcbiAgICAgICAgLnZhbHVlcyhLZXl3b3JkcylcbiAgICAgICAgLm1hcChrZXl3b3JkID0+IGAoPyEke2tleXdvcmR9XFxcXGIpYClcbiAgICAgICAgLmpvaW4oXCJcIik7XG4gICAgcmV0dXJuIChjb2RlID8/IFwiXCIpLm1hdGNoKG5ldyBSZWdFeHAoYFsjXT9cXFxcYigke2tleXdvcmRzUmVnZXh9KShcXFxcdytcXFxcLikqXFxcXHcrW1xcXFwuXT9gLCBcImdcIikpID8/IFtdO1xufVxuXG4vKlxuICogT25seSBuZWVkcyB0byByZXF1ZXN0IHRoZSBleHByZXNzaW9ucyBhbmQgdGhlIGZpZWxkcyBmcm9tIGFuIGVudGl0eTtcbiAqIENyZWF0ZXMgYW4gcmVxdWVzdCB0byBldmVyeSB2YXJpYWJsZTtcbiAqIFVzZXMgdGhlIEF1dG9jb21wbGV0ZVNlcnZpY2UgZm9yIHRoZSByZXF1ZXN0cyBuZWVkZWQgaGVyZSBhcmUgQXV0b2NvbXBsZXRlJ3MgdXNhZ2UsIHNvIHdlIGFyZSBqdXN0XG4gKiBib3Jyb3dpbmcgZnJvbSBpdFxuICovXG5mdW5jdGlvbiBnZXRSZXF1ZXN0c0Jhc2VkT25WYXJpYWJsZXModmFyaWFibGVzOiBzdHJpbmdbXSwgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKTogU2FmZVJlc3BvbnNlW10ge1xuICAgIGNvbnN0IGxhbmd1YWdlQ29uZmlnczogVGF4Q2FsY3VsYXRpb25Db25maWdzID0gZ2V0TGFuZ3VhZ2VDb25maWdzKCk7XG4gICAgY29uc3QgcmVxdWVzdHM6IFNhZmVSZXF1ZXN0W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgdmFyaWFibGUgb2YgdmFyaWFibGVzKSB7XG4gICAgICAgIGNvbnN0IHNwbGl0dGVkVmFyaWFibGUgPSB2YXJpYWJsZS5zcGxpdChcIi5cIik7XG5cbiAgICAgICAgaWYgKHNwbGl0dGVkVmFyaWFibGUubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBjb25zdCBleHRyYUluZm86IFJlcXVlc3RFeHRyYUluZm8gPSB7XG4gICAgICAgICAgICAgICAgcGF0aDogXCJcIixcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IHNwbGl0dGVkVmFyaWFibGVbMF1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJlcXVlc3RzLnB1c2goe1xuICAgICAgICAgICAgICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZXMuTGlzdEV4cHJlc3Npb25NZXRhZGF0YSxcbiAgICAgICAgICAgICAgICByZXF1ZXN0OiBBdXRvY29tcGxldGVTZXJ2aWNlLmxpc3RFeHByZXNzaW9uTWV0YWRhdGEoXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IGxhbmd1YWdlQ29uZmlncy5jb250ZXh0cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YmNvbnRleHQ6IGxhbmd1YWdlQ29uZmlncy5zdWJDb250ZXh0cyA/PyBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHNwbGl0dGVkVmFyaWFibGVbMF1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYWJvcnRTaWduYWxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGV4dHJhSW5mb1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSBlbHNlIGlmIChzcGxpdHRlZFZhcmlhYmxlLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4dHJhSW5mbzogUmVxdWVzdEV4dHJhSW5mbyA9IHtcbiAgICAgICAgICAgICAgICBwYXRoOiBzcGxpdHRlZFZhcmlhYmxlXG4gICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCBzcGxpdHRlZFZhcmlhYmxlLmxlbmd0aCAtIDEpXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKFwiLlwiKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IFwiXCJcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJlcXVlc3RzLnB1c2goe1xuICAgICAgICAgICAgICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZXMuR2V0RmFjYWRlTWV0YWRhdGFCeVBhdGgsXG4gICAgICAgICAgICAgICAgcmVxdWVzdDogQXV0b2NvbXBsZXRlU2VydmljZS5nZXRGYWNhZGVNZXRhZGF0YUJ5UGF0aChcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogc3BsaXR0ZWRWYXJpYWJsZVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU5hbWU6IHNwbGl0dGVkVmFyaWFibGVbMV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHM6IHNwbGl0dGVkVmFyaWFibGUuc2xpY2UoMiwgc3BsaXR0ZWRWYXJpYWJsZS5sZW5ndGggLSAxKVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBhYm9ydFNpZ25hbFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgZXh0cmFJbmZvXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXF1ZXN0cy5tYXAocmVxdWVzdCA9PiBnZXRTYWZlUmVzcG9uc2UocmVxdWVzdCkpO1xufVxuXG5mdW5jdGlvbiBnZXRFeHByZXNzaW9uc0NvbXBsZXRpb25zSXRlbXMocmVzcG9uc2VzOiBSZXNwb25zZTxhbnk+W10pOiBDb21wbGV0aW9uSXRlbVtdIHtcbiAgICBjb25zdCBleHByZXNzaW9uc1Jlc3BvbnNlczogUmVzcG9uc2U8TGlzdEV4cHJlc3Npb25NZXRhZGF0YVJlc3BvbnNlLCBSZXF1ZXN0RXh0cmFJbmZvPltdID0gcmVzcG9uc2VzLmZpbHRlcihyZXNwb25zZSA9PlxuICAgICAgICByZXNwb25zZT8ucmVxdWVzdFR5cGUgPT09IFJlcXVlc3RUeXBlcy5MaXN0RXhwcmVzc2lvbk1ldGFkYXRhXG4gICAgKTtcblxuICAgIHJldHVybiBleHByZXNzaW9uc1Jlc3BvbnNlc1xuICAgICAgICAubWFwKGV4cHJlc3Npb25zUmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwYXRoOiBleHByZXNzaW9uc1Jlc3BvbnNlLmV4dHJhSW5mbz8ucGF0aCA/PyBcIlwiLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogZXhwcmVzc2lvbnNSZXNwb25zZS5leHRyYUluZm8/LmZpbHRlciA/PyBcIlwiLFxuICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zOiAoZXhwcmVzc2lvbnNSZXNwb25zZS5yZXNwb25zZT8uZXhwcmVzc2lvbk1ldGFkYXRhID8/IFtdKVxuICAgICAgICAgICAgICAgICAgICAubWFwKGV4cHJlc3Npb25NZXRhZGF0YSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGV4cHJlc3Npb25NZXRhZGF0YS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZXhwcmVzc2lvbk1ldGFkYXRhLnR5cGUgPT09IE1ldGFUeXBlLlBVQkxJQ19FWFBSRVNTSU9OXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBDb21wbGV0aW9uVHlwZXMuRXhwcmVzc2lvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQ29tcGxldGlvblR5cGVzLlVzZXJFeHByZXNzaW9uXG4gICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZsYXQoKTtcbn1cblxuZnVuY3Rpb24gZ2V0RW50aXRpZXNDb21wbGV0aW9uc0l0ZW1zKHJlc3BvbnNlczogUmVzcG9uc2U8YW55PltdKTogQ29tcGxldGlvbkl0ZW1bXSB7XG4gICAgY29uc3QgZmFjYWRlc1Jlc3BvbnNlc0Zyb21HZXQ6IFJlc3BvbnNlPEdldEZhY2FkZU1ldGFkYXRhQnlQYXRoUmVzcG9uc2UsIFJlcXVlc3RFeHRyYUluZm8+W10gPSByZXNwb25zZXMuZmlsdGVyKHJlc3BvbnNlID0+XG4gICAgICAgIHJlc3BvbnNlPy5yZXF1ZXN0VHlwZSA9PT0gUmVxdWVzdFR5cGVzLkdldEZhY2FkZU1ldGFkYXRhQnlQYXRoXG4gICAgKTtcblxuICAgIHJldHVybiBmYWNhZGVzUmVzcG9uc2VzRnJvbUdldFxuICAgICAgICAubWFwKGZhY2FkZXNSZXNwb25zZUZyb21HZXQgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwYXRoOiBmYWNhZGVzUmVzcG9uc2VGcm9tR2V0LmV4dHJhSW5mby5wYXRoLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogZmFjYWRlc1Jlc3BvbnNlRnJvbUdldC5leHRyYUluZm8uZmlsdGVyLFxuICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zOiAoZmFjYWRlc1Jlc3BvbnNlRnJvbUdldC5yZXNwb25zZT8uZmFjYWRlTWV0YWRhdGE/LmZpZWxkcyA/PyBbXSlcbiAgICAgICAgICAgICAgICAgICAgLm1hcChmYWNhZGUgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBmYWNhZGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGZhY2FkZS50eXBlID09PSBNZXRhVHlwZS5FTlRJVFkgPyBDb21wbGV0aW9uVHlwZXMuRW50aXR5IDogQ29tcGxldGlvblR5cGVzLkZpbmFsVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgICAuZmxhdCgpO1xuXG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUNvbXBsZXRpb25JdGVtcyhjb21wbGV0aW9uSXRlbXM6IENvbXBsZXRpb25JdGVtW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGNvbXBsZXRpb25JdGVtIG9mIGNvbXBsZXRpb25JdGVtcykge1xuICAgICAgICB1cGRhdGVDb3JlQ29tcGxldGlvbkl0ZW1zKGNvbXBsZXRpb25JdGVtKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { CodeMirror6Core } from "../../../codemirror-6-core";
|
|
2
|
-
import { CompletionTypes } from "../models";
|
|
3
|
-
var completionItemsMap = new Map();
|
|
4
|
-
var usefulToCompletionItemsCompletionTypes = [
|
|
5
|
-
CompletionTypes.Expression,
|
|
6
|
-
CompletionTypes.UserExpression,
|
|
7
|
-
CompletionTypes.FinalValue
|
|
8
|
-
];
|
|
9
|
-
/*
|
|
10
|
-
* Updates the completionItems used by the core.
|
|
11
|
-
* Utilizes the path and filter to create a key and store the results from the search to the given "path.filter" on a map.
|
|
12
|
-
* Must save the results to each different filter for the search does not bring all the results, so the user must do a more
|
|
13
|
-
* specific filter to achieve its objective
|
|
14
|
-
*/
|
|
15
|
-
export function updateCoreCompletionItems(completionItem) {
|
|
16
|
-
var path = completionItem.path, filter = completionItem.filter, completions = completionItem.completions;
|
|
17
|
-
var mapPath = path + "." + filter;
|
|
18
|
-
var filteredCompletions = (completions || []).filter(function (completion) {
|
|
19
|
-
return usefulToCompletionItemsCompletionTypes.includes(completion === null || completion === void 0 ? void 0 : completion.type);
|
|
20
|
-
});
|
|
21
|
-
var formattedSearchResults = filteredCompletions.map(function (completion) {
|
|
22
|
-
return path === "" ? completion === null || completion === void 0 ? void 0 : completion.label : path + "." + (completion === null || completion === void 0 ? void 0 : completion.label);
|
|
23
|
-
});
|
|
24
|
-
completionItemsMap.delete(mapPath);
|
|
25
|
-
if (formattedSearchResults.length) {
|
|
26
|
-
completionItemsMap.set(mapPath, formattedSearchResults);
|
|
27
|
-
}
|
|
28
|
-
var allArraysFromMap = Array.from(completionItemsMap.values());
|
|
29
|
-
var unrepeatedCompletionItems = new Set(allArraysFromMap.flat());
|
|
30
|
-
CodeMirror6Core
|
|
31
|
-
.$onCompletionItemsUpdate
|
|
32
|
-
.next(Array.from(unrepeatedCompletionItems));
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWNvcmUtY29tcGxldGlvbi1pdGVtcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL2NvcmVzL2NvZGVtaXJyb3ItNi9sYW5ndWFnZXMvdGF4LWNhbGN1bGF0aW9uL3V0aWxzL3VwZGF0ZS1jb3JlLWNvbXBsZXRpb24taXRlbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFFSCxlQUFlLEVBQ2xCLE1BQU0sV0FBVyxDQUFDO0FBRW5CLElBQU0sa0JBQWtCLEdBQTBCLElBQUksR0FBRyxFQUFFLENBQUM7QUFDNUQsSUFBTSxzQ0FBc0MsR0FBc0I7SUFDOUQsZUFBZSxDQUFDLFVBQVU7SUFDMUIsZUFBZSxDQUFDLGNBQWM7SUFDOUIsZUFBZSxDQUFDLFVBQVU7Q0FDN0IsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLGNBQThCO0lBQzVELElBQUEsMEJBQUksRUFBRSw4QkFBTSxFQUFFLHdDQUFXLENBQW9CO0lBQ3JELElBQU0sT0FBTyxHQUFNLElBQUksU0FBSSxNQUFRLENBQUM7SUFDcEMsSUFBTSxtQkFBbUIsR0FBaUIsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUEsVUFBVTtRQUMzRSxPQUFBLHNDQUFzQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsSUFBdUIsQ0FBQztJQUFwRixDQUFvRixDQUN2RixDQUFDO0lBQ0YsSUFBTSxzQkFBc0IsR0FBYSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBQSxVQUFVO1FBQ3ZFLE9BQUEsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLEtBQUssQ0FBQyxDQUFDLENBQUksSUFBSSxVQUFJLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxLQUFLLENBQUU7SUFBaEUsQ0FBZ0UsQ0FDbkUsQ0FBQztJQUVGLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuQyxJQUFJLHNCQUFzQixDQUFDLE1BQU0sRUFBRTtRQUMvQixrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLHNCQUFzQixDQUFDLENBQUM7S0FDM0Q7SUFFRCxJQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNqRSxJQUFNLHlCQUF5QixHQUFnQixJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRWhGLGVBQWU7U0FDVix3QkFBd0I7U0FDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wbGV0aW9uIH0gZnJvbSBcIkBjb2RlbWlycm9yL2F1dG9jb21wbGV0ZVwiO1xuXG5pbXBvcnQgeyBDb2RlTWlycm9yNkNvcmUgfSBmcm9tIFwiLi4vLi4vLi4vY29kZW1pcnJvci02LWNvcmVcIjtcbmltcG9ydCB7XG4gICAgQ29tcGxldGlvbkl0ZW0sXG4gICAgQ29tcGxldGlvblR5cGVzXG59IGZyb20gXCIuLi9tb2RlbHNcIjtcblxuY29uc3QgY29tcGxldGlvbkl0ZW1zTWFwOiBNYXA8c3RyaW5nLCBzdHJpbmdbXT4gPSBuZXcgTWFwKCk7XG5jb25zdCB1c2VmdWxUb0NvbXBsZXRpb25JdGVtc0NvbXBsZXRpb25UeXBlczogQ29tcGxldGlvblR5cGVzW10gPSBbXG4gICAgQ29tcGxldGlvblR5cGVzLkV4cHJlc3Npb24sXG4gICAgQ29tcGxldGlvblR5cGVzLlVzZXJFeHByZXNzaW9uLFxuICAgIENvbXBsZXRpb25UeXBlcy5GaW5hbFZhbHVlXG5dO1xuXG4vKlxuICogVXBkYXRlcyB0aGUgY29tcGxldGlvbkl0ZW1zIHVzZWQgYnkgdGhlIGNvcmUuXG4gKiBVdGlsaXplcyB0aGUgcGF0aCBhbmQgZmlsdGVyIHRvIGNyZWF0ZSBhIGtleSBhbmQgc3RvcmUgdGhlIHJlc3VsdHMgZnJvbSB0aGUgc2VhcmNoIHRvIHRoZSBnaXZlbiBcInBhdGguZmlsdGVyXCIgb24gYSBtYXAuXG4gKiBNdXN0IHNhdmUgdGhlIHJlc3VsdHMgdG8gZWFjaCBkaWZmZXJlbnQgZmlsdGVyIGZvciB0aGUgc2VhcmNoIGRvZXMgbm90IGJyaW5nIGFsbCB0aGUgcmVzdWx0cywgc28gdGhlIHVzZXIgbXVzdCBkbyBhIG1vcmVcbiAqIHNwZWNpZmljIGZpbHRlciB0byBhY2hpZXZlIGl0cyBvYmplY3RpdmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUNvcmVDb21wbGV0aW9uSXRlbXMoY29tcGxldGlvbkl0ZW06IENvbXBsZXRpb25JdGVtKTogdm9pZCB7XG4gICAgY29uc3QgeyBwYXRoLCBmaWx0ZXIsIGNvbXBsZXRpb25zIH0gPSBjb21wbGV0aW9uSXRlbTtcbiAgICBjb25zdCBtYXBQYXRoID0gYCR7cGF0aH0uJHtmaWx0ZXJ9YDtcbiAgICBjb25zdCBmaWx0ZXJlZENvbXBsZXRpb25zOiBDb21wbGV0aW9uW10gPSAoY29tcGxldGlvbnMgfHwgW10pLmZpbHRlcihjb21wbGV0aW9uID0+XG4gICAgICAgIHVzZWZ1bFRvQ29tcGxldGlvbkl0ZW1zQ29tcGxldGlvblR5cGVzLmluY2x1ZGVzKGNvbXBsZXRpb24/LnR5cGUgYXMgQ29tcGxldGlvblR5cGVzKVxuICAgICk7XG4gICAgY29uc3QgZm9ybWF0dGVkU2VhcmNoUmVzdWx0czogc3RyaW5nW10gPSBmaWx0ZXJlZENvbXBsZXRpb25zLm1hcChjb21wbGV0aW9uID0+XG4gICAgICAgIHBhdGggPT09IFwiXCIgPyBjb21wbGV0aW9uPy5sYWJlbCA6IGAke3BhdGh9LiR7Y29tcGxldGlvbj8ubGFiZWx9YFxuICAgICk7XG5cbiAgICBjb21wbGV0aW9uSXRlbXNNYXAuZGVsZXRlKG1hcFBhdGgpO1xuXG4gICAgaWYgKGZvcm1hdHRlZFNlYXJjaFJlc3VsdHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbXBsZXRpb25JdGVtc01hcC5zZXQobWFwUGF0aCwgZm9ybWF0dGVkU2VhcmNoUmVzdWx0cyk7XG4gICAgfVxuXG4gICAgY29uc3QgYWxsQXJyYXlzRnJvbU1hcCA9IEFycmF5LmZyb20oY29tcGxldGlvbkl0ZW1zTWFwLnZhbHVlcygpKTtcbiAgICBjb25zdCB1bnJlcGVhdGVkQ29tcGxldGlvbkl0ZW1zOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoYWxsQXJyYXlzRnJvbU1hcC5mbGF0KCkpO1xuXG4gICAgQ29kZU1pcnJvcjZDb3JlXG4gICAgICAgIC4kb25Db21wbGV0aW9uSXRlbXNVcGRhdGVcbiAgICAgICAgLm5leHQoQXJyYXkuZnJvbSh1bnJlcGVhdGVkQ29tcGxldGlvbkl0ZW1zKSk7XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9saW50ZXJzL3RheC1jYWxjdWxhdGlvbi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qIEludGVyZmFjZXMgKi9cbmV4cG9ydCAqIGZyb20gXCIuL2ludGVyZmFjZXMvdmFsaWRhdGlvblwiO1xuIl19
|
package/esm5/components/code-editor/infra/linters/tax-calculation/models/interfaces/validation.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL2xpbnRlcnMvdGF4LWNhbGN1bGF0aW9uL21vZGVscy9pbnRlcmZhY2VzL3ZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hcmtlciB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9jb3JlL21vZGVsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb24ge1xuICAgIHZhbGlkYXRlOiAoY29kZTogc3RyaW5nLCBjb21wbGV0aW9uSXRlbXM6IHN0cmluZ1tdKSA9PiBQcm9taXNlPE1hcmtlcltdPjtcbn1cbiJdfQ==
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ValidationComposite, ValidationWorkersComposite } from "./validation-compositors";
|
|
2
|
-
/**
|
|
3
|
-
* Linter for the "TaxCalculation" Language
|
|
4
|
-
*/
|
|
5
|
-
var TaxCalculationLinter = /** @class */ (function () {
|
|
6
|
-
function TaxCalculationLinter() {
|
|
7
|
-
this.setValidation();
|
|
8
|
-
}
|
|
9
|
-
TaxCalculationLinter.prototype.lint = function (code, completionItems) {
|
|
10
|
-
return this._validation.validate(code, completionItems || []);
|
|
11
|
-
};
|
|
12
|
-
TaxCalculationLinter.prototype.setValidation = function () {
|
|
13
|
-
var browserSupportsWorkers = typeof Worker !== "undefined";
|
|
14
|
-
this._validation = browserSupportsWorkers
|
|
15
|
-
? new ValidationWorkersComposite()
|
|
16
|
-
: new ValidationComposite();
|
|
17
|
-
};
|
|
18
|
-
return TaxCalculationLinter;
|
|
19
|
-
}());
|
|
20
|
-
export { TaxCalculationLinter };
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LWNhbGN1bGF0aW9uLWxpbnRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL2xpbnRlcnMvdGF4LWNhbGN1bGF0aW9uL3RheC1jYWxjdWxhdGlvbi1saW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUNILG1CQUFtQixFQUNuQiwwQkFBMEIsRUFDN0IsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQzs7R0FFRztBQUNIO0lBSUk7UUFDSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLG1DQUFJLEdBQVgsVUFBYSxJQUFZLEVBQUUsZUFBMEI7UUFDakQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyw0Q0FBYSxHQUFyQjtRQUNJLElBQU0sc0JBQXNCLEdBQUcsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDO1FBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsc0JBQXNCO1lBQ3JDLENBQUMsQ0FBQyxJQUFJLDBCQUEwQixFQUFFO1lBQ2xDLENBQUMsQ0FBQyxJQUFJLG1CQUFtQixFQUFFLENBQUM7SUFFcEMsQ0FBQztJQUNMLDJCQUFDO0FBQUQsQ0FBQyxBQW5CRCxJQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpbnRlckZhY2FkZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2ZhY2FkZXMvbGludGVyLWZhY2FkZVwiO1xuaW1wb3J0IHsgTWFya2VyIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvbW9kZWxzXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSBcIi4vbW9kZWxzXCI7XG5pbXBvcnQge1xuICAgIFZhbGlkYXRpb25Db21wb3NpdGUsXG4gICAgVmFsaWRhdGlvbldvcmtlcnNDb21wb3NpdGVcbn0gZnJvbSBcIi4vdmFsaWRhdGlvbi1jb21wb3NpdG9yc1wiO1xuXG4vKipcbiAqIExpbnRlciBmb3IgdGhlIFwiVGF4Q2FsY3VsYXRpb25cIiBMYW5ndWFnZVxuICovXG5leHBvcnQgY2xhc3MgVGF4Q2FsY3VsYXRpb25MaW50ZXIgaW1wbGVtZW50cyBMaW50ZXJGYWNhZGUge1xuXG4gICAgcHJpdmF0ZSBfdmFsaWRhdGlvbiE6IFZhbGlkYXRpb247XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGF0aW9uKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGxpbnQgKGNvZGU6IHN0cmluZywgY29tcGxldGlvbkl0ZW1zPzogc3RyaW5nW10pOiBQcm9taXNlPE1hcmtlcltdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0aW9uLnZhbGlkYXRlKGNvZGUsIGNvbXBsZXRpb25JdGVtcyB8fCBbXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWxpZGF0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBicm93c2VyU3VwcG9ydHNXb3JrZXJzID0gdHlwZW9mIFdvcmtlciAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgICAgdGhpcy5fdmFsaWRhdGlvbiA9IGJyb3dzZXJTdXBwb3J0c1dvcmtlcnNcbiAgICAgICAgICAgID8gbmV3IFZhbGlkYXRpb25Xb3JrZXJzQ29tcG9zaXRlKClcbiAgICAgICAgICAgIDogbmV3IFZhbGlkYXRpb25Db21wb3NpdGUoKTtcblxuICAgIH1cbn1cbiJdfQ==
|
package/esm5/components/code-editor/infra/linters/tax-calculation/validation-compositors/index.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from "./validation-workers-compositor/validations-workers-composite";
|
|
2
|
-
export * from "./validation-composite";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9saW50ZXJzL3RheC1jYWxjdWxhdGlvbi92YWxpZGF0aW9uLWNvbXBvc2l0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3ZhbGlkYXRpb24td29ya2Vycy1jb21wb3NpdG9yL3ZhbGlkYXRpb25zLXdvcmtlcnMtY29tcG9zaXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92YWxpZGF0aW9uLWNvbXBvc2l0ZVwiO1xuIl19
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __generator, __values } from "tslib";
|
|
2
|
-
var ValidationComposite = /** @class */ (function () {
|
|
3
|
-
function ValidationComposite() {
|
|
4
|
-
this._validations = [];
|
|
5
|
-
}
|
|
6
|
-
ValidationComposite.prototype.validate = function (code, completionItems) {
|
|
7
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
8
|
-
var markers, _a, _b, validation, _c, _d, e_1_1;
|
|
9
|
-
var e_1, _e;
|
|
10
|
-
return __generator(this, function (_f) {
|
|
11
|
-
switch (_f.label) {
|
|
12
|
-
case 0:
|
|
13
|
-
markers = [];
|
|
14
|
-
_f.label = 1;
|
|
15
|
-
case 1:
|
|
16
|
-
_f.trys.push([1, 6, 7, 8]);
|
|
17
|
-
_a = __values(this._validations), _b = _a.next();
|
|
18
|
-
_f.label = 2;
|
|
19
|
-
case 2:
|
|
20
|
-
if (!!_b.done) return [3 /*break*/, 5];
|
|
21
|
-
validation = _b.value;
|
|
22
|
-
_d = (_c = markers).concat;
|
|
23
|
-
return [4 /*yield*/, validation.validate(code, completionItems)];
|
|
24
|
-
case 3:
|
|
25
|
-
_d.apply(_c, [_f.sent()]);
|
|
26
|
-
_f.label = 4;
|
|
27
|
-
case 4:
|
|
28
|
-
_b = _a.next();
|
|
29
|
-
return [3 /*break*/, 2];
|
|
30
|
-
case 5: return [3 /*break*/, 8];
|
|
31
|
-
case 6:
|
|
32
|
-
e_1_1 = _f.sent();
|
|
33
|
-
e_1 = { error: e_1_1 };
|
|
34
|
-
return [3 /*break*/, 8];
|
|
35
|
-
case 7:
|
|
36
|
-
try {
|
|
37
|
-
if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
|
|
38
|
-
}
|
|
39
|
-
finally { if (e_1) throw e_1.error; }
|
|
40
|
-
return [7 /*endfinally*/];
|
|
41
|
-
case 8: return [2 /*return*/, markers];
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
return ValidationComposite;
|
|
47
|
-
}());
|
|
48
|
-
export { ValidationComposite };
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1jb21wb3NpdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9saW50ZXJzL3RheC1jYWxjdWxhdGlvbi92YWxpZGF0aW9uLWNvbXBvc2l0b3JzL3ZhbGlkYXRpb24tY29tcG9zaXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQTtJQUFBO1FBRVksaUJBQVksR0FBaUIsRUFBRSxDQUFDO0lBWTVDLENBQUM7SUFWZ0Isc0NBQVEsR0FBckIsVUFBc0IsSUFBWSxFQUFFLGVBQXlCOzs7Ozs7O3dCQUNuRCxPQUFPLEdBQWEsRUFBRSxDQUFDOzs7O3dCQUVKLEtBQUEsU0FBQSxJQUFJLENBQUMsWUFBWSxDQUFBOzs7O3dCQUEvQixVQUFVO3dCQUNqQixLQUFBLENBQUEsS0FBQSxPQUFPLENBQUEsQ0FBQyxNQUFNLENBQUE7d0JBQUMscUJBQU0sVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLEVBQUE7O3dCQUEvRCxjQUFlLFNBQWdELEVBQUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs0QkFHckUsc0JBQU8sT0FBTyxFQUFDOzs7O0tBQ2xCO0lBRUwsMEJBQUM7QUFBRCxDQUFDLEFBZEQsSUFjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hcmtlciB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL21vZGVsc1wiXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xuXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkNvbXBvc2l0ZSBpbXBsZW1lbnRzIFZhbGlkYXRpb24ge1xuXG4gICAgcHJpdmF0ZSBfdmFsaWRhdGlvbnM6IFZhbGlkYXRpb25bXSA9IFtdO1xuXG4gICAgcHVibGljIGFzeW5jIHZhbGlkYXRlKGNvZGU6IHN0cmluZywgY29tcGxldGlvbkl0ZW1zOiBzdHJpbmdbXSk6IFByb21pc2U8TWFya2VyW10+IHtcbiAgICAgICAgY29uc3QgbWFya2VyczogTWFya2VyW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHZhbGlkYXRpb24gb2YgdGhpcy5fdmFsaWRhdGlvbnMpIHtcbiAgICAgICAgICAgIG1hcmtlcnMuY29uY2F0KGF3YWl0IHZhbGlkYXRpb24udmFsaWRhdGUoY29kZSwgY29tcGxldGlvbkl0ZW1zKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWFya2VycztcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __generator, __values } from "tslib";
|
|
2
|
-
var ValidationWorkersComposite = /** @class */ (function () {
|
|
3
|
-
function ValidationWorkersComposite() {
|
|
4
|
-
this._validations = [];
|
|
5
|
-
}
|
|
6
|
-
ValidationWorkersComposite.prototype.validate = function (code, completionItems) {
|
|
7
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
8
|
-
var _this = this;
|
|
9
|
-
return __generator(this, function (_a) {
|
|
10
|
-
return [2 /*return*/, new Promise(function (resolve) {
|
|
11
|
-
var e_1, _a;
|
|
12
|
-
var markers = [];
|
|
13
|
-
var finishedWorkers = 0;
|
|
14
|
-
try {
|
|
15
|
-
for (var _b = __values(_this._validations), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
16
|
-
var worker = _c.value;
|
|
17
|
-
worker.onmessage = function (_a) {
|
|
18
|
-
var data = _a.data;
|
|
19
|
-
markers.concat(data);
|
|
20
|
-
finishedWorkers++;
|
|
21
|
-
if (finishedWorkers === _this._validations.length) {
|
|
22
|
-
resolve(markers);
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
worker.postMessage({ code: code, completionItems: completionItems });
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
29
|
-
finally {
|
|
30
|
-
try {
|
|
31
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
32
|
-
}
|
|
33
|
-
finally { if (e_1) throw e_1.error; }
|
|
34
|
-
}
|
|
35
|
-
})];
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
return ValidationWorkersComposite;
|
|
40
|
-
}());
|
|
41
|
-
export { ValidationWorkersComposite };
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMtd29ya2Vycy1jb21wb3NpdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9saW50ZXJzL3RheC1jYWxjdWxhdGlvbi92YWxpZGF0aW9uLWNvbXBvc2l0b3JzL3ZhbGlkYXRpb24td29ya2Vycy1jb21wb3NpdG9yL3ZhbGlkYXRpb25zLXdvcmtlcnMtY29tcG9zaXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQTtJQUFBO1FBRVksaUJBQVksR0FBYSxFQUFFLENBQUM7SUFxQnhDLENBQUM7SUFuQmdCLDZDQUFRLEdBQXJCLFVBQXNCLElBQVksRUFBRSxlQUF5Qjs7OztnQkFDekQsc0JBQU8sSUFBSSxPQUFPLENBQUMsVUFBQSxPQUFPOzt3QkFDdEIsSUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO3dCQUM3QixJQUFJLGVBQWUsR0FBRyxDQUFDLENBQUM7OzRCQUV4QixLQUFxQixJQUFBLEtBQUEsU0FBQSxLQUFJLENBQUMsWUFBWSxDQUFBLGdCQUFBLDRCQUFFO2dDQUFuQyxJQUFNLE1BQU0sV0FBQTtnQ0FDYixNQUFNLENBQUMsU0FBUyxHQUFHLFVBQUMsRUFBNEI7d0NBQTFCLGNBQUk7b0NBQ3RCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7b0NBQ3JCLGVBQWUsRUFBRSxDQUFDO29DQUVsQixJQUFJLGVBQWUsS0FBSyxLQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTt3Q0FDOUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FDQUNwQjtnQ0FDTCxDQUFDLENBQUM7Z0NBRUYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksTUFBQSxFQUFFLGVBQWUsaUJBQUEsRUFBRSxDQUFDLENBQUM7NkJBQ2pEOzs7Ozs7Ozs7b0JBQ0wsQ0FBQyxDQUFDLEVBQUM7OztLQUNOO0lBQ0wsaUNBQUM7QUFBRCxDQUFDLEFBdkJELElBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFya2VyIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSBcIi4uLy4uL21vZGVsc1wiO1xuXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbldvcmtlcnNDb21wb3NpdGUgaW1wbGVtZW50cyBWYWxpZGF0aW9uIHtcblxuICAgIHByaXZhdGUgX3ZhbGlkYXRpb25zOiBXb3JrZXJbXSA9IFtdO1xuXG4gICAgcHVibGljIGFzeW5jIHZhbGlkYXRlKGNvZGU6IHN0cmluZywgY29tcGxldGlvbkl0ZW1zOiBzdHJpbmdbXSk6IFByb21pc2U8TWFya2VyW10+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWFya2VyczogTWFya2VyW10gPSBbXTtcbiAgICAgICAgICAgIGxldCBmaW5pc2hlZFdvcmtlcnMgPSAwO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHdvcmtlciBvZiB0aGlzLl92YWxpZGF0aW9ucykge1xuICAgICAgICAgICAgICAgIHdvcmtlci5vbm1lc3NhZ2UgPSAoeyBkYXRhIH06IHsgZGF0YTogTWFya2VyW10gfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBtYXJrZXJzLmNvbmNhdChkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrZXJzKys7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29ya2VycyA9PT0gdGhpcy5fdmFsaWRhdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKG1hcmtlcnMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7IGNvZGUsIGNvbXBsZXRpb25JdGVtcyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Function to get the position of the first occurrence of a regex in a string
|
|
3
|
-
* @param string The string to search into
|
|
4
|
-
* @param regex The regex to search into the string
|
|
5
|
-
* @param position The index at which to begin searching the string. If omitted, search starts at the index 0.
|
|
6
|
-
* @returns the position of the first occurrence of the informed regex.
|
|
7
|
-
*/
|
|
8
|
-
export function regexIndexOf(string, regex, position) {
|
|
9
|
-
var indexOf = string.substring(position || 0).search(regex);
|
|
10
|
-
return (indexOf >= 0) ? (indexOf + (position || 0)) : indexOf;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXgtaW5kZXgtb2YuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS91dGlscy9yZWdleC1pbmRleC1vZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWMsRUFBRSxLQUFhLEVBQUUsUUFBZ0I7SUFDeEUsSUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGdW5jdGlvbiB0byBnZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGEgcmVnZXggaW4gYSBzdHJpbmdcbiAqIEBwYXJhbSBzdHJpbmcgVGhlIHN0cmluZyB0byBzZWFyY2ggaW50b1xuICogQHBhcmFtIHJlZ2V4IFRoZSByZWdleCB0byBzZWFyY2ggaW50byB0aGUgc3RyaW5nXG4gKiBAcGFyYW0gcG9zaXRpb24gVGhlIGluZGV4IGF0IHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyB0aGUgc3RyaW5nLiBJZiBvbWl0dGVkLCBzZWFyY2ggc3RhcnRzIGF0IHRoZSBpbmRleCAwLlxuICogQHJldHVybnMgIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgaW5mb3JtZWQgcmVnZXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdleEluZGV4T2Yoc3RyaW5nOiBzdHJpbmcsIHJlZ2V4OiBSZWdFeHAsIHBvc2l0aW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGluZGV4T2YgPSBzdHJpbmcuc3Vic3RyaW5nKHBvc2l0aW9uIHx8IDApLnNlYXJjaChyZWdleCk7XG4gICAgcmV0dXJuIChpbmRleE9mID49IDApID8gKGluZGV4T2YgKyAocG9zaXRpb24gfHwgMCkpIDogaW5kZXhPZjtcbn1cbiJdfQ==
|