@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.
Files changed (183) hide show
  1. package/README.md +134 -123
  2. package/package.json +3 -2
  3. package/src/nz/co/siliconst/ui5/metaui/.library +7 -7
  4. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost-dbg.js +299 -163
  5. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost-dbg.js.map +1 -1
  6. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.d.ts +54 -6
  7. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.d.ts.map +1 -1
  8. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.js +1 -1
  9. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.js.map +1 -1
  10. package/src/nz/co/siliconst/ui5/metaui/controls/GeneratorHost.ts +292 -162
  11. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js +51 -43
  12. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +1 -1
  13. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +5 -0
  14. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +1 -1
  15. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js +1 -1
  16. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +1 -1
  17. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +49 -40
  18. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +81 -58
  19. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  20. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +5 -12
  21. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
  22. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
  23. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  24. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +82 -56
  25. package/src/nz/co/siliconst/ui5/metaui/core/EventBus-dbg.js +65 -50
  26. package/src/nz/co/siliconst/ui5/metaui/core/EventBus-dbg.js.map +1 -1
  27. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.d.ts +9 -0
  28. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.d.ts.map +1 -1
  29. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.js +1 -1
  30. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.js.map +1 -1
  31. package/src/nz/co/siliconst/ui5/metaui/core/EventBus.ts +60 -45
  32. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +72 -59
  33. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  34. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +6 -4
  35. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  36. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  37. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  38. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +71 -56
  39. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +145 -36
  40. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  41. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +13 -8
  42. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  43. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
  44. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  45. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +157 -31
  46. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +55 -55
  47. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
  48. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
  49. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
  50. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +56 -56
  51. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus-dbg.js +1 -1
  52. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus-dbg.js.map +1 -1
  53. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.d.ts.map +1 -1
  54. package/src/nz/co/siliconst/ui5/metaui/interfaces/IEventBus.ts +29 -29
  55. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager-dbg.js +1 -1
  56. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager-dbg.js.map +1 -1
  57. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.d.ts +6 -12
  58. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.d.ts.map +1 -1
  59. package/src/nz/co/siliconst/ui5/metaui/interfaces/ILayoutManager.ts +21 -26
  60. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js +1 -1
  61. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -1
  62. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +3 -20
  63. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
  64. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +14 -33
  65. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js +1 -1
  66. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
  67. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +33 -43
  68. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
  69. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +70 -70
  70. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout-dbg.js +23 -38
  71. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout-dbg.js.map +1 -1
  72. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.d.ts +4 -17
  73. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.d.ts.map +1 -1
  74. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.js +1 -1
  75. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.js.map +1 -1
  76. package/src/nz/co/siliconst/ui5/metaui/layouts/BaseLayout.ts +22 -34
  77. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +98 -56
  78. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  79. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts +7 -7
  80. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
  81. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js +1 -1
  82. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  83. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +97 -60
  84. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +102 -90
  85. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
  86. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts +4 -8
  87. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
  88. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
  89. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
  90. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +119 -102
  91. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +43 -32
  92. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
  93. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +22 -17
  94. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  95. package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -1
  96. package/src/nz/co/siliconst/ui5/metaui/library.js +1 -1
  97. package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -1
  98. package/src/nz/co/siliconst/ui5/metaui/library.ts +55 -43
  99. package/src/nz/co/siliconst/ui5/metaui/manifest.json +1 -0
  100. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin-dbg.js +68 -0
  101. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin-dbg.js.map +1 -0
  102. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.d.ts +15 -0
  103. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.d.ts.map +1 -0
  104. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.js +2 -0
  105. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.js.map +1 -0
  106. package/src/nz/co/siliconst/ui5/metaui/plugins/ArrayPlugin.ts +71 -0
  107. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin-dbg.js +54 -59
  108. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin-dbg.js.map +1 -1
  109. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.d.ts +8 -27
  110. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.d.ts.map +1 -1
  111. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.js +1 -1
  112. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.js.map +1 -1
  113. package/src/nz/co/siliconst/ui5/metaui/plugins/BasePlugin.ts +56 -58
  114. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin-dbg.js +41 -42
  115. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin-dbg.js.map +1 -1
  116. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.d.ts +2 -2
  117. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.d.ts.map +1 -1
  118. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.js +1 -1
  119. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.js.map +1 -1
  120. package/src/nz/co/siliconst/ui5/metaui/plugins/BooleanPlugin.ts +41 -42
  121. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin-dbg.js +68 -60
  122. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin-dbg.js.map +1 -1
  123. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.d.ts +2 -2
  124. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.d.ts.map +1 -1
  125. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.js +1 -1
  126. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.js.map +1 -1
  127. package/src/nz/co/siliconst/ui5/metaui/plugins/DatePlugin.ts +69 -63
  128. package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin-dbg.js +68 -0
  129. package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin-dbg.js.map +1 -0
  130. package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.d.ts +18 -0
  131. package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.d.ts.map +1 -0
  132. package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.js +2 -0
  133. package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.js.map +1 -0
  134. package/src/nz/co/siliconst/ui5/metaui/plugins/DateTimePlugin.ts +68 -0
  135. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin-dbg.js +66 -66
  136. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin-dbg.js.map +1 -1
  137. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.d.ts +2 -2
  138. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.d.ts.map +1 -1
  139. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.js +1 -1
  140. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.js.map +1 -1
  141. package/src/nz/co/siliconst/ui5/metaui/plugins/DropdownPlugin.ts +65 -65
  142. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin-dbg.js +55 -53
  143. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin-dbg.js.map +1 -1
  144. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.d.ts +3 -3
  145. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.d.ts.map +1 -1
  146. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.js +1 -1
  147. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.js.map +1 -1
  148. package/src/nz/co/siliconst/ui5/metaui/plugins/NumberPlugin.ts +56 -55
  149. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin-dbg.js +56 -53
  150. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin-dbg.js.map +1 -1
  151. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.d.ts +2 -2
  152. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.d.ts.map +1 -1
  153. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.js +1 -1
  154. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.js.map +1 -1
  155. package/src/nz/co/siliconst/ui5/metaui/plugins/StringPlugin.ts +58 -55
  156. package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin-dbg.js +43 -0
  157. package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin-dbg.js.map +1 -0
  158. package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.d.ts +18 -0
  159. package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.d.ts.map +1 -0
  160. package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.js +2 -0
  161. package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.js.map +1 -0
  162. package/src/nz/co/siliconst/ui5/metaui/plugins/SwitchPlugin.ts +42 -0
  163. package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin-dbg.js +58 -0
  164. package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin-dbg.js.map +1 -0
  165. package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.d.ts +18 -0
  166. package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.d.ts.map +1 -0
  167. package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.js +2 -0
  168. package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.js.map +1 -0
  169. package/src/nz/co/siliconst/ui5/metaui/plugins/TextAreaPlugin.ts +58 -0
  170. package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin-dbg.js +74 -0
  171. package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin-dbg.js.map +1 -0
  172. package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.d.ts +18 -0
  173. package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.d.ts.map +1 -0
  174. package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.js +2 -0
  175. package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.js.map +1 -0
  176. package/src/nz/co/siliconst/ui5/metaui/plugins/TimePlugin.ts +71 -0
  177. package/ui5.yaml +3 -3
  178. package/test-resources/App.js +0 -11
  179. package/test-resources/Main.controller.js +0 -73
  180. package/test-resources/Main.view.xml +0 -42
  181. package/test-resources/index.html +0 -21
  182. package/test-resources/mockData.json +0 -27
  183. package/test-resources/mockSchema.json +0 -98
