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.
Files changed (195) hide show
  1. package/bin/DevExtreme.Declarations.Discoverer.dll +0 -0
  2. package/bin/DevExtreme.Declarations.Discoverer.exe +0 -0
  3. package/bin/DevExtreme.Declarations.IntegrityValidator.dll +0 -0
  4. package/bin/DevExtreme.Declarations.IntegrityValidator.exe +0 -0
  5. package/bin/DevExtreme.Declarations.dll +0 -0
  6. package/bin/DevExtreme.Descriptions.Injector.dll +0 -0
  7. package/bin/DevExtreme.Descriptions.Injector.exe +0 -0
  8. package/bin/DevExtreme.Infrastructure.dll +0 -0
  9. package/bin/DevExtreme.IntegrationDataGenerator.dll +0 -0
  10. package/bin/DevExtreme.IntegrationDataGenerator.exe +0 -0
  11. package/bin/DevExtreme.NgSmdGenerator.dll +0 -0
  12. package/bin/DevExtreme.NgSmdGenerator.exe +0 -0
  13. package/bin/DevExtreme.SmdCommon.dll +0 -0
  14. package/bin/DevExtreme.StrongMetaDataGenerator.dll +0 -0
  15. package/bin/DevExtreme.StrongMetaDataGenerator.exe +0 -0
  16. package/bin/DevExtreme.Topics.ExtraFilesGenerator.dll +0 -0
  17. package/bin/DevExtreme.Topics.ExtraFilesGenerator.exe +0 -0
  18. package/bin/DevExtreme.Topics.Generator.dll +0 -0
  19. package/bin/DevExtreme.Topics.Generator.exe +0 -0
  20. package/bin/DevExtreme.Topics.ModulesGuideValidator.dll +0 -0
  21. package/bin/DevExtreme.Topics.ModulesGuideValidator.exe +0 -0
  22. package/bin/DevExtreme.Topics.Validation.dll +0 -0
  23. package/bin/DevExtreme.Topics.Validation.exe +0 -0
  24. package/bin/DevExtreme.Topics.dll +0 -0
  25. package/bin/DevExtreme.WebSite.ContentMapCreator.dll +0 -0
  26. package/bin/DevExtreme.WebSite.ContentMapCreator.exe +0 -0
  27. package/bin/DevExtreme.WebSite.LinksConverter.dll +0 -0
  28. package/bin/DevExtreme.WebSite.LinksConverter.exe +0 -0
  29. package/bin/DevExtreme.WebSite.SyntaxDataGenerator.dll +0 -0
  30. package/bin/DevExtreme.WebSite.SyntaxDataGenerator.exe +0 -0
  31. package/bin/Microsoft.Extensions.DependencyInjection.Abstractions.dll +0 -0
  32. package/bin/Microsoft.Extensions.DependencyInjection.dll +0 -0
  33. package/bin/NLog.dll +0 -0
  34. package/bin/Newtonsoft.Json.dll +0 -0
  35. package/bin/System.IO.Abstractions.dll +0 -0
  36. package/cli.d.ts +2 -0
  37. package/cli.js +50 -0
  38. package/cli.js.map +1 -0
  39. package/index.d.ts +9 -0
  40. package/index.js +18 -47
  41. package/index.js.map +1 -1
  42. package/integration-data-model.d.ts +76 -0
  43. package/integration-data-model.js +3 -0
  44. package/integration-data-model.js.map +1 -0
  45. package/package.json +28 -29
  46. package/ts/angular-components-generator/common-reexports-generator.d.ts +4 -0
  47. package/ts/angular-components-generator/common-reexports-generator.js +38 -0
  48. package/ts/angular-components-generator/common-reexports-generator.js.map +1 -0
  49. package/ts/angular-components-generator/component-names-generator.d.ts +8 -0
  50. package/ts/angular-components-generator/component-names-generator.js +31 -0
  51. package/ts/angular-components-generator/component-names-generator.js.map +1 -0
  52. package/ts/angular-components-generator/dot-generator.d.ts +8 -0
  53. package/ts/angular-components-generator/dot-generator.js +84 -0
  54. package/ts/angular-components-generator/dot-generator.js.map +1 -0
  55. package/ts/angular-components-generator/facade-generator.d.ts +4 -0
  56. package/ts/angular-components-generator/facade-generator.js +50 -0
  57. package/ts/angular-components-generator/facade-generator.js.map +1 -0
  58. package/ts/angular-components-generator/helpers.d.ts +2 -0
  59. package/ts/angular-components-generator/helpers.js +12 -0
  60. package/ts/angular-components-generator/helpers.js.map +1 -0
  61. package/ts/angular-components-generator/import-helper.d.ts +6 -0
  62. package/ts/angular-components-generator/import-helper.js +73 -0
  63. package/ts/angular-components-generator/import-helper.js.map +1 -0
  64. package/ts/angular-components-generator/logger.d.ts +1 -0
  65. package/ts/angular-components-generator/logger.js +16 -0
  66. package/ts/angular-components-generator/logger.js.map +1 -0
  67. package/ts/angular-components-generator/metadata-generator.d.ts +27 -0
  68. package/ts/angular-components-generator/metadata-generator.js +490 -0
  69. package/ts/angular-components-generator/metadata-generator.js.map +1 -0
  70. package/ts/angular-components-generator/metadata-model.d.ts +48 -0
  71. package/ts/angular-components-generator/metadata-model.js +3 -0
  72. package/ts/angular-components-generator/metadata-model.js.map +1 -0
  73. package/ts/angular-components-generator/module-facade-generator.d.ts +5 -0
  74. package/ts/angular-components-generator/module-facade-generator.js +50 -0
  75. package/ts/angular-components-generator/module-facade-generator.js.map +1 -0
  76. package/ts/angular-components-generator/templates/base-nested-component.tst +20 -0
  77. package/ts/angular-components-generator/templates/component.tst +253 -0
  78. package/ts/angular-components-generator/templates/nested-component.tst +140 -0
  79. package/ts/bundler/bundler.d.ts +6 -0
  80. package/ts/bundler/bundler.js +43 -45
  81. package/ts/bundler/bundler.js.map +1 -1
  82. package/ts/collapser/collapser.d.ts +4 -0
  83. package/ts/collapser/collapser.js +53 -49
  84. package/ts/collapser/collapser.js.map +1 -1
  85. package/ts/common/common-resolving.d.ts +11 -0
  86. package/ts/common/common-resolving.js +7 -7
  87. package/ts/common/common-resolving.js.map +1 -1
  88. package/ts/common/id.d.ts +12 -0
  89. package/ts/common/id.js +24 -20
  90. package/ts/common/id.js.map +1 -1
  91. package/ts/common/tags/comparing.d.ts +3 -0
  92. package/ts/common/tags/generating.d.ts +4 -0
  93. package/ts/common/tags/generating.js +16 -12
  94. package/ts/common/tags/generating.js.map +1 -1
  95. package/ts/common/tags/merging.d.ts +12 -0
  96. package/ts/common/tags/merging.js +14 -14
  97. package/ts/common/tags/merging.js.map +1 -1
  98. package/ts/common/tags/parameter-field-tag.d.ts +7 -0
  99. package/ts/common/tags/parameter-field-tag.js +2 -2
  100. package/ts/common/tags/parameter-field-tag.js.map +1 -1
  101. package/ts/common/tags.d.ts +12 -0
  102. package/ts/common/tags.js +24 -21
  103. package/ts/common/tags.js.map +1 -1
  104. package/ts/common/ts-type-resolving.d.ts +16 -0
  105. package/ts/common/ts-type-resolving.js +89 -89
  106. package/ts/common/ts-type-resolving.js.map +1 -1
  107. package/ts/common/ts-utils.d.ts +35 -0
  108. package/ts/common/ts-utils.js +59 -31
  109. package/ts/common/ts-utils.js.map +1 -1
  110. package/ts/common/type-resolving.d.ts +42 -0
  111. package/ts/common/type-resolving.js +52 -52
  112. package/ts/common/type-resolving.js.map +1 -1
  113. package/ts/common/utils.d.ts +22 -0
  114. package/ts/common/utils.js +5 -5
  115. package/ts/common/utils.js.map +1 -1
  116. package/ts/component-exports-generator/generator.d.ts +3 -0
  117. package/ts/component-exports-generator/generator.js +14 -14
  118. package/ts/component-exports-generator/generator.js.map +1 -1
  119. package/ts/components-generation/common-reexports-generator.d.ts +6 -0
  120. package/ts/components-generation/common-reexports-generator.js +27 -0
  121. package/ts/components-generation/common-reexports-generator.js.map +1 -0
  122. package/ts/components-generation/reexports-generator.d.ts +10 -0
  123. package/ts/components-generation/reexports-generator.js +18 -0
  124. package/ts/components-generation/reexports-generator.js.map +1 -0
  125. package/ts/components-generation/template.d.ts +22 -0
  126. package/ts/components-generation/template.js +57 -0
  127. package/ts/components-generation/template.js.map +1 -0
  128. package/ts/discoverer/data-model.d.ts +105 -0
  129. package/ts/discoverer/discovering-error.d.ts +4 -0
  130. package/ts/discoverer/discovering-error.js +2 -4
  131. package/ts/discoverer/discovering-error.js.map +1 -1
  132. package/ts/discoverer/discovering.d.ts +4 -0
  133. package/ts/discoverer/discovering.js +7 -7
  134. package/ts/discoverer/discovering.js.map +1 -1
  135. package/ts/discoverer/parsing/enum-collecting.d.ts +6 -0
  136. package/ts/discoverer/parsing/enum-collecting.js +19 -15
  137. package/ts/discoverer/parsing/enum-collecting.js.map +1 -1
  138. package/ts/discoverer/parsing/file-reader.d.ts +2 -0
  139. package/ts/discoverer/parsing/file-reader.js +8 -2
  140. package/ts/discoverer/parsing/file-reader.js.map +1 -1
  141. package/ts/discoverer/parsing/widget-parsing.d.ts +11 -0
  142. package/ts/discoverer/parsing/widget-parsing.js +15 -11
  143. package/ts/discoverer/parsing/widget-parsing.js.map +1 -1
  144. package/ts/discoverer/parsing.d.ts +29 -0
  145. package/ts/discoverer/parsing.js +60 -56
  146. package/ts/discoverer/parsing.js.map +1 -1
  147. package/ts/discoverer/types.d.ts +20 -0
  148. package/ts/logging.d.ts +16 -0
  149. package/ts/logging.js +14 -14
  150. package/ts/logging.js.map +1 -1
  151. package/ts/modules-meta-generator/modules-meta-generator.d.ts +3 -0
  152. package/ts/modules-meta-generator/modules-meta-generator.js +9 -10
  153. package/ts/modules-meta-generator/modules-meta-generator.js.map +1 -1
  154. package/ts/react-components-generator/component-generator.d.ts +62 -0
  155. package/ts/react-components-generator/component-generator.js +412 -0
  156. package/ts/react-components-generator/component-generator.js.map +1 -0
  157. package/ts/react-components-generator/converter.d.ts +3 -0
  158. package/ts/react-components-generator/converter.js +59 -0
  159. package/ts/react-components-generator/converter.js.map +1 -0
  160. package/ts/react-components-generator/generator.d.ts +60 -0
  161. package/ts/react-components-generator/generator.js +382 -0
  162. package/ts/react-components-generator/generator.js.map +1 -0
  163. package/ts/react-components-generator/helpers.d.ts +11 -0
  164. package/ts/react-components-generator/helpers.js +53 -0
  165. package/ts/react-components-generator/helpers.js.map +1 -0
  166. package/ts/react-components-generator/import-overrides.json +108 -0
  167. package/ts/react-components-generator/index-generator.d.ts +3 -0
  168. package/ts/react-components-generator/index-generator.js +22 -0
  169. package/ts/react-components-generator/index-generator.js.map +1 -0
  170. package/ts/scripts/args.d.ts +37 -0
  171. package/ts/scripts/args.js +7 -7
  172. package/ts/scripts/args.js.map +1 -1
  173. package/ts/scripts/helpers.d.ts +10 -0
  174. package/ts/scripts/helpers.js +12 -12
  175. package/ts/scripts/helpers.js.map +1 -1
  176. package/ts/scripts/tools.d.ts +17 -0
  177. package/ts/scripts/tools.js +30 -30
  178. package/ts/scripts/tools.js.map +1 -1
  179. package/ts/vue-components-generator/component-generator.d.ts +40 -0
  180. package/ts/vue-components-generator/component-generator.js +197 -0
  181. package/ts/vue-components-generator/component-generator.js.map +1 -0
  182. package/ts/vue-components-generator/converter.d.ts +3 -0
  183. package/ts/vue-components-generator/converter.js +45 -0
  184. package/ts/vue-components-generator/converter.js.map +1 -0
  185. package/ts/vue-components-generator/generator.d.ts +11 -0
  186. package/ts/vue-components-generator/generator.js +120 -0
  187. package/ts/vue-components-generator/generator.js.map +1 -0
  188. package/ts/vue-components-generator/helpers.d.ts +6 -0
  189. package/ts/vue-components-generator/helpers.js +30 -0
  190. package/ts/vue-components-generator/helpers.js.map +1 -0
  191. package/bin/integration-data-model.ts +0 -86
  192. package/bin/internal-tools-log.txt +0 -21
  193. package/integration-data-model.ts +0 -86
  194. package/ts/discoverer/parsing/file-reader.tests.js +0 -24
  195. 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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=metadata-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-model.js","sourceRoot":"","sources":["../../../ts/angular-components-generator/metadata-model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export declare class ModuleFacadeGenerator {
2
+ private encoding;
3
+ prepareModuleName(fileName: string): string;
4
+ generate(config: any): void;
5
+ }
@@ -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"}