wcs-core 2.5.3 → 2.8.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 (295) hide show
  1. package/CHANGELOG.md +104 -5
  2. package/README.md +17 -1
  3. package/dist/cjs/component-fc28ed16.js +1074 -0
  4. package/dist/cjs/helpers-6abce594.js +86 -0
  5. package/dist/cjs/{index-e05c3e1f.js → index-3cb9d725.js} +165 -87
  6. package/dist/cjs/loader.cjs.js +3 -3
  7. package/dist/{esm/wcs-action-bar_47.entry.js → cjs/lodash-776d6f03.js} +12499 -22628
  8. package/dist/cjs/popper-5777994b.js +1732 -0
  9. package/dist/cjs/select-arrow-76ccf86d.js +36 -0
  10. package/dist/cjs/wcs-action-bar.cjs.entry.js +24 -0
  11. package/dist/cjs/wcs-app.cjs.entry.js +2 -2
  12. package/dist/cjs/wcs-badge.cjs.entry.js +27 -0
  13. package/dist/cjs/wcs-button.cjs.entry.js +86 -0
  14. package/dist/cjs/wcs-card-body.cjs.entry.js +19 -0
  15. package/dist/cjs/wcs-card.cjs.entry.js +20 -0
  16. package/dist/cjs/wcs-checkbox.cjs.entry.js +47 -0
  17. package/dist/cjs/wcs-com-nav-category.cjs.entry.js +63 -0
  18. package/dist/cjs/wcs-com-nav-submenu.cjs.entry.js +69 -0
  19. package/dist/cjs/wcs-com-nav.cjs.entry.js +19 -0
  20. package/dist/cjs/wcs-divider.cjs.entry.js +19 -0
  21. package/dist/cjs/wcs-dropdown-divider.cjs.entry.js +19 -0
  22. package/dist/cjs/wcs-dropdown-header.cjs.entry.js +19 -0
  23. package/dist/cjs/wcs-dropdown-item.cjs.entry.js +23 -0
  24. package/dist/cjs/wcs-dropdown.cjs.entry.js +90 -0
  25. package/dist/cjs/wcs-editable-field.cjs.entry.js +225 -0
  26. package/dist/cjs/wcs-error_2.cjs.entry.js +137 -0
  27. package/dist/cjs/wcs-field-content.cjs.entry.js +16 -0
  28. package/dist/cjs/wcs-field-label.cjs.entry.js +16 -0
  29. package/dist/cjs/wcs-field.cjs.entry.js +19 -0
  30. package/dist/cjs/wcs-footer.cjs.entry.js +19 -0
  31. package/dist/cjs/wcs-galactic-menu.cjs.entry.js +58 -0
  32. package/dist/cjs/wcs-galactic.cjs.entry.js +41 -0
  33. package/dist/cjs/wcs-grid-column.cjs.entry.js +77 -0
  34. package/dist/cjs/wcs-grid-custom-cell.cjs.entry.js +16 -0
  35. package/dist/cjs/wcs-grid-pagination.cjs.entry.js +4 -4
  36. package/dist/cjs/wcs-grid.cjs.entry.js +332 -0
  37. package/dist/cjs/wcs-header.cjs.entry.js +25 -0
  38. package/dist/cjs/wcs-hint.cjs.entry.js +20 -0
  39. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +114 -0
  40. package/dist/cjs/wcs-icon.cjs.entry.js +2 -2
  41. package/dist/cjs/wcs-input.cjs.entry.js +228 -0
  42. package/dist/cjs/wcs-label.cjs.entry.js +20 -0
  43. package/dist/cjs/wcs-list-item-properties.cjs.entry.js +19 -0
  44. package/dist/cjs/wcs-list-item-property.cjs.entry.js +19 -0
  45. package/dist/cjs/wcs-list-item.cjs.entry.js +23 -0
  46. package/dist/cjs/wcs-mat-icon.cjs.entry.js +73 -0
  47. package/dist/cjs/wcs-modal.cjs.entry.js +45 -0
  48. package/dist/cjs/wcs-nav-item.cjs.entry.js +23 -0
  49. package/dist/cjs/wcs-nav.cjs.entry.js +19 -0
  50. package/dist/cjs/wcs-progress-bar.cjs.entry.js +47 -0
  51. package/dist/cjs/wcs-progress-radial.cjs.entry.js +30 -0
  52. package/dist/cjs/wcs-radio-group.cjs.entry.js +65 -0
  53. package/dist/cjs/wcs-radio.cjs.entry.js +49 -0
  54. package/dist/cjs/wcs-select_2.cjs.entry.js +4916 -0
  55. package/dist/cjs/wcs-spinner.cjs.entry.js +21 -0
  56. package/dist/cjs/wcs-switch.cjs.entry.js +42 -0
  57. package/dist/cjs/wcs-tab.cjs.entry.js +20 -0
  58. package/dist/cjs/wcs-tabs.cjs.entry.js +159 -0
  59. package/dist/cjs/wcs-textarea.cjs.entry.js +224 -0
  60. package/dist/cjs/wcs-tooltip.cjs.entry.js +1635 -0
  61. package/dist/cjs/wcs.cjs.js +3 -3
  62. package/dist/collection/collection-manifest.json +5 -2
  63. package/dist/collection/components/badge/badge-interface.js +1 -0
  64. package/dist/collection/components/badge/badge.js +14 -4
  65. package/dist/collection/components/button/button.css +79 -75
  66. package/dist/collection/components/button/button.js +23 -11
  67. package/dist/collection/components/card/card-interface.js +1 -0
  68. package/dist/collection/components/card/card.js +7 -2
  69. package/dist/collection/components/checkbox/checkbox.css +18 -7
  70. package/dist/collection/components/checkbox/checkbox.js +24 -2
  71. package/dist/collection/components/com-nav/com-nav.css +1 -2
  72. package/dist/collection/components/com-nav-category/com-nav-category.css +5 -6
  73. package/dist/collection/components/com-nav-category/com-nav-category.js +31 -1
  74. package/dist/collection/components/com-nav-submenu/com-nav-submenu.css +1 -2
  75. package/dist/collection/components/com-nav-submenu/com-nav-submenu.js +21 -1
  76. package/dist/collection/components/dropdown/dropdown-interface.js +1 -0
  77. package/dist/collection/components/dropdown/dropdown.css +46 -38
  78. package/dist/collection/components/dropdown/dropdown.js +90 -29
  79. package/dist/collection/components/dropdown-divider/dropdown-divider.css +7 -0
  80. package/dist/collection/components/dropdown-divider/dropdown-divider.js +14 -0
  81. package/dist/collection/components/dropdown-header/dropdown-header.css +8 -0
  82. package/dist/collection/components/dropdown-header/dropdown-header.js +15 -0
  83. package/dist/collection/components/editable-field/editable-field.js +7 -2
  84. package/dist/collection/components/footer/footer.css +1 -1
  85. package/dist/collection/components/form-field/form-field.css +1 -2
  86. package/dist/collection/components/form-field/form-field.js +0 -17
  87. package/dist/collection/components/grid/grid.js +75 -13
  88. package/dist/collection/components/grid-column/grid-column.css +5 -0
  89. package/dist/collection/components/grid-column/grid-column.js +69 -3
  90. package/dist/collection/components/grid-custom-cell/grid-custom-cell.js +45 -0
  91. package/dist/collection/components/grid-pagination/grid-pagination.js +4 -4
  92. package/dist/collection/components/header/header.css +1 -1
  93. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +7 -2
  94. package/dist/collection/components/input/input.css +48 -0
  95. package/dist/collection/components/input/input.js +40 -4
  96. package/dist/collection/components/mat-icon/mat-icon.css +1 -1
  97. package/dist/collection/components/mat-icon/mat-icon.js +7 -2
  98. package/dist/collection/components/modal/modal.css +8 -5
  99. package/dist/collection/components/modal/modal.js +5 -5
  100. package/dist/collection/components/nav-item/nav-item.js +1 -1
  101. package/dist/collection/components/progress-bar/progress-bar.js +4 -4
  102. package/dist/collection/components/radio/radio.component.js +9 -4
  103. package/dist/collection/components/radio/radio.css +43 -18
  104. package/dist/collection/components/radio-group/radio-group.css +4 -0
  105. package/dist/collection/components/radio-group/radio-group.js +10 -5
  106. package/dist/collection/components/select/select.css +81 -77
  107. package/dist/collection/components/select/select.js +2 -2
  108. package/dist/collection/components/select-option/select-option.css +79 -75
  109. package/dist/collection/components/select-option/select-option.js +6 -7
  110. package/dist/collection/components/spinner/spinner-interface.js +1 -0
  111. package/dist/collection/components/spinner/spinner.js +8 -3
  112. package/dist/collection/components/switch/switch.css +53 -16
  113. package/dist/collection/components/switch/switch.js +55 -6
  114. package/dist/collection/components/tab/tab.js +5 -5
  115. package/dist/collection/components/tabs/tabs.js +2 -2
  116. package/dist/collection/components/textarea/textarea.css +4 -0
  117. package/dist/collection/components/textarea/textarea.js +2 -2
  118. package/dist/collection/components/tooltip/tooltip.css +3 -0
  119. package/dist/collection/components/tooltip/tooltip.js +310 -92
  120. package/dist/collection/utils/helpers.js +4 -0
  121. package/dist/esm/component-6b4d470f.js +1072 -0
  122. package/dist/esm/helpers-e2993152.js +77 -0
  123. package/dist/esm/{index-c619b1fa.js → index-b982604a.js} +165 -88
  124. package/dist/esm/loader.js +3 -3
  125. package/dist/{cjs/wcs-action-bar_47.cjs.entry.js → esm/lodash-d6d9d079.js} +12610 -22791
  126. package/dist/esm/popper-5f42e560.js +1729 -0
  127. package/dist/esm/select-arrow-73ac4016.js +34 -0
  128. package/dist/esm/wcs-action-bar.entry.js +20 -0
  129. package/dist/esm/wcs-app.entry.js +2 -2
  130. package/dist/esm/wcs-badge.entry.js +23 -0
  131. package/dist/esm/wcs-button.entry.js +82 -0
  132. package/dist/esm/wcs-card-body.entry.js +15 -0
  133. package/dist/esm/wcs-card.entry.js +16 -0
  134. package/dist/esm/wcs-checkbox.entry.js +43 -0
  135. package/dist/esm/wcs-com-nav-category.entry.js +59 -0
  136. package/dist/esm/wcs-com-nav-submenu.entry.js +65 -0
  137. package/dist/esm/wcs-com-nav.entry.js +15 -0
  138. package/dist/esm/wcs-divider.entry.js +15 -0
  139. package/dist/esm/wcs-dropdown-divider.entry.js +15 -0
  140. package/dist/esm/wcs-dropdown-header.entry.js +15 -0
  141. package/dist/esm/wcs-dropdown-item.entry.js +19 -0
  142. package/dist/esm/wcs-dropdown.entry.js +86 -0
  143. package/dist/esm/wcs-editable-field.entry.js +221 -0
  144. package/dist/esm/wcs-error_2.entry.js +132 -0
  145. package/dist/esm/wcs-field-content.entry.js +12 -0
  146. package/dist/esm/wcs-field-label.entry.js +12 -0
  147. package/dist/esm/wcs-field.entry.js +15 -0
  148. package/dist/esm/wcs-footer.entry.js +15 -0
  149. package/dist/esm/wcs-galactic-menu.entry.js +54 -0
  150. package/dist/esm/wcs-galactic.entry.js +37 -0
  151. package/dist/esm/wcs-grid-column.entry.js +73 -0
  152. package/dist/esm/wcs-grid-custom-cell.entry.js +12 -0
  153. package/dist/esm/wcs-grid-pagination.entry.js +4 -4
  154. package/dist/esm/wcs-grid.entry.js +328 -0
  155. package/dist/esm/wcs-header.entry.js +21 -0
  156. package/dist/esm/wcs-hint.entry.js +16 -0
  157. package/dist/esm/wcs-horizontal-stepper.entry.js +110 -0
  158. package/dist/esm/wcs-icon.entry.js +2 -2
  159. package/dist/esm/wcs-input.entry.js +224 -0
  160. package/dist/esm/wcs-label.entry.js +16 -0
  161. package/dist/esm/wcs-list-item-properties.entry.js +15 -0
  162. package/dist/esm/wcs-list-item-property.entry.js +15 -0
  163. package/dist/esm/wcs-list-item.entry.js +19 -0
  164. package/dist/esm/wcs-mat-icon.entry.js +69 -0
  165. package/dist/esm/wcs-modal.entry.js +41 -0
  166. package/dist/esm/wcs-nav-item.entry.js +19 -0
  167. package/dist/esm/wcs-nav.entry.js +15 -0
  168. package/dist/esm/wcs-progress-bar.entry.js +43 -0
  169. package/dist/esm/wcs-progress-radial.entry.js +26 -0
  170. package/dist/esm/wcs-radio-group.entry.js +61 -0
  171. package/dist/esm/wcs-radio.entry.js +45 -0
  172. package/dist/esm/wcs-select_2.entry.js +4911 -0
  173. package/dist/esm/wcs-spinner.entry.js +17 -0
  174. package/dist/esm/wcs-switch.entry.js +38 -0
  175. package/dist/esm/wcs-tab.entry.js +16 -0
  176. package/dist/esm/wcs-tabs.entry.js +155 -0
  177. package/dist/esm/wcs-textarea.entry.js +220 -0
  178. package/dist/esm/wcs-tooltip.entry.js +1631 -0
  179. package/dist/esm/wcs.js +3 -3
  180. package/dist/types/components/badge/badge-interface.d.ts +2 -0
  181. package/dist/types/components/badge/badge.d.ts +3 -2
  182. package/dist/types/components/button/button.d.ts +7 -3
  183. package/dist/types/components/card/card-interface.d.ts +1 -0
  184. package/dist/types/components/card/card.d.ts +2 -1
  185. package/dist/types/components/checkbox/checkbox.d.ts +4 -0
  186. package/dist/types/components/com-nav-category/com-nav-category.d.ts +7 -0
  187. package/dist/types/components/com-nav-submenu/com-nav-submenu.d.ts +7 -0
  188. package/dist/types/components/dropdown/dropdown-interface.d.ts +1 -0
  189. package/dist/types/components/dropdown/dropdown.d.ts +13 -16
  190. package/dist/types/components/dropdown-divider/dropdown-divider.d.ts +3 -0
  191. package/dist/types/components/dropdown-header/dropdown-header.d.ts +3 -0
  192. package/dist/types/components/editable-field/editable-field-interface.d.ts +1 -0
  193. package/dist/types/components/editable-field/editable-field.d.ts +2 -2
  194. package/dist/types/components/form-field/form-field.d.ts +0 -4
  195. package/dist/types/components/grid/grid.d.ts +18 -0
  196. package/dist/types/components/grid-column/grid-column.d.ts +5 -0
  197. package/dist/types/components/grid-custom-cell/grid-custom-cell.d.ts +12 -0
  198. package/dist/types/components/horizontal-stepper/horizontal-stepper-interface.d.ts +1 -0
  199. package/dist/types/components/horizontal-stepper/horizontal-stepper.d.ts +2 -2
  200. package/dist/types/components/input/input.d.ts +8 -0
  201. package/dist/types/components/mat-icon/mat-icon-interface.d.ts +1 -0
  202. package/dist/types/components/mat-icon/mat-icon.d.ts +2 -2
  203. package/dist/types/components/modal/modal.d.ts +1 -1
  204. package/dist/types/components/radio/radio.component.d.ts +2 -1
  205. package/dist/types/components/radio-group/radio-group-interface.d.ts +1 -0
  206. package/dist/types/components/radio-group/radio-group.d.ts +2 -2
  207. package/dist/types/components/select-option/select-option.d.ts +2 -0
  208. package/dist/types/components/spinner/spinner-interface.d.ts +1 -0
  209. package/dist/types/components/spinner/spinner.d.ts +2 -1
  210. package/dist/types/components/switch/switch-interface.d.ts +1 -0
  211. package/dist/types/components/switch/switch.d.ts +10 -2
  212. package/dist/types/components/tooltip/tooltip.d.ts +70 -6
  213. package/dist/types/components.d.ts +244 -41
  214. package/dist/types/interfaces.d.ts +21 -0
  215. package/dist/types/stencil-public-runtime.d.ts +183 -182
  216. package/dist/types/utils/helpers.d.ts +1 -0
  217. package/dist/wcs/p-03b2e238.entry.js +1 -0
  218. package/dist/wcs/p-08a7e84d.entry.js +1 -0
  219. package/dist/wcs/p-0a103e06.entry.js +1 -0
  220. package/dist/wcs/p-16dfbae8.js +127 -0
  221. package/dist/wcs/p-1dce7e63.entry.js +1 -0
  222. package/dist/wcs/p-1e16709a.entry.js +1 -0
  223. package/dist/wcs/p-1f5aed36.entry.js +1 -0
  224. package/dist/wcs/p-214236db.entry.js +1 -0
  225. package/dist/wcs/p-22813c8e.entry.js +1 -0
  226. package/dist/wcs/p-26b5c0a3.entry.js +1 -0
  227. package/dist/wcs/p-2e6265dc.entry.js +1 -0
  228. package/dist/wcs/p-384068f7.entry.js +1 -0
  229. package/dist/wcs/p-41037455.entry.js +1 -0
  230. package/dist/wcs/p-474d6601.entry.js +1 -0
  231. package/dist/wcs/p-4e9e226d.entry.js +1 -0
  232. package/dist/wcs/p-55fdc284.entry.js +1 -0
  233. package/dist/wcs/p-57247184.entry.js +1 -0
  234. package/dist/wcs/p-5b35b232.entry.js +1 -0
  235. package/dist/wcs/p-600a9cc0.entry.js +1 -0
  236. package/dist/wcs/p-60b51967.entry.js +1 -0
  237. package/dist/wcs/p-65c5ccc5.entry.js +1 -0
  238. package/dist/wcs/p-688fea65.entry.js +1 -0
  239. package/dist/wcs/p-6b8d2bc7.entry.js +1 -0
  240. package/dist/wcs/p-716d5921.entry.js +1 -0
  241. package/dist/wcs/p-7206e492.entry.js +1 -0
  242. package/dist/wcs/p-7219c04b.js +1 -0
  243. package/dist/wcs/p-8137f075.entry.js +1 -0
  244. package/dist/wcs/p-8864a491.entry.js +1 -0
  245. package/dist/wcs/p-8c8740e3.entry.js +1 -0
  246. package/dist/wcs/p-91a2de07.entry.js +1 -0
  247. package/dist/wcs/p-94a31f64.entry.js +1 -0
  248. package/dist/wcs/p-979dfd78.entry.js +1 -0
  249. package/dist/wcs/p-9ba52bc4.entry.js +1 -0
  250. package/dist/wcs/p-a1ee1551.entry.js +1 -0
  251. package/dist/wcs/p-a92d369e.entry.js +1 -0
  252. package/dist/wcs/p-a978c1e3.entry.js +1 -0
  253. package/dist/wcs/p-adef7aaf.js +1 -0
  254. package/dist/wcs/p-b5ffbea8.entry.js +1 -0
  255. package/dist/wcs/p-b7184d59.entry.js +1 -0
  256. package/dist/wcs/p-bbf1ef42.entry.js +1 -0
  257. package/dist/wcs/p-c7d6d3e1.entry.js +15 -0
  258. package/dist/wcs/p-cf4d7a83.js +1 -0
  259. package/dist/wcs/p-d3c9a644.js +1 -0
  260. package/dist/wcs/p-db68379f.entry.js +1 -0
  261. package/dist/wcs/p-dbbc3f58.entry.js +1 -0
  262. package/dist/wcs/p-dc817204.entry.js +1 -0
  263. package/dist/wcs/p-e0163de8.entry.js +1 -0
  264. package/dist/wcs/p-e4236d32.entry.js +1 -0
  265. package/dist/wcs/p-e43358e4.entry.js +1 -0
  266. package/dist/wcs/p-e9ce507c.entry.js +1 -0
  267. package/dist/wcs/p-ecbe5165.entry.js +6 -0
  268. package/dist/wcs/p-f46e6c3c.js +1 -0
  269. package/dist/wcs/p-f9944bde.entry.js +1 -0
  270. package/dist/wcs/p-fa173947.entry.js +1 -0
  271. package/dist/wcs/p-fb1577b5.entry.js +1 -0
  272. package/dist/wcs/p-febe9ccc.entry.js +1 -0
  273. package/dist/wcs/p-ff6d0dfd.entry.js +1 -0
  274. package/dist/wcs/wcs.css +1 -1
  275. package/dist/wcs/wcs.esm.js +1 -1
  276. package/loader/index.d.ts +0 -1
  277. package/package.json +25 -22
  278. package/dist/types/interface.d.ts +0 -3
  279. package/dist/wcs/p-16dca526.entry.js +0 -1
  280. package/dist/wcs/p-4f228fcb.entry.js +0 -134
  281. package/dist/wcs/p-66520e5a.entry.js +0 -1
  282. package/dist/wcs/p-d31287c6.entry.js +0 -1
  283. package/dist/wcs/p-f73f235b.js +0 -1
  284. package/schematics/.gitignore +0 -18
  285. package/schematics/.npmignore +0 -4
  286. package/schematics/collection.json +0 -9
  287. package/schematics/src/ng-add/files/fonts/avenir-black.woff +0 -0
  288. package/schematics/src/ng-add/files/fonts/avenir-book.woff +0 -0
  289. package/schematics/src/ng-add/files/fonts/avenir-lighter.woff +0 -0
  290. package/schematics/src/ng-add/files/fonts/avenir-medium.woff +0 -0
  291. package/schematics/src/ng-add/files/sncf-logo.png +0 -0
  292. package/schematics/src/ng-add/index.d.ts +0 -3
  293. package/schematics/src/ng-add/index.js +0 -119
  294. package/schematics/src/ng-add/index.js.map +0 -1
  295. package/schematics/src/ng-add/schema.json +0 -5