@@ -1,54 +1,56 @@
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
- });
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.
11
+ */
12
+ class NumberPlugin extends BasePlugin {
13
+ render(fieldMetadata, bindingPath, modelName = "meta") {
14
+ this.metadata = fieldMetadata;
15
+ this.control = new StepInput({
16
+ value: `{${modelName}>${bindingPath}}`,
17
+ displayValuePrecision: fieldMetadata.scale || 0,
18
+ editable: !fieldMetadata.ui?.readOnly,
19
+ required: fieldMetadata.required,
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
+
33
+ // StepInput generally defaults to 0 and isn't usually undefined unless unbound or erased
34
+ if (this.metadata.required && (val === null || val === undefined || Number.isNaN(val) || val === "")) {
35
+ input.setValueState("Error");
36
+ input.setValueStateText("This field is required.");
37
+ return false;
38
+ }
39
+ input.setValueState("None");
40
+ return true;
41
+ }
42
+ applyState() {
43
+ if (this.control && this.metadata) {
44
+ const input = this.control;
45
+ input.setEditable(!this.metadata.ui?.readOnly);
46
+ input.setRequired(this.metadata.required);
47
+ }
48
+ }
49
+ }
50
+ var __exports = {
51
+ __esModule: true
52
+ };
53
+ __exports.NumberPlugin = NumberPlugin;
54
+ return __exports;
55
+ });
54
56
  //# sourceMappingURL=NumberPlugin-dbg.js.map
