smart-webcomponents-react 14.2.83 → 14.3.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 (376) hide show
  1. package/alertwindow/alertwindow.d.ts +5 -5
  2. package/alertwindow/alertwindow.esm.js +10 -85
  3. package/alertwindow/alertwindow.umd.js +1134 -1209
  4. package/array/array.d.ts +5 -5
  5. package/array/array.esm.js +13 -88
  6. package/array/array.umd.js +752 -827
  7. package/barcode/barcode.d.ts +3 -3
  8. package/barcode/barcode.esm.js +6 -61
  9. package/barcode/barcode.umd.js +311 -366
  10. package/button/dropdownbutton.d.ts +2 -2
  11. package/button/multisplitbutton.d.ts +2 -2
  12. package/calendar/calendar.d.ts +2 -2
  13. package/calendar/calendar.esm.js +4 -49
  14. package/calendar/calendar.umd.js +710 -755
  15. package/card/cardview.d.ts +1 -1
  16. package/cardview/cardview.d.ts +1 -1
  17. package/cardview/cardview.esm.js +2 -37
  18. package/cardview/cardview.umd.js +515 -550
  19. package/chart/chart.d.ts +9 -9
  20. package/chart/chart.esm.js +18 -133
  21. package/chart/chart.umd.js +822 -937
  22. package/chart/ganttchart.d.ts +20 -20
  23. package/combobox/combobox.d.ts +4 -4
  24. package/combobox/combobox.esm.js +8 -73
  25. package/combobox/combobox.umd.js +1341 -1406
  26. package/datetimepicker/datetimepicker.d.ts +1 -1
  27. package/datetimepicker/datetimepicker.esm.js +2 -37
  28. package/datetimepicker/datetimepicker.umd.js +826 -861
  29. package/dialogwindow/dialogwindow.d.ts +5 -5
  30. package/dialogwindow/dialogwindow.esm.js +10 -85
  31. package/dialogwindow/dialogwindow.umd.js +1134 -1209
  32. package/dockinglayout/dockinglayout.d.ts +7 -7
  33. package/dockinglayout/dockinglayout.esm.js +14 -109
  34. package/dockinglayout/dockinglayout.umd.js +765 -860
  35. package/dropdownbutton/dropdownbutton.d.ts +2 -2
  36. package/dropdownbutton/dropdownbutton.esm.js +4 -49
  37. package/dropdownbutton/dropdownbutton.umd.js +527 -572
  38. package/dropdownlist/dropdownlist.d.ts +4 -4
  39. package/dropdownlist/dropdownlist.esm.js +8 -73
  40. package/dropdownlist/dropdownlist.umd.js +1275 -1340
  41. package/editor/editor.d.ts +11 -9
  42. package/editor/editor.esm.js +14 -109
  43. package/editor/editor.umd.js +911 -1006
  44. package/fileupload/fileupload.d.ts +2 -1
  45. package/filterbuilder/filterbuilder.d.ts +1 -1
  46. package/filterbuilder/filterbuilder.esm.js +2 -37
  47. package/filterbuilder/filterbuilder.umd.js +463 -498
  48. package/filterpanel/filterpanel.d.ts +1 -1
  49. package/filterpanel/filterpanel.esm.js +2 -37
  50. package/filterpanel/filterpanel.umd.js +354 -389
  51. package/form/form.d.ts +1 -1
  52. package/form/form.esm.js +4 -49
  53. package/form/form.umd.js +1016 -1061
  54. package/form/formgroup.d.ts +1 -1
  55. package/ganttchart/ganttchart.d.ts +20 -20
  56. package/ganttchart/ganttchart.esm.js +40 -265
  57. package/ganttchart/ganttchart.umd.js +1666 -1891
  58. package/gauge/gauge.d.ts +2 -2
  59. package/gauge/gauge.esm.js +4 -49
  60. package/gauge/gauge.umd.js +664 -709
  61. package/grid/grid.d.ts +56 -51
  62. package/grid/grid.esm.js +96 -460
  63. package/grid/grid.umd.js +2107 -2471
  64. package/index.d.ts +45 -3
  65. package/input/input.d.ts +2 -2
  66. package/input/input.esm.js +4 -49
  67. package/input/input.umd.js +505 -550
  68. package/input/numberinput.d.ts +2 -2
  69. package/input/phoneinput.d.ts +4 -4
  70. package/kanban/kanban.d.ts +6 -6
  71. package/kanban/kanban.esm.js +12 -97
  72. package/kanban/kanban.umd.js +1334 -1419
  73. package/layout/dockinglayout.d.ts +7 -7
  74. package/listbox/listbox.d.ts +5 -5
  75. package/listbox/listbox.esm.js +10 -85
  76. package/listbox/listbox.umd.js +1170 -1245
  77. package/listmenu/listmenu.d.ts +1 -1
  78. package/listmenu/listmenu.esm.js +2 -37
  79. package/listmenu/listmenu.umd.js +1005 -1040
  80. package/menu/listmenu.d.ts +1 -1
  81. package/menu/menu.d.ts +1 -1
  82. package/menu/menu.esm.js +2 -37
  83. package/menu/menu.umd.js +1025 -1060
  84. package/multilinetextbox/multilinetextbox.d.ts +1 -1
  85. package/multilinetextbox/multilinetextbox.esm.js +2 -37
  86. package/multilinetextbox/multilinetextbox.umd.js +907 -942
  87. package/multilinewindow/multilinewindow.d.ts +5 -5
  88. package/multilinewindow/multilinewindow.esm.js +10 -85
  89. package/multilinewindow/multilinewindow.umd.js +1134 -1209
  90. package/multisplitbutton/multisplitbutton.d.ts +2 -2
  91. package/multisplitbutton/multisplitbutton.esm.js +4 -49
  92. package/multisplitbutton/multisplitbutton.umd.js +941 -986
  93. package/numberinput/numberinput.d.ts +2 -2
  94. package/numberinput/numberinput.esm.js +4 -49
  95. package/numberinput/numberinput.umd.js +348 -393
  96. package/numerictextbox/numerictextbox.d.ts +1 -1
  97. package/numerictextbox/numerictextbox.esm.js +2 -37
  98. package/numerictextbox/numerictextbox.umd.js +592 -627
  99. package/package.json +1 -1
  100. package/phoneinput/phoneinput.d.ts +4 -4
  101. package/phoneinput/phoneinput.esm.js +8 -73
  102. package/phoneinput/phoneinput.umd.js +386 -451
  103. package/pivottable/pivottable.d.ts +3 -3
  104. package/pivottable/pivottable.esm.js +6 -61
  105. package/pivottable/pivottable.umd.js +762 -817
  106. package/progresswindow/progresswindow.d.ts +5 -5
  107. package/progresswindow/progresswindow.esm.js +10 -85
  108. package/progresswindow/progresswindow.umd.js +1134 -1209
  109. package/promptwindow/promptwindow.d.ts +5 -5
  110. package/promptwindow/promptwindow.esm.js +10 -85
  111. package/promptwindow/promptwindow.umd.js +1134 -1209
  112. package/qrcode/qrcode.d.ts +3 -3
  113. package/qrcode/qrcode.esm.js +6 -61
  114. package/qrcode/qrcode.umd.js +333 -388
  115. package/querybuilder/querybuilder.d.ts +6 -1
  116. package/querybuilder/querybuilder.esm.js +14 -38
  117. package/querybuilder/querybuilder.umd.js +446 -470
  118. package/rating/rating.d.ts +1 -1
  119. package/rating/rating.esm.js +2 -37
  120. package/rating/rating.umd.js +261 -296
  121. package/scheduler/scheduler.d.ts +17 -17
  122. package/scheduler/scheduler.esm.js +34 -229
  123. package/scheduler/scheduler.umd.js +1782 -1977
  124. package/slider/slider.d.ts +2 -2
  125. package/slider/slider.esm.js +4 -49
  126. package/slider/slider.umd.js +642 -687
  127. package/source/modules/smart.accordion.js +1 -1
  128. package/source/modules/smart.array.js +2 -2
  129. package/source/modules/smart.barcode.js +1 -1
  130. package/source/modules/smart.breadcrumb.js +1 -1
  131. package/source/modules/smart.button.js +1 -1
  132. package/source/modules/smart.buttongroup.js +1 -1
  133. package/source/modules/smart.calendar.js +3 -3
  134. package/source/modules/smart.card.js +1 -1
  135. package/source/modules/smart.cardview.js +4 -4
  136. package/source/modules/smart.carousel.js +1 -1
  137. package/source/modules/smart.chart.js +1 -1
  138. package/source/modules/smart.checkbox.js +1 -1
  139. package/source/modules/smart.checkinput.js +2 -2
  140. package/source/modules/smart.chip.js +1 -1
  141. package/source/modules/smart.colorinput.js +2 -2
  142. package/source/modules/smart.colorpanel.js +2 -2
  143. package/source/modules/smart.colorpicker.js +2 -2
  144. package/source/modules/smart.combobox.js +2 -2
  145. package/source/modules/smart.common.js +1 -1
  146. package/source/modules/smart.countryinput.js +2 -2
  147. package/source/modules/smart.dateinput.js +3 -3
  148. package/source/modules/smart.daterangeinput.js +4 -4
  149. package/source/modules/smart.datetimepicker.js +3 -3
  150. package/source/modules/smart.dockinglayout.js +1 -1
  151. package/source/modules/smart.dropdownbutton.js +1 -1
  152. package/source/modules/smart.dropdownlist.js +2 -2
  153. package/source/modules/smart.editor.js +5 -5
  154. package/source/modules/smart.element.js +1 -1
  155. package/source/modules/smart.fileupload.js +3 -3
  156. package/source/modules/smart.form.js +2 -2
  157. package/source/modules/smart.formulaparser.js +1 -1
  158. package/source/modules/smart.ganttchart.js +5 -5
  159. package/source/modules/smart.gauge.js +1 -1
  160. package/source/modules/smart.grid.js +14 -14
  161. package/source/modules/smart.gridpanel.js +4 -4
  162. package/source/modules/smart.input.js +2 -2
  163. package/source/modules/smart.kanban.js +5 -5
  164. package/source/modules/smart.layout.js +1 -1
  165. package/source/modules/smart.led.js +1 -1
  166. package/source/modules/smart.listbox.js +2 -2
  167. package/source/modules/smart.listmenu.js +1 -1
  168. package/source/modules/smart.map.js +1 -1
  169. package/source/modules/smart.maskedtextbox.js +2 -2
  170. package/source/modules/smart.menu.js +1 -1
  171. package/source/modules/smart.multicomboinput.js +2 -2
  172. package/source/modules/smart.multiinput.js +2 -2
  173. package/source/modules/smart.multilinetextbox.js +2 -2
  174. package/source/modules/smart.multisplitbutton.js +2 -2
  175. package/source/modules/smart.numberinput.js +2 -2
  176. package/source/modules/smart.numerictextbox.js +2 -2
  177. package/source/modules/smart.pager.js +2 -2
  178. package/source/modules/smart.passwordinput.js +2 -2
  179. package/source/modules/smart.passwordtextbox.js +2 -2
  180. package/source/modules/smart.path.js +1 -1
  181. package/source/modules/smart.phoneinput.js +2 -2
  182. package/source/modules/smart.pivottable.js +3 -3
  183. package/source/modules/smart.progressbar.js +1 -1
  184. package/source/modules/smart.qrcode.js +1 -1
  185. package/source/modules/smart.querybuilder.js +5 -5
  186. package/source/modules/smart.radiobutton.js +1 -1
  187. package/source/modules/smart.rating.js +1 -1
  188. package/source/modules/smart.router.js +1 -1
  189. package/source/modules/smart.scheduler.js +4 -4
  190. package/source/modules/smart.scrollbar.js +1 -1
  191. package/source/modules/smart.slider.js +1 -1
  192. package/source/modules/smart.sortable.js +1 -1
  193. package/source/modules/smart.splitter.js +1 -1
  194. package/source/modules/smart.switchbutton.js +1 -1
  195. package/source/modules/smart.table.js +3 -3
  196. package/source/modules/smart.tabs.js +1 -1
  197. package/source/modules/smart.tank.js +1 -1
  198. package/source/modules/smart.textarea.js +2 -2
  199. package/source/modules/smart.textbox.js +2 -2
  200. package/source/modules/smart.timeinput.js +2 -2
  201. package/source/modules/smart.timepicker.js +1 -1
  202. package/source/modules/smart.toast.js +1 -1
  203. package/source/modules/smart.tooltip.js +1 -1
  204. package/source/modules/smart.tree.js +1 -1
  205. package/source/modules/smart.validator.js +1 -1
  206. package/source/modules/smart.window.js +2 -2
  207. package/source/smart.accordion.js +1 -1
  208. package/source/smart.ajax.js +1 -1
  209. package/source/smart.array.js +1 -1
  210. package/source/smart.barcode.js +1 -1
  211. package/source/smart.bootstrap.js +1 -1
  212. package/source/smart.breadcrumb.js +1 -1
  213. package/source/smart.button.js +1 -1
  214. package/source/smart.buttongroup.js +1 -1
  215. package/source/smart.calendar.js +2 -2
  216. package/source/smart.card.js +1 -1
  217. package/source/smart.cardview.js +1 -1
  218. package/source/smart.carousel.js +1 -1
  219. package/source/smart.chart.annotations.js +1 -1
  220. package/source/smart.chart.api.js +1 -1
  221. package/source/smart.chart.core.js +1 -1
  222. package/source/smart.chart.js +1 -1
  223. package/source/smart.chart.rangeselector.js +1 -1
  224. package/source/smart.chart.waterfall.js +1 -1
  225. package/source/smart.checkbox.js +1 -1
  226. package/source/smart.checkinput.js +1 -1
  227. package/source/smart.chip.js +1 -1
  228. package/source/smart.colorinput.js +1 -1
  229. package/source/smart.colorpanel.js +1 -1
  230. package/source/smart.colorpicker.js +1 -1
  231. package/source/smart.combobox.js +1 -1
  232. package/source/smart.complex.js +1 -1
  233. package/source/smart.core.js +1 -1
  234. package/source/smart.countryinput.js +1 -1
  235. package/source/smart.data.js +1 -1
  236. package/source/smart.date.js +1 -1
  237. package/source/smart.dateformatpanel.js +1 -1
  238. package/source/smart.dateinput.js +1 -1
  239. package/source/smart.daterangeinput.js +1 -1
  240. package/source/smart.datetimepicker.js +1 -1
  241. package/source/smart.dockinglayout.js +1 -1
  242. package/source/smart.draw.js +1 -1
  243. package/source/smart.dropdownbutton.js +1 -1
  244. package/source/smart.dropdownlist.js +1 -1
  245. package/source/smart.editor.js +2 -2
  246. package/source/smart.element.js +1 -1
  247. package/source/smart.elements.js +17 -17
  248. package/source/smart.export.js +1 -1
  249. package/source/smart.fileupload.js +2 -2
  250. package/source/smart.filter.js +1 -1
  251. package/source/smart.filterbuilder.js +2 -2
  252. package/source/smart.filterpanel.js +1 -1
  253. package/source/smart.form.js +1 -1
  254. package/source/smart.format.js +1 -1
  255. package/source/smart.formulaparser.js +1 -1
  256. package/source/smart.ganttchart.js +2 -2
  257. package/source/smart.gauge.js +1 -1
  258. package/source/smart.grid.cell.js +2 -2
  259. package/source/smart.grid.chart.js +1 -1
  260. package/source/smart.grid.column.js +1 -1
  261. package/source/smart.grid.core.js +2 -2
  262. package/source/smart.grid.dialog.js +2 -2
  263. package/source/smart.grid.edit.js +2 -2
  264. package/source/smart.grid.export.js +1 -1
  265. package/source/smart.grid.filter.js +1 -1
  266. package/source/smart.grid.group.js +1 -1
  267. package/source/smart.grid.js +1 -1
  268. package/source/smart.grid.menu.js +2 -2
  269. package/source/smart.grid.pager.js +1 -1
  270. package/source/smart.grid.reorder.js +1 -1
  271. package/source/smart.grid.resize.js +2 -2
  272. package/source/smart.grid.row.js +1 -1
  273. package/source/smart.grid.select.js +2 -2
  274. package/source/smart.grid.sort.js +1 -1
  275. package/source/smart.grid.toolbar.js +2 -2
  276. package/source/smart.grid.tree.js +1 -1
  277. package/source/smart.grid.view.js +2 -2
  278. package/source/smart.gridpanel.js +1 -1
  279. package/source/smart.input.js +2 -2
  280. package/source/smart.kanban.js +2 -2
  281. package/source/smart.layout.js +1 -1
  282. package/source/smart.led.js +1 -1
  283. package/source/smart.listbox.js +2 -2
  284. package/source/smart.listmenu.js +1 -1
  285. package/source/smart.map.js +1 -1
  286. package/source/smart.maskedtextbox.js +1 -1
  287. package/source/smart.math.js +1 -1
  288. package/source/smart.menu.js +1 -1
  289. package/source/smart.multicomboinput.js +1 -1
  290. package/source/smart.multiinput.js +1 -1
  291. package/source/smart.multilinetextbox.js +1 -1
  292. package/source/smart.multisplitbutton.js +1 -1
  293. package/source/smart.numberformatpanel.js +1 -1
  294. package/source/smart.numberinput.js +1 -1
  295. package/source/smart.numeric.js +1 -1
  296. package/source/smart.numerictextbox.js +1 -1
  297. package/source/smart.pager.js +1 -1
  298. package/source/smart.passwordinput.js +1 -1
  299. package/source/smart.passwordtextbox.js +1 -1
  300. package/source/smart.path.js +1 -1
  301. package/source/smart.phoneinput.js +1 -1
  302. package/source/smart.pivottable.js +1 -1
  303. package/source/smart.powerbutton.js +1 -1
  304. package/source/smart.progressbar.js +1 -1
  305. package/source/smart.qrcode.js +1 -1
  306. package/source/smart.radiobutton.js +1 -1
  307. package/source/smart.rating.js +1 -1
  308. package/source/smart.router.js +1 -1
  309. package/source/smart.scheduler.js +1 -1
  310. package/source/smart.scrollbar.js +1 -1
  311. package/source/smart.slider.js +1 -1
  312. package/source/smart.sortable.js +1 -1
  313. package/source/smart.splitter.js +1 -1
  314. package/source/smart.switchbutton.js +1 -1
  315. package/source/smart.table.js +1 -1
  316. package/source/smart.tabs.js +1 -1
  317. package/source/smart.tank.js +1 -1
  318. package/source/smart.textarea.js +1 -1
  319. package/source/smart.textbox.js +1 -1
  320. package/source/smart.tickintervalhandler.js +1 -1
  321. package/source/smart.timeinput.js +1 -1
  322. package/source/smart.timepicker.js +1 -1
  323. package/source/smart.toast.js +1 -1
  324. package/source/smart.tooltip.js +1 -1
  325. package/source/smart.tree.js +1 -1
  326. package/source/smart.validationpanel.js +1 -1
  327. package/source/smart.validator.js +1 -1
  328. package/source/smart.window.js +1 -1
  329. package/source/styles/components/smart.grid.css +1 -1
  330. package/source/styles/default/scss/smart.grid.scss +10 -3
  331. package/source/styles/default/smart.grid.css +7 -3
  332. package/source/styles/smart.default.css +1 -1
  333. package/source/typescript/smart.editor.d.ts +4 -2
  334. package/source/typescript/smart.elements.d.ts +45 -3
  335. package/source/typescript/smart.fileupload.d.ts +2 -1
  336. package/source/typescript/smart.grid.d.ts +34 -0
  337. package/source/typescript/smart.querybuilder.d.ts +5 -0
  338. package/splitter/splitter.d.ts +3 -3
  339. package/splitter/splitter.esm.js +6 -61
  340. package/splitter/splitter.umd.js +901 -956
  341. package/table/pivottable.d.ts +3 -3
  342. package/table/table.d.ts +7 -7
  343. package/table/table.esm.js +14 -109
  344. package/table/table.umd.js +1278 -1373
  345. package/tabs/tabs.d.ts +4 -4
  346. package/tabs/tabs.esm.js +8 -73
  347. package/tabs/tabs.umd.js +875 -940
  348. package/tabs/tabswindow.d.ts +5 -5
  349. package/tabswindow/tabswindow.d.ts +5 -5
  350. package/tabswindow/tabswindow.esm.js +10 -85
  351. package/tabswindow/tabswindow.umd.js +1134 -1209
  352. package/tank/tank.d.ts +2 -2
  353. package/tank/tank.esm.js +4 -49
  354. package/tank/tank.umd.js +598 -643
  355. package/textbox/multilinetextbox.d.ts +1 -1
  356. package/textbox/numerictextbox.d.ts +1 -1
  357. package/timepicker/datetimepicker.d.ts +1 -1
  358. package/toast/toast.d.ts +1 -1
  359. package/toast/toast.esm.js +2 -37
  360. package/toast/toast.umd.js +397 -432
  361. package/tree/tree.d.ts +4 -4
  362. package/tree/tree.esm.js +8 -73
  363. package/tree/tree.umd.js +1310 -1375
  364. package/waitwindow/waitwindow.d.ts +5 -5
  365. package/waitwindow/waitwindow.esm.js +10 -85
  366. package/waitwindow/waitwindow.umd.js +1134 -1209
  367. package/window/alertwindow.d.ts +5 -5
  368. package/window/dialogwindow.d.ts +5 -5
  369. package/window/multilinewindow.d.ts +5 -5
  370. package/window/progresswindow.d.ts +5 -5
  371. package/window/promptwindow.d.ts +5 -5
  372. package/window/tabswindow.d.ts +5 -5
  373. package/window/waitwindow.d.ts +5 -5
  374. package/window/window.d.ts +5 -5
  375. package/window/window.esm.js +10 -85
  376. package/window/window.umd.js +1134 -1209
