@gravitee/ui-components 3.25.3 → 3.25.4-yarn-d0ed047

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 (547) hide show
  1. package/package.json +21 -18
  2. package/src/atoms/gv-autocomplete.d.ts +104 -0
  3. package/src/atoms/gv-autocomplete.js +339 -353
  4. package/src/atoms/gv-autocomplete.js.map +1 -0
  5. package/src/atoms/gv-button.d.ts +109 -0
  6. package/src/atoms/gv-button.js +315 -152
  7. package/src/atoms/gv-button.js.map +1 -0
  8. package/src/atoms/gv-checkbox.d.ts +114 -0
  9. package/src/atoms/gv-checkbox.js +128 -78
  10. package/src/atoms/gv-checkbox.js.map +1 -0
  11. package/src/atoms/gv-date-picker-calendar.d.ts +190 -0
  12. package/src/atoms/gv-date-picker-calendar.js +699 -699
  13. package/src/atoms/gv-date-picker-calendar.js.map +1 -0
  14. package/src/atoms/gv-date-picker-cell.d.ts +80 -0
  15. package/src/atoms/gv-date-picker-cell.js +117 -108
  16. package/src/atoms/gv-date-picker-cell.js.map +1 -0
  17. package/src/atoms/gv-date-picker.d.ts +194 -0
  18. package/src/atoms/gv-date-picker.js +549 -442
  19. package/src/atoms/gv-date-picker.js.map +1 -0
  20. package/src/atoms/gv-file-upload.d.ts +64 -0
  21. package/src/atoms/gv-file-upload.js +288 -196
  22. package/src/atoms/gv-file-upload.js.map +1 -0
  23. package/src/atoms/gv-icon.d.ts +26 -0
  24. package/src/atoms/gv-icon.js +59 -47
  25. package/src/atoms/gv-icon.js.map +1 -0
  26. package/src/atoms/gv-image.d.ts +45 -0
  27. package/src/atoms/gv-image.js +93 -66
  28. package/src/atoms/gv-image.js.map +1 -0
  29. package/src/atoms/gv-input-message.d.ts +20 -0
  30. package/src/atoms/gv-input-message.js +49 -29
  31. package/src/atoms/gv-input-message.js.map +1 -0
  32. package/src/atoms/gv-input.d.ts +246 -0
  33. package/src/atoms/gv-input.js +400 -421
  34. package/src/atoms/gv-input.js.map +1 -0
  35. package/src/atoms/gv-link.d.ts +67 -0
  36. package/src/atoms/gv-link.js +143 -70
  37. package/src/atoms/gv-link.js.map +1 -0
  38. package/src/atoms/gv-message.d.ts +23 -0
  39. package/src/atoms/gv-message.js +98 -41
  40. package/src/atoms/gv-message.js.map +1 -0
  41. package/src/atoms/gv-metric.d.ts +32 -0
  42. package/src/atoms/gv-metric.js +74 -29
  43. package/src/atoms/gv-metric.js.map +1 -0
  44. package/src/atoms/gv-relative-time.d.ts +45 -0
  45. package/src/atoms/gv-relative-time.js +107 -148
  46. package/src/atoms/gv-relative-time.js.map +1 -0
  47. package/src/atoms/gv-select-native.d.ts +174 -0
  48. package/src/atoms/gv-select-native.js +289 -194
  49. package/src/atoms/gv-select-native.js.map +1 -0
  50. package/src/atoms/gv-select.d.ts +71 -0
  51. package/src/atoms/gv-select.js +323 -226
  52. package/src/atoms/gv-select.js.map +1 -0
  53. package/src/atoms/gv-spinner.d.ts +10 -0
  54. package/src/atoms/gv-spinner.js +29 -10
  55. package/src/atoms/gv-spinner.js.map +1 -0
  56. package/src/atoms/gv-state.d.ts +50 -0
  57. package/src/atoms/gv-state.js +76 -39
  58. package/src/atoms/gv-state.js.map +1 -0
  59. package/src/atoms/gv-switch.d.ts +60 -0
  60. package/src/atoms/gv-switch.js +187 -74
  61. package/src/atoms/gv-switch.js.map +1 -0
  62. package/src/atoms/gv-tag.d.ts +69 -0
  63. package/src/atoms/gv-tag.js +92 -45
  64. package/src/atoms/gv-tag.js.map +1 -0
  65. package/src/atoms/gv-text.d.ts +110 -0
  66. package/src/atoms/gv-text.js +105 -51
  67. package/src/atoms/gv-text.js.map +1 -0
  68. package/src/charts/gv-chart-bar.d.ts +50 -0
  69. package/src/charts/gv-chart-bar.js +64 -69
  70. package/src/charts/gv-chart-bar.js.map +1 -0
  71. package/src/charts/gv-chart-gauge.d.ts +58 -0
  72. package/src/charts/gv-chart-gauge.js +58 -62
  73. package/src/charts/gv-chart-gauge.js.map +1 -0
  74. package/src/charts/gv-chart-histogram.d.ts +48 -0
  75. package/src/charts/gv-chart-histogram.js +46 -58
  76. package/src/charts/gv-chart-histogram.js.map +1 -0
  77. package/src/charts/gv-chart-line.d.ts +52 -0
  78. package/src/charts/gv-chart-line.js +173 -189
  79. package/src/charts/gv-chart-line.js.map +1 -0
  80. package/src/charts/gv-chart-map.d.ts +50 -0
  81. package/src/charts/gv-chart-map.js +73 -75
  82. package/src/charts/gv-chart-map.js.map +1 -0
  83. package/src/charts/gv-chart-pie.d.ts +50 -0
  84. package/src/charts/gv-chart-pie.js +52 -57
  85. package/src/charts/gv-chart-pie.js.map +1 -0
  86. package/src/index.d.ts +77 -0
  87. package/src/index.js +1 -1
  88. package/src/index.js.map +1 -0
  89. package/src/lib/cron-expression.d.ts +1 -0
  90. package/src/lib/cron-expression.js +143 -176
  91. package/src/lib/cron-expression.js.map +1 -0
  92. package/src/lib/date.d.ts +1 -0
  93. package/src/lib/date.js +26 -35
  94. package/src/lib/date.js.map +1 -0
  95. package/src/lib/events.d.ts +1 -0
  96. package/src/lib/events.js +10 -11
  97. package/src/lib/events.js.map +1 -0
  98. package/src/lib/http-client-schema-form.d.ts +68 -0
  99. package/src/lib/http-client-schema-form.js +50 -50
  100. package/src/lib/http-client-schema-form.js.map +1 -0
  101. package/src/lib/http.d.ts +222 -0
  102. package/src/lib/http.js +221 -221
  103. package/src/lib/http.js.map +1 -0
  104. package/src/lib/i18n.d.ts +30 -0
  105. package/src/lib/i18n.js +40 -57
  106. package/src/lib/i18n.js.map +1 -0
  107. package/src/lib/item.d.ts +12 -0
  108. package/src/lib/item.js +66 -74
  109. package/src/lib/item.js.map +1 -0
  110. package/src/lib/properties.d.ts +42 -0
  111. package/src/lib/properties.js +110 -162
  112. package/src/lib/properties.js.map +1 -0
  113. package/src/lib/schema-form.d.ts +5 -0
  114. package/src/lib/schema-form.js +13 -16
  115. package/src/lib/schema-form.js.map +1 -0
  116. package/src/lib/studio.d.ts +2 -0
  117. package/src/lib/studio.js +116 -65
  118. package/src/lib/studio.js.map +1 -0
  119. package/src/lib/style.d.ts +6 -0
  120. package/src/lib/style.js +18 -19
  121. package/src/lib/style.js.map +1 -0
  122. package/src/lib/text-format.d.ts +6 -0
  123. package/src/lib/text-format.js +45 -55
  124. package/src/lib/text-format.js.map +1 -0
  125. package/src/lib/theme.d.ts +4 -0
  126. package/src/lib/theme.js +38 -43
  127. package/src/lib/theme.js.map +1 -0
  128. package/src/lib/utils.d.ts +9 -0
  129. package/src/lib/utils.js +72 -75
  130. package/src/lib/utils.js.map +1 -0
  131. package/src/mixins/chart-element.d.ts +39 -0
  132. package/src/mixins/chart-element.js +118 -106
  133. package/src/mixins/chart-element.js.map +1 -0
  134. package/src/mixins/input-element.d.ts +64 -0
  135. package/src/mixins/input-element.js +111 -131
  136. package/src/mixins/input-element.js.map +1 -0
  137. package/src/mixins/item-resource.d.ts +56 -0
  138. package/src/mixins/item-resource.js +76 -95
  139. package/src/mixins/item-resource.js.map +1 -0
  140. package/src/mixins/keyboard-element.d.ts +25 -0
  141. package/src/mixins/keyboard-element.js +44 -51
  142. package/src/mixins/keyboard-element.js.map +1 -0
  143. package/src/mixins/update-after-browser.d.ts +11 -0
  144. package/src/mixins/update-after-browser.js +10 -12
  145. package/src/mixins/update-after-browser.js.map +1 -0
  146. package/src/mixins/with-resize-observer.d.ts +12 -0
  147. package/src/mixins/with-resize-observer.js +46 -61
  148. package/src/mixins/with-resize-observer.js.map +1 -0
  149. package/src/mixins/with-skeleton-attribute.d.ts +35 -0
  150. package/src/mixins/with-skeleton-attribute.js +80 -88
  151. package/src/mixins/with-skeleton-attribute.js.map +1 -0
  152. package/src/molecules/gv-card-full.d.ts +78 -0
  153. package/src/molecules/gv-card-full.js +160 -47
  154. package/src/molecules/gv-card-full.js.map +1 -0
  155. package/src/molecules/gv-card-list.d.ts +33 -0
  156. package/src/molecules/gv-card-list.js +65 -47
  157. package/src/molecules/gv-card-list.js.map +1 -0
  158. package/src/molecules/gv-card.d.ts +65 -0
  159. package/src/molecules/gv-card.js +94 -22
  160. package/src/molecules/gv-card.js.map +1 -0
  161. package/src/molecules/gv-category-list.d.ts +17 -0
  162. package/src/molecules/gv-category-list.js +23 -15
  163. package/src/molecules/gv-category-list.js.map +1 -0
  164. package/src/molecules/gv-category.d.ts +64 -0
  165. package/src/molecules/gv-category.js +117 -43
  166. package/src/molecules/gv-category.js.map +1 -0
  167. package/src/molecules/gv-code.d.ts +192 -0
  168. package/src/molecules/gv-code.js +258 -220
  169. package/src/molecules/gv-code.js.map +1 -0
  170. package/src/molecules/gv-confirm.d.ts +60 -0
  171. package/src/molecules/gv-confirm.js +131 -113
  172. package/src/molecules/gv-confirm.js.map +1 -0
  173. package/src/molecules/gv-cron-editor.d.ts +115 -0
  174. package/src/molecules/gv-cron-editor.js +597 -375
  175. package/src/molecules/gv-cron-editor.js.map +1 -0
  176. package/src/molecules/gv-dropdown-menu.d.ts +28 -0
  177. package/src/molecules/gv-dropdown-menu.js +77 -52
  178. package/src/molecules/gv-dropdown-menu.js.map +1 -0
  179. package/src/molecules/gv-expandable.d.ts +37 -0
  180. package/src/molecules/gv-expandable.js +77 -54
  181. package/src/molecules/gv-expandable.js.map +1 -0
  182. package/src/molecules/gv-expression-language.d.ts +150 -0
  183. package/src/molecules/gv-expression-language.js +212 -256
  184. package/src/molecules/gv-expression-language.js.map +1 -0
  185. package/src/molecules/gv-identity-picture.d.ts +44 -0
  186. package/src/molecules/gv-identity-picture.js +102 -87
  187. package/src/molecules/gv-identity-picture.js.map +1 -0
  188. package/src/molecules/gv-list.d.ts +124 -0
  189. package/src/molecules/gv-list.js +167 -87
  190. package/src/molecules/gv-list.js.map +1 -0
  191. package/src/molecules/gv-metrics.d.ts +65 -0
  192. package/src/molecules/gv-metrics.js +103 -105
  193. package/src/molecules/gv-metrics.js.map +1 -0
  194. package/src/molecules/gv-modal.d.ts +64 -0
  195. package/src/molecules/gv-modal.js +157 -99
  196. package/src/molecules/gv-modal.js.map +1 -0
  197. package/src/molecules/gv-nav.d.ts +41 -0
  198. package/src/molecules/gv-nav.js +134 -123
  199. package/src/molecules/gv-nav.js.map +1 -0
  200. package/src/molecules/gv-option.d.ts +65 -0
  201. package/src/molecules/gv-option.js +177 -115
  202. package/src/molecules/gv-option.js.map +1 -0
  203. package/src/molecules/gv-plans.d.ts +73 -0
  204. package/src/molecules/gv-plans.js +327 -232
  205. package/src/molecules/gv-plans.js.map +1 -0
  206. package/src/molecules/gv-popover.d.ts +91 -0
  207. package/src/molecules/gv-popover.js +265 -172
  208. package/src/molecules/gv-popover.js.map +1 -0
  209. package/src/molecules/gv-promote.d.ts +108 -0
  210. package/src/molecules/gv-promote.js +152 -39
  211. package/src/molecules/gv-promote.js.map +1 -0
  212. package/src/molecules/gv-rating-list.d.ts +77 -0
  213. package/src/molecules/gv-rating-list.js +287 -184
  214. package/src/molecules/gv-rating-list.js.map +1 -0
  215. package/src/molecules/gv-rating.d.ts +55 -0
  216. package/src/molecules/gv-rating.js +187 -152
  217. package/src/molecules/gv-rating.js.map +1 -0
  218. package/src/molecules/gv-row-expandable.d.ts +8 -0
  219. package/src/molecules/gv-row-expandable.js +18 -14
  220. package/src/molecules/gv-row-expandable.js.map +1 -0
  221. package/src/molecules/gv-row.d.ts +37 -0
  222. package/src/molecules/gv-row.js +164 -42
  223. package/src/molecules/gv-row.js.map +1 -0
  224. package/src/molecules/gv-stats.d.ts +53 -0
  225. package/src/molecules/gv-stats.js +70 -55
  226. package/src/molecules/gv-stats.js.map +1 -0
  227. package/src/molecules/gv-stepper.d.ts +46 -0
  228. package/src/molecules/gv-stepper.js +225 -94
  229. package/src/molecules/gv-stepper.js.map +1 -0
  230. package/src/molecules/gv-table.d.ts +159 -0
  231. package/src/molecules/gv-table.js +530 -460
  232. package/src/molecules/gv-table.js.map +1 -0
  233. package/src/molecules/gv-tree.d.ts +44 -0
  234. package/src/molecules/gv-tree.js +189 -77
  235. package/src/molecules/gv-tree.js.map +1 -0
  236. package/src/organisms/gv-documentation.d.ts +52 -0
  237. package/src/organisms/gv-documentation.js +155 -81
  238. package/src/organisms/gv-documentation.js.map +1 -0
  239. package/src/organisms/gv-header.d.ts +60 -0
  240. package/src/organisms/gv-header.js +227 -80
  241. package/src/organisms/gv-header.js.map +1 -0
  242. package/src/organisms/gv-http-client.d.ts +57 -0
  243. package/src/organisms/gv-http-client.js +203 -83
  244. package/src/organisms/gv-http-client.js.map +1 -0
  245. package/src/organisms/gv-menu.d.ts +74 -0
  246. package/src/organisms/gv-menu.js +206 -89
  247. package/src/organisms/gv-menu.js.map +1 -0
  248. package/src/organisms/gv-newsletter-subscription.d.ts +82 -0
  249. package/src/organisms/gv-newsletter-subscription.js +212 -83
  250. package/src/organisms/gv-newsletter-subscription.js.map +1 -0
  251. package/src/organisms/gv-pagination.d.ts +63 -0
  252. package/src/organisms/gv-pagination.js +134 -124
  253. package/src/organisms/gv-pagination.js.map +1 -0
  254. package/src/organisms/gv-properties.d.ts +229 -0
  255. package/src/organisms/gv-properties.js +778 -616
  256. package/src/organisms/gv-properties.js.map +1 -0
  257. package/src/organisms/gv-resizable-views.d.ts +33 -0
  258. package/src/organisms/gv-resizable-views.js +334 -140
  259. package/src/organisms/gv-resizable-views.js.map +1 -0
  260. package/src/organisms/gv-resources.d.ts +125 -0
  261. package/src/organisms/gv-resources.js +434 -365
  262. package/src/organisms/gv-resources.js.map +1 -0
  263. package/src/organisms/gv-schema-form-array.d.ts +55 -0
  264. package/src/organisms/gv-schema-form-array.js +196 -98
  265. package/src/organisms/gv-schema-form-array.js.map +1 -0
  266. package/src/organisms/gv-schema-form-control-object.d.ts +64 -0
  267. package/src/organisms/gv-schema-form-control-object.js +110 -108
  268. package/src/organisms/gv-schema-form-control-object.js.map +1 -0
  269. package/src/organisms/gv-schema-form-control.d.ts +90 -0
  270. package/src/organisms/gv-schema-form-control.js +353 -349
  271. package/src/organisms/gv-schema-form-control.js.map +1 -0
  272. package/src/organisms/gv-schema-form.d.ts +156 -0
  273. package/src/organisms/gv-schema-form.js +611 -556
  274. package/src/organisms/gv-schema-form.js.map +1 -0
  275. package/src/organisms/gv-tabs.d.ts +56 -0
  276. package/src/organisms/gv-tabs.js +149 -125
  277. package/src/organisms/gv-tabs.js.map +1 -0
  278. package/src/organisms/gv-user-menu.d.ts +56 -0
  279. package/src/organisms/gv-user-menu.js +244 -94
  280. package/src/organisms/gv-user-menu.js.map +1 -0
  281. package/src/organisms/gv-vertical-menu.d.ts +28 -0
  282. package/src/organisms/gv-vertical-menu.js +84 -46
  283. package/src/organisms/gv-vertical-menu.js.map +1 -0
  284. package/src/policy-studio/gv-flow-step.d.ts +142 -0
  285. package/src/policy-studio/gv-flow-step.js +390 -250
  286. package/src/policy-studio/gv-flow-step.js.map +1 -0
  287. package/src/policy-studio/gv-flow.d.ts +89 -0
  288. package/src/policy-studio/gv-flow.js +512 -358
  289. package/src/policy-studio/gv-flow.js.map +1 -0
  290. package/src/policy-studio/gv-policy-studio-menu.d.ts +94 -0
  291. package/src/policy-studio/gv-policy-studio-menu.js +657 -403
  292. package/src/policy-studio/gv-policy-studio-menu.js.map +1 -0
  293. package/src/policy-studio/gv-policy-studio.d.ts +464 -0
  294. package/src/policy-studio/gv-policy-studio.js +1531 -1599
  295. package/src/policy-studio/gv-policy-studio.js.map +1 -0
  296. package/src/styles/empty.d.ts +1 -0
  297. package/src/styles/empty.js +21 -4
  298. package/src/styles/empty.js.map +1 -0
  299. package/src/styles/input.d.ts +1 -0
  300. package/src/styles/input.js +247 -3
  301. package/src/styles/input.js.map +1 -0
  302. package/src/styles/link.d.ts +1 -0
  303. package/src/styles/link.js +16 -3
  304. package/src/styles/link.js.map +1 -0
  305. package/src/styles/shapes.d.ts +2 -0
  306. package/src/styles/shapes.js +1 -1
  307. package/src/styles/shapes.js.map +1 -0
  308. package/src/styles/skeleton.d.ts +1 -0
  309. package/src/styles/skeleton.js +37 -3
  310. package/src/styles/skeleton.js.map +1 -0
  311. package/src/styles/zoom.d.ts +1 -0
  312. package/src/styles/zoom.js +24 -3
  313. package/src/styles/zoom.js.map +1 -0
  314. package/src/theme/gv-theme.d.ts +81 -0
  315. package/src/theme/gv-theme.js +115 -81
  316. package/src/theme/gv-theme.js.map +1 -0
  317. package/wc/gv-autocomplete.d.ts +1 -0
  318. package/wc/gv-autocomplete.js +2 -1
  319. package/wc/gv-autocomplete.js.map +1 -0
  320. package/wc/gv-button.d.ts +1 -0
  321. package/wc/gv-button.js +2 -1
  322. package/wc/gv-button.js.map +1 -0
  323. package/wc/gv-card-full.d.ts +1 -0
  324. package/wc/gv-card-full.js +2 -1
  325. package/wc/gv-card-full.js.map +1 -0
  326. package/wc/gv-card-list.d.ts +1 -0
  327. package/wc/gv-card-list.js +2 -1
  328. package/wc/gv-card-list.js.map +1 -0
  329. package/wc/gv-card.d.ts +1 -0
  330. package/wc/gv-card.js +2 -1
  331. package/wc/gv-card.js.map +1 -0
  332. package/wc/gv-category-list.d.ts +1 -0
  333. package/wc/gv-category-list.js +2 -1
  334. package/wc/gv-category-list.js.map +1 -0
  335. package/wc/gv-category.d.ts +1 -0
  336. package/wc/gv-category.js +2 -1
  337. package/wc/gv-category.js.map +1 -0
  338. package/wc/gv-chart-bar.d.ts +1 -0
  339. package/wc/gv-chart-bar.js +2 -1
  340. package/wc/gv-chart-bar.js.map +1 -0
  341. package/wc/gv-chart-gauge.d.ts +1 -0
  342. package/wc/gv-chart-gauge.js +2 -1
  343. package/wc/gv-chart-gauge.js.map +1 -0
  344. package/wc/gv-chart-histogram.d.ts +1 -0
  345. package/wc/gv-chart-histogram.js +2 -1
  346. package/wc/gv-chart-histogram.js.map +1 -0
  347. package/wc/gv-chart-line.d.ts +1 -0
  348. package/wc/gv-chart-line.js +2 -1
  349. package/wc/gv-chart-line.js.map +1 -0
  350. package/wc/gv-chart-map.d.ts +1 -0
  351. package/wc/gv-chart-map.js +2 -1
  352. package/wc/gv-chart-map.js.map +1 -0
  353. package/wc/gv-chart-pie.d.ts +1 -0
  354. package/wc/gv-chart-pie.js +2 -1
  355. package/wc/gv-chart-pie.js.map +1 -0
  356. package/wc/gv-checkbox.d.ts +1 -0
  357. package/wc/gv-checkbox.js +2 -1
  358. package/wc/gv-checkbox.js.map +1 -0
  359. package/wc/gv-code.d.ts +1 -0
  360. package/wc/gv-code.js +2 -1
  361. package/wc/gv-code.js.map +1 -0
  362. package/wc/gv-confirm.d.ts +1 -0
  363. package/wc/gv-confirm.js +2 -1
  364. package/wc/gv-confirm.js.map +1 -0
  365. package/wc/gv-cron-editor.d.ts +1 -0
  366. package/wc/gv-cron-editor.js +2 -1
  367. package/wc/gv-cron-editor.js.map +1 -0
  368. package/wc/gv-date-picker-calendar.d.ts +1 -0
  369. package/wc/gv-date-picker-calendar.js +2 -1
  370. package/wc/gv-date-picker-calendar.js.map +1 -0
  371. package/wc/gv-date-picker-cell.d.ts +1 -0
  372. package/wc/gv-date-picker-cell.js +2 -1
  373. package/wc/gv-date-picker-cell.js.map +1 -0
  374. package/wc/gv-date-picker.d.ts +1 -0
  375. package/wc/gv-date-picker.js +2 -1
  376. package/wc/gv-date-picker.js.map +1 -0
  377. package/wc/gv-documentation.d.ts +1 -0
  378. package/wc/gv-documentation.js +2 -1
  379. package/wc/gv-documentation.js.map +1 -0
  380. package/wc/gv-dropdown-menu.d.ts +1 -0
  381. package/wc/gv-dropdown-menu.js +2 -1
  382. package/wc/gv-dropdown-menu.js.map +1 -0
  383. package/wc/gv-expandable.d.ts +1 -0
  384. package/wc/gv-expandable.js +2 -1
  385. package/wc/gv-expandable.js.map +1 -0
  386. package/wc/gv-expression-language.d.ts +1 -0
  387. package/wc/gv-expression-language.js +2 -1
  388. package/wc/gv-expression-language.js.map +1 -0
  389. package/wc/gv-file-upload.d.ts +1 -0
  390. package/wc/gv-file-upload.js +2 -1
  391. package/wc/gv-file-upload.js.map +1 -0
  392. package/wc/gv-flow-step.d.ts +1 -0
  393. package/wc/gv-flow-step.js +2 -1
  394. package/wc/gv-flow-step.js.map +1 -0
  395. package/wc/gv-flow.d.ts +1 -0
  396. package/wc/gv-flow.js +2 -1
  397. package/wc/gv-flow.js.map +1 -0
  398. package/wc/gv-header.d.ts +1 -0
  399. package/wc/gv-header.js +2 -1
  400. package/wc/gv-header.js.map +1 -0
  401. package/wc/gv-http-client.d.ts +1 -0
  402. package/wc/gv-http-client.js +2 -1
  403. package/wc/gv-http-client.js.map +1 -0
  404. package/wc/gv-icon.d.ts +1 -0
  405. package/wc/gv-icon.js +2 -1
  406. package/wc/gv-icon.js.map +1 -0
  407. package/wc/gv-identity-picture.d.ts +1 -0
  408. package/wc/gv-identity-picture.js +2 -1
  409. package/wc/gv-identity-picture.js.map +1 -0
  410. package/wc/gv-image.d.ts +1 -0
  411. package/wc/gv-image.js +2 -1
  412. package/wc/gv-image.js.map +1 -0
  413. package/wc/gv-input-message.d.ts +1 -0
  414. package/wc/gv-input-message.js +2 -1
  415. package/wc/gv-input-message.js.map +1 -0
  416. package/wc/gv-input.d.ts +1 -0
  417. package/wc/gv-input.js +2 -1
  418. package/wc/gv-input.js.map +1 -0
  419. package/wc/gv-link.d.ts +1 -0
  420. package/wc/gv-link.js +2 -1
  421. package/wc/gv-link.js.map +1 -0
  422. package/wc/gv-list.d.ts +1 -0
  423. package/wc/gv-list.js +2 -1
  424. package/wc/gv-list.js.map +1 -0
  425. package/wc/gv-menu.d.ts +1 -0
  426. package/wc/gv-menu.js +2 -1
  427. package/wc/gv-menu.js.map +1 -0
  428. package/wc/gv-message.d.ts +1 -0
  429. package/wc/gv-message.js +2 -1
  430. package/wc/gv-message.js.map +1 -0
  431. package/wc/gv-metric.d.ts +1 -0
  432. package/wc/gv-metric.js +2 -1
  433. package/wc/gv-metric.js.map +1 -0
  434. package/wc/gv-metrics.d.ts +1 -0
  435. package/wc/gv-metrics.js +2 -1
  436. package/wc/gv-metrics.js.map +1 -0
  437. package/wc/gv-modal.d.ts +1 -0
  438. package/wc/gv-modal.js +2 -1
  439. package/wc/gv-modal.js.map +1 -0
  440. package/wc/gv-nav.d.ts +1 -0
  441. package/wc/gv-nav.js +2 -1
  442. package/wc/gv-nav.js.map +1 -0
  443. package/wc/gv-newsletter-subscription.d.ts +1 -0
  444. package/wc/gv-newsletter-subscription.js +2 -1
  445. package/wc/gv-newsletter-subscription.js.map +1 -0
  446. package/wc/gv-option.d.ts +1 -0
  447. package/wc/gv-option.js +2 -1
  448. package/wc/gv-option.js.map +1 -0
  449. package/wc/gv-pagination.d.ts +1 -0
  450. package/wc/gv-pagination.js +2 -1
  451. package/wc/gv-pagination.js.map +1 -0
  452. package/wc/gv-plans.d.ts +1 -0
  453. package/wc/gv-plans.js +2 -1
  454. package/wc/gv-plans.js.map +1 -0
  455. package/wc/gv-policy-studio-menu.d.ts +1 -0
  456. package/wc/gv-policy-studio-menu.js +2 -1
  457. package/wc/gv-policy-studio-menu.js.map +1 -0
  458. package/wc/gv-policy-studio.d.ts +1 -0
  459. package/wc/gv-policy-studio.js +2 -1
  460. package/wc/gv-policy-studio.js.map +1 -0
  461. package/wc/gv-popover.d.ts +1 -0
  462. package/wc/gv-popover.js +2 -1
  463. package/wc/gv-popover.js.map +1 -0
  464. package/wc/gv-promote.d.ts +1 -0
  465. package/wc/gv-promote.js +2 -1
  466. package/wc/gv-promote.js.map +1 -0
  467. package/wc/gv-properties.d.ts +1 -0
  468. package/wc/gv-properties.js +2 -1
  469. package/wc/gv-properties.js.map +1 -0
  470. package/wc/gv-rating-list.d.ts +1 -0
  471. package/wc/gv-rating-list.js +2 -1
  472. package/wc/gv-rating-list.js.map +1 -0
  473. package/wc/gv-rating.d.ts +1 -0
  474. package/wc/gv-rating.js +2 -1
  475. package/wc/gv-rating.js.map +1 -0
  476. package/wc/gv-relative-time.d.ts +1 -0
  477. package/wc/gv-relative-time.js +2 -1
  478. package/wc/gv-relative-time.js.map +1 -0
  479. package/wc/gv-resizable-views.d.ts +1 -0
  480. package/wc/gv-resizable-views.js +2 -1
  481. package/wc/gv-resizable-views.js.map +1 -0
  482. package/wc/gv-resources.d.ts +1 -0
  483. package/wc/gv-resources.js +2 -1
  484. package/wc/gv-resources.js.map +1 -0
  485. package/wc/gv-row-expandable.d.ts +1 -0
  486. package/wc/gv-row-expandable.js +2 -1
  487. package/wc/gv-row-expandable.js.map +1 -0
  488. package/wc/gv-row.d.ts +1 -0
  489. package/wc/gv-row.js +2 -1
  490. package/wc/gv-row.js.map +1 -0
  491. package/wc/gv-schema-form-array.d.ts +1 -0
  492. package/wc/gv-schema-form-array.js +2 -1
  493. package/wc/gv-schema-form-array.js.map +1 -0
  494. package/wc/gv-schema-form-control-object.d.ts +1 -0
  495. package/wc/gv-schema-form-control-object.js +2 -1
  496. package/wc/gv-schema-form-control-object.js.map +1 -0
  497. package/wc/gv-schema-form-control.d.ts +1 -0
  498. package/wc/gv-schema-form-control.js +2 -1
  499. package/wc/gv-schema-form-control.js.map +1 -0
  500. package/wc/gv-schema-form.d.ts +1 -0
  501. package/wc/gv-schema-form.js +2 -1
  502. package/wc/gv-schema-form.js.map +1 -0
  503. package/wc/gv-select-native.d.ts +1 -0
  504. package/wc/gv-select-native.js +2 -1
  505. package/wc/gv-select-native.js.map +1 -0
  506. package/wc/gv-select.d.ts +1 -0
  507. package/wc/gv-select.js +2 -1
  508. package/wc/gv-select.js.map +1 -0
  509. package/wc/gv-spinner.d.ts +1 -0
  510. package/wc/gv-spinner.js +2 -1
  511. package/wc/gv-spinner.js.map +1 -0
  512. package/wc/gv-state.d.ts +1 -0
  513. package/wc/gv-state.js +2 -1
  514. package/wc/gv-state.js.map +1 -0
  515. package/wc/gv-stats.d.ts +1 -0
  516. package/wc/gv-stats.js +2 -1
  517. package/wc/gv-stats.js.map +1 -0
  518. package/wc/gv-stepper.d.ts +1 -0
  519. package/wc/gv-stepper.js +2 -1
  520. package/wc/gv-stepper.js.map +1 -0
  521. package/wc/gv-switch.d.ts +1 -0
  522. package/wc/gv-switch.js +2 -1
  523. package/wc/gv-switch.js.map +1 -0
  524. package/wc/gv-table.d.ts +1 -0
  525. package/wc/gv-table.js +2 -1
  526. package/wc/gv-table.js.map +1 -0
  527. package/wc/gv-tabs.d.ts +1 -0
  528. package/wc/gv-tabs.js +2 -1
  529. package/wc/gv-tabs.js.map +1 -0
  530. package/wc/gv-tag.d.ts +1 -0
  531. package/wc/gv-tag.js +2 -1
  532. package/wc/gv-tag.js.map +1 -0
  533. package/wc/gv-text.d.ts +1 -0
  534. package/wc/gv-text.js +2 -1
  535. package/wc/gv-text.js.map +1 -0
  536. package/wc/gv-theme.d.ts +1 -0
  537. package/wc/gv-theme.js +2 -1
  538. package/wc/gv-theme.js.map +1 -0
  539. package/wc/gv-tree.d.ts +1 -0
  540. package/wc/gv-tree.js +2 -1
  541. package/wc/gv-tree.js.map +1 -0
  542. package/wc/gv-user-menu.d.ts +1 -0
  543. package/wc/gv-user-menu.js +2 -1
  544. package/wc/gv-user-menu.js.map +1 -0
  545. package/wc/gv-vertical-menu.d.ts +1 -0
  546. package/wc/gv-vertical-menu.js +2 -1
  547. package/wc/gv-vertical-menu.js.map +1 -0
