@siliconst/metaui 1.4.13 → 1.4.17

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 (184) hide show
  1. package/package.json +1 -1
  2. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +50 -3
  3. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
  4. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +1 -1
  5. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
  6. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
  7. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
  8. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +57 -4
  9. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +44 -2
  10. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
  11. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +4 -0
  12. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
  13. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
  14. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
  15. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +51 -4
  16. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js +42 -5
  17. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -1
  18. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +9 -2
  19. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -1
  20. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js +1 -1
  21. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -1
  22. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +44 -5
  23. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -1
  24. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -1
  25. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +2 -2
  26. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +1 -0
  27. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  28. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  29. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  30. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  31. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +1 -0
  32. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry-dbg.js +47 -0
  33. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry-dbg.js.map +1 -0
  34. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.d.ts +23 -0
  35. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.d.ts.map +1 -0
  36. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.js +2 -0
  37. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.js.map +1 -0
  38. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.ts +45 -0
  39. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +17 -0
  40. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  41. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +10 -1
  42. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  43. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
  44. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  45. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +19 -1
  46. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
  47. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +7 -0
  48. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
  49. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +9 -0
  50. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin-dbg.js +2 -0
  51. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin-dbg.js.map +1 -0
  52. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.d.ts +23 -0
  53. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.d.ts.map +1 -0
  54. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.js +2 -0
  55. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.js.map +1 -0
  56. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.ts +23 -0
  57. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +6 -1
  58. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  59. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
  60. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js +1 -1
  61. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  62. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +6 -1
  63. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +29 -20
  64. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  65. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +3 -20
  66. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
  67. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
  68. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +1 -1
  69. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
  70. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +3 -3
  71. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +1 -0
  72. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
  73. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
  74. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
  75. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
  76. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +1 -0
  77. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +1 -0
  78. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
  79. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
  80. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
  81. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
  82. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +1 -0
  83. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +1 -0
  84. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
  85. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
  86. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
  87. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
  88. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +1 -0
  89. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +1 -0
  90. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
  91. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
  92. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
  93. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
  94. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +1 -0
  95. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +1 -0
  96. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
  97. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -1
  98. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
  99. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
  100. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +1 -0
  101. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js +1 -0
  102. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
  103. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -1
  104. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js +1 -1
  105. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
  106. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +1 -0
  107. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js +30 -17
  108. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js.map +1 -1
  109. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts.map +1 -1
  110. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js +1 -1
  111. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js.map +1 -1
  112. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.ts +33 -15
  113. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +1 -0
  114. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
  115. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
  116. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
  117. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
  118. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +1 -0
  119. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +35 -11
  120. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
  121. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts +4 -4
  122. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
  123. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
  124. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
  125. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +38 -14
  126. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +1 -0
  127. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
  128. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -1
  129. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
  130. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
  131. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +1 -0
  132. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +1 -0
  133. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
  134. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -1
  135. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
  136. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
  137. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +1 -0
  138. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js +79 -0
  139. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js.map +1 -0
  140. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts +35 -0
  141. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts.map +1 -0
  142. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js +2 -0
  143. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js.map +1 -0
  144. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.ts +80 -0
  145. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +1 -0
  146. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
  147. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
  148. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
  149. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
  150. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +1 -0
  151. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +1 -0
  152. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
  153. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
  154. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
  155. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
  156. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +1 -0
  157. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder-dbg.js +226 -0
  158. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder-dbg.js.map +1 -0
  159. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.d.ts +63 -0
  160. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.d.ts.map +1 -0
  161. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.js +2 -0
  162. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.js.map +1 -0
  163. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.ts +233 -0
  164. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver-dbg.js +43 -0
  165. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver-dbg.js.map +1 -0
  166. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.d.ts +15 -0
  167. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.d.ts.map +1 -0
  168. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.js +2 -0
  169. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.js.map +1 -0
  170. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.ts +37 -0
  171. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper-dbg.js +37 -0
  172. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper-dbg.js.map +1 -0
  173. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.d.ts +18 -0
  174. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.d.ts.map +1 -0
  175. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.js +2 -0
  176. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.js.map +1 -0
  177. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.ts +28 -0
  178. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper-dbg.js +84 -0
  179. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper-dbg.js.map +1 -0
  180. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.d.ts +27 -0
  181. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.d.ts.map +1 -0
  182. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.js +2 -0
  183. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.js.map +1 -0
  184. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.ts +80 -0
