devextreme-internal-tools 12.0.0-beta.1 → 12.0.0-beta.10
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/bin/DevExtreme.Declarations.Discoverer.dll +0 -0
- package/bin/DevExtreme.Declarations.Discoverer.exe +0 -0
- package/bin/DevExtreme.Declarations.IntegrityValidator.dll +0 -0
- package/bin/DevExtreme.Declarations.IntegrityValidator.exe +0 -0
- package/bin/DevExtreme.Declarations.dll +0 -0
- package/bin/DevExtreme.Descriptions.Injector.dll +0 -0
- package/bin/DevExtreme.Descriptions.Injector.exe +0 -0
- package/bin/DevExtreme.Infrastructure.dll +0 -0
- package/bin/DevExtreme.IntegrationDataGenerator.dll +0 -0
- package/bin/DevExtreme.IntegrationDataGenerator.exe +0 -0
- package/bin/DevExtreme.NgSmdGenerator.dll +0 -0
- package/bin/DevExtreme.NgSmdGenerator.exe +0 -0
- package/bin/DevExtreme.SmdCommon.dll +0 -0
- package/bin/DevExtreme.StrongMetaDataGenerator.dll +0 -0
- package/bin/DevExtreme.StrongMetaDataGenerator.exe +0 -0
- package/bin/DevExtreme.Topics.ExtraFilesGenerator.dll +0 -0
- package/bin/DevExtreme.Topics.ExtraFilesGenerator.exe +0 -0
- package/bin/DevExtreme.Topics.Generator.dll +0 -0
- package/bin/DevExtreme.Topics.Generator.exe +0 -0
- package/bin/DevExtreme.Topics.ModulesGuideValidator.dll +0 -0
- package/bin/DevExtreme.Topics.ModulesGuideValidator.exe +0 -0
- package/bin/DevExtreme.Topics.Validation.dll +0 -0
- package/bin/DevExtreme.Topics.Validation.exe +0 -0
- package/bin/DevExtreme.Topics.dll +0 -0
- package/bin/DevExtreme.WebSite.ContentMapCreator.dll +0 -0
- package/bin/DevExtreme.WebSite.ContentMapCreator.exe +0 -0
- package/bin/DevExtreme.WebSite.LinksConverter.dll +0 -0
- package/bin/DevExtreme.WebSite.LinksConverter.exe +0 -0
- package/bin/DevExtreme.WebSite.SyntaxDataGenerator.dll +0 -0
- package/bin/DevExtreme.WebSite.SyntaxDataGenerator.exe +0 -0
- package/bin/Microsoft.Extensions.DependencyInjection.Abstractions.dll +0 -0
- package/bin/Microsoft.Extensions.DependencyInjection.dll +0 -0
- package/bin/NLog.dll +0 -0
- package/bin/Newtonsoft.Json.dll +0 -0
- package/bin/System.IO.Abstractions.dll +0 -0
- package/cli.d.ts +2 -0
- package/cli.js +50 -0
- package/cli.js.map +1 -0
- package/index.d.ts +9 -0
- package/index.js +18 -47
- package/index.js.map +1 -1
- package/integration-data-model.d.ts +76 -0
- package/integration-data-model.js +3 -0
- package/integration-data-model.js.map +1 -0
- package/package.json +28 -29
- package/ts/angular-components-generator/common-reexports-generator.d.ts +4 -0
- package/ts/angular-components-generator/common-reexports-generator.js +38 -0
- package/ts/angular-components-generator/common-reexports-generator.js.map +1 -0
- package/ts/angular-components-generator/component-names-generator.d.ts +8 -0
- package/ts/angular-components-generator/component-names-generator.js +31 -0
- package/ts/angular-components-generator/component-names-generator.js.map +1 -0
- package/ts/angular-components-generator/dot-generator.d.ts +8 -0
- package/ts/angular-components-generator/dot-generator.js +84 -0
- package/ts/angular-components-generator/dot-generator.js.map +1 -0
- package/ts/angular-components-generator/facade-generator.d.ts +4 -0
- package/ts/angular-components-generator/facade-generator.js +50 -0
- package/ts/angular-components-generator/facade-generator.js.map +1 -0
- package/ts/angular-components-generator/helpers.d.ts +2 -0
- package/ts/angular-components-generator/helpers.js +12 -0
- package/ts/angular-components-generator/helpers.js.map +1 -0
- package/ts/angular-components-generator/import-helper.d.ts +6 -0
- package/ts/angular-components-generator/import-helper.js +73 -0
- package/ts/angular-components-generator/import-helper.js.map +1 -0
- package/ts/angular-components-generator/logger.d.ts +1 -0
- package/ts/angular-components-generator/logger.js +16 -0
- package/ts/angular-components-generator/logger.js.map +1 -0
- package/ts/angular-components-generator/metadata-generator.d.ts +27 -0
- package/ts/angular-components-generator/metadata-generator.js +490 -0
- package/ts/angular-components-generator/metadata-generator.js.map +1 -0
- package/ts/angular-components-generator/metadata-model.d.ts +48 -0
- package/ts/angular-components-generator/metadata-model.js +3 -0
- package/ts/angular-components-generator/metadata-model.js.map +1 -0
- package/ts/angular-components-generator/module-facade-generator.d.ts +5 -0
- package/ts/angular-components-generator/module-facade-generator.js +50 -0
- package/ts/angular-components-generator/module-facade-generator.js.map +1 -0
- package/ts/angular-components-generator/templates/base-nested-component.tst +20 -0
- package/ts/angular-components-generator/templates/component.tst +253 -0
- package/ts/angular-components-generator/templates/nested-component.tst +140 -0
- package/ts/bundler/bundler.d.ts +6 -0
- package/ts/bundler/bundler.js +43 -45
- package/ts/bundler/bundler.js.map +1 -1
- package/ts/collapser/collapser.d.ts +4 -0
- package/ts/collapser/collapser.js +53 -49
- package/ts/collapser/collapser.js.map +1 -1
- package/ts/common/common-resolving.d.ts +11 -0
- package/ts/common/common-resolving.js +7 -7
- package/ts/common/common-resolving.js.map +1 -1
- package/ts/common/id.d.ts +12 -0
- package/ts/common/id.js +24 -20
- package/ts/common/id.js.map +1 -1
- package/ts/common/tags/comparing.d.ts +3 -0
- package/ts/common/tags/generating.d.ts +4 -0
- package/ts/common/tags/generating.js +16 -12
- package/ts/common/tags/generating.js.map +1 -1
- package/ts/common/tags/merging.d.ts +12 -0
- package/ts/common/tags/merging.js +14 -14
- package/ts/common/tags/merging.js.map +1 -1
- package/ts/common/tags/parameter-field-tag.d.ts +7 -0
- package/ts/common/tags/parameter-field-tag.js +2 -2
- package/ts/common/tags/parameter-field-tag.js.map +1 -1
- package/ts/common/tags.d.ts +12 -0
- package/ts/common/tags.js +24 -21
- package/ts/common/tags.js.map +1 -1
- package/ts/common/ts-type-resolving.d.ts +16 -0
- package/ts/common/ts-type-resolving.js +89 -89
- package/ts/common/ts-type-resolving.js.map +1 -1
- package/ts/common/ts-utils.d.ts +35 -0
- package/ts/common/ts-utils.js +59 -31
- package/ts/common/ts-utils.js.map +1 -1
- package/ts/common/type-resolving.d.ts +42 -0
- package/ts/common/type-resolving.js +52 -52
- package/ts/common/type-resolving.js.map +1 -1
- package/ts/common/utils.d.ts +22 -0
- package/ts/common/utils.js +5 -5
- package/ts/common/utils.js.map +1 -1
- package/ts/component-exports-generator/generator.d.ts +3 -0
- package/ts/component-exports-generator/generator.js +14 -14
- package/ts/component-exports-generator/generator.js.map +1 -1
- package/ts/components-generation/common-reexports-generator.d.ts +6 -0
- package/ts/components-generation/common-reexports-generator.js +27 -0
- package/ts/components-generation/common-reexports-generator.js.map +1 -0
- package/ts/components-generation/reexports-generator.d.ts +10 -0
- package/ts/components-generation/reexports-generator.js +18 -0
- package/ts/components-generation/reexports-generator.js.map +1 -0
- package/ts/components-generation/template.d.ts +22 -0
- package/ts/components-generation/template.js +57 -0
- package/ts/components-generation/template.js.map +1 -0
- package/ts/discoverer/data-model.d.ts +105 -0
- package/ts/discoverer/discovering-error.d.ts +4 -0
- package/ts/discoverer/discovering-error.js +2 -4
- package/ts/discoverer/discovering-error.js.map +1 -1
- package/ts/discoverer/discovering.d.ts +4 -0
- package/ts/discoverer/discovering.js +7 -7
- package/ts/discoverer/discovering.js.map +1 -1
- package/ts/discoverer/parsing/enum-collecting.d.ts +6 -0
- package/ts/discoverer/parsing/enum-collecting.js +19 -15
- package/ts/discoverer/parsing/enum-collecting.js.map +1 -1
- package/ts/discoverer/parsing/file-reader.d.ts +2 -0
- package/ts/discoverer/parsing/file-reader.js +8 -2
- package/ts/discoverer/parsing/file-reader.js.map +1 -1
- package/ts/discoverer/parsing/widget-parsing.d.ts +11 -0
- package/ts/discoverer/parsing/widget-parsing.js +15 -11
- package/ts/discoverer/parsing/widget-parsing.js.map +1 -1
- package/ts/discoverer/parsing.d.ts +29 -0
- package/ts/discoverer/parsing.js +60 -56
- package/ts/discoverer/parsing.js.map +1 -1
- package/ts/discoverer/types.d.ts +20 -0
- package/ts/logging.d.ts +16 -0
- package/ts/logging.js +14 -14
- package/ts/logging.js.map +1 -1
- package/ts/modules-meta-generator/modules-meta-generator.d.ts +3 -0
- package/ts/modules-meta-generator/modules-meta-generator.js +9 -10
- package/ts/modules-meta-generator/modules-meta-generator.js.map +1 -1
- package/ts/react-components-generator/component-generator.d.ts +62 -0
- package/ts/react-components-generator/component-generator.js +412 -0
- package/ts/react-components-generator/component-generator.js.map +1 -0
- package/ts/react-components-generator/converter.d.ts +3 -0
- package/ts/react-components-generator/converter.js +59 -0
- package/ts/react-components-generator/converter.js.map +1 -0
- package/ts/react-components-generator/generator.d.ts +60 -0
- package/ts/react-components-generator/generator.js +382 -0
- package/ts/react-components-generator/generator.js.map +1 -0
- package/ts/react-components-generator/helpers.d.ts +11 -0
- package/ts/react-components-generator/helpers.js +53 -0
- package/ts/react-components-generator/helpers.js.map +1 -0
- package/ts/react-components-generator/import-overrides.json +108 -0
- package/ts/react-components-generator/index-generator.d.ts +3 -0
- package/ts/react-components-generator/index-generator.js +22 -0
- package/ts/react-components-generator/index-generator.js.map +1 -0
- package/ts/scripts/args.d.ts +37 -0
- package/ts/scripts/args.js +7 -7
- package/ts/scripts/args.js.map +1 -1
- package/ts/scripts/helpers.d.ts +10 -0
- package/ts/scripts/helpers.js +12 -12
- package/ts/scripts/helpers.js.map +1 -1
- package/ts/scripts/tools.d.ts +17 -0
- package/ts/scripts/tools.js +30 -30
- package/ts/scripts/tools.js.map +1 -1
- package/ts/vue-components-generator/component-generator.d.ts +40 -0
- package/ts/vue-components-generator/component-generator.js +197 -0
- package/ts/vue-components-generator/component-generator.js.map +1 -0
- package/ts/vue-components-generator/converter.d.ts +3 -0
- package/ts/vue-components-generator/converter.js +45 -0
- package/ts/vue-components-generator/converter.js.map +1 -0
- package/ts/vue-components-generator/generator.d.ts +11 -0
- package/ts/vue-components-generator/generator.js +120 -0
- package/ts/vue-components-generator/generator.js.map +1 -0
- package/ts/vue-components-generator/helpers.d.ts +6 -0
- package/ts/vue-components-generator/helpers.js +30 -0
- package/ts/vue-components-generator/helpers.js.map +1 -0
- package/bin/integration-data-model.ts +0 -86
- package/bin/internal-tools-log.txt +0 -21
- package/integration-data-model.ts +0 -86
- package/ts/discoverer/parsing/file-reader.tests.js +0 -24
- package/ts/discoverer/parsing/file-reader.tests.js.map +0 -1
@@ -0,0 +1,490 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
14
|
+
var t = {};
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
16
|
+
t[p] = s[p];
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
20
|
+
t[p[i]] = s[p[i]];
|
21
|
+
}
|
22
|
+
return t;
|
23
|
+
};
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
25
|
+
exports.ComponentMetadataGenerator = exports.FSObjectStore = void 0;
|
26
|
+
var fs = require("fs");
|
27
|
+
var path = require("path");
|
28
|
+
var mkdirp = require("mkdirp");
|
29
|
+
var merge = require("deepmerge");
|
30
|
+
var inflector = require("inflector-js");
|
31
|
+
var logger_1 = require("./logger");
|
32
|
+
var import_helper_1 = require("./import-helper");
|
33
|
+
var helpers_1 = require("./helpers");
|
34
|
+
var OPTION_COMPONENT_PREFIX = 'Dxo';
|
35
|
+
var ITEM_COMPONENT_PREFIX = 'Dxi';
|
36
|
+
var TYPES_SEPORATOR = ' | ';
|
37
|
+
function trimDx(value) {
|
38
|
+
return trimPrefix('dx-', value);
|
39
|
+
}
|
40
|
+
function trimPrefix(prefix, value) {
|
41
|
+
if (value.indexOf(prefix) === 0) {
|
42
|
+
return value.substr(prefix.length);
|
43
|
+
}
|
44
|
+
return value;
|
45
|
+
}
|
46
|
+
var FSObjectStore = (function () {
|
47
|
+
function FSObjectStore() {
|
48
|
+
this.encoding = 'utf8';
|
49
|
+
}
|
50
|
+
FSObjectStore.prototype.read = function (filePath) {
|
51
|
+
(0, logger_1.default)("Read from file: ".concat(filePath));
|
52
|
+
var dataString = fs.readFileSync(filePath, { encoding: this.encoding });
|
53
|
+
(0, logger_1.default)('Parse data');
|
54
|
+
return JSON.parse(dataString);
|
55
|
+
};
|
56
|
+
FSObjectStore.prototype.write = function (filePath, data) {
|
57
|
+
(0, logger_1.default)("Write data to file ".concat(filePath));
|
58
|
+
var dataString = JSON.stringify(data, null, 4);
|
59
|
+
fs.writeFileSync(filePath, dataString, { encoding: this.encoding });
|
60
|
+
};
|
61
|
+
return FSObjectStore;
|
62
|
+
}());
|
63
|
+
exports.FSObjectStore = FSObjectStore;
|
64
|
+
var ComponentMetadataGenerator = (function () {
|
65
|
+
function ComponentMetadataGenerator(store) {
|
66
|
+
this.store = store;
|
67
|
+
if (!this.store) {
|
68
|
+
this.store = new FSObjectStore();
|
69
|
+
}
|
70
|
+
}
|
71
|
+
ComponentMetadataGenerator.prototype.generate = function (config) {
|
72
|
+
var _a, _b;
|
73
|
+
var sourceMetadata = this.store.read(config.sourceMetadataFilePath);
|
74
|
+
var deprecatedMetadata = this.store.read(config.deprecatedMetadataFilePath);
|
75
|
+
var metadata = merge(sourceMetadata, deprecatedMetadata);
|
76
|
+
var widgetsMetadata = metadata.Widgets;
|
77
|
+
var allNestedComponents = [];
|
78
|
+
mkdirp.sync(config.outputFolderPath);
|
79
|
+
mkdirp.sync(path.join(config.outputFolderPath, config.nestedPathPart));
|
80
|
+
mkdirp.sync(path.join(config.outputFolderPath, config.nestedPathPart, config.basePathPart));
|
81
|
+
var _loop_1 = function (widgetName) {
|
82
|
+
var widget = widgetsMetadata[widgetName];
|
83
|
+
var nestedComponents = [];
|
84
|
+
if (!widget.Module) {
|
85
|
+
(0, logger_1.default)("Skipping metadata for ".concat(widgetName));
|
86
|
+
return "continue";
|
87
|
+
}
|
88
|
+
(0, logger_1.default)("Generate metadata for ".concat(widgetName));
|
89
|
+
var isTranscludedContent = widget.IsTranscludedContent;
|
90
|
+
var isViz = widget.Module.indexOf('viz') === 0;
|
91
|
+
var isExtension = widget.IsExtensionComponent || false;
|
92
|
+
var className = inflector.camelize(widgetName);
|
93
|
+
var dasherizedWidgetName = inflector.dasherize(inflector.underscore(widgetName));
|
94
|
+
var outputFilePath = path.join(config.outputFolderPath, "".concat(trimDx(dasherizedWidgetName), ".json"));
|
95
|
+
var events = [];
|
96
|
+
var changeEvents = [];
|
97
|
+
var properties = [];
|
98
|
+
var isEditor = Object.keys(widget.Options).indexOf('onValueChanged') !== -1;
|
99
|
+
for (var optionName in widget.Options) {
|
100
|
+
var option = widget.Options[optionName];
|
101
|
+
if (option.IsEvent) {
|
102
|
+
var eventName = inflector.camelize(optionName.substr('on'.length), true);
|
103
|
+
var eventType = ((_a = option.TypeImports) === null || _a === void 0 ? void 0 : _a.length) ? option.TypeImports[0].Name : 'any';
|
104
|
+
events.push({
|
105
|
+
docID: option.DocID,
|
106
|
+
isDeprecated: option.IsDeprecated,
|
107
|
+
emit: optionName,
|
108
|
+
subscribe: eventName,
|
109
|
+
type: "EventEmitter<".concat(eventType, ">"),
|
110
|
+
});
|
111
|
+
}
|
112
|
+
else {
|
113
|
+
var typesDescription = this_1.getTypesDescription(option);
|
114
|
+
var finalizedType = this_1.getType(typesDescription);
|
115
|
+
var property = {
|
116
|
+
docID: option.DocID,
|
117
|
+
isDeprecated: option.IsDeprecated,
|
118
|
+
name: optionName,
|
119
|
+
type: finalizedType,
|
120
|
+
typesDescription: typesDescription,
|
121
|
+
option: option,
|
122
|
+
};
|
123
|
+
if (!!option.IsCollection || !!option.IsDataSource) {
|
124
|
+
property.isCollection = true;
|
125
|
+
}
|
126
|
+
properties.push(property);
|
127
|
+
changeEvents.push(this_1.createEvent(optionName, finalizedType, option));
|
128
|
+
var components = this_1.generateComplexOptionByType(metadata, option, optionName, [], config);
|
129
|
+
nestedComponents = nestedComponents.concat.apply(nestedComponents, components);
|
130
|
+
}
|
131
|
+
}
|
132
|
+
var allEvents = events.concat(changeEvents);
|
133
|
+
if (isEditor) {
|
134
|
+
allEvents.push({ emit: 'onBlur', type: 'EventEmitter<any>' });
|
135
|
+
}
|
136
|
+
var widgetNestedComponents = nestedComponents
|
137
|
+
.reduce(function (result, component) {
|
138
|
+
if (result.filter(function (c) { return c.className === component.className; }).length === 0) {
|
139
|
+
result.push({
|
140
|
+
path: component.path,
|
141
|
+
propertyName: component.propertyName,
|
142
|
+
className: component.className,
|
143
|
+
events: component.events,
|
144
|
+
isCollection: component.isCollection,
|
145
|
+
hasTemplate: component.hasTemplate,
|
146
|
+
root: properties.filter(function (p) { return p.name === component.propertyName; }).length === 1 ? true : undefined,
|
147
|
+
});
|
148
|
+
}
|
149
|
+
return result;
|
150
|
+
}, []);
|
151
|
+
var containsReexports = !!((_b = widget.Reexports) === null || _b === void 0 ? void 0 : _b.filter(function (r) { return r !== 'default'; }).length);
|
152
|
+
var widgetMetadata = {
|
153
|
+
docID: widget.DocID,
|
154
|
+
isDeprecated: widget.IsDeprecated,
|
155
|
+
className: className,
|
156
|
+
widgetName: widgetName,
|
157
|
+
isTranscludedContent: isTranscludedContent,
|
158
|
+
isViz: isViz,
|
159
|
+
isExtension: isExtension,
|
160
|
+
selector: dasherizedWidgetName,
|
161
|
+
events: allEvents,
|
162
|
+
properties: properties,
|
163
|
+
isEditor: isEditor,
|
164
|
+
module: "".concat(config.widgetPackageName, "/").concat(widget.Module),
|
165
|
+
packageName: config.wrapperPackageName,
|
166
|
+
imports: (0, import_helper_1.buildImports)((0, helpers_1.getValues)(widget.Options), config.widgetPackageName),
|
167
|
+
nestedComponents: widgetNestedComponents,
|
168
|
+
optionsTypeParams: widget.OptionsTypeParams,
|
169
|
+
renderReexports: config.generateReexports && containsReexports,
|
170
|
+
};
|
171
|
+
(0, logger_1.default)("Write metadata to file ".concat(outputFilePath));
|
172
|
+
this_1.store.write(outputFilePath, normalizeMeta(widgetMetadata));
|
173
|
+
allNestedComponents = allNestedComponents.concat.apply(allNestedComponents, nestedComponents);
|
174
|
+
};
|
175
|
+
var this_1 = this;
|
176
|
+
for (var widgetName in widgetsMetadata) {
|
177
|
+
_loop_1(widgetName);
|
178
|
+
}
|
179
|
+
this.generateNestedOptions(config, allNestedComponents);
|
180
|
+
};
|
181
|
+
ComponentMetadataGenerator.prototype.createEvent = function (name, type, option) {
|
182
|
+
return {
|
183
|
+
isInternal: true,
|
184
|
+
emit: "".concat(name, "Change"),
|
185
|
+
type: "EventEmitter<".concat(type, ">"),
|
186
|
+
option: option,
|
187
|
+
};
|
188
|
+
};
|
189
|
+
ComponentMetadataGenerator.prototype.getTypesDescription = function (optionMetadata) {
|
190
|
+
var typeParts = this.getTypeParts(optionMetadata);
|
191
|
+
return {
|
192
|
+
primitiveTypes: typeParts.primitiveTypes,
|
193
|
+
arrayTypes: typeParts.arrayTypes,
|
194
|
+
};
|
195
|
+
};
|
196
|
+
ComponentMetadataGenerator.prototype.getTypeParts = function (optionMetadata) {
|
197
|
+
var primitiveTypes = optionMetadata.PrimitiveTypes ? optionMetadata.PrimitiveTypes.slice(0) : [];
|
198
|
+
var arrayTypes = [];
|
199
|
+
if (optionMetadata.ItemPrimitiveTypes) {
|
200
|
+
if (optionMetadata.IsPromise) {
|
201
|
+
var promiseType = optionMetadata.ItemPrimitiveTypes.join(TYPES_SEPORATOR);
|
202
|
+
primitiveTypes.push("Promise<".concat(promiseType, "> & JQueryPromise<").concat(promiseType, ">"));
|
203
|
+
}
|
204
|
+
else {
|
205
|
+
arrayTypes = arrayTypes.concat(optionMetadata.ItemPrimitiveTypes);
|
206
|
+
}
|
207
|
+
}
|
208
|
+
if (optionMetadata.Options) {
|
209
|
+
var optionType = this.getObjectType(optionMetadata.Options);
|
210
|
+
if (optionType.length) {
|
211
|
+
(optionMetadata.IsCollection ? arrayTypes : primitiveTypes).push(optionType);
|
212
|
+
}
|
213
|
+
}
|
214
|
+
return ({ primitiveTypes: primitiveTypes, arrayTypes: arrayTypes });
|
215
|
+
};
|
216
|
+
ComponentMetadataGenerator.prototype.getObjectType = function (optionMetadata) {
|
217
|
+
var objectType = [];
|
218
|
+
for (var option in optionMetadata) {
|
219
|
+
var typeParts = this.getTypeParts(optionMetadata[option]);
|
220
|
+
var type = this.getType(typeParts);
|
221
|
+
objectType.push("".concat(option, "?: ").concat(type));
|
222
|
+
}
|
223
|
+
if (objectType.length) {
|
224
|
+
return "{ ".concat(objectType.join(', '), " }");
|
225
|
+
}
|
226
|
+
return '';
|
227
|
+
};
|
228
|
+
ComponentMetadataGenerator.prototype.getEventType = function (typesDescription, option) {
|
229
|
+
var _a;
|
230
|
+
if (!((option === null || option === void 0 ? void 0 : option.IsEvent) && ((_a = option.TypeImports) === null || _a === void 0 ? void 0 : _a.length))) {
|
231
|
+
return this.getType(typesDescription);
|
232
|
+
}
|
233
|
+
return "((e: ".concat(option.TypeImports[0].Name, ") => void)");
|
234
|
+
};
|
235
|
+
ComponentMetadataGenerator.prototype.getType = function (typesDescription) {
|
236
|
+
var primitiveTypes = typesDescription.primitiveTypes.slice(0);
|
237
|
+
var result = 'any';
|
238
|
+
if (typesDescription.arrayTypes.length) {
|
239
|
+
primitiveTypes.push("Array<".concat(typesDescription.arrayTypes.join(TYPES_SEPORATOR), ">"));
|
240
|
+
}
|
241
|
+
if (primitiveTypes.length) {
|
242
|
+
result = primitiveTypes.join(TYPES_SEPORATOR);
|
243
|
+
}
|
244
|
+
return result;
|
245
|
+
};
|
246
|
+
ComponentMetadataGenerator.prototype.mergeArrayTypes = function (array1, array2) {
|
247
|
+
var newTypes = array2.filter(function (type) { return array1.indexOf(type) === -1; });
|
248
|
+
return [].concat(array1, newTypes);
|
249
|
+
};
|
250
|
+
ComponentMetadataGenerator.prototype.getExternalObjectInfo = function (metadata, typeName) {
|
251
|
+
var externalObject = metadata.ExtraObjects[typeName];
|
252
|
+
if (!externalObject) {
|
253
|
+
var postfix = 'Options';
|
254
|
+
if (typeName.endsWith(postfix)) {
|
255
|
+
var widgetName = typeName.substr(0, typeName.length - postfix.length);
|
256
|
+
externalObject = metadata.Widgets[widgetName];
|
257
|
+
typeName = trimPrefix('dx', typeName);
|
258
|
+
}
|
259
|
+
}
|
260
|
+
if (!externalObject) {
|
261
|
+
console.warn("WARN: missed complex type: ".concat(typeName));
|
262
|
+
}
|
263
|
+
else {
|
264
|
+
return {
|
265
|
+
Options: externalObject.Options,
|
266
|
+
typeName: typeName,
|
267
|
+
};
|
268
|
+
}
|
269
|
+
return undefined;
|
270
|
+
};
|
271
|
+
ComponentMetadataGenerator.prototype.generateComplexOptionByType = function (metadata, option, optionName, complexTypes, config) {
|
272
|
+
var _this = this;
|
273
|
+
var optionComplexTypes = option[option.IsCollection ? 'ItemComplexTypes' : 'ComplexTypes'];
|
274
|
+
if (option.Options) {
|
275
|
+
return this.generateComplexOption(metadata, option.Options, optionName, complexTypes, option, config);
|
276
|
+
}
|
277
|
+
if (optionComplexTypes && optionComplexTypes.length > 0) {
|
278
|
+
if (complexTypes.indexOf(complexTypes[complexTypes.length - 1]) !== complexTypes.length - 1) {
|
279
|
+
return undefined;
|
280
|
+
}
|
281
|
+
var result_1 = [];
|
282
|
+
optionComplexTypes.forEach(function (complexType) {
|
283
|
+
var externalObjectInfo = _this.getExternalObjectInfo(metadata, complexType);
|
284
|
+
if (externalObjectInfo) {
|
285
|
+
var nestedOptions = externalObjectInfo.Options;
|
286
|
+
var nestedComplexTypes = complexTypes.concat(externalObjectInfo.typeName);
|
287
|
+
result_1.push.apply(result_1, _this.generateComplexOption(metadata, nestedOptions, optionName, nestedComplexTypes, option, config));
|
288
|
+
}
|
289
|
+
});
|
290
|
+
if (optionComplexTypes.length === 1) {
|
291
|
+
var externalObjectInfo = this.getExternalObjectInfo(metadata, optionComplexTypes[0]);
|
292
|
+
if (externalObjectInfo) {
|
293
|
+
result_1[0].baseClass = (option.IsCollection ? ITEM_COMPONENT_PREFIX : OPTION_COMPONENT_PREFIX) + externalObjectInfo.typeName;
|
294
|
+
result_1[0].basePath = inflector.dasherize(inflector.underscore(externalObjectInfo.typeName));
|
295
|
+
}
|
296
|
+
}
|
297
|
+
return result_1;
|
298
|
+
}
|
299
|
+
return undefined;
|
300
|
+
};
|
301
|
+
ComponentMetadataGenerator.prototype.generateComplexOption = function (metadata, nestedOptions, optionName, complexTypes, option, config) {
|
302
|
+
var _a;
|
303
|
+
var _b;
|
304
|
+
if (!nestedOptions || !Object.keys(nestedOptions).length) {
|
305
|
+
return undefined;
|
306
|
+
}
|
307
|
+
var pluralName = optionName;
|
308
|
+
if (option.IsCollection) {
|
309
|
+
pluralName = "".concat(option.SingularName, "Dxi");
|
310
|
+
}
|
311
|
+
var singularName = option.SingularName || pluralName;
|
312
|
+
var underscoreSingular = inflector.underscore(singularName).split('.').join('_');
|
313
|
+
var underscorePlural = inflector.underscore(pluralName).split('.').join('_');
|
314
|
+
var prefix = "".concat((option.IsCollection ? ITEM_COMPONENT_PREFIX : OPTION_COMPONENT_PREFIX).toLocaleLowerCase(), "_");
|
315
|
+
var underscoreSelector = prefix + (option.IsCollection ? underscoreSingular : underscorePlural);
|
316
|
+
var selector = inflector.dasherize(underscoreSelector);
|
317
|
+
var complexOptionMetadata = {
|
318
|
+
docID: option.DocID,
|
319
|
+
isDeprecated: option.IsDeprecated,
|
320
|
+
className: inflector.camelize(underscoreSelector),
|
321
|
+
selector: selector,
|
322
|
+
optionName: optionName,
|
323
|
+
properties: [],
|
324
|
+
events: [],
|
325
|
+
path: inflector.dasherize(underscorePlural),
|
326
|
+
propertyName: optionName,
|
327
|
+
isCollection: option.IsCollection,
|
328
|
+
hasTemplate: option.Options && option.Options.template && option.Options.template.IsTemplate,
|
329
|
+
collectionNestedComponents: [],
|
330
|
+
imports: [],
|
331
|
+
};
|
332
|
+
var nestedComponents = [complexOptionMetadata];
|
333
|
+
for (var optName in nestedOptions) {
|
334
|
+
var nestedOption = nestedOptions[optName];
|
335
|
+
var typesDescription = this.getTypesDescription(nestedOption);
|
336
|
+
var propertyType = this.getType(typesDescription);
|
337
|
+
if (nestedOption.IsEvent && nestedOption.IsEvent && ((_b = nestedOption.TypeImports) === null || _b === void 0 ? void 0 : _b.length)) {
|
338
|
+
propertyType = "((e: ".concat(nestedOption.TypeImports[0].Name, ") => void)");
|
339
|
+
}
|
340
|
+
var property = {
|
341
|
+
docID: nestedOption.DocID,
|
342
|
+
isDeprecated: nestedOption.IsDeprecated,
|
343
|
+
name: optName,
|
344
|
+
type: propertyType,
|
345
|
+
typesDescription: typesDescription,
|
346
|
+
option: nestedOption,
|
347
|
+
};
|
348
|
+
if (nestedOption.IsCollection) {
|
349
|
+
property.isCollection = true;
|
350
|
+
}
|
351
|
+
complexOptionMetadata.properties.push(property);
|
352
|
+
if (nestedOption.IsChangeable || nestedOption.IsReadonly) {
|
353
|
+
complexOptionMetadata.events.push(this.createEvent(optName, propertyType, nestedOption));
|
354
|
+
}
|
355
|
+
var components = this.generateComplexOptionByType(metadata, nestedOptions[optName], optName, complexTypes, config) || [];
|
356
|
+
nestedComponents = nestedComponents.concat.apply(nestedComponents, components);
|
357
|
+
var ownCollectionNestedComponents = components
|
358
|
+
.filter(function (c) { return complexOptionMetadata
|
359
|
+
.properties
|
360
|
+
.filter(function (p) { return p.name === c.propertyName && p.isCollection; }).length === 1; })
|
361
|
+
.map(function (c) { return ({
|
362
|
+
className: c.className,
|
363
|
+
path: c.path,
|
364
|
+
propertyName: c.propertyName,
|
365
|
+
}); });
|
366
|
+
(_a = complexOptionMetadata.collectionNestedComponents).push.apply(_a, ownCollectionNestedComponents);
|
367
|
+
}
|
368
|
+
complexOptionMetadata.imports = (0, import_helper_1.buildImports)((0, helpers_1.getValues)(nestedOptions), config.widgetPackageName);
|
369
|
+
return nestedComponents;
|
370
|
+
};
|
371
|
+
ComponentMetadataGenerator.prototype.getBaseComponentPath = function (component) {
|
372
|
+
return component.basePath + (component.isCollection ? '-dxi' : '');
|
373
|
+
};
|
374
|
+
ComponentMetadataGenerator.prototype.generateNestedOptions = function (config, metadata) {
|
375
|
+
var _this = this;
|
376
|
+
var normalizedMetadata = metadata
|
377
|
+
.reduce(function (result, component) {
|
378
|
+
var _a, _b, _c, _d;
|
379
|
+
var existingComponent = result.filter(function (c) { return c.className === component.className; })[0];
|
380
|
+
if (!existingComponent) {
|
381
|
+
component.options = component.properties.map(function (p) { return p.option; });
|
382
|
+
result.push(component);
|
383
|
+
}
|
384
|
+
else {
|
385
|
+
existingComponent.properties = (_a = existingComponent.properties)
|
386
|
+
.concat.apply(_a, component.properties).reduce(function (properties, property) {
|
387
|
+
var _a;
|
388
|
+
if (properties.filter(function (p) { return p.name === property.name; }).length === 0) {
|
389
|
+
properties.push(property);
|
390
|
+
}
|
391
|
+
else {
|
392
|
+
var existingProperty = properties.filter(function (p) { return p.name === property.name; })[0];
|
393
|
+
var typesDescription = existingProperty.typesDescription;
|
394
|
+
typesDescription.primitiveTypes = _this.mergeArrayTypes(typesDescription.primitiveTypes, property.typesDescription.primitiveTypes);
|
395
|
+
typesDescription.arrayTypes = _this.mergeArrayTypes(typesDescription.arrayTypes, property.typesDescription.arrayTypes);
|
396
|
+
existingProperty.type = ((_a = existingProperty.option) === null || _a === void 0 ? void 0 : _a.IsEvent)
|
397
|
+
? _this.getEventType(typesDescription, existingProperty.option)
|
398
|
+
: _this.getType(typesDescription);
|
399
|
+
}
|
400
|
+
return properties;
|
401
|
+
}, []);
|
402
|
+
existingComponent.events = (_b = existingComponent.events)
|
403
|
+
.concat.apply(_b, component.events).reduce(function (events, event) {
|
404
|
+
if (events.filter(function (e) { return e.emit === event.emit; }).length === 0) {
|
405
|
+
events.push(event);
|
406
|
+
}
|
407
|
+
return events;
|
408
|
+
}, []);
|
409
|
+
existingComponent.baseClass = existingComponent.baseClass || component.baseClass;
|
410
|
+
existingComponent.basePath = existingComponent.basePath || component.basePath;
|
411
|
+
(_c = existingComponent.collectionNestedComponents).push.apply(_c, component.collectionNestedComponents);
|
412
|
+
(_d = existingComponent.options).push.apply(_d, component.properties.map(function (p) { return p.option; }));
|
413
|
+
}
|
414
|
+
return result;
|
415
|
+
}, []);
|
416
|
+
normalizedMetadata.forEach(function (component) {
|
417
|
+
component.collectionNestedComponents = component.collectionNestedComponents
|
418
|
+
.reduce(function (result, nestedComponent) {
|
419
|
+
if (result.filter(function (c) { return nestedComponent.className === c.className; }).length === 0) {
|
420
|
+
result.push(nestedComponent);
|
421
|
+
}
|
422
|
+
return result;
|
423
|
+
}, []);
|
424
|
+
});
|
425
|
+
normalizedMetadata
|
426
|
+
.reduce(function (result, component) {
|
427
|
+
var existingComponent = result.filter(function (c) { return c.className === component.baseClass; })[0];
|
428
|
+
if (!existingComponent && component.baseClass) {
|
429
|
+
var nestedComponent = {
|
430
|
+
properties: component.properties,
|
431
|
+
events: component.events,
|
432
|
+
className: component.baseClass,
|
433
|
+
path: _this.getBaseComponentPath(component),
|
434
|
+
baseClass: component.isCollection ? 'CollectionNestedOption' : 'NestedOption',
|
435
|
+
basePath: 'devextreme-angular/core',
|
436
|
+
imports: (0, import_helper_1.buildImports)(component.options, config.widgetPackageName),
|
437
|
+
};
|
438
|
+
result.push(nestedComponent);
|
439
|
+
}
|
440
|
+
return result;
|
441
|
+
}, [])
|
442
|
+
.forEach(function (component) {
|
443
|
+
var outputFilePath = path.join(config.outputFolderPath, config.nestedPathPart, config.basePathPart, "".concat(component.path, ".json"));
|
444
|
+
_this.store.write(outputFilePath, normalizeMeta(component));
|
445
|
+
});
|
446
|
+
normalizedMetadata
|
447
|
+
.map(function (component) {
|
448
|
+
if (component.events && !component.events.length) {
|
449
|
+
delete component.events;
|
450
|
+
}
|
451
|
+
if (component.baseClass) {
|
452
|
+
component.inputs = component.properties;
|
453
|
+
delete component.properties;
|
454
|
+
component.basePath = "./base/".concat(_this.getBaseComponentPath(component));
|
455
|
+
component.imports = component.events
|
456
|
+
? component.imports = (0, import_helper_1.buildImports)(component.events.map(function (e) { return e.option; }), config.widgetPackageName)
|
457
|
+
: undefined;
|
458
|
+
}
|
459
|
+
else {
|
460
|
+
component.baseClass = component.isCollection ? 'CollectionNestedOption' : 'NestedOption';
|
461
|
+
component.basePath = 'devextreme-angular/core';
|
462
|
+
component.hasSimpleBaseClass = true;
|
463
|
+
component.imports = (0, import_helper_1.buildImports)(component.options, config.widgetPackageName);
|
464
|
+
}
|
465
|
+
return component;
|
466
|
+
})
|
467
|
+
.forEach(function (component) {
|
468
|
+
var outputFilePath = path.join(config.outputFolderPath, config.nestedPathPart, "".concat(component.path, ".json"));
|
469
|
+
_this.store.write(outputFilePath, normalizeMeta(component));
|
470
|
+
});
|
471
|
+
};
|
472
|
+
return ComponentMetadataGenerator;
|
473
|
+
}());
|
474
|
+
exports.ComponentMetadataGenerator = ComponentMetadataGenerator;
|
475
|
+
function normalizeMeta(meta) {
|
476
|
+
var result = __assign(__assign({}, meta), { properties: meta.properties && meta.properties.map(function (_a) {
|
477
|
+
var option = _a.option, rest = __rest(_a, ["option"]);
|
478
|
+
return (__assign({}, rest));
|
479
|
+
}), events: meta.events && meta.events.map(function (_a) {
|
480
|
+
var option = _a.option, rest = __rest(_a, ["option"]);
|
481
|
+
return (__assign({}, rest));
|
482
|
+
}) });
|
483
|
+
if (!result.imports || !result.imports.length) {
|
484
|
+
result.imports = undefined;
|
485
|
+
delete result.imports;
|
486
|
+
}
|
487
|
+
(0, logger_1.default)(result);
|
488
|
+
return result;
|
489
|
+
}
|
490
|
+
//# sourceMappingURL=metadata-generator.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"metadata-generator.js","sourceRoot":"","sources":["../../../ts/angular-components-generator/metadata-generator.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
export interface ImportName {
|
2
|
+
Name: string;
|
3
|
+
Alias?: string;
|
4
|
+
}
|
5
|
+
export interface Import extends ImportName {
|
6
|
+
Path: string;
|
7
|
+
}
|
8
|
+
export interface NestedOptions {
|
9
|
+
[optionName: string]: Option;
|
10
|
+
}
|
11
|
+
export interface Option {
|
12
|
+
PrimitiveTypes?: string[];
|
13
|
+
ItemPrimitiveTypes: string[];
|
14
|
+
TypeImports?: Import[];
|
15
|
+
IsDataSource?: boolean;
|
16
|
+
IsPromise?: boolean;
|
17
|
+
IsDeprecated?: boolean;
|
18
|
+
IsCollection?: boolean;
|
19
|
+
IsChangeable?: boolean;
|
20
|
+
IsTemplate?: boolean;
|
21
|
+
IsReadonly?: boolean;
|
22
|
+
SingularName?: string;
|
23
|
+
IsEvent?: boolean;
|
24
|
+
IsFunc?: boolean;
|
25
|
+
DocID: string;
|
26
|
+
TsType: {
|
27
|
+
Name: string;
|
28
|
+
File: string;
|
29
|
+
};
|
30
|
+
Options: NestedOptions;
|
31
|
+
}
|
32
|
+
export interface Metadata {
|
33
|
+
Widgets: {
|
34
|
+
[widgetName: string]: {
|
35
|
+
DocID: string;
|
36
|
+
Module: string;
|
37
|
+
IsTranscludedContent?: boolean;
|
38
|
+
IsExtensionComponent?: boolean;
|
39
|
+
IsDeprecated?: boolean;
|
40
|
+
Options: {
|
41
|
+
[optionName: string]: Option;
|
42
|
+
};
|
43
|
+
OptionsTypeParams: string[];
|
44
|
+
Reexports: string[];
|
45
|
+
};
|
46
|
+
};
|
47
|
+
ExtraObjects: any[];
|
48
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"metadata-model.js","sourceRoot":"","sources":["../../../ts/angular-components-generator/metadata-model.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ModuleFacadeGenerator = void 0;
|
4
|
+
var fs = require("fs");
|
5
|
+
var path = require("path");
|
6
|
+
var inflector = require("inflector-js");
|
7
|
+
var logger_1 = require("./logger");
|
8
|
+
var ModuleFacadeGenerator = (function () {
|
9
|
+
function ModuleFacadeGenerator() {
|
10
|
+
this.encoding = 'utf8';
|
11
|
+
}
|
12
|
+
ModuleFacadeGenerator.prototype.prepareModuleName = function (fileName) {
|
13
|
+
var result = fileName.replace(/-/g, '_');
|
14
|
+
result = inflector.camelize(result);
|
15
|
+
result = "Dx".concat(result, "Module");
|
16
|
+
return result;
|
17
|
+
};
|
18
|
+
ModuleFacadeGenerator.prototype.generate = function (config) {
|
19
|
+
var _this = this;
|
20
|
+
Object.keys(config.moduleFacades).forEach(function (moduleFilePath) {
|
21
|
+
(0, logger_1.default)("Generate facade: ".concat(moduleFilePath));
|
22
|
+
var facadeConfig = config.moduleFacades[moduleFilePath];
|
23
|
+
var moduleNamesString = '';
|
24
|
+
var importModuleString = '';
|
25
|
+
facadeConfig.sourceComponentDirectories.forEach(function (directoryPath) {
|
26
|
+
(0, logger_1.default)("List directory: ".concat(directoryPath));
|
27
|
+
var files = fs.readdirSync(directoryPath);
|
28
|
+
files
|
29
|
+
.filter(function (fileName) { return !fs.lstatSync(path.join(directoryPath, fileName)).isFile() && fileName !== 'nested'; })
|
30
|
+
.forEach(function (fileName) {
|
31
|
+
var moduleName = _this.prepareModuleName(fileName);
|
32
|
+
moduleNamesString += "\n ".concat(moduleName, ",");
|
33
|
+
importModuleString += "import { ".concat(moduleName, " } from 'devextreme-angular/ui/").concat(fileName, "';\n");
|
34
|
+
});
|
35
|
+
});
|
36
|
+
Object.keys(facadeConfig.additionalImports).forEach(function (importName) {
|
37
|
+
moduleNamesString += "\n ".concat(importName, ",");
|
38
|
+
importModuleString += "".concat(facadeConfig.additionalImports[importName], ";\n");
|
39
|
+
});
|
40
|
+
moduleNamesString = moduleNamesString.slice(0, -1);
|
41
|
+
importModuleString = importModuleString.slice(0, -1);
|
42
|
+
var resultContent = "import { NgModule } from '@angular/core';\n".concat(importModuleString, "\n\n@NgModule({\n imports: [").concat(moduleNamesString, "\n ],\n exports: [").concat(moduleNamesString, "\n ]\n})\nexport class DevExtremeModule {}\n");
|
43
|
+
(0, logger_1.default)("Write result to ".concat(moduleFilePath));
|
44
|
+
fs.writeFileSync(moduleFilePath, resultContent, { encoding: _this.encoding });
|
45
|
+
});
|
46
|
+
};
|
47
|
+
return ModuleFacadeGenerator;
|
48
|
+
}());
|
49
|
+
exports.ModuleFacadeGenerator = ModuleFacadeGenerator;
|
50
|
+
//# sourceMappingURL=module-facade-generator.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"module-facade-generator.js","sourceRoot":"","sources":["../../../ts/angular-components-generator/module-facade-generator.ts"],"names":[],"mappings":";;;AAAA,uBAAyB;AACzB,2BAA6B;AAC7B,wCAA0C;AAC1C,mCAA8B;AAE9B;IAAA;QACU,aAAQ,GAAmB,MAAM,CAAC;IAsD5C,CAAC;IAnDC,iDAAiB,GAAjB,UAAkB,QAAgB;QAChC,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,GAAG,YAAK,MAAM,WAAQ,CAAC;QAE7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wCAAQ,GAAR,UAAS,MAAM;QAAf,iBA0CC;QAzCC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAC,cAAc;YACvD,IAAA,gBAAM,EAAC,2BAAoB,cAAc,CAAE,CAAC,CAAC;YAC7C,IAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC1D,IAAI,iBAAiB,GAAG,EAAE,CAAC;YAC3B,IAAI,kBAAkB,GAAG,EAAE,CAAC;YAE5B,YAAY,CAAC,0BAA0B,CAAC,OAAO,CAAC,UAAC,aAAa;gBAC5D,IAAA,gBAAM,EAAC,0BAAmB,aAAa,CAAE,CAAC,CAAC;gBAC3C,IAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBAE5C,KAAK;qBACF,MAAM,CAAC,UAAC,QAAQ,IAAK,OAAA,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,QAAQ,KAAK,QAAQ,EAAnF,CAAmF,CAAC;qBACzG,OAAO,CAAC,UAAC,QAAQ;oBAChB,IAAM,UAAU,GAAG,KAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBAEpD,iBAAiB,IAAI,gBAAS,UAAU,MAAG,CAAC;oBAC5C,kBAAkB,IAAI,mBAAY,UAAU,4CAAkC,QAAQ,SAAM,CAAC;gBAC/F,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,UAAC,UAAU;gBAC7D,iBAAiB,IAAI,gBAAS,UAAU,MAAG,CAAC;gBAC5C,kBAAkB,IAAI,UAAG,YAAY,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAK,CAAC;YAC3E,CAAC,CAAC,CAAC;YAEH,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnD,kBAAkB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAErD,IAAM,aAAa,GAAG,qDAC1B,kBAAkB,4CAGJ,iBAAiB,qCACjB,iBAAiB,oDAGhC,CAAC;YAEI,IAAA,gBAAM,EAAC,0BAAmB,cAAc,CAAE,CAAC,CAAC;YAC5C,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;IACL,CAAC;IACH,4BAAC;AAAD,CAAC,AAvDD,IAuDC;AAvDY,sDAAqB"}
|