package/form/form.umd.js CHANGED
@@ -2,1073 +2,1028 @@
2
2
  require('../source/modules/smart.form');
3
3
 
4
4
  (function (global, factory) {
5
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :
6
- typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :
7
- (factory((global.form = {}),global.React));
5
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :
6
+ typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :
7
+ (factory((global.form = {}),global.React));
8
8
  }(this, (function (exports,React) { 'use strict';
9
9
 
10
- React = React && React.hasOwnProperty('default') ? React['default'] : React;
10
+ React = React && React.hasOwnProperty('default') ? React['default'] : React;
11
11
 
12
- /*! *****************************************************************************
13
- Copyright (c) Microsoft Corporation. All rights reserved.
14
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use
15
- this file except in compliance with the License. You may obtain a copy of the
16
- License at http://www.apache.org/licenses/LICENSE-2.0
17
-
18
- THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19
- KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
20
- WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
21
- MERCHANTABLITY OR NON-INFRINGEMENT.
22
-
23
- See the Apache Version 2.0 License for specific language governing permissions
24
- and limitations under the License.
25
- ***************************************************************************** */
26
-
27
- function __awaiter(thisArg, _arguments, P, generator) {
28
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
29
- return new (P || (P = Promise))(function (resolve, reject) {
30
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
31
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
32
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
33
- step((generator = generator.apply(thisArg, _arguments || [])).next());
34
- });
35
- }
12
+ const Smart = window.Smart;
13
+ /**
14
+ Form Control
15
+ */
16
+ class FormControl extends React.Component {
17
+ constructor(props) {
18
+ super(props);
19
+ this.componentRef = React.createRef();
20
+ }
21
+ // Gets the id of the React component.
22
+ get id() {
23
+ if (!this._id) {
24
+ this._id = 'FormControl' + Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
25
+ }
26
+ return this._id;
27
+ }
28
+ /** Gets or Sets the FormControl Action. This property is used when the 'controlType' is 'button' or 'submit'
29
+ * Property type: FormControlAction | string
30
+ */
31
+ get action() {
32
+ return this.nativeElement ? this.nativeElement.action : undefined;
33
+ }
34
+ set action(value) {
35
+ if (this.nativeElement) {
36
+ this.nativeElement.action = value;
37
+ }
38
+ }
39
+ /** Sets or Gets the alignment of the FormControl
40
+ * Property type: FormControlAlign | string
41
+ */
42
+ get align() {
43
+ return this.nativeElement ? this.nativeElement.align : undefined;
44
+ }
45
+ set align(value) {
46
+ if (this.nativeElement) {
47
+ this.nativeElement.align = value;
48
+ }
49
+ }
50
+ /** HTML Content displayed after the Form Control
51
+ * Property type: any
52
+ */
53
+ get appendHTML() {
54
+ return this.nativeElement ? this.nativeElement.appendHTML : undefined;
55
+ }
56
+ set appendHTML(value) {
57
+ if (this.nativeElement) {
58
+ this.nativeElement.appendHTML = value;
59
+ }
60
+ }
61
+ /** JSON object with initialization properties of the UI component. Example: { dataSource: ['item 1', 'item 2', 'item 3'] } will set the dataSource property of the Form control.
62
+ * Property type: any
63
+ */
64
+ get controlOptions() {
65
+ return this.nativeElement ? this.nativeElement.controlOptions : undefined;
66
+ }
67
+ set controlOptions(value) {
68
+ if (this.nativeElement) {
69
+ this.nativeElement.controlOptions = value;
70
+ }
71
+ }
72
+ /** The type of the control.
73
+ * Property type: FormControlControlType | string
74
+ */
75
+ get controlType() {
76
+ return this.nativeElement ? this.nativeElement.controlType : undefined;
77
+ }
78
+ set controlType(value) {
79
+ if (this.nativeElement) {
80
+ this.nativeElement.controlType = value;
81
+ }
82
+ }
83
+ /** Sets the Form Group columns.
84
+ * Property type: number
85
+ */
86
+ get columns() {
87
+ return this.nativeElement ? this.nativeElement.columns : undefined;
88
+ }
89
+ set columns(value) {
90
+ if (this.nativeElement) {
91
+ this.nativeElement.columns = value;
92
+ }
93
+ }
94
+ /** Sets the Form control column span.
95
+ * Property type: number
96
+ */
97
+ get columnSpan() {
98
+ return this.nativeElement ? this.nativeElement.columnSpan : undefined;
99
+ }
100
+ set columnSpan(value) {
101
+ if (this.nativeElement) {
102
+ this.nativeElement.columnSpan = value;
103
+ }
104
+ }
105
+ /** Sets the Form control data field. The control's inner input's name is set to the dataField value and in the FormGroup it is accessible through the dataField value.
106
+ * Property type: string
107
+ */
108
+ get dataField() {
109
+ return this.nativeElement ? this.nativeElement.dataField : undefined;
110
+ }
111
+ set dataField(value) {
112
+ if (this.nativeElement) {
113
+ this.nativeElement.dataField = value;
114
+ }
115
+ }
116
+ /** Sets the Form control disabled mode.
117
+ * Property type: boolean
118
+ */
119
+ get disabled() {
120
+ return this.nativeElement ? this.nativeElement.disabled : undefined;
121
+ }
122
+ set disabled(value) {
123
+ if (this.nativeElement) {
124
+ this.nativeElement.disabled = value;
125
+ }
126
+ }
127
+ /** Gets whether the Form control is 'dirty' i.e its value is changed by the user.
128
+ * Property type: boolean
129
+ */
130
+ get dirty() {
131
+ return this.nativeElement ? this.nativeElement.dirty : undefined;
132
+ }
133
+ set dirty(value) {
134
+ if (this.nativeElement) {
135
+ this.nativeElement.dirty = value;
136
+ }
137
+ }
138
+ /** Gets or Sets the Form control's info icon's tooltip.
139
+ * Property type: string
140
+ */
141
+ get info() {
142
+ return this.nativeElement ? this.nativeElement.info : undefined;
143
+ }
144
+ set info(value) {
145
+ if (this.nativeElement) {
146
+ this.nativeElement.info = value;
147
+ }
148
+ }
149
+ /** Gets whether the Form control is invalid.
150
+ * Property type: boolean
151
+ */
152
+ get invalid() {
153
+ return this.nativeElement ? this.nativeElement.invalid : undefined;
154
+ }
155
+ set invalid(value) {
156
+ if (this.nativeElement) {
157
+ this.nativeElement.invalid = value;
158
+ }
159
+ }
160
+ /** Gets or Sets the Form control's label.
161
+ * Property type: string
162
+ */
163
+ get label() {
164
+ return this.nativeElement ? this.nativeElement.label : undefined;
165
+ }
166
+ set label(value) {
167
+ if (this.nativeElement) {
168
+ this.nativeElement.label = value;
169
+ }
170
+ }
171
+ /** Gets or Sets the Form control's label position.
172
+ * Property type: FormControlLabelPosition | string
173
+ */
174
+ get labelPosition() {
175
+ return this.nativeElement ? this.nativeElement.labelPosition : undefined;
176
+ }
177
+ set labelPosition(value) {
178
+ if (this.nativeElement) {
179
+ this.nativeElement.labelPosition = value;
180
+ }
181
+ }
182
+ /** Gets or Sets the offset between the label and the control.
183
+ * Property type: number
184
+ */
185
+ get labelOffset() {
186
+ return this.nativeElement ? this.nativeElement.labelOffset : undefined;
187
+ }
188
+ set labelOffset(value) {
189
+ if (this.nativeElement) {
190
+ this.nativeElement.labelOffset = value;
191
+ }
192
+ }
193
+ /** FormGroup only(when controlType is set to 'group'). Gets or Sets whether the navigation buttons are displayed. The property has effect when the viewMode property is set.
194
+ * Property type: FormControlAlign | string
195
+ */
196
+ get labelAlign() {
197
+ return this.nativeElement ? this.nativeElement.labelAlign : undefined;
198
+ }
199
+ set labelAlign(value) {
200
+ if (this.nativeElement) {
201
+ this.nativeElement.labelAlign = value;
202
+ }
203
+ }
204
+ /** FormGroup only(when controlType is set to 'group'). Gets or Sets the next button label.
205
+ * Property type: string
206
+ */
207
+ get nextButtonLabel() {
208
+ return this.nativeElement ? this.nativeElement.nextButtonLabel : undefined;
209
+ }
210
+ set nextButtonLabel(value) {
211
+ if (this.nativeElement) {
212
+ this.nativeElement.nextButtonLabel = value;
213
+ }
214
+ }
215
+ /** FormGroup only(when controlType is set to 'group'). Gets or Sets the back button label.
216
+ * Property type: string
217
+ */
218
+ get backButtonLabel() {
219
+ return this.nativeElement ? this.nativeElement.backButtonLabel : undefined;
220
+ }
221
+ set backButtonLabel(value) {
222
+ if (this.nativeElement) {
223
+ this.nativeElement.backButtonLabel = value;
224
+ }
225
+ }
226
+ /** Gets or Sets the FormControl placeholder.
227
+ * Property type: string
228
+ */
229
+ get placeholder() {
230
+ return this.nativeElement ? this.nativeElement.placeholder : undefined;
231
+ }
232
+ set placeholder(value) {
233
+ if (this.nativeElement) {
234
+ this.nativeElement.placeholder = value;
235
+ }
236
+ }
237
+ /** HTML Content displayed before the Form Control
238
+ * Property type: any
239
+ */
240
+ get prependHTML() {
241
+ return this.nativeElement ? this.nativeElement.prependHTML : undefined;
242
+ }
243
+ set prependHTML(value) {
244
+ if (this.nativeElement) {
245
+ this.nativeElement.prependHTML = value;
246
+ }
247
+ }
248
+ /** Gets or Sets the Form control readonly mode.
249
+ * Property type: boolean
250
+ */
251
+ get readonly() {
252
+ return this.nativeElement ? this.nativeElement.readonly : undefined;
253
+ }
254
+ set readonly(value) {
255
+ if (this.nativeElement) {
256
+ this.nativeElement.readonly = value;
257
+ }
258
+ }
259
+ /** Gets or Sets whether this field is required.
260
+ * Property type: boolean
261
+ */
262
+ get required() {
263
+ return this.nativeElement ? this.nativeElement.required : undefined;
264
+ }
265
+ set required(value) {
266
+ if (this.nativeElement) {
267
+ this.nativeElement.required = value;
268
+ }
269
+ }
270
+ /** Gets whether the Form control is not touched by the user. This flag is changed usually on blur, after the user interacted with the Form control
271
+ * Property type: boolean
272
+ */
273
+ get untouched() {
274
+ return this.nativeElement ? this.nativeElement.untouched : undefined;
275
+ }
276
+ set untouched(value) {
277
+ if (this.nativeElement) {
278
+ this.nativeElement.untouched = value;
279
+ }
280
+ }
281
+ /** Gets or Sets whether colon is displayed after the label.
282
+ * Property type: boolean
283
+ */
284
+ get showColonAfterLabel() {
285
+ return this.nativeElement ? this.nativeElement.showColonAfterLabel : undefined;
286
+ }
287
+ set showColonAfterLabel(value) {
288
+ if (this.nativeElement) {
289
+ this.nativeElement.showColonAfterLabel = value;
290
+ }
291
+ }
292
+ /** FormGroup only(when controlType is set to 'group'). Gets or Sets whether the navigation buttons are displayed. The property has effect when the viewMode property is set.
293
+ * Property type: boolean
294
+ */
295
+ get showButtons() {
296
+ return this.nativeElement ? this.nativeElement.showButtons : undefined;
297
+ }
298
+ set showButtons(value) {
299
+ if (this.nativeElement) {
300
+ this.nativeElement.showButtons = value;
301
+ }
302
+ }
303
+ /** Sets or Gets the Form control or Form group value.
304
+ * Property type: any
305
+ */
306
+ get value() {
307
+ return this.nativeElement ? this.nativeElement.value : undefined;
308
+ }
309
+ set value(value) {
310
+ if (this.nativeElement) {
311
+ this.nativeElement.value = value;
312
+ }
313
+ }
314
+ /** Gets whether the Form control is valid.
315
+ * Property type: boolean
316
+ */
317
+ get valid() {
318
+ return this.nativeElement ? this.nativeElement.valid : undefined;
319
+ }
320
+ set valid(value) {
321
+ if (this.nativeElement) {
322
+ this.nativeElement.valid = value;
323
+ }
324
+ }
325
+ /** Sets or gets the column's validation rules. The expected value is an Array of Objects. Each object should have a 'type' property that can be set to 'required', 'min', 'max', 'minLength', 'maxLength', 'email', 'null', 'requiredTrue', 'minData', 'maxDate', 'pattern'. The 'value' property should be set, too. For validation rule types 'required', 'requiredTrue' and 'null' you can skip the 'value' property. Optional property is 'message', which determines the error message.
326
+ * Property type: [] | null
327
+ */
328
+ get validationRules() {
329
+ return this.nativeElement ? this.nativeElement.validationRules : undefined;
330
+ }
331
+ set validationRules(value) {
332
+ if (this.nativeElement) {
333
+ this.nativeElement.validationRules = value;
334
+ }
335
+ }
336
+ /** FormGroup only(when controlType is set to 'group'). Gets or Sets the form'group view mode.
337
+ * Property type: FormControlViewMode | string
338
+ */
339
+ get viewMode() {
340
+ return this.nativeElement ? this.nativeElement.viewMode : undefined;
341
+ }
342
+ set viewMode(value) {
343
+ if (this.nativeElement) {
344
+ this.nativeElement.viewMode = value;
345
+ }
346
+ }
347
+ // Gets the properties of the React component.
348
+ get properties() {
349
+ return ["action", "align", "appendHTML", "controlOptions", "controlType", "columns", "columnSpan", "dataField", "disabled", "dirty", "info", "invalid", "label", "labelPosition", "labelOffset", "labelAlign", "nextButtonLabel", "backButtonLabel", "placeholder", "prependHTML", "readonly", "required", "untouched", "showColonAfterLabel", "showButtons", "value", "valid", "validationRules", "viewMode"];
350
+ }
351
+ // Gets the events of the React component.
352
+ get eventListeners() {
353
+ return ["onCreate", "onReady"];
354
+ }
355
+ componentDidRender(initialize) {
356
+ const that = this;
357
+ const props = {};
358
+ const events = {};
359
+ let styles = null;
360
+ for (let prop in that.props) {
361
+ if (prop === 'children') {
362
+ continue;
363
+ }
364
+ if (prop === 'style') {
365
+ styles = that.props[prop];
366
+ continue;
367
+ }
368
+ if (prop.startsWith('on') && that.properties.indexOf(prop) === -1) {
369
+ events[prop] = that.props[prop];
370
+ continue;
371
+ }
372
+ props[prop] = that.props[prop];
373
+ }
374
+ if (initialize) {
375
+ that.nativeElement = this.componentRef.current;
376
+ }
377
+ for (let prop in props) {
378
+ if (prop === 'class' || prop === 'className') {
379
+ const classNames = props[prop].trim().split(' ');
380
+ for (let className in classNames) {
381
+ if (!that.nativeElement.classList.contains(classNames[className]) && classNames[className] !== "") {
382
+ that.nativeElement.classList.add(classNames[className]);
383
+ }
384
+ }
385
+ continue;
386
+ }
387
+ if (props[prop] !== that.nativeElement[prop]) {
388
+ const normalizeProp = (str) => {
389
+ return str.replace(/-([a-z])/g, function (g) {
390
+ return g[1].toUpperCase();
391
+ });
392
+ };
393
+ if (prop === 'hover' || prop === 'active' || prop === 'focus' || prop === 'selected') {
394
+ that.nativeElement.setAttribute(prop, '');
395
+ }
396
+ const normalizedProp = normalizeProp(prop);
397
+ that.nativeElement[normalizedProp] = props[prop];
398
+ }
399
+ }
400
+ for (let eventName in events) {
401
+ that[eventName] = events[eventName];
402
+ that.nativeElement[eventName.toLowerCase()] = events[eventName];
403
+ }
404
+ if (initialize) {
405
+ if (that.onCreate) {
406
+ that.onCreate();
407
+ }
408
+ that.nativeElement.whenRendered(() => {
409
+ if (that.onReady) {
410
+ that.onReady();
411
+ }
412
+ });
413
+ }
414
+ // setup styles.
415
+ if (styles) {
416
+ for (let styleName in styles) {
417
+ that.nativeElement.style[styleName] = styles[styleName];
418
+ }
419
+ }
420
+ }
421
+ componentDidMount() {
422
+ this.componentDidRender(true);
423
+ }
424
+ componentDidUpdate() {
425
+ this.componentDidRender(false);
426
+ }
427
+ componentWillUnmount() {
428
+ const that = this;
429
+ if (!that.nativeElement) {
430
+ return;
431
+ }
432
+ that.nativeElement.whenRenderedCallbacks = [];
433
+ for (let i = 0; i < that.eventListeners.length; i++) {
434
+ const eventName = that.eventListeners[i];
435
+ that.nativeElement.removeEventListener(eventName.substring(2).toLowerCase(), that[eventName]);
436
+ }
437
+ }
438
+ render() {
439
+ return (React.createElement("smart-form-control", { ref: this.componentRef }, this.props.children));
440
+ }
441
+ }
36
442
 
37
- const Smart = window.Smart;
38
- /**
39
- Form Control
40
- */
41
- class FormControl extends React.Component {
42
- constructor(props) {
43
- super(props);
44
- this.componentRef = React.createRef();
45
- }
46
- // Gets the id of the React component.
47
- get id() {
48
- if (!this._id) {
49
- this._id = 'FormControl' + Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
50
- }
51
- return this._id;
52
- }
53
- /** Gets or Sets the FormControl Action. This property is used when the 'controlType' is 'button' or 'submit'
54
- * Property type: FormControlAction | string
55
- */
56
- get action() {
57
- return this.nativeElement ? this.nativeElement.action : undefined;
58
- }
59
- set action(value) {
60
- if (this.nativeElement) {
61
- this.nativeElement.action = value;
62
- }
63
- }
64
- /** Sets or Gets the alignment of the FormControl
65
- * Property type: FormControlAlign | string
66
- */
67
- get align() {
68
- return this.nativeElement ? this.nativeElement.align : undefined;
69
- }
70
- set align(value) {
71
- if (this.nativeElement) {
72
- this.nativeElement.align = value;
73
- }
74
- }
75
- /** HTML Content displayed after the Form Control
76
- * Property type: any
77
- */
78
- get appendHTML() {
79
- return this.nativeElement ? this.nativeElement.appendHTML : undefined;
80
- }
81
- set appendHTML(value) {
82
- if (this.nativeElement) {
83
- this.nativeElement.appendHTML = value;
84
- }
85
- }
86
- /** JSON object with initialization properties of the UI component. Example: { dataSource: ['item 1', 'item 2', 'item 3'] } will set the dataSource property of the Form control.
87
- * Property type: any
88
- */
89
- get controlOptions() {
90
- return this.nativeElement ? this.nativeElement.controlOptions : undefined;
91
- }
92
- set controlOptions(value) {
93
- if (this.nativeElement) {
94
- this.nativeElement.controlOptions = value;
95
- }
96
- }
97
- /** The type of the control.
98
- * Property type: FormControlControlType | string
99
- */
100
- get controlType() {
101
- return this.nativeElement ? this.nativeElement.controlType : undefined;
102
- }
103
- set controlType(value) {
104
- if (this.nativeElement) {
105
- this.nativeElement.controlType = value;
106
- }
107
- }
108
- /** Sets the Form Group columns.
109
- * Property type: number
110
- */
111
- get columns() {
112
- return this.nativeElement ? this.nativeElement.columns : undefined;
113
- }
114
- set columns(value) {
115
- if (this.nativeElement) {
116
- this.nativeElement.columns = value;
117
- }
118
- }
119
- /** Sets the Form control column span.
120
- * Property type: number
121
- */
122
- get columnSpan() {
123
- return this.nativeElement ? this.nativeElement.columnSpan : undefined;
124
- }
125
- set columnSpan(value) {
126
- if (this.nativeElement) {
127
- this.nativeElement.columnSpan = value;
128
- }
129
- }
130
- /** Sets the Form control data field. The control's inner input's name is set to the dataField value and in the FormGroup it is accessible through the dataField value.
131
- * Property type: string
132
- */
133
- get dataField() {
134
- return this.nativeElement ? this.nativeElement.dataField : undefined;
135
- }
136
- set dataField(value) {
137
- if (this.nativeElement) {
138
- this.nativeElement.dataField = value;
139
- }
140
- }
141
- /** Sets the Form control disabled mode.
142
- * Property type: boolean
143
- */
144
- get disabled() {
145
- return this.nativeElement ? this.nativeElement.disabled : undefined;
146
- }
147
- set disabled(value) {
148
- if (this.nativeElement) {
149
- this.nativeElement.disabled = value;
150
- }
151
- }
152
- /** Gets whether the Form control is 'dirty' i.e its value is changed by the user.
153
- * Property type: boolean
154
- */
155
- get dirty() {
156
- return this.nativeElement ? this.nativeElement.dirty : undefined;
157
- }
158
- set dirty(value) {
159
- if (this.nativeElement) {
160
- this.nativeElement.dirty = value;
161
- }
162
- }
163
- /** Gets or Sets the Form control's info icon's tooltip.
164
- * Property type: string
165
- */
166
- get info() {
167
- return this.nativeElement ? this.nativeElement.info : undefined;
168
- }
169
- set info(value) {
170
- if (this.nativeElement) {
171
- this.nativeElement.info = value;
172
- }
173
- }
174
- /** Gets whether the Form control is invalid.
175
- * Property type: boolean
176
- */
177
- get invalid() {
178
- return this.nativeElement ? this.nativeElement.invalid : undefined;
179
- }
180
- set invalid(value) {
181
- if (this.nativeElement) {
182
- this.nativeElement.invalid = value;
183
- }
184
- }
185
- /** Gets or Sets the Form control's label.
186
- * Property type: string
187
- */
188
- get label() {
189
- return this.nativeElement ? this.nativeElement.label : undefined;
190
- }
191
- set label(value) {
192
- if (this.nativeElement) {
193
- this.nativeElement.label = value;
194
- }
195
- }
196
- /** Gets or Sets the Form control's label position.
197
- * Property type: FormControlLabelPosition | string
198
- */
199
- get labelPosition() {
200
- return this.nativeElement ? this.nativeElement.labelPosition : undefined;
201
- }
202
- set labelPosition(value) {
203
- if (this.nativeElement) {
204
- this.nativeElement.labelPosition = value;
205
- }
206
- }
207
- /** Gets or Sets the offset between the label and the control.
208
- * Property type: number
209
- */
210
- get labelOffset() {
211
- return this.nativeElement ? this.nativeElement.labelOffset : undefined;
212
- }
213
- set labelOffset(value) {
214
- if (this.nativeElement) {
215
- this.nativeElement.labelOffset = value;
216
- }
217
- }
218
- /** FormGroup only(when controlType is set to 'group'). Gets or Sets whether the navigation buttons are displayed. The property has effect when the viewMode property is set.
219
- * Property type: FormControlAlign | string
220
- */
221
- get labelAlign() {
222
- return this.nativeElement ? this.nativeElement.labelAlign : undefined;
223
- }
224
- set labelAlign(value) {
225
- if (this.nativeElement) {
226
- this.nativeElement.labelAlign = value;
227
- }
228
- }
229
- /** FormGroup only(when controlType is set to 'group'). Gets or Sets the next button label.
230
- * Property type: string
231
- */
232
- get nextButtonLabel() {
233
- return this.nativeElement ? this.nativeElement.nextButtonLabel : undefined;
234
- }
235
- set nextButtonLabel(value) {
236
- if (this.nativeElement) {
237
- this.nativeElement.nextButtonLabel = value;
238
- }
239
- }
240
- /** FormGroup only(when controlType is set to 'group'). Gets or Sets the back button label.
241
- * Property type: string
242
- */
243
- get backButtonLabel() {
244
- return this.nativeElement ? this.nativeElement.backButtonLabel : undefined;
245
- }
246
- set backButtonLabel(value) {
247
- if (this.nativeElement) {
248
- this.nativeElement.backButtonLabel = value;
249
- }
250
- }
251
- /** Gets or Sets the FormControl placeholder.
252
- * Property type: string
253
- */
254
- get placeholder() {
255
- return this.nativeElement ? this.nativeElement.placeholder : undefined;
256
- }
257
- set placeholder(value) {
258
- if (this.nativeElement) {
259
- this.nativeElement.placeholder = value;
260
- }
261
- }
262
- /** HTML Content displayed before the Form Control
263
- * Property type: any
264
- */
265
- get prependHTML() {
266
- return this.nativeElement ? this.nativeElement.prependHTML : undefined;
267
- }
268
- set prependHTML(value) {
269
- if (this.nativeElement) {
270
- this.nativeElement.prependHTML = value;
271
- }
272
- }
273
- /** Gets or Sets the Form control readonly mode.
274
- * Property type: boolean
275
- */
276
- get readonly() {
277
- return this.nativeElement ? this.nativeElement.readonly : undefined;
278
- }
279
- set readonly(value) {
280
- if (this.nativeElement) {
281
- this.nativeElement.readonly = value;
282
- }
283
- }
284
- /** Gets or Sets whether this field is required.
285
- * Property type: boolean
286
- */
287
- get required() {
288
- return this.nativeElement ? this.nativeElement.required : undefined;
289
- }
290
- set required(value) {
291
- if (this.nativeElement) {
292
- this.nativeElement.required = value;
293
- }
294
- }
295
- /** Gets whether the Form control is not touched by the user. This flag is changed usually on blur, after the user interacted with the Form control
296
- * Property type: boolean
297
- */
298
- get untouched() {
299
- return this.nativeElement ? this.nativeElement.untouched : undefined;
300
- }
301
- set untouched(value) {
302
- if (this.nativeElement) {
303
- this.nativeElement.untouched = value;
304
- }
305
- }
306
- /** Gets or Sets whether colon is displayed after the label.
307
- * Property type: boolean
308
- */
309
- get showColonAfterLabel() {
310
- return this.nativeElement ? this.nativeElement.showColonAfterLabel : undefined;
311
- }
312
- set showColonAfterLabel(value) {
313
- if (this.nativeElement) {
314
- this.nativeElement.showColonAfterLabel = value;
315
- }
316
- }
317
- /** FormGroup only(when controlType is set to 'group'). Gets or Sets whether the navigation buttons are displayed. The property has effect when the viewMode property is set.
318
- * Property type: boolean
319
- */
320
- get showButtons() {
321
- return this.nativeElement ? this.nativeElement.showButtons : undefined;
322
- }
323
- set showButtons(value) {
324
- if (this.nativeElement) {
325
- this.nativeElement.showButtons = value;
326
- }
327
- }
328
- /** Sets or Gets the Form control or Form group value.
329
- * Property type: any
330
- */
331
- get value() {
332
- return this.nativeElement ? this.nativeElement.value : undefined;
333
- }
334
- set value(value) {
335
- if (this.nativeElement) {
336
- this.nativeElement.value = value;
337
- }
338
- }
339
- /** Gets whether the Form control is valid.
340
- * Property type: boolean
341
- */
342
- get valid() {
343
- return this.nativeElement ? this.nativeElement.valid : undefined;
344
- }
345
- set valid(value) {
346
- if (this.nativeElement) {
347
- this.nativeElement.valid = value;
348
- }
349
- }
350
- /** Sets or gets the column's validation rules. The expected value is an Array of Objects. Each object should have a 'type' property that can be set to 'required', 'min', 'max', 'minLength', 'maxLength', 'email', 'null', 'requiredTrue', 'minData', 'maxDate', 'pattern'. The 'value' property should be set, too. For validation rule types 'required', 'requiredTrue' and 'null' you can skip the 'value' property. Optional property is 'message', which determines the error message.
351
- * Property type: [] | null
352
- */
353
- get validationRules() {
354
- return this.nativeElement ? this.nativeElement.validationRules : undefined;
355
- }
356
- set validationRules(value) {
357
- if (this.nativeElement) {
358
- this.nativeElement.validationRules = value;
359
- }
360
- }
361
- /** FormGroup only(when controlType is set to 'group'). Gets or Sets the form'group view mode.
362
- * Property type: FormControlViewMode | string
363
- */
364
- get viewMode() {
365
- return this.nativeElement ? this.nativeElement.viewMode : undefined;
366
- }
367
- set viewMode(value) {
368
- if (this.nativeElement) {
369
- this.nativeElement.viewMode = value;
370
- }
371
- }
372
- // Gets the properties of the React component.
373
- get properties() {
374
- return ["action", "align", "appendHTML", "controlOptions", "controlType", "columns", "columnSpan", "dataField", "disabled", "dirty", "info", "invalid", "label", "labelPosition", "labelOffset", "labelAlign", "nextButtonLabel", "backButtonLabel", "placeholder", "prependHTML", "readonly", "required", "untouched", "showColonAfterLabel", "showButtons", "value", "valid", "validationRules", "viewMode"];
375
- }
376
- // Gets the events of the React component.
377
- get eventListeners() {
378
- return ["onCreate", "onReady"];
379
- }
380
- componentDidRender(initialize) {
381
- const that = this;
382
- const props = {};
383
- const events = {};
384
- let styles = null;
385
- for (let prop in that.props) {
386
- if (prop === 'children') {
387
- continue;
388
- }
389
- if (prop === 'style') {
390
- styles = that.props[prop];
391
- continue;
392
- }
393
- if (prop.startsWith('on') && that.properties.indexOf(prop) === -1) {
394
- events[prop] = that.props[prop];
395
- continue;
396
- }
397
- props[prop] = that.props[prop];
398
- }
399
- if (initialize) {
400
- that.nativeElement = this.componentRef.current;
401
- }
402
- for (let prop in props) {
403
- if (prop === 'class' || prop === 'className') {
404
- const classNames = props[prop].trim().split(' ');
405
- for (let className in classNames) {
406
- if (!that.nativeElement.classList.contains(classNames[className]) && classNames[className] !== "") {
407
- that.nativeElement.classList.add(classNames[className]);
408
- }
409
- }
410
- continue;
411
- }
412
- if (props[prop] !== that.nativeElement[prop]) {
413
- const normalizeProp = (str) => {
414
- return str.replace(/-([a-z])/g, function (g) {
415
- return g[1].toUpperCase();
416
- });
417
- };
418
- if (prop === 'hover' || prop === 'active' || prop === 'focus' || prop === 'selected') {
419
- that.nativeElement.setAttribute(prop, '');
420
- }
421
- const normalizedProp = normalizeProp(prop);
422
- that.nativeElement[normalizedProp] = props[prop];
423
- }
424
- }
425
- for (let eventName in events) {
426
- that[eventName] = events[eventName];
427
- that.nativeElement[eventName.toLowerCase()] = events[eventName];
428
- }
429
- if (initialize) {
430
- if (that.onCreate) {
431
- that.onCreate();
432
- }
433
- that.nativeElement.whenRendered(() => {
434
- if (that.onReady) {
435
- that.onReady();
436
- }
437
- });
438
- }
439
- // setup styles.
440
- if (styles) {
441
- for (let styleName in styles) {
442
- that.nativeElement.style[styleName] = styles[styleName];
443
- }
444
- }
445
- }
446
- componentDidMount() {
447
- this.componentDidRender(true);
448
- }
449
- componentDidUpdate() {
450
- this.componentDidRender(false);
451
- }
452
- componentWillUnmount() {
453
- const that = this;
454
- if (!that.nativeElement) {
455
- return;
456
- }
457
- that.nativeElement.whenRenderedCallbacks = [];
458
- for (let i = 0; i < that.eventListeners.length; i++) {
459
- const eventName = that.eventListeners[i];
460
- that.nativeElement.removeEventListener(eventName.substring(2).toLowerCase(), that[eventName]);
461
- }
462
- }
463
- render() {
464
- return (React.createElement("smart-form-control", { ref: this.componentRef }, this.props.children));
465
- }
466
- }
443
+ const Smart$1 = window.Smart;
444
+ /**
445
+ Form Group
446
+ */
447
+ class FormGroup extends React.Component {
448
+ constructor(props) {
449
+ super(props);
450
+ this.componentRef = React.createRef();
451
+ }
452
+ // Gets the id of the React component.
453
+ get id() {
454
+ if (!this._id) {
455
+ this._id = 'FormGroup' + Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
456
+ }
457
+ return this._id;
458
+ }
459
+ /** Sets or gets the form columns.
460
+ * Property type: number
461
+ */
462
+ get columns() {
463
+ return this.nativeElement ? this.nativeElement.columns : undefined;
464
+ }
465
+ set columns(value) {
466
+ if (this.nativeElement) {
467
+ this.nativeElement.columns = value;
468
+ }
469
+ }
470
+ /**
471
+ * Property type: Control[]
472
+ */
473
+ get controls() {
474
+ return this.nativeElement ? this.nativeElement.controls : undefined;
475
+ }
476
+ set controls(value) {
477
+ if (this.nativeElement) {
478
+ this.nativeElement.controls = value;
479
+ }
480
+ }
481
+ /** Callback function for handling status changes
482
+ * Property type: any
483
+ */
484
+ get onStatusChanges() {
485
+ return this.nativeElement ? this.nativeElement.onStatusChanges : undefined;
486
+ }
487
+ set onStatusChanges(value) {
488
+ if (this.nativeElement) {
489
+ this.nativeElement.onStatusChanges = value;
490
+ }
491
+ }
492
+ /** Callback function for handling value changes
493
+ * Property type: any
494
+ */
495
+ get onValueChanges() {
496
+ return this.nativeElement ? this.nativeElement.onValueChanges : undefined;
497
+ }
498
+ set onValueChanges(value) {
499
+ if (this.nativeElement) {
500
+ this.nativeElement.onValueChanges = value;
501
+ }
502
+ }
503
+ /** Sets or Gets the labels position.
504
+ * Property type: FormGroupLabelPosition | string
505
+ */
506
+ get labelPosition() {
507
+ return this.nativeElement ? this.nativeElement.labelPosition : undefined;
508
+ }
509
+ set labelPosition(value) {
510
+ if (this.nativeElement) {
511
+ this.nativeElement.labelPosition = value;
512
+ }
513
+ }
514
+ /** Makes the form readonly.
515
+ * Property type: boolean
516
+ */
517
+ get readonly() {
518
+ return this.nativeElement ? this.nativeElement.readonly : undefined;
519
+ }
520
+ set readonly(value) {
521
+ if (this.nativeElement) {
522
+ this.nativeElement.readonly = value;
523
+ }
524
+ }
525
+ /** Shows / hides the colon after the labels.
526
+ * Property type: boolean
527
+ */
528
+ get showColonAfterLabel() {
529
+ return this.nativeElement ? this.nativeElement.showColonAfterLabel : undefined;
530
+ }
531
+ set showColonAfterLabel(value) {
532
+ if (this.nativeElement) {
533
+ this.nativeElement.showColonAfterLabel = value;
534
+ }
535
+ }
536
+ /** Shows / hides validation summary.
537
+ * Property type: boolean
538
+ */
539
+ get showSummary() {
540
+ return this.nativeElement ? this.nativeElement.showSummary : undefined;
541
+ }
542
+ set showSummary(value) {
543
+ if (this.nativeElement) {
544
+ this.nativeElement.showSummary = value;
545
+ }
546
+ }
547
+ /** Gets or Sets the Form value.
548
+ * Property type: any
549
+ */
550
+ get value() {
551
+ return this.nativeElement ? this.nativeElement.value : undefined;
552
+ }
553
+ set value(value) {
554
+ if (this.nativeElement) {
555
+ this.nativeElement.value = value;
556
+ }
557
+ }
558
+ // Gets the properties of the React component.
559
+ get properties() {
560
+ return ["columns", "controls", "onStatusChanges", "onValueChanges", "labelPosition", "readonly", "showColonAfterLabel", "showSummary", "value"];
561
+ }
562
+ // Gets the events of the React component.
563
+ get eventListeners() {
564
+ return ["onCreate", "onReady"];
565
+ }
566
+ /** Adds a control to the Form.
567
+ * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
568
+ */
569
+ addControl(controlOptions) {
570
+ if (this.nativeElement.isRendered) {
571
+ this.nativeElement.addControl(controlOptions);
572
+ }
573
+ else {
574
+ this.nativeElement.whenRendered(() => {
575
+ this.nativeElement.addControl(controlOptions);
576
+ });
577
+ }
578
+ }
579
+ /** Gets a control by its name(dataField).
580
+ * @param {string} dataField. dataField of a FormControl or FormGroup
581
+ * @returns {Control}
582
+ */
583
+ getControl(dataField) {
584
+ const result = this.nativeElement.getControl(dataField);
585
+ return result;
586
+ }
587
+ /** Inserts a control to the Form.
588
+ * @param {number} index. Control insert index
589
+ * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
590
+ */
591
+ insertControl(index, controlOptions) {
592
+ if (this.nativeElement.isRendered) {
593
+ this.nativeElement.insertControl(index, controlOptions);
594
+ }
595
+ else {
596
+ this.nativeElement.whenRendered(() => {
597
+ this.nativeElement.insertControl(index, controlOptions);
598
+ });
599
+ }
600
+ }
601
+ /** Remove a control from the Form.
602
+ * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
603
+ */
604
+ removeControl(controlOptions) {
605
+ if (this.nativeElement.isRendered) {
606
+ this.nativeElement.removeControl(controlOptions);
607
+ }
608
+ else {
609
+ this.nativeElement.whenRendered(() => {
610
+ this.nativeElement.removeControl(controlOptions);
611
+ });
612
+ }
613
+ }
614
+ componentDidRender(initialize) {
615
+ const that = this;
616
+ const props = {};
617
+ const events = {};
618
+ let styles = null;
619
+ for (let prop in that.props) {
620
+ if (prop === 'children') {
621
+ continue;
622
+ }
623
+ if (prop === 'style') {
624
+ styles = that.props[prop];
625
+ continue;
626
+ }
627
+ if (prop.startsWith('on') && that.properties.indexOf(prop) === -1) {
628
+ events[prop] = that.props[prop];
629
+ continue;
630
+ }
631
+ props[prop] = that.props[prop];
632
+ }
633
+ if (initialize) {
634
+ that.nativeElement = this.componentRef.current;
635
+ }
636
+ for (let prop in props) {
637
+ if (prop === 'class' || prop === 'className') {
638
+ const classNames = props[prop].trim().split(' ');
639
+ for (let className in classNames) {
640
+ if (!that.nativeElement.classList.contains(classNames[className]) && classNames[className] !== "") {
641
+ that.nativeElement.classList.add(classNames[className]);
642
+ }
643
+ }
644
+ continue;
645
+ }
646
+ if (props[prop] !== that.nativeElement[prop]) {
647
+ const normalizeProp = (str) => {
648
+ return str.replace(/-([a-z])/g, function (g) {
649
+ return g[1].toUpperCase();
650
+ });
651
+ };
652
+ if (prop === 'hover' || prop === 'active' || prop === 'focus' || prop === 'selected') {
653
+ that.nativeElement.setAttribute(prop, '');
654
+ }
655
+ const normalizedProp = normalizeProp(prop);
656
+ that.nativeElement[normalizedProp] = props[prop];
657
+ }
658
+ }
659
+ for (let eventName in events) {
660
+ that[eventName] = events[eventName];
661
+ that.nativeElement[eventName.toLowerCase()] = events[eventName];
662
+ }
663
+ if (initialize) {
664
+ if (that.onCreate) {
665
+ that.onCreate();
666
+ }
667
+ that.nativeElement.whenRendered(() => {
668
+ if (that.onReady) {
669
+ that.onReady();
670
+ }
671
+ });
672
+ }
673
+ // setup styles.
674
+ if (styles) {
675
+ for (let styleName in styles) {
676
+ that.nativeElement.style[styleName] = styles[styleName];
677
+ }
678
+ }
679
+ }
680
+ componentDidMount() {
681
+ this.componentDidRender(true);
682
+ }
683
+ componentDidUpdate() {
684
+ this.componentDidRender(false);
685
+ }
686
+ componentWillUnmount() {
687
+ const that = this;
688
+ if (!that.nativeElement) {
689
+ return;
690
+ }
691
+ that.nativeElement.whenRenderedCallbacks = [];
692
+ for (let i = 0; i < that.eventListeners.length; i++) {
693
+ const eventName = that.eventListeners[i];
694
+ that.nativeElement.removeEventListener(eventName.substring(2).toLowerCase(), that[eventName]);
695
+ }
696
+ }
697
+ render() {
698
+ return (React.createElement("smart-form-group", { ref: this.componentRef }, this.props.children));
699
+ }
700
+ }
467
701
 
468
- const Smart$1 = window.Smart;
469
- /**
470
- Form Group
471
- */
472
- class FormGroup extends React.Component {
473
- constructor(props) {
474
- super(props);
475
- this.componentRef = React.createRef();
476
- }
477
- // Gets the id of the React component.
478
- get id() {
479
- if (!this._id) {
480
- this._id = 'FormGroup' + Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
481
- }
482
- return this._id;
483
- }
484
- /** Sets or gets the form columns.
485
- * Property type: number
486
- */
487
- get columns() {
488
- return this.nativeElement ? this.nativeElement.columns : undefined;
489
- }
490
- set columns(value) {
491
- if (this.nativeElement) {
492
- this.nativeElement.columns = value;
493
- }
494
- }
495
- /**
496
- * Property type: Control[]
497
- */
498
- get controls() {
499
- return this.nativeElement ? this.nativeElement.controls : undefined;
500
- }
501
- set controls(value) {
502
- if (this.nativeElement) {
503
- this.nativeElement.controls = value;
504
- }
505
- }
506
- /** Callback function for handling status changes
507
- * Property type: any
508
- */
509
- get onStatusChanges() {
510
- return this.nativeElement ? this.nativeElement.onStatusChanges : undefined;
511
- }
512
- set onStatusChanges(value) {
513
- if (this.nativeElement) {
514
- this.nativeElement.onStatusChanges = value;
515
- }
516
- }
517
- /** Callback function for handling value changes
518
- * Property type: any
519
- */
520
- get onValueChanges() {
521
- return this.nativeElement ? this.nativeElement.onValueChanges : undefined;
522
- }
523
- set onValueChanges(value) {
524
- if (this.nativeElement) {
525
- this.nativeElement.onValueChanges = value;
526
- }
527
- }
528
- /** Sets or Gets the labels position.
529
- * Property type: FormGroupLabelPosition | string
530
- */
531
- get labelPosition() {
532
- return this.nativeElement ? this.nativeElement.labelPosition : undefined;
533
- }
534
- set labelPosition(value) {
535
- if (this.nativeElement) {
536
- this.nativeElement.labelPosition = value;
537
- }
538
- }
539
- /** Makes the form readonly.
540
- * Property type: boolean
541
- */
542
- get readonly() {
543
- return this.nativeElement ? this.nativeElement.readonly : undefined;
544
- }
545
- set readonly(value) {
546
- if (this.nativeElement) {
547
- this.nativeElement.readonly = value;
548
- }
549
- }
550
- /** Shows / hides the colon after the labels.
551
- * Property type: boolean
552
- */
553
- get showColonAfterLabel() {
554
- return this.nativeElement ? this.nativeElement.showColonAfterLabel : undefined;
555
- }
556
- set showColonAfterLabel(value) {
557
- if (this.nativeElement) {
558
- this.nativeElement.showColonAfterLabel = value;
559
- }
560
- }
561
- /** Shows / hides validation summary.
562
- * Property type: boolean
563
- */
564
- get showSummary() {
565
- return this.nativeElement ? this.nativeElement.showSummary : undefined;
566
- }
567
- set showSummary(value) {
568
- if (this.nativeElement) {
569
- this.nativeElement.showSummary = value;
570
- }
571
- }
572
- /** Gets or Sets the Form value.
573
- * Property type: any
574
- */
575
- get value() {
576
- return this.nativeElement ? this.nativeElement.value : undefined;
577
- }
578
- set value(value) {
579
- if (this.nativeElement) {
580
- this.nativeElement.value = value;
581
- }
582
- }
583
- // Gets the properties of the React component.
584
- get properties() {
585
- return ["columns", "controls", "onStatusChanges", "onValueChanges", "labelPosition", "readonly", "showColonAfterLabel", "showSummary", "value"];
586
- }
587
- // Gets the events of the React component.
588
- get eventListeners() {
589
- return ["onCreate", "onReady"];
590
- }
591
- /** Adds a control to the Form.
592
- * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
593
- */
594
- addControl(controlOptions) {
595
- if (this.nativeElement.isRendered) {
596
- this.nativeElement.addControl(controlOptions);
597
- }
598
- else {
599
- this.nativeElement.whenRendered(() => {
600
- this.nativeElement.addControl(controlOptions);
601
- });
602
- }
603
- }
604
- /** Gets a control by its name(dataField).
605
- * @param {string} dataField. dataField of a FormControl or FormGroup
606
- * @returns {Control}
607
- */
608
- getControl(dataField) {
609
- return __awaiter(this, void 0, void 0, function* () {
610
- const getResultOnRender = () => {
611
- return new Promise(resolve => {
612
- this.nativeElement.whenRendered(() => {
613
- const result = this.nativeElement.getControl(dataField);
614
- resolve(result);
615
- });
616
- });
617
- };
618
- const result = yield getResultOnRender();
619
- return result;
620
- });
621
- }
622
- /** Inserts a control to the Form.
623
- * @param {number} index. Control insert index
624
- * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
625
- */
626
- insertControl(index, controlOptions) {
627
- if (this.nativeElement.isRendered) {
628
- this.nativeElement.insertControl(index, controlOptions);
629
- }
630
- else {
631
- this.nativeElement.whenRendered(() => {
632
- this.nativeElement.insertControl(index, controlOptions);
633
- });
634
- }
635
- }
636
- /** Remove a control from the Form.
637
- * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
638
- */
639
- removeControl(controlOptions) {
640
- if (this.nativeElement.isRendered) {
641
- this.nativeElement.removeControl(controlOptions);
642
- }
643
- else {
644
- this.nativeElement.whenRendered(() => {
645
- this.nativeElement.removeControl(controlOptions);
646
- });
647
- }
648
- }
649
- componentDidRender(initialize) {
650
- const that = this;
651
- const props = {};
652
- const events = {};
653
- let styles = null;
654
- for (let prop in that.props) {
655
- if (prop === 'children') {
656
- continue;
657
- }
658
- if (prop === 'style') {
659
- styles = that.props[prop];
660
- continue;
661
- }
662
- if (prop.startsWith('on') && that.properties.indexOf(prop) === -1) {
663
- events[prop] = that.props[prop];
664
- continue;
665
- }
666
- props[prop] = that.props[prop];
667
- }
668
- if (initialize) {
669
- that.nativeElement = this.componentRef.current;
670
- }
671
- for (let prop in props) {
672
- if (prop === 'class' || prop === 'className') {
673
- const classNames = props[prop].trim().split(' ');
674
- for (let className in classNames) {
675
- if (!that.nativeElement.classList.contains(classNames[className]) && classNames[className] !== "") {
676
- that.nativeElement.classList.add(classNames[className]);
677
- }
678
- }
679
- continue;
680
- }
681
- if (props[prop] !== that.nativeElement[prop]) {
682
- const normalizeProp = (str) => {
683
- return str.replace(/-([a-z])/g, function (g) {
684
- return g[1].toUpperCase();
685
- });
686
- };
687
- if (prop === 'hover' || prop === 'active' || prop === 'focus' || prop === 'selected') {
688
- that.nativeElement.setAttribute(prop, '');
689
- }
690
- const normalizedProp = normalizeProp(prop);
691
- that.nativeElement[normalizedProp] = props[prop];
692
- }
693
- }
694
- for (let eventName in events) {
695
- that[eventName] = events[eventName];
696
- that.nativeElement[eventName.toLowerCase()] = events[eventName];
697
- }
698
- if (initialize) {
699
- if (that.onCreate) {
700
- that.onCreate();
701
- }
702
- that.nativeElement.whenRendered(() => {
703
- if (that.onReady) {
704
- that.onReady();
705
- }
706
- });
707
- }
708
- // setup styles.
709
- if (styles) {
710
- for (let styleName in styles) {
711
- that.nativeElement.style[styleName] = styles[styleName];
712
- }
713
- }
714
- }
715
- componentDidMount() {
716
- this.componentDidRender(true);
717
- }
718
- componentDidUpdate() {
719
- this.componentDidRender(false);
720
- }
721
- componentWillUnmount() {
722
- const that = this;
723
- if (!that.nativeElement) {
724
- return;
725
- }
726
- that.nativeElement.whenRenderedCallbacks = [];
727
- for (let i = 0; i < that.eventListeners.length; i++) {
728
- const eventName = that.eventListeners[i];
729
- that.nativeElement.removeEventListener(eventName.substring(2).toLowerCase(), that[eventName]);
730
- }
731
- }
732
- render() {
733
- return (React.createElement("smart-form-group", { ref: this.componentRef }, this.props.children));
734
- }
735
- }
702
+ const Smart$2 = window.Smart;
703
+ /**
704
+ Reactive Form Component with Advanced Validation
705
+ */
706
+ class Form extends React.Component {
707
+ constructor(props) {
708
+ super(props);
709
+ this.componentRef = React.createRef();
710
+ }
711
+ // Gets the id of the React component.
712
+ get id() {
713
+ if (!this._id) {
714
+ this._id = 'Form' + Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
715
+ }
716
+ return this._id;
717
+ }
718
+ /** Sets or gets the form columns.
719
+ * Property type: number
720
+ */
721
+ get columns() {
722
+ return this.nativeElement ? this.nativeElement.columns : undefined;
723
+ }
724
+ set columns(value) {
725
+ if (this.nativeElement) {
726
+ this.nativeElement.columns = value;
727
+ }
728
+ }
729
+ /** Sets or gets the form controls.
730
+ * Property type: Control[]
731
+ */
732
+ get controls() {
733
+ return this.nativeElement ? this.nativeElement.controls : undefined;
734
+ }
735
+ set controls(value) {
736
+ if (this.nativeElement) {
737
+ this.nativeElement.controls = value;
738
+ }
739
+ }
740
+ /** Callback function for handling status changes
741
+ * Property type: any
742
+ */
743
+ get onStatusChanges() {
744
+ return this.nativeElement ? this.nativeElement.onStatusChanges : undefined;
745
+ }
746
+ set onStatusChanges(value) {
747
+ if (this.nativeElement) {
748
+ this.nativeElement.onStatusChanges = value;
749
+ }
750
+ }
751
+ /** Callback function for handling value changes
752
+ * Property type: any
753
+ */
754
+ get onValueChanges() {
755
+ return this.nativeElement ? this.nativeElement.onValueChanges : undefined;
756
+ }
757
+ set onValueChanges(value) {
758
+ if (this.nativeElement) {
759
+ this.nativeElement.onValueChanges = value;
760
+ }
761
+ }
762
+ /** Sets or Gets the labels position.
763
+ * Property type: FormLabelPosition | string
764
+ */
765
+ get labelPosition() {
766
+ return this.nativeElement ? this.nativeElement.labelPosition : undefined;
767
+ }
768
+ set labelPosition(value) {
769
+ if (this.nativeElement) {
770
+ this.nativeElement.labelPosition = value;
771
+ }
772
+ }
773
+ /** Makes the form readonly.
774
+ * Property type: boolean
775
+ */
776
+ get readonly() {
777
+ return this.nativeElement ? this.nativeElement.readonly : undefined;
778
+ }
779
+ set readonly(value) {
780
+ if (this.nativeElement) {
781
+ this.nativeElement.readonly = value;
782
+ }
783
+ }
784
+ /** Shows / hides the colon after the labels.
785
+ * Property type: boolean
786
+ */
787
+ get showColonAfterLabel() {
788
+ return this.nativeElement ? this.nativeElement.showColonAfterLabel : undefined;
789
+ }
790
+ set showColonAfterLabel(value) {
791
+ if (this.nativeElement) {
792
+ this.nativeElement.showColonAfterLabel = value;
793
+ }
794
+ }
795
+ /** Shows / hides validation summary.
796
+ * Property type: boolean
797
+ */
798
+ get showSummary() {
799
+ return this.nativeElement ? this.nativeElement.showSummary : undefined;
800
+ }
801
+ set showSummary(value) {
802
+ if (this.nativeElement) {
803
+ this.nativeElement.showSummary = value;
804
+ }
805
+ }
806
+ /** Gets the Form's state. Each member in the state has { dirty, untouched, disabled } properties.
807
+ * Property type: any
808
+ */
809
+ get state() {
810
+ return this.nativeElement ? this.nativeElement.state : undefined;
811
+ }
812
+ set state(value) {
813
+ if (this.nativeElement) {
814
+ this.nativeElement.state = value;
815
+ }
816
+ }
817
+ /** Gets or Sets the Form value.
818
+ * Property type: any
819
+ */
820
+ get value() {
821
+ return this.nativeElement ? this.nativeElement.value : undefined;
822
+ }
823
+ set value(value) {
824
+ if (this.nativeElement) {
825
+ this.nativeElement.value = value;
826
+ }
827
+ }
828
+ /** Automatically validates the form when it is created.
829
+ * Property type: boolean
830
+ */
831
+ get validateOnLoad() {
832
+ return this.nativeElement ? this.nativeElement.validateOnLoad : undefined;
833
+ }
834
+ set validateOnLoad(value) {
835
+ if (this.nativeElement) {
836
+ this.nativeElement.validateOnLoad = value;
837
+ }
838
+ }
839
+ // Gets the properties of the React component.
840
+ get properties() {
841
+ return ["columns", "controls", "onStatusChanges", "onValueChanges", "labelPosition", "readonly", "showColonAfterLabel", "showSummary", "state", "value", "validateOnLoad"];
842
+ }
843
+ // Gets the events of the React component.
844
+ get eventListeners() {
845
+ return ["onCreate", "onReady"];
846
+ }
847
+ /** Adds a control to the Form.
848
+ * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
849
+ */
850
+ addControl(controlOptions) {
851
+ if (this.nativeElement.isRendered) {
852
+ this.nativeElement.addControl(controlOptions);
853
+ }
854
+ else {
855
+ this.nativeElement.whenRendered(() => {
856
+ this.nativeElement.addControl(controlOptions);
857
+ });
858
+ }
859
+ }
860
+ /** Gets a control by its name(dataField).
861
+ * @param {string} dataField. dataField of a FormControl or FormGroup
862
+ * @returns {Control}
863
+ */
864
+ getControl(dataField) {
865
+ const result = this.nativeElement.getControl(dataField);
866
+ return result;
867
+ }
868
+ /** Inserts a control to the Form.
869
+ * @param {number} index. Control insert index
870
+ * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
871
+ */
872
+ insertControl(index, controlOptions) {
873
+ if (this.nativeElement.isRendered) {
874
+ this.nativeElement.insertControl(index, controlOptions);
875
+ }
876
+ else {
877
+ this.nativeElement.whenRendered(() => {
878
+ this.nativeElement.insertControl(index, controlOptions);
879
+ });
880
+ }
881
+ }
882
+ /** Remove a control from the Form.
883
+ * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
884
+ */
885
+ removeControl(controlOptions) {
886
+ if (this.nativeElement.isRendered) {
887
+ this.nativeElement.removeControl(controlOptions);
888
+ }
889
+ else {
890
+ this.nativeElement.whenRendered(() => {
891
+ this.nativeElement.removeControl(controlOptions);
892
+ });
893
+ }
894
+ }
895
+ /** Submits the form.
896
+ * @param {any} submitOptions?. Sets the submit options object. The object may have the following properties: <em>async</em>, <em>action</em>, <em>target</em>, <em>method</em>. <em>async</em> determines whether the form will be submitted asynchronously. <em>action</em> determines the submit url, <em>method</em> sets whether the submit is through 'GET' or 'POST'. <em>target</em> determines the submit target.
897
+ */
898
+ submit(submitOptions) {
899
+ if (this.nativeElement.isRendered) {
900
+ this.nativeElement.submit(submitOptions);
901
+ }
902
+ else {
903
+ this.nativeElement.whenRendered(() => {
904
+ this.nativeElement.submit(submitOptions);
905
+ });
906
+ }
907
+ }
908
+ /** Clears the form.
909
+ */
910
+ reset() {
911
+ if (this.nativeElement.isRendered) {
912
+ this.nativeElement.reset();
913
+ }
914
+ else {
915
+ this.nativeElement.whenRendered(() => {
916
+ this.nativeElement.reset();
917
+ });
918
+ }
919
+ }
920
+ /** Validates the form.
921
+ */
922
+ validate() {
923
+ if (this.nativeElement.isRendered) {
924
+ this.nativeElement.validate();
925
+ }
926
+ else {
927
+ this.nativeElement.whenRendered(() => {
928
+ this.nativeElement.validate();
929
+ });
930
+ }
931
+ }
932
+ componentDidRender(initialize) {
933
+ const that = this;
934
+ const props = {};
935
+ const events = {};
936
+ let styles = null;
937
+ for (let prop in that.props) {
938
+ if (prop === 'children') {
939
+ continue;
940
+ }
941
+ if (prop === 'style') {
942
+ styles = that.props[prop];
943
+ continue;
944
+ }
945
+ if (prop.startsWith('on') && that.properties.indexOf(prop) === -1) {
946
+ events[prop] = that.props[prop];
947
+ continue;
948
+ }
949
+ props[prop] = that.props[prop];
950
+ }
951
+ if (initialize) {
952
+ that.nativeElement = this.componentRef.current;
953
+ }
954
+ for (let prop in props) {
955
+ if (prop === 'class' || prop === 'className') {
956
+ const classNames = props[prop].trim().split(' ');
957
+ for (let className in classNames) {
958
+ if (!that.nativeElement.classList.contains(classNames[className]) && classNames[className] !== "") {
959
+ that.nativeElement.classList.add(classNames[className]);
960
+ }
961
+ }
962
+ continue;
963
+ }
964
+ if (props[prop] !== that.nativeElement[prop]) {
965
+ const normalizeProp = (str) => {
966
+ return str.replace(/-([a-z])/g, function (g) {
967
+ return g[1].toUpperCase();
968
+ });
969
+ };
970
+ if (prop === 'hover' || prop === 'active' || prop === 'focus' || prop === 'selected') {
971
+ that.nativeElement.setAttribute(prop, '');
972
+ }
973
+ const normalizedProp = normalizeProp(prop);
974
+ that.nativeElement[normalizedProp] = props[prop];
975
+ }
976
+ }
977
+ for (let eventName in events) {
978
+ that[eventName] = events[eventName];
979
+ that.nativeElement[eventName.toLowerCase()] = events[eventName];
980
+ }
981
+ if (initialize) {
982
+ Smart$2.Render();
983
+ if (that.onCreate) {
984
+ that.onCreate();
985
+ }
986
+ that.nativeElement.whenRendered(() => {
987
+ if (that.onReady) {
988
+ that.onReady();
989
+ }
990
+ });
991
+ }
992
+ // setup styles.
993
+ if (styles) {
994
+ for (let styleName in styles) {
995
+ that.nativeElement.style[styleName] = styles[styleName];
996
+ }
997
+ }
998
+ }
999
+ componentDidMount() {
1000
+ this.componentDidRender(true);
1001
+ }
1002
+ componentDidUpdate() {
1003
+ this.componentDidRender(false);
1004
+ }
1005
+ componentWillUnmount() {
1006
+ const that = this;
1007
+ if (!that.nativeElement) {
1008
+ return;
1009
+ }
1010
+ that.nativeElement.whenRenderedCallbacks = [];
1011
+ for (let i = 0; i < that.eventListeners.length; i++) {
1012
+ const eventName = that.eventListeners[i];
1013
+ that.nativeElement.removeEventListener(eventName.substring(2).toLowerCase(), that[eventName]);
1014
+ }
1015
+ }
1016
+ render() {
1017
+ return (React.createElement("smart-form", { ref: this.componentRef }, this.props.children));
1018
+ }
1019
+ }
736
1020
 
737
- const Smart$2 = window.Smart;
738
- /**
739
- Reactive Form Component with Advanced Validation
740
- */
741
- class Form extends React.Component {
742
- constructor(props) {
743
- super(props);
744
- this.componentRef = React.createRef();
745
- }
746
- // Gets the id of the React component.
747
- get id() {
748
- if (!this._id) {
749
- this._id = 'Form' + Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
750
- }
751
- return this._id;
752
- }
753
- /** Sets or gets the form columns.
754
- * Property type: number
755
- */
756
- get columns() {
757
- return this.nativeElement ? this.nativeElement.columns : undefined;
758
- }
759
- set columns(value) {
760
- if (this.nativeElement) {
761
- this.nativeElement.columns = value;
762
- }
763
- }
764
- /** Sets or gets the form controls.
765
- * Property type: Control[]
766
- */
767
- get controls() {
768
- return this.nativeElement ? this.nativeElement.controls : undefined;
769
- }
770
- set controls(value) {
771
- if (this.nativeElement) {
772
- this.nativeElement.controls = value;
773
- }
774
- }
775
- /** Callback function for handling status changes
776
- * Property type: any
777
- */
778
- get onStatusChanges() {
779
- return this.nativeElement ? this.nativeElement.onStatusChanges : undefined;
780
- }
781
- set onStatusChanges(value) {
782
- if (this.nativeElement) {
783
- this.nativeElement.onStatusChanges = value;
784
- }
785
- }
786
- /** Callback function for handling value changes
787
- * Property type: any
788
- */
789
- get onValueChanges() {
790
- return this.nativeElement ? this.nativeElement.onValueChanges : undefined;
791
- }
792
- set onValueChanges(value) {
793
- if (this.nativeElement) {
794
- this.nativeElement.onValueChanges = value;
795
- }
796
- }
797
- /** Sets or Gets the labels position.
798
- * Property type: FormLabelPosition | string
799
- */
800
- get labelPosition() {
801
- return this.nativeElement ? this.nativeElement.labelPosition : undefined;
802
- }
803
- set labelPosition(value) {
804
- if (this.nativeElement) {
805
- this.nativeElement.labelPosition = value;
806
- }
807
- }
808
- /** Makes the form readonly.
809
- * Property type: boolean
810
- */
811
- get readonly() {
812
- return this.nativeElement ? this.nativeElement.readonly : undefined;
813
- }
814
- set readonly(value) {
815
- if (this.nativeElement) {
816
- this.nativeElement.readonly = value;
817
- }
818
- }
819
- /** Shows / hides the colon after the labels.
820
- * Property type: boolean
821
- */
822
- get showColonAfterLabel() {
823
- return this.nativeElement ? this.nativeElement.showColonAfterLabel : undefined;
824
- }
825
- set showColonAfterLabel(value) {
826
- if (this.nativeElement) {
827
- this.nativeElement.showColonAfterLabel = value;
828
- }
829
- }
830
- /** Shows / hides validation summary.
831
- * Property type: boolean
832
- */
833
- get showSummary() {
834
- return this.nativeElement ? this.nativeElement.showSummary : undefined;
835
- }
836
- set showSummary(value) {
837
- if (this.nativeElement) {
838
- this.nativeElement.showSummary = value;
839
- }
840
- }
841
- /** Gets the Form's state. Each member in the state has { dirty, untouched, disabled } properties.
842
- * Property type: any
843
- */
844
- get state() {
845
- return this.nativeElement ? this.nativeElement.state : undefined;
846
- }
847
- set state(value) {
848
- if (this.nativeElement) {
849
- this.nativeElement.state = value;
850
- }
851
- }
852
- /** Gets or Sets the Form value.
853
- * Property type: any
854
- */
855
- get value() {
856
- return this.nativeElement ? this.nativeElement.value : undefined;
857
- }
858
- set value(value) {
859
- if (this.nativeElement) {
860
- this.nativeElement.value = value;
861
- }
862
- }
863
- /** Automatically validates the form when it is created.
864
- * Property type: boolean
865
- */
866
- get validateOnLoad() {
867
- return this.nativeElement ? this.nativeElement.validateOnLoad : undefined;
868
- }
869
- set validateOnLoad(value) {
870
- if (this.nativeElement) {
871
- this.nativeElement.validateOnLoad = value;
872
- }
873
- }
874
- // Gets the properties of the React component.
875
- get properties() {
876
- return ["columns", "controls", "onStatusChanges", "onValueChanges", "labelPosition", "readonly", "showColonAfterLabel", "showSummary", "state", "value", "validateOnLoad"];
877
- }
878
- // Gets the events of the React component.
879
- get eventListeners() {
880
- return ["onCreate", "onReady"];
881
- }
882
- /** Adds a control to the Form.
883
- * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
884
- */
885
- addControl(controlOptions) {
886
- if (this.nativeElement.isRendered) {
887
- this.nativeElement.addControl(controlOptions);
888
- }
889
- else {
890
- this.nativeElement.whenRendered(() => {
891
- this.nativeElement.addControl(controlOptions);
892
- });
893
- }
894
- }
895
- /** Gets a control by its name(dataField).
896
- * @param {string} dataField. dataField of a FormControl or FormGroup
897
- * @returns {Control}
898
- */
899
- getControl(dataField) {
900
- return __awaiter(this, void 0, void 0, function* () {
901
- const getResultOnRender = () => {
902
- return new Promise(resolve => {
903
- this.nativeElement.whenRendered(() => {
904
- const result = this.nativeElement.getControl(dataField);
905
- resolve(result);
906
- });
907
- });
908
- };
909
- const result = yield getResultOnRender();
910
- return result;
911
- });
912
- }
913
- /** Inserts a control to the Form.
914
- * @param {number} index. Control insert index
915
- * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
916
- */
917
- insertControl(index, controlOptions) {
918
- if (this.nativeElement.isRendered) {
919
- this.nativeElement.insertControl(index, controlOptions);
920
- }
921
- else {
922
- this.nativeElement.whenRendered(() => {
923
- this.nativeElement.insertControl(index, controlOptions);
924
- });
925
- }
926
- }
927
- /** Remove a control from the Form.
928
- * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
929
- */
930
- removeControl(controlOptions) {
931
- if (this.nativeElement.isRendered) {
932
- this.nativeElement.removeControl(controlOptions);
933
- }
934
- else {
935
- this.nativeElement.whenRendered(() => {
936
- this.nativeElement.removeControl(controlOptions);
937
- });
938
- }
939
- }
940
- /** Submits the form.
941
- * @param {any} submitOptions?. Sets the submit options object. The object may have the following properties: <em>async</em>, <em>action</em>, <em>target</em>, <em>method</em>. <em>async</em> determines whether the form will be submitted asynchronously. <em>action</em> determines the submit url, <em>method</em> sets whether the submit is through 'GET' or 'POST'. <em>target</em> determines the submit target.
942
- */
943
- submit(submitOptions) {
944
- if (this.nativeElement.isRendered) {
945
- this.nativeElement.submit(submitOptions);
946
- }
947
- else {
948
- this.nativeElement.whenRendered(() => {
949
- this.nativeElement.submit(submitOptions);
950
- });
951
- }
952
- }
953
- /** Clears the form.
954
- */
955
- reset() {
956
- if (this.nativeElement.isRendered) {
957
- this.nativeElement.reset();
958
- }
959
- else {
960
- this.nativeElement.whenRendered(() => {
961
- this.nativeElement.reset();
962
- });
963
- }
964
- }
965
- /** Validates the form.
966
- */
967
- validate() {
968
- if (this.nativeElement.isRendered) {
969
- this.nativeElement.validate();
970
- }
971
- else {
972
- this.nativeElement.whenRendered(() => {
973
- this.nativeElement.validate();
974
- });
975
- }
976
- }
977
- componentDidRender(initialize) {
978
- const that = this;
979
- const props = {};
980
- const events = {};
981
- let styles = null;
982
- for (let prop in that.props) {
983
- if (prop === 'children') {
984
- continue;
985
- }
986
- if (prop === 'style') {
987
- styles = that.props[prop];
988
- continue;
989
- }
990
- if (prop.startsWith('on') && that.properties.indexOf(prop) === -1) {
991
- events[prop] = that.props[prop];
992
- continue;
993
- }
994
- props[prop] = that.props[prop];
995
- }
996
- if (initialize) {
997
- that.nativeElement = this.componentRef.current;
998
- }
999
- for (let prop in props) {
1000
- if (prop === 'class' || prop === 'className') {
1001
- const classNames = props[prop].trim().split(' ');
1002
- for (let className in classNames) {
1003
- if (!that.nativeElement.classList.contains(classNames[className]) && classNames[className] !== "") {
1004
- that.nativeElement.classList.add(classNames[className]);
1005
- }
1006
- }
1007
- continue;
1008
- }
1009
- if (props[prop] !== that.nativeElement[prop]) {
1010
- const normalizeProp = (str) => {
1011
- return str.replace(/-([a-z])/g, function (g) {
1012
- return g[1].toUpperCase();
1013
- });
1014
- };
1015
- if (prop === 'hover' || prop === 'active' || prop === 'focus' || prop === 'selected') {
1016
- that.nativeElement.setAttribute(prop, '');
1017
- }
1018
- const normalizedProp = normalizeProp(prop);
1019
- that.nativeElement[normalizedProp] = props[prop];
1020
- }
1021
- }
1022
- for (let eventName in events) {
1023
- that[eventName] = events[eventName];
1024
- that.nativeElement[eventName.toLowerCase()] = events[eventName];
1025
- }
1026
- if (initialize) {
1027
- Smart$2.Render();
1028
- if (that.onCreate) {
1029
- that.onCreate();
1030
- }
1031
- that.nativeElement.whenRendered(() => {
1032
- if (that.onReady) {
1033
- that.onReady();
1034
- }
1035
- });
1036
- }
1037
- // setup styles.
1038
- if (styles) {
1039
- for (let styleName in styles) {
1040
- that.nativeElement.style[styleName] = styles[styleName];
1041
- }
1042
- }
1043
- }
1044
- componentDidMount() {
1045
- this.componentDidRender(true);
1046
- }
1047
- componentDidUpdate() {
1048
- this.componentDidRender(false);
1049
- }
1050
- componentWillUnmount() {
1051
- const that = this;
1052
- if (!that.nativeElement) {
1053
- return;
1054
- }
1055
- that.nativeElement.whenRenderedCallbacks = [];
1056
- for (let i = 0; i < that.eventListeners.length; i++) {
1057
- const eventName = that.eventListeners[i];
1058
- that.nativeElement.removeEventListener(eventName.substring(2).toLowerCase(), that[eventName]);
1059
- }
1060
- }
1061
- render() {
1062
- return (React.createElement("smart-form", { ref: this.componentRef }, this.props.children));
1063
- }
1064
- }
1021
+ exports.Smart = Smart$2;
1022
+ exports.Form = Form;
1023
+ exports.default = Form;
1024
+ exports.FormControl = FormControl;
1025
+ exports.FormGroup = FormGroup;
1065
1026
 
1066
- exports.Smart = Smart$2;
1067
- exports.Form = Form;
1068
- exports.default = Form;
1069
- exports.FormControl = FormControl;
1070
- exports.FormGroup = FormGroup;
1071
-
1072
- Object.defineProperty(exports, '__esModule', { value: true });
1027
+ Object.defineProperty(exports, '__esModule', { value: true });
1073
1028
 
1074
1029
  })));