@@ -0,0 +1,43 @@
1
+ sap.ui.define(["../utils/Logger"], function (___utils_Logger) {
2
+ "use strict";
3
+
4
+ /**
5
+ * @file SwaggerRefResolver.ts
6
+ * @description Utility class for resolving local $ref pointers within an OpenAPI document.
7
+ */
8
+ const Logger = ___utils_Logger["Logger"];
9
+ class SwaggerRefResolver {
10
+ /**
11
+ * Recursively traverses a local JSON Pointer $ref path (e.g., '#/components/schemas/Pet')
12
+ * and extracts the target object from the Swagger root document.
13
+ * External URLs or invalid references are safely ignored.
14
+ *
15
+ * @param {string} refUrl The $ref string path.
16
+ * @param {any} swaggerRoot The root OpenAPI document to query against.
17
+ * @returns {any} The resolved schema object, or null if unresolvable.
18
+ */
19
+ static resolve(refUrl, swaggerRoot) {
20
+ if (!refUrl || !refUrl.startsWith("#/")) {
21
+ Logger.debug(`[MetaUI SwaggerBuilder] Ignoring non-local or empty $ref: ${refUrl}`, "SwaggerBuilder");
22
+ return null; // Ignore external URLs per architectural rules
23
+ }
24
+ const pathSegments = refUrl.substring(2).split("/");
25
+ let current = swaggerRoot;
26
+ for (const segment of pathSegments) {
27
+ if (current && typeof current === "object" && segment in current) {
28
+ current = current[segment];
29
+ } else {
30
+ Logger.error(`[MetaUI SwaggerBuilder] Failed to resolve local $ref: ${refUrl}`, null, "SwaggerBuilder");
31
+ return null;
32
+ }
33
+ }
34
+ return current;
35
+ }
36
+ }
37
+ var __exports = {
38
+ __esModule: true
39
+ };
40
+ __exports.SwaggerRefResolver = SwaggerRefResolver;
41
+ return __exports;
42
+ });
43
+ //# sourceMappingURL=SwaggerRefResolver-dbg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwaggerRefResolver-dbg.js","names":["Logger","___utils_Logger","SwaggerRefResolver","resolve","refUrl","swaggerRoot","startsWith","debug","pathSegments","substring","split","current","segment","error","__exports","__esModule"],"sources":["SwaggerRefResolver.ts"],"sourcesContent":["/**\n * @file SwaggerRefResolver.ts\n * @description Utility class for resolving local $ref pointers within an OpenAPI document.\n */\nimport { Logger } from \"../utils/Logger\";\n\nexport class SwaggerRefResolver {\n /**\n * Recursively traverses a local JSON Pointer $ref path (e.g., '#/components/schemas/Pet')\n * and extracts the target object from the Swagger root document.\n * External URLs or invalid references are safely ignored.\n * \n * @param {string} refUrl The $ref string path.\n * @param {any} swaggerRoot The root OpenAPI document to query against.\n * @returns {any} The resolved schema object, or null if unresolvable.\n */\n public static resolve(refUrl: string, swaggerRoot: any): any {\n if (!refUrl || !refUrl.startsWith(\"#/\")) {\n Logger.debug(`[MetaUI SwaggerBuilder] Ignoring non-local or empty $ref: ${refUrl}`, \"SwaggerBuilder\");\n return null; // Ignore external URLs per architectural rules\n }\n\n const pathSegments = refUrl.substring(2).split(\"/\");\n let current = swaggerRoot;\n\n for (const segment of pathSegments) {\n if (current && typeof current === \"object\" && segment in current) {\n current = current[segment];\n } else {\n Logger.error(`[MetaUI SwaggerBuilder] Failed to resolve local $ref: ${refUrl}`, null, \"SwaggerBuilder\");\n return null;\n }\n }\n\n return current;\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAISA,MAAM,GAAAC,eAAA;EAER,MAAMC,kBAAkB,CAAC;IAC5B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI,OAAcC,OAAOA,CAACC,MAAc,EAAEC,WAAgB,EAAO;MACzD,IAAI,CAACD,MAAM,IAAI,CAACA,MAAM,CAACE,UAAU,CAAC,IAAI,CAAC,EAAE;QACrCN,MAAM,CAACO,KAAK,CAAC,6DAA6DH,MAAM,EAAE,EAAE,gBAAgB,CAAC;QACrG,OAAO,IAAI,CAAC,CAAC;MACjB;MAEA,MAAMI,YAAY,GAAGJ,MAAM,CAACK,SAAS,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC;MACnD,IAAIC,OAAO,GAAGN,WAAW;MAEzB,KAAK,MAAMO,OAAO,IAAIJ,YAAY,EAAE;QAChC,IAAIG,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAIC,OAAO,IAAID,OAAO,EAAE;UAC9DA,OAAO,GAAGA,OAAO,CAACC,OAAO,CAAC;QAC9B,CAAC,MAAM;UACHZ,MAAM,CAACa,KAAK,CAAC,yDAAyDT,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,CAAC;UACvG,OAAO,IAAI;QACf;MACJ;MAEA,OAAOO,OAAO;IAClB;EACJ;EAAC,IAAAG,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAZ,kBAAA,GAAAA,kBAAA;EAAA,OAAAY,SAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ declare module "nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver" {
2
+ export class SwaggerRefResolver {
3
+ /**
4
+ * Recursively traverses a local JSON Pointer $ref path (e.g., '#/components/schemas/Pet')
5
+ * and extracts the target object from the Swagger root document.
6
+ * External URLs or invalid references are safely ignored.
7
+ *
8
+ * @param {string} refUrl The $ref string path.
9
+ * @param {any} swaggerRoot The root OpenAPI document to query against.
10
+ * @returns {any} The resolved schema object, or null if unresolvable.
11
+ */
12
+ static resolve(refUrl: string, swaggerRoot: any): any;
13
+ }
14
+ }
15
+ //# sourceMappingURL=SwaggerRefResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwaggerRefResolver.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,uDAAuD,CAAC;IAOvE,MAAa,kBAAkB;QAC3B;;;;;;;;WAQG;eACW,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,GAAG;KAoB/D;CAEA"}
@@ -0,0 +1,2 @@
1
+ sap.ui.define(["../utils/Logger"],function(e){"use strict";const r=e["Logger"];class t{static resolve(e,t){if(!e||!e.startsWith("#/")){r.debug(`[MetaUI SwaggerBuilder] Ignoring non-local or empty $ref: ${e}`,"SwaggerBuilder");return null}const l=e.substring(2).split("/");let o=t;for(const t of l){if(o&&typeof o==="object"&&t in o){o=o[t]}else{r.error(`[MetaUI SwaggerBuilder] Failed to resolve local $ref: ${e}`,null,"SwaggerBuilder");return null}}return o}}var l={__esModule:true};l.SwaggerRefResolver=t;return l});
2
+ //# sourceMappingURL=SwaggerRefResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwaggerRefResolver.js","names":["Logger","___utils_Logger","SwaggerRefResolver","resolve","refUrl","swaggerRoot","startsWith","debug","pathSegments","substring","split","current","segment","error","__exports","__esModule"],"sources":["SwaggerRefResolver.ts"],"sourcesContent":["/**\n * @file SwaggerRefResolver.ts\n * @description Utility class for resolving local $ref pointers within an OpenAPI document.\n */\nimport { Logger } from \"../utils/Logger\";\n\nexport class SwaggerRefResolver {\n /**\n * Recursively traverses a local JSON Pointer $ref path (e.g., '#/components/schemas/Pet')\n * and extracts the target object from the Swagger root document.\n * External URLs or invalid references are safely ignored.\n * \n * @param {string} refUrl The $ref string path.\n * @param {any} swaggerRoot The root OpenAPI document to query against.\n * @returns {any} The resolved schema object, or null if unresolvable.\n */\n public static resolve(refUrl: string, swaggerRoot: any): any {\n if (!refUrl || !refUrl.startsWith(\"#/\")) {\n Logger.debug(`[MetaUI SwaggerBuilder] Ignoring non-local or empty $ref: ${refUrl}`, \"SwaggerBuilder\");\n return null; // Ignore external URLs per architectural rules\n }\n\n const pathSegments = refUrl.substring(2).split(\"/\");\n let current = swaggerRoot;\n\n for (const segment of pathSegments) {\n if (current && typeof current === \"object\" && segment in current) {\n current = current[segment];\n } else {\n Logger.error(`[MetaUI SwaggerBuilder] Failed to resolve local $ref: ${refUrl}`, null, \"SwaggerBuilder\");\n return null;\n }\n }\n\n return current;\n }\n}\n"],"mappings":"2DAAA,MAISA,EAAMC,EAAA,UAER,MAAMC,EAUT,cAAcC,CAAQC,EAAgBC,GAClC,IAAKD,IAAWA,EAAOE,WAAW,MAAO,CACrCN,EAAOO,MAAM,6DAA6DH,IAAU,kBACpF,OAAO,IACX,CAEA,MAAMI,EAAeJ,EAAOK,UAAU,GAAGC,MAAM,KAC/C,IAAIC,EAAUN,EAEd,IAAK,MAAMO,KAAWJ,EAAc,CAChC,GAAIG,UAAkBA,IAAY,UAAYC,KAAWD,EAAS,CAC9DA,EAAUA,EAAQC,EACtB,KAAO,CACHZ,EAAOa,MAAM,yDAAyDT,IAAU,KAAM,kBACtF,OAAO,IACX,CACJ,CAEA,OAAOO,CACX,EACH,IAAAG,EAAA,CAAAC,WAAA,MAAAD,EAAAZ,qBAAA,OAAAY,CAAA","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @file SwaggerRefResolver.ts
3
+ * @description Utility class for resolving local $ref pointers within an OpenAPI document.
4
+ */
5
+ import { Logger } from "../utils/Logger";
6
+
7
+ export class SwaggerRefResolver {
8
+ /**
9
+ * Recursively traverses a local JSON Pointer $ref path (e.g., '#/components/schemas/Pet')
10
+ * and extracts the target object from the Swagger root document.
11
+ * External URLs or invalid references are safely ignored.
12
+ *
13
+ * @param {string} refUrl The $ref string path.
14
+ * @param {any} swaggerRoot The root OpenAPI document to query against.
15
+ * @returns {any} The resolved schema object, or null if unresolvable.
16
+ */
17
+ public static resolve(refUrl: string, swaggerRoot: any): any {
18
+ if (!refUrl || !refUrl.startsWith("#/")) {
19
+ Logger.debug(`[MetaUI SwaggerBuilder] Ignoring non-local or empty $ref: ${refUrl}`, "SwaggerBuilder");
20
+ return null; // Ignore external URLs per architectural rules
21
+ }
22
+
23
+ const pathSegments = refUrl.substring(2).split("/");
24
+ let current = swaggerRoot;
25
+
26
+ for (const segment of pathSegments) {
27
+ if (current && typeof current === "object" && segment in current) {
28
+ current = current[segment];
29
+ } else {
30
+ Logger.error(`[MetaUI SwaggerBuilder] Failed to resolve local $ref: ${refUrl}`, null, "SwaggerBuilder");
31
+ return null;
32
+ }
33
+ }
34
+
35
+ return current;
36
+ }
37
+ }
@@ -0,0 +1,37 @@
1
+ sap.ui.define([], function () {
2
+ "use strict";
3
+
4
+ /**
5
+ * @file SwaggerTypeMapper.ts
6
+ * @description Utility class for mapping OpenAPI 3.0 primitive types to MetaUI FieldTypes.
7
+ */
8
+
9
+ class SwaggerTypeMapper {
10
+ /**
11
+ * Maps an OpenAPI primitive type string to the closest MetaUI FieldType.
12
+ * If the type is omitted (common for objects) or unknown, it defaults to "object".
13
+ *
14
+ * @param {string} swaggerType The raw OpenAPI type (e.g., 'string', 'integer').
15
+ * @returns {FieldType} The mapped MetaUI FieldType.
16
+ */
17
+ static mapType(swaggerType) {
18
+ const typeMap = {
19
+ "string": "string",
20
+ "number": "number",
21
+ "integer": "integer",
22
+ "boolean": "boolean",
23
+ "array": "array",
24
+ "object": "object",
25
+ "date": "date"
26
+ };
27
+ // Swagger often omits type if it's an object with properties
28
+ return typeMap[swaggerType] || "object";
29
+ }
30
+ }
31
+ var __exports = {
32
+ __esModule: true
33
+ };
34
+ __exports.SwaggerTypeMapper = SwaggerTypeMapper;
35
+ return __exports;
36
+ });
37
+ //# sourceMappingURL=SwaggerTypeMapper-dbg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwaggerTypeMapper-dbg.js","names":["SwaggerTypeMapper","mapType","swaggerType","typeMap","__exports","__esModule"],"sources":["SwaggerTypeMapper.ts"],"sourcesContent":["/**\n * @file SwaggerTypeMapper.ts\n * @description Utility class for mapping OpenAPI 3.0 primitive types to MetaUI FieldTypes.\n */\nimport { FieldType } from \"../interfaces/ISchema\";\n\nexport class SwaggerTypeMapper {\n /**\n * Maps an OpenAPI primitive type string to the closest MetaUI FieldType.\n * If the type is omitted (common for objects) or unknown, it defaults to \"object\".\n * \n * @param {string} swaggerType The raw OpenAPI type (e.g., 'string', 'integer').\n * @returns {FieldType} The mapped MetaUI FieldType.\n */\n public static mapType(swaggerType: string): FieldType {\n const typeMap: Record<string, FieldType> = {\n \"string\": \"string\",\n \"number\": \"number\",\n \"integer\": \"integer\",\n \"boolean\": \"boolean\",\n \"array\": \"array\",\n \"object\": \"object\",\n \"date\": \"date\"\n };\n // Swagger often omits type if it's an object with properties\n return typeMap[swaggerType] || \"object\";\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;;EAGO,MAAMA,iBAAiB,CAAC;IAC3B;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,OAAcC,OAAOA,CAACC,WAAmB,EAAa;MAClD,MAAMC,OAAkC,GAAG;QACvC,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE;MACZ,CAAC;MACD;MACA,OAAOA,OAAO,CAACD,WAAW,CAAC,IAAI,QAAQ;IAC3C;EACJ;EAAC,IAAAE,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAJ,iBAAA,GAAAA,iBAAA;EAAA,OAAAI,SAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ declare module "nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper" {
2
+ /**
3
+ * @file SwaggerTypeMapper.ts
4
+ * @description Utility class for mapping OpenAPI 3.0 primitive types to MetaUI FieldTypes.
5
+ */
6
+ import { FieldType } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
7
+ export class SwaggerTypeMapper {
8
+ /**
9
+ * Maps an OpenAPI primitive type string to the closest MetaUI FieldType.
10
+ * If the type is omitted (common for objects) or unknown, it defaults to "object".
11
+ *
12
+ * @param {string} swaggerType The raw OpenAPI type (e.g., 'string', 'integer').
13
+ * @returns {FieldType} The mapped MetaUI FieldType.
14
+ */
15
+ static mapType(swaggerType: string): FieldType;
16
+ }
17
+ }
18
+ //# sourceMappingURL=SwaggerTypeMapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwaggerTypeMapper.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,sDAAsD,CAAC;IACtE;;;OAGG;IACH,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;IAE1E,MAAa,iBAAiB;QAC1B;;;;;;WAMG;eACW,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS;KAaxD;CAEA"}
@@ -0,0 +1,2 @@
1
+ sap.ui.define([],function(){"use strict";class e{static mapType(e){const r={string:"string",number:"number",integer:"integer",boolean:"boolean",array:"array",object:"object",date:"date"};return r[e]||"object"}}var r={__esModule:true};r.SwaggerTypeMapper=e;return r});
2
+ //# sourceMappingURL=SwaggerTypeMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwaggerTypeMapper.js","names":["SwaggerTypeMapper","mapType","swaggerType","typeMap","string","number","integer","boolean","array","object","date","__exports","__esModule"],"sources":["SwaggerTypeMapper.ts"],"sourcesContent":["/**\n * @file SwaggerTypeMapper.ts\n * @description Utility class for mapping OpenAPI 3.0 primitive types to MetaUI FieldTypes.\n */\nimport { FieldType } from \"../interfaces/ISchema\";\n\nexport class SwaggerTypeMapper {\n /**\n * Maps an OpenAPI primitive type string to the closest MetaUI FieldType.\n * If the type is omitted (common for objects) or unknown, it defaults to \"object\".\n * \n * @param {string} swaggerType The raw OpenAPI type (e.g., 'string', 'integer').\n * @returns {FieldType} The mapped MetaUI FieldType.\n */\n public static mapType(swaggerType: string): FieldType {\n const typeMap: Record<string, FieldType> = {\n \"string\": \"string\",\n \"number\": \"number\",\n \"integer\": \"integer\",\n \"boolean\": \"boolean\",\n \"array\": \"array\",\n \"object\": \"object\",\n \"date\": \"date\"\n };\n // Swagger often omits type if it's an object with properties\n return typeMap[swaggerType] || \"object\";\n }\n}\n"],"mappings":"yCAMO,MAAMA,EAQT,cAAcC,CAAQC,GAClB,MAAMC,EAAqC,CACvCC,OAAU,SACVC,OAAU,SACVC,QAAW,UACXC,QAAW,UACXC,MAAS,QACTC,OAAU,SACVC,KAAQ,QAGZ,OAAOP,EAAQD,IAAgB,QACnC,EACH,IAAAS,EAAA,CAAAC,WAAA,MAAAD,EAAAX,oBAAA,OAAAW,CAAA","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @file SwaggerTypeMapper.ts
3
+ * @description Utility class for mapping OpenAPI 3.0 primitive types to MetaUI FieldTypes.
4
+ */
5
+ import { FieldType } from "../interfaces/ISchema";
6
+
7
+ export class SwaggerTypeMapper {
8
+ /**
9
+ * Maps an OpenAPI primitive type string to the closest MetaUI FieldType.
10
+ * If the type is omitted (common for objects) or unknown, it defaults to "object".
11
+ *
12
+ * @param {string} swaggerType The raw OpenAPI type (e.g., 'string', 'integer').
13
+ * @returns {FieldType} The mapped MetaUI FieldType.
14
+ */
15
+ public static mapType(swaggerType: string): FieldType {
16
+ const typeMap: Record<string, FieldType> = {
17
+ "string": "string",
18
+ "number": "number",
19
+ "integer": "integer",
20
+ "boolean": "boolean",
21
+ "array": "array",
22
+ "object": "object",
23
+ "date": "date"
24
+ };
25
+ // Swagger often omits type if it's an object with properties
26
+ return typeMap[swaggerType] || "object";
27
+ }
28
+ }
@@ -0,0 +1,84 @@
1
+ sap.ui.define([], function () {
2
+ "use strict";
3
+
4
+ /**
5
+ * @file SwaggerUIMapper.ts
6
+ * @description Utility class for mapping OpenAPI properties and formats into MetaUI IUIDirectives.
7
+ */
8
+
9
+ class SwaggerUIMapper {
10
+ /**
11
+ * Evaluates an OpenAPI property definition and constructs a MetaUI IUIDirective block.
12
+ * Extracts labels from title/description, maps readOnly state, and assigns
13
+ * specific Fiori widgets based on the OpenAPI 'format' property.
14
+ *
15
+ * @param {any} swaggerProp The raw OpenAPI property schema.
16
+ * @param {string} keyName The technical JSON key of the property.
17
+ * @returns {IUIDirective} The constructed MetaUI UI orchestration directive.
18
+ */
19
+ static build(swaggerProp, keyName) {
20
+ const ui = {};
21
+
22
+ // Labeling
23
+ if (swaggerProp.title) {
24
+ ui.label = swaggerProp.title;
25
+ } else if (swaggerProp.description) {
26
+ ui.label = swaggerProp.description;
27
+ } else {
28
+ ui.label = this.generateLabel(keyName);
29
+ }
30
+
31
+ // State
32
+ if (swaggerProp.readOnly === true) {
33
+ ui.readOnly = true;
34
+ }
35
+
36
+ // Formats to Widgets
37
+ if (swaggerProp.format) {
38
+ switch (swaggerProp.format) {
39
+ case "date-time":
40
+ ui.widget = "datetime";
41
+ break;
42
+ case "date":
43
+ ui.widget = "date";
44
+ break;
45
+ case "password":
46
+ ui.format = "password";
47
+ break;
48
+ case "email":
49
+ ui.format = "email";
50
+ break;
51
+ case "uri":
52
+ ui.format = "url";
53
+ break;
54
+ case "uuid":
55
+ case "ipv4":
56
+ case "ipv6":
57
+ case "hostname":
58
+ if (!ui.validators) ui.validators = [];
59
+ ui.validators.push(swaggerProp.format);
60
+ break;
61
+ }
62
+ }
63
+ return ui;
64
+ }
65
+
66
+ /**
67
+ * Generates a human-readable Title Case label from camelCase or snake_case technical keys.
68
+ *
69
+ * @param {string} name The technical property key.
70
+ * @returns {string} The formatted human-readable label.
71
+ */
72
+ static generateLabel(name) {
73
+ if (!name) return "";
74
+ let spaced = name.replace(/([A-Z])/g, " $1").replace(/_/g, " ");
75
+ return spaced.split(' ').filter(w => w.length > 0).map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(' ').trim();
76
+ }
77
+ }
78
+ var __exports = {
79
+ __esModule: true
80
+ };
81
+ __exports.SwaggerUIMapper = SwaggerUIMapper;
82
+ return __exports;
83
+ });
84
+ //# sourceMappingURL=SwaggerUIMapper-dbg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwaggerUIMapper-dbg.js","names":["SwaggerUIMapper","build","swaggerProp","keyName","ui","title","label","description","generateLabel","readOnly","format","widget","validators","push","name","spaced","replace","split","filter","w","length","map","word","charAt","toUpperCase","slice","toLowerCase","join","trim","__exports","__esModule"],"sources":["SwaggerUIMapper.ts"],"sourcesContent":["/**\n * @file SwaggerUIMapper.ts\n * @description Utility class for mapping OpenAPI properties and formats into MetaUI IUIDirectives.\n */\nimport { IUIDirective } from \"../interfaces/ISchema\";\n\nexport class SwaggerUIMapper {\n /**\n * Evaluates an OpenAPI property definition and constructs a MetaUI IUIDirective block.\n * Extracts labels from title/description, maps readOnly state, and assigns \n * specific Fiori widgets based on the OpenAPI 'format' property.\n * \n * @param {any} swaggerProp The raw OpenAPI property schema.\n * @param {string} keyName The technical JSON key of the property.\n * @returns {IUIDirective} The constructed MetaUI UI orchestration directive.\n */\n public static build(swaggerProp: any, keyName: string): IUIDirective {\n const ui: IUIDirective = {};\n\n // Labeling\n if (swaggerProp.title) {\n ui.label = swaggerProp.title;\n } else if (swaggerProp.description) {\n ui.label = swaggerProp.description;\n } else {\n ui.label = this.generateLabel(keyName);\n }\n\n // State\n if (swaggerProp.readOnly === true) {\n ui.readOnly = true;\n }\n\n // Formats to Widgets\n if (swaggerProp.format) {\n switch (swaggerProp.format) {\n case \"date-time\":\n ui.widget = \"datetime\";\n break;\n case \"date\":\n ui.widget = \"date\";\n break;\n case \"password\":\n ui.format = \"password\";\n break;\n case \"email\":\n ui.format = \"email\";\n break;\n case \"uri\":\n ui.format = \"url\";\n break;\n case \"uuid\":\n case \"ipv4\":\n case \"ipv6\":\n case \"hostname\":\n if (!ui.validators) ui.validators = [];\n ui.validators.push(swaggerProp.format);\n break;\n }\n }\n\n return ui;\n }\n\n /**\n * Generates a human-readable Title Case label from camelCase or snake_case technical keys.\n * \n * @param {string} name The technical property key.\n * @returns {string} The formatted human-readable label.\n */\n private static generateLabel(name: string): string {\n if (!name) return \"\";\n let spaced = name.replace(/([A-Z])/g, \" $1\").replace(/_/g, \" \");\n return spaced.split(' ')\n .filter(w => w.length > 0)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ')\n .trim();\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;;EAGO,MAAMA,eAAe,CAAC;IACzB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI,OAAcC,KAAKA,CAACC,WAAgB,EAAEC,OAAe,EAAgB;MACjE,MAAMC,EAAgB,GAAG,CAAC,CAAC;;MAE3B;MACA,IAAIF,WAAW,CAACG,KAAK,EAAE;QACnBD,EAAE,CAACE,KAAK,GAAGJ,WAAW,CAACG,KAAK;MAChC,CAAC,MAAM,IAAIH,WAAW,CAACK,WAAW,EAAE;QAChCH,EAAE,CAACE,KAAK,GAAGJ,WAAW,CAACK,WAAW;MACtC,CAAC,MAAM;QACHH,EAAE,CAACE,KAAK,GAAG,IAAI,CAACE,aAAa,CAACL,OAAO,CAAC;MAC1C;;MAEA;MACA,IAAID,WAAW,CAACO,QAAQ,KAAK,IAAI,EAAE;QAC/BL,EAAE,CAACK,QAAQ,GAAG,IAAI;MACtB;;MAEA;MACA,IAAIP,WAAW,CAACQ,MAAM,EAAE;QACpB,QAAQR,WAAW,CAACQ,MAAM;UACtB,KAAK,WAAW;YACZN,EAAE,CAACO,MAAM,GAAG,UAAU;YACtB;UACJ,KAAK,MAAM;YACPP,EAAE,CAACO,MAAM,GAAG,MAAM;YAClB;UACJ,KAAK,UAAU;YACXP,EAAE,CAACM,MAAM,GAAG,UAAU;YACtB;UACJ,KAAK,OAAO;YACRN,EAAE,CAACM,MAAM,GAAG,OAAO;YACnB;UACJ,KAAK,KAAK;YACNN,EAAE,CAACM,MAAM,GAAG,KAAK;YACjB;UACJ,KAAK,MAAM;UACX,KAAK,MAAM;UACX,KAAK,MAAM;UACX,KAAK,UAAU;YACX,IAAI,CAACN,EAAE,CAACQ,UAAU,EAAER,EAAE,CAACQ,UAAU,GAAG,EAAE;YACtCR,EAAE,CAACQ,UAAU,CAACC,IAAI,CAACX,WAAW,CAACQ,MAAM,CAAC;YACtC;QACR;MACJ;MAEA,OAAON,EAAE;IACb;;IAEA;AACJ;AACA;AACA;AACA;AACA;IACI,OAAeI,aAAaA,CAACM,IAAY,EAAU;MAC/C,IAAI,CAACA,IAAI,EAAE,OAAO,EAAE;MACpB,IAAIC,MAAM,GAAGD,IAAI,CAACE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;MAC/D,OAAOD,MAAM,CAACE,KAAK,CAAC,GAAG,CAAC,CACnBC,MAAM,CAACC,CAAC,IAAIA,CAAC,CAACC,MAAM,GAAG,CAAC,CAAC,CACzBC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGF,IAAI,CAACG,KAAK,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,CAAC,CACvEC,IAAI,CAAC,GAAG,CAAC,CACTC,IAAI,CAAC,CAAC;IACf;EACJ;EAAC,IAAAC,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAA7B,eAAA,GAAAA,eAAA;EAAA,OAAA6B,SAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ declare module "nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper" {
2
+ /**
3
+ * @file SwaggerUIMapper.ts
4
+ * @description Utility class for mapping OpenAPI properties and formats into MetaUI IUIDirectives.
5
+ */
6
+ import { IUIDirective } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
7
+ export class SwaggerUIMapper {
8
+ /**
9
+ * Evaluates an OpenAPI property definition and constructs a MetaUI IUIDirective block.
10
+ * Extracts labels from title/description, maps readOnly state, and assigns
11
+ * specific Fiori widgets based on the OpenAPI 'format' property.
12
+ *
13
+ * @param {any} swaggerProp The raw OpenAPI property schema.
14
+ * @param {string} keyName The technical JSON key of the property.
15
+ * @returns {IUIDirective} The constructed MetaUI UI orchestration directive.
16
+ */
17
+ static build(swaggerProp: any, keyName: string): IUIDirective;
18
+ /**
19
+ * Generates a human-readable Title Case label from camelCase or snake_case technical keys.
20
+ *
21
+ * @param {string} name The technical property key.
22
+ * @returns {string} The formatted human-readable label.
23
+ */
24
+ private static generateLabel;
25
+ }
26
+ }
27
+ //# sourceMappingURL=SwaggerUIMapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwaggerUIMapper.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,oDAAoD,CAAC;IACpE;;;OAGG;IACH,OAAO,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;IAE7E,MAAa,eAAe;QACxB;;;;;;;;WAQG;eACW,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY;QAgDpE;;;;;WAKG;QACH,OAAO,CAAC,MAAM,CAAC,aAAa;KAS/B;CAEA"}
@@ -0,0 +1,2 @@
1
+ sap.ui.define([],function(){"use strict";class e{static build(e,a){const t={};if(e.title){t.label=e.title}else if(e.description){t.label=e.description}else{t.label=this.generateLabel(a)}if(e.readOnly===true){t.readOnly=true}if(e.format){switch(e.format){case"date-time":t.widget="datetime";break;case"date":t.widget="date";break;case"password":t.format="password";break;case"email":t.format="email";break;case"uri":t.format="url";break;case"uuid":case"ipv4":case"ipv6":case"hostname":if(!t.validators)t.validators=[];t.validators.push(e.format);break}}return t}static generateLabel(e){if(!e)return"";let a=e.replace(/([A-Z])/g," $1").replace(/_/g," ");return a.split(" ").filter(e=>e.length>0).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim()}}var a={__esModule:true};a.SwaggerUIMapper=e;return a});
2
+ //# sourceMappingURL=SwaggerUIMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwaggerUIMapper.js","names":["SwaggerUIMapper","build","swaggerProp","keyName","ui","title","label","description","this","generateLabel","readOnly","format","widget","validators","push","name","spaced","replace","split","filter","w","length","map","word","charAt","toUpperCase","slice","toLowerCase","join","trim","__exports","__esModule"],"sources":["SwaggerUIMapper.ts"],"sourcesContent":["/**\n * @file SwaggerUIMapper.ts\n * @description Utility class for mapping OpenAPI properties and formats into MetaUI IUIDirectives.\n */\nimport { IUIDirective } from \"../interfaces/ISchema\";\n\nexport class SwaggerUIMapper {\n /**\n * Evaluates an OpenAPI property definition and constructs a MetaUI IUIDirective block.\n * Extracts labels from title/description, maps readOnly state, and assigns \n * specific Fiori widgets based on the OpenAPI 'format' property.\n * \n * @param {any} swaggerProp The raw OpenAPI property schema.\n * @param {string} keyName The technical JSON key of the property.\n * @returns {IUIDirective} The constructed MetaUI UI orchestration directive.\n */\n public static build(swaggerProp: any, keyName: string): IUIDirective {\n const ui: IUIDirective = {};\n\n // Labeling\n if (swaggerProp.title) {\n ui.label = swaggerProp.title;\n } else if (swaggerProp.description) {\n ui.label = swaggerProp.description;\n } else {\n ui.label = this.generateLabel(keyName);\n }\n\n // State\n if (swaggerProp.readOnly === true) {\n ui.readOnly = true;\n }\n\n // Formats to Widgets\n if (swaggerProp.format) {\n switch (swaggerProp.format) {\n case \"date-time\":\n ui.widget = \"datetime\";\n break;\n case \"date\":\n ui.widget = \"date\";\n break;\n case \"password\":\n ui.format = \"password\";\n break;\n case \"email\":\n ui.format = \"email\";\n break;\n case \"uri\":\n ui.format = \"url\";\n break;\n case \"uuid\":\n case \"ipv4\":\n case \"ipv6\":\n case \"hostname\":\n if (!ui.validators) ui.validators = [];\n ui.validators.push(swaggerProp.format);\n break;\n }\n }\n\n return ui;\n }\n\n /**\n * Generates a human-readable Title Case label from camelCase or snake_case technical keys.\n * \n * @param {string} name The technical property key.\n * @returns {string} The formatted human-readable label.\n */\n private static generateLabel(name: string): string {\n if (!name) return \"\";\n let spaced = name.replace(/([A-Z])/g, \" $1\").replace(/_/g, \" \");\n return spaced.split(' ')\n .filter(w => w.length > 0)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ')\n .trim();\n }\n}\n"],"mappings":"yCAMO,MAAMA,EAUT,YAAcC,CAAMC,EAAkBC,GAClC,MAAMC,EAAmB,CAAC,EAG1B,GAAIF,EAAYG,MAAO,CACnBD,EAAGE,MAAQJ,EAAYG,KAC3B,MAAO,GAAIH,EAAYK,YAAa,CAChCH,EAAGE,MAAQJ,EAAYK,WAC3B,KAAO,CACHH,EAAGE,MAAQE,KAAKC,cAAcN,EAClC,CAGA,GAAID,EAAYQ,WAAa,KAAM,CAC/BN,EAAGM,SAAW,IAClB,CAGA,GAAIR,EAAYS,OAAQ,CACpB,OAAQT,EAAYS,QAChB,IAAK,YACDP,EAAGQ,OAAS,WACZ,MACJ,IAAK,OACDR,EAAGQ,OAAS,OACZ,MACJ,IAAK,WACDR,EAAGO,OAAS,WACZ,MACJ,IAAK,QACDP,EAAGO,OAAS,QACZ,MACJ,IAAK,MACDP,EAAGO,OAAS,MACZ,MACJ,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,WACD,IAAKP,EAAGS,WAAYT,EAAGS,WAAa,GACpCT,EAAGS,WAAWC,KAAKZ,EAAYS,QAC/B,MAEZ,CAEA,OAAOP,CACX,CAQA,oBAAeK,CAAcM,GACzB,IAAKA,EAAM,MAAO,GAClB,IAAIC,EAASD,EAAKE,QAAQ,WAAY,OAAOA,QAAQ,KAAM,KAC3D,OAAOD,EAAOE,MAAM,KACfC,OAAOC,GAAKA,EAAEC,OAAS,GACvBC,IAAIC,GAAQA,EAAKC,OAAO,GAAGC,cAAgBF,EAAKG,MAAM,GAAGC,eACzDC,KAAK,KACLC,MACT,EACH,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAA9B,kBAAA,OAAA8B,CAAA","ignoreList":[]}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @file SwaggerUIMapper.ts
3
+ * @description Utility class for mapping OpenAPI properties and formats into MetaUI IUIDirectives.
4
+ */
5
+ import { IUIDirective } from "../interfaces/ISchema";
6
+
7
+ export class SwaggerUIMapper {
8
+ /**
9
+ * Evaluates an OpenAPI property definition and constructs a MetaUI IUIDirective block.
10
+ * Extracts labels from title/description, maps readOnly state, and assigns
11
+ * specific Fiori widgets based on the OpenAPI 'format' property.
12
+ *
13
+ * @param {any} swaggerProp The raw OpenAPI property schema.
14
+ * @param {string} keyName The technical JSON key of the property.
15
+ * @returns {IUIDirective} The constructed MetaUI UI orchestration directive.
16
+ */
17
+ public static build(swaggerProp: any, keyName: string): IUIDirective {
18
+ const ui: IUIDirective = {};
19
+
20
+ // Labeling
21
+ if (swaggerProp.title) {
22
+ ui.label = swaggerProp.title;
23
+ } else if (swaggerProp.description) {
24
+ ui.label = swaggerProp.description;
25
+ } else {
26
+ ui.label = this.generateLabel(keyName);
27
+ }
28
+
29
+ // State
30
+ if (swaggerProp.readOnly === true) {
31
+ ui.readOnly = true;
32
+ }
33
+
34
+ // Formats to Widgets
35
+ if (swaggerProp.format) {
36
+ switch (swaggerProp.format) {
37
+ case "date-time":
38
+ ui.widget = "datetime";
39
+ break;
40
+ case "date":
41
+ ui.widget = "date";
42
+ break;
43
+ case "password":
44
+ ui.format = "password";
45
+ break;
46
+ case "email":
47
+ ui.format = "email";
48
+ break;
49
+ case "uri":
50
+ ui.format = "url";
51
+ break;
52
+ case "uuid":
53
+ case "ipv4":
54
+ case "ipv6":
55
+ case "hostname":
56
+ if (!ui.validators) ui.validators = [];
57
+ ui.validators.push(swaggerProp.format);
58
+ break;
59
+ }
60
+ }
61
+
62
+ return ui;
63
+ }
64
+
65
+ /**
66
+ * Generates a human-readable Title Case label from camelCase or snake_case technical keys.
67
+ *
68
+ * @param {string} name The technical property key.
69
+ * @returns {string} The formatted human-readable label.
70
+ */
71
+ private static generateLabel(name: string): string {
72
+ if (!name) return "";
73
+ let spaced = name.replace(/([A-Z])/g, " $1").replace(/_/g, " ");
74
+ return spaced.split(' ')
75
+ .filter(w => w.length > 0)
76
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
77
+ .join(' ')
78
+ .trim();
79
+ }
80
+ }