@siliconst/metaui 1.4.13 → 1.4.14

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 (92) 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 +16 -1
  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 +6 -0
  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 +16 -1
  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/SchemaBuilderRegistry-dbg.js +47 -0
  27. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry-dbg.js.map +1 -0
  28. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.d.ts +23 -0
  29. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.d.ts.map +1 -0
  30. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.js +2 -0
  31. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.js.map +1 -0
  32. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.ts +45 -0
  33. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +17 -0
  34. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  35. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +10 -1
  36. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  37. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
  38. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  39. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +19 -1
  40. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
  41. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +7 -0
  42. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
  43. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +9 -0
  44. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin-dbg.js +2 -0
  45. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin-dbg.js.map +1 -0
  46. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.d.ts +23 -0
  47. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.d.ts.map +1 -0
  48. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.js +2 -0
  49. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.js.map +1 -0
  50. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.ts +23 -0
  51. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +6 -1
  52. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  53. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
  54. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js +1 -1
  55. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  56. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +6 -1
  57. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +14 -6
  58. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  59. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js +29 -17
  60. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js.map +1 -1
  61. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts.map +1 -1
  62. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js +1 -1
  63. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js.map +1 -1
  64. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.ts +32 -15
  65. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder-dbg.js +226 -0
  66. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder-dbg.js.map +1 -0
  67. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.d.ts +63 -0
  68. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.d.ts.map +1 -0
  69. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.js +2 -0
  70. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.js.map +1 -0
  71. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.ts +233 -0
  72. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver-dbg.js +43 -0
  73. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver-dbg.js.map +1 -0
  74. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.d.ts +15 -0
  75. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.d.ts.map +1 -0
  76. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.js +2 -0
  77. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.js.map +1 -0
  78. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.ts +37 -0
  79. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper-dbg.js +37 -0
  80. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper-dbg.js.map +1 -0
  81. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.d.ts +18 -0
  82. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.d.ts.map +1 -0
  83. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.js +2 -0
  84. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.js.map +1 -0
  85. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.ts +28 -0
  86. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper-dbg.js +84 -0
  87. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper-dbg.js.map +1 -0
  88. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.d.ts +27 -0
  89. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.d.ts.map +1 -0
  90. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.js +2 -0
  91. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.js.map +1 -0
  92. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.ts +80 -0
@@ -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
+ }