@@ -30,387 +30,391 @@ import '../organisms/gv-schema-form-control-object';
30
30
  import { isCodemirror, isObject, isComplexArray } from '../lib/schema-form';
31
31
  import { UpdateAfterBrowser } from '../mixins/update-after-browser';
32
32
  export class GvSchemaFormControl extends UpdateAfterBrowser(LitElement) {
33
- static get properties() {
34
- return {
35
- type: {
36
- type: String
37
- },
38
- id: {
39
- type: String,
40
- reflect: true
41
- },
42
- name: {
43
- type: String,
44
- reflect: true
45
- },
46
- required: {
47
- type: Boolean,
48
- reflect: true
49
- },
50
- disabled: {
51
- type: Boolean,
52
- reflect: true
53
- },
54
- readonly: {
55
- type: Boolean,
56
- reflect: true
57
- },
58
- title: {
59
- type: String,
60
- reflect: true
61
- },
62
- pattern: {
63
- type: String
64
- },
65
- control: {
66
- type: Object
67
- },
68
- errors: {
69
- type: Array
70
- },
71
- value: {
72
- type: Object,
73
- reflect: true
74
- },
75
- skeleton: {
76
- type: Boolean,
77
- reflect: true
78
- },
79
- hidden: {
80
- type: Boolean,
81
- reflect: true
82
- },
83
- writeOnly: {
84
- type: Boolean,
85
- reflect: true
86
- },
87
- compact: {
88
- type: Boolean
89
- }
90
- };
91
- }
92
-
93
- constructor() {
94
- super(); // When form has errors, the control is not update to conserve the error state.
95
- // This list is used to force the update of properties even in error case.
96
-
97
- this._observedProperties = ['disabled', 'readonly', 'required'];
98
- }
99
-
100
- isExpressionLanguage() {
101
- return this.control['x-schema-form'] && this.control['x-schema-form']['expression-language'] != null;
102
- }
103
-
104
- isCronExpression() {
105
- return this.control['x-schema-form'] && this.control['x-schema-form']['cron-expression'] === true;
106
- }
107
-
108
- isPassword() {
109
- return this.control.writeOnly === true || this.control['x-schema-form'] && this.control['x-schema-form'].type != null && this.control['x-schema-form'].type === 'password';
110
- }
111
-
112
- getPlaceholder() {
113
- return this.control['x-schema-form'] && this.control['x-schema-form'].placeholder ? this.control['x-schema-form'].placeholder : null;
114
- }
115
-
116
- isCodemirror() {
117
- return isCodemirror(this.control);
118
- }
119
-
120
- isObject() {
121
- return isObject(this.control);
122
- }
123
-
124
- isAutocomplete() {
125
- return this.control['x-schema-form'] && this.control['x-schema-form'].event != null && this.control.type === 'string';
126
- }
127
-
128
- isText() {
129
- return this.control['x-schema-form'] && this.control['x-schema-form'].type === 'text' && this.control.type === 'string';
130
- }
131
-
132
- getElementName() {
133
- if (this.isObject()) {
134
- return 'gv-schema-form-control-object';
33
+ static get properties() {
34
+ return {
35
+ type: { type: String },
36
+ id: { type: String, reflect: true },
37
+ name: { type: String, reflect: true },
38
+ required: { type: Boolean, reflect: true },
39
+ disabled: { type: Boolean, reflect: true },
40
+ readonly: { type: Boolean, reflect: true },
41
+ title: { type: String, reflect: true },
42
+ pattern: { type: String },
43
+ control: { type: Object },
44
+ errors: { type: Array },
45
+ value: { type: Object, reflect: true },
46
+ skeleton: { type: Boolean, reflect: true },
47
+ hidden: { type: Boolean, reflect: true },
48
+ writeOnly: { type: Boolean, reflect: true },
49
+ compact: { type: Boolean },
50
+ };
135
51
  }
136
-
137
- if ((this.control.enum || this.control.items && this.control.items.enum) && !this.isAutocomplete()) {
138
- if (this.control.type === 'array') {
139
- return 'gv-select';
140
- }
141
-
142
- return 'gv-select-native';
143
- } else if (isComplexArray(this.control)) {
144
- return 'gv-schema-form-array';
145
- } else if (this.control.type === 'array') {
146
- return 'gv-button';
147
- } else if (this.control.type === 'boolean') {
148
- return 'gv-switch';
149
- } else if (this.isExpressionLanguage()) {
150
- return 'gv-expression-language';
151
- } else if (this.isCodemirror()) {
152
- return 'gv-code';
153
- } else if (this.isCronExpression()) {
154
- return 'gv-cron-editor';
155
- } else if (this.isText()) {
156
- return 'gv-text';
52
+ constructor() {
53
+ super();
54
+ // When form has errors, the control is not update to conserve the error state.
55
+ // This list is used to force the update of properties even in error case.
56
+ this._observedProperties = ['disabled', 'readonly', 'required'];
157
57
  }
158
-
159
- return 'gv-input';
160
- }
161
-
162
- _updateProperties(element) {
163
- if (element != null) {
164
- this._observedProperties.forEach(property => {
165
- if (this[property] != null) {
166
- element[property] = this[property];
167
- }
168
- });
58
+ isExpressionLanguage() {
59
+ return this.control['x-schema-form'] && this.control['x-schema-form']['expression-language'] != null;
169
60
  }
170
- }
171
-
172
- _renderControl() {
173
- const elementName = this.getElementName();
174
- const element = document.createElement(elementName);
175
- element.id = this.id;
176
- element.name = this.id;
177
- element.skeleton = this.skeleton;
178
- element.classList.add('form__control');
179
-
180
- if (this.value == null && this.control.default != null) {
181
- this.value = this.control.default;
182
- dispatchCustomEvent(this, 'default-value', {
183
- value: this.value,
184
- currentTarget: element,
185
- control: this.control
186
- });
61
+ isCronExpression() {
62
+ return this.control['x-schema-form'] && this.control['x-schema-form']['cron-expression'] === true;
187
63
  }
188
-
189
- if (this.value != null) {
190
- this._setValue(element);
64
+ isPassword() {
65
+ return (this.control.writeOnly === true ||
66
+ (this.control['x-schema-form'] && this.control['x-schema-form'].type != null && this.control['x-schema-form'].type === 'password'));
191
67
  }
192
-
193
- if (this.control.type === 'object') {
194
- element.schema = this.control;
195
- } else if (isComplexArray(this.control)) {
196
- element.schema = this.control.items;
68
+ getPlaceholder() {
69
+ return this.control['x-schema-form'] && this.control['x-schema-form'].placeholder ? this.control['x-schema-form'].placeholder : null;
197
70
  }
198
-
199
- this._updateProperties(element);
200
-
201
- if (this.control.title) {
202
- element.label = this.control.title;
203
- element.title = this.control.title;
204
- } else {
205
- const tmp = this.id.split('.');
206
- const title = tmp[tmp.length - 1];
207
-
208
- if (isNaN(parseInt(title, 10))) {
209
- element.label = title;
210
- element.title = title;
211
- }
71
+ isCodemirror() {
72
+ return isCodemirror(this.control);
212
73
  }
213
-
214
- if (this.control.pattern) {
215
- element.pattern = this.control.pattern;
74
+ isObject() {
75
+ return isObject(this.control);
216
76
  }
217
-
218
- if (this.control.type === 'integer') {
219
- element.type = 'number';
77
+ isAutocomplete() {
78
+ return this.control['x-schema-form'] && this.control['x-schema-form'].event != null && this.control.type === 'string';
220
79
  }
221
-
222
- if (this.isText()) {
223
- element.rows = 3;
224
- element.autosize = true;
225
- element.placeholder = this.control.description;
80
+ isText() {
81
+ return this.control['x-schema-form'] && this.control['x-schema-form'].type === 'text' && this.control.type === 'string';
226
82
  }
227
-
228
- const placeholder = this.getPlaceholder();
229
-
230
- if (this.control.enum || this.control.items && this.control.items.enum) {
231
- const options = this.control.enum || this.control.items.enum;
232
-
233
- if (this.control['x-schema-form'] && this.control['x-schema-form'].titleMap) {
234
- element.options = options.map(value => ({
235
- value,
236
- label: this.control['x-schema-form'].titleMap[value] || value
237
- }));
238
- } else {
239
- element.options = options;
240
- }
241
-
242
- if (this.control.type === 'array') {
243
- element.multiple = true;
244
- }
245
- } else if (this.isCodemirror()) {
246
- element.options = this.control['x-schema-form'].codemirrorOptions;
247
-
248
- if (this.control.default != null && element.options.value == null) {
249
- element.options.value = this.control.default;
250
- }
251
- } else if (this.isExpressionLanguage()) {
252
- element.options = {};
253
- element.rows = 1;
254
- } else if (this.isPassword()) {
255
- element.type = 'password';
83
+ getElementName() {
84
+ if (this.isObject()) {
85
+ return 'gv-schema-form-control-object';
86
+ }
87
+ if ((this.control.enum || (this.control.items && this.control.items.enum)) && !this.isAutocomplete()) {
88
+ if (this.control.type === 'array') {
89
+ return 'gv-select';
90
+ }
91
+ return 'gv-select-native';
92
+ }
93
+ else if (isComplexArray(this.control)) {
94
+ return 'gv-schema-form-array';
95
+ }
96
+ else if (this.control.type === 'array') {
97
+ return 'gv-button';
98
+ }
99
+ else if (this.control.type === 'boolean') {
100
+ return 'gv-switch';
101
+ }
102
+ else if (this.isExpressionLanguage()) {
103
+ return 'gv-expression-language';
104
+ }
105
+ else if (this.isCodemirror()) {
106
+ return 'gv-code';
107
+ }
108
+ else if (this.isCronExpression()) {
109
+ return 'gv-cron-editor';
110
+ }
111
+ else if (this.isText()) {
112
+ return 'gv-text';
113
+ }
114
+ return 'gv-input';
256
115
  }
257
-
258
- if (this.control.description) {
259
- element.description = this.control.description;
116
+ _updateProperties(element) {
117
+ if (element != null) {
118
+ this._observedProperties.forEach((property) => {
119
+ if (this[property] != null) {
120
+ element[property] = this[property];
121
+ }
122
+ });
123
+ }
260
124
  }
261
-
262
- if (this.compact) {
263
- element.placeholder = element.description || element.label;
264
- element.label = null;
265
- element.description = null;
266
- element.compact = this.compact;
125
+ _renderControl() {
126
+ const elementName = this.getElementName();
127
+ const element = document.createElement(elementName);
128
+ element.id = this.id;
129
+ element.name = this.id;
130
+ element.skeleton = this.skeleton;
131
+ element.classList.add('form__control');
132
+ if (this.value == null && this.control.default != null) {
133
+ this.value = this.control.default;
134
+ dispatchCustomEvent(this, 'default-value', { value: this.value, currentTarget: element, control: this.control });
135
+ }
136
+ if (this.value != null) {
137
+ this._setValue(element);
138
+ }
139
+ if (this.control.type === 'object') {
140
+ element.schema = this.control;
141
+ }
142
+ else if (isComplexArray(this.control)) {
143
+ element.schema = this.control.items;
144
+ }
145
+ this._updateProperties(element);
146
+ if (this.control.title) {
147
+ element.label = this.control.title;
148
+ element.title = this.control.title;
149
+ }
150
+ else {
151
+ const tmp = this.id.split('.');
152
+ const title = tmp[tmp.length - 1];
153
+ if (isNaN(parseInt(title, 10))) {
154
+ element.label = title;
155
+ element.title = title;
156
+ }
157
+ }
158
+ if (this.control.pattern) {
159
+ element.pattern = this.control.pattern;
160
+ }
161
+ if (this.control.type === 'integer') {
162
+ element.type = 'number';
163
+ }
164
+ if (this.isText()) {
165
+ element.rows = 3;
166
+ element.autosize = true;
167
+ element.placeholder = this.control.description;
168
+ }
169
+ const placeholder = this.getPlaceholder();
170
+ if (this.control.enum || (this.control.items && this.control.items.enum)) {
171
+ const options = this.control.enum || this.control.items.enum;
172
+ if (this.control['x-schema-form'] && this.control['x-schema-form'].titleMap) {
173
+ element.options = options.map((value) => ({
174
+ value,
175
+ label: this.control['x-schema-form'].titleMap[value] || value,
176
+ }));
177
+ }
178
+ else {
179
+ element.options = options;
180
+ }
181
+ if (this.control.type === 'array') {
182
+ element.multiple = true;
183
+ }
184
+ }
185
+ else if (this.isCodemirror()) {
186
+ element.options = this.control['x-schema-form'].codemirrorOptions;
187
+ if (this.control.default != null && element.options.value == null) {
188
+ element.options.value = this.control.default;
189
+ }
190
+ }
191
+ else if (this.isExpressionLanguage()) {
192
+ element.options = {};
193
+ element.rows = 1;
194
+ }
195
+ else if (this.isPassword()) {
196
+ element.type = 'password';
197
+ }
198
+ if (this.control.description) {
199
+ element.description = this.control.description;
200
+ }
201
+ if (this.compact) {
202
+ element.placeholder = element.description || element.label;
203
+ element.label = null;
204
+ element.description = null;
205
+ element.compact = this.compact;
206
+ }
207
+ if (placeholder != null) {
208
+ if (this.isExpressionLanguage() || this.isCodemirror()) {
209
+ element.options.placeholder = placeholder;
210
+ }
211
+ else {
212
+ element.placeholder = placeholder;
213
+ }
214
+ }
215
+ element.addEventListener(`${elementName}:input`, this._onInput.bind(this));
216
+ let currentTarget;
217
+ if (this.isAutocomplete()) {
218
+ const autocomplete = document.createElement('gv-autocomplete');
219
+ autocomplete.minChars = 0;
220
+ autocomplete.filter = true;
221
+ element.clearable = true;
222
+ autocomplete.id = this.id;
223
+ autocomplete.appendChild(element);
224
+ autocomplete.addEventListener(`gv-autocomplete:select`, this._onInput.bind(this));
225
+ element.addEventListener(`gv-input:clear`, this._onInput.bind(this));
226
+ currentTarget = autocomplete;
227
+ }
228
+ else {
229
+ currentTarget = element;
230
+ }
231
+ if (this.control['x-schema-form'] != null) {
232
+ dispatchCustomEvent(this, 'control-ready', {
233
+ currentTarget,
234
+ control: this,
235
+ });
236
+ }
237
+ return currentTarget;
267
238
  }
268
-
269
- if (placeholder != null) {
270
- if (this.isExpressionLanguage() || this.isCodemirror()) {
271
- element.options.placeholder = placeholder;
272
- } else {
273
- element.placeholder = placeholder;
274
- }
239
+ _onInput(e) {
240
+ e.preventDefault();
241
+ e.stopPropagation();
242
+ let value = null;
243
+ if (e.target.tagName === 'GV-AUTOCOMPLETE') {
244
+ value = e.detail.value;
245
+ }
246
+ else {
247
+ value = e.detail;
248
+ }
249
+ dispatchCustomEvent(this, 'change', { value, currentTarget: e.target, control: this.control });
275
250
  }
276
-
277
- element.addEventListener(`${elementName}:input`, this._onInput.bind(this));
278
- let currentTarget;
279
-
280
- if (this.isAutocomplete()) {
281
- const autocomplete = document.createElement('gv-autocomplete');
282
- autocomplete.minChars = 0;
283
- autocomplete.filter = true;
284
- element.clearable = true;
285
- autocomplete.id = this.id;
286
- autocomplete.appendChild(element);
287
- autocomplete.addEventListener(`gv-autocomplete:select`, this._onInput.bind(this));
288
- element.addEventListener(`gv-input:clear`, this._onInput.bind(this));
289
- currentTarget = autocomplete;
290
- } else {
291
- currentTarget = element;
251
+ getControls() {
252
+ return [
253
+ ...Array.from(this.shadowRoot.querySelectorAll('gv-schema-form-control')),
254
+ ...Array.from(this.shadowRoot.querySelectorAll('gv-schema-form-control-array')),
255
+ ...Array.from(this.shadowRoot.querySelectorAll('gv-schema-form-control-object')),
256
+ ];
292
257
  }
293
-
294
- if (this.control['x-schema-form'] != null) {
295
- dispatchCustomEvent(this, 'control-ready', {
296
- currentTarget,
297
- control: this
298
- });
258
+ getControl(id) {
259
+ if (id == null) {
260
+ id = this.id;
261
+ }
262
+ return this.shadowRoot.querySelector(`[id="${id}"]`);
299
263
  }
300
-
301
- return currentTarget;
302
- }
303
-
304
- _onInput(e) {
305
- e.preventDefault();
306
- e.stopPropagation();
307
- let value = null;
308
-
309
- if (e.target.tagName === 'GV-AUTOCOMPLETE') {
310
- value = e.detail.value;
311
- } else {
312
- value = e.detail;
264
+ _setValue(controlElement) {
265
+ if (this.value != null && controlElement != null) {
266
+ if (this.control.type === 'boolean' || this.control.type === 'array' || this.control.type === 'object') {
267
+ controlElement.value = this.value;
268
+ }
269
+ else {
270
+ controlElement.value = this.value.toString ? this.value.toString() : this.value;
271
+ }
272
+ }
273
+ return controlElement;
313
274
  }
314
-
315
- dispatchCustomEvent(this, 'change', {
316
- value,
317
- currentTarget: e.target,
318
- control: this.control
319
- });
320
- }
321
-
322
- getControls() {
323
- return [...Array.from(this.shadowRoot.querySelectorAll('gv-schema-form-control')), ...Array.from(this.shadowRoot.querySelectorAll('gv-schema-form-control-array')), ...Array.from(this.shadowRoot.querySelectorAll('gv-schema-form-control-object'))];
324
- }
325
-
326
- getControl(id) {
327
- if (id == null) {
328
- id = this.id;
275
+ async updated(changedProperties) {
276
+ if (changedProperties.has('value')) {
277
+ Promise.all(this.getControls().map((control) => control.updateComplete)).then(() => {
278
+ this._setValue(this.getControl());
279
+ });
280
+ }
329
281
  }
330
-
331
- return this.shadowRoot.querySelector(`[id="${id}"]`);
332
- }
333
-
334
- _setValue(controlElement) {
335
- if (this.value != null && controlElement != null) {
336
- if (this.control.type === 'boolean' || this.control.type === 'array' || this.control.type === 'object') {
337
- controlElement.value = this.value;
338
- } else {
339
- controlElement.value = this.value.toString ? this.value.toString() : this.value;
340
- }
282
+ async getUpdateComplete() {
283
+ await super.getUpdateComplete();
284
+ await Promise.all(this.getControls().map((e) => e.updateComplete));
341
285
  }
342
-
343
- return controlElement;
344
- }
345
-
346
- async updated(changedProperties) {
347
- if (changedProperties.has('value')) {
348
- Promise.all(this.getControls().map(control => control.updateComplete)).then(() => {
349
- this._setValue(this.getControl());
350
- });
286
+ formatErrorMessage(error) {
287
+ let title;
288
+ if (this.control.properties != null && this.control.properties[error.argument] != null) {
289
+ title = this.control.properties[error.argument].title;
290
+ }
291
+ else {
292
+ title = this.control.title;
293
+ }
294
+ if (title) {
295
+ return `<span>${error.message.replace(error.argument, title)}</span>`;
296
+ }
297
+ return `<span>${error.message}</span>`;
351
298
  }
352
- }
299
+ shouldUpdate(changedProperties) {
300
+ if (this._observedProperties.find((property) => changedProperties.has(property)) != null) {
301
+ this._updateProperties(this.getControl());
302
+ }
303
+ if (changedProperties.has('errors') && this.errors != null) {
304
+ // Set errors to complex controls
305
+ this.getControls().forEach((control) => {
306
+ control.errors = this.errors;
307
+ });
308
+ // Find simple controls and append error message
309
+ const errorContainer = this.shadowRoot.querySelectorAll('.form__control-error');
310
+ errorContainer.forEach((container) => (container.innerHTML = ''));
311
+ this.errors.forEach((error) => {
312
+ const key = error.property === 'instance' ? error.argument : error.property.replace('instance.', '');
313
+ const errorContainer = this.shadowRoot.querySelector(`[id="${key}-error"]`);
314
+ if (errorContainer) {
315
+ const message = document.createElement('gv-input-message');
316
+ message.innerHTML = this.formatErrorMessage(error);
317
+ message.level = 'warn';
318
+ errorContainer.appendChild(message);
319
+ }
320
+ });
321
+ return false;
322
+ }
323
+ return super.shouldUpdate(changedProperties);
324
+ }
325
+ render() {
326
+ return html `
327
+ ${this._renderControl()}
328
+ <div class="form__control-error" id="${this.id + '-error'}"></div>
329
+ `;
330
+ }
331
+ static get styles() {
332
+ return [
333
+ // language=CSS
334
+ css `
335
+ :host {
336
+ box-sizing: border-box;
337
+ margin: var(--gv-schema-form-control--m, 0.4rem);
338
+ display: block;
339
+ }
353
340
 
354
- async getUpdateComplete() {
355
- await super.getUpdateComplete();
356
- await Promise.all(this.getControls().map(e => e.updateComplete));
357
- }
341
+ :host([hidden]) {
342
+ visibility: hidden;
343
+ height: 0;
344
+ margin: 0;
345
+ padding: 0;
346
+ overflow: hidden;
347
+ }
358
348
 
359
- formatErrorMessage(error) {
360
- let title;
349
+ .form__control-description,
350
+ .form__control-error {
351
+ font-size: 12px;
352
+ }
361
353
 
362
- if (this.control.properties != null && this.control.properties[error.argument] != null) {
363
- title = this.control.properties[error.argument].title;
364
- } else {
365
- title = this.control.title;
366
- }
354
+ .form__control-description {
355
+ opacity: 0.8;
356
+ }
367
357
 
368
- if (title) {
369
- return `<span>${error.message.replace(error.argument, title)}</span>`;
370
- }
358
+ .form__control-label {
359
+ display: flex;
360
+ flex-direction: row;
361
+ border-bottom: 1px solid #d9d9d9;
362
+ }
371
363
 
372
- return `<span>${error.message}</span>`;
373
- }
364
+ label {
365
+ margin: 0.2rem;
366
+ }
374
367
 
375
- shouldUpdate(changedProperties) {
376
- if (this._observedProperties.find(property => changedProperties.has(property)) != null) {
377
- this._updateProperties(this.getControl());
378
- }
368
+ .form__control-label label {
369
+ flex: 1;
370
+ text-transform: capitalize;
371
+ }
379
372
 
380
- if (changedProperties.has('errors') && this.errors != null) {
381
- // Set errors to complex controls
382
- this.getControls().forEach(control => {
383
- control.errors = this.errors;
384
- }); // Find simple controls and append error message
373
+ .form__control-array,
374
+ .form__control-object {
375
+ display: flex;
376
+ flex-direction: column;
377
+ }
385
378
 
386
- const errorContainer = this.shadowRoot.querySelectorAll('.form__control-error');
387
- errorContainer.forEach(container => container.innerHTML = '');
388
- this.errors.forEach(error => {
389
- const key = error.property === 'instance' ? error.argument : error.property.replace('instance.', '');
390
- const errorContainer = this.shadowRoot.querySelector(`[id="${key}-error"]`);
379
+ .form__control-enum {
380
+ display: flex;
381
+ /*align-items: flex-end;*/
382
+ }
391
383
 
392
- if (errorContainer) {
393
- const message = document.createElement('gv-input-message');
394
- message.innerHTML = this.formatErrorMessage(error);
395
- message.level = 'warn';
396
- errorContainer.appendChild(message);
397
- }
398
- });
399
- return false;
400
- }
384
+ .form__control-array gv-button {
385
+ align-self: flex-end;
386
+ }
401
387
 
402
- return super.shouldUpdate(changedProperties);
403
- }
388
+ .form__control {
389
+ position: relative;
390
+ }
404
391
 
405
- render() {
406
- return html` ${this._renderControl()} <div class="form__control-error" id="${this.id + '-error'}"></div> `;
407
- }
392
+ gv-select,
393
+ gv-select-native,
394
+ gv-input,
395
+ gv-code,
396
+ gv-switch,
397
+ gv-expression-language {
398
+ width: 100%;
399
+ margin: 0.2rem 0;
400
+ }
401
+
402
+ gv-select:hover,
403
+ gv-select-native:hover,
404
+ gv-autocomplete:hover {
405
+ z-index: 70;
406
+ }
408
407
 
409
- static get styles() {
410
- return [// language=CSS
411
- css`:host{box-sizing:border-box;margin:var(--gv-schema-form-control--m,.4rem);display:block}:host([hidden]){visibility:hidden;height:0;margin:0;padding:0;overflow:hidden}.form__control-description,.form__control-error{font-size:12px}.form__control-description{opacity:.8}.form__control-label{display:flex;flex-direction:row;border-bottom:1px solid #d9d9d9}label{margin:.2rem}.form__control-label label{flex:1;text-transform:capitalize}.form__control-array,.form__control-object{display:flex;flex-direction:column}.form__control-enum{display:flex}.form__control-array gv-button{align-self:flex-end}.form__control{position:relative}gv-code,gv-expression-language,gv-input,gv-select,gv-select-native,gv-switch{width:100%;margin:.2rem 0}gv-autocomplete:hover,gv-select-native:hover,gv-select:hover{z-index:70}.error{color:var(--gv-theme-color-error,#f44336)}.warning{color:var(--gv-theme-color-warning,#ff9800)}`];
412
- }
408
+ .error {
409
+ color: var(--gv-theme-color-error, #f44336);
410
+ }
413
411
 
412
+ .warning {
413
+ color: var(--gv-theme-color-warning, #ff9800);
414
+ }
415
+ `,
416
+ ];
417
+ }
414
418
  }
415
419
  window.customElements.define('gv-schema-form-control', GvSchemaFormControl);
416
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1jb250cm9sLmpzIl0sIm5hbWVzIjpbImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsImlzQ29kZW1pcnJvciIsImlzT2JqZWN0IiwiaXNDb21wbGV4QXJyYXkiLCJVcGRhdGVBZnRlckJyb3dzZXIiLCJHdlNjaGVtYUZvcm1Db250cm9sIiwicHJvcGVydGllcyIsInR5cGUiLCJTdHJpbmciLCJpZCIsInJlZmxlY3QiLCJuYW1lIiwicmVxdWlyZWQiLCJCb29sZWFuIiwiZGlzYWJsZWQiLCJyZWFkb25seSIsInRpdGxlIiwicGF0dGVybiIsImNvbnRyb2wiLCJPYmplY3QiLCJlcnJvcnMiLCJBcnJheSIsInZhbHVlIiwic2tlbGV0b24iLCJoaWRkZW4iLCJ3cml0ZU9ubHkiLCJjb21wYWN0IiwiY29uc3RydWN0b3IiLCJfb2JzZXJ2ZWRQcm9wZXJ0aWVzIiwiaXNFeHByZXNzaW9uTGFuZ3VhZ2UiLCJpc0Nyb25FeHByZXNzaW9uIiwiaXNQYXNzd29yZCIsImdldFBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJpc0F1dG9jb21wbGV0ZSIsImV2ZW50IiwiaXNUZXh0IiwiZ2V0RWxlbWVudE5hbWUiLCJlbnVtIiwiaXRlbXMiLCJfdXBkYXRlUHJvcGVydGllcyIsImVsZW1lbnQiLCJmb3JFYWNoIiwicHJvcGVydHkiLCJfcmVuZGVyQ29udHJvbCIsImVsZW1lbnROYW1lIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NMaXN0IiwiYWRkIiwiZGVmYXVsdCIsImN1cnJlbnRUYXJnZXQiLCJfc2V0VmFsdWUiLCJzY2hlbWEiLCJsYWJlbCIsInRtcCIsInNwbGl0IiwibGVuZ3RoIiwiaXNOYU4iLCJwYXJzZUludCIsInJvd3MiLCJhdXRvc2l6ZSIsImRlc2NyaXB0aW9uIiwib3B0aW9ucyIsInRpdGxlTWFwIiwibWFwIiwibXVsdGlwbGUiLCJjb2RlbWlycm9yT3B0aW9ucyIsImFkZEV2ZW50TGlzdGVuZXIiLCJfb25JbnB1dCIsImJpbmQiLCJhdXRvY29tcGxldGUiLCJtaW5DaGFycyIsImZpbHRlciIsImNsZWFyYWJsZSIsImFwcGVuZENoaWxkIiwiZSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwidGFyZ2V0IiwidGFnTmFtZSIsImRldGFpbCIsImdldENvbnRyb2xzIiwiZnJvbSIsInNoYWRvd1Jvb3QiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZ2V0Q29udHJvbCIsInF1ZXJ5U2VsZWN0b3IiLCJjb250cm9sRWxlbWVudCIsInRvU3RyaW5nIiwidXBkYXRlZCIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiaGFzIiwiUHJvbWlzZSIsImFsbCIsInVwZGF0ZUNvbXBsZXRlIiwidGhlbiIsImdldFVwZGF0ZUNvbXBsZXRlIiwiZm9ybWF0RXJyb3JNZXNzYWdlIiwiZXJyb3IiLCJhcmd1bWVudCIsIm1lc3NhZ2UiLCJyZXBsYWNlIiwic2hvdWxkVXBkYXRlIiwiZmluZCIsImVycm9yQ29udGFpbmVyIiwiY29udGFpbmVyIiwiaW5uZXJIVE1MIiwia2V5IiwibGV2ZWwiLCJyZW5kZXIiLCJzdHlsZXMiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsR0FBVCxFQUFjQyxVQUFkLEVBQTBCQyxJQUExQixRQUFzQyxLQUF0QztBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBQ0EsT0FBTyxtQkFBUDtBQUNBLE9BQU8sMkJBQVA7QUFDQSxPQUFPLGtCQUFQO0FBQ0EsT0FBTyxvQkFBUDtBQUNBLE9BQU8sMkJBQVA7QUFDQSxPQUFPLG9CQUFQO0FBQ0EsT0FBTyxzQkFBUDtBQUNBLE9BQU8scUNB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LENBQVlzQixPQUFaLENBQXFCeUQsS0FBRCxJQUFXO0FBQzdCLGNBQU1TLEdBQUcsR0FBR1QsS0FBSyxDQUFDeEQsUUFBTixLQUFtQixVQUFuQixHQUFnQ3dELEtBQUssQ0FBQ0MsUUFBdEMsR0FBaURELEtBQUssQ0FBQ3hELFFBQU4sQ0FBZTJELE9BQWYsQ0FBdUIsV0FBdkIsRUFBb0MsRUFBcEMsQ0FBN0Q7QUFDQSxjQUFNRyxjQUFjLEdBQUcsS0FBS3JCLFVBQUwsQ0FBZ0JHLGFBQWhCLENBQStCLFFBQU9xQixHQUFJLFVBQTFDLENBQXZCOztBQUNBLFlBQUlILGNBQUosRUFBb0I7QUFDbEIsZ0JBQU1KLE9BQU8sR0FBR3ZELFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixrQkFBdkIsQ0FBaEI7QUFDQXNELFVBQUFBLE9BQU8sQ0FBQ00sU0FBUixHQUFvQixLQUFLVCxrQkFBTCxDQUF3QkMsS0FBeEIsQ0FBcEI7QUFDQUUsVUFBQUEsT0FBTyxDQUFDUSxLQUFSLEdBQWdCLE1BQWhCO0FBQ0FKLFVBQUFBLGNBQWMsQ0FBQzlCLFdBQWYsQ0FBMkIwQixPQUEzQjtBQUNEO0FBQ0YsT0FURDtBQVVBLGFBQU8sS0FBUDtBQUNEOztBQUNELFdBQU8sTUFBTUUsWUFBTixDQUFtQlosaUJBQW5CLENBQVA7QUFDRDs7QUFFRG1CLEVBQUFBLE1BQU0sR0FBRztBQUNQLFdBQU8vRyxJQUFJLElBQ1AsS0FBSzZDLGNBQUwsRUFETyx5Q0FFOEIsS0FBS25DLEVBQUwsR0FBVSxRQUZ4QyxXQUFYO0FBSUQ7O0FBRWdCLGFBQU5zRyxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMO0FBQ0FsSCxJQUFBQSxHQUFHLHk0QkFGRSxDQUFQO0FBcUZEOztBQXZacUU7QUEwWnhFbUgsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2Qix3QkFBN0IsRUFBdUQ3RyxtQkFBdkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBMaXRFbGVtZW50LCBodG1sIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCAnLi4vYXRvbXMvZ3YtaW5wdXQnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1pbnB1dC1tZXNzYWdlJztcbmltcG9ydCAnLi4vYXRvbXMvZ3YtdGV4dCc7XG5pbXBvcnQgJy4uL2F0b21zL2d2LXNlbGVjdCc7XG5pbXBvcnQgJy4uL2F0b21zL2d2LXNlbGVjdC1uYXRpdmUnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1zd2l0Y2gnO1xuaW1wb3J0ICcuLi9tb2xlY3VsZXMvZ3YtY29kZSc7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1leHByZXNzaW9uLWxhbmd1YWdlJztcbmltcG9ydCAnLi4vbW9sZWN1bGVzL2d2LWNyb24tZWRpdG9yJztcbmltcG9ydCAnLi4vYXRvbXMvZ3YtYXV0b2NvbXBsZXRlJztcbmltcG9ydCAnLi4vb3JnYW5pc21zL2d2LXNjaGVtYS1mb3JtLWFycmF5JztcbmltcG9ydCAnLi4vb3JnYW5pc21zL2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtb2JqZWN0JztcbmltcG9ydCB7IGlzQ29kZW1pcnJvciwgaXNPYmplY3QsIGlzQ29tcGxleEFycmF5IH0gZnJvbSAnLi4vbGliL3NjaGVtYS1mb3JtJztcbmltcG9ydCB7IFVwZGF0ZUFmdGVyQnJvd3NlciB9IGZyb20gJy4uL21peGlucy91cGRhdGUtYWZ0ZXItYnJvd3Nlcic7XG5cbmV4cG9ydCBjbGFzcyBHdlNjaGVtYUZvcm1Db250cm9sIGV4dGVuZHMgVXBkYXRlQWZ0ZXJCcm93c2VyKExpdEVsZW1lbnQpIHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgaWQ6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBuYW1lOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgcmVxdWlyZWQ6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgZGlzYWJsZWQ6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgcmVhZG9ubHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgdGl0bGU6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBwYXR0ZXJuOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgY29udHJvbDogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIGVycm9yczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgdmFsdWU6IHsgdHlwZTogT2JqZWN0LCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBza2VsZXRvbjogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBoaWRkZW46IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgd3JpdGVPbmx5OiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGNvbXBhY3Q6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIC8vIFdoZW4gZm9ybSBoYXMgZXJyb3JzLCB0aGUgY29udHJvbCBpcyBub3QgdXBkYXRlIHRvIGNvbnNlcnZlIHRoZSBlcnJvciBzdGF0ZS5cbiAgICAvLyBUaGlzIGxpc3QgaXMgdXNlZCB0byBmb3JjZSB0aGUgdXBkYXRlIG9mIHByb3BlcnRpZXMgZXZlbiBpbiBlcnJvciBjYXNlLlxuICAgIHRoaXMuX29ic2VydmVkUHJvcGVydGllcyA9IFsnZGlzYWJsZWQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnXTtcbiAgfVxuXG4gIGlzRXhwcmVzc2lvbkxhbmd1YWdlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSAmJiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXVsnZXhwcmVzc2lvbi1sYW5ndWFnZSddICE9IG51bGw7XG4gIH1cblxuICBpc0Nyb25FeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSAmJiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXVsnY3Jvbi1leHByZXNzaW9uJ10gPT09IHRydWU7XG4gIH1cblxuICBpc1Bhc3N3b3JkKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNvbnRyb2wud3JpdGVPbmx5ID09PSB0cnVlIHx8XG4gICAgICAodGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10gJiYgdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10udHlwZSAhPSBudWxsICYmIHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddLnR5cGUgPT09ICdwYXNzd29yZCcpXG4gICAgKTtcbiAgfVxuXG4gIGdldFBsYWNlaG9sZGVyKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSAmJiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXS5wbGFjZWhvbGRlciA/IHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddLnBsYWNlaG9sZGVyIDogbnVsbDtcbiAgfVxuXG4gIGlzQ29kZW1pcnJvcigpIHtcbiAgICByZXR1cm4gaXNDb2RlbWlycm9yKHRoaXMuY29udHJvbCk7XG4gIH1cblxuICBpc09iamVjdCgpIHtcbiAgICByZXR1cm4gaXNPYmplY3QodGhpcy5jb250cm9sKTtcbiAgfVxuXG4gIGlzQXV0b2NvbXBsZXRlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSAmJiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXS5ldmVudCAhPSBudWxsICYmIHRoaXMuY29udHJvbC50eXBlID09PSAnc3RyaW5nJztcbiAgfVxuXG4gIGlzVGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10gJiYgdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10udHlwZSA9PT0gJ3RleHQnICYmIHRoaXMuY29udHJvbC50eXBlID09PSAnc3RyaW5nJztcbiAgfVxuXG4gIGdldEVsZW1lbnROYW1lKCkge1xuICAgIGlmICh0aGlzLmlzT2JqZWN0KCkpIHtcbiAgICAgIHJldHVybiAnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbC1vYmplY3QnO1xuICAgIH1cbiAgICBpZiAoKHRoaXMuY29udHJvbC5lbnVtIHx8ICh0aGlzLmNvbnRyb2wuaXRlbXMgJiYgdGhpcy5jb250cm9sLml0ZW1zLmVudW0pKSAmJiAhdGhpcy5pc0F1dG9jb21wbGV0ZSgpKSB7XG4gICAgICBpZiAodGhpcy5jb250cm9sLnR5cGUgPT09ICdhcnJheScpIHtcbiAgICAgICAgcmV0dXJuICdndi1zZWxlY3QnO1xuICAgICAgfVxuICAgICAgcmV0dXJuICdndi1zZWxlY3QtbmF0aXZlJztcbiAgICB9IGVsc2UgaWYgKGlzQ29tcGxleEFycmF5KHRoaXMuY29udHJvbCkpIHtcbiAgICAgIHJldHVybiAnZ3Ytc2NoZW1hLWZvcm0tYXJyYXknO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250cm9sLnR5cGUgPT09ICdhcnJheScpIHtcbiAgICAgIHJldHVybiAnZ3YtYnV0dG9uJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udHJvbC50eXBlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiAnZ3Ytc3dpdGNoJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNFeHByZXNzaW9uTGFuZ3VhZ2UoKSkge1xuICAgICAgcmV0dXJuICdndi1leHByZXNzaW9uLWxhbmd1YWdlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNDb2RlbWlycm9yKCkpIHtcbiAgICAgIHJldHVybiAnZ3YtY29kZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzQ3JvbkV4cHJlc3Npb24oKSkge1xuICAgICAgcmV0dXJuICdndi1jcm9uLWVkaXRvcic7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzVGV4dCgpKSB7XG4gICAgICByZXR1cm4gJ2d2LXRleHQnO1xuICAgIH1cblxuICAgIHJldHVybiAnZ3YtaW5wdXQnO1xuICB9XG5cbiAgX3VwZGF0ZVByb3BlcnRpZXMoZWxlbWVudCkge1xuICAgIGlmIChlbGVtZW50ICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX29ic2VydmVkUHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgICAgICBpZiAodGhpc1twcm9wZXJ0eV0gIT0gbnVsbCkge1xuICAgICAgICAgIGVsZW1lbnRbcHJvcGVydHldID0gdGhpc1twcm9wZXJ0eV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIF9yZW5kZXJDb250cm9sKCkge1xuICAgIGNvbnN0IGVsZW1lbnROYW1lID0gdGhpcy5nZXRFbGVtZW50TmFtZSgpO1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnROYW1lKTtcbiAgICBlbGVtZW50LmlkID0gdGhpcy5pZDtcbiAgICBlbGVtZW50Lm5hbWUgPSB0aGlzLmlkO1xuICAgIGVsZW1lbnQuc2tlbGV0b24gPSB0aGlzLnNrZWxldG9uO1xuICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZm9ybV9fY29udHJvbCcpO1xuICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwgJiYgdGhpcy5jb250cm9sLmRlZmF1bHQgIT0gbnVsbCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY29udHJvbC5kZWZhdWx0O1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnZGVmYXVsdC12YWx1ZScsIHsgdmFsdWU6IHRoaXMudmFsdWUsIGN1cnJlbnRUYXJnZXQ6IGVsZW1lbnQsIGNvbnRyb2w6IHRoaXMuY29udHJvbCB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsdWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5fc2V0VmFsdWUoZWxlbWVudCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29udHJvbC50eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgZWxlbWVudC5zY2hlbWEgPSB0aGlzLmNvbnRyb2w7XG4gICAgfSBlbHNlIGlmIChpc0NvbXBsZXhBcnJheSh0aGlzLmNvbnRyb2wpKSB7XG4gICAgICBlbGVtZW50LnNjaGVtYSA9IHRoaXMuY29udHJvbC5pdGVtcztcbiAgICB9XG5cbiAgICB0aGlzLl91cGRhdGVQcm9wZXJ0aWVzKGVsZW1lbnQpO1xuXG4gICAgaWYgKHRoaXMuY29udHJvbC50aXRsZSkge1xuICAgICAgZWxlbWVudC5sYWJlbCA9IHRoaXMuY29udHJvbC50aXRsZTtcbiAgICAgIGVsZW1lbnQudGl0bGUgPSB0aGlzLmNvbnRyb2wudGl0bGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRtcCA9IHRoaXMuaWQuc3BsaXQoJy4nKTtcbiAgICAgIGNvbnN0IHRpdGxlID0gdG1wW3RtcC5sZW5ndGggLSAxXTtcbiAgICAgIGlmIChpc05hTihwYXJzZUludCh0aXRsZSwgMTApKSkge1xuICAgICAgICBlbGVtZW50LmxhYmVsID0gdGl0bGU7XG4gICAgICAgIGVsZW1lbnQudGl0bGUgPSB0aXRsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb250cm9sLnBhdHRlcm4pIHtcbiAgICAgIGVsZW1lbnQucGF0dGVybiA9IHRoaXMuY29udHJvbC5wYXR0ZXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2wudHlwZSA9PT0gJ2ludGVnZXInKSB7XG4gICAgICBlbGVtZW50LnR5cGUgPSAnbnVtYmVyJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1RleHQoKSkge1xuICAgICAgZWxlbWVudC5yb3dzID0gMztcbiAgICAgIGVsZW1lbnQuYXV0b3NpemUgPSB0cnVlO1xuICAgICAgZWxlbWVudC5wbGFjZWhvbGRlciA9IHRoaXMuY29udHJvbC5kZXNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwbGFjZWhvbGRlciA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtcblxuICAgIGlmICh0aGlzLmNvbnRyb2wuZW51bSB8fCAodGhpcy5jb250cm9sLml0ZW1zICYmIHRoaXMuY29udHJvbC5pdGVtcy5lbnVtKSkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29udHJvbC5lbnVtIHx8IHRoaXMuY29udHJvbC5pdGVtcy5lbnVtO1xuICAgICAgaWYgKHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddICYmIHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddLnRpdGxlTWFwKSB7XG4gICAgICAgIGVsZW1lbnQub3B0aW9ucyA9IG9wdGlvbnMubWFwKCh2YWx1ZSkgPT4gKHtcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBsYWJlbDogdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10udGl0bGVNYXBbdmFsdWVdIHx8IHZhbHVlLFxuICAgICAgICB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbGVtZW50Lm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY29udHJvbC50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICAgIGVsZW1lbnQubXVsdGlwbGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5pc0NvZGVtaXJyb3IoKSkge1xuICAgICAgZWxlbWVudC5vcHRpb25zID0gdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10uY29kZW1pcnJvck9wdGlvbnM7XG4gICAgICBpZiAodGhpcy5jb250cm9sLmRlZmF1bHQgIT0gbnVsbCAmJiBlbGVtZW50Lm9wdGlvbnMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBlbGVtZW50Lm9wdGlvbnMudmFsdWUgPSB0aGlzLmNvbnRyb2wuZGVmYXVsdDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNFeHByZXNzaW9uTGFuZ3VhZ2UoKSkge1xuICAgICAgZWxlbWVudC5vcHRpb25zID0ge307XG4gICAgICBlbGVtZW50LnJvd3MgPSAxO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc1Bhc3N3b3JkKCkpIHtcbiAgICAgIGVsZW1lbnQudHlwZSA9ICdwYXNzd29yZCc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29udHJvbC5kZXNjcmlwdGlvbikge1xuICAgICAgZWxlbWVudC5kZXNjcmlwdGlvbiA9IHRoaXMuY29udHJvbC5kZXNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb21wYWN0KSB7XG4gICAgICBlbGVtZW50LnBsYWNlaG9sZGVyID0gZWxlbWVudC5kZXNjcmlwdGlvbiB8fCBlbGVtZW50LmxhYmVsO1xuICAgICAgZWxlbWVudC5sYWJlbCA9IG51bGw7XG4gICAgICBlbGVtZW50LmRlc2NyaXB0aW9uID0gbnVsbDtcbiAgICAgIGVsZW1lbnQuY29tcGFjdCA9IHRoaXMuY29tcGFjdDtcbiAgICB9XG5cbiAgICBpZiAocGxhY2Vob2xkZXIgIT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMuaXNFeHByZXNzaW9uTGFuZ3VhZ2UoKSB8fCB0aGlzLmlzQ29kZW1pcnJvcigpKSB7XG4gICAgICAgIGVsZW1lbnQub3B0aW9ucy5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudC5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihgJHtlbGVtZW50TmFtZX06aW5wdXRgLCB0aGlzLl9vbklucHV0LmJpbmQodGhpcykpO1xuXG4gICAgbGV0IGN1cnJlbnRUYXJnZXQ7XG4gICAgaWYgKHRoaXMuaXNBdXRvY29tcGxldGUoKSkge1xuICAgICAgY29uc3QgYXV0b2NvbXBsZXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZ3YtYXV0b2NvbXBsZXRlJyk7XG4gICAgICBhdXRvY29tcGxldGUubWluQ2hhcnMgPSAwO1xuICAgICAgYXV0b2NvbXBsZXRlLmZpbHRlciA9IHRydWU7XG4gICAgICBlbGVtZW50LmNsZWFyYWJsZSA9IHRydWU7XG4gICAgICBhdXRvY29tcGxldGUuaWQgPSB0aGlzLmlkO1xuICAgICAgYXV0b2NvbXBsZXRlLmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgYXV0b2NvbXBsZXRlLmFkZEV2ZW50TGlzdGVuZXIoYGd2LWF1dG9jb21wbGV0ZTpzZWxlY3RgLCB0aGlzLl9vbklucHV0LmJpbmQodGhpcykpO1xuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGBndi1pbnB1dDpjbGVhcmAsIHRoaXMuX29uSW5wdXQuYmluZCh0aGlzKSk7XG4gICAgICBjdXJyZW50VGFyZ2V0ID0gYXV0b2NvbXBsZXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjdXJyZW50VGFyZ2V0ID0gZWxlbWVudDtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddICE9IG51bGwpIHtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NvbnRyb2wtcmVhZHknLCB7XG4gICAgICAgIGN1cnJlbnRUYXJnZXQsXG4gICAgICAgIGNvbnRyb2w6IHRoaXMsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRUYXJnZXQ7XG4gIH1cblxuICBfb25JbnB1dChlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgbGV0IHZhbHVlID0gbnVsbDtcbiAgICBpZiAoZS50YXJnZXQudGFnTmFtZSA9PT0gJ0dWLUFVVE9DT01QTEVURScpIHtcbiAgICAgIHZhbHVlID0gZS5kZXRhaWwudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZS5kZXRhaWw7XG4gICAgfVxuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NoYW5nZScsIHsgdmFsdWUsIGN1cnJlbnRUYXJnZXQ6IGUudGFyZ2V0LCBjb250cm9sOiB0aGlzLmNvbnRyb2wgfSk7XG4gIH1cblxuICBnZXRDb250cm9scygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCcpKSxcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtYXJyYXknKSksXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdCcpKSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0Q29udHJvbChpZCkge1xuICAgIGlmIChpZCA9PSBudWxsKSB7XG4gICAgICBpZCA9IHRoaXMuaWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtpZH1cIl1gKTtcbiAgfVxuXG4gIF9zZXRWYWx1ZShjb250cm9sRWxlbWVudCkge1xuICAgIGlmICh0aGlzLnZhbHVlICE9IG51bGwgJiYgY29udHJvbEVsZW1lbnQgIT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMuY29udHJvbC50eXBlID09PSAnYm9vbGVhbicgfHwgdGhpcy5jb250cm9sLnR5cGUgPT09ICdhcnJheScgfHwgdGhpcy5jb250cm9sLnR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnRyb2xFbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRyb2xFbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZS50b1N0cmluZyA/IHRoaXMudmFsdWUudG9TdHJpbmcoKSA6IHRoaXMudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb250cm9sRWxlbWVudDtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd2YWx1ZScpKSB7XG4gICAgICBQcm9taXNlLmFsbCh0aGlzLmdldENvbnRyb2xzKCkubWFwKChjb250cm9sKSA9PiBjb250cm9sLnVwZGF0ZUNvbXBsZXRlKSkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuX3NldFZhbHVlKHRoaXMuZ2V0Q29udHJvbCgpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFVwZGF0ZUNvbXBsZXRlKCkge1xuICAgIGF3YWl0IHN1cGVyLmdldFVwZGF0ZUNvbXBsZXRlKCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5nZXRDb250cm9scygpLm1hcCgoZSkgPT4gZS51cGRhdGVDb21wbGV0ZSkpO1xuICB9XG5cbiAgZm9ybWF0RXJyb3JNZXNzYWdlKGVycm9yKSB7XG4gICAgbGV0IHRpdGxlO1xuICAgIGlmICh0aGlzLmNvbnRyb2wucHJvcGVydGllcyAhPSBudWxsICYmIHRoaXMuY29udHJvbC5wcm9wZXJ0aWVzW2Vycm9yLmFyZ3VtZW50XSAhPSBudWxsKSB7XG4gICAgICB0aXRsZSA9IHRoaXMuY29udHJvbC5wcm9wZXJ0aWVzW2Vycm9yLmFyZ3VtZW50XS50aXRsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGl0bGUgPSB0aGlzLmNvbnRyb2wudGl0bGU7XG4gICAgfVxuICAgIGlmICh0aXRsZSkge1xuICAgICAgcmV0dXJuIGA8c3Bhbj4ke2Vycm9yLm1lc3NhZ2UucmVwbGFjZShlcnJvci5hcmd1bWVudCwgdGl0bGUpfTwvc3Bhbj5gO1xuICAgIH1cbiAgICByZXR1cm4gYDxzcGFuPiR7ZXJyb3IubWVzc2FnZX08L3NwYW4+YDtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcykge1xuICAgIGlmICh0aGlzLl9vYnNlcnZlZFByb3BlcnRpZXMuZmluZCgocHJvcGVydHkpID0+IGNoYW5nZWRQcm9wZXJ0aWVzLmhhcyhwcm9wZXJ0eSkpICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVByb3BlcnRpZXModGhpcy5nZXRDb250cm9sKCkpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Vycm9ycycpICYmIHRoaXMuZXJyb3JzICE9IG51bGwpIHtcbiAgICAgIC8vIFNldCBlcnJvcnMgdG8gY29tcGxleCBjb250cm9sc1xuICAgICAgdGhpcy5nZXRDb250cm9scygpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgY29udHJvbC5lcnJvcnMgPSB0aGlzLmVycm9ycztcbiAgICAgIH0pO1xuXG4gICAgICAvLyBGaW5kIHNpbXBsZSBjb250cm9scyBhbmQgYXBwZW5kIGVycm9yIG1lc3NhZ2VcbiAgICAgIGNvbnN0IGVycm9yQ29udGFpbmVyID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5mb3JtX19jb250cm9sLWVycm9yJyk7XG4gICAgICBlcnJvckNvbnRhaW5lci5mb3JFYWNoKChjb250YWluZXIpID0+IChjb250YWluZXIuaW5uZXJIVE1MID0gJycpKTtcbiAgICAgIHRoaXMuZXJyb3JzLmZvckVhY2goKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnN0IGtleSA9IGVycm9yLnByb3BlcnR5ID09PSAnaW5zdGFuY2UnID8gZXJyb3IuYXJndW1lbnQgOiBlcnJvci5wcm9wZXJ0eS5yZXBsYWNlKCdpbnN0YW5jZS4nLCAnJyk7XG4gICAgICAgIGNvbnN0IGVycm9yQ29udGFpbmVyID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYFtpZD1cIiR7a2V5fS1lcnJvclwiXWApO1xuICAgICAgICBpZiAoZXJyb3JDb250YWluZXIpIHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZ3YtaW5wdXQtbWVzc2FnZScpO1xuICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gdGhpcy5mb3JtYXRFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgICAgICAgIG1lc3NhZ2UubGV2ZWwgPSAnd2Fybic7XG4gICAgICAgICAgZXJyb3JDb250YWluZXIuYXBwZW5kQ2hpbGQobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2hvdWxkVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7dGhpcy5fcmVuZGVyQ29udHJvbCgpfVxuICAgICAgPGRpdiBjbGFzcz1cImZvcm1fX2NvbnRyb2wtZXJyb3JcIiBpZD1cIiR7dGhpcy5pZCArICctZXJyb3InfVwiPjwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIG1hcmdpbjogdmFyKC0tZ3Ytc2NoZW1hLWZvcm0tY29udHJvbC0tbSwgMC40cmVtKTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtoaWRkZW5dKSB7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtZGVzY3JpcHRpb24sXG4gICAgICAgIC5mb3JtX19jb250cm9sLWVycm9yIHtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9fY29udHJvbC1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtbGFiZWwge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBtYXJnaW46IDAuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19jb250cm9sLWxhYmVsIGxhYmVsIHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtYXJyYXksXG4gICAgICAgIC5mb3JtX19jb250cm9sLW9iamVjdCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtZW51bSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAvKmFsaWduLWl0ZW1zOiBmbGV4LWVuZDsqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtYXJyYXkgZ3YtYnV0dG9uIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19jb250cm9sIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBndi1zZWxlY3QsXG4gICAgICAgIGd2LXNlbGVjdC1uYXRpdmUsXG4gICAgICAgIGd2LWlucHV0LFxuICAgICAgICBndi1jb2RlLFxuICAgICAgICBndi1zd2l0Y2gsXG4gICAgICAgIGd2LWV4cHJlc3Npb24tbGFuZ3VhZ2Uge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1hcmdpbjogMC4ycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICBndi1zZWxlY3Q6aG92ZXIsXG4gICAgICAgIGd2LXNlbGVjdC1uYXRpdmU6aG92ZXIsXG4gICAgICAgIGd2LWF1dG9jb21wbGV0ZTpob3ZlciB7XG4gICAgICAgICAgei1pbmRleDogNzA7XG4gICAgICAgIH1cblxuICAgICAgICAuZXJyb3Ige1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi10aGVtZS1jb2xvci1lcnJvciwgI2Y0NDMzNik7XG4gICAgICAgIH1cblxuICAgICAgICAud2FybmluZyB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWd2LXRoZW1lLWNvbG9yLXdhcm5pbmcsICNmZjk4MDApO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCcsIEd2U2NoZW1hRm9ybUNvbnRyb2wpO1xuIl19
420
+ //# sourceMappingURL=gv-schema-form-control.js.map