@@ -1 +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":[]}
1
+ {"version":3,"file":"NumberPlugin-dbg.js","names":["BasePlugin","___BasePlugin","NumberPlugin","render","fieldMetadata","bindingPath","modelName","metadata","control","StepInput","value","displayValuePrecision","scale","editable","ui","readOnly","required","change","oEvent","val","getParameter","publishChange","validate","input","getValue","undefined","Number","isNaN","setValueState","setValueStateText","applyState","setEditable","setRequired","__exports","__esModule"],"sources":["NumberPlugin.ts"],"sourcesContent":["/**\n * @file NumberPlugin.ts\n * @description Renders a sap.m.StepInput for numeric data.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../interfaces/ISchema\";\nimport StepInput from \"sap/m/StepInput\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering and logic for numeric inputs.\n */\nexport class NumberPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\n this.metadata = fieldMetadata;\n\n this.control = new StepInput({\n value: `{${modelName}>${bindingPath}}`,\n displayValuePrecision: fieldMetadata.scale || 0,\n editable: !fieldMetadata.ui?.readOnly,\n required: fieldMetadata.required,\n change: (oEvent: any) => {\n const val = oEvent.getParameter(\"value\");\n this.publishChange(val);\n this.validate();\n }\n });\n\n return this.control;\n }\n\n public validate(): boolean {\n if (!this.control || !this.metadata) return true;\n const input = this.control as StepInput;\n const val = input.getValue();\n\n // StepInput generally defaults to 0 and isn't usually undefined unless unbound or erased\n if (this.metadata.required && (val === null || val === undefined || Number.isNaN(val) || val === \"\")) {\n input.setValueState(\"Error\" as any);\n input.setValueStateText(\"This field is required.\");\n return false;\n }\n\n input.setValueState(\"None\" as any);\n return true;\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n const input = this.control as StepInput;\n input.setEditable(!this.metadata.ui?.readOnly);\n input.setRequired(this.metadata.required);\n }\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,UAAU,GAAAC,aAAA;EAKnB;AACA;AACA;EACO,MAAMC,YAAY,SAASF,UAAU,CAAC;IAClCG,MAAMA,CAACC,aAAgC,EAAEC,WAAmB,EAAEC,SAAiB,GAAG,MAAM,EAAW;MACtG,IAAI,CAACC,QAAQ,GAAGH,aAAa;MAE7B,IAAI,CAACI,OAAO,GAAG,IAAIC,SAAS,CAAC;QACzBC,KAAK,EAAE,IAAIJ,SAAS,IAAID,WAAW,GAAG;QACtCM,qBAAqB,EAAEP,aAAa,CAACQ,KAAK,IAAI,CAAC;QAC/CC,QAAQ,EAAE,CAACT,aAAa,CAACU,EAAE,EAAEC,QAAQ;QACrCC,QAAQ,EAAEZ,aAAa,CAACY,QAAQ;QAChCC,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;MACA,IAAI,IAAI,CAACjB,QAAQ,CAACS,QAAQ,KAAKG,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAKM,SAAS,IAAIC,MAAM,CAACC,KAAK,CAACR,GAAG,CAAC,IAAIA,GAAG,KAAK,EAAE,CAAC,EAAE;QAClGI,KAAK,CAACK,aAAa,CAAC,OAAc,CAAC;QACnCL,KAAK,CAACM,iBAAiB,CAAC,yBAAyB,CAAC;QAClD,OAAO,KAAK;MAChB;MAEAN,KAAK,CAACK,aAAa,CAAC,MAAa,CAAC;MAClC,OAAO,IAAI;IACf;IAEUE,UAAUA,CAAA,EAAS;MACzB,IAAI,IAAI,CAACtB,OAAO,IAAI,IAAI,CAACD,QAAQ,EAAE;QAC/B,MAAMgB,KAAK,GAAG,IAAI,CAACf,OAAoB;QACvCe,KAAK,CAACQ,WAAW,CAAC,CAAC,IAAI,CAACxB,QAAQ,CAACO,EAAE,EAAEC,QAAQ,CAAC;QAC9CQ,KAAK,CAACS,WAAW,CAAC,IAAI,CAACzB,QAAQ,CAACS,QAAQ,CAAC;MAC7C;IACJ;EACJ;EAAC,IAAAiB,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAA/B,YAAA,GAAAA,YAAA;EAAA,OAAA+B,SAAA;AAAA","ignoreList":[]}
@@ -4,13 +4,13 @@ declare module "nz/co/siliconst/ui5/metaui/plugins/NumberPlugin" {
4
4
  * @description Renders a sap.m.StepInput for numeric data.
5
5
  */
6
6
  import { BasePlugin } from "nz/co/siliconst/ui5/metaui/plugins/BasePlugin";
7
- import { IFieldMetadata } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
7
+ import { IPropertyMetadata } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
8
8
  import Control from "sap/ui/core/Control";
9
9
  /**
10
- * Handles rendering and logic for numeric inputs with precision and scale.
10
+ * Handles rendering and logic for numeric inputs.
11
11
  */
12
12
  export class NumberPlugin extends BasePlugin {
13
- render(fieldMetadata: IFieldMetadata, bindingPath: string): Control;
13
+ render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName?: string): Control;
14
14
  validate(): boolean;
15
15
  protected applyState(): void;
16
16
  }
@@ -1 +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"}
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,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAElF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;OAEG;IACH,MAAa,YAAa,SAAQ,UAAU;QACjC,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,OAAO;QAkBlG,QAAQ,IAAI,OAAO;QAgB1B,SAAS,CAAC,UAAU,IAAI,IAAI;KAO/B;CAEA"}
@@ -1,2 +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});
1
+ sap.ui.define(["./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});
2
2
  //# sourceMappingURL=NumberPlugin.js.map
@@ -1 +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":[]}
1
+ {"version":3,"file":"NumberPlugin.js","names":["BasePlugin","___BasePlugin","NumberPlugin","render","fieldMetadata","bindingPath","modelName","this","metadata","control","StepInput","value","displayValuePrecision","scale","editable","ui","readOnly","required","change","oEvent","val","getParameter","publishChange","validate","input","getValue","undefined","Number","isNaN","setValueState","setValueStateText","applyState","setEditable","setRequired","__exports","__esModule"],"sources":["NumberPlugin.ts"],"sourcesContent":["/**\n * @file NumberPlugin.ts\n * @description Renders a sap.m.StepInput for numeric data.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../interfaces/ISchema\";\nimport StepInput from \"sap/m/StepInput\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering and logic for numeric inputs.\n */\nexport class NumberPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\n this.metadata = fieldMetadata;\n\n this.control = new StepInput({\n value: `{${modelName}>${bindingPath}}`,\n displayValuePrecision: fieldMetadata.scale || 0,\n editable: !fieldMetadata.ui?.readOnly,\n required: fieldMetadata.required,\n change: (oEvent: any) => {\n const val = oEvent.getParameter(\"value\");\n this.publishChange(val);\n this.validate();\n }\n });\n\n return this.control;\n }\n\n public validate(): boolean {\n if (!this.control || !this.metadata) return true;\n const input = this.control as StepInput;\n const val = input.getValue();\n\n // StepInput generally defaults to 0 and isn't usually undefined unless unbound or erased\n if (this.metadata.required && (val === null || val === undefined || Number.isNaN(val) || val === \"\")) {\n input.setValueState(\"Error\" as any);\n input.setValueStateText(\"This field is required.\");\n return false;\n }\n\n input.setValueState(\"None\" as any);\n return true;\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n const input = this.control as StepInput;\n input.setEditable(!this.metadata.ui?.readOnly);\n input.setRequired(this.metadata.required);\n }\n }\n}\n"],"mappings":"4EAAA,MAKSA,EAAUC,EAAA,cAQZ,MAAMC,UAAqBF,EACvBG,OAAOC,EAAkCC,EAAqBC,EAAoB,QACrFC,KAAKC,SAAWJ,EAEhBG,KAAKE,QAAU,IAAIC,EAAU,CACzBC,MAAO,IAAIL,KAAaD,KACxBO,sBAAuBR,EAAcS,OAAS,EAC9CC,UAAWV,EAAcW,IAAIC,SAC7BC,SAAUb,EAAca,SACxBC,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,WAGlB,GAAIlB,KAAKC,SAASS,WAAaG,IAAQ,MAAQA,IAAQM,WAAaC,OAAOC,MAAMR,IAAQA,IAAQ,IAAK,CAClGI,EAAMK,cAAc,SACpBL,EAAMM,kBAAkB,2BACxB,OAAO,KACX,CAEAN,EAAMK,cAAc,QACpB,OAAO,IACX,CAEUE,aACN,GAAIxB,KAAKE,SAAWF,KAAKC,SAAU,CAC/B,MAAMgB,EAAQjB,KAAKE,QACnBe,EAAMQ,aAAazB,KAAKC,SAASO,IAAIC,UACrCQ,EAAMS,YAAY1B,KAAKC,SAASS,SACpC,CACJ,EACH,IAAAiB,EAAA,CAAAC,WAAA,MAAAD,EAAAhC,eAAA,OAAAgC,CAAA","ignoreList":[]}
@@ -1,55 +1,56 @@
1
- /**
2
- * @file NumberPlugin.ts
3
- * @description Renders a sap.m.StepInput for numeric data.
4
- */
5
-
6
- import { BasePlugin } from "./BasePlugin";
7
- import { IFieldMetadata } from "../interfaces/ISchema";
8
- import StepInput from "sap/m/StepInput";
9
- import Control from "sap/ui/core/Control";
10
-
11
- /**
12
- * Handles rendering and logic for numeric inputs with precision and scale.
13
- */
14
- export class NumberPlugin extends BasePlugin {
15
- public render(fieldMetadata: IFieldMetadata, bindingPath: string): Control {
16
- this.metadata = fieldMetadata;
17
-
18
- this.control = new StepInput({
19
- value: `{meta>${bindingPath}}`,
20
- displayValuePrecision: fieldMetadata.scale || 0,
21
- editable: !fieldMetadata.isReadOnly,
22
- required: fieldMetadata.isRequired,
23
- change: (oEvent: any) => {
24
- const val = oEvent.getParameter("value");
25
- this.publishChange(val);
26
- this.validate();
27
- }
28
- });
29
-
30
- return this.control;
31
- }
32
-
33
- public validate(): boolean {
34
- if (!this.control || !this.metadata) return true;
35
- const input = this.control as StepInput;
36
- const val = input.getValue();
37
-
38
- if (this.metadata.isRequired && (val === null || val === undefined)) {
39
- input.setValueState("Error" as any);
40
- input.setValueStateText("This field is required.");
41
- return false;
42
- }
43
-
44
- input.setValueState("None" as any);
45
- return true;
46
- }
47
-
48
- protected applyState(): void {
49
- if (this.control && this.metadata) {
50
- const input = this.control as StepInput;
51
- input.setEditable(!this.metadata.isReadOnly);
52
- input.setRequired(this.metadata.isRequired);
53
- }
54
- }
55
- }
1
+ /**
2
+ * @file NumberPlugin.ts
3
+ * @description Renders a sap.m.StepInput for numeric data.
4
+ */
5
+
6
+ import { BasePlugin } from "./BasePlugin";
7
+ import { IPropertyMetadata } from "../interfaces/ISchema";
8
+ import StepInput from "sap/m/StepInput";
9
+ import Control from "sap/ui/core/Control";
10
+
11
+ /**
12
+ * Handles rendering and logic for numeric inputs.
13
+ */
14
+ export class NumberPlugin extends BasePlugin {
15
+ public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta"): Control {
16
+ this.metadata = fieldMetadata;
17
+
18
+ this.control = new StepInput({
19
+ value: `{${modelName}>${bindingPath}}`,
20
+ displayValuePrecision: fieldMetadata.scale || 0,
21
+ editable: !fieldMetadata.ui?.readOnly,
22
+ required: fieldMetadata.required,
23
+ change: (oEvent: any) => {
24
+ const val = oEvent.getParameter("value");
25
+ this.publishChange(val);
26
+ this.validate();
27
+ }
28
+ });
29
+
30
+ return this.control;
31
+ }
32
+
33
+ public validate(): boolean {
34
+ if (!this.control || !this.metadata) return true;
35
+ const input = this.control as StepInput;
36
+ const val = input.getValue();
37
+
38
+ // StepInput generally defaults to 0 and isn't usually undefined unless unbound or erased
39
+ if (this.metadata.required && (val === null || val === undefined || Number.isNaN(val) || val === "")) {
40
+ input.setValueState("Error" as any);
41
+ input.setValueStateText("This field is required.");
42
+ return false;
43
+ }
44
+
45
+ input.setValueState("None" as any);
46
+ return true;
47
+ }
48
+
49
+ protected applyState(): void {
50
+ if (this.control && this.metadata) {
51
+ const input = this.control as StepInput;
52
+ input.setEditable(!this.metadata.ui?.readOnly);
53
+ input.setRequired(this.metadata.required);
54
+ }
55
+ }
56
+ }
@@ -1,54 +1,57 @@
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
- });
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, modelName = "meta") {
14
+ this.metadata = fieldMetadata;
15
+ this.fieldKey = bindingPath.replace("/", ""); // For EventBus
16
+
17
+ this.control = new Input({
18
+ value: `{${modelName}>${bindingPath}}`,
19
+ maxLength: fieldMetadata.maxLength || 0,
20
+ required: !!fieldMetadata.required,
21
+ showValueHelp: fieldMetadata.ui?.widget === "searchHelp",
22
+ change: oEvent => {
23
+ const val = oEvent.getParameter("value");
24
+ this.publishChange(val);
25
+ this.validate();
26
+ }
27
+ });
28
+ this.applyCommonDirectives(this.control, fieldMetadata, modelName);
29
+ return this.control;
30
+ }
31
+ validate() {
32
+ if (!this.control || !this.metadata) return true;
33
+ const input = this.control;
34
+ const val = input.getValue();
35
+ if (this.metadata.required && (!val || typeof val !== 'string' || val.trim() === "")) {
36
+ input.setValueState("Error");
37
+ input.setValueStateText("This field is required.");
38
+ return false;
39
+ }
40
+ input.setValueState("None");
41
+ return true;
42
+ }
43
+ applyState() {
44
+ if (this.control && this.metadata) {
45
+ const input = this.control;
46
+ input.setEditable(!this.metadata.ui?.readOnly);
47
+ input.setRequired(this.metadata.required);
48
+ }
49
+ }
50
+ }
51
+ var __exports = {
52
+ __esModule: true
53
+ };
54
+ __exports.StringPlugin = StringPlugin;
55
+ return __exports;
56
+ });
54
57
  //# sourceMappingURL=StringPlugin-dbg.js.map
