@siliconst/metaui 1.0.2 → 1.2.0
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/README.md +134 -123
- package/package.json +3 -2
- package/src/nz/co/siliconst/ui5/metaui/.library +7 -7
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost-dbg.js +299 -163
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.d.ts +54 -6
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.ts +292 -162
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js +51 -43
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +5 -0
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +49 -40
- package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +81 -58
- package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +5 -12
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +82 -56
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus-dbg.js +65 -50
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.d.ts +9 -0
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/EventBus.ts +60 -45
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +72 -59
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +6 -4
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +71 -56
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +145 -36
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +13 -8
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +157 -31
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +55 -55
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +56 -56
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus-dbg.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.ts +29 -29
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager-dbg.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.d.ts +6 -12
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.ts +21 -26
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +3 -20
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +14 -33
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +33 -43
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +70 -70
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout-dbg.js +23 -38
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.d.ts +4 -17
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.ts +22 -34
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +98 -56
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts +7 -7
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +97 -60
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +102 -90
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts +4 -8
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +119 -102
- package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +43 -32
- package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library-preload.js +22 -17
- package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library.ts +55 -43
- package/src/nz/co/siliconst/ui5/metaui/manifest.json +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin-dbg.js +68 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.d.ts +15 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.ts +71 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin-dbg.js +54 -59
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.d.ts +8 -27
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.ts +56 -58
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin-dbg.js +41 -42
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.d.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.ts +41 -42
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin-dbg.js +68 -60
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.d.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.ts +69 -63
- package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin-dbg.js +68 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.d.ts +18 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.ts +68 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin-dbg.js +66 -66
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.d.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.ts +65 -65
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin-dbg.js +55 -53
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.d.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.ts +56 -55
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin-dbg.js +56 -53
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.d.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.ts +58 -55
- package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin-dbg.js +43 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.d.ts +18 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.ts +42 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin-dbg.js +58 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.d.ts +18 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.ts +58 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin-dbg.js +74 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.d.ts +18 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.ts +71 -0
- package/ui5.yaml +3 -3
- package/test-resources/App.js +0 -11
- package/test-resources/Main.controller.js +0 -73
- package/test-resources/Main.view.xml +0 -42
- package/test-resources/index.html +0 -21
- package/test-resources/mockData.json +0 -27
- package/test-resources/mockSchema.json +0 -98
|
@@ -1,102 +1,119 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file TableLayout.ts
|
|
3
|
-
* @description Generates a responsive SAP Fiori Table layout.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import Table from "sap/m/Table";
|
|
7
|
-
import Column from "sap/m/Column";
|
|
8
|
-
import Text from "sap/m/Text";
|
|
9
|
-
import ColumnListItem from "sap/m/ColumnListItem";
|
|
10
|
-
import Toolbar from "sap/m/Toolbar";
|
|
11
|
-
import Title from "sap/m/Title";
|
|
12
|
-
import ToolbarSpacer from "sap/m/ToolbarSpacer";
|
|
13
|
-
import Button from "sap/m/Button";
|
|
14
|
-
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
15
|
-
import {
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @file TableLayout.ts
|
|
3
|
+
* @description Generates a responsive SAP Fiori Table layout for v2 schema.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import Table from "sap/m/Table";
|
|
7
|
+
import Column from "sap/m/Column";
|
|
8
|
+
import Text from "sap/m/Text";
|
|
9
|
+
import ColumnListItem from "sap/m/ColumnListItem";
|
|
10
|
+
import Toolbar from "sap/m/Toolbar";
|
|
11
|
+
import Title from "sap/m/Title";
|
|
12
|
+
import ToolbarSpacer from "sap/m/ToolbarSpacer";
|
|
13
|
+
import Button from "sap/m/Button";
|
|
14
|
+
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
15
|
+
import { PluginRegistry } from "../core/PluginRegistry";
|
|
16
|
+
import Control from "sap/ui/core/Control";
|
|
17
|
+
import { IPlugin } from "../interfaces/IPlugin";
|
|
18
|
+
import { IPropertyMetadata } from "../interfaces/ISchema";
|
|
19
|
+
|
|
20
|
+
export class TableLayout {
|
|
21
|
+
/**
|
|
22
|
+
* Builds a responsive Table, dynamically calculating column priorities.
|
|
23
|
+
*/
|
|
24
|
+
public static build(tableMeta: IPropertyMetadata, bindingPath: string = "meta>/", tableTitle: string = "Table", trackPlugin?: (plugin: IPlugin) => void): Table {
|
|
25
|
+
if (!tableMeta.properties) {
|
|
26
|
+
throw new Error("[MetaUI] Table requires an items schema with properties.");
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const parts = bindingPath.split(">");
|
|
30
|
+
const actualModelName = parts.length > 1 ? parts[0] : undefined;
|
|
31
|
+
const actualPath = parts.length > 1 ? parts[1] : bindingPath;
|
|
32
|
+
// e.g. "meta>/Contacts" -> actualModelName = "meta", actualPath = "/Contacts"
|
|
33
|
+
|
|
34
|
+
const table = new Table({
|
|
35
|
+
headerToolbar: new Toolbar({
|
|
36
|
+
content: [
|
|
37
|
+
new Title({ text: tableTitle }),
|
|
38
|
+
new ToolbarSpacer(),
|
|
39
|
+
new Button({
|
|
40
|
+
text: "Add Row",
|
|
41
|
+
icon: "sap-icon://add",
|
|
42
|
+
press: (oEvent: any) => {
|
|
43
|
+
const btn = oEvent.getSource();
|
|
44
|
+
const tbl = btn.getParent().getParent() as Table;
|
|
45
|
+
const model = tbl.getModel(actualModelName) as JSONModel;
|
|
46
|
+
const info = tbl.getBindingInfo("items");
|
|
47
|
+
if (!info || !info.path) return;
|
|
48
|
+
|
|
49
|
+
const data = model.getProperty(info.path) || [];
|
|
50
|
+
data.push({}); // append empty row
|
|
51
|
+
model.setProperty(info.path, data);
|
|
52
|
+
}
|
|
53
|
+
})
|
|
54
|
+
]
|
|
55
|
+
}),
|
|
56
|
+
fixedLayout: false,
|
|
57
|
+
mode: "Delete",
|
|
58
|
+
delete: (oEvent: any) => {
|
|
59
|
+
const item = oEvent.getParameter("listItem");
|
|
60
|
+
const path = item.getBindingContext(actualModelName).getPath();
|
|
61
|
+
const model = item.getModel(actualModelName) as JSONModel;
|
|
62
|
+
|
|
63
|
+
const splitPaths = path.split("/");
|
|
64
|
+
const index = parseInt(splitPaths.pop() || "0", 10);
|
|
65
|
+
let arrayPath = splitPaths.join("/");
|
|
66
|
+
if (arrayPath === "") arrayPath = "/";
|
|
67
|
+
|
|
68
|
+
const data = model.getProperty(arrayPath);
|
|
69
|
+
data.splice(index, 1);
|
|
70
|
+
model.setProperty(arrayPath, data);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
const templateCells: Control[] = [];
|
|
75
|
+
const registry = PluginRegistry.getInstance();
|
|
76
|
+
const props = tableMeta.properties;
|
|
77
|
+
|
|
78
|
+
Object.keys(props).forEach((key) => {
|
|
79
|
+
try {
|
|
80
|
+
const fieldMeta = props[key];
|
|
81
|
+
const isKey = !!fieldMeta.ui?.isKey;
|
|
82
|
+
|
|
83
|
+
const column = new Column({
|
|
84
|
+
header: new Text({ text: fieldMeta.ui?.label || key }),
|
|
85
|
+
demandPopin: !isKey,
|
|
86
|
+
minScreenWidth: isKey ? "" : "Tablet",
|
|
87
|
+
popinDisplay: "Inline"
|
|
88
|
+
});
|
|
89
|
+
table.addColumn(column);
|
|
90
|
+
|
|
91
|
+
const plugin = registry.getPlugin(fieldMeta.type, fieldMeta.ui?.widget);
|
|
92
|
+
if (trackPlugin) trackPlugin(plugin);
|
|
93
|
+
const control = plugin.render(fieldMeta, key, actualModelName); // No trailing slash for relative bindings
|
|
94
|
+
templateCells.push(control);
|
|
95
|
+
} catch (error) {
|
|
96
|
+
sap.ui.require(["sap/base/Log"], (Log: any) => {
|
|
97
|
+
if (Log) Log.error(`[MetaUI] Failed to render column ${key}`, (error as Error).message, "TableLayout");
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
// Add an empty text control as a fallback so the table columns match the cells array length
|
|
101
|
+
templateCells.push(new Text({ text: "Error" }));
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
const rowTemplate = new ColumnListItem({
|
|
106
|
+
cells: templateCells
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
// V2 Fix: Actually bind the items to the table!
|
|
110
|
+
table.bindItems({
|
|
111
|
+
path: actualPath,
|
|
112
|
+
model: actualModelName,
|
|
113
|
+
template: rowTemplate,
|
|
114
|
+
templateShareable: false
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
return table;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
@@ -1,33 +1,44 @@
|
|
|
1
|
-
sap.ui.define(["sap/ui/core/Core", "./core/PluginRegistry", "./plugins/StringPlugin", "./plugins/NumberPlugin", "./plugins/BooleanPlugin", "./plugins/DropdownPlugin", "./plugins/DatePlugin"], function (Core, ___core_PluginRegistry, ___plugins_StringPlugin, ___plugins_NumberPlugin, ___plugins_BooleanPlugin, ___plugins_DropdownPlugin, ___plugins_DatePlugin) {
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
const PluginRegistry = ___core_PluginRegistry["PluginRegistry"];
|
|
5
|
-
const StringPlugin = ___plugins_StringPlugin["StringPlugin"];
|
|
6
|
-
const NumberPlugin = ___plugins_NumberPlugin["NumberPlugin"];
|
|
7
|
-
const BooleanPlugin = ___plugins_BooleanPlugin["BooleanPlugin"];
|
|
8
|
-
const DropdownPlugin = ___plugins_DropdownPlugin["DropdownPlugin"];
|
|
9
|
-
const DatePlugin = ___plugins_DatePlugin["DatePlugin"];
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
1
|
+
sap.ui.define(["sap/ui/core/Core", "./core/PluginRegistry", "./plugins/StringPlugin", "./plugins/NumberPlugin", "./plugins/BooleanPlugin", "./plugins/DropdownPlugin", "./plugins/DatePlugin", "./plugins/TimePlugin", "./plugins/DateTimePlugin", "./plugins/ArrayPlugin", "./plugins/TextAreaPlugin", "./plugins/SwitchPlugin"], function (Core, ___core_PluginRegistry, ___plugins_StringPlugin, ___plugins_NumberPlugin, ___plugins_BooleanPlugin, ___plugins_DropdownPlugin, ___plugins_DatePlugin, ___plugins_TimePlugin, ___plugins_DateTimePlugin, ___plugins_ArrayPlugin, ___plugins_TextAreaPlugin, ___plugins_SwitchPlugin) {
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
const PluginRegistry = ___core_PluginRegistry["PluginRegistry"];
|
|
5
|
+
const StringPlugin = ___plugins_StringPlugin["StringPlugin"];
|
|
6
|
+
const NumberPlugin = ___plugins_NumberPlugin["NumberPlugin"];
|
|
7
|
+
const BooleanPlugin = ___plugins_BooleanPlugin["BooleanPlugin"];
|
|
8
|
+
const DropdownPlugin = ___plugins_DropdownPlugin["DropdownPlugin"];
|
|
9
|
+
const DatePlugin = ___plugins_DatePlugin["DatePlugin"];
|
|
10
|
+
const TimePlugin = ___plugins_TimePlugin["TimePlugin"];
|
|
11
|
+
const DateTimePlugin = ___plugins_DateTimePlugin["DateTimePlugin"];
|
|
12
|
+
const ArrayPlugin = ___plugins_ArrayPlugin["ArrayPlugin"];
|
|
13
|
+
const TextAreaPlugin = ___plugins_TextAreaPlugin["TextAreaPlugin"];
|
|
14
|
+
const SwitchPlugin = ___plugins_SwitchPlugin["SwitchPlugin"]; // Delegate to standard library registration
|
|
15
|
+
Core.initLibrary({
|
|
16
|
+
name: "nz.co.siliconst.ui5.metaui",
|
|
17
|
+
version: "1.0.0",
|
|
18
|
+
dependencies: ["sap.ui.core", "sap.m", "sap.ui.layout", "sap.ui.table"],
|
|
19
|
+
controls: ["nz.co.siliconst.ui5.metaui.controls.GeneratorHost"],
|
|
20
|
+
elements: [],
|
|
21
|
+
interfaces: [],
|
|
22
|
+
noLibraryCSS: true
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Global Bootstrapper: Maps all standard primitive types to their respective plugins.
|
|
27
|
+
*/
|
|
28
|
+
const registry = PluginRegistry.getInstance();
|
|
29
|
+
registry.register("string", StringPlugin);
|
|
30
|
+
registry.register("string", TextAreaPlugin, "textArea");
|
|
31
|
+
registry.register("number", NumberPlugin);
|
|
32
|
+
registry.register("boolean", BooleanPlugin);
|
|
33
|
+
registry.register("boolean", SwitchPlugin, "switch");
|
|
34
|
+
registry.register("dropdown", DropdownPlugin);
|
|
35
|
+
registry.register("date", DatePlugin);
|
|
36
|
+
registry.register("time", TimePlugin);
|
|
37
|
+
registry.register("datetime", DateTimePlugin);
|
|
38
|
+
registry.register("array", ArrayPlugin);
|
|
39
|
+
|
|
40
|
+
// Exporting window object safely for UI5 compatibility if needed
|
|
41
|
+
var __exports = window["nz"]["co"]["siliconst"]["ui5"]["metaui"];
|
|
42
|
+
return __exports;
|
|
43
|
+
});
|
|
33
44
|
//# sourceMappingURL=library-dbg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library-dbg.js","names":["PluginRegistry","___core_PluginRegistry","StringPlugin","___plugins_StringPlugin","NumberPlugin","___plugins_NumberPlugin","BooleanPlugin","___plugins_BooleanPlugin","DropdownPlugin","___plugins_DropdownPlugin","DatePlugin","___plugins_DatePlugin","Core","initLibrary","name","version","dependencies","controls","elements","interfaces","registry","getInstance","register","__exports","window"],"sources":["library.ts"],"sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"library-dbg.js","names":["PluginRegistry","___core_PluginRegistry","StringPlugin","___plugins_StringPlugin","NumberPlugin","___plugins_NumberPlugin","BooleanPlugin","___plugins_BooleanPlugin","DropdownPlugin","___plugins_DropdownPlugin","DatePlugin","___plugins_DatePlugin","TimePlugin","___plugins_TimePlugin","DateTimePlugin","___plugins_DateTimePlugin","ArrayPlugin","___plugins_ArrayPlugin","TextAreaPlugin","___plugins_TextAreaPlugin","SwitchPlugin","___plugins_SwitchPlugin","Core","initLibrary","name","version","dependencies","controls","elements","interfaces","noLibraryCSS","registry","getInstance","register","__exports","window"],"sources":["library.ts"],"sourcesContent":["/**\n * @file library.ts\n * @description Standard SAP UI5 library registration file. Exposes the MetaUI namespace \n * and automatically bootstraps the internal PluginRegistry.\n */\n\nimport Core from \"sap/ui/core/Core\";\nimport { PluginRegistry } from \"./core/PluginRegistry\";\nimport { StringPlugin } from \"./plugins/StringPlugin\";\nimport { NumberPlugin } from \"./plugins/NumberPlugin\";\nimport { BooleanPlugin } from \"./plugins/BooleanPlugin\";\nimport { DropdownPlugin } from \"./plugins/DropdownPlugin\";\nimport { DatePlugin } from \"./plugins/DatePlugin\";\nimport { TimePlugin } from \"./plugins/TimePlugin\";\nimport { DateTimePlugin } from \"./plugins/DateTimePlugin\";\nimport { ArrayPlugin } from \"./plugins/ArrayPlugin\";\n\nimport { TextAreaPlugin } from \"./plugins/TextAreaPlugin\";\nimport { SwitchPlugin } from \"./plugins/SwitchPlugin\";\n\n// Delegate to standard library registration\nCore.initLibrary({\n name: \"nz.co.siliconst.ui5.metaui\",\n version: \"1.0.0\",\n dependencies: [\n \"sap.ui.core\",\n \"sap.m\",\n \"sap.ui.layout\",\n \"sap.ui.table\"\n ],\n controls: [\n \"nz.co.siliconst.ui5.metaui.controls.GeneratorHost\"\n ],\n elements: [],\n interfaces: [],\n noLibraryCSS: true\n});\n\n/**\n * Global Bootstrapper: Maps all standard primitive types to their respective plugins.\n */\nconst registry = PluginRegistry.getInstance();\nregistry.register(\"string\", StringPlugin);\nregistry.register(\"string\", TextAreaPlugin, \"textArea\");\nregistry.register(\"number\", NumberPlugin);\nregistry.register(\"boolean\", BooleanPlugin);\nregistry.register(\"boolean\", SwitchPlugin, \"switch\");\nregistry.register(\"dropdown\", DropdownPlugin);\nregistry.register(\"date\", DatePlugin);\nregistry.register(\"time\", TimePlugin);\nregistry.register(\"datetime\", DateTimePlugin);\nregistry.register(\"array\", ArrayPlugin);\n\n// Exporting window object safely for UI5 compatibility if needed\nexport default (window as any)[\"nz\"][\"co\"][\"siliconst\"][\"ui5\"][\"metaui\"];\n"],"mappings":";;;QAOSA,cAAc,GAAAC,sBAAA;EAAA,MACdC,YAAY,GAAAC,uBAAA;EAAA,MACZC,YAAY,GAAAC,uBAAA;EAAA,MACZC,aAAa,GAAAC,wBAAA;EAAA,MACbC,cAAc,GAAAC,yBAAA;EAAA,MACdC,UAAU,GAAAC,qBAAA;EAAA,MACVC,UAAU,GAAAC,qBAAA;EAAA,MACVC,cAAc,GAAAC,yBAAA;EAAA,MACdC,WAAW,GAAAC,sBAAA;EAAA,MAEXC,cAAc,GAAAC,yBAAA;EAAA,MACdC,YAAY,GAAAC,uBAAA,kBAErB;EACAC,IAAI,CAACC,WAAW,CAAC;IACbC,IAAI,EAAE,4BAA4B;IAClCC,OAAO,EAAE,OAAO;IAChBC,YAAY,EAAE,CACV,aAAa,EACb,OAAO,EACP,eAAe,EACf,cAAc,CACjB;IACDC,QAAQ,EAAE,CACN,mDAAmD,CACtD;IACDC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,EAAE;IACdC,YAAY,EAAE;EAClB,CAAC,CAAC;;EAEF;AACA;AACA;EACA,MAAMC,QAAQ,GAAG/B,cAAc,CAACgC,WAAW,CAAC,CAAC;EAC7CD,QAAQ,CAACE,QAAQ,CAAC,QAAQ,EAAE/B,YAAY,CAAC;EACzC6B,QAAQ,CAACE,QAAQ,CAAC,QAAQ,EAAEf,cAAc,EAAE,UAAU,CAAC;EACvDa,QAAQ,CAACE,QAAQ,CAAC,QAAQ,EAAE7B,YAAY,CAAC;EACzC2B,QAAQ,CAACE,QAAQ,CAAC,SAAS,EAAE3B,aAAa,CAAC;EAC3CyB,QAAQ,CAACE,QAAQ,CAAC,SAAS,EAAEb,YAAY,EAAE,QAAQ,CAAC;EACpDW,QAAQ,CAACE,QAAQ,CAAC,UAAU,EAAEzB,cAAc,CAAC;EAC7CuB,QAAQ,CAACE,QAAQ,CAAC,MAAM,EAAEvB,UAAU,CAAC;EACrCqB,QAAQ,CAACE,QAAQ,CAAC,MAAM,EAAErB,UAAU,CAAC;EACrCmB,QAAQ,CAACE,QAAQ,CAAC,UAAU,EAAEnB,cAAc,CAAC;EAC7CiB,QAAQ,CAACE,QAAQ,CAAC,OAAO,EAAEjB,WAAW,CAAC;;EAEvC;EAAA,IAAAkB,SAAA,GACgBC,MAAM,CAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;EAAA,OAAAD,SAAA;AAAA","ignoreList":[]}
|
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
//@ui5-bundle nz/co/siliconst/ui5/metaui/library-preload.js
|
|
2
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/controls/GeneratorHost", ["sap/ui/core/Control","sap/m/Dialog","sap/m/Button","../core/SchemaNormalizer","../core/Engine","../core/StateManager","../layouts/BaseLayout"],function(t,
|
|
3
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/core/ConditionEngine", ["./EventBus"],function(
|
|
4
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/core/Engine", ["./ConditionEngine","sap/m/VBox"],function(e,
|
|
5
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/core/EventBus", [],function(){"use strict";class s{listeners=[];constructor(){}static getInstance(){if(!s.instance){s.instance=new s}return s.instance}publishFieldChange(s){this.listeners.forEach(e=>e(s))}subscribe(s){this.listeners.push(s)}}var e={__esModule:true};e.EventBus=s;return e});
|
|
6
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/core/PluginRegistry", [],function(){"use strict";class e{plugins=new Map;constructor(){}static getInstance(){if(!e.instance){e.instance=new e}return e.instance}register(e,t){this.plugins.set(
|
|
7
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/core/SchemaNormalizer", [],function(){"use strict";class e{static normalize(e){if(!
|
|
2
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/controls/GeneratorHost", ["sap/ui/core/Control","sap/m/Dialog","sap/m/Button","sap/m/MessagePage","sap/base/Log","../core/SchemaNormalizer","../core/Engine","../core/StateManager","../layouts/BaseLayout"],function(e,t,n,a,i,s,r,o,l){"use strict";const g=s["SchemaNormalizer"];const c=r["Engine"];const u=o["StateManager"];const d=l["BaseLayout"];const p=e.extend("nz.co.siliconst.ui5.metaui.controls.GeneratorHost",{constructor:function t(){e.prototype.constructor.apply(this,arguments);this.stateManager=null;this.generatedContent=null;this.engine=null},renderer:{apiVersion:2,render(e,t){e.openStart("div",t);e.style("width","100%");e.style("height","100%");e.openEnd();const n=t.getAggregation("_content");if(n){e.renderControl(n)}e.close("div")}},metadata:{properties:{schemaDefinition:{type:"any",defaultValue:null},initialData:{type:"any",defaultValue:null},initialDataJson:{type:"string",defaultValue:null},outputData:{type:"object",defaultValue:null},outputDataJson:{type:"string",defaultValue:null},useMessageManager:{type:"boolean",defaultValue:false}},aggregations:{_content:{type:"sap.ui.core.Control",multiple:false,visibility:"hidden"}},events:{beforeSubmit:{parameters:{payload:{type:"object"},addError:{type:"function"},preventDefault:{type:"function"}}},submit:{parameters:{payload:{type:"object"},payloadJson:{type:"string"}}},cancel:{}}},init:function t(){e.prototype.init.call(this)},exit:function e(){if(this.engine){this.engine.destroy();this.engine=null}if(this.stateManager){this.stateManager.getModel().destroy();this.stateManager=null}if(this.generatedContent){this.generatedContent.destroy();this.generatedContent=null}},onBeforeRendering:function e(){if(!this.generatedContent&&this.getProperty("schemaDefinition")){this.generate()}},triggerSubmit:function e(){if(this.stateManager&&this.engine){let e=false;const t=this.getProperty("useMessageManager");let n=null;if(t){n=sap.ui.getCore().getMessageManager();n.removeAllMessages()}const a=(e,a)=>{if(t&&n){sap.ui.require(["sap/ui/core/message/Message"],t=>{n.addMessages(new t({message:a,type:"Error",target:`${this.stateManager?.getModel().getId()}>/${e}`,processor:this.stateManager?.getModel()}))})}};if(!this.engine.validateAll()){a("","One or more fields failed schema validation. Please review the highlighted fields.");return false}const s=this.stateManager.extractPayload();const r=JSON.stringify(s);this.fireEvent("beforeSubmit",{payload:s,preventDefault:()=>{e=true},addError:(s,r)=>{e=true;if(t&&n){a(s,r)}else{i.warning(`[MetaUI] Validation Error for ${s}: ${r}`,"GeneratorHost")}}});if(e){return false}this.setProperty("outputData",s,true);this.setProperty("outputDataJson",r,true);this.fireEvent("submit",{payload:s,payloadJson:r});return true}return false},generate:function e(){try{const e=this.getProperty("schemaDefinition");let t=this.getProperty("initialData");const n=this.getProperty("initialDataJson");if(n){try{t=JSON.parse(n)}catch(e){i.error("[MetaUI] Failed to parse initialDataJson string.",e.message,"GeneratorHost")}}else if(typeof t==="string"){try{t=JSON.parse(t)}catch(e){i.error("[MetaUI] Failed to parse initialData string.",e.message,"GeneratorHost")}}const a=g.normalize(e,t);this.stateManager=new u(t||{});const s="metaUI_"+this.getId();this.setModel(this.stateManager.getModel(),s);this.engine=new c;const r=new d;this.generatedContent=this.engine.build(a,r,s);this.setAggregation("_content",this.generatedContent)}catch(e){i.error("[MetaUI] Engine failed to generate layout. Preventing Launchpad crash.",e.message,"GeneratorHost");const t=new a({text:"UI Generation Failed",description:"The dynamic schema could not be rendered. Please check the Fiori console for diagnostic logs.",icon:"sap-icon://error"});this.setAggregation("_content",t)}},openInDialog:function e(a="Dynamic Form",i="Save"){if(!this.generatedContent){this.generate()}const s=new t({title:a,contentWidth:"800px",content:[this],beginButton:new n({text:i,type:"Emphasized",press:()=>{const e=this.triggerSubmit();if(e){s.close()}}}),endButton:new n({text:"Cancel",press:()=>{this.fireEvent("cancel");s.close()}}),afterClose:()=>{s.destroy()}});s.open()}});return p});
|
|
3
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/core/ConditionEngine", ["./EventBus"],function(n){"use strict";const e=n["EventBus"];class s{constructor(n){this.schema=n;this.boundHandler=this.handleEvent.bind(this);this.initializeListeners()}initializeListeners(){e.getInstance().subscribe(this.boundHandler)}handleEvent(n){}destroy(){e.getInstance().unsubscribe(this.boundHandler)}}var t={__esModule:true};t.ConditionEngine=s;return t});
|
|
4
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/core/Engine", ["./ConditionEngine","sap/m/VBox"],function(e,t){"use strict";const i=e["ConditionEngine"];class n{conditionEngine=null;activePlugins=[];build(e,n,s="meta"){this.conditionEngine=new i(e);this.activePlugins=[];const r=e=>this.activePlugins.push(e);if(e.type==="array"){if(!e.items){throw new Error("[MetaUI] Array schema must define 'items'.")}return n.renderTable(e.items,`${s}>/`,e.title)}if(e.type==="object"){const i=new t({renderType:"Bare"});const o=e.properties||{};const a={};const c=[];for(const e of Object.keys(o)){if(o[e].type==="array"){c.push({key:e,meta:o[e]})}else{a[e]=o[e]}}if(Object.keys(a).length>0){i.addItem(n.renderForm(a,s,e.title,r))}for(const e of c){if(e.meta.items){i.addItem(n.renderTable(e.meta.items,`${s}>/${e.key}`,e.meta.ui?.label||e.key))}}return i}throw new Error(`[MetaUI] Unsupported schema type: ${e.type}`)}validateAll(){let e=true;for(const t of this.activePlugins){if(!t.validate()){e=false}}return e}destroy(){if(this.conditionEngine){this.conditionEngine.destroy();this.conditionEngine=null}this.activePlugins=[]}}var s={__esModule:true};s.Engine=n;return s});
|
|
5
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/core/EventBus", [],function(){"use strict";class s{listeners=[];constructor(){}static getInstance(){if(!s.instance){s.instance=new s}return s.instance}publishFieldChange(s){this.listeners.forEach(e=>e(s))}subscribe(s){this.listeners.push(s)}unsubscribe(s){this.listeners=this.listeners.filter(e=>e!==s)}unsubscribeAll(){this.listeners=[]}}var e={__esModule:true};e.EventBus=s;return e});
|
|
6
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/core/PluginRegistry", [],function(){"use strict";class e{plugins=new Map;constructor(){}static getInstance(){if(!e.instance){e.instance=new e}return e.instance}register(e,t,n){const i=n?`${e}:${n}`:e;this.plugins.set(i,t)}getPlugin(e,t){let n;if(t){n=this.plugins.get(`${e}:${t}`)}if(!n){n=this.plugins.get(e)}if(!n){throw new Error(`[MetaUI] No plugin registered for FieldType: ${e}`)}return new n}}var t={__esModule:true};t.PluginRegistry=e;return t});
|
|
7
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/core/SchemaNormalizer", [],function(){"use strict";class e{static normalize(e,t){let r=e;if(typeof r==="string"){try{r=JSON.parse(r)}catch(e){console.warn("[MetaUI] Failed to parse schema string, falling back to inference.",e);r=null}}if(!r||typeof r!=="object"||Array.isArray(r)){return this.inferSchemaFromData(t)}const i={title:r.title||"MetaUI Generated Form",type:r.type||(r.items?"array":"object")};if(i.type==="object"){i.properties=this.normalizeProperties(r.properties||{})}else if(i.type==="array"){i.items=this.normalizePropertyMetadata(r.items||{type:"object",properties:{}},"items")}return i}static normalizeProperties(e){const t={};for(const r of Object.keys(e)){t[r]=this.normalizePropertyMetadata(e[r],r)}return t}static normalizePropertyMetadata(e,t){const r={type:e.type||"string",ui:{label:e.ui?.label||this.generateLabel(t),isKey:!!e.ui?.isKey,readOnly:!!e.ui?.readOnly,widget:e.ui?.widget,group:e.ui?.group,visibleOn:e.ui?.visibleOn,enabledOn:e.ui?.enabledOn,format:e.ui?.format},required:!!e.required,maxLength:e.maxLength,minimum:e.minimum,maximum:e.maximum,pattern:e.pattern,precision:e.precision,scale:e.scale,valueHelp:e.valueHelp};if(r.type==="object"&&e.properties){r.properties=this.normalizeProperties(e.properties)}else if(r.type==="array"&&e.items){r.items=this.normalizePropertyMetadata(e.items,"items")}return r}static generateLabel(e){if(!e)return"";let t=e.replace(/([A-Z])/g," $1").replace(/_/g," ");return t.split(" ").filter(e=>e.length>0).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim()}static inferSchemaFromData(e){const t={type:"object",properties:{}};if(!e||typeof e!=="object"){return t}if(Array.isArray(e)){t.type="array";t.items={type:"object",properties:e.length>0?this.inferPropertiesFromObject(e[0]):{}}}else{t.type="object";t.properties=this.inferPropertiesFromObject(e)}return t}static inferPropertiesFromObject(e){const t={};if(!e||typeof e!=="object")return t;for(const r of Object.keys(e)){const i=e[r];if(i===null||i===undefined)continue;if(typeof i==="object"&&!Array.isArray(i))continue;let a="string";let s;if(typeof i==="number")a="number";else if(typeof i==="boolean")a="boolean";else if(Array.isArray(i)){a="array";s={type:"object",properties:i.length>0?this.inferPropertiesFromObject(i[0]):{}}}t[r]={type:a,items:s,ui:{label:this.generateLabel(r),isKey:false,readOnly:false}}}return t}}var t={__esModule:true};t.SchemaNormalizer=e;return t});
|
|
8
8
|
sap.ui.predefine("nz/co/siliconst/ui5/metaui/core/StateManager", ["sap/ui/model/json/JSONModel"],function(e){"use strict";class t{constructor(t={}){const o=JSON.parse(JSON.stringify(t));this.model=new e(o);this.model.setDefaultBindingMode("TwoWay")}getModel(){return this.model}bindControl(e,t,o){e.bindProperty(t,{path:o,model:"meta"})}extractPayload(){const e=this.model.getData();return JSON.parse(JSON.stringify(e))}}var o={__esModule:true};o.StateManager=t;return o});
|
|
9
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/layouts/BaseLayout", ["./FormLayout","./TableLayout"],function(e,r){"use strict";const t=e["FormLayout"];const u=r["TableLayout"];class
|
|
10
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/layouts/FormLayout", ["sap/ui/layout/form/SimpleForm","sap/m/Label","../core/PluginRegistry"],function(e,n
|
|
11
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/layouts/TableLayout", ["sap/m/Table","sap/m/Column","sap/m/Text","sap/m/ColumnListItem","sap/m/Toolbar","sap/m/Title","sap/m/ToolbarSpacer","sap/m/Button","../core/PluginRegistry"],function(e,t,n,s,
|
|
12
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/library", ["sap/ui/core/Core","./core/PluginRegistry","./plugins/StringPlugin","./plugins/NumberPlugin","./plugins/BooleanPlugin","./plugins/DropdownPlugin","./plugins/DatePlugin"],function(n,
|
|
13
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/
|
|
14
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/
|
|
15
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/
|
|
16
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/
|
|
17
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/
|
|
18
|
-
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/
|
|
9
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/layouts/BaseLayout", ["./FormLayout","./TableLayout"],function(e,r){"use strict";const t=e["FormLayout"];const u=r["TableLayout"];class a{renderForm(e,r="meta",u,a){return t.build(e,r,u,a)}renderTable(e,r="meta",t,a){return u.build(e,r,t,a)}}var o={__esModule:true};o.BaseLayout=a;return o});
|
|
10
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/layouts/FormLayout", ["sap/ui/layout/form/SimpleForm","sap/m/Label","sap/ui/core/Title","../core/PluginRegistry"],function(e,t,a,n){"use strict";const i=n["PluginRegistry"];class s{static build(n,s="meta",o,r){const l=new e({editable:true,title:o,layout:"ResponsiveGridLayout",labelSpanXL:4,labelSpanL:4,labelSpanM:4,labelSpanS:12,adjustLabelSpan:false,emptySpanXL:0,emptySpanL:0,emptySpanM:0,emptySpanS:0,columnsXL:1,columnsL:1,columnsM:1,singleContainerFullSize:false});const u=i.getInstance();const p={};const c="__DEFAULT__";for(const e of Object.keys(n)){const t=n[e];const a=t.ui?.group||c;if(!p[a])p[a]=[];p[a].push({key:e,meta:t})}for(const e of Object.keys(p)){if(e!==c){l.addContent(new a({text:e}))}p[e].forEach(e=>{try{const a=new t({text:e.meta.ui?.label||e.key,required:e.meta.required});if(e.meta.ui?.visibleOn){const t=`{= ${e.meta.ui.visibleOn.replace(/\$root\./g,`${s}>/`).replace(/\./g,"/")} }`;a.bindProperty("visible",{parts:[{path:"meta>/"}],formatter:()=>false})}const n=u.getPlugin(e.meta.type,e.meta.ui?.widget);if(r)r(n);const i=n.render(e.meta,`/${e.key}`,s);if(e.meta.ui?.fullWidth){sap.ui.require(["sap/ui/layout/GridData"],e=>{i.setLayoutData(new e({span:"XL12 L12 M12 S12"}))})}l.addContent(a);l.addContent(i)}catch(t){sap.ui.require(["sap/base/Log"],a=>{if(a)a.error(`[MetaUI] Failed to render field ${e.key}`,t.message,"FormLayout")})}})}return l}}var o={__esModule:true};o.FormLayout=s;return o});
|
|
11
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/layouts/TableLayout", ["sap/m/Table","sap/m/Column","sap/m/Text","sap/m/ColumnListItem","sap/m/Toolbar","sap/m/Title","sap/m/ToolbarSpacer","sap/m/Button","../core/PluginRegistry"],function(e,t,n,s,o,a,r,i,c){"use strict";const l=c["PluginRegistry"];class p{static build(c,p="meta>/",u="Table",d){if(!c.properties){throw new Error("[MetaUI] Table requires an items schema with properties.")}const m=p.split(">");const g=m.length>1?m[0]:undefined;const h=m.length>1?m[1]:p;const b=new e({headerToolbar:new o({content:[new a({text:u}),new r,new i({text:"Add Row",icon:"sap-icon://add",press:e=>{const t=e.getSource();const n=t.getParent().getParent();const s=n.getModel(g);const o=n.getBindingInfo("items");if(!o||!o.path)return;const a=s.getProperty(o.path)||[];a.push({});s.setProperty(o.path,a)}})]}),fixedLayout:false,mode:"Delete",delete:e=>{const t=e.getParameter("listItem");const n=t.getBindingContext(g).getPath();const s=t.getModel(g);const o=n.split("/");const a=parseInt(o.pop()||"0",10);let r=o.join("/");if(r==="")r="/";const i=s.getProperty(r);i.splice(a,1);s.setProperty(r,i)}});const w=[];const y=l.getInstance();const f=c.properties;Object.keys(f).forEach(e=>{try{const s=f[e];const o=!!s.ui?.isKey;const a=new t({header:new n({text:s.ui?.label||e}),demandPopin:!o,minScreenWidth:o?"":"Tablet",popinDisplay:"Inline"});b.addColumn(a);const r=y.getPlugin(s.type,s.ui?.widget);if(d)d(r);const i=r.render(s,e,g);w.push(i)}catch(t){sap.ui.require(["sap/base/Log"],n=>{if(n)n.error(`[MetaUI] Failed to render column ${e}`,t.message,"TableLayout")});w.push(new n({text:"Error"}))}});const P=new s({cells:w});b.bindItems({path:h,model:g,template:P,templateShareable:false});return b}}var u={__esModule:true};u.TableLayout=p;return u});
|
|
12
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/library", ["sap/ui/core/Core","./core/PluginRegistry","./plugins/StringPlugin","./plugins/NumberPlugin","./plugins/BooleanPlugin","./plugins/DropdownPlugin","./plugins/DatePlugin","./plugins/TimePlugin","./plugins/DateTimePlugin","./plugins/ArrayPlugin","./plugins/TextAreaPlugin","./plugins/SwitchPlugin"],function(i,n,e,t,r,s,u,g,o,l,a,c){"use strict";const P=n["PluginRegistry"];const p=e["StringPlugin"];const m=t["NumberPlugin"];const d=r["BooleanPlugin"];const b=s["DropdownPlugin"];const w=u["DatePlugin"];const y=g["TimePlugin"];const D=o["DateTimePlugin"];const S=l["ArrayPlugin"];const T=a["TextAreaPlugin"];const A=c["SwitchPlugin"];i.initLibrary({name:"nz.co.siliconst.ui5.metaui",version:"1.0.0",dependencies:["sap.ui.core","sap.m","sap.ui.layout","sap.ui.table"],controls:["nz.co.siliconst.ui5.metaui.controls.GeneratorHost"],elements:[],interfaces:[],noLibraryCSS:true});const f=P.getInstance();f.register("string",p);f.register("string",T,"textArea");f.register("number",m);f.register("boolean",d);f.register("boolean",A,"switch");f.register("dropdown",b);f.register("date",w);f.register("time",y);f.register("datetime",D);f.register("array",S);var h=window["nz"]["co"]["siliconst"]["ui5"]["metaui"];return h});
|
|
13
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin", ["sap/m/Button"],function(t){"use strict";class e{render(e,n,s){const o=n.startsWith("/")?n.substring(1):n;return new t({text:"View Records",icon:"sap-icon://list",press:t=>{const n=t.getSource();const i=n.getBindingContext(s);if(!i)return;const r=i.getObject();const a=r[o]||[];const c={type:"object",properties:{[o]:{type:"array",ui:{label:e.ui?.label||o},items:e.items||{type:"object",properties:{}}}}};sap.ui.require(["nz/co/siliconst/ui5/metaui/controls/GeneratorHost"],t=>{const i=new t({schemaDefinition:c,initialData:{[o]:a}});i.attachSubmit(t=>{const e=t.getParameter("payload");const i=e[o];const r=n.getModel(s);const a=n.getBindingContext(s).getPath();r.setProperty(`${a}/${o}`,i)});i.openInDialog(`Nested Records: ${e.ui?.label||o}`,"Close")})}})}validate(){return true}onStateChange(t){}}var n={__esModule:true};n.ArrayPlugin=e;return n});
|
|
14
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/BasePlugin", ["../core/EventBus"],function(e){"use strict";const t=e["EventBus"];class i{control=null;metadata=null;fieldKey="";onStateChange(e){this.metadata=e;this.applyState()}applyCommonDirectives(e,t,i="meta"){if(t.ui?.readOnly!==undefined&&typeof e.setEditable==="function"){e.setEditable(!t.ui.readOnly)}if(t.ui?.visibleOn){const a=`{= ${t.ui.visibleOn.replace(/\$root\./g,`${i}>/`).replace(/\./g,"/")} }`;e.bindProperty("visible",{parts:[{path:"meta>/"}],formatter:()=>false});e.bindProperty("visible",a)}if(t.ui?.enabledOn&&typeof e.setEnabled==="function"){const a=`{= ${t.ui.enabledOn.replace(/\$root\./g,`${i}>/`).replace(/\./g,"/")} }`;e.bindProperty("enabled",a)}}publishChange(e){if(this.metadata&&this.fieldKey){t.getInstance().publishFieldChange({fieldName:this.fieldKey,newValue:e})}}}var a={__esModule:true};a.BasePlugin=i;return a});
|
|
15
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin", ["./BasePlugin","sap/m/CheckBox"],function(e,t){"use strict";const a=e["BasePlugin"];class s extends a{render(e,a,s="meta"){this.metadata=e;this.control=new t({selected:`{${s}>${a}}`,enabled:!e.ui?.readOnly,select:e=>{const t=e.getParameter("selected");this.publishChange(t);this.validate()}});return this.control}validate(){return true}applyState(){if(this.control&&this.metadata){this.control.setEnabled(!this.metadata.ui?.readOnly)}}}var n={__esModule:true};n.BooleanPlugin=s;return n});
|
|
16
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/DatePlugin", ["./BasePlugin","sap/m/DatePicker"],function(t,e){"use strict";const a=t["BasePlugin"];class r extends a{render(t,a,r="meta"){this.metadata=t;this.control=new e({value:{path:`${r}>${a}`,type:"sap.ui.model.type.Date",formatOptions:{source:{pattern:"yyyy-MM-dd"},pattern:"yyyy-MM-dd"}},displayFormat:"long",editable:!t.ui?.readOnly,required:t.required,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=typeof t.isValidValue==="function"?t.isValidValue():true;const a=t.getValue();if(this.metadata.required&&(!a||typeof a!=="string"||a.trim()==="")){t.setValueState("Error");t.setValueStateText("A valid date is required.");return false}if(a&&!e){t.setValueState("Error");t.setValueStateText("Invalid date format.");return false}t.setValueState("None");return true}applyState(){if(this.control&&this.metadata){const t=this.control;t.setEditable(!this.metadata.ui?.readOnly);t.setRequired(this.metadata.required)}}}var i={__esModule:true};i.DatePlugin=r;return i});
|
|
17
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin", ["./BasePlugin","sap/m/DateTimePicker"],function(t,e){"use strict";const a=t["BasePlugin"];class i extends a{render(t,a,i="meta"){this.metadata=t;this.control=new e({value:{path:`${i}>${a}`,type:"sap.ui.model.type.DateTime",formatOptions:{source:{pattern:"yyyy-MM-dd'T'HH:mm:ss'Z'"},pattern:"yyyy-MM-dd'T'HH:mm:ss'Z'"}},editable:!t.ui?.readOnly,required:t.required,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=typeof t.isValidValue==="function"?t.isValidValue():true;const a=t.getValue();if(this.metadata.required&&(!a||typeof a!=="string"||a.trim()==="")){t.setValueState("Error");t.setValueStateText("This field is required.");return false}if(a&&!e){t.setValueState("Error");t.setValueStateText("Invalid datetime format.");return false}t.setValueState("None");return true}applyState(){if(this.control&&this.metadata){const t=this.control;t.setEditable(!this.metadata.ui?.readOnly);t.setRequired(this.metadata.required)}}}var r={__esModule:true};r.DateTimePlugin=i;return r});
|
|
18
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin", ["./BasePlugin","sap/m/Select","sap/ui/core/Item"],function(e,t,a){"use strict";const r=e["BasePlugin"];class s extends r{render(e,r,s="meta"){this.metadata=e;const n=new t({selectedKey:`{${s}>${r}}`,enabled:!e.ui?.readOnly,forceSelection:false,change:e=>{const t=e.getParameter("selectedItem");const a=t?t.getKey():"";this.publishChange(a);this.validate()}});if(e.valueHelp&&Array.isArray(e.valueHelp)){n.addItem(new a({key:"",text:"--- Select ---"}));e.valueHelp.forEach(e=>{n.addItem(new a({key:e.key,text:e.text}))})}this.control=n;return this.control}validate(){if(!this.control||!this.metadata)return true;const e=this.control;const t=e.getSelectedKey();if(this.metadata.required&&(!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.ui?.readOnly)}}}var n={__esModule:true};n.DropdownPlugin=s;return n});
|
|
19
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/NumberPlugin", ["./BasePlugin","sap/m/StepInput"],function(e,t){"use strict";const a=e["BasePlugin"];class i extends a{render(e,a,i="meta"){this.metadata=e;this.control=new t({value:`{${i}>${a}}`,displayValuePrecision:e.scale||0,editable:!e.ui?.readOnly,required:e.required,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.required&&(t===null||t===undefined||Number.isNaN(t)||t==="")){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.ui?.readOnly);e.setRequired(this.metadata.required)}}}var r={__esModule:true};r.NumberPlugin=i;return r});
|
|
20
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/StringPlugin", ["./BasePlugin","sap/m/Input"],function(t,e){"use strict";const a=t["BasePlugin"];class i extends a{render(t,a,i="meta"){this.metadata=t;this.fieldKey=a.replace("/","");this.control=new e({value:`{${i}>${a}}`,maxLength:t.maxLength||0,required:!!t.required,showValueHelp:t.ui?.widget==="searchHelp",change:t=>{const e=t.getParameter("value");this.publishChange(e);this.validate()}});this.applyCommonDirectives(this.control,t,i);return this.control}validate(){if(!this.control||!this.metadata)return true;const t=this.control;const e=t.getValue();if(this.metadata.required&&(!e||typeof e!=="string"||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.ui?.readOnly);t.setRequired(this.metadata.required)}}}var r={__esModule:true};r.StringPlugin=i;return r});
|
|
21
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin", ["./BasePlugin","sap/m/Switch"],function(t,e){"use strict";const a=t["BasePlugin"];class s extends a{render(t,a,s="meta"){this.metadata=t;this.control=new e({state:`{${s}>${a}}`,enabled:!t.ui?.readOnly,change:t=>{const e=t.getParameter("state");this.publishChange(e);this.validate()}});return this.control}validate(){return true}applyState(){if(this.control&&this.metadata){const t=this.control;t.setEnabled(!this.metadata.ui?.readOnly)}}}var n={__esModule:true};n.SwitchPlugin=s;return n});
|
|
22
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin", ["./BasePlugin","sap/m/TextArea"],function(t,e){"use strict";const a=t["BasePlugin"];class r extends a{render(t,a,r="meta"){this.metadata=t;this.fieldKey=a.replace("/","");this.control=new e({value:`{${r}>${a}}`,maxLength:t.maxLength||0,required:!!t.required,rows:t.ui?.rows||4,change:t=>{const e=t.getParameter("value");this.publishChange(e);this.validate()}});this.applyCommonDirectives(this.control,t,r);return this.control}validate(){if(!this.control||!this.metadata)return true;const t=this.control;const e=t.getValue();if(this.metadata.required&&(!e||typeof e!=="string"||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.ui?.readOnly);t.setRequired(this.metadata.required)}}}var i={__esModule:true};i.TextAreaPlugin=r;return i});
|
|
23
|
+
sap.ui.predefine("nz/co/siliconst/ui5/metaui/plugins/TimePlugin", ["./BasePlugin","sap/m/TimePicker"],function(e,t){"use strict";const a=e["BasePlugin"];class r extends a{render(e,a,r="meta"){this.metadata=e;this.control=new t({value:{path:`${r}>${a}`,type:"sap.ui.model.type.Time",formatOptions:{source:{pattern:"HH:mm:ss"},pattern:"HH:mm:ss"}},displayFormat:"HH:mm:ss",editable:!e.ui?.readOnly,required:e.required,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=typeof e.isValidValue==="function"?e.isValidValue():true;const a=e.getValue();const r=sap.ui.require("sap/ui/core/library");const i=r?r.ValueState:{Error:"Error",None:"None"};if(this.metadata.required&&(!a||typeof a!=="string"||a.trim()==="")){e.setValueState(i.Error);e.setValueStateText("This field is required.");return false}if(a&&!t){e.setValueState(i.Error);e.setValueStateText("Invalid time format.");return false}e.setValueState(i.None);return true}applyState(){if(this.control&&this.metadata){const e=this.control;e.setEditable(!this.metadata.ui?.readOnly);e.setRequired(this.metadata.required)}}}var i={__esModule:true};i.TimePlugin=r;return i});
|
|
19
24
|
sap.ui.require.preload({
|
|
20
25
|
"nz/co/siliconst/ui5/metaui/interfaces/IEventBus.js":function(){
|
|
21
26
|
|
|
@@ -29,6 +34,6 @@ sap.ui.require.preload({
|
|
|
29
34
|
"nz/co/siliconst/ui5/metaui/interfaces/ISchema.js":function(){
|
|
30
35
|
|
|
31
36
|
},
|
|
32
|
-
"nz/co/siliconst/ui5/metaui/manifest.json":'{"_version":"1.21.0","sap.app":{"id":"nz.co.siliconst.ui5.metaui","type":"library","embeds":[],"applicationVersion":{"version":"1.0.0"},"title":"MetaUI Engine","resources":"resources.json","offline":true},"sap.ui":{"technology":"UI5","supportedThemes":[]},"sap.ui5":{"dependencies":{"libs":{}},"library":{"i18n":false,"content":{"controls":["nz.co.siliconst.ui5.metaui.controls.GeneratorHost"],"elements":[],"types":[],"interfaces":[]}}}}'
|
|
37
|
+
"nz/co/siliconst/ui5/metaui/manifest.json":'{"_version":"1.21.0","sap.app":{"id":"nz.co.siliconst.ui5.metaui","type":"library","embeds":[],"applicationVersion":{"version":"1.0.0"},"title":"MetaUI Engine","resources":"resources.json","offline":true},"sap.ui":{"technology":"UI5","supportedThemes":[]},"sap.ui5":{"dependencies":{"libs":{}},"library":{"i18n":false,"css":false,"content":{"controls":["nz.co.siliconst.ui5.metaui.controls.GeneratorHost"],"elements":[],"types":[],"interfaces":[]}}}}'
|
|
33
38
|
});
|
|
34
39
|
//# sourceMappingURL=library-preload.js.map
|