@siliconst/metaui 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +21 -34
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost-dbg.js +164 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.d.ts +82 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js +44 -0
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +24 -0
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +59 -0
- package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +24 -0
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus-dbg.js +51 -0
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.d.ts +31 -0
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +60 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +37 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +37 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +20 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +56 -0
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts +37 -0
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus-dbg.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.d.ts +29 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager-dbg.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.d.ts +26 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +32 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +68 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout-dbg.js +39 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.d.ts +28 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +57 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts +20 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +91 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts +20 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +33 -0
- package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/library-preload.js +34 -0
- package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/library.d.ts +10 -0
- package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/library.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/manifest.json +34 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin-dbg.js +60 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.d.ts +43 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin-dbg.js +43 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.d.ts +18 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin-dbg.js +61 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.d.ts +18 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin-dbg.js +67 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.d.ts +18 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin-dbg.js +54 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.d.ts +18 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin-dbg.js +54 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.d.ts +18 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.js.map +1 -0
- package/test-resources/App.js +11 -0
- package/test-resources/Main.controller.js +73 -0
- package/test-resources/Main.view.xml +42 -0
- package/test-resources/index.html +21 -0
- package/test-resources/mockData.json +27 -0
- package/test-resources/mockSchema.json +98 -0
- package/ui5.yaml +1 -9
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
sap.ui.define(["./BasePlugin", "sap/m/Select", "sap/ui/core/Item"], function (___BasePlugin, Select, Item) {
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @file DropdownPlugin.ts
|
|
6
|
+
* @description Renders a sap.m.Select utilizing the schema's valueHelp structure.
|
|
7
|
+
*/
|
|
8
|
+
const BasePlugin = ___BasePlugin["BasePlugin"];
|
|
9
|
+
/**
|
|
10
|
+
* Handles rendering logic for dropdown inputs.
|
|
11
|
+
*/
|
|
12
|
+
class DropdownPlugin extends BasePlugin {
|
|
13
|
+
render(fieldMetadata, bindingPath) {
|
|
14
|
+
this.metadata = fieldMetadata;
|
|
15
|
+
const select = new Select({
|
|
16
|
+
selectedKey: `{meta>${bindingPath}}`,
|
|
17
|
+
enabled: !fieldMetadata.isReadOnly,
|
|
18
|
+
change: oEvent => {
|
|
19
|
+
const item = oEvent.getParameter("selectedItem");
|
|
20
|
+
const val = item ? item.getKey() : "";
|
|
21
|
+
this.publishChange(val);
|
|
22
|
+
this.validate();
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
if (fieldMetadata.valueHelp && Array.isArray(fieldMetadata.valueHelp)) {
|
|
26
|
+
if (!fieldMetadata.isRequired) {
|
|
27
|
+
select.addItem(new Item({
|
|
28
|
+
key: "",
|
|
29
|
+
text: "--- Select ---"
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
fieldMetadata.valueHelp.forEach(vh => {
|
|
33
|
+
select.addItem(new Item({
|
|
34
|
+
key: vh.key,
|
|
35
|
+
text: vh.text
|
|
36
|
+
}));
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
this.control = select;
|
|
40
|
+
return this.control;
|
|
41
|
+
}
|
|
42
|
+
validate() {
|
|
43
|
+
if (!this.control || !this.metadata) return true;
|
|
44
|
+
const select = this.control;
|
|
45
|
+
const val = select.getSelectedKey();
|
|
46
|
+
if (this.metadata.isRequired && (!val || val.trim() === "")) {
|
|
47
|
+
select.setValueState("Error");
|
|
48
|
+
select.setValueStateText("Selection is required.");
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
select.setValueState("None");
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
applyState() {
|
|
55
|
+
if (this.control && this.metadata) {
|
|
56
|
+
const select = this.control;
|
|
57
|
+
select.setEnabled(!this.metadata.isReadOnly);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
var __exports = {
|
|
62
|
+
__esModule: true
|
|
63
|
+
};
|
|
64
|
+
__exports.DropdownPlugin = DropdownPlugin;
|
|
65
|
+
return __exports;
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=DropdownPlugin-dbg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownPlugin-dbg.js","names":["BasePlugin","___BasePlugin","DropdownPlugin","render","fieldMetadata","bindingPath","metadata","select","Select","selectedKey","enabled","isReadOnly","change","oEvent","item","getParameter","val","getKey","publishChange","validate","valueHelp","Array","isArray","isRequired","addItem","Item","key","text","forEach","vh","control","getSelectedKey","trim","setValueState","setValueStateText","applyState","setEnabled","__exports","__esModule"],"sources":["DropdownPlugin.ts"],"sourcesContent":["/**\r\n * @file DropdownPlugin.ts\r\n * @description Renders a sap.m.Select utilizing the schema's valueHelp structure.\r\n */\r\n\r\nimport { BasePlugin } from \"./BasePlugin\";\r\nimport { IFieldMetadata } from \"../interfaces/ISchema\";\r\nimport Select from \"sap/m/Select\";\r\nimport Item from \"sap/ui/core/Item\";\r\nimport Control from \"sap/ui/core/Control\";\r\n\r\n/**\r\n * Handles rendering logic for dropdown inputs.\r\n */\r\nexport class DropdownPlugin extends BasePlugin {\r\n public render(fieldMetadata: IFieldMetadata, bindingPath: string): Control {\r\n this.metadata = fieldMetadata;\r\n \r\n const select = new Select({\r\n selectedKey: `{meta>${bindingPath}}`,\r\n enabled: !fieldMetadata.isReadOnly,\r\n change: (oEvent: any) => {\r\n const item = oEvent.getParameter(\"selectedItem\");\r\n const val = item ? item.getKey() : \"\";\r\n this.publishChange(val);\r\n this.validate();\r\n }\r\n });\r\n\r\n if (fieldMetadata.valueHelp && Array.isArray(fieldMetadata.valueHelp)) {\r\n if (!fieldMetadata.isRequired) {\r\n select.addItem(new Item({ key: \"\", text: \"--- Select ---\" }));\r\n }\r\n \r\n fieldMetadata.valueHelp.forEach(vh => {\r\n select.addItem(new Item({ key: vh.key, text: vh.text }));\r\n });\r\n }\r\n\r\n this.control = select;\r\n return this.control;\r\n }\r\n\r\n public validate(): boolean {\r\n if (!this.control || !this.metadata) return true;\r\n const select = this.control as Select;\r\n const val = select.getSelectedKey();\r\n\r\n if (this.metadata.isRequired && (!val || val.trim() === \"\")) {\r\n select.setValueState(\"Error\" as any);\r\n select.setValueStateText(\"Selection is required.\");\r\n return false;\r\n }\r\n\r\n select.setValueState(\"None\" as any);\r\n return true;\r\n }\r\n\r\n protected applyState(): void {\r\n if (this.control && this.metadata) {\r\n const select = this.control as Select;\r\n select.setEnabled(!this.metadata.isReadOnly);\r\n }\r\n }\r\n}\r\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,UAAU,GAAAC,aAAA;EAMnB;AACA;AACA;EACO,MAAMC,cAAc,SAASF,UAAU,CAAC;IACpCG,MAAMA,CAACC,aAA6B,EAAEC,WAAmB,EAAW;MACvE,IAAI,CAACC,QAAQ,GAAGF,aAAa;MAE7B,MAAMG,MAAM,GAAG,IAAIC,MAAM,CAAC;QACtBC,WAAW,EAAE,SAASJ,WAAW,GAAG;QACpCK,OAAO,EAAE,CAACN,aAAa,CAACO,UAAU;QAClCC,MAAM,EAAGC,MAAW,IAAK;UACrB,MAAMC,IAAI,GAAGD,MAAM,CAACE,YAAY,CAAC,cAAc,CAAC;UAChD,MAAMC,GAAG,GAAGF,IAAI,GAAGA,IAAI,CAACG,MAAM,CAAC,CAAC,GAAG,EAAE;UACrC,IAAI,CAACC,aAAa,CAACF,GAAG,CAAC;UACvB,IAAI,CAACG,QAAQ,CAAC,CAAC;QACnB;MACJ,CAAC,CAAC;MAEF,IAAIf,aAAa,CAACgB,SAAS,IAAIC,KAAK,CAACC,OAAO,CAAClB,aAAa,CAACgB,SAAS,CAAC,EAAE;QACnE,IAAI,CAAChB,aAAa,CAACmB,UAAU,EAAE;UAC3BhB,MAAM,CAACiB,OAAO,CAAC,IAAIC,IAAI,CAAC;YAAEC,GAAG,EAAE,EAAE;YAAEC,IAAI,EAAE;UAAiB,CAAC,CAAC,CAAC;QACjE;QAEAvB,aAAa,CAACgB,SAAS,CAACQ,OAAO,CAACC,EAAE,IAAI;UAClCtB,MAAM,CAACiB,OAAO,CAAC,IAAIC,IAAI,CAAC;YAAEC,GAAG,EAAEG,EAAE,CAACH,GAAG;YAAEC,IAAI,EAAEE,EAAE,CAACF;UAAK,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC;MACN;MAEA,IAAI,CAACG,OAAO,GAAGvB,MAAM;MACrB,OAAO,IAAI,CAACuB,OAAO;IACvB;IAEOX,QAAQA,CAAA,EAAY;MACvB,IAAI,CAAC,IAAI,CAACW,OAAO,IAAI,CAAC,IAAI,CAACxB,QAAQ,EAAE,OAAO,IAAI;MAChD,MAAMC,MAAM,GAAG,IAAI,CAACuB,OAAiB;MACrC,MAAMd,GAAG,GAAGT,MAAM,CAACwB,cAAc,CAAC,CAAC;MAEnC,IAAI,IAAI,CAACzB,QAAQ,CAACiB,UAAU,KAAK,CAACP,GAAG,IAAIA,GAAG,CAACgB,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;QACzDzB,MAAM,CAAC0B,aAAa,CAAC,OAAc,CAAC;QACpC1B,MAAM,CAAC2B,iBAAiB,CAAC,wBAAwB,CAAC;QAClD,OAAO,KAAK;MAChB;MAEA3B,MAAM,CAAC0B,aAAa,CAAC,MAAa,CAAC;MACnC,OAAO,IAAI;IACf;IAEUE,UAAUA,CAAA,EAAS;MACzB,IAAI,IAAI,CAACL,OAAO,IAAI,IAAI,CAACxB,QAAQ,EAAE;QAC/B,MAAMC,MAAM,GAAG,IAAI,CAACuB,OAAiB;QACrCvB,MAAM,CAAC6B,UAAU,CAAC,CAAC,IAAI,CAAC9B,QAAQ,CAACK,UAAU,CAAC;MAChD;IACJ;EACJ;EAAC,IAAA0B,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAnC,cAAA,GAAAA,cAAA;EAAA,OAAAmC,SAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare module "nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin" {
|
|
2
|
+
/**
|
|
3
|
+
* @file DropdownPlugin.ts
|
|
4
|
+
* @description Renders a sap.m.Select utilizing the schema's valueHelp structure.
|
|
5
|
+
*/
|
|
6
|
+
import { BasePlugin } from "nz/co/siliconst/ui5/metaui/plugins/BasePlugin";
|
|
7
|
+
import { IFieldMetadata } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
|
|
8
|
+
import Control from "sap/ui/core/Control";
|
|
9
|
+
/**
|
|
10
|
+
* Handles rendering logic for dropdown inputs.
|
|
11
|
+
*/
|
|
12
|
+
export class DropdownPlugin extends BasePlugin {
|
|
13
|
+
render(fieldMetadata: IFieldMetadata, bindingPath: string): Control;
|
|
14
|
+
validate(): boolean;
|
|
15
|
+
protected applyState(): void;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=DropdownPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownPlugin.d.ts","sourceRoot":"..\\..\\..\\..\\..\\..\\..\\..","sources":["src\\nz\\co\\siliconst\\ui5\\metaui\\plugins\\DropdownPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,mDAAmD,CAAC;IACnE;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;IAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;IAG/E,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;OAEG;IACH,MAAa,cAAe,SAAQ,UAAU;QACnC,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;QA4BnE,QAAQ,IAAI,OAAO;QAe1B,SAAS,CAAC,UAAU,IAAI,IAAI;KAM/B;CAEA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
sap.ui.define(["./BasePlugin","sap/m/Select","sap/ui/core/Item"],function(e,t,a){"use strict";const s=e["BasePlugin"];class i extends s{render(e,s){this.metadata=e;const i=new t({selectedKey:`{meta>${s}}`,enabled:!e.isReadOnly,change:e=>{const t=e.getParameter("selectedItem");const a=t?t.getKey():"";this.publishChange(a);this.validate()}});if(e.valueHelp&&Array.isArray(e.valueHelp)){if(!e.isRequired){i.addItem(new a({key:"",text:"--- Select ---"}))}e.valueHelp.forEach(e=>{i.addItem(new a({key:e.key,text:e.text}))})}this.control=i;return this.control}validate(){if(!this.control||!this.metadata)return true;const e=this.control;const t=e.getSelectedKey();if(this.metadata.isRequired&&(!t||t.trim()==="")){e.setValueState("Error");e.setValueStateText("Selection is required.");return false}e.setValueState("None");return true}applyState(){if(this.control&&this.metadata){const e=this.control;e.setEnabled(!this.metadata.isReadOnly)}}}var r={__esModule:true};r.DropdownPlugin=i;return r});
|
|
2
|
+
//# sourceMappingURL=DropdownPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownPlugin.js","names":["BasePlugin","___BasePlugin","DropdownPlugin","render","fieldMetadata","bindingPath","this","metadata","select","Select","selectedKey","enabled","isReadOnly","change","oEvent","item","getParameter","val","getKey","publishChange","validate","valueHelp","Array","isArray","isRequired","addItem","Item","key","text","forEach","vh","control","getSelectedKey","trim","setValueState","setValueStateText","applyState","setEnabled","__exports","__esModule"],"sources":["DropdownPlugin.ts"],"sourcesContent":["/**\r\n * @file DropdownPlugin.ts\r\n * @description Renders a sap.m.Select utilizing the schema's valueHelp structure.\r\n */\r\n\r\nimport { BasePlugin } from \"./BasePlugin\";\r\nimport { IFieldMetadata } from \"../interfaces/ISchema\";\r\nimport Select from \"sap/m/Select\";\r\nimport Item from \"sap/ui/core/Item\";\r\nimport Control from \"sap/ui/core/Control\";\r\n\r\n/**\r\n * Handles rendering logic for dropdown inputs.\r\n */\r\nexport class DropdownPlugin extends BasePlugin {\r\n public render(fieldMetadata: IFieldMetadata, bindingPath: string): Control {\r\n this.metadata = fieldMetadata;\r\n \r\n const select = new Select({\r\n selectedKey: `{meta>${bindingPath}}`,\r\n enabled: !fieldMetadata.isReadOnly,\r\n change: (oEvent: any) => {\r\n const item = oEvent.getParameter(\"selectedItem\");\r\n const val = item ? item.getKey() : \"\";\r\n this.publishChange(val);\r\n this.validate();\r\n }\r\n });\r\n\r\n if (fieldMetadata.valueHelp && Array.isArray(fieldMetadata.valueHelp)) {\r\n if (!fieldMetadata.isRequired) {\r\n select.addItem(new Item({ key: \"\", text: \"--- Select ---\" }));\r\n }\r\n \r\n fieldMetadata.valueHelp.forEach(vh => {\r\n select.addItem(new Item({ key: vh.key, text: vh.text }));\r\n });\r\n }\r\n\r\n this.control = select;\r\n return this.control;\r\n }\r\n\r\n public validate(): boolean {\r\n if (!this.control || !this.metadata) return true;\r\n const select = this.control as Select;\r\n const val = select.getSelectedKey();\r\n\r\n if (this.metadata.isRequired && (!val || val.trim() === \"\")) {\r\n select.setValueState(\"Error\" as any);\r\n select.setValueStateText(\"Selection is required.\");\r\n return false;\r\n }\r\n\r\n select.setValueState(\"None\" as any);\r\n return true;\r\n }\r\n\r\n protected applyState(): void {\r\n if (this.control && this.metadata) {\r\n const select = this.control as Select;\r\n select.setEnabled(!this.metadata.isReadOnly);\r\n }\r\n }\r\n}\r\n"],"mappings":"8FAAA,MAKSA,EAAUC,EAAA,cASZ,MAAMC,UAAuBF,EACzBG,OAAOC,EAA+BC,GACzCC,KAAKC,SAAWH,EAEhB,MAAMI,EAAS,IAAIC,EAAO,CACtBC,YAAa,SAASL,KACtBM,SAAUP,EAAcQ,WACxBC,OAASC,IACL,MAAMC,EAAOD,EAAOE,aAAa,gBACjC,MAAMC,EAAMF,EAAOA,EAAKG,SAAW,GACnCZ,KAAKa,cAAcF,GACnBX,KAAKc,cAIb,GAAIhB,EAAciB,WAAaC,MAAMC,QAAQnB,EAAciB,WAAY,CACnE,IAAKjB,EAAcoB,WAAY,CAC3BhB,EAAOiB,QAAQ,IAAIC,EAAK,CAAEC,IAAK,GAAIC,KAAM,mBAC7C,CAEAxB,EAAciB,UAAUQ,QAAQC,IAC5BtB,EAAOiB,QAAQ,IAAIC,EAAK,CAAEC,IAAKG,EAAGH,IAAKC,KAAME,EAAGF,SAExD,CAEAtB,KAAKyB,QAAUvB,EACf,OAAOF,KAAKyB,OAChB,CAEOX,WACH,IAAKd,KAAKyB,UAAYzB,KAAKC,SAAU,OAAO,KAC5C,MAAMC,EAASF,KAAKyB,QACpB,MAAMd,EAAMT,EAAOwB,iBAEnB,GAAI1B,KAAKC,SAASiB,cAAgBP,GAAOA,EAAIgB,SAAW,IAAK,CACzDzB,EAAO0B,cAAc,SACrB1B,EAAO2B,kBAAkB,0BACzB,OAAO,KACX,CAEA3B,EAAO0B,cAAc,QACrB,OAAO,IACX,CAEUE,aACN,GAAI9B,KAAKyB,SAAWzB,KAAKC,SAAU,CAC/B,MAAMC,EAASF,KAAKyB,QACpBvB,EAAO6B,YAAY/B,KAAKC,SAASK,WACrC,CACJ,EACH,IAAA0B,EAAA,CAAAC,WAAA,MAAAD,EAAApC,iBAAA,OAAAoC,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
sap.ui.define(["./BasePlugin", "sap/m/StepInput"], function (___BasePlugin, StepInput) {
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @file NumberPlugin.ts
|
|
6
|
+
* @description Renders a sap.m.StepInput for numeric data.
|
|
7
|
+
*/
|
|
8
|
+
const BasePlugin = ___BasePlugin["BasePlugin"];
|
|
9
|
+
/**
|
|
10
|
+
* Handles rendering and logic for numeric inputs with precision and scale.
|
|
11
|
+
*/
|
|
12
|
+
class NumberPlugin extends BasePlugin {
|
|
13
|
+
render(fieldMetadata, bindingPath) {
|
|
14
|
+
this.metadata = fieldMetadata;
|
|
15
|
+
this.control = new StepInput({
|
|
16
|
+
value: `{meta>${bindingPath}}`,
|
|
17
|
+
displayValuePrecision: fieldMetadata.scale || 0,
|
|
18
|
+
editable: !fieldMetadata.isReadOnly,
|
|
19
|
+
required: fieldMetadata.isRequired,
|
|
20
|
+
change: oEvent => {
|
|
21
|
+
const val = oEvent.getParameter("value");
|
|
22
|
+
this.publishChange(val);
|
|
23
|
+
this.validate();
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return this.control;
|
|
27
|
+
}
|
|
28
|
+
validate() {
|
|
29
|
+
if (!this.control || !this.metadata) return true;
|
|
30
|
+
const input = this.control;
|
|
31
|
+
const val = input.getValue();
|
|
32
|
+
if (this.metadata.isRequired && (val === null || val === undefined)) {
|
|
33
|
+
input.setValueState("Error");
|
|
34
|
+
input.setValueStateText("This field is required.");
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
input.setValueState("None");
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
applyState() {
|
|
41
|
+
if (this.control && this.metadata) {
|
|
42
|
+
const input = this.control;
|
|
43
|
+
input.setEditable(!this.metadata.isReadOnly);
|
|
44
|
+
input.setRequired(this.metadata.isRequired);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
var __exports = {
|
|
49
|
+
__esModule: true
|
|
50
|
+
};
|
|
51
|
+
__exports.NumberPlugin = NumberPlugin;
|
|
52
|
+
return __exports;
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=NumberPlugin-dbg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberPlugin-dbg.js","names":["BasePlugin","___BasePlugin","NumberPlugin","render","fieldMetadata","bindingPath","metadata","control","StepInput","value","displayValuePrecision","scale","editable","isReadOnly","required","isRequired","change","oEvent","val","getParameter","publishChange","validate","input","getValue","undefined","setValueState","setValueStateText","applyState","setEditable","setRequired","__exports","__esModule"],"sources":["NumberPlugin.ts"],"sourcesContent":["/**\r\n * @file NumberPlugin.ts\r\n * @description Renders a sap.m.StepInput for numeric data.\r\n */\r\n\r\nimport { BasePlugin } from \"./BasePlugin\";\r\nimport { IFieldMetadata } from \"../interfaces/ISchema\";\r\nimport StepInput from \"sap/m/StepInput\";\r\nimport Control from \"sap/ui/core/Control\";\r\n\r\n/**\r\n * Handles rendering and logic for numeric inputs with precision and scale.\r\n */\r\nexport class NumberPlugin extends BasePlugin {\r\n public render(fieldMetadata: IFieldMetadata, bindingPath: string): Control {\r\n this.metadata = fieldMetadata;\r\n \r\n this.control = new StepInput({\r\n value: `{meta>${bindingPath}}`,\r\n displayValuePrecision: fieldMetadata.scale || 0,\r\n editable: !fieldMetadata.isReadOnly,\r\n required: fieldMetadata.isRequired,\r\n change: (oEvent: any) => {\r\n const val = oEvent.getParameter(\"value\");\r\n this.publishChange(val);\r\n this.validate();\r\n }\r\n });\r\n\r\n return this.control;\r\n }\r\n\r\n public validate(): boolean {\r\n if (!this.control || !this.metadata) return true;\r\n const input = this.control as StepInput;\r\n const val = input.getValue();\r\n\r\n if (this.metadata.isRequired && (val === null || val === undefined)) {\r\n input.setValueState(\"Error\" as any);\r\n input.setValueStateText(\"This field is required.\");\r\n return false;\r\n }\r\n\r\n input.setValueState(\"None\" as any);\r\n return true;\r\n }\r\n\r\n protected applyState(): void {\r\n if (this.control && this.metadata) {\r\n const input = this.control as StepInput;\r\n input.setEditable(!this.metadata.isReadOnly);\r\n input.setRequired(this.metadata.isRequired);\r\n }\r\n }\r\n}\r\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,UAAU,GAAAC,aAAA;EAKnB;AACA;AACA;EACO,MAAMC,YAAY,SAASF,UAAU,CAAC;IAClCG,MAAMA,CAACC,aAA6B,EAAEC,WAAmB,EAAW;MACvE,IAAI,CAACC,QAAQ,GAAGF,aAAa;MAE7B,IAAI,CAACG,OAAO,GAAG,IAAIC,SAAS,CAAC;QACzBC,KAAK,EAAE,SAASJ,WAAW,GAAG;QAC9BK,qBAAqB,EAAEN,aAAa,CAACO,KAAK,IAAI,CAAC;QAC/CC,QAAQ,EAAE,CAACR,aAAa,CAACS,UAAU;QACnCC,QAAQ,EAAEV,aAAa,CAACW,UAAU;QAClCC,MAAM,EAAGC,MAAW,IAAK;UACrB,MAAMC,GAAG,GAAGD,MAAM,CAACE,YAAY,CAAC,OAAO,CAAC;UACxC,IAAI,CAACC,aAAa,CAACF,GAAG,CAAC;UACvB,IAAI,CAACG,QAAQ,CAAC,CAAC;QACnB;MACJ,CAAC,CAAC;MAEF,OAAO,IAAI,CAACd,OAAO;IACvB;IAEOc,QAAQA,CAAA,EAAY;MACvB,IAAI,CAAC,IAAI,CAACd,OAAO,IAAI,CAAC,IAAI,CAACD,QAAQ,EAAE,OAAO,IAAI;MAChD,MAAMgB,KAAK,GAAG,IAAI,CAACf,OAAoB;MACvC,MAAMW,GAAG,GAAGI,KAAK,CAACC,QAAQ,CAAC,CAAC;MAE5B,IAAI,IAAI,CAACjB,QAAQ,CAACS,UAAU,KAAKG,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAKM,SAAS,CAAC,EAAE;QACjEF,KAAK,CAACG,aAAa,CAAC,OAAc,CAAC;QACnCH,KAAK,CAACI,iBAAiB,CAAC,yBAAyB,CAAC;QAClD,OAAO,KAAK;MAChB;MAEAJ,KAAK,CAACG,aAAa,CAAC,MAAa,CAAC;MAClC,OAAO,IAAI;IACf;IAEUE,UAAUA,CAAA,EAAS;MACzB,IAAI,IAAI,CAACpB,OAAO,IAAI,IAAI,CAACD,QAAQ,EAAE;QAC/B,MAAMgB,KAAK,GAAG,IAAI,CAACf,OAAoB;QACvCe,KAAK,CAACM,WAAW,CAAC,CAAC,IAAI,CAACtB,QAAQ,CAACO,UAAU,CAAC;QAC5CS,KAAK,CAACO,WAAW,CAAC,IAAI,CAACvB,QAAQ,CAACS,UAAU,CAAC;MAC/C;IACJ;EACJ;EAAC,IAAAe,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAA5B,YAAA,GAAAA,YAAA;EAAA,OAAA4B,SAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare module "nz/co/siliconst/ui5/metaui/plugins/NumberPlugin" {
|
|
2
|
+
/**
|
|
3
|
+
* @file NumberPlugin.ts
|
|
4
|
+
* @description Renders a sap.m.StepInput for numeric data.
|
|
5
|
+
*/
|
|
6
|
+
import { BasePlugin } from "nz/co/siliconst/ui5/metaui/plugins/BasePlugin";
|
|
7
|
+
import { IFieldMetadata } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
|
|
8
|
+
import Control from "sap/ui/core/Control";
|
|
9
|
+
/**
|
|
10
|
+
* Handles rendering and logic for numeric inputs with precision and scale.
|
|
11
|
+
*/
|
|
12
|
+
export class NumberPlugin extends BasePlugin {
|
|
13
|
+
render(fieldMetadata: IFieldMetadata, bindingPath: string): Control;
|
|
14
|
+
validate(): boolean;
|
|
15
|
+
protected applyState(): void;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=NumberPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberPlugin.d.ts","sourceRoot":"..\\..\\..\\..\\..\\..\\..\\..","sources":["src\\nz\\co\\siliconst\\ui5\\metaui\\plugins\\NumberPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iDAAiD,CAAC;IACjE;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;IAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;IAE/E,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;OAEG;IACH,MAAa,YAAa,SAAQ,UAAU;QACjC,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;QAkBnE,QAAQ,IAAI,OAAO;QAe1B,SAAS,CAAC,UAAU,IAAI,IAAI;KAO/B;CAEA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
sap.ui.define(["./BasePlugin","sap/m/StepInput"],function(e,t){"use strict";const a=e["BasePlugin"];class i extends a{render(e,a){this.metadata=e;this.control=new t({value:`{meta>${a}}`,displayValuePrecision:e.scale||0,editable:!e.isReadOnly,required:e.isRequired,change:e=>{const t=e.getParameter("value");this.publishChange(t);this.validate()}});return this.control}validate(){if(!this.control||!this.metadata)return true;const e=this.control;const t=e.getValue();if(this.metadata.isRequired&&(t===null||t===undefined)){e.setValueState("Error");e.setValueStateText("This field is required.");return false}e.setValueState("None");return true}applyState(){if(this.control&&this.metadata){const e=this.control;e.setEditable(!this.metadata.isReadOnly);e.setRequired(this.metadata.isRequired)}}}var s={__esModule:true};s.NumberPlugin=i;return s});
|
|
2
|
+
//# sourceMappingURL=NumberPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberPlugin.js","names":["BasePlugin","___BasePlugin","NumberPlugin","render","fieldMetadata","bindingPath","this","metadata","control","StepInput","value","displayValuePrecision","scale","editable","isReadOnly","required","isRequired","change","oEvent","val","getParameter","publishChange","validate","input","getValue","undefined","setValueState","setValueStateText","applyState","setEditable","setRequired","__exports","__esModule"],"sources":["NumberPlugin.ts"],"sourcesContent":["/**\r\n * @file NumberPlugin.ts\r\n * @description Renders a sap.m.StepInput for numeric data.\r\n */\r\n\r\nimport { BasePlugin } from \"./BasePlugin\";\r\nimport { IFieldMetadata } from \"../interfaces/ISchema\";\r\nimport StepInput from \"sap/m/StepInput\";\r\nimport Control from \"sap/ui/core/Control\";\r\n\r\n/**\r\n * Handles rendering and logic for numeric inputs with precision and scale.\r\n */\r\nexport class NumberPlugin extends BasePlugin {\r\n public render(fieldMetadata: IFieldMetadata, bindingPath: string): Control {\r\n this.metadata = fieldMetadata;\r\n \r\n this.control = new StepInput({\r\n value: `{meta>${bindingPath}}`,\r\n displayValuePrecision: fieldMetadata.scale || 0,\r\n editable: !fieldMetadata.isReadOnly,\r\n required: fieldMetadata.isRequired,\r\n change: (oEvent: any) => {\r\n const val = oEvent.getParameter(\"value\");\r\n this.publishChange(val);\r\n this.validate();\r\n }\r\n });\r\n\r\n return this.control;\r\n }\r\n\r\n public validate(): boolean {\r\n if (!this.control || !this.metadata) return true;\r\n const input = this.control as StepInput;\r\n const val = input.getValue();\r\n\r\n if (this.metadata.isRequired && (val === null || val === undefined)) {\r\n input.setValueState(\"Error\" as any);\r\n input.setValueStateText(\"This field is required.\");\r\n return false;\r\n }\r\n\r\n input.setValueState(\"None\" as any);\r\n return true;\r\n }\r\n\r\n protected applyState(): void {\r\n if (this.control && this.metadata) {\r\n const input = this.control as StepInput;\r\n input.setEditable(!this.metadata.isReadOnly);\r\n input.setRequired(this.metadata.isRequired);\r\n }\r\n }\r\n}\r\n"],"mappings":"4EAAA,MAKSA,EAAUC,EAAA,cAQZ,MAAMC,UAAqBF,EACvBG,OAAOC,EAA+BC,GACzCC,KAAKC,SAAWH,EAEhBE,KAAKE,QAAU,IAAIC,EAAU,CACzBC,MAAO,SAASL,KAChBM,sBAAuBP,EAAcQ,OAAS,EAC9CC,UAAWT,EAAcU,WACzBC,SAAUX,EAAcY,WACxBC,OAASC,IACL,MAAMC,EAAMD,EAAOE,aAAa,SAChCd,KAAKe,cAAcF,GACnBb,KAAKgB,cAIb,OAAOhB,KAAKE,OAChB,CAEOc,WACH,IAAKhB,KAAKE,UAAYF,KAAKC,SAAU,OAAO,KAC5C,MAAMgB,EAAQjB,KAAKE,QACnB,MAAMW,EAAMI,EAAMC,WAElB,GAAIlB,KAAKC,SAASS,aAAeG,IAAQ,MAAQA,IAAQM,WAAY,CACjEF,EAAMG,cAAc,SACpBH,EAAMI,kBAAkB,2BACxB,OAAO,KACX,CAEAJ,EAAMG,cAAc,QACpB,OAAO,IACX,CAEUE,aACN,GAAItB,KAAKE,SAAWF,KAAKC,SAAU,CAC/B,MAAMgB,EAAQjB,KAAKE,QACnBe,EAAMM,aAAavB,KAAKC,SAASO,YACjCS,EAAMO,YAAYxB,KAAKC,SAASS,WACpC,CACJ,EACH,IAAAe,EAAA,CAAAC,WAAA,MAAAD,EAAA7B,eAAA,OAAA6B,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
sap.ui.define(["./BasePlugin", "sap/m/Input"], function (___BasePlugin, Input) {
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @file StringPlugin.ts
|
|
6
|
+
* @description Renders a sap.m.Input for string data and validates lengths.
|
|
7
|
+
*/
|
|
8
|
+
const BasePlugin = ___BasePlugin["BasePlugin"];
|
|
9
|
+
/**
|
|
10
|
+
* Handles rendering and logic for basic text inputs.
|
|
11
|
+
*/
|
|
12
|
+
class StringPlugin extends BasePlugin {
|
|
13
|
+
render(fieldMetadata, bindingPath) {
|
|
14
|
+
this.metadata = fieldMetadata;
|
|
15
|
+
this.control = new Input({
|
|
16
|
+
value: `{meta>${bindingPath}}`,
|
|
17
|
+
maxLength: fieldMetadata.maxLength || 0,
|
|
18
|
+
editable: !fieldMetadata.isReadOnly,
|
|
19
|
+
required: fieldMetadata.isRequired,
|
|
20
|
+
change: oEvent => {
|
|
21
|
+
const val = oEvent.getParameter("value");
|
|
22
|
+
this.publishChange(val);
|
|
23
|
+
this.validate();
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return this.control;
|
|
27
|
+
}
|
|
28
|
+
validate() {
|
|
29
|
+
if (!this.control || !this.metadata) return true;
|
|
30
|
+
const input = this.control;
|
|
31
|
+
const val = input.getValue();
|
|
32
|
+
if (this.metadata.isRequired && (!val || val.trim() === "")) {
|
|
33
|
+
input.setValueState("Error");
|
|
34
|
+
input.setValueStateText("This field is required.");
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
input.setValueState("None");
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
applyState() {
|
|
41
|
+
if (this.control && this.metadata) {
|
|
42
|
+
const input = this.control;
|
|
43
|
+
input.setEditable(!this.metadata.isReadOnly);
|
|
44
|
+
input.setRequired(this.metadata.isRequired);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
var __exports = {
|
|
49
|
+
__esModule: true
|
|
50
|
+
};
|
|
51
|
+
__exports.StringPlugin = StringPlugin;
|
|
52
|
+
return __exports;
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=StringPlugin-dbg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringPlugin-dbg.js","names":["BasePlugin","___BasePlugin","StringPlugin","render","fieldMetadata","bindingPath","metadata","control","Input","value","maxLength","editable","isReadOnly","required","isRequired","change","oEvent","val","getParameter","publishChange","validate","input","getValue","trim","setValueState","setValueStateText","applyState","setEditable","setRequired","__exports","__esModule"],"sources":["StringPlugin.ts"],"sourcesContent":["/**\r\n * @file StringPlugin.ts\r\n * @description Renders a sap.m.Input for string data and validates lengths.\r\n */\r\n\r\nimport { BasePlugin } from \"./BasePlugin\";\r\nimport { IFieldMetadata } from \"../interfaces/ISchema\";\r\nimport Input from \"sap/m/Input\";\r\nimport Control from \"sap/ui/core/Control\";\r\n\r\n/**\r\n * Handles rendering and logic for basic text inputs.\r\n */\r\nexport class StringPlugin extends BasePlugin {\r\n public render(fieldMetadata: IFieldMetadata, bindingPath: string): Control {\r\n this.metadata = fieldMetadata;\r\n \r\n this.control = new Input({\r\n value: `{meta>${bindingPath}}`,\r\n maxLength: fieldMetadata.maxLength || 0,\r\n editable: !fieldMetadata.isReadOnly,\r\n required: fieldMetadata.isRequired,\r\n change: (oEvent: any) => {\r\n const val = oEvent.getParameter(\"value\");\r\n this.publishChange(val);\r\n this.validate();\r\n }\r\n });\r\n\r\n return this.control;\r\n }\r\n\r\n public validate(): boolean {\r\n if (!this.control || !this.metadata) return true;\r\n const input = this.control as Input;\r\n const val = input.getValue();\r\n\r\n if (this.metadata.isRequired && (!val || val.trim() === \"\")) {\r\n input.setValueState(\"Error\" as any);\r\n input.setValueStateText(\"This field is required.\");\r\n return false;\r\n }\r\n\r\n input.setValueState(\"None\" as any);\r\n return true;\r\n }\r\n\r\n protected applyState(): void {\r\n if (this.control && this.metadata) {\r\n const input = this.control as Input;\r\n input.setEditable(!this.metadata.isReadOnly);\r\n input.setRequired(this.metadata.isRequired);\r\n }\r\n }\r\n}\r\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,UAAU,GAAAC,aAAA;EAKnB;AACA;AACA;EACO,MAAMC,YAAY,SAASF,UAAU,CAAC;IAClCG,MAAMA,CAACC,aAA6B,EAAEC,WAAmB,EAAW;MACvE,IAAI,CAACC,QAAQ,GAAGF,aAAa;MAE7B,IAAI,CAACG,OAAO,GAAG,IAAIC,KAAK,CAAC;QACrBC,KAAK,EAAE,SAASJ,WAAW,GAAG;QAC9BK,SAAS,EAAEN,aAAa,CAACM,SAAS,IAAI,CAAC;QACvCC,QAAQ,EAAE,CAACP,aAAa,CAACQ,UAAU;QACnCC,QAAQ,EAAET,aAAa,CAACU,UAAU;QAClCC,MAAM,EAAGC,MAAW,IAAK;UACrB,MAAMC,GAAG,GAAGD,MAAM,CAACE,YAAY,CAAC,OAAO,CAAC;UACxC,IAAI,CAACC,aAAa,CAACF,GAAG,CAAC;UACvB,IAAI,CAACG,QAAQ,CAAC,CAAC;QACnB;MACJ,CAAC,CAAC;MAEF,OAAO,IAAI,CAACb,OAAO;IACvB;IAEOa,QAAQA,CAAA,EAAY;MACvB,IAAI,CAAC,IAAI,CAACb,OAAO,IAAI,CAAC,IAAI,CAACD,QAAQ,EAAE,OAAO,IAAI;MAChD,MAAMe,KAAK,GAAG,IAAI,CAACd,OAAgB;MACnC,MAAMU,GAAG,GAAGI,KAAK,CAACC,QAAQ,CAAC,CAAC;MAE5B,IAAI,IAAI,CAAChB,QAAQ,CAACQ,UAAU,KAAK,CAACG,GAAG,IAAIA,GAAG,CAACM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;QACzDF,KAAK,CAACG,aAAa,CAAC,OAAc,CAAC;QACnCH,KAAK,CAACI,iBAAiB,CAAC,yBAAyB,CAAC;QAClD,OAAO,KAAK;MAChB;MAEAJ,KAAK,CAACG,aAAa,CAAC,MAAa,CAAC;MAClC,OAAO,IAAI;IACf;IAEUE,UAAUA,CAAA,EAAS;MACzB,IAAI,IAAI,CAACnB,OAAO,IAAI,IAAI,CAACD,QAAQ,EAAE;QAC/B,MAAMe,KAAK,GAAG,IAAI,CAACd,OAAgB;QACnCc,KAAK,CAACM,WAAW,CAAC,CAAC,IAAI,CAACrB,QAAQ,CAACM,UAAU,CAAC;QAC5CS,KAAK,CAACO,WAAW,CAAC,IAAI,CAACtB,QAAQ,CAACQ,UAAU,CAAC;MAC/C;IACJ;EACJ;EAAC,IAAAe,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAA3B,YAAA,GAAAA,YAAA;EAAA,OAAA2B,SAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare module "nz/co/siliconst/ui5/metaui/plugins/StringPlugin" {
|
|
2
|
+
/**
|
|
3
|
+
* @file StringPlugin.ts
|
|
4
|
+
* @description Renders a sap.m.Input for string data and validates lengths.
|
|
5
|
+
*/
|
|
6
|
+
import { BasePlugin } from "nz/co/siliconst/ui5/metaui/plugins/BasePlugin";
|
|
7
|
+
import { IFieldMetadata } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
|
|
8
|
+
import Control from "sap/ui/core/Control";
|
|
9
|
+
/**
|
|
10
|
+
* Handles rendering and logic for basic text inputs.
|
|
11
|
+
*/
|
|
12
|
+
export class StringPlugin extends BasePlugin {
|
|
13
|
+
render(fieldMetadata: IFieldMetadata, bindingPath: string): Control;
|
|
14
|
+
validate(): boolean;
|
|
15
|
+
protected applyState(): void;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=StringPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringPlugin.d.ts","sourceRoot":"..\\..\\..\\..\\..\\..\\..\\..","sources":["src\\nz\\co\\siliconst\\ui5\\metaui\\plugins\\StringPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iDAAiD,CAAC;IACjE;;;OAGG;IAEH,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;IAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;IAE/E,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;OAEG;IACH,MAAa,YAAa,SAAQ,UAAU;QACjC,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;QAkBnE,QAAQ,IAAI,OAAO;QAe1B,SAAS,CAAC,UAAU,IAAI,IAAI;KAO/B;CAEA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
sap.ui.define(["./BasePlugin","sap/m/Input"],function(t,e){"use strict";const a=t["BasePlugin"];class i extends a{render(t,a){this.metadata=t;this.control=new e({value:`{meta>${a}}`,maxLength:t.maxLength||0,editable:!t.isReadOnly,required:t.isRequired,change:t=>{const e=t.getParameter("value");this.publishChange(e);this.validate()}});return this.control}validate(){if(!this.control||!this.metadata)return true;const t=this.control;const e=t.getValue();if(this.metadata.isRequired&&(!e||e.trim()==="")){t.setValueState("Error");t.setValueStateText("This field is required.");return false}t.setValueState("None");return true}applyState(){if(this.control&&this.metadata){const t=this.control;t.setEditable(!this.metadata.isReadOnly);t.setRequired(this.metadata.isRequired)}}}var s={__esModule:true};s.StringPlugin=i;return s});
|
|
2
|
+
//# sourceMappingURL=StringPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringPlugin.js","names":["BasePlugin","___BasePlugin","StringPlugin","render","fieldMetadata","bindingPath","this","metadata","control","Input","value","maxLength","editable","isReadOnly","required","isRequired","change","oEvent","val","getParameter","publishChange","validate","input","getValue","trim","setValueState","setValueStateText","applyState","setEditable","setRequired","__exports","__esModule"],"sources":["StringPlugin.ts"],"sourcesContent":["/**\r\n * @file StringPlugin.ts\r\n * @description Renders a sap.m.Input for string data and validates lengths.\r\n */\r\n\r\nimport { BasePlugin } from \"./BasePlugin\";\r\nimport { IFieldMetadata } from \"../interfaces/ISchema\";\r\nimport Input from \"sap/m/Input\";\r\nimport Control from \"sap/ui/core/Control\";\r\n\r\n/**\r\n * Handles rendering and logic for basic text inputs.\r\n */\r\nexport class StringPlugin extends BasePlugin {\r\n public render(fieldMetadata: IFieldMetadata, bindingPath: string): Control {\r\n this.metadata = fieldMetadata;\r\n \r\n this.control = new Input({\r\n value: `{meta>${bindingPath}}`,\r\n maxLength: fieldMetadata.maxLength || 0,\r\n editable: !fieldMetadata.isReadOnly,\r\n required: fieldMetadata.isRequired,\r\n change: (oEvent: any) => {\r\n const val = oEvent.getParameter(\"value\");\r\n this.publishChange(val);\r\n this.validate();\r\n }\r\n });\r\n\r\n return this.control;\r\n }\r\n\r\n public validate(): boolean {\r\n if (!this.control || !this.metadata) return true;\r\n const input = this.control as Input;\r\n const val = input.getValue();\r\n\r\n if (this.metadata.isRequired && (!val || val.trim() === \"\")) {\r\n input.setValueState(\"Error\" as any);\r\n input.setValueStateText(\"This field is required.\");\r\n return false;\r\n }\r\n\r\n input.setValueState(\"None\" as any);\r\n return true;\r\n }\r\n\r\n protected applyState(): void {\r\n if (this.control && this.metadata) {\r\n const input = this.control as Input;\r\n input.setEditable(!this.metadata.isReadOnly);\r\n input.setRequired(this.metadata.isRequired);\r\n }\r\n }\r\n}\r\n"],"mappings":"wEAAA,MAKSA,EAAUC,EAAA,cAQZ,MAAMC,UAAqBF,EACvBG,OAAOC,EAA+BC,GACzCC,KAAKC,SAAWH,EAEhBE,KAAKE,QAAU,IAAIC,EAAM,CACrBC,MAAO,SAASL,KAChBM,UAAWP,EAAcO,WAAa,EACtCC,UAAWR,EAAcS,WACzBC,SAAUV,EAAcW,WACxBC,OAASC,IACL,MAAMC,EAAMD,EAAOE,aAAa,SAChCb,KAAKc,cAAcF,GACnBZ,KAAKe,cAIb,OAAOf,KAAKE,OAChB,CAEOa,WACH,IAAKf,KAAKE,UAAYF,KAAKC,SAAU,OAAO,KAC5C,MAAMe,EAAQhB,KAAKE,QACnB,MAAMU,EAAMI,EAAMC,WAElB,GAAIjB,KAAKC,SAASQ,cAAgBG,GAAOA,EAAIM,SAAW,IAAK,CACzDF,EAAMG,cAAc,SACpBH,EAAMI,kBAAkB,2BACxB,OAAO,KACX,CAEAJ,EAAMG,cAAc,QACpB,OAAO,IACX,CAEUE,aACN,GAAIrB,KAAKE,SAAWF,KAAKC,SAAU,CAC/B,MAAMe,EAAQhB,KAAKE,QACnBc,EAAMM,aAAatB,KAAKC,SAASM,YACjCS,EAAMO,YAAYvB,KAAKC,SAASQ,WACpC,CACJ,EACH,IAAAe,EAAA,CAAAC,WAAA,MAAAD,EAAA5B,eAAA,OAAA4B,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
sap.ui.define([
|
|
2
|
+
"sap/ui/core/mvc/Controller",
|
|
3
|
+
"nz/co/siliconst/ui5/metaui/controls/GeneratorHost",
|
|
4
|
+
"sap/m/MessageToast",
|
|
5
|
+
"nz/co/siliconst/ui5/metaui/library"
|
|
6
|
+
], function(Controller, GeneratorHost, MessageToast) {
|
|
7
|
+
"use strict";
|
|
8
|
+
|
|
9
|
+
return Controller.extend("test.Main", {
|
|
10
|
+
onInit: function() {
|
|
11
|
+
this.mockSchema = null;
|
|
12
|
+
this.initialData = null;
|
|
13
|
+
|
|
14
|
+
// Fetch the external JSON files to simulate backend payload ingestion
|
|
15
|
+
Promise.all([
|
|
16
|
+
fetch("mockSchema.json").then(res => res.json()),
|
|
17
|
+
fetch("mockData.json").then(res => res.json())
|
|
18
|
+
]).then((results) => {
|
|
19
|
+
this.mockSchema = results[0];
|
|
20
|
+
this.initialData = results[1];
|
|
21
|
+
|
|
22
|
+
var sapUIModel = sap.ui.require("sap/ui/model/json/JSONModel");
|
|
23
|
+
if (!sapUIModel) {
|
|
24
|
+
sapUIModel = sap.ui.model.json.JSONModel;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Create JSON models for the declarative XML binding
|
|
28
|
+
var schemaModel = new sapUIModel(this.mockSchema);
|
|
29
|
+
var dataModel = new sapUIModel(this.initialData);
|
|
30
|
+
|
|
31
|
+
this.getView().setModel(schemaModel, "schemaModel");
|
|
32
|
+
this.getView().setModel(dataModel, "dataModel");
|
|
33
|
+
|
|
34
|
+
MessageToast.show("JSON payloads successfully bound to XML View.");
|
|
35
|
+
}).catch((err) => {
|
|
36
|
+
MessageToast.show("Error loading JSON.");
|
|
37
|
+
console.error("Fetch error:", err);
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
// ---------- OPTION 1: XML BINDING INLINE ----------
|
|
42
|
+
onSaveInline: function() {
|
|
43
|
+
// Trigger the submit event on the embedded XML control
|
|
44
|
+
this.byId("metaHost").triggerSubmit();
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
// ---------- OPTION 2: JAVASCRIPT API DIALOG ----------
|
|
48
|
+
onOpenDialog: function() {
|
|
49
|
+
if (!this.mockSchema || !this.initialData) {
|
|
50
|
+
MessageToast.show("JSON payloads not loaded yet.");
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const host = new GeneratorHost({
|
|
55
|
+
schemaDefinition: this.mockSchema,
|
|
56
|
+
initialData: this.initialData,
|
|
57
|
+
submit: (oEvent) => {
|
|
58
|
+
this.onSubmit(oEvent); // Reuse the same handler to output payload
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
host.openInDialog("MetaUI Generated Form (JS API)", "OK");
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
// ---------- COMMON OUTPUT HANDLER ----------
|
|
66
|
+
onSubmit: function(oEvent) {
|
|
67
|
+
// Extract the clean JSON payload from the UI5 engine event
|
|
68
|
+
const payload = oEvent.getParameter("payload");
|
|
69
|
+
this.byId("outputArea").setValue(JSON.stringify(payload, null, 2));
|
|
70
|
+
MessageToast.show("Payload Extracted Successfully!");
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
});
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<mvc:View
|
|
2
|
+
controllerName="test.Main"
|
|
3
|
+
xmlns:mvc="sap.ui.core.mvc"
|
|
4
|
+
xmlns="sap.m"
|
|
5
|
+
xmlns:meta="nz.co.siliconst.ui5.metaui.controls"
|
|
6
|
+
displayBlock="true">
|
|
7
|
+
<App>
|
|
8
|
+
<Page title="MetaUI Standalone Sandbox Test">
|
|
9
|
+
<content>
|
|
10
|
+
<VBox class="sapUiSmallMargin" spacing="1rem">
|
|
11
|
+
|
|
12
|
+
<Panel headerText="Option 1: Declarative XML Binding (Inline)" expandable="true" expanded="true">
|
|
13
|
+
<content>
|
|
14
|
+
<Text text="This section uses the <meta:GeneratorHost> tag embedded directly into the XML view, bound to JSONModels." class="sapUiSmallMarginBottom" />
|
|
15
|
+
<meta:GeneratorHost
|
|
16
|
+
id="metaHost"
|
|
17
|
+
schemaDefinition="{schemaModel>/}"
|
|
18
|
+
initialData="{dataModel>/}"
|
|
19
|
+
submit=".onSubmit" />
|
|
20
|
+
<Button text="Save Inline Form" press=".onSaveInline" type="Emphasized" class="sapUiSmallMarginTop" />
|
|
21
|
+
</content>
|
|
22
|
+
</Panel>
|
|
23
|
+
|
|
24
|
+
<Panel headerText="Option 2: JavaScript API (Dialog Modality)" expandable="true" expanded="true">
|
|
25
|
+
<content>
|
|
26
|
+
<Text text="This section demonstrates instantiating the GeneratorHost purely in JavaScript and rendering it inside a sap.m.Dialog." class="sapUiSmallMarginBottom" />
|
|
27
|
+
<Button text="Open MetaUI Dialog" press=".onOpenDialog" type="Emphasized" />
|
|
28
|
+
</content>
|
|
29
|
+
</Panel>
|
|
30
|
+
|
|
31
|
+
<Panel headerText="Output Window" expandable="false">
|
|
32
|
+
<content>
|
|
33
|
+
<Title text="Submitted JSON Payload:" class="sapUiSmallMarginBottom" />
|
|
34
|
+
<TextArea id="outputArea" width="100%" rows="15" editable="false" />
|
|
35
|
+
</content>
|
|
36
|
+
</Panel>
|
|
37
|
+
|
|
38
|
+
</VBox>
|
|
39
|
+
</content>
|
|
40
|
+
</Page>
|
|
41
|
+
</App>
|
|
42
|
+
</mvc:View>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>MetaUI Test Sandbox</title>
|
|
6
|
+
<script
|
|
7
|
+
id="sap-ui-bootstrap"
|
|
8
|
+
src="https://ui5.sap.com/resources/sap-ui-core.js"
|
|
9
|
+
data-sap-ui-theme="sap_horizon"
|
|
10
|
+
data-sap-ui-resourceroots='{
|
|
11
|
+
"nz.co.siliconst.ui5.metaui": "../dist/resources/nz/co/siliconst/ui5/metaui",
|
|
12
|
+
"test": "./"
|
|
13
|
+
}'
|
|
14
|
+
data-sap-ui-oninit="module:test/App"
|
|
15
|
+
data-sap-ui-compatVersion="edge"
|
|
16
|
+
data-sap-ui-async="true">
|
|
17
|
+
</script>
|
|
18
|
+
</head>
|
|
19
|
+
<body class="sapUiBody sapUiSizeCompact" id="content">
|
|
20
|
+
</body>
|
|
21
|
+
</html>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"CustomerName": "Siliconst Corp",
|
|
3
|
+
"IsActive": true,
|
|
4
|
+
"CreditLimit": 150000.00,
|
|
5
|
+
"AccountType": "ENTERPRISE",
|
|
6
|
+
"CreationDate": "2026-07-17",
|
|
7
|
+
"Contacts": [
|
|
8
|
+
{
|
|
9
|
+
"ContactID": "C-001",
|
|
10
|
+
"FullName": "Alice Smith",
|
|
11
|
+
"Role": "ADMIN",
|
|
12
|
+
"HasPortalAccess": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"ContactID": "C-002",
|
|
16
|
+
"FullName": "Bob Jones",
|
|
17
|
+
"Role": "BILLING",
|
|
18
|
+
"HasPortalAccess": false
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"ContactID": "C-003",
|
|
22
|
+
"FullName": "Charlie Davis",
|
|
23
|
+
"Role": "TECH",
|
|
24
|
+
"HasPortalAccess": true
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mode": "mixed",
|
|
3
|
+
"tables": [
|
|
4
|
+
{
|
|
5
|
+
"tableName": "Contacts",
|
|
6
|
+
"label": "Authorized Contacts",
|
|
7
|
+
"fields": [
|
|
8
|
+
{
|
|
9
|
+
"fieldName": "ContactID",
|
|
10
|
+
"type": "string",
|
|
11
|
+
"label": "ID",
|
|
12
|
+
"isKey": true,
|
|
13
|
+
"isReadOnly": true,
|
|
14
|
+
"isRequired": true
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"fieldName": "FullName",
|
|
18
|
+
"type": "string",
|
|
19
|
+
"label": "Full Name",
|
|
20
|
+
"isKey": false,
|
|
21
|
+
"isReadOnly": false,
|
|
22
|
+
"isRequired": true,
|
|
23
|
+
"maxLength": 100
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"fieldName": "Role",
|
|
27
|
+
"type": "dropdown",
|
|
28
|
+
"label": "Role",
|
|
29
|
+
"isKey": false,
|
|
30
|
+
"isReadOnly": false,
|
|
31
|
+
"isRequired": true,
|
|
32
|
+
"valueHelp": [
|
|
33
|
+
{ "key": "ADMIN", "text": "Administrator" },
|
|
34
|
+
{ "key": "BILLING", "text": "Billing Contact" },
|
|
35
|
+
{ "key": "TECH", "text": "Technical Support" }
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"fieldName": "HasPortalAccess",
|
|
40
|
+
"type": "boolean",
|
|
41
|
+
"label": "Portal Access",
|
|
42
|
+
"isKey": false,
|
|
43
|
+
"isReadOnly": false,
|
|
44
|
+
"isRequired": false
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"rootFields": [
|
|
50
|
+
{
|
|
51
|
+
"fieldName": "CustomerName",
|
|
52
|
+
"type": "string",
|
|
53
|
+
"label": "Customer Name",
|
|
54
|
+
"isKey": true,
|
|
55
|
+
"isReadOnly": false,
|
|
56
|
+
"isRequired": true,
|
|
57
|
+
"maxLength": 50
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"fieldName": "IsActive",
|
|
61
|
+
"type": "boolean",
|
|
62
|
+
"label": "Account Active",
|
|
63
|
+
"isKey": false,
|
|
64
|
+
"isReadOnly": false,
|
|
65
|
+
"isRequired": false
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"fieldName": "CreditLimit",
|
|
69
|
+
"type": "number",
|
|
70
|
+
"label": "Credit Limit (USD)",
|
|
71
|
+
"isKey": false,
|
|
72
|
+
"isReadOnly": false,
|
|
73
|
+
"isRequired": true,
|
|
74
|
+
"scale": 2
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"fieldName": "AccountType",
|
|
78
|
+
"type": "dropdown",
|
|
79
|
+
"label": "Account Type",
|
|
80
|
+
"isKey": false,
|
|
81
|
+
"isReadOnly": false,
|
|
82
|
+
"isRequired": true,
|
|
83
|
+
"valueHelp": [
|
|
84
|
+
{ "key": "BASIC", "text": "Basic Plan" },
|
|
85
|
+
{ "key": "PREMIUM", "text": "Premium Plan" },
|
|
86
|
+
{ "key": "ENTERPRISE", "text": "Enterprise Plan" }
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"fieldName": "CreationDate",
|
|
91
|
+
"type": "date",
|
|
92
|
+
"label": "Creation Date",
|
|
93
|
+
"isKey": false,
|
|
94
|
+
"isReadOnly": true,
|
|
95
|
+
"isRequired": false
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
}
|
package/ui5.yaml
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
specVersion: "3.0"
|
|
2
2
|
metadata:
|
|
3
3
|
name: nz.co.siliconst.ui5.metaui
|
|
4
|
-
type: library
|
|
5
|
-
builder:
|
|
6
|
-
customTasks:
|
|
7
|
-
- name: ui5-tooling-transpile-task
|
|
8
|
-
afterTask: replaceVersion
|
|
9
|
-
configuration:
|
|
10
|
-
debug: true
|
|
11
|
-
transformModulesToUI5:
|
|
12
|
-
overridesToOverride: true
|
|
4
|
+
type: library
|