@@ -1,4 +1,4 @@
1
- import { Component, Element, Event, h, Host, Listen, Prop, State, Watch } from '@stencil/core';
1
+ import { Component, Element, Event, forceUpdate, h, Host, Listen, Prop, State, Watch } from '@stencil/core';
2
2
  import { getSortOrderInteger } from './grid-interface';
3
3
  import _ from 'lodash';
4
4
  import { v4 as uuid } from 'uuid';
@@ -23,6 +23,11 @@ export class Grid {
23
23
  onSelectedItemsPropertyChange(newValue) {
24
24
  this.updateSelectionWithValues(newValue);
25
25
  }
26
+ onHiddenColumnChange() {
27
+ // We use forceUpdate because the fact of hiding a column or not does not modify the internal structure of the grid (WcsGridRow).
28
+ // Hide a column only impacts the way it is rendered but the grid-column remains in the dom and in our internal model.
29
+ forceUpdate(this);
30
+ }
26
31
  updateSelectionWithValues(values) {
27
32
  if (this.selectionConfig === 'single') {
28
33
  this.rows.map(r => r.selected = false);
@@ -78,6 +83,19 @@ export class Grid {
78
83
  if (this.selectedItems) {
79
84
  this.updateSelectionWithValues(this.selectedItems);
80
85
  }
86
+ this.applyInitialSortConfig();
87
+ }
88
+ /**
89
+ * Handle existing column's filters (defined before the grid is instantiated)
90
+ * @private
91
+ */
92
+ applyInitialSortConfig() {
93
+ const [first, ...other] = this.columns.filter(c => c.sortOrder !== 'none');
94
+ // We keep only one active sorted column
95
+ other === null || other === void 0 ? void 0 : other.forEach(o => o.sortOrder = 'none');
96
+ if (first && !this.serverMode) {
97
+ this.sortBy(first);
98
+ }
81
99
  }
82
100
  getGridColumnsFromTemplate() {
83
101
  const slotted = this.el.shadowRoot.querySelector('slot[name="grid-column"]');
@@ -88,22 +106,32 @@ export class Grid {
88
106
  return slotted.assignedElements();
89
107
  }
90
108
  sortChangeEventHandler(event) {
109
+ if (event.detail.order === 'none')
110
+ return;
91
111
  // We keep only one active sort column
92
112
  this.columns.filter(c => c !== event.detail.column).forEach(c => c.sortOrder = 'none');
93
113
  if (this.serverMode)
94
114
  return;
95
- if (event.detail.sortFn) {
115
+ this.sortBy(event.detail.column);
116
+ this.updatePageIndex();
117
+ }
118
+ /**
119
+ * Sorts the grid rows according to the given column's configuration
120
+ * @param colmun Column from which to extract the sorting configuration
121
+ * @private
122
+ */
123
+ sortBy(colmun) {
124
+ if (colmun.sortFn) {
96
125
  this.rows = _.cloneDeep(this.rows)
97
- .sort((a, b) => event.detail.sortFn(a.data, b.data, event.detail.column) * getSortOrderInteger(event.detail.order));
126
+ .sort((a, b) => colmun.sortFn(a.data, b.data, colmun) * getSortOrderInteger(colmun.sortOrder));
98
127
  }
99
128
  else {
100
129
  this.rows = _.cloneDeep(this.rows)
101
130
  .sort((a, b) => {
102
- const path = event.detail.column.path;
103
- return ((_.get(a.data, path) < _.get(b.data, path)) ? -1 : (_.get(a.data, path) > _.get(b.data, path)) ? 1 : 0) * getSortOrderInteger(event.detail.order);
131
+ const path = colmun.path;
132
+ return ((_.get(a.data, path) < _.get(b.data, path)) ? -1 : (_.get(a.data, path) > _.get(b.data, path)) ? 1 : 0) * getSortOrderInteger(colmun.sortOrder);
104
133
  });
105
134
  }
106
- this.updatePageIndex();
107
135
  }
108
136
  /**
109
137
  * Update the page's number of all rows
@@ -138,7 +166,9 @@ export class Grid {
138
166
  this.rows.filter(r => r.uuid !== row.uuid).map(r => r.selected = false);
139
167
  }
140
168
  row.selected = !row.selected;
141
- this.wcsGridSelectionChange.emit({ row: this.wcsGridRowToWcsGridRowData(row) });
169
+ if (this.selectionConfig !== 'single' || row.selected) {
170
+ this.wcsGridSelectionChange.emit({ row: this.wcsGridRowToWcsGridRowData(row) });
171
+ }
142
172
  this.rows = _.cloneDeep(this.rows);
143
173
  }
144
174
  selectAllRows() {
@@ -195,14 +225,23 @@ export class Grid {
195
225
  ? h("tr", null,
196
226
  h("td", { colSpan: this.totalColumnCount(), class: "loading" },
197
227
  h("wcs-spinner", null)))
198
- : (_a = this.rows) === null || _a === void 0 ? void 0 : _a.filter(row => this.serverMode || !this.paginationEl || row.page === this.paginationEl.currentPage).map(row => {
199
- var _a;
200
- return h("tr", { class: row.selected ? 'selected' : '' },
201
- this.renderSelectionColumn(row), (_a = row.cells) === null || _a === void 0 ? void 0 :
202
- _a.map(cell => h("td", { part: cell.column.path + '-column' }, this.getCellContent(row, cell))));
203
- }))),
228
+ : (_a = this.rows) === null || _a === void 0 ? void 0 : _a.filter(row => this.serverMode || !this.paginationEl || row.page === this.paginationEl.currentPage).map(row => this.renderRow(row)))),
204
229
  h("slot", { name: "grid-pagination" })));
205
230
  }
231
+ renderRow(row) {
232
+ var _a;
233
+ return h("tr", { class: row.selected ? 'selected' : '' },
234
+ this.renderSelectionColumn(row), (_a = row.cells) === null || _a === void 0 ? void 0 :
235
+ _a.map(cell => {
236
+ if (cell.column.hidden) {
237
+ return;
238
+ }
239
+ return cell.column.customCells
240
+ ? (h("td", null,
241
+ h("slot", { name: cell.column.id + '-' + row.data[this.rowIdPath] })))
242
+ : (h("td", { part: cell.column.path + '-column' }, this.getCellContent(row, cell)));
243
+ }));
244
+ }
206
245
  static get is() { return "wcs-grid"; }
207
246
  static get encapsulation() { return "shadow"; }
208
247
  static get originalStyleUrls() { return {
@@ -318,6 +357,23 @@ export class Grid {
318
357
  },
319
358
  "attribute": "wcs-grid-pagination-id",
320
359
  "reflect": false
360
+ },
361
+ "rowIdPath": {
362
+ "type": "string",
363
+ "mutable": false,
364
+ "complexType": {
365
+ "original": "string",
366
+ "resolved": "string",
367
+ "references": {}
368
+ },
369
+ "required": false,
370
+ "optional": false,
371
+ "docs": {
372
+ "tags": [],
373
+ "text": "Name of the object's key that will be used to display the cells whose keyValue attribute matches to the\nobject's value for this key."
374
+ },
375
+ "attribute": "row-id-path",
376
+ "reflect": false
321
377
  }
322
378
  }; }
323
379
  static get states() { return {
@@ -375,6 +431,12 @@ export class Grid {
375
431
  "methodName": "onSelectedItemsPropertyChange"
376
432
  }]; }
377
433
  static get listeners() { return [{
434
+ "name": "wcsHiddenChange",
435
+ "method": "onHiddenColumnChange",
436
+ "target": undefined,
437
+ "capture": false,
438
+ "passive": false
439
+ }, {
378
440
  "name": "wcsSortChange",
379
441
  "method": "sortChangeEventHandler",
380
442
  "target": undefined,
@@ -1,5 +1,6 @@
1
1
  :host {
2
2
  --wcs-grid-column-border-left: solid 1px var(--wcs-text-light);
3
+ display: contents;
3
4
  }
4
5
  :host th {
5
6
  color: var(--wcs-gray-dark);
@@ -32,4 +33,8 @@
32
33
  }
33
34
  :host([sort-order=none]) th:hover img {
34
35
  display: inline-block;
36
+ }
37
+
38
+ :host([hidden]) {
39
+ display: none !important;
35
40
  }
@@ -1,9 +1,17 @@
1
- import { Component, Event, h, Host, Prop, Element } from '@stencil/core';
1
+ import { Component, Event, h, Host, Prop, Element, Watch } from '@stencil/core';
2
2
  import { GridSortArrow } from './grid-sort-arrow';
3
3
  export class GridColumn {
4
4
  constructor() {
5
5
  this.sort = false;
6
6
  this.sortOrder = 'none';
7
+ this.customCells = false;
8
+ this.hidden = false;
9
+ }
10
+ parseMyObjectProp(newValue) {
11
+ this.wcsHiddenChange.emit(newValue);
12
+ }
13
+ sortOrderChange(_) {
14
+ this.emitSortConfig();
7
15
  }
8
16
  emitSortConfig() {
9
17
  if (!this.sort)
@@ -15,7 +23,7 @@ export class GridColumn {
15
23
  });
16
24
  }
17
25
  render() {
18
- return (h(Host, { onClick: this.onSortClick.bind(this), slot: "grid-column", style: { display: 'contents' } },
26
+ return (h(Host, { onClick: this.onSortClick.bind(this), slot: "grid-column" },
19
27
  h("th", { style: { width: this.width }, class: this.sort ? 'pointer' : '' },
20
28
  h("div", { class: "grid-column-th-content" },
21
29
  h("span", null, this.name),
@@ -146,7 +154,7 @@ export class GridColumn {
146
154
  "text": ""
147
155
  },
148
156
  "attribute": "sort-order",
149
- "reflect": true,
157
+ "reflect": false,
150
158
  "defaultValue": "'none'"
151
159
  },
152
160
  "width": {
@@ -165,6 +173,42 @@ export class GridColumn {
165
173
  },
166
174
  "attribute": "width",
167
175
  "reflect": false
176
+ },
177
+ "customCells": {
178
+ "type": "boolean",
179
+ "mutable": false,
180
+ "complexType": {
181
+ "original": "boolean",
182
+ "resolved": "boolean",
183
+ "references": {}
184
+ },
185
+ "required": false,
186
+ "optional": false,
187
+ "docs": {
188
+ "tags": [],
189
+ "text": ""
190
+ },
191
+ "attribute": "custom-cells",
192
+ "reflect": false,
193
+ "defaultValue": "false"
194
+ },
195
+ "hidden": {
196
+ "type": "boolean",
197
+ "mutable": false,
198
+ "complexType": {
199
+ "original": "boolean",
200
+ "resolved": "boolean",
201
+ "references": {}
202
+ },
203
+ "required": false,
204
+ "optional": false,
205
+ "docs": {
206
+ "tags": [],
207
+ "text": ""
208
+ },
209
+ "attribute": "hidden",
210
+ "reflect": false,
211
+ "defaultValue": "false"
168
212
  }
169
213
  }; }
170
214
  static get events() { return [{
@@ -187,6 +231,28 @@ export class GridColumn {
187
231
  }
188
232
  }
189
233
  }
234
+ }, {
235
+ "method": "wcsHiddenChange",
236
+ "name": "wcsHiddenChange",
237
+ "bubbles": true,
238
+ "cancelable": true,
239
+ "composed": true,
240
+ "docs": {
241
+ "tags": [],
242
+ "text": ""
243
+ },
244
+ "complexType": {
245
+ "original": "boolean",
246
+ "resolved": "boolean",
247
+ "references": {}
248
+ }
190
249
  }]; }
191
250
  static get elementRef() { return "el"; }
251
+ static get watchers() { return [{
252
+ "propName": "hidden",
253
+ "methodName": "parseMyObjectProp"
254
+ }, {
255
+ "propName": "sortOrder",
256
+ "methodName": "sortOrderChange"
257
+ }]; }
192
258
  }
@@ -0,0 +1,45 @@
1
+ import { Component, h, Host, Prop } from '@stencil/core';
2
+ export class GridCustomCell {
3
+ render() {
4
+ return (h(Host, { slot: this.columnId + '-' + this.rowId },
5
+ h("slot", null)));
6
+ }
7
+ static get is() { return "wcs-grid-custom-cell"; }
8
+ static get encapsulation() { return "shadow"; }
9
+ static get properties() { return {
10
+ "columnId": {
11
+ "type": "string",
12
+ "mutable": false,
13
+ "complexType": {
14
+ "original": "string",
15
+ "resolved": "string",
16
+ "references": {}
17
+ },
18
+ "required": false,
19
+ "optional": false,
20
+ "docs": {
21
+ "tags": [],
22
+ "text": "ID of the column for which to render the cell"
23
+ },
24
+ "attribute": "column-id",
25
+ "reflect": false
26
+ },
27
+ "rowId": {
28
+ "type": "any",
29
+ "mutable": false,
30
+ "complexType": {
31
+ "original": "any",
32
+ "resolved": "any",
33
+ "references": {}
34
+ },
35
+ "required": false,
36
+ "optional": false,
37
+ "docs": {
38
+ "tags": [],
39
+ "text": "Key value of the object rendered for the cell's row"
40
+ },
41
+ "attribute": "row-id",
42
+ "reflect": false
43
+ }
44
+ }; }
45
+ }
@@ -3,10 +3,10 @@ import { GridPaginationArrow } from './grid-pagination-arrow';
3
3
  export class GridPagination {
4
4
  constructor() {
5
5
  this.availablePageSizes = [10, 20, 50];
6
- this.currentPage = 1;
6
+ this.currentPage = 0;
7
7
  this.pageSize = this.availablePageSizes[0];
8
8
  this.itemsCount = 0;
9
- this.pageCount = 0;
9
+ this.pageCount = 1;
10
10
  }
11
11
  lastPage() {
12
12
  this.currentPage = this.pageCount - 1;
@@ -116,7 +116,7 @@ export class GridPagination {
116
116
  },
117
117
  "attribute": "current-page",
118
118
  "reflect": false,
119
- "defaultValue": "1"
119
+ "defaultValue": "0"
120
120
  },
121
121
  "pageSize": {
122
122
  "type": "number",
@@ -170,7 +170,7 @@ export class GridPagination {
170
170
  },
171
171
  "attribute": "page-count",
172
172
  "reflect": false,
173
- "defaultValue": "0"
173
+ "defaultValue": "1"
174
174
  }
175
175
  }; }
176
176
  static get events() { return [{
@@ -4,7 +4,7 @@ header {
4
4
  align-items: center;
5
5
  background: var(--wcs-gray);
6
6
  padding: 8px 8px 8px 16px;
7
- height: calc(64px - 16px);
7
+ height: 48px;
8
8
  z-index: 1;
9
9
  }
10
10
 
@@ -133,9 +133,14 @@ export class HorizontalStepper {
133
133
  "type": "string",
134
134
  "mutable": false,
135
135
  "complexType": {
136
- "original": "'linear' | 'nonLinear'",
136
+ "original": "HorizontalStepperMode",
137
137
  "resolved": "\"linear\" | \"nonLinear\"",
138
- "references": {}
138
+ "references": {
139
+ "HorizontalStepperMode": {
140
+ "location": "import",
141
+ "path": "./horizontal-stepper-interface"
142
+ }
143
+ }
139
144
  },
140
145
  "required": false,
141
146
  "optional": false,
@@ -37,14 +37,62 @@
37
37
  margin-left: 8px;
38
38
  margin-right: -8px;
39
39
  }
40
+ :host .prefix, :host .suffix {
41
+ color: var(--wcs-white);
42
+ display: flex;
43
+ white-space: nowrap;
44
+ align-items: center;
45
+ padding: 0 calc(var(--wcs-padding) / 2);
46
+ font-weight: var(--wcs-font-weight-form-value) !important;
47
+ background-color: var(--wcs-text-disabled);
48
+ }
49
+ :host .prefix {
50
+ border-radius: var(--wcs-internal-input-border-radius-left) 0 0 var(--wcs-internal-input-border-radius-left);
51
+ margin: -1px 0 -1px -1px;
52
+ border-left: solid 1px transparent;
53
+ border-top: solid 1px transparent;
54
+ border-bottom: solid 1px transparent;
55
+ }
56
+ :host .suffix {
57
+ border-radius: 0 var(--wcs-internal-input-border-radius-right) var(--wcs-internal-input-border-radius-right) 0;
58
+ margin: -1px -1px -1px 0px;
59
+ border-right: solid 1px transparent;
60
+ border-top: solid 1px transparent;
61
+ border-bottom: solid 1px transparent;
62
+ }
40
63
 
41
64
  :host([state=error]) {
42
65
  border-color: var(--wcs-red) !important;
43
66
  }
44
67
 
68
+ :host([data-has-prefix]) input {
69
+ padding-left: calc(var(--wcs-padding) / 2);
70
+ }
71
+
72
+ :host([data-has-suffix]) input {
73
+ padding-left: calc(var(--wcs-padding) / 2);
74
+ }
75
+
76
+ :host([disabled]) input {
77
+ color: var(--wcs-text-disabled);
78
+ }
79
+ :host([disabled]) .prefix, :host([disabled]) .suffix {
80
+ color: var(--wcs-light);
81
+ }
82
+
45
83
  :host(:focus-within) {
46
84
  border: solid 1px var(--wcs-primary);
47
85
  }
86
+ :host(:focus-within) .prefix {
87
+ border-left: solid 1px var(--wcs-primary);
88
+ border-top: solid 1px var(--wcs-primary);
89
+ border-bottom: solid 1px var(--wcs-primary);
90
+ }
91
+ :host(:focus-within) .suffix {
92
+ border-right: solid 1px var(--wcs-primary);
93
+ border-top: solid 1px var(--wcs-primary);
94
+ border-bottom: solid 1px var(--wcs-primary);
95
+ }
48
96
  :host(:focus-within) wcs-mat-icon {
49
97
  color: var(--wcs-primary);
50
98
  }
@@ -205,9 +205,11 @@ export class Input {
205
205
  if (label) {
206
206
  label.id = labelId;
207
207
  }
208
- return (h(Host, { "aria-disabled": this.disabled ? 'true' : null },
208
+ return (h(Host, { "aria-disabled": this.disabled ? 'true' : null, "data-has-prefix": !!this.prefixLabel, "data-has-suffix": !!this.suffixLabel },
209
+ this.prefixLabel ? (h("span", { class: "prefix" }, this.prefixLabel)) : null,
209
210
  this.icon ? (h("wcs-mat-icon", { icon: this.icon, size: "m" })) : null,
210
- h("input", Object.assign({ class: "native-input", ref: input => this.nativeInput = input, "aria-labelledby": label ? labelId : null, disabled: this.disabled, accept: this.accept, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown }, this.inheritedAttributes))));
211
+ h("input", Object.assign({ class: "native-input", ref: input => this.nativeInput = input, "aria-labelledby": label ? labelId : null, disabled: this.disabled, accept: this.accept, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown }, this.inheritedAttributes)),
212
+ this.suffixLabel ? (h("span", { class: "suffix" }, this.suffixLabel)) : null));
211
213
  }
212
214
  static get is() { return "wcs-input"; }
213
215
  static get encapsulation() { return "shadow"; }
@@ -230,8 +232,8 @@ export class Input {
230
232
  "optional": false,
231
233
  "docs": {
232
234
  "tags": [{
233
- "text": undefined,
234
- "name": "internal"
235
+ "name": "internal",
236
+ "text": undefined
235
237
  }],
236
238
  "text": "This is required for a WebKit bug which requires us to\nblur and focus an input to properly focus the input in\nan item with delegatesFocus. It will no longer be needed\nwith iOS 14."
237
239
  },
@@ -386,6 +388,40 @@ export class Input {
386
388
  "reflect": false,
387
389
  "defaultValue": "0"
388
390
  },
391
+ "prefixLabel": {
392
+ "type": "string",
393
+ "mutable": false,
394
+ "complexType": {
395
+ "original": "string",
396
+ "resolved": "string",
397
+ "references": {}
398
+ },
399
+ "required": false,
400
+ "optional": false,
401
+ "docs": {
402
+ "tags": [],
403
+ "text": "Prefix displayed before the text field contents. This is not included in the value."
404
+ },
405
+ "attribute": "prefix-label",
406
+ "reflect": false
407
+ },
408
+ "suffixLabel": {
409
+ "type": "string",
410
+ "mutable": false,
411
+ "complexType": {
412
+ "original": "string",
413
+ "resolved": "string",
414
+ "references": {}
415
+ },
416
+ "required": false,
417
+ "optional": false,
418
+ "docs": {
419
+ "tags": [],
420
+ "text": "Suffix displayed after the text field contents. This is not included in the value."
421
+ },
422
+ "attribute": "suffix-label",
423
+ "reflect": false
424
+ },
389
425
  "disabled": {
390
426
  "type": "boolean",
391
427
  "mutable": false,
@@ -1,5 +1,5 @@
1
1
  :host {
2
- display: flex;
2
+ display: inline-block;
3
3
  }
4
4
  :host .size-s {
5
5
  font-size: 18px;
@@ -88,9 +88,14 @@ export class MatIcon {
88
88
  "type": "string",
89
89
  "mutable": false,
90
90
  "complexType": {
91
- "original": "'s' | 'm' | 'l' | 'xl'",
91
+ "original": "MaterialIconSize",
92
92
  "resolved": "\"l\" | \"m\" | \"s\" | \"xl\"",
93
- "references": {}
93
+ "references": {
94
+ "MaterialIconSize": {
95
+ "location": "import",
96
+ "path": "./mat-icon-interface"
97
+ }
98
+ }
94
99
  },
95
100
  "required": false,
96
101
  "optional": false,
@@ -20,7 +20,14 @@ wcs-modal[show] {
20
20
  /**
21
21
  Backdrop
22
22
  */
23
- wcs-modal[backdrop] .wcs-modal-backdrop {
23
+ wcs-modal[without-backdrop] .wcs-modal-backdrop {
24
+ display: none;
25
+ }
26
+ wcs-modal[without-backdrop] .wcs-modal-container {
27
+ border: solid 1px var(--wcs-text-light);
28
+ }
29
+
30
+ .wcs-modal-backdrop {
24
31
  display: block;
25
32
  position: fixed;
26
33
  top: 0;
@@ -31,10 +38,6 @@ wcs-modal[backdrop] .wcs-modal-backdrop {
31
38
  background-color: var(--wcs-black);
32
39
  }
33
40
 
34
- .wcs-modal-backdrop {
35
- display: none;
36
- }
37
-
38
41
  /**
39
42
  Modal window
40
43
  */
@@ -4,7 +4,7 @@ export class Modal {
4
4
  /**
5
5
  * Specifies whether the component should display a backdrop on the entire page
6
6
  */
7
- this.backdrop = true;
7
+ this.withoutBackdrop = false;
8
8
  /**
9
9
  * Displays the modal
10
10
  */
@@ -49,7 +49,7 @@ export class Modal {
49
49
  "$": ["modal.css"]
50
50
  }; }
51
51
  static get properties() { return {
52
- "backdrop": {
52
+ "withoutBackdrop": {
53
53
  "type": "boolean",
54
54
  "mutable": false,
55
55
  "complexType": {
@@ -63,13 +63,13 @@ export class Modal {
63
63
  "tags": [],
64
64
  "text": "Specifies whether the component should display a backdrop on the entire page"
65
65
  },
66
- "attribute": "backdrop",
66
+ "attribute": "without-backdrop",
67
67
  "reflect": true,
68
- "defaultValue": "true"
68
+ "defaultValue": "false"
69
69
  },
70
70
  "show": {
71
71
  "type": "boolean",
72
- "mutable": true,
72
+ "mutable": false,
73
73
  "complexType": {
74
74
  "original": "boolean",
75
75
  "resolved": "boolean",
@@ -39,7 +39,7 @@ export class NavItem {
39
39
  },
40
40
  "href": {
41
41
  "type": "string",
42
- "mutable": true,
42
+ "mutable": false,
43
43
  "complexType": {
44
44
  "original": "string",
45
45
  "resolved": "string",
@@ -1,4 +1,4 @@
1
- import { Component, Prop, h } from '@stencil/core';
1
+ import { Component, h, Prop } from '@stencil/core';
2
2
  /**
3
3
  * Component displaying progress as a bar.
4
4
  */
@@ -50,7 +50,7 @@ export class ProgressBar {
50
50
  static get properties() { return {
51
51
  "small": {
52
52
  "type": "boolean",
53
- "mutable": true,
53
+ "mutable": false,
54
54
  "complexType": {
55
55
  "original": "boolean",
56
56
  "resolved": "boolean",
@@ -68,7 +68,7 @@ export class ProgressBar {
68
68
  },
69
69
  "showLabel": {
70
70
  "type": "boolean",
71
- "mutable": true,
71
+ "mutable": false,
72
72
  "complexType": {
73
73
  "original": "boolean",
74
74
  "resolved": "boolean",
@@ -86,7 +86,7 @@ export class ProgressBar {
86
86
  },
87
87
  "value": {
88
88
  "type": "number",
89
- "mutable": true,
89
+ "mutable": false,
90
90
  "complexType": {
91
91
  "original": "number",
92
92
  "resolved": "number",
@@ -31,7 +31,7 @@ export class Radio {
31
31
  }
32
32
  render() {
33
33
  return (h(Host, { slot: "option" },
34
- h("input", { id: this.inputId, type: "radio", value: this.value, checked: this.checked, "aria-disabled": this.disabled ? 'true' : null, "aria-checked": `${this.checked}` }),
34
+ h("input", { id: this.inputId, type: "radio", value: this.value, checked: this.checked, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : null, "aria-checked": `${this.checked}` }),
35
35
  h("label", { htmlFor: `${this.inputId}` }, this.label)));
36
36
  }
37
37
  static get is() { return "wcs-radio"; }
@@ -47,9 +47,14 @@ export class Radio {
47
47
  "type": "string",
48
48
  "mutable": false,
49
49
  "complexType": {
50
- "original": "'radio' | 'option'",
51
- "resolved": "\"option\" | \"radio\"",
52
- "references": {}
50
+ "original": "RadioGroupMode",
51
+ "resolved": "\"horizontal\" | \"option\" | \"radio\"",
52
+ "references": {
53
+ "RadioGroupMode": {
54
+ "location": "import",
55
+ "path": "../radio-group/radio-group-interface"
56
+ }
57
+ }
53
58
  },
54
59
  "required": false,
55
60
  "optional": false,