@@ -1 +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":[]}
1
+ {"version":3,"file":"StringPlugin-dbg.js","names":["BasePlugin","___BasePlugin","StringPlugin","render","fieldMetadata","bindingPath","modelName","metadata","fieldKey","replace","control","Input","value","maxLength","required","showValueHelp","ui","widget","change","oEvent","val","getParameter","publishChange","validate","applyCommonDirectives","input","getValue","trim","setValueState","setValueStateText","applyState","setEditable","readOnly","setRequired","__exports","__esModule"],"sources":["StringPlugin.ts"],"sourcesContent":["/**\n * @file StringPlugin.ts\n * @description Renders a sap.m.Input for string data and validates lengths.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../interfaces/ISchema\";\nimport Input from \"sap/m/Input\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering and logic for basic text inputs.\n */\nexport class StringPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\n this.metadata = fieldMetadata;\n this.fieldKey = bindingPath.replace(\"/\", \"\"); // For EventBus\n \n this.control = new Input({\n value: `{${modelName}>${bindingPath}}`,\n maxLength: fieldMetadata.maxLength || 0,\n required: !!fieldMetadata.required,\n showValueHelp: fieldMetadata.ui?.widget === \"searchHelp\",\n change: (oEvent: any) => {\n const val = oEvent.getParameter(\"value\");\n this.publishChange(val);\n this.validate();\n }\n });\n\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n\n return this.control;\n }\n\n public validate(): boolean {\n if (!this.control || !this.metadata) return true;\n const input = this.control as Input;\n const val = input.getValue();\n\n if (this.metadata.required && (!val || typeof val !== 'string' || val.trim() === \"\")) {\n input.setValueState(\"Error\" as any);\n input.setValueStateText(\"This field is required.\");\n return false;\n }\n\n input.setValueState(\"None\" as any);\n return true;\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n const input = this.control as Input;\n input.setEditable(!this.metadata.ui?.readOnly);\n input.setRequired(this.metadata.required);\n }\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,UAAU,GAAAC,aAAA;EAKnB;AACA;AACA;EACO,MAAMC,YAAY,SAASF,UAAU,CAAC;IAClCG,MAAMA,CAACC,aAAgC,EAAEC,WAAmB,EAAEC,SAAiB,GAAG,MAAM,EAAW;MACtG,IAAI,CAACC,QAAQ,GAAGH,aAAa;MAC7B,IAAI,CAACI,QAAQ,GAAGH,WAAW,CAACI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;;MAE9C,IAAI,CAACC,OAAO,GAAG,IAAIC,KAAK,CAAC;QACrBC,KAAK,EAAE,IAAIN,SAAS,IAAID,WAAW,GAAG;QACtCQ,SAAS,EAAET,aAAa,CAACS,SAAS,IAAI,CAAC;QACvCC,QAAQ,EAAE,CAAC,CAACV,aAAa,CAACU,QAAQ;QAClCC,aAAa,EAAEX,aAAa,CAACY,EAAE,EAAEC,MAAM,KAAK,YAAY;QACxDC,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,IAAI,CAACC,qBAAqB,CAAC,IAAI,CAACd,OAAO,EAAEN,aAAa,EAAEE,SAAS,CAAC;MAElE,OAAO,IAAI,CAACI,OAAO;IACvB;IAEOa,QAAQA,CAAA,EAAY;MACvB,IAAI,CAAC,IAAI,CAACb,OAAO,IAAI,CAAC,IAAI,CAACH,QAAQ,EAAE,OAAO,IAAI;MAChD,MAAMkB,KAAK,GAAG,IAAI,CAACf,OAAgB;MACnC,MAAMU,GAAG,GAAGK,KAAK,CAACC,QAAQ,CAAC,CAAC;MAE5B,IAAI,IAAI,CAACnB,QAAQ,CAACO,QAAQ,KAAK,CAACM,GAAG,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACO,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;QAClFF,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,CAACH,QAAQ,EAAE;QAC/B,MAAMkB,KAAK,GAAG,IAAI,CAACf,OAAgB;QACnCe,KAAK,CAACM,WAAW,CAAC,CAAC,IAAI,CAACxB,QAAQ,CAACS,EAAE,EAAEgB,QAAQ,CAAC;QAC9CP,KAAK,CAACQ,WAAW,CAAC,IAAI,CAAC1B,QAAQ,CAACO,QAAQ,CAAC;MAC7C;IACJ;EACJ;EAAC,IAAAoB,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAhC,YAAA,GAAAA,YAAA;EAAA,OAAAgC,SAAA;AAAA","ignoreList":[]}
@@ -4,13 +4,13 @@ declare module "nz/co/siliconst/ui5/metaui/plugins/StringPlugin" {
4
4
  * @description Renders a sap.m.Input for string data and validates lengths.
5
5
  */
6
6
  import { BasePlugin } from "nz/co/siliconst/ui5/metaui/plugins/BasePlugin";
7
- import { IFieldMetadata } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
7
+ import { IPropertyMetadata } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
8
8
  import Control from "sap/ui/core/Control";
9
9
  /**
10
10
  * Handles rendering and logic for basic text inputs.
11
11
  */
12
12
  export class StringPlugin extends BasePlugin {
13
- render(fieldMetadata: IFieldMetadata, bindingPath: string): Control;
13
+ render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName?: string): Control;
14
14
  validate(): boolean;
15
15
  protected applyState(): void;
16
16
  }
@@ -1 +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"}
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,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAElF,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAE1C;;OAEG;IACH,MAAa,YAAa,SAAQ,UAAU;QACjC,MAAM,CAAC,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,OAAO;QAqBlG,QAAQ,IAAI,OAAO;QAe1B,SAAS,CAAC,UAAU,IAAI,IAAI;KAO/B;CAEA"}
@@ -1,2 +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});
1
+ sap.ui.define(["./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});
2
2
  //# sourceMappingURL=StringPlugin.js.map
@@ -1 +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":[]}
1
+ {"version":3,"file":"StringPlugin.js","names":["BasePlugin","___BasePlugin","StringPlugin","render","fieldMetadata","bindingPath","modelName","this","metadata","fieldKey","replace","control","Input","value","maxLength","required","showValueHelp","ui","widget","change","oEvent","val","getParameter","publishChange","validate","applyCommonDirectives","input","getValue","trim","setValueState","setValueStateText","applyState","setEditable","readOnly","setRequired","__exports","__esModule"],"sources":["StringPlugin.ts"],"sourcesContent":["/**\n * @file StringPlugin.ts\n * @description Renders a sap.m.Input for string data and validates lengths.\n */\n\nimport { BasePlugin } from \"./BasePlugin\";\nimport { IPropertyMetadata } from \"../interfaces/ISchema\";\nimport Input from \"sap/m/Input\";\nimport Control from \"sap/ui/core/Control\";\n\n/**\n * Handles rendering and logic for basic text inputs.\n */\nexport class StringPlugin extends BasePlugin {\n public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = \"meta\"): Control {\n this.metadata = fieldMetadata;\n this.fieldKey = bindingPath.replace(\"/\", \"\"); // For EventBus\n \n this.control = new Input({\n value: `{${modelName}>${bindingPath}}`,\n maxLength: fieldMetadata.maxLength || 0,\n required: !!fieldMetadata.required,\n showValueHelp: fieldMetadata.ui?.widget === \"searchHelp\",\n change: (oEvent: any) => {\n const val = oEvent.getParameter(\"value\");\n this.publishChange(val);\n this.validate();\n }\n });\n\n this.applyCommonDirectives(this.control, fieldMetadata, modelName);\n\n return this.control;\n }\n\n public validate(): boolean {\n if (!this.control || !this.metadata) return true;\n const input = this.control as Input;\n const val = input.getValue();\n\n if (this.metadata.required && (!val || typeof val !== 'string' || val.trim() === \"\")) {\n input.setValueState(\"Error\" as any);\n input.setValueStateText(\"This field is required.\");\n return false;\n }\n\n input.setValueState(\"None\" as any);\n return true;\n }\n\n protected applyState(): void {\n if (this.control && this.metadata) {\n const input = this.control as Input;\n input.setEditable(!this.metadata.ui?.readOnly);\n input.setRequired(this.metadata.required);\n }\n }\n}\n"],"mappings":"wEAAA,MAKSA,EAAUC,EAAA,cAQZ,MAAMC,UAAqBF,EACvBG,OAAOC,EAAkCC,EAAqBC,EAAoB,QACrFC,KAAKC,SAAWJ,EAChBG,KAAKE,SAAWJ,EAAYK,QAAQ,IAAK,IAEzCH,KAAKI,QAAU,IAAIC,EAAM,CACrBC,MAAO,IAAIP,KAAaD,KACxBS,UAAWV,EAAcU,WAAa,EACtCC,WAAYX,EAAcW,SAC1BC,cAAeZ,EAAca,IAAIC,SAAW,aAC5CC,OAASC,IACL,MAAMC,EAAMD,EAAOE,aAAa,SAChCf,KAAKgB,cAAcF,GACnBd,KAAKiB,cAIbjB,KAAKkB,sBAAsBlB,KAAKI,QAASP,EAAeE,GAExD,OAAOC,KAAKI,OAChB,CAEOa,WACH,IAAKjB,KAAKI,UAAYJ,KAAKC,SAAU,OAAO,KAC5C,MAAMkB,EAAQnB,KAAKI,QACnB,MAAMU,EAAMK,EAAMC,WAElB,GAAIpB,KAAKC,SAASO,YAAcM,UAAcA,IAAQ,UAAYA,EAAIO,SAAW,IAAK,CAClFF,EAAMG,cAAc,SACpBH,EAAMI,kBAAkB,2BACxB,OAAO,KACX,CAEAJ,EAAMG,cAAc,QACpB,OAAO,IACX,CAEUE,aACN,GAAIxB,KAAKI,SAAWJ,KAAKC,SAAU,CAC/B,MAAMkB,EAAQnB,KAAKI,QACnBe,EAAMM,aAAazB,KAAKC,SAASS,IAAIgB,UACrCP,EAAMQ,YAAY3B,KAAKC,SAASO,SACpC,CACJ,EACH,IAAAoB,EAAA,CAAAC,WAAA,MAAAD,EAAAjC,eAAA,OAAAiC,CAAA","ignoreList":[]}
@@ -1,55 +1,58 @@
1
- /**
2
- * @file StringPlugin.ts
3
- * @description Renders a sap.m.Input for string data and validates lengths.
4
- */
5
-
6
- import { BasePlugin } from "./BasePlugin";
7
- import { IFieldMetadata } from "../interfaces/ISchema";
8
- import Input from "sap/m/Input";
9
- import Control from "sap/ui/core/Control";
10
-
11
- /**
12
- * Handles rendering and logic for basic text inputs.
13
- */
14
- export class StringPlugin extends BasePlugin {
15
- public render(fieldMetadata: IFieldMetadata, bindingPath: string): Control {
16
- this.metadata = fieldMetadata;
17
-
18
- this.control = new Input({
19
- value: `{meta>${bindingPath}}`,
20
- maxLength: fieldMetadata.maxLength || 0,
21
- editable: !fieldMetadata.isReadOnly,
22
- required: fieldMetadata.isRequired,
23
- change: (oEvent: any) => {
24
- const val = oEvent.getParameter("value");
25
- this.publishChange(val);
26
- this.validate();
27
- }
28
- });
29
-
30
- return this.control;
31
- }
32
-
33
- public validate(): boolean {
34
- if (!this.control || !this.metadata) return true;
35
- const input = this.control as Input;
36
- const val = input.getValue();
37
-
38
- if (this.metadata.isRequired && (!val || val.trim() === "")) {
39
- input.setValueState("Error" as any);
40
- input.setValueStateText("This field is required.");
41
- return false;
42
- }
43
-
44
- input.setValueState("None" as any);
45
- return true;
46
- }
47
-
48
- protected applyState(): void {
49
- if (this.control && this.metadata) {
50
- const input = this.control as Input;
51
- input.setEditable(!this.metadata.isReadOnly);
52
- input.setRequired(this.metadata.isRequired);
53
- }
54
- }
55
- }
1
+ /**
2
+ * @file StringPlugin.ts
3
+ * @description Renders a sap.m.Input for string data and validates lengths.
4
+ */
5
+
6
+ import { BasePlugin } from "./BasePlugin";
7
+ import { IPropertyMetadata } from "../interfaces/ISchema";
8
+ import Input from "sap/m/Input";
9
+ import Control from "sap/ui/core/Control";
10
+
11
+ /**
12
+ * Handles rendering and logic for basic text inputs.
13
+ */
14
+ export class StringPlugin extends BasePlugin {
15
+ public render(fieldMetadata: IPropertyMetadata, bindingPath: string, modelName: string = "meta"): Control {
16
+ this.metadata = fieldMetadata;
17
+ this.fieldKey = bindingPath.replace("/", ""); // For EventBus
18
+
19
+ this.control = new Input({
20
+ value: `{${modelName}>${bindingPath}}`,
21
+ maxLength: fieldMetadata.maxLength || 0,
22
+ required: !!fieldMetadata.required,
23
+ showValueHelp: fieldMetadata.ui?.widget === "searchHelp",
24
+ change: (oEvent: any) => {
25
+ const val = oEvent.getParameter("value");
26
+ this.publishChange(val);
27
+ this.validate();
28
+ }
29
+ });
30
+
31
+ this.applyCommonDirectives(this.control, fieldMetadata, modelName);
32
+
33
+ return this.control;
34
+ }
35
+
36
+ public validate(): boolean {
37
+ if (!this.control || !this.metadata) return true;
38
+ const input = this.control as Input;
39
+ const val = input.getValue();
40
+
41
+ if (this.metadata.required && (!val || typeof val !== 'string' || val.trim() === "")) {
42
+ input.setValueState("Error" as any);
43
+ input.setValueStateText("This field is required.");
44
+ return false;
45
+ }
46
+
47
+ input.setValueState("None" as any);
48
+ return true;
49
+ }
50
+
51
+ protected applyState(): void {
52
+ if (this.control && this.metadata) {
53
+ const input = this.control as Input;
54
+ input.setEditable(!this.metadata.ui?.readOnly);
55
+ input.setRequired(this.metadata.required);
56
+ }
57
+ }
58
+ }